From ec036e8fe057f4b641ba9ee17d6dce2689816047 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 00:25:49 +1200 Subject: altoslib/altosui: begin moving preferences "backend" into interface Signed-off-by: Mike Beattie --- altosui/AltosUIPreferences.java | 30 ++++++------ altosui/AltosUIPreferencesBackend.java | 84 ++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 15 deletions(-) create mode 100644 altosui/AltosUIPreferencesBackend.java (limited to 'altosui') diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java index a026d123..03e8e129 100644 --- a/altosui/AltosUIPreferences.java +++ b/altosui/AltosUIPreferences.java @@ -48,12 +48,12 @@ public class AltosUIPreferences extends AltosPreferences { public static void init() { font_listeners = new LinkedList(); - 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(); - serial_debug = preferences.getBoolean(serialDebugPreference, false); + serial_debug = backend.getBoolean(serialDebugPreference, false); AltosLink.set_debug(serial_debug); } @@ -107,9 +107,9 @@ public class AltosUIPreferences extends AltosPreferences { } public static void set_font_size(int new_font_size) { - synchronized (preferences) { + synchronized (backend) { font_size = new_font_size; - preferences.putInt(fontSizePreference, font_size); + backend.putInt(fontSizePreference, font_size); flush_preferences(); Altos.set_fonts(font_size); for (AltosFontListener l : font_listeners) @@ -118,13 +118,13 @@ public 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); } } @@ -134,9 +134,9 @@ public class AltosUIPreferences extends AltosPreferences { UIManager.setLookAndFeel(new_look_and_feel); } catch (Exception e) { } - synchronized(preferences) { + synchronized(backend) { look_and_feel = new_look_and_feel; - preferences.put(lookAndFeelPreference, look_and_feel); + backend.putString(lookAndFeelPreference, look_and_feel); flush_preferences(); for (AltosUIListener l : ui_listeners) l.ui_changed(look_and_feel); @@ -150,21 +150,21 @@ public class AltosUIPreferences extends AltosPreferences { } 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); } } public static void set_serial_debug(boolean new_serial_debug) { - AltosLink.set_debug(new_serial_debug); - synchronized (preferences) { + AltosLink.set_debug(serial_debug); + synchronized (backend) { serial_debug = new_serial_debug; - preferences.putBoolean(serialDebugPreference, serial_debug); + backend.putBoolean(serialDebugPreference, serial_debug); flush_preferences(); } } @@ -175,4 +175,4 @@ public class AltosUIPreferences extends AltosPreferences { } } -} \ No newline at end of file +} diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java new file mode 100644 index 00000000..16844f37 --- /dev/null +++ b/altosui/AltosUIPreferencesBackend.java @@ -0,0 +1,84 @@ +/* + * Copyright © 2012 Mike Beattie + * + * 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.text.*; +import java.util.prefs.*; +import org.altusmetrum.AltosLib.*; + +public class AltosUIPreferencesBackend implements AltosPreferencesBackend { + + private Preferences _preferences = null; + + public AltosUIPreferencesBackend() { + _preferences = Preferences.userRoot().node("/org/altusmetrum/altosui"); + } + + public AltosUIPreferencesBackend(Preferences in_preferences) { + _preferences = in_preferences; + } + + public String getString(String key, String def) { + return _preferences.get(key, def) + } + public void putString(String key, String value) { + _preferences.put(key, value); + } + + public int getInt(String key, int def) { + return _preferences.getInt(key, def); + } + public void putInt(String key, int value) { + _preferences.putInt(key, value); + } + + public double getDouble(String key, double def) { + return _preferences.getDouble(key, def); + } + public void putDouble(String key, double value) { + _preferences.putDouble(key, value); + } + + public boolean getBoolean(String key, boolean def) { + return _preferences.getBoolean(key, def); + } + public void putBoolean(String key, boolean value) { + _preferences.putBoolean(key, value); + } + + public boolean nodeExists(String key) { + try { + return _preferences.nodeExists(key); + } catch (BackingStoreException be) { + return false; + } + } + + public AltosPreferencesBackend node(String key) { + return new AltosUIPreferencesBackend(_preferences.node(key)); + } + + public void flush() { + try { + _preferences.flush(); + } catch (BackingStoreException ee) { + System.err.printf("Cannot save preferences\n"); + } + } + +} \ No newline at end of file -- cgit v1.2.3 From 67b618409a0d34fff26cac6025bc159ff92ede9c Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 00:40:16 +1200 Subject: altosui: add missing methods for Backend, fix BT code. Signed-off-by: Mike Beattie --- altosui/AltosBTKnown.java | 6 +++--- altosui/AltosUIPreferences.java | 6 +++--- altosui/AltosUIPreferencesBackend.java | 8 ++++++++ 3 files changed, 14 insertions(+), 6 deletions(-) (limited to 'altosui') diff --git a/altosui/AltosBTKnown.java b/altosui/AltosBTKnown.java index 74cc6838..7e5e9533 100644 --- a/altosui/AltosBTKnown.java +++ b/altosui/AltosBTKnown.java @@ -21,14 +21,14 @@ import java.util.prefs.*; public class AltosBTKnown implements Iterable { LinkedList devices = new LinkedList(); - Preferences bt_pref = AltosUIPreferences.bt_devices(); + AltosPreferencesBackend bt_pref = AltosUIPreferences.bt_devices(); private String get_address(String name) { - return bt_pref.get(name, ""); + return bt_pref.getString(name, ""); } private void set_address(String name, String addr) { - bt_pref.put(name, addr); + bt_pref.putString(name, addr); } private void remove(String name) { diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java index 03e8e129..6e4c9097 100644 --- a/altosui/AltosUIPreferences.java +++ b/altosui/AltosUIPreferences.java @@ -98,7 +98,7 @@ public class AltosUIPreferences extends AltosPreferences { } } public static int font_size() { - synchronized (preferences) { + synchronized (backend) { return font_size; } } @@ -144,7 +144,7 @@ public class AltosUIPreferences extends AltosPreferences { } public static String look_and_feel() { - synchronized (preferences) { + synchronized (backend) { return look_and_feel; } } @@ -170,7 +170,7 @@ public class AltosUIPreferences extends AltosPreferences { } public static boolean serial_debug() { - synchronized (preferences) { + synchronized (backend) { return serial_debug; } } diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java index 16844f37..2b2769c2 100644 --- a/altosui/AltosUIPreferencesBackend.java +++ b/altosui/AltosUIPreferencesBackend.java @@ -73,6 +73,14 @@ public class AltosUIPreferencesBackend implements AltosPreferencesBackend { return new AltosUIPreferencesBackend(_preferences.node(key)); } + public String[] keys() { + return _preferences.keys(); + } + + public void remove(String key) { + _preferences.remove(key); + } + public void flush() { try { _preferences.flush(); -- cgit v1.2.3 From d875b459b5e9f7bcbbbbe318f947b0451ce6738f Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 00:44:59 +1200 Subject: altosui/altoslib: add methods to interface, fix imports/exceptions in BT code Signed-off-by: Mike Beattie --- altoslib/AltosPreferencesBackend.java | 3 +++ altosui/AltosBTKnown.java | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'altosui') diff --git a/altoslib/AltosPreferencesBackend.java b/altoslib/AltosPreferencesBackend.java index a8cfb31b..3fc4b0aa 100644 --- a/altoslib/AltosPreferencesBackend.java +++ b/altoslib/AltosPreferencesBackend.java @@ -34,5 +34,8 @@ public interface AltosPreferencesBackend { public boolean nodeExists(String key); public AltosPreferencesBackend node(String key); + public String[] keys(); + public void remove(String key); + public void flush(); } diff --git a/altosui/AltosBTKnown.java b/altosui/AltosBTKnown.java index 7e5e9533..ae04ac8c 100644 --- a/altosui/AltosBTKnown.java +++ b/altosui/AltosBTKnown.java @@ -17,7 +17,7 @@ package altosui; import java.util.*; -import java.util.prefs.*; +import org.altusmetrum.AltosLib.*; public class AltosBTKnown implements Iterable { LinkedList devices = new LinkedList(); @@ -43,7 +43,6 @@ public class AltosBTKnown implements Iterable { String addr = get_address(name); devices.add(new AltosBTDevice(name, addr)); } - } catch (BackingStoreException be) { } catch (IllegalStateException ie) { } } -- cgit v1.2.3 From 08345b8909922f2ff8f9ed8b4497b9cbea6b26e9 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 00:53:56 +1200 Subject: altosui/altoslib: Add call to …Preferences.init() with backend object, remove static init() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mike Beattie --- altoslib/AltosPreferences.java | 6 ++---- altosui/AltosUI.java | 1 + altosui/AltosUIPreferences.java | 6 +++--- 3 files changed, 6 insertions(+), 7 deletions(-) (limited to 'altosui') diff --git a/altoslib/AltosPreferences.java b/altoslib/AltosPreferences.java index ef30f8e9..a82ea3f6 100644 --- a/altoslib/AltosPreferences.java +++ b/altoslib/AltosPreferences.java @@ -137,8 +137,8 @@ public class AltosPreferences { public static int launcher_channel; - public static void init() { - //preferences = Preferences.userRoot().node("/org/altusmetrum/altosui"); + public static void init(AltosPreferencesBackend in_backend) { + backend = in_backend; /* Initialize logdir from preferences */ String logdir_string = backend.getString(logdirPreference, null); @@ -179,8 +179,6 @@ public class AltosPreferences { AltosConvert.imperial_units = backend.getBoolean(unitsPreference, false); } - static { init(); } - public static void flush_preferences() { backend.flush(); } diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java index b5cbefe7..52b6b128 100644 --- a/altosui/AltosUI.java +++ b/altosui/AltosUI.java @@ -98,6 +98,7 @@ public class AltosUI extends AltosFrame { load_library(null); + AltosUIPreferences.init(new AltosUIPreferencesBackend()); AltosUIPreferences.set_component(this); pane = getContentPane(); diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java index 6e4c9097..c1087dd6 100644 --- a/altosui/AltosUIPreferences.java +++ b/altosui/AltosUIPreferences.java @@ -45,7 +45,9 @@ public class AltosUIPreferences extends AltosPreferences { /* Serial debug */ static boolean serial_debug; - public static void init() { + public static void init(AltosUIPreferencesBackend in_backend) { + super(in_backend); + font_listeners = new LinkedList(); font_size = backend.getInt(fontSizePreference, Altos.font_size_medium); @@ -57,8 +59,6 @@ public class AltosUIPreferences extends AltosPreferences { AltosLink.set_debug(serial_debug); } - static { init(); } - static void set_component(Component in_component) { component = in_component; } -- cgit v1.2.3 From 26c83bc0981036651a89c29771b2ad52c8fb0396 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 01:03:53 +1200 Subject: altosui/altoslib: bug fixes, update Makefile.am Signed-off-by: Mike Beattie --- altosui/AltosUIPreferences.java | 2 +- altosui/AltosUIPreferencesBackend.java | 4 ++-- altosui/Makefile.am | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'altosui') diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java index c1087dd6..4ef9384d 100644 --- a/altosui/AltosUIPreferences.java +++ b/altosui/AltosUIPreferences.java @@ -46,7 +46,7 @@ public class AltosUIPreferences extends AltosPreferences { static boolean serial_debug; public static void init(AltosUIPreferencesBackend in_backend) { - super(in_backend); + AltosPreferences.init(in_backend); font_listeners = new LinkedList(); diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java index 2b2769c2..69485ba4 100644 --- a/altosui/AltosUIPreferencesBackend.java +++ b/altosui/AltosUIPreferencesBackend.java @@ -34,7 +34,7 @@ public class AltosUIPreferencesBackend implements AltosPreferencesBackend { } public String getString(String key, String def) { - return _preferences.get(key, def) + return _preferences.get(key, def); } public void putString(String key, String value) { _preferences.put(key, value); @@ -89,4 +89,4 @@ public class AltosUIPreferencesBackend implements AltosPreferencesBackend { } } -} \ No newline at end of file +} diff --git a/altosui/Makefile.am b/altosui/Makefile.am index 6010df58..9f03ceb6 100644 --- a/altosui/Makefile.am +++ b/altosui/Makefile.am @@ -65,6 +65,7 @@ altosui_JAVA = \ AltosLights.java \ AltosPad.java \ AltosUIPreferences.java \ + AltosUIPreferencesBackend.java \ AltosRomconfig.java \ AltosRomconfigUI.java \ AltosScanUI.java \ @@ -338,4 +339,4 @@ $(WINDOWS_DIST): $(WINDOWS_FILES) altos-windows.nsi makensis -Oaltos-windows.log "-XOutFile $@" "-DVERSION=$(VERSION)" altos-windows.nsi publish: - scp launch-sites.txt gag.com:public_html \ No newline at end of file + scp launch-sites.txt gag.com:public_html -- cgit v1.2.3 From d5e199c34ff5a02a4c4cc917c3f0eec32eae72a9 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 01:06:59 +1200 Subject: altosui: add missing try/catch Signed-off-by: Mike Beattie --- altosui/AltosUIPreferencesBackend.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'altosui') diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java index 69485ba4..1988e0b4 100644 --- a/altosui/AltosUIPreferencesBackend.java +++ b/altosui/AltosUIPreferencesBackend.java @@ -74,7 +74,10 @@ public class AltosUIPreferencesBackend implements AltosPreferencesBackend { } public String[] keys() { - return _preferences.keys(); + try { + return _preferences.keys(); + } catch (BackingStoreException be) { + } } public void remove(String key) { -- cgit v1.2.3 From 9335a74694df00c4876055e7c98661236646f6e5 Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 01:08:53 +1200 Subject: altosui: Add return to try/catch.. duh Signed-off-by: Mike Beattie --- altosui/AltosUIPreferencesBackend.java | 1 + 1 file changed, 1 insertion(+) (limited to 'altosui') diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java index 1988e0b4..1c53df84 100644 --- a/altosui/AltosUIPreferencesBackend.java +++ b/altosui/AltosUIPreferencesBackend.java @@ -77,6 +77,7 @@ public class AltosUIPreferencesBackend implements AltosPreferencesBackend { try { return _preferences.keys(); } catch (BackingStoreException be) { + return null; } } -- cgit v1.2.3 From f985ea055d935b10ae9ae8441fe808ba2c13c99e Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 01:27:22 +1200 Subject: altosui: revert AltosUIPreferences init() method Signed-off-by: Mike Beattie --- altosui/AltosUI.java | 1 - altosui/AltosUIPreferences.java | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'altosui') diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java index 52b6b128..b5cbefe7 100644 --- a/altosui/AltosUI.java +++ b/altosui/AltosUI.java @@ -98,7 +98,6 @@ public class AltosUI extends AltosFrame { load_library(null); - AltosUIPreferences.init(new AltosUIPreferencesBackend()); AltosUIPreferences.set_component(this); pane = getContentPane(); diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java index 4ef9384d..a28c07b0 100644 --- a/altosui/AltosUIPreferences.java +++ b/altosui/AltosUIPreferences.java @@ -45,8 +45,8 @@ public class AltosUIPreferences extends AltosPreferences { /* Serial debug */ static boolean serial_debug; - public static void init(AltosUIPreferencesBackend in_backend) { - AltosPreferences.init(in_backend); + public static void init() { + AltosPreferences.init(new AltosUIPreferencesBackend()); font_listeners = new LinkedList(); @@ -59,6 +59,8 @@ public class AltosUIPreferences extends AltosPreferences { AltosLink.set_debug(serial_debug); } + static { init(); } + static void set_component(Component in_component) { component = in_component; } -- cgit v1.2.3 From 6e0d672b8a516a604d8ea1abd2bed113c608143f Mon Sep 17 00:00:00 2001 From: Mike Beattie Date: Fri, 14 Sep 2012 12:43:21 +1200 Subject: altosui: remove un-used import Signed-off-by: Mike Beattie --- altosui/AltosUIPreferencesBackend.java | 1 - 1 file changed, 1 deletion(-) (limited to 'altosui') diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java index 1c53df84..210dcb8b 100644 --- a/altosui/AltosUIPreferencesBackend.java +++ b/altosui/AltosUIPreferencesBackend.java @@ -17,7 +17,6 @@ package altosui; -import java.text.*; import java.util.prefs.*; import org.altusmetrum.AltosLib.*; -- cgit v1.2.3