diff options
| author | Keith Packard <keithp@keithp.com> | 2012-09-20 11:30:11 +0200 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2012-09-20 11:30:11 +0200 | 
| commit | e69a433fd93b9f6bd2297d8045eb075fee29e73b (patch) | |
| tree | 93a47e78282df5e2ee47c11afa2e772d2cbfd3bb /altosui | |
| parent | 19243ecc9b5bbdcc069ae24acf1ca807322c84d8 (diff) | |
| parent | 6e0d672b8a516a604d8ea1abd2bed113c608143f (diff) | |
Merge remote-tracking branch 'mjb/prefs_interface'
Diffstat (limited to 'altosui')
| -rw-r--r-- | altosui/AltosBTKnown.java | 9 | ||||
| -rw-r--r-- | altosui/AltosUIPreferences.java | 38 | ||||
| -rw-r--r-- | altosui/AltosUIPreferencesBackend.java | 95 | ||||
| -rw-r--r-- | altosui/Makefile.am | 3 | 
4 files changed, 121 insertions, 24 deletions
| diff --git a/altosui/AltosBTKnown.java b/altosui/AltosBTKnown.java index 74cc6838..ae04ac8c 100644 --- a/altosui/AltosBTKnown.java +++ b/altosui/AltosBTKnown.java @@ -17,18 +17,18 @@  package altosui;  import java.util.*; -import java.util.prefs.*; +import org.altusmetrum.AltosLib.*;  public class AltosBTKnown implements Iterable<AltosBTDevice> {  	LinkedList<AltosBTDevice>	devices = new LinkedList<AltosBTDevice>(); -	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) { @@ -43,7 +43,6 @@ public class AltosBTKnown implements Iterable<AltosBTDevice> {  				String	addr = get_address(name);  				devices.add(new AltosBTDevice(name, addr));  			} -		} catch (BackingStoreException be) {  		} catch (IllegalStateException ie) {  		}  	} diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java index a026d123..a28c07b0 100644 --- a/altosui/AltosUIPreferences.java +++ b/altosui/AltosUIPreferences.java @@ -46,14 +46,16 @@ public class AltosUIPreferences extends AltosPreferences {  	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 = preferences.getBoolean(serialDebugPreference, false); +		serial_debug = backend.getBoolean(serialDebugPreference, false);  		AltosLink.set_debug(serial_debug);  	} @@ -98,7 +100,7 @@ public class AltosUIPreferences extends AltosPreferences {  		}  	}  	public static int font_size() { -		synchronized (preferences) { +		synchronized (backend) {  			return font_size;  		}  	} @@ -107,9 +109,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 +120,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 +136,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); @@ -144,35 +146,35 @@ public class AltosUIPreferences extends AltosPreferences {  	}  	public static String look_and_feel() { -		synchronized (preferences) { +		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);  		}  	}  	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();  		}  	}  	public static boolean serial_debug() { -		synchronized (preferences) { +		synchronized (backend) {  			return serial_debug;  		}  	} -}
\ No newline at end of file +} diff --git a/altosui/AltosUIPreferencesBackend.java b/altosui/AltosUIPreferencesBackend.java new file mode 100644 index 00000000..210dcb8b --- /dev/null +++ b/altosui/AltosUIPreferencesBackend.java @@ -0,0 +1,95 @@ +/* + * Copyright © 2012 Mike Beattie <mike@ethernal.org> + * + * 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.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 String[] keys() { +		try { +			return _preferences.keys(); +		} catch (BackingStoreException be) { +			return null; +		} +	} + +	public void remove(String key) { +		_preferences.remove(key); +	} + +	public void    flush() { +		try { +			_preferences.flush(); +		} catch (BackingStoreException ee) { +			System.err.printf("Cannot save preferences\n"); +		} +	} + +} 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 | 
