Bump java lib versions in preparation for 1.9.2
[fw/altos] / altosuilib / AltosUIMap.java
index 6b78c35a5f5b41d2ee14d12d06df6dea2df59beb..5f1b7ae6f03429a4db89c39ad38763e59c6e05b6 100644 (file)
@@ -16,7 +16,7 @@
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altosuilib_13;
+package org.altusmetrum.altosuilib_14;
 
 import java.awt.*;
 import java.awt.event.*;
@@ -28,7 +28,7 @@ import java.awt.geom.*;
 import java.util.*;
 import java.util.concurrent.*;
 import javax.imageio.*;
-import org.altusmetrum.altoslib_13.*;
+import org.altusmetrum.altoslib_14.*;
 
 public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosMapInterface {
 
@@ -117,6 +117,8 @@ public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosM
                }
 
                String pos(double p, String pos, String neg) {
+                       if (p == AltosLib.MISSING)
+                               return "";
                        String  h = pos;
                        if (p < 0) {
                                h = neg;
@@ -127,25 +129,44 @@ public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosM
                        return String.format("%s %4d° %9.6f'", h, deg, min);
                }
 
+               String height(double h, String label) {
+                       if (h == AltosLib.MISSING)
+                               return "";
+                       return String.format(" %s%s",
+                                            AltosConvert.height.show(6, h),
+                                            label);
+               }
+
+               String speed(double s, String label) {
+                       if (s == AltosLib.MISSING)
+                               return "";
+                       return String.format(" %s%s",
+                                            AltosConvert.speed.show(6, s),
+                                            label);
+               }
+
                public void mouseMoved(MouseEvent e) {
                        AltosMapPathPoint point = map.nearest(e.getPoint().x, e.getPoint().y);
 
-                       if (nearest_mark == null)
-                               nearest_mark = map.add_mark(point.lat_lon.lat,
-                                                           point.lat_lon.lon,
-                                                           point.state);
-                       else {
-                               nearest_mark.lat_lon.lat = point.lat_lon.lat;
-                               nearest_mark.lat_lon.lon = point.lat_lon.lon;
-                               nearest_mark.state = point.state;
-                       }
                        if (point != null) {
-                               nearest_label.setText(String.format("Time: %9.2f Position:  %s  %s",
+                               if (nearest_mark == null)
+                                       nearest_mark = map.add_mark(point.gps.lat,
+                                                                   point.gps.lon,
+                                                                   point.state);
+                               else {
+                                       nearest_mark.lat_lon.lat = point.gps.lat;
+                                       nearest_mark.lat_lon.lon = point.gps.lon;
+                                       nearest_mark.state = point.state;
+                               }
+                               nearest_label.setText(String.format("%9.2f sec %s%s%s%s",
                                                                    point.time,
-                                                                   pos(point.lat_lon.lat,
+                                                                   pos(point.gps.lat,
                                                                        "N", "S"),
-                                                                   pos(point.lat_lon.lon,
-                                                                       "E", "W")));
+                                                                   pos(point.gps.lon,
+                                                                       "E", "W"),
+                                                                   height(point.gps_height, ""),
+                                                                   speed(point.gps.ground_speed, "(h)"),
+                                                                   speed(point.gps.climb_rate, "(v)")));
                        } else {
                                nearest_label.setText("");
                        }
@@ -256,7 +277,7 @@ public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosM
                        g.setStroke(new BasicStroke(stroke_width, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
 
                        for (AltosMapPathPoint point : points) {
-                               Point2D.Double  cur = point2d(t.screen(point.lat_lon));
+                               Point2D.Double  cur = point2d(t.screen(point.gps.lat, point.gps.lon));
                                if (prev != null) {
                                        Line2D.Double   line = new Line2D.Double (prev, cur);
                                        Rectangle       bounds = line.getBounds();
@@ -468,8 +489,8 @@ public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosM
                map.show(state, listener_state);
        }
 
-       public void show(AltosGPS gps, double time, int state) {
-               map.show(gps, time, state);
+       public void show(AltosGPS gps, double time, int state, double gps_height) {
+               map.show(gps, time, state, gps_height);
        }
 
        public String getName() {