61f7ca85a0f2e989f993f3ed31e34d3a000c8196
[sw/motorsim] / gui / com / billkuker / rocketry / motorsim / visual / workbench / FuelsEditor.java
1 package com.billkuker.rocketry.motorsim.visual.workbench;\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.EditableFuel;\r
14 import com.billkuker.rocketry.motorsim.fuel.PiecewiseLinearFuel;\r
15 import com.billkuker.rocketry.motorsim.fuel.SaintRobertFuel;\r
16 import com.billkuker.rocketry.motorsim.io.MotorIO;\r
17 import com.billkuker.rocketry.motorsim.visual.FuelPanel;\r
18 import com.billkuker.rocketry.motorsim.visual.MultiObjectEditor;\r
19 import com.billkuker.rocketry.motorsim.visual.workbench.AbstractFuelEditor.EditablePSRFuel;\r
20 \r
21 public class FuelsEditor extends MultiObjectEditor<Fuel, AbstractFuelEditor> {\r
22 \r
23         public FuelsEditor(Frame frame) {\r
24                 super(frame, "Fuel");\r
25         }\r
26 \r
27         @Override\r
28         public AbstractFuelEditor createEditor(Fuel o) {\r
29                 if ( o instanceof PiecewiseLinearFuel ){\r
30                         return new LinearFuelEditor((PiecewiseLinearFuel)o);\r
31                 } else if ( o instanceof EditableFuel ){\r
32                         return new SRFuelEditor(new EditablePSRFuel(SaintRobertFuel.Type.SI));\r
33                 }\r
34                 return null;\r
35         }\r
36 \r
37         @Override\r
38         public Fuel newObject() {\r
39                 return new PiecewiseLinearFuel();\r
40         }\r
41 \r
42         @Override\r
43         protected Fuel loadFromFile(File f) throws IOException {\r
44                 return MotorIO.readFuel(new FileInputStream(f));\r
45         }\r
46 \r
47         @Override\r
48         protected void saveToFile(Fuel o, File f) throws IOException {\r
49                 MotorIO.writeFuel(o, new FileOutputStream(f));\r
50         }\r
51         \r
52         public static void main(String args[]){\r
53                 JFrame f = new JFrame();\r
54                 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\r
55                 FuelsEditor fe;\r
56                 f.add(fe = new FuelsEditor(f));\r
57                 JMenuBar b;\r
58                 f.setJMenuBar(b = new JMenuBar());\r
59                 b.add(fe.getMenu());\r
60                 f.setSize(1024, 768);\r
61                 f.show();\r
62         }\r
63 \r
64 }\r