altosui/altosuilib: Shuffle lots more code from altosui into
[fw/altos] / altosui / AltosEepromDelete.java
index ecd82c187bd2328126cd882706b6c09e39282afa..df2ade786ad6e363bc3ba04b29bdadb4536d76c6 100644 (file)
 
 package altosui;
 
-import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
-import javax.swing.filechooser.FileNameExtensionFilter;
-import javax.swing.table.*;
 import java.io.*;
-import java.util.*;
-import java.text.*;
-import java.util.prefs.*;
 import java.util.concurrent.*;
-
-import libaltosJNI.*;
+import org.altusmetrum.altosuilib_2.*;
+import org.altusmetrum.altoslib_4.*;
 
 public class AltosEepromDelete implements Runnable {
        AltosEepromList         flights;
@@ -42,7 +36,7 @@ public class AltosEepromDelete implements Runnable {
        private void DeleteLog (AltosEepromLog log)
                throws IOException, InterruptedException, TimeoutException {
 
-               if (flights.config_data.flight_log_max != 0) {
+               if (flights.config_data.flight_log_max != 0 || flights.config_data.log_format != 0) {
 
                        /* Devices with newer firmware can erase the
                         * flash blocks containing each flight
@@ -84,13 +78,13 @@ public class AltosEepromDelete implements Runnable {
        }
 
        public void run () {
-               if (remote)
-                       serial_line.start_remote();
-
                success = false;
                try {
+                       if (remote)
+                               serial_line.start_remote();
+
                        for (AltosEepromLog log : flights) {
-                               if (log.delete) {
+                               if (log.selected) {
                                        DeleteLog(log);
                                }
                        }
@@ -103,11 +97,16 @@ public class AltosEepromDelete implements Runnable {
                        show_error (String.format("Connection to \"%s\" failed",
                                                  serial_line.device.toShortString()),
                                    "Connection Failed");
+               } finally {
+                       try {
+                               if (remote)
+                                       serial_line.stop_remote();
+                       } catch (InterruptedException ie) {
+                       } finally {
+                               serial_line.flush_output();
+                               serial_line.close();
+                       }
                }
-               if (remote)
-                       serial_line.stop_remote();
-               serial_line.flush_output();
-               serial_line.close();
                if (listener != null) {
                        Runnable r = new Runnable() {
                                        public void run() {
@@ -142,4 +141,4 @@ public class AltosEepromDelete implements Runnable {
                flights = given_flights;
                success = false;
        }
-}
\ No newline at end of file
+}