summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-09-10 21:07:14 -0700
committerKeith Packard <keithp@keithp.com>2010-09-10 21:07:14 -0700
commitb9623f8ef26491e9fa14e2478295fe6f5cbbd87f (patch)
treeef99ee573f9ba4c1e842a41c57d4ec2a3f46ce3c
parent7f2204e0832b14b1edca4266a2cbc272141ecc2b (diff)
altosui: Remember directory containing firmware files
Instead of forcing the user to navigate to the firmware directory each time, this remembers the previous directory and starts there. Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--ao-tools/altosui/AltosFlashUI.java7
-rw-r--r--ao-tools/altosui/AltosPreferences.java25
2 files changed, 32 insertions, 0 deletions
diff --git a/ao-tools/altosui/AltosFlashUI.java b/ao-tools/altosui/AltosFlashUI.java
index 5ed417da..86f57a5f 100644
--- a/ao-tools/altosui/AltosFlashUI.java
+++ b/ao-tools/altosui/AltosFlashUI.java
@@ -194,6 +194,10 @@ public class AltosFlashUI
JFileChooser hexfile_chooser = new JFileChooser();
+ File firmwaredir = AltosPreferences.firmwaredir();
+ if (firmwaredir != null)
+ hexfile_chooser.setCurrentDirectory(firmwaredir);
+
hexfile_chooser.setDialogTitle("Select Flash Image");
hexfile_chooser.setFileFilter(new FileNameExtensionFilter("Flash Image", "ihx"));
int returnVal = hexfile_chooser.showOpenDialog(frame);
@@ -203,6 +207,9 @@ public class AltosFlashUI
file = hexfile_chooser.getSelectedFile();
+ if (file != null)
+ AltosPreferences.set_firmwaredir(file.getParentFile());
+
thread = new Thread(this);
thread.start();
}
diff --git a/ao-tools/altosui/AltosPreferences.java b/ao-tools/altosui/AltosPreferences.java
index 690f8f1e..52627563 100644
--- a/ao-tools/altosui/AltosPreferences.java
+++ b/ao-tools/altosui/AltosPreferences.java
@@ -40,6 +40,9 @@ class AltosPreferences {
/* callsign preference name */
final static String callsignPreference = "CALLSIGN";
+ /* firmware directory preference name */
+ final static String firmwaredirPreference = "FIRMWARE";
+
/* Default logdir is ~/TeleMetrum */
final static String logdirName = "TeleMetrum";
@@ -55,8 +58,12 @@ class AltosPreferences {
/* Voice preference */
static boolean voice;
+ /* Callsign preference */
static String callsign;
+ /* Firmware directory */
+ static File firmwaredir;
+
public static void init(Component ui) {
preferences = Preferences.userRoot().node("/org/altusmetrum/altosui");
@@ -78,6 +85,12 @@ class AltosPreferences {
voice = preferences.getBoolean(voicePreference, true);
callsign = preferences.get(callsignPreference,"N0CALL");
+
+ String firmwaredir_string = preferences.get(firmwaredirPreference, null);
+ if (firmwaredir_string != null)
+ firmwaredir = new File(firmwaredir_string);
+ else
+ firmwaredir = null;
}
static void flush_preferences() {
@@ -173,4 +186,16 @@ class AltosPreferences {
public static String callsign() {
return callsign;
}
+
+ public static void set_firmwaredir(File new_firmwaredir) {
+ firmwaredir = new_firmwaredir;
+ synchronized (preferences) {
+ preferences.put(firmwaredirPreference, firmwaredir.getPath());
+ flush_preferences();
+ }
+ }
+
+ public static File firmwaredir() {
+ return firmwaredir;
+ }
}