From 73857c6f82de01abfb4ffe10dea921cd3307098f Mon Sep 17 00:00:00 2001 From: Bill Kuker Date: Sat, 6 Nov 2010 19:40:26 +0000 Subject: [PATCH] Gui refinement --- .../visual/workbench/MotorEditor.java | 26 ++++++++++- .../visual/workbench/MotorWorkbench.java | 44 +++++++++++-------- 2 files changed, 50 insertions(+), 20 deletions(-) diff --git a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java index 9bc1a44..22d2fa4 100644 --- a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java +++ b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java @@ -4,6 +4,8 @@ import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.beans.PropertyChangeEvent; @@ -242,12 +244,13 @@ public class MotorEditor extends JTabbedPane implements PropertyChangeListener { } } - private class CaseEditor extends JSplitPane { + private class CaseEditor extends JSplitPane implements ComponentListener { private static final long serialVersionUID = 1L; public CaseEditor(Nozzle n, Chamber c) { super(JSplitPane.VERTICAL_SPLIT); setName("General Parameters"); + this.addComponentListener(this); JPanel parts = new JPanel(); parts.setLayout(new BoxLayout(parts, BoxLayout.X_AXIS)); @@ -325,6 +328,27 @@ public class MotorEditor extends JTabbedPane implements PropertyChangeListener { .addPropertyChangeListener(MotorEditor.this); } } + + @Override + public void componentHidden(ComponentEvent arg0) { + + } + + @Override + public void componentMoved(ComponentEvent arg0) { + + } + + @Override + public void componentResized(ComponentEvent arg0) { + setResizeWeight(.5); + setDividerLocation(.5); + } + + @Override + public void componentShown(ComponentEvent arg0) { + + } } diff --git a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java index d8065bc..f8e0271 100644 --- a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java +++ b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java @@ -51,6 +51,7 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener { private JSplitPane split; private JTree tree; private JTabbedPane motors; + private JTabbedPane fuels; private WorkbenchTreeModel tm; private MultiBurnChart mb; private JFrame allBurns; @@ -60,6 +61,7 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener { private HashMap m2e = new HashMap(); + private static final int TREE_WIDTH = 200; public MotorWorkbench() { setTitle("MotorSim 1.0 RC1"); @@ -76,21 +78,20 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener { allBurns.add(mb); motors = new JTabbedPane(); + fuels = new JTabbedPane(); tree = new JTree(tm = new WorkbenchTreeModel()); tree.setCellRenderer(new WorkbenchTreeCellRenderer()); tree.getSelectionModel().setSelectionMode( TreeSelectionModel.SINGLE_TREE_SELECTION); - tree.setMinimumSize(new Dimension(200, 100)); + tree.setMinimumSize(new Dimension(TREE_WIDTH, 100)); // Listen for when the selection changes. tree.addTreeSelectionListener(this); - split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane( - tree), motors); - split.setDividerLocation(200); - split.setResizeWeight(0); - split.resetToPreferredSizes(); + split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, + tree, motors); + split.setDividerLocation(TREE_WIDTH); split.revalidate(); top.add(split, BorderLayout.CENTER); @@ -330,7 +331,7 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener { FuelNode fn = tm.new FuelNode(fp, f); tm.getFuels().add(fn); tm.nodeStructureChanged(tm.getFuels()); - motors.addTab(f.getName(), fp); + fuels.addTab(f.getName(), fp); } private void newFuel(){ @@ -340,14 +341,14 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener { final FuelEditNode node = tm.new FuelEditNode(ed); tm.getFuels().add(node); tm.nodeStructureChanged(tm.getFuels()); - motors.addTab(ed.getFuel().getName(), ed); + fuels.addTab(ed.getFuel().getName(), ed); ed.getFuel().addPropertyChangeListener(new PropertyChangeListener(){ @Override public void propertyChange(PropertyChangeEvent evt) { if ( evt.getPropertyName().equals("Name")){ - for ( int i = 0; i < motors.getTabCount(); i++ ){ - if ( motors.getComponent(i) == ed ){ - motors.setTitleAt(i, ed.getFuel().getName()); + for ( int i = 0; i < fuels.getTabCount(); i++ ){ + if ( fuels.getComponent(i) == ed ){ + fuels.setTitleAt(i, ed.getFuel().getName()); tm.nodeChanged(node); } } @@ -382,17 +383,23 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener { } @Override - public void valueChanged(TreeSelectionEvent e) { - if ( e.getPath().getLastPathComponent() instanceof FuelNode ){ - FuelNode fen = ((FuelNode)e.getPath().getLastPathComponent()); - motors.setSelectedComponent(fen.getUserObject()); + public void valueChanged(TreeSelectionEvent e) { + if (e.getPath().getLastPathComponent() instanceof FuelNode) { + FuelNode fen = ((FuelNode) e.getPath().getLastPathComponent()); + fuels.setSelectedComponent(fen.getUserObject()); + split.setRightComponent(fuels); + split.setDividerLocation(TREE_WIDTH); + split.revalidate(); } - + Motor m = getMotor(e.getPath()); - - if ( m == null ) + + if (m == null) return; + split.setRightComponent(motors); + split.setDividerLocation(TREE_WIDTH); + split.revalidate(); motors.setSelectedComponent(m2e.get(m)); if (e.getPath().getLastPathComponent() instanceof DefaultMutableTreeNode) { @@ -400,7 +407,6 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener { .getLastPathComponent()).getUserObject(); m2e.get(m).focusOnObject(o); } - } -- 2.47.2