altosui: tile site maps
[fw/altos] / ao-tools / altosui / AltosFlightUI.java
index ae31048d2648754573d879cb863a65714f214204..658d6f6f611f8e36a5b324b29bdc0c16e23dd559 100644 (file)
@@ -44,9 +44,11 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
        AltosAscent     ascent;
        AltosDescent    descent;
        AltosLanded     landed;
+    AltosSiteMap    sitemap;
 
        private AltosFlightStatus flightStatus;
        private JScrollPane flightInfoPane;
+       private JScrollPane sitemapPane;
        private AltosInfoTable flightInfo;
 
        static final int tab_pad = 1;
@@ -56,6 +58,8 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
 
        int cur_tab = 0;
 
+       boolean exit_on_close = false;
+
        int which_tab(AltosState state) {
                if (state.state < Altos.ao_flight_boost)
                        return tab_pad;
@@ -94,6 +98,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,10 +125,15 @@ 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() {
+               exit_on_close = true;
        }
 
        public AltosFlightUI(AltosVoice in_voice, AltosFlightReader in_reader, final int serial) {
-        AltosPreferences.init(this);
+               AltosPreferences.init(this);
 
                voice = in_voice;
                reader = in_reader;
@@ -157,6 +167,10 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                flightInfoPane = new JScrollPane(flightInfo.box());
                pane.add("Table", flightInfoPane);
 
+        sitemap = new AltosSiteMap();
+               sitemapPane = new JScrollPane(sitemap);
+        pane.add("Site Map", sitemapPane);
+
                vbox.add(pane);
 
                this.add(vbox);
@@ -181,7 +195,7 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                        this.setJMenuBar(menubar);
                }
 
-               this.setSize(new Dimension (width(), height()));
+               this.setSize(this.getPreferredSize());
                this.validate();
 
                setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
@@ -191,6 +205,8 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                                disconnect();
                                setVisible(false);
                                dispose();
+                               if (exit_on_close)
+                                       System.exit(0);
                        }
                });