Made editors have their own list of fuels
authorBill Kuker <bkuker@billkuker.com>
Fri, 5 Nov 2010 14:46:49 +0000 (14:46 +0000)
committerBill Kuker <bkuker@billkuker.com>
Fri, 5 Nov 2010 14:46:49 +0000 (14:46 +0000)
gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorEditor.java
gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java

index 988ad6c53a7c3349061b87a0432050a0e0f876d7..b71748c09fb4441093abfd6d318a63abf0774748 100644 (file)
@@ -10,6 +10,7 @@ import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;\r
 import java.beans.PropertyVetoException;\r
 import java.io.IOException;\r
+import java.util.Collection;\r
 import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
@@ -19,7 +20,7 @@ import javax.measure.quantity.Length;
 import javax.measure.unit.SI;\r
 import javax.swing.Box;\r
 import javax.swing.BoxLayout;\r
-import javax.swing.ComboBoxModel;\r
+import javax.swing.DefaultComboBoxModel;\r
 import javax.swing.JButton;\r
 import javax.swing.JComboBox;\r
 import javax.swing.JFrame;\r
@@ -74,7 +75,11 @@ public class MotorEditor extends JTabbedPane implements PropertyChangeListener {
        Burn burn;\r
 \r
        private Vector<BurnWatcher> burnWatchers = new Vector<BurnWatcher>();\r
-       private ComboBoxModel availableFuels;\r
+       private DefaultComboBoxModel availableFuels = new DefaultComboBoxModel();\r
+       \r
+       public void addFuel(Fuel f){\r
+               availableFuels.addElement(f);\r
+       }\r
 \r
        //private static final int XML_TAB = 0;\r
        private static final int CASING_TAB = 0;\r
@@ -332,9 +337,10 @@ public class MotorEditor extends JTabbedPane implements PropertyChangeListener {
 \r
        }\r
 \r
-       public MotorEditor(Motor m, ComboBoxModel fuels) {\r
+       public MotorEditor(Motor m, Collection<Fuel> fuels) {\r
                super(JTabbedPane.BOTTOM);\r
-               this.availableFuels = fuels;\r
+               for ( Fuel f : fuels )\r
+                       addFuel(f);\r
                text.setName("XML");\r
                text.setEditable(false);\r
                //add(text, XML_TAB);\r
index 0abe084682f8639a8cbfbb9a649c59270cb29ee9..894f599b5816a6fe1c487e266dc9bc5c7b042da0 100644 (file)
@@ -9,11 +9,9 @@ import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;\r
 import java.io.File;\r
 import java.util.HashMap;\r
-import java.util.List;\r
 import java.util.Vector;\r
 \r
 import javax.swing.ButtonGroup;\r
-import javax.swing.DefaultComboBoxModel;\r
 import javax.swing.JFrame;\r
 import javax.swing.JMenu;\r
 import javax.swing.JMenuBar;\r
@@ -37,10 +35,7 @@ import com.billkuker.rocketry.motorsim.Burn;
 import com.billkuker.rocketry.motorsim.Fuel;\r
 import com.billkuker.rocketry.motorsim.Motor;\r
 import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;\r
-import com.billkuker.rocketry.motorsim.fuel.KNDX;\r
-import com.billkuker.rocketry.motorsim.fuel.KNER;\r
-import com.billkuker.rocketry.motorsim.fuel.KNSB;\r
-import com.billkuker.rocketry.motorsim.fuel.KNSU;\r
+import com.billkuker.rocketry.motorsim.fuel.FuelResolver;\r
 import com.billkuker.rocketry.motorsim.io.ENGExporter;\r
 import com.billkuker.rocketry.motorsim.io.MotorIO;\r
 import com.billkuker.rocketry.motorsim.visual.FuelPanel;\r
@@ -50,14 +45,6 @@ import com.billkuker.rocketry.motorsim.visual.workbench.WorkbenchTreeModel.FuelN
 public class MotorWorkbench extends JFrame implements TreeSelectionListener {\r
        private static final long serialVersionUID = 1L;\r
        \r
-       private List<Class<? extends Fuel>> fuelTypes = new Vector<Class<? extends Fuel>>();\r
-       {\r
-               fuelTypes.add(KNSB.class);\r
-               fuelTypes.add(KNSU.class);\r
-               fuelTypes.add(KNER.class);\r
-               fuelTypes.add(KNDX.class);\r
-       }\r
-       \r
        private JPanel top;\r
        private JSplitPane split;\r
        private JTree tree;\r
@@ -70,8 +57,7 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
        private HashMap<File, MotorEditor> f2e = new HashMap<File, MotorEditor>();\r
 \r
        private HashMap<Motor, MotorEditor> m2e = new HashMap<Motor, MotorEditor>();\r
-       \r
-       private DefaultComboBoxModel fuels = new DefaultComboBoxModel();\r
+\r
        \r
        public MotorWorkbench() {\r
                setTitle("MotorSim 1.0 RC1");\r
@@ -107,16 +93,8 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
                \r
                top.add(split, BorderLayout.CENTER);\r
                \r
-               for ( Class<? extends Fuel> f : fuelTypes){\r
-                       try {\r
-                               addFuel(f.newInstance());\r
-                       } catch (InstantiationException e) {\r
-                               // TODO Auto-generated catch block\r
-                               e.printStackTrace();\r
-                       } catch (IllegalAccessException e) {\r
-                               // TODO Auto-generated catch block\r
-                               e.printStackTrace();\r
-                       }\r
+               for ( Fuel f : FuelResolver.getFuelMap().values() ){\r
+                       addFuel(f);\r
                }\r
 \r
                setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);\r
@@ -344,8 +322,8 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
        }\r
        \r
        private void addFuel(Fuel f){\r
-               \r
-               fuels.addElement(f);\r
+               for ( MotorEditor e : m2e.values() )\r
+                       e.addFuel(f);\r
                FuelPanel fp = new FuelPanel(f);\r
                FuelNode fn = tm.new FuelNode(fp, f);\r
                tm.getFuels().add(fn);\r
@@ -355,7 +333,8 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
        \r
        private void newFuel(){\r
                final SRFuelEditor ed = new SRFuelEditor();\r
-               fuels.addElement(ed.getFuel());\r
+               for ( MotorEditor e : m2e.values() )\r
+                       e.addFuel(ed.getFuel());\r
                final FuelEditNode node = tm.new FuelEditNode(ed);\r
                tm.getFuels().add(node);\r
                tm.nodeStructureChanged(tm.getFuels());\r
@@ -384,7 +363,7 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
 \r
        public void addMotor(Motor m, File f) {\r
                tm.addMotor(m);\r
-               MotorEditor e = new MotorEditor(m, fuels);\r
+               MotorEditor e = new MotorEditor(m, FuelResolver.getFuelMap().values());\r
                e.addBurnWatcher(mb);\r
                String title;\r
                if (f == null) {\r