summaryrefslogtreecommitdiff
path: root/ao-tools/altosui/AltosLogfileChooser.java
diff options
context:
space:
mode:
Diffstat (limited to 'ao-tools/altosui/AltosLogfileChooser.java')
-rw-r--r--ao-tools/altosui/AltosLogfileChooser.java32
1 files changed, 29 insertions, 3 deletions
diff --git a/ao-tools/altosui/AltosLogfileChooser.java b/ao-tools/altosui/AltosLogfileChooser.java
index 72d21fc8..3e9e4892 100644
--- a/ao-tools/altosui/AltosLogfileChooser.java
+++ b/ao-tools/altosui/AltosLogfileChooser.java
@@ -28,16 +28,42 @@ import java.text.*;
import java.util.prefs.*;
import altosui.AltosPreferences;
+import altosui.AltosReader;
+import altosui.AltosEepromReader;
+import altosui.AltosTelemetryReader;
public class AltosLogfileChooser extends JFileChooser {
JFrame frame;
+ String filename;
- public File runDialog() {
+ public String filename() {
+ return filename;
+ }
+
+ public AltosReader runDialog() {
int ret;
ret = showOpenDialog(frame);
- if (ret == APPROVE_OPTION)
- return getSelectedFile();
+ if (ret == APPROVE_OPTION) {
+ File file = getSelectedFile();
+ if (file == null)
+ return null;
+ filename = file.getName();
+ try {
+ FileInputStream in;
+
+ in = new FileInputStream(file);
+ if (filename.endsWith("eeprom"))
+ return new AltosEepromReader(in);
+ else
+ return new AltosTelemetryReader(in);
+ } catch (FileNotFoundException fe) {
+ JOptionPane.showMessageDialog(frame,
+ filename,
+ "Cannot open file",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ }
return null;
}