3 import java.awt.Frame;
\r
5 import java.io.FileInputStream;
\r
6 import java.io.FileOutputStream;
\r
7 import java.io.IOException;
\r
9 import javax.swing.JFrame;
\r
10 import javax.swing.JMenuBar;
\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
18 public class FuelsEditor extends MultiObjectEditor<Fuel, AbstractFuelEditor> {
\r
20 private static final long serialVersionUID = 1L;
\r
22 public FuelsEditor(Frame frame) {
\r
23 super(frame, "Fuel");
\r
24 addCreator(new ObjectCreator() {
\r
26 public Fuel newObject() {
\r
27 return new EditablePiecewiseLinearFuel();
\r
31 public String getName() {
\r
32 return "Linear Fuel";
\r
35 addCreator(new ObjectCreator() {
\r
37 public Fuel newObject() {
\r
38 return new EditablePiecewiseSaintRobertFuel();
\r
42 public String getName() {
\r
43 return "Saint Robert Fuel";
\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
59 public Fuel newObject() {
\r
60 return new EditablePiecewiseLinearFuel();
\r
64 protected Fuel loadFromFile(File f) throws IOException {
\r
65 Fuel fuel = MotorIO.readFuel(new FileInputStream(f));
\r
70 protected void saveToFile(Fuel o, File f) throws IOException {
\r
71 MotorIO.writeFuel(o, new FileOutputStream(f));
\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
79 f.add(fe = new FuelsEditor(f));
\r
81 f.setJMenuBar(b = new JMenuBar());
\r
82 b.add(fe.getMenu());
\r
83 f.setSize(1024, 768);
\r