package amidst.preferences;
import javax.swing.JToggleButton.ToggleButtonModel;
import java.util.prefs.Preferences;
public class BooleanPrefModel extends ToggleButtonModel implements PrefModel<Boolean> {
private static final long serialVersionUID = -2291122955784916836L;
private final String key;
private final Preferences pref;
public BooleanPrefModel(Preferences pref, String key, boolean selected) {
super();
this.pref = pref;
this.key = key;
set(pref.getBoolean(key, selected));
}
@Override
public String getKey() {
return key;
}
@Override
public Boolean get() {
assert pref.get(key, null) != null && pref.getBoolean(key, false) == super.isSelected();
return super.isSelected();
}
@Override
public boolean isSelected() {
return get();
}
@Override
public void set(Boolean value) {
super.setSelected(value);
pref.putBoolean(key, value);
}
@Override
public void setSelected(boolean value) {
set(value);
}
}