telegps: Add scan UI
[fw/altos] / altosui / AltosEepromMonitor.java
index 7ff00eadb0c371051ae48050ca154c3bf39f824e..ce1c16255c3484ecb9ac371513df40487410f807 100644 (file)
@@ -20,15 +20,9 @@ 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.LinkedBlockingQueue;
+import org.altusmetrum.altosuilib_2.*;
 
-public class AltosEepromMonitor extends JDialog {
+public class AltosEepromMonitor extends AltosUIDialog {
 
        Container       pane;
        Box             box;
@@ -107,7 +101,7 @@ public class AltosEepromMonitor extends JDialog {
                max_state = in_max_state;
                pbar = new JProgressBar();
                pbar.setMinimum(0);
-               pbar.setMaximum((max_state - min_state) * 100);
+               pbar.setMaximum(1000);
                pbar.setValue(0);
                pbar.setString("startup");
                pbar.setStringPainted(true);
@@ -141,36 +135,118 @@ public class AltosEepromMonitor extends JDialog {
                cancel.addActionListener(l);
        }
 
-       public void set_value(String state_name, int in_state, int in_block) {
-               int block = in_block;
-               int state = in_state;
-
-               if (block > 100)
-                       block = 100;
+       private void set_value_internal(String state_name, int state, int state_block, int block) {
+               if (state_block > 100)
+                       state_block = 100;
                if (state < min_state) state = min_state;
                if (state >= max_state) state = max_state - 1;
                state -= min_state;
 
-               int pos = state * 100 + block;
+               int pos = state * 100 + state_block;
 
-               pbar.setString(state_name);
+               pbar.setString(String.format("block %d state %s", block, state_name));
                pbar.setValue(pos);
        }
 
-       public void set_serial(int serial) {
+       public void set_value(String in_state_name, int in_state, int in_state_block, int in_block) {
+               final String state_name = in_state_name;
+               final int state = in_state;
+               final int state_block = in_state_block;
+               final int block = in_block;
+               Runnable r = new Runnable() {
+                               public void run() {
+                                       try {
+                                               set_value_internal(state_name, state, state_block, block);
+                                       } catch (Exception ex) {
+                                       }
+                               }
+                       };
+               SwingUtilities.invokeLater(r);
+       }
+
+       private void set_serial_internal(int serial) {
                serial_value.setText(String.format("%d", serial));
        }
 
-       public void set_flight(int flight) {
+       public void set_serial(int in_serial) {
+               final int serial = in_serial;
+               Runnable r = new Runnable() {
+                               public void run() {
+                                       try {
+                                               set_serial_internal(serial);
+                                       } catch (Exception ex) {
+                                       }
+                               }
+                       };
+               SwingUtilities.invokeLater(r);
+       }
+
+       private void set_flight_internal(int flight) {
                flight_value.setText(String.format("%d", flight));
        }
 
-       public void set_file(String file) {
+       public void set_flight(int in_flight) {
+               final int flight = in_flight;
+               Runnable r = new Runnable() {
+                               public void run() {
+                                       try {
+                                               set_flight_internal(flight);
+                                       } catch (Exception ex) {
+                                       }
+                               }
+                       };
+               SwingUtilities.invokeLater(r);
+       }
+
+       private void set_file_internal(String file) {
                file_value.setText(String.format("%s", file));
        }
 
-       public void done() {
+       public void set_file(String in_file) {
+               final String file = in_file;
+               Runnable r = new Runnable() {
+                               public void run() {
+                                       try {
+                                               set_file_internal(file);
+                                       } catch (Exception ex) {
+                                       }
+                               }
+                       };
+               SwingUtilities.invokeLater(r);
+       }
+
+       private void done_internal() {
                setVisible(false);
                dispose();
        }
+
+       public void done() {
+               Runnable r = new Runnable() {
+                               public void run() {
+                                       try {
+                                               done_internal();
+                                       } catch (Exception ex) {
+                                       }
+                               }
+                       };
+               SwingUtilities.invokeLater(r);
+       }
+
+       private void reset_internal() {
+               set_value_internal("startup",min_state,0, 0);
+               set_flight_internal(0);
+               set_file_internal("");
+       }
+
+       public void reset() {
+               Runnable r = new Runnable() {
+                               public void run() {
+                                       try {
+                                               reset_internal();
+                                       } catch (Exception ex) {
+                                       }
+                               }
+                       };
+               SwingUtilities.invokeLater(r);
+       }
 }