adding menu
authorBill Kuker <bkuker@billkuker.com>
Tue, 14 Jul 2009 12:28:20 +0000 (12:28 +0000)
committerBill Kuker <bkuker@billkuker.com>
Tue, 14 Jul 2009 12:28:20 +0000 (12:28 +0000)
src/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java

index f1b8da960afaca6d645078b54eb63bd006618a3a..9027d8d46070734838ebf8cf1c4984f4f660bc14 100644 (file)
@@ -2,11 +2,17 @@ package com.billkuker.rocketry.motorsim.visual.workbench;
 \r
 import java.awt.BorderLayout;\r
 import java.awt.Dimension;\r
+import java.awt.event.ActionEvent;\r
+import java.awt.event.ActionListener;\r
 import java.util.HashMap;\r
 \r
+import javax.swing.ButtonGroup;\r
 import javax.swing.JButton;\r
 import javax.swing.JFrame;\r
+import javax.swing.JMenu;\r
+import javax.swing.JMenuBar;\r
 import javax.swing.JPanel;\r
+import javax.swing.JRadioButtonMenuItem;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JSplitPane;\r
 import javax.swing.JTabbedPane;\r
@@ -21,6 +27,7 @@ import javax.swing.tree.TreePath;
 import javax.swing.tree.TreeSelectionModel;\r
 \r
 import com.billkuker.rocketry.motorsim.Motor;\r
+import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;\r
 \r
 public class MotorWorkbench extends JFrame implements TreeSelectionListener {\r
        private static final long serialVersionUID = 1L;\r
@@ -34,6 +41,8 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
        private HashMap<Motor, MotorEditor> m2e = new HashMap<Motor, MotorEditor>();\r
 \r
        public MotorWorkbench() {\r
+               setTitle("MotorWorkbench");\r
+               addMenu();\r
                setSize(1024, 768);\r
                top = new JPanel(new BorderLayout());\r
                setContentPane(top);\r
@@ -55,8 +64,8 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
 \r
                split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(\r
                                tree), motors);\r
-               //split.setDividerLocation(.25);\r
-               //split.setResizeWeight(.25);\r
+               // split.setDividerLocation(.25);\r
+               // split.setResizeWeight(.25);\r
                top.add(split, BorderLayout.CENTER);\r
 \r
                setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);\r
@@ -64,8 +73,43 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
 \r
                Motor mot = MotorEditor.defaultMotor();\r
                addMotor(mot);\r
-               //mot = MotorEditor.defaultMotor();\r
-               //addMotor(mot);\r
+               // mot = MotorEditor.defaultMotor();\r
+               // addMotor(mot);\r
+\r
+       }\r
+\r
+       private void addMenu() {\r
+\r
+\r
+               setJMenuBar(new JMenuBar() {\r
+                       {\r
+                               add(new JMenu("File") {\r
+\r
+                               });\r
+                               add(new JMenu("Settings") {\r
+                                       {\r
+                                               ButtonGroup units = new ButtonGroup();\r
+                                               JRadioButtonMenuItem sci = new JRadioButtonMenuItem("SI");\r
+                                               JRadioButtonMenuItem nonsci = new JRadioButtonMenuItem("NonSI");\r
+                                               units.add(sci);\r
+                                               units.add(nonsci);\r
+                                               sci.setSelected(true);\r
+                                               sci.addActionListener(new ActionListener() {\r
+                                                       public void actionPerformed(ActionEvent arg0) {\r
+                                                               UnitPreference.preference = UnitPreference.SI;\r
+                                                       }\r
+                                               });\r
+                                               nonsci.addActionListener(new ActionListener() {\r
+                                                       public void actionPerformed(ActionEvent arg0) {\r
+                                                               UnitPreference.preference = UnitPreference.NONSI;\r
+                                                       }\r
+                                               });\r
+                                               add(sci);\r
+                                               add(nonsci);\r
+                                       }\r
+                               });\r
+                       }\r
+               });\r
        }\r
 \r
        public void addMotor(Motor m) {\r
@@ -76,7 +120,11 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
        }\r
 \r
        public static void main(String args[]) throws Exception {\r
+               \r
                try {\r
+                       System.setProperty("apple.laf.useScreenMenuBar", "true");\r
+                       System.setProperty("com.apple.mrj.application.apple.menu.about.name",\r
+                       "MotorWorkbench");\r
                        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());\r
                } catch (Exception e1) {\r
                        e1.printStackTrace();\r
@@ -89,9 +137,10 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
                Motor m = getMotor(e.getPath());\r
 \r
                motors.setSelectedComponent(m2e.get(m));\r
-               \r
-               if ( e.getPath().getLastPathComponent() instanceof DefaultMutableTreeNode ){\r
-                       Object o = ((DefaultMutableTreeNode)e.getPath().getLastPathComponent()).getUserObject();\r
+\r
+               if (e.getPath().getLastPathComponent() instanceof DefaultMutableTreeNode) {\r
+                       Object o = ((DefaultMutableTreeNode) e.getPath()\r
+                                       .getLastPathComponent()).getUserObject();\r
                        m2e.get(m).focusOnObject(o);\r
                }\r
        }\r