altosui: Clean up flash code to ensure swing gets called from right thread
[fw/altos] / altosui / AltosFlashUI.java
index 0b61f041f16cb0dd7fa03800d2482804c1d06816..0302ccd38d9231fd25e8166d2547422efe5c1d01 100644 (file)
@@ -49,13 +49,21 @@ public class AltosFlashUI
 
        public void actionPerformed(ActionEvent e) {
                if (e.getSource() == cancel) {
-                       abort();
+                       setVisible(false);
                        dispose();
                } else {
                        String  cmd = e.getActionCommand();
-                       if (cmd.equals("done"))
-                               ;
-                       else if (cmd.equals("start")) {
+                       if (e.getID() == -1) {
+                               JOptionPane.showMessageDialog(frame,
+                                                             e.getActionCommand(),
+                                                             file.toString(),
+                                                             JOptionPane.ERROR_MESSAGE);
+                               setVisible(false);
+                               dispose();
+                       } else if (cmd.equals("done")) {
+                               setVisible(false);
+                               dispose();
+                       } else if (cmd.equals("start")) {
                                setVisible(true);
                        } else {
                                pbar.setValue(e.getID());
@@ -64,11 +72,6 @@ public class AltosFlashUI
                }
        }
 
-       public void abort() {
-               if (flash != null)
-                       flash.abort();
-       }
-
        public void build_dialog() {
                GridBagConstraints c;
                Insets il = new Insets(4,4,4,4);
@@ -186,7 +189,6 @@ public class AltosFlashUI
                                file_value.setText(file.toString());
                                setVisible(true);
                                flash.flash();
-                               flash = null;
                        }
                } catch (FileNotFoundException ee) {
                        JOptionPane.showMessageDialog(frame,
@@ -205,9 +207,6 @@ public class AltosFlashUI
                                                      file.toString(),
                                                      JOptionPane.ERROR_MESSAGE);
                } catch (InterruptedException ie) {
-               } finally {
-                       abort();
                }
-               dispose();
        }
 }
\ No newline at end of file