View Javadoc
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  }