Mega Code Archive

 
Categories / Java / Swing Components
 

Elegant Dockable framework

package net.eleritec.docking.demos.elegant; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSplitPane; import javax.swing.UIManager; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; import net.eleritec.docking.Dockable; import net.eleritec.docking.DockingPort; import net.eleritec.docking.defaults.DefaultDockingPort; import net.eleritec.docking.defaults.StandardBorderManager; public class ElegantDemo extends JFrame {   private JSplitPane horizontalSplit;   private JSplitPane vertSplitRight;   private JSplitPane vertSplitLeft;      private ElegantPanel j2eeHierarchyView;   private ElegantPanel j2eeNavView;   private ElegantPanel consoleView;   private ElegantPanel serversView;   private ElegantPanel tasksView;   private ElegantPanel searchView;   private ElegantPanel synchronizeView;   private ElegantPanel outlineView;   private ElegantPanel editorView;      private ElegantDockingPort topLeft;   private ElegantDockingPort bottomLeft;   private ElegantDockingPort topRight;   private ElegantDockingPort bottomRight;      public ElegantDemo() {     super("Elegant Docking Demo");     init();   }   private void init() {     createViews();     horizontalSplit = createSplitPane(JSplitPane.HORIZONTAL_SPLIT);     vertSplitLeft = createSplitPane(JSplitPane.VERTICAL_SPLIT);     vertSplitRight = createSplitPane(JSplitPane.VERTICAL_SPLIT);          horizontalSplit.setLeftComponent(vertSplitLeft);     horizontalSplit.setRightComponent(vertSplitRight);     initDockingPorts();          setContentPane(horizontalSplit);   }      private void createViews() {     j2eeHierarchyView = new ElegantPanel("J2EE Hierarchy");     j2eeNavView = new ElegantPanel("J2EE Navigator");     consoleView = new ElegantPanel("Console");     serversView = new ElegantPanel("Servers");     tasksView = new ElegantPanel("Tasks");     searchView = new ElegantPanel("Search");     synchronizeView = new ElegantPanel("Synchronize");     outlineView = new ElegantPanel("Outline");     editorView = new ElegantPanel("Editor");   }      private void initDockingPorts() {     topLeft = new ElegantDockingPort();     bottomLeft = new ElegantDockingPort();     topRight = new ElegantDockingPort();     bottomRight = new ElegantDockingPort();          topLeft.add(j2eeHierarchyView);     topLeft.add(j2eeNavView);     bottomLeft.add(outlineView);     topRight.add(editorView);     bottomRight.add(tasksView);     bottomRight.add(serversView);     bottomRight.add(consoleView);     bottomRight.add(searchView);     bottomRight.add(synchronizeView);         vertSplitLeft.setLeftComponent(topLeft);     vertSplitLeft.setRightComponent(bottomLeft);     vertSplitRight.setLeftComponent(topRight);     vertSplitRight.setRightComponent(bottomRight);   }   private void postInit() {     horizontalSplit.setDividerLocation(0.3d);     vertSplitLeft.setDividerLocation(0.75d);     vertSplitRight.setDividerLocation(0.75d);   }   private static JSplitPane createSplitPane(int orientation) {     JSplitPane split = new JSplitPane(orientation);     // remove the border from the split pane     split.setBorder(null);               // set the divider size for a more reasonable, less bulky look      split.setDividerSize(3);     // check the UI.  If we can't work with the UI any further, then     // exit here.     if (!(split.getUI() instanceof BasicSplitPaneUI))        return split;     //  grab the divider from the UI and remove the border from it     BasicSplitPaneDivider divider =              ((BasicSplitPaneUI) split.getUI()).getDivider();     if (divider != null)        divider.setBorder(null);     return split;   }      public static void main(String[] args) {     ElegantDemo demo = new ElegantDemo();     demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     demo.setSize(800, 600);     demo.setVisible(true);          // now that we're visible and validated, move the split pane     // dividers to their proper locations.     demo.postInit();   } }                     dockingSrc-0.3.zip( 57 k)