Parcourir la source

bedder user configurrable interface

Kolja Strohm il y a 6 ans
Parent
commit
0106770845
1 fichiers modifiés avec 36 ajouts et 7 suppressions
  1. 36 7
      src/view/MainView.java

+ 36 - 7
src/view/MainView.java

@@ -12,6 +12,8 @@ import java.awt.event.ComponentEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 
 
 import javax.swing.JButton;
 import javax.swing.JButton;
 import javax.swing.JFileChooser;
 import javax.swing.JFileChooser;
@@ -20,6 +22,7 @@ import javax.swing.JLabel;
 import javax.swing.JLayeredPane;
 import javax.swing.JLayeredPane;
 import javax.swing.JPanel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
 import javax.swing.JTextArea;
 import javax.swing.JTextArea;
 import javax.swing.JTextField;
 import javax.swing.JTextField;
 import javax.swing.JTree;
 import javax.swing.JTree;
@@ -453,6 +456,7 @@ public class MainView {
         frame.setVisible( true );
         frame.setVisible( true );
 
 
         JLayeredPane layne = new JLayeredPane();
         JLayeredPane layne = new JLayeredPane();
+        layne.setLayout( new BorderLayout() );
         JPanel pl = new JPanel();
         JPanel pl = new JPanel();
         GridLayout grout = new GridLayout( 2, 2, 10, 10 );
         GridLayout grout = new GridLayout( 2, 2, 10, 10 );
         pl.setLayout( grout );
         pl.setLayout( grout );
@@ -470,7 +474,11 @@ public class MainView {
         NodeView combined = createNodeView( graph, LayoutType.COMBINED );
         NodeView combined = createNodeView( graph, LayoutType.COMBINED );
         combined.setSize( 500, 500 );
         combined.setSize( 500, 500 );
         layne.add( combined, 0 );
         layne.add( combined, 0 );
-        frame.add( layne );
+        
+        JSplitPane spane = new JSplitPane( JSplitPane.HORIZONTAL_SPLIT );
+        spane.setLeftComponent( layne );
+        spane.setResizeWeight(0.5);
+        
         //JPanel onlyCurrentLayout = new JPanel();
         //JPanel onlyCurrentLayout = new JPanel();
         //onlyCurrentLayout.setLayout( new BorderLayout() );
         //onlyCurrentLayout.setLayout( new BorderLayout() );
         JPanel menue = new JPanel();
         JPanel menue = new JPanel();
@@ -485,7 +493,6 @@ public class MainView {
         menue.add( stepBackward );
         menue.add( stepBackward );
         menue.add( delayText );
         menue.add( delayText );
         menue.add( delay );
         menue.add( delay );
-        menue.add( treeView );
         menue.add( stepBackwardInto );
         menue.add( stepBackwardInto );
         menue.add( stepBackwardOut );
         menue.add( stepBackwardOut );
         menue.add( runBackward );
         menue.add( runBackward );
@@ -493,8 +500,27 @@ public class MainView {
         menue.add( save );
         menue.add( save );
         menue.add( load );
         menue.add( load );
         menue.add( options );
         menue.add( options );
-        menue.add( debugView );
-        frame.add( menue, BorderLayout.EAST );
+        
+        JSplitPane spane2 = new JSplitPane( JSplitPane.VERTICAL_SPLIT );
+        spane2.setBounds( 10, 110, 390, 650 );
+        spane2.setTopComponent( treeView );
+        spane2.setBottomComponent( debugView );
+        spane2.setDividerLocation( 390 );
+        spane2.setResizeWeight(0.5);
+        menue.add( spane2 );
+        
+        spane.setRightComponent( menue);
+        spane.setContinuousLayout(true);
+        spane.setDividerLocation( frame.getWidth() - 430 );
+        spane.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY, new PropertyChangeListener() {
+
+            @Override
+            public void propertyChange(PropertyChangeEvent evt) {
+                frame.getComponentListeners()[ 0 ].componentResized( null );
+            }
+            
+        });
+        frame.add( spane );
         frame.setSize( frame.getWidth() + 1, frame.getHeight() );
         frame.setSize( frame.getWidth() + 1, frame.getHeight() );
         frame.setSize( frame.getWidth() - 1, frame.getHeight() );
         frame.setSize( frame.getWidth() - 1, frame.getHeight() );
         frame.validate();
         frame.validate();
@@ -503,10 +529,8 @@ public class MainView {
         frame.addComponentListener(new ComponentAdapter()
         frame.addComponentListener(new ComponentAdapter()
         {
         {
             public void componentResized(ComponentEvent evt) {
             public void componentResized(ComponentEvent evt) {
-                pl.setSize( layne.getSize() );
                 menue.setSize( menue.getWidth(), layne.getHeight() );
                 menue.setSize( menue.getWidth(), layne.getHeight() );
-                treeView.setSize( treeView.getWidth(), layne.getHeight() - 370 );
-                debugView.setBounds( treeView.getX(), treeView.getY() + treeView.getHeight() + 10, treeView.getWidth(), 240 );
+                spane2.setSize( menue.getWidth() - 20, menue.getHeight() - 120 );
                 if( graph.getColor( LayoutType.COMBINED ) == null )
                 if( graph.getColor( LayoutType.COMBINED ) == null )
                 {
                 {
                     grout.setHgap( 10 );
                     grout.setHgap( 10 );
@@ -613,6 +637,11 @@ public class MainView {
         
         
         algorithm.start();
         algorithm.start();
     }
     }
+    
+    private void resized()
+    {
+        
+    }
 
 
     private NodeView createNodeView( LayeredGraphNode gNode, LayoutType lt )
     private NodeView createNodeView( LayeredGraphNode gNode, LayoutType lt )
     {
     {