altosui: allow flashing to be canceled from the rom config dialog
[fw/altos] / ao-tools / altosui / AltosFlashUI.java
index b88a16b35b77bf6725e0091c064dbe2c4a0118c2..18795695640e2630218259602f999002a550213b 100644 (file)
@@ -72,19 +72,20 @@ public class AltosFlashUI
                flash.addActionListener(this);
                try {
                        flash.open();
-                       if (!flash.check_rom_config()) {
-                               AltosRomconfigUI romconfig_ui = new AltosRomconfigUI (frame);
-                               romconfig_ui.showDialog();
-                               AltosRomconfig romconfig = romconfig_ui.romconfig();
-                               if (romconfig == null)
-                                       return;
+                       AltosRomconfigUI romconfig_ui = new AltosRomconfigUI (frame);
+
+                       romconfig_ui.set(flash.romconfig());
+                       AltosRomconfig romconfig = romconfig_ui.showDialog();
+
+                       if (romconfig != null && romconfig.valid()) {
                                flash.set_romconfig(romconfig);
+                               serial_value.setText(String.format("%d",
+                                                                  flash.romconfig().serial_number));
+                               file_value.setText(file.toString());
+                               setVisible(true);
+                               flash.flash();
+                               flash = null;
                        }
-                       serial_value.setText(String.format("%d",
-                                                          flash.romconfig().serial_number));
-                       file_value.setText(file.toString());
-                       setVisible(true);
-                       flash.flash();
                } catch (FileNotFoundException ee) {
                        JOptionPane.showMessageDialog(frame,
                                                      "Cannot open image",
@@ -96,6 +97,8 @@ public class AltosFlashUI
                                                      file.toString(),
                                                      JOptionPane.ERROR_MESSAGE);
                } catch (InterruptedException ie) {
+               } finally {
+                       abort();
                }
                dispose();
        }