altosui: Add mock-up of TeleTerra UI
[fw/altos] / altosui / AltosFlightUI.java
index 68e0ef874fe7363928898352f35f2d0d5151715d..7f2b29885dab064f688ea875fc5f46778257e8d0 100644 (file)
@@ -41,6 +41,7 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
        AltosLanded     landed;
        AltosSiteMap    sitemap;
        boolean         has_map;
+       AltosTerra      terra;
 
        private AltosFlightStatus flightStatus;
        private AltosInfoTable flightInfo;
@@ -88,6 +89,7 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                ascent.show(state, crc_errors);
                descent.show(state, crc_errors);
                landed.show(state, crc_errors);
+               terra.display(state);
                if (tab != cur_tab) {
                        if (cur_tab == pane.getSelectedComponent()) {
                                pane.setSelectedComponent(tab);
@@ -119,9 +121,10 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
 
        Container       bag;
        JComboBox       channels;
+       JComboBox       telemetries;
 
        public AltosFlightUI(AltosVoice in_voice, AltosFlightReader in_reader, final int serial) {
-               AltosPreferences.init(this);
+               AltosPreferences.set_component(this);
 
                voice = in_voice;
                reader = in_reader;
@@ -149,8 +152,28 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                        });
                        c.gridx = 0;
                        c.gridy = 0;
+                       c.insets = new Insets(3, 3, 3, 3);
                        c.anchor = GridBagConstraints.WEST;
                        bag.add (channels, c);
+
+                       // Telemetry format menu
+                       telemetries = new JComboBox();
+                       telemetries.addItem("TeleMetrum");
+                       telemetries.addItem("TeleMini/TeleNano");
+                       telemetries.setSelectedIndex(AltosPreferences.telemetry(serial) - 1);
+                       telemetries.setMaximumRowCount(2);
+                       telemetries.addActionListener(new ActionListener() {
+                                       public void actionPerformed(ActionEvent e) {
+                                               int telemetry = telemetries.getSelectedIndex() + 1;
+                                               reader.set_telemetry(telemetry);
+                                       }
+                               });
+                       c.gridx = 1;
+                       c.gridy = 0;
+                       c.fill = GridBagConstraints.NONE;
+                       c.anchor = GridBagConstraints.WEST;
+                       bag.add (telemetries, c);
+                       c.insets = new Insets(0, 0, 0, 0);
                }
 
                /* Flight status is always visible */
@@ -159,7 +182,9 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                c.gridy = 1;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
+               c.gridwidth = 2;
                bag.add(flightStatus, c);
+               c.gridwidth = 1;
 
                /* The rest of the window uses a tabbed pane to
                 * show one of the alternate data views
@@ -190,6 +215,7 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                c.fill = GridBagConstraints.BOTH;
                c.weightx = 1;
                c.weighty = 1;
+               c.gridwidth = 2;
                bag.add(pane, c);
 
                setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
@@ -207,6 +233,9 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
                pack();
                setVisible(true);
 
+               terra = new AltosTerra(this);
+               terra.setVisible(true);
+
                thread = new AltosDisplayThread(this, voice, this, reader);
 
                thread.start();