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