Merge branch 'telescience-v0.2'
[fw/altos] / altosui / AltosSiteMap.java
index 3ea4d0fd3548eb06bc296f35170739e7c0d22674..f614eae65fc526370b1508b45a6477cd9ccd077d 100644 (file)
@@ -23,7 +23,8 @@ import java.io.*;
 import java.lang.Math;
 import java.awt.geom.Point2D;
 import java.util.concurrent.*;
-import org.altusmetrum.AltosLib.*;
+import org.altusmetrum.altoslib_1.*;
+import org.altusmetrum.altosuilib_1.*;
 
 public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {
        // preferred vertical step in a tile in naut. miles
@@ -321,6 +322,22 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {
                last_state = state.state;
        }
 
+       public void centre(Point2D.Double pt) {
+               Rectangle r = comp.getVisibleRect();
+               Point2D.Double copt = translatePoint(pt, tileCoordOffset(topleft));
+               int dx = (int)copt.x - r.width/2 - r.x;
+               int dy = (int)copt.y - r.height/2 - r.y;
+               r.x += dx;
+               r.y += dy;
+               comp.scrollRectToVisible(r);
+       }
+
+       public void centre(AltosState state) {
+               if (!state.gps.locked && state.gps.nsat < 4)
+                       return;
+               centre(pt(state.gps.lat, state.gps.lon));
+       }
+
        public void draw_circle(double lat, double lon) {
                final Point2D.Double pt = pt(lat, lon);
 
@@ -421,7 +438,7 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {
        public AltosSiteMap(int in_radius) {
                radius = in_radius;
 
-               //GrabNDrag scroller = new GrabNDrag(comp);
+               GrabNDrag scroller = new GrabNDrag(comp);
 
                comp.setLayout(layout);