/* * Preferences.java * * Created on September 10, 2003, 11:49 PM */ package kiyut.ekspos.prefs; import java.util.*; import java.util.prefs.*; import kiyut.ekspos.*; /** Ekspos preferences. It is basicly just simple wrapper for java.util.prefs * * @author tonny */ public class GeneralPreferences extends AbstractPreferencesOption { private static GeneralPreferences instance; // The single instance //private static final String PREFERENCES_NODE = "/kiyut/ekspos"; public static final String PREFERENCES_NODE = PreferencesOption.ROOT_NODE + "/General"; /** cache directory */ public static final String CACHE_DIRECTORY_KEY = "cache_directory"; /** use cache */ public static final String USE_CACHE_KEY = "use_cache"; /** docking layout */ public static final String DOCKING_LAYOUT_KEY = "docking_layout"; /** repaint increment */ public static final String PROGRESS_REPAINT_KEY = "progress_repaint"; /** repaint increment */ public static final String FIT_TO_WINDOW_KEY = "fit_to_window"; /** TOTD */ public static final String TOTD_KEY = "totd"; private Map<String,Object> valueMap; /** * Returns the single instance, creating one if it's the * first time this method is called. * * @return Preferences The single instance. */ static synchronized public GeneralPreferences getInstance() { if (instance == null) { instance = new GeneralPreferences(); } return instance; } /** Creates a new instance of Preferences */ private GeneralPreferences() { valueMap = new HashMap<String,Object>(); load(); } /** {@inheritDoc} */ public void load() { Preferences prefs = Preferences.userRoot().node(PREFERENCES_NODE); String str; str = CACHE_DIRECTORY_KEY; valueMap.put(str,prefs.get(str, System.getProperty("user.home") + "/.thumbnails/normal")); str = USE_CACHE_KEY; valueMap.put(str,new Boolean(prefs.getBoolean(str, true))); str = PROGRESS_REPAINT_KEY; valueMap.put(str, new Double(prefs.getDouble(str,10))); str = FIT_TO_WINDOW_KEY; valueMap.put(str,new Boolean(prefs.getBoolean(str, true))); str = TOTD_KEY; valueMap.put(str,new Boolean(prefs.getBoolean(str, true))); str = DOCKING_LAYOUT_KEY; valueMap.put(str,prefs.getByteArray(str,null)); } /** {@inheritDoc} */ public void save() { java.util.prefs.Preferences prefs = java.util.prefs.Preferences.userRoot().node(PREFERENCES_NODE); String str; str = CACHE_DIRECTORY_KEY; prefs.put(str, (String)valueMap.get(str)); str = USE_CACHE_KEY; prefs.putBoolean(str, ((Boolean)valueMap.get(str)).booleanValue()); str = PROGRESS_REPAINT_KEY; prefs.putDouble(str, ((Double)valueMap.get(str)).doubleValue()); str = FIT_TO_WINDOW_KEY; prefs.putBoolean(str, ((Boolean)valueMap.get(str)).booleanValue()); str = TOTD_KEY; prefs.putBoolean(str, ((Boolean)valueMap.get(str)).booleanValue()); str = DOCKING_LAYOUT_KEY; byte[] dockingLayout = (byte[])valueMap.get(str); if (dockingLayout != null) { prefs.putByteArray(str, dockingLayout); } } public void putString(String key, String value) { valueMap.put(key,value); } public void putBoolean(String key, boolean value) { valueMap.put(key,new Boolean(value)); } public void putDouble(String key, double value) { valueMap.put(key,new Double(value)); } public String getString(String key) { return (String)valueMap.get(key); } public boolean getBoolean(String key) { return ((Boolean)valueMap.get(key)).booleanValue(); } public double getDouble(String key) { return ((Double)valueMap.get(key)).doubleValue(); } public void putByteArray(String key, byte[] byteArray) { valueMap.put(key, byteArray); } public byte[] getByteArray(String key) { return (byte[])valueMap.get(key); } }