Removed stupid tree
[sw/motorsim] / gui / fuel / FuelsEditor.java
1 package 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         public FuelsEditor(Frame frame) {\r
23                 super(frame, "Fuel");\r
24                 addCreator(new ObjectCreator() {\r
25                         @Override\r
26                         public Fuel newObject() {\r
27                                 return new EditablePiecewiseLinearFuel();\r
28                         }\r
29 \r
30                         @Override\r
31                         public String getName() {\r
32                                 return "Linear Fuel";\r
33                         }\r
34                 });\r
35                 addCreator(new ObjectCreator() {\r
36                         @Override\r
37                         public Fuel newObject() {\r
38                                 return new EditablePiecewiseSaintRobertFuel();\r
39                         }\r
40 \r
41                         @Override\r
42                         public String getName() {\r
43                                 return "Saint Robert Fuel";\r
44                         }\r
45                 });\r
46         }\r
47 \r
48         @Override\r
49         public AbstractFuelEditor createEditor(Fuel o) {\r
50                 if ( o instanceof EditablePiecewiseLinearFuel ){\r
51                         return new LinearFuelEditor((EditablePiecewiseLinearFuel)o);\r
52                 } else if ( o instanceof EditablePiecewiseSaintRobertFuel ){\r
53                         return new SRFuelEditor((EditablePiecewiseSaintRobertFuel)o);\r
54                 }\r
55                 return null;\r
56         }\r
57 \r
58         @Override\r
59         public Fuel newObject() {\r
60                 return new EditablePiecewiseLinearFuel();\r
61         }\r
62 \r
63         @Override\r
64         protected Fuel loadFromFile(File f) throws IOException {\r
65                 Fuel fuel =  MotorIO.readFuel(new FileInputStream(f));\r
66                 return fuel;\r
67         }\r
68 \r
69         @Override\r
70         protected void saveToFile(Fuel o, File f) throws IOException {\r
71                 MotorIO.writeFuel(o, new FileOutputStream(f));\r
72         }\r
73         \r
74         @SuppressWarnings("deprecation")\r
75         public static void main(String args[]){\r
76                 JFrame f = new JFrame();\r
77                 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r
78                 FuelsEditor fe;\r
79                 f.add(fe = new FuelsEditor(f));\r
80                 JMenuBar b;\r
81                 f.setJMenuBar(b = new JMenuBar());\r
82                 b.add(fe.getMenu());\r
83                 f.setSize(1024, 768);\r
84                 f.show();\r
85         }\r
86 \r
87 }\r