1 package com.billkuker.rocketry.motorsim.visual.workbench;
\r
3 import java.awt.FileDialog;
\r
4 import java.awt.event.ActionEvent;
\r
6 import java.io.FileInputStream;
\r
7 import java.io.FileOutputStream;
\r
8 import java.io.IOException;
\r
9 import java.util.Vector;
\r
11 import javax.swing.JFrame;
\r
12 import javax.swing.JMenu;
\r
13 import javax.swing.JMenuItem;
\r
14 import javax.swing.JSeparator;
\r
15 import java.awt.event.ActionListener;
\r
17 import com.billkuker.rocketry.motorsim.Burn;
\r
18 import com.billkuker.rocketry.motorsim.Motor;
\r
19 import com.billkuker.rocketry.motorsim.io.ENGExporter;
\r
20 import com.billkuker.rocketry.motorsim.io.MotorIO;
\r
21 import com.billkuker.rocketry.motorsim.visual.MultiObjectEditor;
\r
23 public class MotorsEditor extends MultiObjectEditor<Motor, MotorEditor> {
\r
24 private static final long serialVersionUID = 1L;
\r
26 MultiMotorThrustChart mbc = new MultiMotorThrustChart();
\r
27 MultiMotorPressureChart mpc = new MultiMotorPressureChart();
\r
29 public MotorsEditor(JFrame f) {
\r
32 addTab("All Thrust", mbc);
\r
33 addTab("All Pressure", mpc);
\r
35 addCreator(new ObjectCreator() {
\r
37 public Motor newObject() {
\r
38 return MotorEditor.defaultMotor();
\r
42 public String getName() {
\r
49 protected void objectAdded(Motor m, MotorEditor e){
\r
50 e.addBurnWatcher(mbc);
\r
51 e.addBurnWatcher(mpc);
\r
55 protected void objectRemoved(Motor m, MotorEditor e){
\r
56 mbc.removeBurn(e.burn);
\r
57 mpc.removeBurn(e.burn);
\r
61 public MotorEditor createEditor(Motor o) {
\r
62 return new MotorEditor(o);
\r
67 protected Motor loadFromFile(File f) throws IOException {
\r
68 return MotorIO.readMotor(new FileInputStream(f));
\r
72 protected void saveToFile(Motor o, File f) throws IOException {
\r
73 MotorIO.writeMotor(o, new FileOutputStream(f));
\r
78 public JMenu getMenu(){
\r
79 JMenu ret = super.getMenu();
\r
80 ret.add(new JSeparator());
\r
81 ret.add(new JMenuItem("Export .ENG"){
\r
82 private static final long serialVersionUID = 1L;
\r
84 addActionListener(new ActionListener() {
\r
86 public void actionPerformed(ActionEvent arg0) {
\r
88 final FileDialog fd = new FileDialog(frame, "Export .ENG File", FileDialog.SAVE);
\r
89 fd.setFile("motorsim.eng");
\r
90 fd.setVisible(true);
\r
91 if (fd.getFile() != null) {
\r
92 File file = new File(fd.getDirectory()
\r
94 MotorEditor me = getSelectedEditor();
\r
95 Vector<Burn> bb = new Vector<Burn>();
\r
98 ENGExporter.export(bb, file);
\r
99 } catch (IOException e) {
\r
100 // TODO Auto-generated catch block
\r
101 e.printStackTrace();
\r