diff options
author | Keith Packard <keithp@keithp.com> | 2013-11-12 14:28:30 +0900 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2013-11-12 14:28:30 +0900 |
commit | 45db3076b257adcf2c9f69ed0927f09d94af7a50 (patch) | |
tree | 475a0ba7758949a5863c7efb8c8ba46b96e802ed /altosui/AltosEepromMonitorUI.java | |
parent | 6aa99c160f0695eb25ccc0598e4c36224c89dab4 (diff) |
altosui: Make AltosEepromDownload not swing-dependent
Will move to altoslib
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui/AltosEepromMonitorUI.java')
-rw-r--r-- | altosui/AltosEepromMonitorUI.java | 60 |
1 files changed, 51 insertions, 9 deletions
diff --git a/altosui/AltosEepromMonitorUI.java b/altosui/AltosEepromMonitorUI.java index ddd1a564..6ad4ca5c 100644 --- a/altosui/AltosEepromMonitorUI.java +++ b/altosui/AltosEepromMonitorUI.java @@ -24,7 +24,7 @@ import org.altusmetrum.altosuilib_1.*; import org.altusmetrum.altoslib_2.*; public class AltosEepromMonitorUI extends AltosUIDialog implements AltosEepromMonitor { - + JFrame owner; Container pane; Box box; JLabel serial_label; @@ -36,10 +36,13 @@ public class AltosEepromMonitorUI extends AltosUIDialog implements AltosEepromMo JButton cancel; JProgressBar pbar; int min_state, max_state; + ActionListener listener; public AltosEepromMonitorUI(JFrame owner) { super (owner, "Download Flight Data", false); + this.owner = owner; + GridBagConstraints c; Insets il = new Insets(4,4,4,4); Insets ir = new Insets(4,4,4,4); @@ -129,6 +132,10 @@ public class AltosEepromMonitorUI extends AltosUIDialog implements AltosEepromMo setLocationRelativeTo(owner); } + public void addActionListener(ActionListener l) { + listener = l; + } + public void set_states(int min_state, int max_state) { this.min_state = min_state; this.max_state = max_state; @@ -136,7 +143,7 @@ public class AltosEepromMonitorUI extends AltosUIDialog implements AltosEepromMo public void set_thread(Thread in_eeprom_thread) { final Thread eeprom_thread = in_eeprom_thread; - addActionListener(new ActionListener() { + cancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (eeprom_thread != null) eeprom_thread.interrupt(); @@ -148,10 +155,6 @@ public class AltosEepromMonitorUI extends AltosUIDialog implements AltosEepromMo setVisible(true); } - public void addActionListener (ActionListener l) { - cancel.addActionListener(l); - } - private void set_value_internal(String state_name, int state, int state_block, int block) { if (state_block > 100) state_block = 100; @@ -232,16 +235,20 @@ public class AltosEepromMonitorUI extends AltosUIDialog implements AltosEepromMo SwingUtilities.invokeLater(r); } - private void done_internal() { + private void done_internal(boolean success) { + listener.actionPerformed(new ActionEvent(this, + success ? 1 : 0, + "download")); setVisible(false); dispose(); } - public void done() { + public void done(boolean in_success) { + final boolean success = in_success; Runnable r = new Runnable() { public void run() { try { - done_internal(); + done_internal(success); } catch (Exception ex) { } } @@ -266,4 +273,39 @@ public class AltosEepromMonitorUI extends AltosUIDialog implements AltosEepromMo }; SwingUtilities.invokeLater(r); } + + private void show_message_internal(String message, String title, int message_type) { + int joption_message_type = JOptionPane.ERROR_MESSAGE; + + switch (message_type) { + case INFO_MESSAGE: + joption_message_type = JOptionPane.INFORMATION_MESSAGE; + break; + case WARNING_MESSAGE: + joption_message_type = JOptionPane.WARNING_MESSAGE; + break; + case ERROR_MESSAGE: + joption_message_type = JOptionPane.ERROR_MESSAGE; + break; + } + JOptionPane.showMessageDialog(owner, + message, + title, + joption_message_type); + } + + public void show_message(String in_message, String in_title, int in_message_type) { + final String message = in_message; + final String title = in_title; + final int message_type = in_message_type; + Runnable r = new Runnable() { + public void run() { + try { + show_message_internal(message, title, message_type); + } catch (Exception ex) { + } + } + }; + SwingUtilities.invokeLater(r); + } } |