altosui: revert AltosUIPreferences init() method
[fw/altos] / altosui / AltosUIPreferences.java
index da6c39689614c9f8db4f9ae4e424fce1d7546031..a28c07b06a9c5202cb71989b99012332eedc587e 100644 (file)
@@ -19,16 +19,11 @@ package altosui;
 
 import java.io.*;
 import java.util.*;
-import java.text.*;
-import java.util.prefs.*;
-import java.util.concurrent.LinkedBlockingQueue;
 import java.awt.Component;
 import javax.swing.*;
-import javax.swing.filechooser.FileSystemView;
+import org.altusmetrum.AltosLib.*;
 
-/* import org.altusmetrum.AltosLib.*; */
-
-class AltosUIPreferences extends AltosPreferences {
+public class AltosUIPreferences extends AltosPreferences {
 
        /* font size preferences name */
        final static String fontSizePreference = "FONT-SIZE";
@@ -47,14 +42,21 @@ class AltosUIPreferences extends AltosPreferences {
 
        static String look_and_feel = null;
 
+       /* Serial debug */
+       static boolean serial_debug;
+
        public static void init() {
+               AltosPreferences.init(new AltosUIPreferencesBackend());
+
                font_listeners = new LinkedList<AltosFontListener>();
 
-               font_size = preferences.getInt(fontSizePreference, Altos.font_size_medium);
+               font_size = backend.getInt(fontSizePreference, Altos.font_size_medium);
                Altos.set_fonts(font_size);
-               look_and_feel = preferences.get(lookAndFeelPreference, UIManager.getSystemLookAndFeelClassName());
+               look_and_feel = backend.getString(lookAndFeelPreference, UIManager.getSystemLookAndFeelClassName());
 
                ui_listeners = new LinkedList<AltosUIListener>();
+               serial_debug = backend.getBoolean(serialDebugPreference, false);
+               AltosLink.set_debug(serial_debug);
        }
 
        static { init(); }
@@ -98,16 +100,18 @@ class AltosUIPreferences extends AltosPreferences {
                }
        }
        public static int font_size() {
-               return font_size;
+               synchronized (backend) {
+                       return font_size;
+               }
        }
 
        static void set_fonts() {
        }
 
        public static void set_font_size(int new_font_size) {
-               font_size = new_font_size;
-               synchronized (preferences) {
-                       preferences.putInt(fontSizePreference, font_size);
+               synchronized (backend) {
+                       font_size = new_font_size;
+                       backend.putInt(fontSizePreference, font_size);
                        flush_preferences();
                        Altos.set_fonts(font_size);
                        for (AltosFontListener l : font_listeners)
@@ -116,25 +120,25 @@ class AltosUIPreferences extends AltosPreferences {
        }
 
        public static void register_font_listener(AltosFontListener l) {
-               synchronized (preferences) {
+               synchronized (backend) {
                        font_listeners.add(l);
                }
        }
 
        public static void unregister_font_listener(AltosFontListener l) {
-               synchronized (preferences) {
+               synchronized (backend) {
                        font_listeners.remove(l);
                }
        }
 
        public static void set_look_and_feel(String new_look_and_feel) {
-               look_and_feel = new_look_and_feel;
                try {
-                       UIManager.setLookAndFeel(look_and_feel);
+                       UIManager.setLookAndFeel(new_look_and_feel);
                } catch (Exception e) {
                }
-               synchronized(preferences) {
-                       preferences.put(lookAndFeelPreference, look_and_feel);
+               synchronized(backend) {
+                       look_and_feel = new_look_and_feel;
+                       backend.putString(lookAndFeelPreference, look_and_feel);
                        flush_preferences();
                        for (AltosUIListener l : ui_listeners)
                                l.ui_changed(look_and_feel);
@@ -142,18 +146,35 @@ class AltosUIPreferences extends AltosPreferences {
        }
 
        public static String look_and_feel() {
-               return look_and_feel;
+               synchronized (backend) {
+                       return look_and_feel;
+               }
        }
 
        public static void register_ui_listener(AltosUIListener l) {
-               synchronized(preferences) {
+               synchronized(backend) {
                        ui_listeners.add(l);
                }
        }
 
        public static void unregister_ui_listener(AltosUIListener l) {
-               synchronized (preferences) {
+               synchronized (backend) {
                        ui_listeners.remove(l);
                }
        }
-}
\ No newline at end of file
+       public static void set_serial_debug(boolean new_serial_debug) {
+               AltosLink.set_debug(serial_debug);
+               synchronized (backend) {
+                       serial_debug = new_serial_debug;
+                       backend.putBoolean(serialDebugPreference, serial_debug);
+                       flush_preferences();
+               }
+       }
+
+       public static boolean serial_debug() {
+               synchronized (backend) {
+                       return serial_debug;
+               }
+       }
+
+}