altosui/telegps: Change from variable-units snuck into master
[fw/altos] / altosui / AltosIdleMonitorUI.java
index 67b7a9897717a2aea529ae383916babb946ffdda..204d81ed2c26c6d53df13d390e567c97393cd690 100644 (file)
@@ -24,8 +24,8 @@ import javax.swing.event.*;
 import java.io.*;
 import java.util.concurrent.*;
 import java.util.Arrays;
-import org.altusmetrum.altoslib_5.*;
-import org.altusmetrum.altosuilib_3.*;
+import org.altusmetrum.altoslib_6.*;
+import org.altusmetrum.altosuilib_6.*;
 
 public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDisplay, AltosIdleMonitorListener, DocumentListener {
        AltosDevice             device;
@@ -102,6 +102,15 @@ public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDispl
                SwingUtilities.invokeLater(r);
        }
 
+       public void failed() {
+               Runnable r = new Runnable() {
+                               public void run() {
+                                       close();
+                               }
+                       };
+               SwingUtilities.invokeLater(r);
+       }
+
        Container       bag;
        AltosUIFreqList frequencies;
        JTextField      callsign_value;
@@ -174,6 +183,19 @@ public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDispl
                }
        }
 
+       private void close() {
+               try {
+                       disconnect();
+               } catch (Exception ex) {
+                       System.out.printf("Exception %s\n", ex.toString());
+                       for (StackTraceElement el : ex.getStackTrace())
+                               System.out.printf("%s\n", el.toString());
+               }
+               setVisible(false);
+               dispose();
+               AltosUIPreferences.unregister_font_listener(AltosIdleMonitorUI.this);
+       }
+
        public AltosIdleMonitorUI(JFrame in_owner)
                throws FileNotFoundException, TimeoutException, InterruptedException {
 
@@ -184,9 +206,10 @@ public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDispl
 
                serial = device.getSerial();
 
-               AltosLink link;
+               AltosSerial link;
                try {
                        link = new AltosSerial(device);
+                       link.set_frame(this);
                } catch (Exception ex) {
                        idle_exception(in_owner, ex);
                        return;
@@ -248,16 +271,7 @@ public class AltosIdleMonitorUI extends AltosUIFrame implements AltosFlightDispl
                addWindowListener(new WindowAdapter() {
                                @Override
                                public void windowClosing(WindowEvent e) {
-                                       try {
-                                               disconnect();
-                                       } catch (Exception ex) {
-                                               System.out.printf("Exception %s\n", ex.toString());
-                                               for (StackTraceElement el : ex.getStackTrace())
-                                                       System.out.printf("%s\n", el.toString());
-                                       }
-                                       setVisible(false);
-                                       dispose();
-                                       AltosUIPreferences.unregister_font_listener(AltosIdleMonitorUI.this);
+                                       close();
                                }
                        });