AltosSiteMap: add autoscroll and grabndrag scroll
[fw/altos] / ao-tools / altosui / AltosFlightUI.java
index 56ab7ebc4ac01546d210b8446cb7c010d5816f9b..c85fc9776259a150d5eabd8f1ed4ea46de08bb7e 100644 (file)
@@ -42,6 +42,7 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
        AltosAscent     ascent;
        AltosDescent    descent;
        AltosLanded     landed;
+    AltosSiteMap    sitemap;
 
        private AltosFlightStatus flightStatus;
        private JScrollPane flightInfoPane;
@@ -94,6 +95,7 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                descent.reset();
                landed.reset();
                flightInfo.clear();
+               sitemap.reset();
        }
 
        public void show(AltosState state, int crc_errors) {
@@ -120,6 +122,7 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                }
                flightStatus.show(state, crc_errors);
                flightInfo.show(state, crc_errors);
+               sitemap.show(state, crc_errors);
        }
 
        public void set_exit_on_close() {
@@ -127,6 +130,7 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
        }
 
        Container       bag;
+       JComboBox       channels;
 
        public AltosFlightUI(AltosVoice in_voice, AltosFlightReader in_reader, final int serial) {
                AltosPreferences.init(this);
@@ -147,10 +151,10 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
 
                if (serial >= 0) {
                        // Channel menu
-                       JComboBox channels = new AltosChannelMenu(AltosPreferences.channel(serial));
+                       channels = new AltosChannelMenu(AltosPreferences.channel(serial));
                        channels.addActionListener(new ActionListener() {
                                        public void actionPerformed(ActionEvent e) {
-                                               int channel = Integer.parseInt(e.getActionCommand());
+                                               int channel = channels.getSelectedIndex();
                                                reader.set_channel(channel);
                                                AltosPreferences.set_channel(serial, channel);
                                        }
@@ -186,6 +190,9 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                flightInfoPane = new JScrollPane(flightInfo.box());
                pane.add("Table", flightInfoPane);
 
+        sitemap = new AltosSiteMap();
+        pane.add("Site Map", sitemap);
+
                c.gridx = 0;
                c.gridy = 2;
                c.fill = GridBagConstraints.BOTH;