+++ /dev/null
-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
--- /dev/null
+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
\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
\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
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
}\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