package org.matveev.pomodoro4nb.prefs; import java.util.ArrayList; import java.util.List; import java.util.prefs.PreferenceChangeEvent; import java.util.prefs.PreferenceChangeListener; import java.util.prefs.Preferences; import org.openide.util.NbPreferences; /** * * @author Alexey Matveev */ public class DefaultPreferencesProvider implements PreferencesProvider { public static final int DEFAULT_POMODORO_LENGTH = 25; public static final int DEFAULT_SHORT_BREAK_LENGTH = 5; public static final int DEFAULT_LONG_BREAK_LENGTH = 30; public static final int DEFAULT_LONG_BREAK_INTERVAL = 4; public static final String POMODORO_LENGTH_KEY = "pomodoroLength"; public static final String SHORT_BREAK_LENGTH_KEY = "shortBreakLength"; public static final String LONG_BREAK_LENGTH_KEY = "longBreakLength"; public static final String LONG_BREAK_INTERVAL_KEY = "longBreakInterval"; public static final String ENABLE_SOUNDS_KEY = "enableSounds"; private final List<PreferencesListener> listeners = new ArrayList<PreferencesListener>(); private final Preferences prefs; public DefaultPreferencesProvider() { prefs = NbPreferences.forModule(DefaultPreferencesProvider.class); prefs.addPreferenceChangeListener(new PreferenceChangeListener() { @Override public void preferenceChange(PreferenceChangeEvent evt) { firePreferencesChange(evt.getKey(), evt.getNewValue()); } }); } private void firePreferencesChange(String key, String newValue) { for(PreferencesListener l : listeners) { l.preferencesChange(key, newValue); } } @Override public String getString(String key, String fallback) { return prefs.get(key, fallback); } @Override public int getInteger(String key, int fallback) { return prefs.getInt(key, fallback); } @Override public void setString(String key, String value) { prefs.put(key, value); } @Override public void setInteger(String key, int value) { prefs.putInt(key, value); } @Override public boolean getBoolean(String key, boolean fallback) { return prefs.getBoolean(key, fallback); } @Override public void setBoolean(String key, boolean value) { prefs.putBoolean(key, value); } @Override public void addPrefrencesListener(PreferencesListener l) { listeners.add(l); } @Override public void removePrefrencesListener(PreferencesListener l) { listeners.remove(l); } }