/*
* Copyright 2003-2010 Tufts University Licensed under the
* Educational Community License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may
* obtain a copy of the License at
*
* http://www.osedu.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS"
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package edu.tufts.vue.preferences.implementations;
import java.util.prefs.Preferences;
import javax.swing.JComponent;
import edu.tufts.vue.preferences.generics.BasePref;
import edu.tufts.vue.preferences.interfaces.VuePreference;
public class IntegerPreference extends BasePref
{
private String category;
private String name;
private String key;
private String description;
private Integer defaultValue;
private Integer previousValue;
private Preferences p = Preferences.userNodeForPackage(getPrefRoot());
public static IntegerPreference create(String category, String key, String name, String desc, Integer defaultValue, boolean showInUI)
{
return new IntegerPreference(category,key,name,desc,defaultValue,showInUI);
}
//show in UI defaults to true
public static IntegerPreference create(String category, String key, String name, String desc, Integer defaultValue)
{
return new IntegerPreference(category,key,name,desc,defaultValue,true);
}
protected IntegerPreference(String category, String key, String name, String desc, Integer defaultValue, boolean showInUI)
{
this.category=category;
this.key = key;
this.name = name;
this.description = desc;
this.defaultValue = defaultValue;
if (showInUI)
edu.tufts.vue.preferences.PreferencesManager.registerPreference(this);
}
public Integer getDefaultValue()
{
return defaultValue;
}
public String getDescription() {
return description;
}
public String getMessage()
{
return name;
}
public String getTitle() {
return name;
}
public String getCategoryKey() {
return category;
}
public String getPrefName() {
return category + "." + key;
}
public JComponent getPreferenceUI() {
// TODO Auto-generated method stub
return null;
}
public Integer getPreviousValue()
{
if (previousValue == null)
return getDefaultValue();
else
return previousValue;
}
public Integer getValue(){
Integer i = (p.getInt(getPrefName(), getDefaultValue().intValue()));
return i;
}
public void setValue(Object o)
{
setValue((Integer)o);
}
public void setValue(Integer i)
{
previousValue = getValue();
p.putInt(getPrefName(), i.intValue());
_fireVuePrefEvent();
}
}