altosui: Separate out log file choosing dialog to share with CSV generator
authorKeith Packard <keithp@keithp.com>
Tue, 24 Aug 2010 06:01:36 +0000 (23:01 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 24 Aug 2010 06:01:36 +0000 (23:01 -0700)
This dialog will be shared with the CSV file generating code, so split
it out instead of duplicating it.

Signed-off-by: Keith Packard <keithp@keithp.com>
ao-tools/altosui/AltosLogfileChooser.java [new file with mode: 0644]
ao-tools/altosui/AltosUI.java
ao-tools/altosui/Makefile

diff --git a/ao-tools/altosui/AltosLogfileChooser.java b/ao-tools/altosui/AltosLogfileChooser.java
new file mode 100644 (file)
index 0000000..72d21fc
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright © 2010 Keith Packard <keithp@keithp.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+
+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 altosui.AltosPreferences;
+
+public class AltosLogfileChooser extends JFileChooser {
+       JFrame  frame;
+
+       public File runDialog() {
+               int     ret;
+
+               ret = showOpenDialog(frame);
+               if (ret == APPROVE_OPTION)
+                       return getSelectedFile();
+               return null;
+       }
+
+       public AltosLogfileChooser(JFrame in_frame) {
+               in_frame = frame;
+               setDialogTitle("Select Flight Record File");
+               setFileFilter(new FileNameExtensionFilter("Flight data file",
+                                                         "eeprom",
+                                                         "telem"));
+               setCurrentDirectory(AltosPreferences.logdir());
+       }
+}
\ No newline at end of file
index 9fd47ea..64f96cd 100644 (file)
@@ -42,6 +42,7 @@ import altosui.AltosFlightStatusTableModel;
 import altosui.AltosFlightInfoTableModel;
 import altosui.AltosChannelMenu;
 import altosui.AltosFlashUI;
+import altosui.AltosLogfileChooser;
 
 import libaltosJNI.*;
 
@@ -529,17 +530,12 @@ public class AltosUI extends JFrame {
         * Replay a flight from telemetry data
         */
        private void Replay() {
-               JFileChooser    logfile_chooser = new JFileChooser();
+               AltosLogfileChooser chooser = new AltosLogfileChooser(
+                       AltosUI.this);
 
-               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);
+               File file = chooser.runDialog();
 
-               if (returnVal == JFileChooser.APPROVE_OPTION) {
-                       File file = logfile_chooser.getSelectedFile();
-                       if (file == null)
-                               System.out.println("No file selected?");
+               if (file != null) {
                        String  filename = file.getName();
                        try {
                                FileInputStream replay = new FileInputStream(file);
index affbac3..de78b76 100644 (file)
@@ -22,6 +22,7 @@ CLASSFILES=\
        AltosGreatCircle.class \
        AltosHexfile.class \
        AltosLog.class \
+       AltosLogfileChooser.class \
        AltosParse.class \
        AltosPreferences.class \
        AltosRecord.class \