Remember window locations
authorBill Kuker <bkuker@billkuker.com>
Wed, 24 Nov 2010 17:42:23 +0000 (17:42 +0000)
committerBill Kuker <bkuker@billkuker.com>
Wed, 24 Nov 2010 17:42:23 +0000 (17:42 +0000)
gui/com/billkuker/rocketry/motorsim/visual/RemeberJFrame.java [deleted file]
gui/com/billkuker/rocketry/motorsim/visual/RememberJFrame.java [new file with mode: 0644]
gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java
gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorsEditor.java

diff --git a/gui/com/billkuker/rocketry/motorsim/visual/RemeberJFrame.java b/gui/com/billkuker/rocketry/motorsim/visual/RemeberJFrame.java
deleted file mode 100644 (file)
index e75622b..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.billkuker.rocketry.motorsim.visual;\r
-\r
-import java.awt.Rectangle;\r
-import java.awt.event.ComponentEvent;\r
-import java.awt.event.ComponentListener;\r
-import java.util.prefs.Preferences;\r
-\r
-import javax.swing.JFrame;\r
-\r
-public class RemeberJFrame extends JFrame {\r
-       private static final long serialVersionUID = 1L;\r
-\r
-\r
-       public RemeberJFrame(int width, int height){\r
-               setSize(width, height);\r
-               restore();\r
-               addComponentListener(new ComponentListener() {\r
-                       @Override\r
-                       public void componentResized(ComponentEvent arg0) {\r
-                               positionChanged();\r
-                       }\r
-                       @Override\r
-                       public void componentMoved(ComponentEvent arg0) {\r
-                               positionChanged();\r
-                       }\r
-                       @Override\r
-                       public void componentHidden(ComponentEvent arg0) {}\r
-                       @Override\r
-                       public void componentShown(ComponentEvent arg0) {}\r
-               });\r
-       }\r
-       \r
-       private void positionChanged(){\r
-               Rectangle r = getBounds();\r
-               Preferences prefs = Preferences.userNodeForPackage(this.getClass());\r
-               boolean max = (getExtendedState() & JFrame.MAXIMIZED_BOTH)!=0;\r
-               if ( !max ){\r
-                       prefs.putInt("w", r.width);\r
-                       prefs.putInt("h", r.height);\r
-                       prefs.putInt("x", r.x);\r
-                       prefs.putInt("y", r.y);\r
-               }\r
-               prefs.putInt("m", max?1:0);\r
-       }\r
-       \r
-       private void restore(){\r
-               Preferences prefs = Preferences.userNodeForPackage(this.getClass());\r
-               Rectangle r = new Rectangle(\r
-                                       prefs.getInt("x", 0),\r
-                                       prefs.getInt("y", 0),\r
-                                       prefs.getInt("w", getSize().width),\r
-                                       prefs.getInt("h", getSize().height)\r
-                                       );\r
-               this.setSize(r.width, r.height);\r
-               setLocation(r.x, r.y);\r
-               \r
-               if ( prefs.getInt("m", 0) == 1 )\r
-                       setExtendedState( getExtendedState()|JFrame.MAXIMIZED_BOTH );\r
-       }\r
-\r
-       \r
-       public static void main(String[] args){\r
-               RemeberJFrame f = new RemeberJFrame(300, 300);\r
-               f.setDefaultCloseOperation(EXIT_ON_CLOSE);\r
-               f.show();\r
-       }\r
-}\r
diff --git a/gui/com/billkuker/rocketry/motorsim/visual/RememberJFrame.java b/gui/com/billkuker/rocketry/motorsim/visual/RememberJFrame.java
new file mode 100644 (file)
index 0000000..0176a41
--- /dev/null
@@ -0,0 +1,72 @@
+package com.billkuker.rocketry.motorsim.visual;\r
+\r
+import java.awt.Rectangle;\r
+import java.awt.event.ComponentEvent;\r
+import java.awt.event.ComponentListener;\r
+import java.util.prefs.Preferences;\r
+\r
+import javax.swing.JFrame;\r
+\r
+public class RememberJFrame extends JFrame {\r
+       private static final long serialVersionUID = 1L;\r
+\r
+\r
+       public RememberJFrame(int width, int height){\r
+               setSize(width, height);\r
+               restore();\r
+               addComponentListener(new ComponentListener() {\r
+                       @Override\r
+                       public void componentResized(ComponentEvent arg0) {\r
+                               positionChanged();\r
+                       }\r
+                       @Override\r
+                       public void componentMoved(ComponentEvent arg0) {\r
+                               positionChanged();\r
+                       }\r
+                       @Override\r
+                       public void componentHidden(ComponentEvent arg0) {}\r
+                       @Override\r
+                       public void componentShown(ComponentEvent arg0) {}\r
+               });\r
+       }\r
+       \r
+       protected String getPositionKey(){\r
+               return this.getClass().getName();\r
+       }\r
+       \r
+       private void positionChanged(){\r
+               Rectangle r = getBounds();\r
+               Preferences prefs = Preferences.userNodeForPackage(this.getClass());\r
+               boolean max = (getExtendedState() & JFrame.MAXIMIZED_BOTH)!=0;\r
+               if ( !max ){\r
+                       prefs.putInt(getPositionKey() + ".w", r.width);\r
+                       prefs.putInt(getPositionKey() + ".h", r.height);\r
+                       prefs.putInt(getPositionKey() + ".x", r.x);\r
+                       prefs.putInt(getPositionKey() + ".y", r.y);\r
+               }\r
+               prefs.putInt("m", max?1:0);\r
+       }\r
+       \r
+       private void restore(){\r
+               Preferences prefs = Preferences.userNodeForPackage(this.getClass());\r
+               Rectangle r = new Rectangle(\r
+                                       prefs.getInt(getPositionKey() + ".x", 0),\r
+                                       prefs.getInt(getPositionKey() + ".y", 0),\r
+                                       prefs.getInt(getPositionKey() + ".w", getSize().width),\r
+                                       prefs.getInt(getPositionKey() + ".h", getSize().height)\r
+                                       );\r
+               this.setSize(r.width, r.height);\r
+               setLocation(r.x, r.y);\r
+               \r
+               if ( prefs.getInt("m", 0) == 1 )\r
+                       setExtendedState( getExtendedState()|JFrame.MAXIMIZED_BOTH );\r
+       }\r
+\r
+       \r
+       @SuppressWarnings("deprecation")\r
+       public static void main(String[] args){\r
+               RememberJFrame f = new RememberJFrame(300, 300);\r
+               f.setDefaultCloseOperation(EXIT_ON_CLOSE);\r
+               f.show();\r
+       }\r
+}\r
index c19afb6b46fae923c32de246c55497a2290770c1..098cf88335bd0a51b5562c2a2be6398eb5d27fa1 100644 (file)
@@ -13,16 +13,17 @@ import javax.swing.WindowConstants;
 \r
 import com.billkuker.rocketry.motorsim.RocketScience.UnitPreference;\r
 import com.billkuker.rocketry.motorsim.fuel.FuelsEditor;\r
