1 package com.billkuker.rocketry.motorsim.fuel;
\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.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 private MultiFuelChart allFuels = new MultiFuelChart();
\r
24 public FuelsEditor(Frame frame) {
\r
25 super(frame, "Fuel");
\r
26 addTab("All Fuels", allFuels);
\r
28 addCreator(new ObjectCreator() {
\r
30 public Fuel newObject() {
\r
31 return new EditablePiecewiseLinearFuel();
\r
35 public String getName() {
\r
36 return "Linear Fuel";
\r
39 addCreator(new ObjectCreator() {
\r
41 public Fuel newObject() {
\r
42 return new EditablePiecewiseSaintRobertFuel();
\r
46 public String getName() {
\r
47 return "Saint Robert Fuel";
\r
53 public AbstractFuelEditor createEditor(Fuel o) {
\r
54 if ( o instanceof EditablePiecewiseLinearFuel ){
\r
55 return new LinearFuelEditor((EditablePiecewiseLinearFuel)o);
\r
56 } else if ( o instanceof EditablePiecewiseSaintRobertFuel ){
\r
57 return new SRFuelEditor((EditablePiecewiseSaintRobertFuel)o);
\r
63 protected Fuel loadFromFile(File f) throws IOException {
\r
64 Fuel fuel = MotorIO.readFuel(new FileInputStream(f));
\r
69 protected void saveToFile(Fuel o, File f) throws IOException {
\r
70 MotorIO.writeFuel(o, new FileOutputStream(f));
\r
73 @SuppressWarnings("deprecation")
\r
74 public static void main(String args[]){
\r
75 JFrame f = new JFrame();
\r
76 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
\r
78 f.add(fe = new FuelsEditor(f));
\r
80 f.setJMenuBar(b = new JMenuBar());
\r
81 b.add(fe.getMenu());
\r
82 f.setSize(1024, 768);
\r