1 package com.billkuker.rocketry.motorsim.visual.workbench;
\r
3 import java.awt.event.ActionEvent;
\r
4 import java.awt.event.ActionListener;
\r
5 import java.awt.event.WindowEvent;
\r
6 import java.awt.event.WindowListener;
\r
8 import javax.swing.ButtonGroup;
\r
9 import javax.swing.JFrame;
\r
10 import javax.swing.JMenu;
\r
11 import javax.swing.JMenuBar;
\r
12 import javax.swing.JMenuItem;
\r
13 import javax.swing.JOptionPane;
\r
14 import javax.swing.JRadioButtonMenuItem;
\r
15 import javax.swing.JSeparator;
\r
17 import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;
\r
18 import com.billkuker.rocketry.motorsim.fuel.FuelsEditor;
\r
19 import com.billkuker.rocketry.motorsim.visual.RememberJFrame;
\r
22 public class MotorWorkbench extends RememberJFrame {
\r
23 public static final String version = "2.0 BETA2";
\r
24 public static final String name = "MotorSim " + version;
\r
25 private static final long serialVersionUID = 1L;
\r
27 private MultiMotorThrustChart mb;
\r
28 private JFrame allBurns;
\r
30 private SettingsEditor settings = new SettingsEditor(this);
\r
32 private JFrame fuelEditorFrame = new RememberJFrame(800,600){
\r
33 private static final long serialVersionUID = 1L;
\r
36 add(fuelEditor = new FuelsEditor(this));
\r
38 setJMenuBar(b = new JMenuBar());
\r
39 b.add(fuelEditor.getMenu());
\r
40 setTitle(name + " - Fuel Editor");
\r
43 private FuelsEditor fuelEditor;
\r
45 private MotorsEditor motorsEditor;
\r
48 public MotorWorkbench() {
\r
52 motorsEditor = new MotorsEditor(this);
\r
53 setContentPane(motorsEditor);
\r
57 mb = new MultiMotorThrustChart();
\r
58 allBurns = new JFrame();
\r
59 allBurns.setTitle("All Burns");
\r
60 allBurns.setSize(800, 600);
\r
63 setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
\r
65 addWindowListener(new WindowListener() {
\r
68 public void windowOpened(WindowEvent e) {}
\r
71 public void windowIconified(WindowEvent e) {}
\r
74 public void windowDeiconified(WindowEvent e) {}
\r
77 public void windowDeactivated(WindowEvent e) {}
\r
80 public void windowClosing(WindowEvent e) {
\r
85 public void windowClosed(WindowEvent e) {}
\r
88 public void windowActivated(WindowEvent e) {}
\r
93 private void maybeQuit(){
\r
94 if (motorsEditor.hasDirty()) {
\r
95 int response = JOptionPane
\r
97 MotorWorkbench.this,
\r
98 "There are unsaved Motors.\nExit Anyway?",
\r
100 JOptionPane.YES_NO_OPTION);
\r
101 if (response == JOptionPane.NO_OPTION) {
\r
105 if (fuelEditor.hasDirty()) {
\r
106 int response = JOptionPane
\r
107 .showConfirmDialog(
\r
108 MotorWorkbench.this,
\r
109 "There are unsaved Fuels.\nExit Anyway?",
\r
111 JOptionPane.YES_NO_OPTION);
\r
112 if (response == JOptionPane.NO_OPTION) {
\r
116 MotorWorkbench.this.dispose();
\r
119 private void addMenu() {
\r
121 setJMenuBar(new JMenuBar() {
\r
122 private static final long serialVersionUID = 1L;
\r
125 JMenu file = motorsEditor.getMenu();
\r
126 file.add(new JSeparator());
\r
127 file.add(new JMenuItem("Quit") {
\r
128 private static final long serialVersionUID = 1L;
\r
130 addActionListener(new ActionListener() {
\r
132 public void actionPerformed(ActionEvent e) {
\r
140 add(new JMenu("Settings") {
\r
141 private static final long serialVersionUID = 1L;
\r
143 ButtonGroup units = new ButtonGroup();
\r
144 JRadioButtonMenuItem sci = new JRadioButtonMenuItem(
\r
146 JRadioButtonMenuItem nonsci = new JRadioButtonMenuItem(
\r
150 sci.setSelected(UnitPreference.getUnitPreference() == UnitPreference.SI);
\r
151 nonsci.setSelected(UnitPreference.getUnitPreference() == UnitPreference.NONSI);
\r
152 sci.addActionListener(new ActionListener() {
\r
153 public void actionPerformed(ActionEvent arg0) {
\r
155 .setUnitPreference(UnitPreference.SI);
\r
158 nonsci.addActionListener(new ActionListener() {
\r
159 public void actionPerformed(ActionEvent arg0) {
\r
161 .setUnitPreference(UnitPreference.NONSI);
\r
167 add(new JSeparator());
\r
168 add(new JMenuItem("Simulation Settings"){
\r
169 private static final long serialVersionUID = 1L;
\r
171 addActionListener(new ActionListener() {
\r
173 public void actionPerformed(ActionEvent e) {
\r
174 settings.setVisible(true);
\r
181 add(new JMenu("View") {
\r
182 private static final long serialVersionUID = 1L;
\r
184 add(new JMenuItem("Detach \"All Motors\" tabs") {
\r
185 private static final long serialVersionUID = 1L;
\r
187 addActionListener(new ActionListener() {
\r
189 public void actionPerformed(ActionEvent arg0) {
\r
190 motorsEditor.detach();
\r
195 add(new JMenuItem("Show Fuel Editor") {
\r
196 private static final long serialVersionUID = 1L;
\r
198 addActionListener(new ActionListener() {
\r
200 public void actionPerformed(ActionEvent arg0) {
\r
201 fuelEditorFrame.setVisible(true);
\r
202 fuelEditorFrame.toFront();
\r