- JFileChooser logfile_chooser = new JFileChooser();
-
- logfile_chooser.setDialogTitle("Select Flight Record File");
- logfile_chooser.setFileFilter(new FileNameExtensionFilter("Flight data file", "eeprom", "telem"));
- logfile_chooser.setCurrentDirectory(AltosPreferences.logdir());
- int returnVal = logfile_chooser.showOpenDialog(AltosUI.this);
-
- if (returnVal == JFileChooser.APPROVE_OPTION) {
- File file = logfile_chooser.getSelectedFile();
- if (file == null)
- System.out.println("No file selected?");
- String filename = file.getName();
- try {
- FileInputStream replay = new FileInputStream(file);
- DisplayThread thread;
- if (filename.endsWith("eeprom"))
- thread = new ReplayEepromThread(replay, filename);
- else
- thread = new ReplayTelemetryThread(replay, filename);
- run_display(thread);
- } catch (FileNotFoundException ee) {
- JOptionPane.showMessageDialog(AltosUI.this,
- filename,
- "Cannot open telemetry file",
- JOptionPane.ERROR_MESSAGE);
- }
- }
+ AltosLogfileChooser chooser = new AltosLogfileChooser(
+ AltosUI.this);
+ AltosReader reader = chooser.runDialog();
+ if (reader != null)
+ run_display(new ReplayThread(reader,
+ chooser.filename()));