Menus and so forth
authorBill Kuker <bkuker@billkuker.com>
Fri, 17 Jul 2009 14:11:59 +0000 (14:11 +0000)
committerBill Kuker <bkuker@billkuker.com>
Fri, 17 Jul 2009 14:11:59 +0000 (14:11 +0000)
src/MotorWorkbench.java [new file with mode: 0644]
src/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java
src/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java
src/com/billkuker/rocketry/motorsim/visual/workbench/WorkbenchTreeModel.java

diff --git a/src/MotorWorkbench.java b/src/MotorWorkbench.java
new file mode 100644 (file)
index 0000000..e7a75b3
--- /dev/null
@@ -0,0 +1,19 @@
+import javax.swing.UIManager;
+
+public class MotorWorkbench {
+
+       public static void main(String args[]) throws Exception {
+
+               try {
+                       System.setProperty("apple.laf.useScreenMenuBar", "true");
+                       System.setProperty(
+                                       "com.apple.mrj.application.apple.menu.about.name",
+                                       "MotorWorkbench");
+                       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+               } catch (Exception e1) {
+                       e1.printStackTrace();
+               }
+               new com.billkuker.rocketry.motorsim.visual.workbench.MotorWorkbench().setVisible(true);
+       }
+
+}
index e69562a0bc940abe7fb53480b25a816c5f074c96..a46611f6e7cb6246b007575a8763869d15c86f43 100644 (file)
@@ -3,6 +3,8 @@ package com.billkuker.rocketry.motorsim.visual.workbench;
 import java.awt.BorderLayout;\r
 import java.awt.event.ActionEvent;\r
 import java.awt.event.ActionListener;\r
+import java.awt.event.FocusEvent;\r
+import java.awt.event.FocusListener;\r
 import java.beans.PropertyChangeEvent;\r
 import java.beans.PropertyChangeListener;\r
 import java.beans.PropertyVetoException;\r
@@ -11,15 +13,19 @@ import java.io.IOException;
 import javax.measure.quantity.Pressure;\r
 import javax.measure.quantity.Velocity;\r
 import javax.measure.unit.SI;\r
+import javax.media.jai.operator.AddDescriptor;\r
 import javax.swing.BoxLayout;\r
 import javax.swing.JButton;\r
 import javax.swing.JFrame;\r
 import javax.swing.JPanel;\r
 import javax.swing.JSplitPane;\r
 import javax.swing.JTabbedPane;\r
+import javax.swing.JTextField;\r
 import javax.swing.SwingUtilities;\r
 import javax.swing.UIManager;\r
 import javax.swing.WindowConstants;\r
+import javax.swing.event.ChangeEvent;\r
+import javax.swing.event.ChangeListener;\r
 import javax.swing.event.DocumentEvent;\r
 import javax.swing.event.DocumentListener;\r
 \r
@@ -231,6 +237,31 @@ public class MotorEditor extends JTabbedPane implements PropertyChangeListener,
                        setLeftComponent(parts);\r
                        setRightComponent(new NozzlePanel(n));\r
 \r
+                       parts.add(new JTextField(motor.getName()){\r
+                               {\r
+                                       final JTextField t = this;\r
+                                       addFocusListener(new FocusListener() {\r
+                                               \r
+                                               @Override\r
+                                               public void focusLost(FocusEvent e) {\r
+                                                       String n = t.getText();\r
+                                                       if ( !"".equals(n) && !n.equals(motor.getName()) ){\r
+                                                               System.out.println("Name Changed");\r
+                                                               motor.setName(n);\r
+                                                       } else {\r
+                                                               t.setText(motor.getName());\r
+                                                       }\r
+                                               }\r
+                                               \r
+                                               @Override\r
+                                               public void focusGained(FocusEvent e) {\r
+                                               \r
+                                               }\r
+                                       });\r
+                                       \r
+                               }\r
+                       });\r
+                       \r
                        parts.add(new Editor(c));\r
                        parts.add(new Editor(n));\r
 \r
@@ -345,7 +376,9 @@ public class MotorEditor extends JTabbedPane implements PropertyChangeListener,
 \r
        public void propertyChange(PropertyChangeEvent evt) {\r
                reText();\r
-               bt.reBurn();\r
+               //Dont re-burn for a name change!\r
+               if ( !evt.getPropertyName().equals("Name") )\r
+                       bt.reBurn();\r
        }\r
 \r
        public void changedUpdate(DocumentEvent e) {\r
index 9882fec45f8a67c0daad2e93fab8b5ca259dad9d..92e28c8f6f839e09d499b99400e4d267a3142d9f 100644 (file)
@@ -258,23 +258,12 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
                motors.addTab(title, e);\r
        }\r
 \r
-       public static void main(String args[]) throws Exception {\r
-\r
-               try {\r
-                       System.setProperty("apple.laf.useScreenMenuBar", "true");\r
-                       System.setProperty(\r
-                                       "com.apple.mrj.application.apple.menu.about.name",\r
-                                       "MotorWorkbench");\r
-                       UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\r
-               } catch (Exception e1) {\r
-                       e1.printStackTrace();\r
-               }\r
-               new MotorWorkbench().setVisible(true);\r
-       }\r
-\r
        @Override\r
        public void valueChanged(TreeSelectionEvent e) {\r
                Motor m = getMotor(e.getPath());\r
+               \r
+               if ( m == null )\r
+                       return;\r
 \r
                motors.setSelectedComponent(m2e.get(m));\r
 \r
index 4d84457fe92aa52654b8b264140440ed6c4d8659..09be53d319cfc4992aff010e5eb9d4d7c29c9f71 100644 (file)
@@ -85,6 +85,8 @@ public class WorkbenchTreeModel extends DefaultTreeModel {
                                remove(3);
                                add(fn);
                                nodesChanged(this, new int[]{3});
+                       } else {
+                               nodeChanged(this);
                        }
                }