Index names for graph safty
[sw/motorsim] / gui / com / billkuker / rocketry / motorsim / fuel / FuelsEditor.java
1 package com.billkuker.rocketry.motorsim.fuel;\r
2 \r
3 import java.awt.Frame;\r
4 import java.io.File;\r
5 import java.io.FileInputStream;\r
6 import java.io.FileOutputStream;\r
7 import java.io.IOException;\r
8 \r
9 import javax.swing.JFrame;\r
10 import javax.swing.JMenuBar;\r
11 \r
12 import com.billkuker.rocketry.motorsim.Fuel;\r
13 import com.billkuker.rocketry.motorsim.fuel.editable.EditablePiecewiseLinearFuel;\r
14 import com.billkuker.rocketry.motorsim.fuel.editable.EditablePiecewiseSaintRobertFuel;\r
15 import com.billkuker.rocketry.motorsim.io.MotorIO;\r
16 import com.billkuker.rocketry.motorsim.visual.MultiObjectEditor;\r
17 \r
18 public class FuelsEditor extends MultiObjectEditor<Fuel, AbstractFuelEditor> {\r
19 \r
20         private static final long serialVersionUID = 1L;\r
21         \r
22         private MultiFuelChart allFuels = new MultiFuelChart();\r
23 \r
24         private static int lIdx = 0;\r
25         private static int sIdx = 0;\r
26         public FuelsEditor(Frame frame) {\r
27                 super(frame, "Fuel");\r
28                 addTab("All Fuels", allFuels);\r
29                 \r
30                 addCreator(new ObjectCreator() {\r
31                         @Override\r
32                         public Fuel newObject() {\r
33                                 EditablePiecewiseLinearFuel ret = new EditablePiecewiseLinearFuel();\r
34                                 ret.setName("New Linear Fuel " + ++lIdx);\r
35                                 return ret;\r
36                         }\r
37 \r
38                         @Override\r
39                         public String getName() {\r
40                                 return "Linear Fuel";\r
41                         }\r
42                 });\r
43                 addCreator(new ObjectCreator() {\r
44                         @Override\r
45                         public Fuel newObject() {\r
46                                 EditablePiecewiseSaintRobertFuel ret = new EditablePiecewiseSaintRobertFuel();\r
47                                 ret.setName("New StRobert Fuel " + ++sIdx);\r
48                                 return ret;\r
49                         }\r
50 \r
51                         @Override\r
52                         public String getName() {\r
53                                 return "Saint Robert Fuel";\r
54                         }\r
55                 });\r
56         }\r
57         \r
58         /*\r
59         @Override\r
60         protected void objectAdded(Fuel f, AbstractFuelEditor e){\r
61                 allFuels.addFuel(f);\r
62         }\r
63         \r
64         @Override\r
65         protected void objectRemoved(Fuel f, AbstractFuelEditor e){\r
66                 allFuels.removeFuel(f);\r
67         }*/\r
68 \r
69         @Override\r
70         public AbstractFuelEditor createEditor(Fuel o) {\r
71                 if ( o instanceof EditablePiecewiseLinearFuel ){\r
72                         return new LinearFuelEditor((EditablePiecewiseLinearFuel)o);\r
73                 } else if ( o instanceof EditablePiecewiseSaintRobertFuel ){\r
74                         return new SRFuelEditor((EditablePiecewiseSaintRobertFuel)o);\r
75                 }\r
76                 return null;\r
77         }\r
78 \r
79         @Override\r
80         protected Fuel loadFromFile(File f) throws IOException {\r
81                 Fuel fuel =  MotorIO.readFuel(new FileInputStream(f));\r
82                 return fuel;\r
83         }\r
84 \r
85         @Override\r
86         protected void saveToFile(Fuel o, File f) throws IOException {\r
87                 MotorIO.writeFuel(o, new FileOutputStream(f));\r
88         }\r
89         \r
90         @SuppressWarnings("deprecation")\r
91         public static void main(String args[]){\r
92                 JFrame f = new JFrame();\r
93                 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r
94                 FuelsEditor fe;\r
95                 f.add(fe = new FuelsEditor(f));\r
96                 JMenuBar b;\r
97                 f.setJMenuBar(b = new JMenuBar());\r
98                 b.add(fe.getMenu());\r
99                 f.setSize(1024, 768);\r
100                 f.show();\r
101         }\r
102 \r
103 }\r