* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.AltosLib;
+package org.altusmetrum.altoslib_3;
import java.io.*;
import java.util.*;
-import javax.swing.filechooser.FileSystemView;
public class AltosPreferences {
public static AltosPreferencesBackend backend = null;
/* Log directory */
public static File logdir;
+ /* Last log directory - use this next time we open or save something */
+ public static File last_logdir;
+
/* Map directory -- hangs of logdir */
public static File mapdir;
if (logdir_string != null)
logdir = new File(logdir_string);
else {
- /* Use the file system view default directory */
- logdir = new File(FileSystemView.getFileSystemView().getDefaultDirectory(), logdirName);
+ logdir = new File(backend.homeDirectory(), logdirName);
if (!logdir.exists())
logdir.mkdirs();
}
}
}
+ public static File last_logdir() {
+ synchronized (backend) {
+ if (last_logdir == null)
+ last_logdir = logdir;
+ return last_logdir;
+ }
+ }
+
+ public static void set_last_logdir(File file) {
+ synchronized(backend) {
+ if (file != null && !file.isDirectory())
+ file = file.getParentFile();
+ if (file == null)
+ file = new File(".");
+ last_logdir = file;
+ }
+ }
+
public static File mapdir() {
synchronized (backend) {
return mapdir;
set_common_frequencies(new_frequencies);
}
+ static LinkedList<AltosUnitsListener> units_listeners;
+
public static boolean imperial_units() {
synchronized(backend) {
return AltosConvert.imperial_units;
backend.putBoolean(unitsPreference, imperial_units);
flush_preferences();
}
+ if (units_listeners != null) {
+ for (AltosUnitsListener l : units_listeners) {
+ l.units_changed(imperial_units);
+ }
+ }
+ }
+
+ public static void register_units_listener(AltosUnitsListener l) {
+ synchronized(backend) {
+ if (units_listeners == null)
+ units_listeners = new LinkedList<AltosUnitsListener>();
+ units_listeners.add(l);
+ }
+ }
+
+ public static void unregister_units_listener(AltosUnitsListener l) {
+ synchronized(backend) {
+ units_listeners.remove(l);
+ }
}
}