integrate multiburnchart in motors editor
authorBill Kuker <bkuker@billkuker.com>
Mon, 22 Nov 2010 13:47:19 +0000 (13:47 +0000)
committerBill Kuker <bkuker@billkuker.com>
Mon, 22 Nov 2010 13:47:19 +0000 (13:47 +0000)
gui/com/billkuker/rocketry/motorsim/visual/MultiObjectEditor.java
gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java
gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorsEditor.java
gui/com/billkuker/rocketry/motorsim/visual/workbench/MultiBurnChart.java

index 28fed63b7ab2049bbc0b40565e9a491962288b23..6d17dd476c55d3b151afe0c8aa7e01782e61c44f 100644 (file)
@@ -53,9 +53,9 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
                this.noun = " " + noun.trim();\r
        }\r
        \r
-       protected void objectAdded(OBJECT o){}\r
+       protected void objectAdded(OBJECT o, EDITOR e){}\r
        \r
-       protected void objectRemoved(OBJECT o){}\r
+       protected void objectRemoved(OBJECT o, EDITOR e){}\r
        \r
        protected final void addCreator(ObjectCreator c){\r
                creators.add(c);\r
@@ -115,7 +115,7 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
                editorToObject.remove(e);\r
                fileToEditor.remove(f);\r
                editorToFile.remove(e);\r
-               objectRemoved(o);\r
+               objectRemoved(o, e);\r
                remove(e);\r
        }\r
        \r
@@ -177,7 +177,7 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
                                fileToEditor.put(file, e);\r
                                editorToFile.put(e, file);\r
                                addTab(file.getName(), e);      \r
-                               objectAdded(o);\r
+                               objectAdded(o, e);\r
                        } catch (Exception e) {\r
                                errorDialog(e);\r
                        }\r
@@ -279,7 +279,7 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
                editorToObject.put(e, o);\r
                addTab("new", e);\r
                dirty(o);\r
-               objectAdded(o);\r
+               objectAdded(o, e);\r
        }\r
        \r
        public final void load(final File f) throws IOException{\r
@@ -290,7 +290,7 @@ public abstract class MultiObjectEditor<OBJECT, EDITOR extends Component> extend
                fileToEditor.put(f, e);\r
                editorToFile.put(e, f);\r
                addTab(f.getName(), e);\r
-               objectAdded(o);\r
+               objectAdded(o, e);\r
        }\r
        \r
        public abstract EDITOR createEditor(final OBJECT o);\r
index 4b0abd3f60b024a73a13958cce06616123b1b6a4..d3a2475f618597e21b0b005bbe864c037c34dff1 100644 (file)
@@ -98,18 +98,6 @@ public class MotorWorkbench extends JFrame {
                                add(new JMenu("View") {\r
                                        private static final long serialVersionUID = 1L;\r
                                        {\r
-                                               add(new JMenuItem("All Motors Graph") {\r
-                                                       private static final long serialVersionUID = 1L;\r
-                                                       {\r
-                                                               addActionListener(new ActionListener() {\r
-                                                                       @Override\r
-                                                                       public void actionPerformed(ActionEvent arg0) {\r
-                                                                               allBurns.setVisible(true);\r
-                                                                               allBurns.toFront();\r
-                                                                       }\r
-                                                               });\r
-                                                       }\r
-                                               });\r
                                                add(new JMenuItem("Fuel Editor") {\r
                                                        private static final long serialVersionUID = 1L;\r
                                                        {\r
index 48a469aeb4f236e94d3a97e06e2be689d14ac00a..f0b2c24c9b83264e0d8698048299821d3a87d583 100644 (file)
@@ -22,9 +22,14 @@ import com.billkuker.rocketry.motorsim.visual.MultiObjectEditor;
 \r
 public class MotorsEditor extends MultiObjectEditor<Motor, MotorEditor> {\r
        private static final long serialVersionUID = 1L;\r
+       \r
+       MultiBurnChart mbc = new MultiBurnChart();\r
 \r
        public MotorsEditor(JFrame f) {\r
                super(f, "Motor");\r
+               \r
+               addTab("Thrust Graphs", mbc);\r
+               \r
                addCreator(new ObjectCreator() {\r
                        @Override\r
                        public Motor newObject() {\r
@@ -37,6 +42,16 @@ public class MotorsEditor extends MultiObjectEditor<Motor, MotorEditor> {
                        }\r
                });\r
        }\r
+       \r
+       @Override\r
+       protected void objectAdded(Motor m, MotorEditor e){\r
+               e.addBurnWatcher(mbc);\r
+       }\r
+       \r
+       @Override\r
+       protected void objectRemoved(Motor m, MotorEditor e){\r
+               mbc.removeBurn(e.burn);\r
+       }\r
 \r
        @Override\r
        public MotorEditor createEditor(Motor o) {\r
index 6738e94b1ef0ab7a43cb60eee9d5062efec0a4e0..2234029ba9cde2521595ea66d8b8986f1e48d911 100644 (file)
@@ -36,8 +36,8 @@ public class MultiBurnChart extends JPanel implements BurnWatcher {
                                .getPreferredUnit(SI.NEWTON);
                JFreeChart chart = ChartFactory.createXYLineChart(
                                "", // Title
-                               time.toString(), // x-axis Label
-                               force.toString(), // y-axis Label
+                               "Time (" + time.toString() + ")", // x-axis Label
+                               "Thrust (" + force.toString() + ")", // y-axis Label
                                dataset, PlotOrientation.VERTICAL, // Plot Orientation
                                true, // Show Legend
                                true, // Use tool tips