altosdroid: initial implementation of telemetry logging.
[fw/altos] / altosui / AltosIgniteUI.java
index 42120b92d0250d7124d0cccb2adcdcd7ab9c5650..ec331259c73531d69946bdd1e00fe341e041bde5 100644 (file)
@@ -20,17 +20,13 @@ package altosui;
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.table.*;
-import javax.swing.event.*;
 import java.io.*;
-import java.util.*;
 import java.text.*;
-import java.util.prefs.*;
 import java.util.concurrent.*;
+import org.altusmetrum.AltosLib.*;
 
 public class AltosIgniteUI
-       extends JDialog
+       extends AltosDialog
        implements ActionListener
 {
        AltosDevice     device;
@@ -43,6 +39,7 @@ public class AltosIgniteUI
        JToggleButton   arm;
        JButton         fire;
        javax.swing.Timer       timer;
+       JButton         close;
 
        int             apogee_status;
        int             main_status;
@@ -70,12 +67,15 @@ public class AltosIgniteUI
 
                public void run () {
                        try {
-                               ignite = new AltosIgnite(device);
+                               AltosSerial     serial = new AltosSerial(device);
+                               serial.set_frame(owner);
+                               ignite = new AltosIgnite(serial,
+                                                        !device.matchProduct(Altos.product_altimeter));
+
                        } catch (Exception e) {
                                send_exception(e);
                                return;
                        }
-                       ignite.set_frame(owner);
 
                        for (;;) {
                                Runnable        r;
@@ -121,8 +121,7 @@ public class AltosIgniteUI
        void ignite_exception(Exception e) {
                if (e instanceof FileNotFoundException) {
                        JOptionPane.showMessageDialog(owner,
-                                                     String.format("Cannot open device \"%s\"",
-                                                                   device.toShortString()),
+                                                     ((FileNotFoundException) e).getMessage(),
                                                      "Cannot open target device",
                                                      JOptionPane.ERROR_MESSAGE);
                } else if (e instanceof AltosSerialInUseException) {
@@ -340,8 +339,8 @@ public class AltosIgniteUI
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.CENTER;
                c.insets = i;
-               c.weightx = 1;
-               c.weighty = 1;
+               c.weightx = 0;
+               c.weighty = 0;
 
                c.gridx = 0;
                c.gridy = 0;
@@ -402,6 +401,15 @@ public class AltosIgniteUI
                fire.addActionListener(this);
                fire.setActionCommand("fire");
 
+               c.gridx = 0;
+               c.gridy = 4;
+               c.gridwidth = 2;
+               c.anchor = GridBagConstraints.CENTER;
+               close = new JButton ("Close");
+               pane.add(close, c);
+               close.addActionListener(this);
+               close.setActionCommand("close");
+                       
                pack();
                setLocationRelativeTo(owner);