+import com.billkuker.rocketry.motorsim.visual.RememberJFrame;\r
 \r
 \r
-public class MotorWorkbench extends JFrame {\r
+public class MotorWorkbench extends RememberJFrame {\r
        public static final String name = "MotorSim 2.0 BETA";\r
        private static final long serialVersionUID = 1L;\r
        \r
        private MultiMotorThrustChart mb;\r
        private JFrame allBurns;\r
        \r
-       private JFrame fuelEditorFrame = new JFrame(){\r
+       private JFrame fuelEditorFrame = new RememberJFrame(800,600){\r
                private static final long serialVersionUID = 1L;\r
                {\r
                        setSize(800, 600);\r
@@ -39,8 +40,8 @@ public class MotorWorkbench extends JFrame {
 \r
        \r
        public MotorWorkbench() {\r
+               super(1024, 768);\r
                setTitle(name);\r
-               setSize(1024, 768);\r
 \r
                motorsEditor = new MotorsEditor(this);\r
                setContentPane(motorsEditor);\r
index a2f214d4ebe854b8429cf076d3be7ff3f1800637..2ecb013e7068b078e2d8e93318fd321b2db33e39 100644 (file)
@@ -23,6 +23,7 @@ import com.billkuker.rocketry.motorsim.Motor;
 import com.billkuker.rocketry.motorsim.io.ENGExporter;\r
 import com.billkuker.rocketry.motorsim.io.MotorIO;\r
 import com.billkuker.rocketry.motorsim.visual.MultiObjectEditor;\r
+import com.billkuker.rocketry.motorsim.visual.RememberJFrame;\r
 \r
 public class MotorsEditor extends MultiObjectEditor<Motor, MotorEditor> {\r
        private static final long serialVersionUID = 1L;\r
@@ -54,8 +55,9 @@ public class MotorsEditor extends MultiObjectEditor<Motor, MotorEditor> {
                        }\r
                });\r
 \r
-               detached = new JFrame();\r
-               detached.setSize(800, 600);\r
+               detached = new RememberJFrame(800,600){\r
+                       private static final long serialVersionUID = 1L;\r
+               };\r
                detached.setTitle(MotorWorkbench.name + " - All Motors");\r
                detached.setContentPane(detachedTabs = new JTabbedPane());\r
 \r