telegps: Disconnect telemetry device when closing monitor window
[fw/altos] / telegps / TeleGPS.java
index c61b245e006c80d7e16ae353df4cd093ccc19a63..1898a668057b363751bb448b74433598407134aa 100644 (file)
@@ -67,7 +67,7 @@ public class TeleGPS
 
        JTabbedPane             pane;
 
-       AltosSiteMap            sitemap;
+       AltosUIMap              map;
        TeleGPSInfo             gps_info;
        AltosInfoTable          info_table;
 
@@ -167,7 +167,7 @@ public class TeleGPS
        }
 
        void load_maps() {
-               new AltosSiteMapPreload(this);
+               new AltosUIMapPreload(this);
        }
 
        void disconnect() {
@@ -323,6 +323,9 @@ public class TeleGPS
 
        void add_frequency_menu(int serial, final AltosFlightReader reader) {
                // Channel menu
+               if (frequencies != null)
+                       return;
+
                frequencies = new AltosFreqList(AltosUIPreferences.frequency(serial));
                frequencies.set_product("Monitor");
                frequencies.set_serial(serial);
@@ -343,6 +346,7 @@ public class TeleGPS
        void remove_frequency_menu() {
                if (frequencies != null) {
                        menu_bar.remove(frequencies);
+                       menu_bar.repaint();
                        frequencies = null;
                }
        }
@@ -366,6 +370,7 @@ public class TeleGPS
        }
 
        private void close() {
+               disconnect();
                AltosUIPreferences.unregister_font_listener(this);
                AltosPreferences.unregister_units_listener(this);
                setVisible(false);
@@ -438,9 +443,9 @@ public class TeleGPS
                c.gridwidth = 2;
                bag.add(pane, c);
 
-               sitemap = new AltosSiteMap();
-               pane.add("Site Map", sitemap);
-               displays.add(sitemap);
+               map = new AltosUIMap();
+               pane.add("Map", map);
+               displays.add(map);
 
                gps_info = new TeleGPSInfo();
                pane.add("Info", gps_info);
@@ -578,7 +583,7 @@ public class TeleGPS
                                } else {
                                        double lat = Double.parseDouble(args[i+1]);
                                        double lon = Double.parseDouble(args[i+2]);
-                                       AltosSiteMap.prefetchMaps(lat, lon);
+                                       AltosUIMap.prefetch_maps(lat, lon);
                                        i += 2;
                                }
                        } else if (args[i].equals("--replay"))