telegps: Add 'Info' tab
[fw/altos] / telegps / TeleGPS.java
index ca1e68bbe74631bf663cb0490d78b2e5295145d1..1bb505e03c068e102e1a1551bce205c3750d0681 100644 (file)
@@ -53,6 +53,7 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
        JTabbedPane     pane;
 
        AltosSiteMap    sitemap;
+       TeleGPSInfo     gps_info;
        boolean         has_map;
 
        JMenuBar        menu_bar;
@@ -115,10 +116,12 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
 
        public void reset() {
                sitemap.reset();
+               gps_info.reset();
        }
 
        public void set_font() {
                sitemap.set_font();
+               gps_info.set_font();
        }
 
        public void font_size_changed(int font_size) {
@@ -135,6 +138,7 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
                        state = new AltosState();
 
                sitemap.show(state, listener_state);
+               gps_info.show(state, listener_state);
                telegps_status.show(state, listener_state);
        }
 
@@ -151,17 +155,20 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
        }
 
        void preferences() {
+               new TeleGPSPreferences(this, voice());
        }
 
        void load_maps() {
                new AltosSiteMapPreload(this);
        }
 
-       void monitor() {
-               AltosDevice     device = AltosDeviceUIDialog.show(this,
-                                                                 AltosLib.product_basestation);
-               if (device == null)
-                       return;
+       void disconnect() {
+               setTitle("TeleGPS");
+               stop_display();
+               remove_frequency_menu();
+       }
+
+       void connect(AltosDevice device) {
                if (reader != null)
                        disconnect();
                try {
@@ -197,16 +204,24 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
                }
        }
 
-       void disconnect() {
-               setTitle("TeleGPS");
-               stop_display();
-               remove_frequency_menu();
+       void monitor() {
+               AltosDevice     device = AltosDeviceUIDialog.show(this,
+                                                                 AltosLib.product_basestation);
+               if (device == null)
+                       return;
+               connect(device);
+       }
+
+       public void scan_device_selected(AltosDevice device) {
+               connect(device);
        }
 
        void scan() {
+               new AltosScanUI(this, false);
        }
 
        void download(){
+               new AltosEepromManage(this, AltosLib.product_telegps);
        }
 
        void configure() {
@@ -214,6 +229,12 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
        }
 
        void export() {
+               AltosDataChooser chooser;
+               chooser = new AltosDataChooser(this);
+               AltosStateIterable states = chooser.runDialog();
+               if (states == null)
+                       return;
+               new AltosCSVUI(this, states, chooser.file());
        }
 
        void graph() {
@@ -383,6 +404,9 @@ public class TeleGPS extends AltosUIFrame implements AltosFlightDisplay, AltosFo
                sitemap = new AltosSiteMap();
                pane.add("Site Map", sitemap);
 
+               gps_info = new TeleGPSInfo();
+               pane.add("Info", gps_info);
+
                setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
 
                AltosUIPreferences.register_font_listener(this);