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 BETA";
\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 JFrame fuelEditorFrame = new RememberJFrame(800,600){
\r
31 private static final long serialVersionUID = 1L;
\r
34 add(fuelEditor = new FuelsEditor(this));
\r
36 setJMenuBar(b = new JMenuBar());
\r
37 b.add(fuelEditor.getMenu());
\r
38 setTitle(name + " - Fuel Editor");
\r
41 private FuelsEditor fuelEditor;
\r
43 private MotorsEditor motorsEditor;
\r
46 public MotorWorkbench() {
\r
50 motorsEditor = new MotorsEditor(this);
\r
51 setContentPane(motorsEditor);
\r
55 mb = new MultiMotorThrustChart();
\r
56 allBurns = new JFrame();
\r
57 allBurns.setTitle("All Burns");
\r
58 allBurns.setSize(800, 600);
\r
61 setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
\r
63 addWindowListener(new WindowListener() {
\r
66 public void windowOpened(WindowEvent e) {}
\r
69 public void windowIconified(WindowEvent e) {}
\r
72 public void windowDeiconified(WindowEvent e) {}
\r
75 public void windowDeactivated(WindowEvent e) {}
\r
78 public void windowClosing(WindowEvent e) {
\r
83 public void windowClosed(WindowEvent e) {}
\r
86 public void windowActivated(WindowEvent e) {}
\r
91 private void maybeQuit(){
\r
92 if (motorsEditor.hasDirty()) {
\r
93 int response = JOptionPane
\r
95 MotorWorkbench.this,
\r
96 "There are unsaved Motors.\nExit Anyway?",
\r
98 JOptionPane.YES_NO_OPTION);
\r
99 if (response == JOptionPane.NO_OPTION) {
\r
103 if (fuelEditor.hasDirty()) {
\r
104 int response = JOptionPane
\r
105 .showConfirmDialog(
\r
106 MotorWorkbench.this,
\r
107 "There are unsaved Fuels.\nExit Anyway?",
\r
109 JOptionPane.YES_NO_OPTION);
\r
110 if (response == JOptionPane.NO_OPTION) {
\r
114 MotorWorkbench.this.dispose();
\r
117 private void addMenu() {
\r
119 setJMenuBar(new JMenuBar() {
\r
120 private static final long serialVersionUID = 1L;
\r
123 JMenu file = motorsEditor.getMenu();
\r
124 file.add(new JSeparator());
\r
125 file.add(new JMenuItem("Quit") {
\r
126 private static final long serialVersionUID = 1L;
\r
128 addActionListener(new ActionListener() {
\r
130 public void actionPerformed(ActionEvent e) {
\r
138 add(new JMenu("Settings") {
\r
139 private static final long serialVersionUID = 1L;
\r
141 ButtonGroup units = new ButtonGroup();
\r
142 JRadioButtonMenuItem sci = new JRadioButtonMenuItem(
\r
144 JRadioButtonMenuItem nonsci = new JRadioButtonMenuItem(
\r
148 sci.setSelected(UnitPreference.getUnitPreference() == UnitPreference.SI);
\r
149 nonsci.setSelected(UnitPreference.getUnitPreference() == UnitPreference.NONSI);
\r
150 sci.addActionListener(new ActionListener() {
\r
151 public void actionPerformed(ActionEvent arg0) {
\r
153 .setUnitPreference(UnitPreference.SI);
\r
156 nonsci.addActionListener(new ActionListener() {
\r
157 public void actionPerformed(ActionEvent arg0) {
\r
159 .setUnitPreference(UnitPreference.NONSI);
\r
166 add(new JMenu("View") {
\r
167 private static final long serialVersionUID = 1L;
\r
169 add(new JMenuItem("Detach \"All Motors\" tabs") {
\r
170 private static final long serialVersionUID = 1L;
\r
172 addActionListener(new ActionListener() {
\r
174 public void actionPerformed(ActionEvent arg0) {
\r
175 motorsEditor.detach();
\r
180 add(new JMenuItem("Show Fuel Editor") {
\r
181 private static final long serialVersionUID = 1L;
\r
183 addActionListener(new ActionListener() {
\r
185 public void actionPerformed(ActionEvent arg0) {
\r
186 fuelEditorFrame.setVisible(true);
\r
187 fuelEditorFrame.toFront();
\r