summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-08-23 23:01:36 -0700
committerKeith Packard <keithp@keithp.com>2010-08-23 23:01:36 -0700
commita55b132668a819cc26478a609cb79bd9190deb9d (patch)
tree27ad72810ce23a9f885314044be3ef25fe41b077
parentef8376c4dd8262a34e02b6bb9e19e907ac2f4330 (diff)
altosui: Separate out log file choosing dialog to share with CSV generator
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>
-rw-r--r--ao-tools/altosui/AltosLogfileChooser.java52
-rw-r--r--ao-tools/altosui/AltosUI.java14
-rw-r--r--ao-tools/altosui/Makefile1
3 files changed, 58 insertions, 9 deletions
diff --git a/ao-tools/altosui/AltosLogfileChooser.java b/ao-tools/altosui/AltosLogfileChooser.java
new file mode 100644
index 00000000..72d21fc8
--- /dev/null
+++ b/ao-tools/altosui/AltosLogfileChooser.java
@@ -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
diff --git a/ao-tools/altosui/AltosUI.java b/ao-tools/altosui/AltosUI.java
index 9fd47ea7..64f96cdd 100644
--- a/ao-tools/altosui/AltosUI.java
+++ b/ao-tools/altosui/AltosUI.java
@@ -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);
diff --git a/ao-tools/altosui/Makefile b/ao-tools/altosui/Makefile
index affbac39..de78b765 100644
--- a/ao-tools/altosui/Makefile
+++ b/ao-tools/altosui/Makefile
@@ -22,6 +22,7 @@ CLASSFILES=\
AltosGreatCircle.class \
AltosHexfile.class \
AltosLog.class \
+ AltosLogfileChooser.class \
AltosParse.class \
AltosPreferences.class \
AltosRecord.class \