Remember window locations
[sw/motorsim] / gui / com / billkuker / rocketry / motorsim / visual / workbench / MotorWorkbench.java
1 package com.billkuker.rocketry.motorsim.visual.workbench;\r
2 \r
3 import java.awt.event.ActionEvent;\r
4 import java.awt.event.ActionListener;\r
5 \r
6 import javax.swing.ButtonGroup;\r
7 import javax.swing.JFrame;\r
8 import javax.swing.JMenu;\r
9 import javax.swing.JMenuBar;\r
10 import javax.swing.JMenuItem;\r
11 import javax.swing.JRadioButtonMenuItem;\r
12 import javax.swing.WindowConstants;\r
13 \r
14 import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;\r
15 import com.billkuker.rocketry.motorsim.fuel.FuelsEditor;\r
16 import com.billkuker.rocketry.motorsim.visual.RememberJFrame;\r
17 \r
18 \r
19 public class MotorWorkbench extends RememberJFrame {\r
20         public static final String name = "MotorSim 2.0 BETA";\r
21         private static final long serialVersionUID = 1L;\r
22         \r
23         private MultiMotorThrustChart mb;\r
24         private JFrame allBurns;\r
25         \r
26         private JFrame fuelEditorFrame = new RememberJFrame(800,600){\r
27                 private static final long serialVersionUID = 1L;\r
28                 {\r
29                         setSize(800, 600);\r
30                         add(fuelEditor = new FuelsEditor(this));\r
31                         JMenuBar b;\r
32                         setJMenuBar(b = new JMenuBar());\r
33                         b.add(fuelEditor.getMenu());\r
34                         setTitle(name + " - Fuel Editor");\r
35                 }\r
36         };\r
37         private FuelsEditor fuelEditor;\r
38         \r
39         private MotorsEditor motorsEditor;\r
40 \r
41         \r
42         public MotorWorkbench() {\r
43                 super(1024, 768);\r
44                 setTitle(name);\r
45 \r
46                 motorsEditor = new MotorsEditor(this);\r
47                 setContentPane(motorsEditor);\r
48                 \r
49                 addMenu();\r
50                 \r
51                 mb = new MultiMotorThrustChart();\r
52                 allBurns = new JFrame();\r
53                 allBurns.setTitle("All Burns");\r
54                 allBurns.setSize(800, 600);\r
55                 setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);\r
56                 allBurns.add(mb);\r
57 \r
58 \r
59                 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);\r
60                 setVisible(true);\r
61 \r
62         }\r
63 \r
64         private void addMenu() {\r
65 \r
66                 setJMenuBar(new JMenuBar() {\r
67                         private static final long serialVersionUID = 1L;\r
68 \r
69                         {\r
70                                 add(motorsEditor.getMenu());\r
71                                 \r
72                                 add(new JMenu("Settings") {\r
73                                         private static final long serialVersionUID = 1L;\r
74                                         {\r
75                                                 ButtonGroup units = new ButtonGroup();\r
76                                                 JRadioButtonMenuItem sci = new JRadioButtonMenuItem(\r
77                                                                 "SI");\r
78                                                 JRadioButtonMenuItem nonsci = new JRadioButtonMenuItem(\r
79                                                                 "NonSI");\r
80                                                 units.add(sci);\r
81                                                 units.add(nonsci);\r
82                                                 sci.setSelected(UnitPreference.getUnitPreference() == UnitPreference.SI);\r
83                                                 nonsci.setSelected(UnitPreference.getUnitPreference() == UnitPreference.NONSI);\r
84                                                 sci.addActionListener(new ActionListener() {\r
85                                                         public void actionPerformed(ActionEvent arg0) {\r
86                                                                 UnitPreference\r
87                                                                                 .setUnitPreference(UnitPreference.SI);\r
88                                                         }\r
89                                                 });\r
90                                                 nonsci.addActionListener(new ActionListener() {\r
91                                                         public void actionPerformed(ActionEvent arg0) {\r
92                                                                 UnitPreference\r
93                                                                                 .setUnitPreference(UnitPreference.NONSI);\r
94                                                         }\r
95                                                 });\r
96                                                 add(sci);\r
97                                                 add(nonsci);\r
98                                         }\r
99                                 });\r
100                                 add(new JMenu("View") {\r
101                                         private static final long serialVersionUID = 1L;\r
102                                         {\r
103                                                 add(new JMenuItem("Detach \"All Motors\" tabs") {\r
104                                                         private static final long serialVersionUID = 1L;\r
105                                                         {\r
106                                                                 addActionListener(new ActionListener() {\r
107                                                                         @Override\r
108                                                                         public void actionPerformed(ActionEvent arg0) {\r
109                                                                                 motorsEditor.detach();\r
110                                                                         }\r
111                                                                 });\r
112                                                         }\r
113                                                 });\r
114                                                 add(new JMenuItem("Show Fuel Editor") {\r
115                                                         private static final long serialVersionUID = 1L;\r
116                                                         {\r
117                                                                 addActionListener(new ActionListener() {\r
118                                                                         @Override\r
119                                                                         public void actionPerformed(ActionEvent arg0) {\r
120                                                                                 fuelEditorFrame.setVisible(true);\r
121                                                                                 fuelEditorFrame.toFront();\r
122                                                                         }\r
123                                                                 });\r
124                                                         }\r
125                                                 });\r
126                                         }\r
127                                 });\r
128                         }\r
129                 });\r
130         }\r
131 \r
132         \r
133 \r
134 \r
135         \r
136 }\r