1 package au.gov.amsa.animator; 2 3 import java.awt.Window; 4 import java.awt.event.WindowAdapter; 5 import java.awt.event.WindowEvent; 6 import java.util.prefs.Preferences; 7 8 import org.geotools.geometry.jts.ReferencedEnvelope; 9 import org.geotools.referencing.crs.DefaultGeographicCRS; 10 11 public class AnimatorPreferences { 12 13 public static ReferencedEnvelope restoreBounds(double defaultX1, double defaultX2, 14 double defaultY1, double defaultY2, Window window, Animator animator) { 15 Preferences prefs = Preferences.userNodeForPackage(Animator.class); 16 double x1 = Double.parseDouble(prefs.get("bounds.x1", defaultX1 + "")); 17 double x2 = Double.parseDouble(prefs.get("bounds.x2", defaultX2 + "")); 18 double y1 = Double.parseDouble(prefs.get("bounds.y1", defaultY1 + "")); 19 double y2 = Double.parseDouble(prefs.get("bounds.y2", defaultY2 + "")); 20 window.addWindowListener(new WindowAdapter() { 21 22 @Override 23 public void windowClosing(WindowEvent e) { 24 ReferencedEnvelope bounds = animator.getBounds(); 25 prefs.put("bounds.x1", bounds.getMinX() + ""); 26 prefs.put("bounds.x2", bounds.getMaxX() + ""); 27 prefs.put("bounds.y1", bounds.getMinY() + ""); 28 prefs.put("bounds.y2", bounds.getMaxY() + ""); 29 } 30 31 }); 32 return new ReferencedEnvelope(x1, x2, y1, y2, DefaultGeographicCRS.WGS84); 33 } 34 }