package org.flexdock.demos.raw;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.flexdock.demos.util.DemoUtility;
import org.flexdock.docking.DockingConstants;
import org.flexdock.docking.DockingManager;
import org.flexdock.docking.defaults.DefaultDockingPort;
public class SimpleDemo extends JFrame implements DockingConstants {
public static void main(String[] args) {
JFrame f = new SimpleDemo();
f.setSize(600, 400);
DemoUtility.setCloseOperation(f);
f.setVisible(true);
}
public SimpleDemo() {
super("Simple Docking Demo");
setContentPane(createContentPane());
}
private JPanel createContentPane() {
JPanel p = new JPanel(new BorderLayout(5, 5));
p.add(buildDockingPort(Color.blue, "Blue"), BorderLayout.NORTH);
p.add(buildDockingPort(Color.red, "Red"), BorderLayout.SOUTH);
p.add(buildDockingPort(Color.green, "Green"), BorderLayout.EAST);
p.add(buildDockingPort(Color.yellow, "Yellow"), BorderLayout.WEST);
p.add(createDockingPort(), BorderLayout.CENTER);
return p;
}
private DefaultDockingPort buildDockingPort(Color color, String desc) {
// create the DockingPort
DefaultDockingPort port = createDockingPort();
// create and register the Dockable panel
JPanel p = new JPanel();
p.setBackground(color);
p.add(new JLabel("Drag Me"));
DockingManager.registerDockable(p, desc);
// dock the panel and return the DockingPort
port.dock(p, CENTER_REGION);
return port;
}
private DefaultDockingPort createDockingPort() {
DefaultDockingPort port = new DefaultDockingPort();
port.setBackground(Color.ORANGE);
port.setPreferredSize(new Dimension(100, 100));
return port;
}
}