1 package com.billkuker.rocketry.motorsim.visual.workbench;
\r
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.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
21 public class FuelsEditor extends MultiObjectEditor<Fuel, AbstractFuelEditor> {
\r
23 public FuelsEditor(Frame frame) {
\r
24 super(frame, "Fuel");
\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
38 public Fuel newObject() {
\r
39 return new PiecewiseLinearFuel();
\r
43 protected Fuel loadFromFile(File f) throws IOException {
\r
44 return MotorIO.readFuel(new FileInputStream(f));
\r
48 protected void saveToFile(Fuel o, File f) throws IOException {
\r
49 MotorIO.writeFuel(o, new FileOutputStream(f));
\r
52 public static void main(String args[]){
\r
53 JFrame f = new JFrame();
\r
54 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
\r
56 f.add(fe = new FuelsEditor(f));
\r
58 f.setJMenuBar(b = new JMenuBar());
\r
59 b.add(fe.getMenu());
\r
60 f.setSize(1024, 768);
\r