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 private static int lIdx = 0;
\r
25 private static int sIdx = 0;
\r
26 public FuelsEditor(Frame frame) {
\r
27 super(frame, "Fuel");
\r
28 addTab("All Fuels", allFuels);
\r
30 addCreator(new ObjectCreator() {
\r
32 public Fuel newObject() {
\r
33 EditablePiecewiseLinearFuel ret = new EditablePiecewiseLinearFuel();
\r
34 ret.setName("New Linear Fuel " + ++lIdx);
\r
39 public String getName() {
\r
40 return "Linear Fuel";
\r
43 addCreator(new ObjectCreator() {
\r
45 public Fuel newObject() {
\r
46 EditablePiecewiseSaintRobertFuel ret = new EditablePiecewiseSaintRobertFuel();
\r
47 ret.setName("New StRobert Fuel " + ++sIdx);
\r
52 public String getName() {
\r
53 return "Saint Robert Fuel";
\r
60 protected void objectAdded(Fuel f, AbstractFuelEditor e){
\r
61 allFuels.addFuel(f);
\r
65 protected void objectRemoved(Fuel f, AbstractFuelEditor e){
\r
66 allFuels.removeFuel(f);
\r
70 public AbstractFuelEditor createEditor(Fuel o) {
\r
71 if ( o instanceof EditablePiecewiseLinearFuel ){
\r
72 return new LinearFuelEditor((EditablePiecewiseLinearFuel)o);
\r
73 } else if ( o instanceof EditablePiecewiseSaintRobertFuel ){
\r
74 return new SRFuelEditor((EditablePiecewiseSaintRobertFuel)o);
\r
80 protected Fuel loadFromFile(File f) throws IOException {
\r
81 Fuel fuel = MotorIO.readFuel(new FileInputStream(f));
\r
86 protected void saveToFile(Fuel o, File f) throws IOException {
\r
87 MotorIO.writeFuel(o, new FileOutputStream(f));
\r
90 @SuppressWarnings("deprecation")
\r
91 public static void main(String args[]){
\r
92 JFrame f = new JFrame();
\r
93 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
\r
95 f.add(fe = new FuelsEditor(f));
\r
97 f.setJMenuBar(b = new JMenuBar());
\r
98 b.add(fe.getMenu());
\r
99 f.setSize(1024, 768);
\r