read preferences for --replay
[fw/altos] / ao-tools / altosui / AltosLogfileChooser.java
index 72d21fc81db5b341eca170e18d660c7dc247c20b..8b9d77d69cba6f70cd0d385b20ace70c03ca569e 100644 (file)
@@ -27,22 +27,48 @@ import java.util.*;
 import java.text.*;
 import java.util.prefs.*;
 
-import altosui.AltosPreferences;
-
 public class AltosLogfileChooser extends JFileChooser {
        JFrame  frame;
+       String  filename;
+       File    file;
+
+       public String filename() {
+               return filename;
+       }
 
-       public File runDialog() {
+       public File file() {
+               return file;
+       }
+
+       public AltosRecordIterable runDialog() {
                int     ret;
 
                ret = showOpenDialog(frame);
-               if (ret == APPROVE_OPTION)
-                       return getSelectedFile();
+               if (ret == APPROVE_OPTION) {
+                       file = getSelectedFile();
+                       if (file == null)
+                               return null;
+                       filename = file.getName();
+                       try {
+                               FileInputStream in;
+
+                               in = new FileInputStream(file);
+                               if (filename.endsWith("eeprom"))
+                                       return new AltosEepromIterable(in);
+                               else
+                                       return new AltosTelemetryIterable(in);
+                       } catch (FileNotFoundException fe) {
+                               JOptionPane.showMessageDialog(frame,
+                                                             filename,
+                                                             "Cannot open file",
+                                                             JOptionPane.ERROR_MESSAGE);
+                       }
+               }
                return null;
        }
 
        public AltosLogfileChooser(JFrame in_frame) {
-               in_frame = frame;
+               frame = in_frame;
                setDialogTitle("Select Flight Record File");
                setFileFilter(new FileNameExtensionFilter("Flight data file",
                                                          "eeprom",