Esempio n. 1
0
  public FloatChildDocks(JFrame frame) {
    super(new BorderLayout());

    // Create the dock model for the docks.
    FloatDockModel dockModel = new FloatDockModel();
    dockModel.addOwner("frame0", frame);

    // Give the dock model to the docking manager.
    DockingManager.setDockModel(dockModel);

    // Create the content components.
    TextPanel textPanel1 = new TextPanel("I am window 1.");
    TextPanel textPanel2 = new TextPanel("I am window 2.");
    TextPanel textPanel3 = new TextPanel("I am window 3.");

    // Create the dockables around the content components.
    Icon icon =
        new ImageIcon(getClass().getResource("/com/javadocking/resources/images/text12.gif"));
    Dockable dockable1 = new DefaultDockable("Window1", textPanel1, "Window 1", icon);
    Dockable dockable2 = new DefaultDockable("Window2", textPanel2, "Window 2", icon);
    Dockable dockable3 = new DefaultDockable("Window3", textPanel3, "Window 3", icon);

    // Create the single child docks for the float dock.
    SingleDock singleDock1 = new SingleDock();
    SingleDock singleDock2 = new SingleDock();

    // Add the dockables to the single docks.
    singleDock1.addDockable(dockable1, SingleDock.SINGLE_POSITION);
    singleDock2.addDockable(dockable2, SingleDock.SINGLE_POSITION);

    // Create the tab dock.
    TabDock tabDock = new TabDock();

    // Add the dockable to the tab dock.
    tabDock.addDockable(dockable3, new Position(0));

    // The position for the float child docks.
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    int x = screenSize.width / 2 - 100;
    int y = screenSize.height / 2 - 100;

    // Get the float dock. This is a standard dock of the floating dock model.
    FloatDock floatDock = dockModel.getFloatDock(frame);
    floatDock.setChildDockFactory(new SingleDockFactory());
    floatDock.setDockPriority(Priority.CAN_DOCK_WITH_PRIORITY);

    // Add the child docks to the float dock.
    floatDock.addChildDock(singleDock1, new Position(x, y, 0));
    floatDock.addChildDock(singleDock2, new Position(x + 50, y + 50, 1));

    // Add the 1 root dock to the dock model.
    dockModel.addRootDock("tabDock", tabDock, frame);

    // Add the split pane to the panel.
    add(tabDock, BorderLayout.CENTER);
  }