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 MultiBurnChart mbc = new MultiBurnChart();
\r
28 public MotorsEditor(JFrame f) {
\r
31 addTab("Thrust Graphs", mbc);
\r
33 addCreator(new ObjectCreator() {
\r
35 public Motor newObject() {
\r
36 return MotorEditor.defaultMotor();
\r
40 public String getName() {
\r
47 protected void objectAdded(Motor m, MotorEditor e){
\r
48 e.addBurnWatcher(mbc);
\r
52 protected void objectRemoved(Motor m, MotorEditor e){
\r
53 mbc.removeBurn(e.burn);
\r
57 public MotorEditor createEditor(Motor o) {
\r
58 return new MotorEditor(o);
\r
63 protected Motor loadFromFile(File f) throws IOException {
\r
64 return MotorIO.readMotor(new FileInputStream(f));
\r
68 protected void saveToFile(Motor o, File f) throws IOException {
\r
69 MotorIO.writeMotor(o, new FileOutputStream(f));
\r
74 public JMenu getMenu(){
\r
75 JMenu ret = super.getMenu();
\r
76 ret.add(new JSeparator());
\r
77 ret.add(new JMenuItem("Export .ENG"){
\r
78 private static final long serialVersionUID = 1L;
\r
80 addActionListener(new ActionListener() {
\r
82 public void actionPerformed(ActionEvent arg0) {
\r
84 final FileDialog fd = new FileDialog(frame, "Export .ENG File", FileDialog.SAVE);
\r
85 fd.setFile("motorsim.eng");
\r
86 fd.setVisible(true);
\r
87 if (fd.getFile() != null) {
\r
88 File file = new File(fd.getDirectory()
\r
90 MotorEditor me = getSelectedEditor();
\r
91 Vector<Burn> bb = new Vector<Burn>();
\r
94 ENGExporter.export(bb, file);
\r
95 } catch (IOException e) {
\r
96 // TODO Auto-generated catch block
\r
97 e.printStackTrace();
\r