/*
* This file is part of Goko.
*
* Goko 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, either version 3 of the License, or
* (at your option) any later version.
*
* Goko 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 Goko. If not, see <http://www.gnu.org/licenses/>.
*/
package org.goko.core.config;
import java.io.IOException;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.jface.preference.IPersistentPreferenceStore;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.goko.common.preferences.ScopedPreferenceStore;
public abstract class GkPreference implements IPreferenceStore, IPersistentPreferenceStore{
private ScopedPreferenceStore store;
public GkPreference(String id) {
this(id, InstanceScope.INSTANCE);
}
public GkPreference(String id, IScopeContext scope) {
store = new ScopedPreferenceStore(scope, id);
}
public ScopedPreferenceStore getPreferenceStore(){
return store;
}
/**
* @param listener
* @see org.goko.common.preferences.ScopedPreferenceStore#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
*/
public void addPropertyChangeListener(IPropertyChangeListener listener) {
store.addPropertyChangeListener(listener);
}
/**
* @param includeDefault
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getPreferenceNodes(boolean)
*/
public IEclipsePreferences[] getPreferenceNodes(boolean includeDefault) {
return store.getPreferenceNodes(includeDefault);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#contains(java.lang.String)
*/
public boolean contains(String name) {
return store.contains(name);
}
/**
* @param obj
* @return
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
return store.equals(obj);
}
/**
* @param scopes
* @see org.goko.common.preferences.ScopedPreferenceStore#setSearchContexts(org.eclipse.core.runtime.preferences.IScopeContext[])
*/
public void setSearchContexts(IScopeContext[] scopes) {
store.setSearchContexts(scopes);
}
/**
* @param name
* @param oldValue
* @param newValue
* @see org.goko.common.preferences.ScopedPreferenceStore#firePropertyChangeEvent(java.lang.String, java.lang.Object, java.lang.Object)
*/
public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
store.firePropertyChangeEvent(name, oldValue, newValue);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getBoolean(java.lang.String)
*/
public boolean getBoolean(String name) {
return store.getBoolean(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getDefaultBoolean(java.lang.String)
*/
public boolean getDefaultBoolean(String name) {
return store.getDefaultBoolean(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getDefaultDouble(java.lang.String)
*/
public double getDefaultDouble(String name) {
return store.getDefaultDouble(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getDefaultFloat(java.lang.String)
*/
public float getDefaultFloat(String name) {
return store.getDefaultFloat(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getDefaultInt(java.lang.String)
*/
public int getDefaultInt(String name) {
return store.getDefaultInt(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getDefaultLong(java.lang.String)
*/
public long getDefaultLong(String name) {
return store.getDefaultLong(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getDefaultString(java.lang.String)
*/
public String getDefaultString(String name) {
return store.getDefaultString(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getDouble(java.lang.String)
*/
public double getDouble(String name) {
return store.getDouble(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getFloat(java.lang.String)
*/
public float getFloat(String name) {
return store.getFloat(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getInt(java.lang.String)
*/
public int getInt(String name) {
return store.getInt(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getLong(java.lang.String)
*/
public long getLong(String name) {
return store.getLong(name);
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#getString(java.lang.String)
*/
public String getString(String name) {
return store.getString(name);
}
/**
* @return
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return store.hashCode();
}
/**
* @param name
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#isDefault(java.lang.String)
*/
public boolean isDefault(String name) {
return store.isDefault(name);
}
/**
* @return
* @see org.goko.common.preferences.ScopedPreferenceStore#needsSaving()
*/
public boolean needsSaving() {
return store.needsSaving();
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#putValue(java.lang.String, java.lang.String)
*/
public void putValue(String name, String value) {
store.putValue(name, value);
}
/**
* @param listener
* @see org.goko.common.preferences.ScopedPreferenceStore#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
*/
public void removePropertyChangeListener(IPropertyChangeListener listener) {
store.removePropertyChangeListener(listener);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setDefault(java.lang.String, double)
*/
public void setDefault(String name, double value) {
store.setDefault(name, value);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setDefault(java.lang.String, float)
*/
public void setDefault(String name, float value) {
store.setDefault(name, value);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setDefault(java.lang.String, int)
*/
public void setDefault(String name, int value) {
store.setDefault(name, value);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setDefault(java.lang.String, long)
*/
public void setDefault(String name, long value) {
store.setDefault(name, value);
}
/**
* @param name
* @param defaultObject
* @see org.goko.common.preferences.ScopedPreferenceStore#setDefault(java.lang.String, java.lang.String)
*/
public void setDefault(String name, String defaultObject) {
store.setDefault(name, defaultObject);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setDefault(java.lang.String, boolean)
*/
public void setDefault(String name, boolean value) {
store.setDefault(name, value);
}
/**
* @param name
* @see org.goko.common.preferences.ScopedPreferenceStore#setToDefault(java.lang.String)
*/
public void setToDefault(String name) {
store.setToDefault(name);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setValue(java.lang.String, double)
*/
public void setValue(String name, double value) {
store.setValue(name, value);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setValue(java.lang.String, float)
*/
public void setValue(String name, float value) {
store.setValue(name, value);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setValue(java.lang.String, int)
*/
public void setValue(String name, int value) {
store.setValue(name, value);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setValue(java.lang.String, long)
*/
public void setValue(String name, long value) {
store.setValue(name, value);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setValue(java.lang.String, java.lang.String)
*/
public void setValue(String name, String value) {
store.setValue(name, value);
}
/**
* @param name
* @param value
* @see org.goko.common.preferences.ScopedPreferenceStore#setValue(java.lang.String, boolean)
*/
public void setValue(String name, boolean value) {
store.setValue(name, value);
}
/** (inheritDoc)
* @see org.eclipse.jface.preference.IPersistentPreferenceStore#save()
*/
@Override
public void save() throws IOException {
store.save();
}
/**
* @return
* @see java.lang.Object#toString()
*/
public String toString() {
return store.toString();
}
//
// /**
// * Constructor
// */
// protected GkPreference(String id) {
// preferences = InstanceScope.INSTANCE.getNode(id);
// preferences = InstanceScope.INSTANCE.getNode(id+".defaultValues");
// }
//
// /**
// * @return the preferences
// */
// public IEclipsePreferences getPreferences() {
// return preferences;
// }
//
// /**
// * @param preferences the preferences to set
// */
// protected void setPreferences(IEclipsePreferences preferences) {
// this.preferences = preferences;
// }
//
// public void save() throws GkException{
// try {
// getPreferences().flush();
// } catch (BackingStoreException e) {
// throw new GkTechnicalException(e);
// }
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
// */
// @Override
// public void addPropertyChangeListener(IPropertyChangeListener listener) {
//
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#contains(java.lang.String)
// */
// @Override
// public boolean contains(String name) {
// try {
// return preferences.nodeExists(name);
// } catch (BackingStoreException e) {
// return false;
// }
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#firePropertyChangeEvent(java.lang.String, java.lang.Object, java.lang.Object)
// */
// @Override
// public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
// // TODO Auto-generated method stub
//
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getBoolean(java.lang.String)
// */
// @Override
// public boolean getBoolean(String name) {
// return preferences.getBoolean(name, IPreferenceStore.BOOLEAN_DEFAULT_DEFAULT);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultBoolean(java.lang.String)
// */
// @Override
// public boolean getDefaultBoolean(String name) {
// return IPreferenceStore.BOOLEAN_DEFAULT_DEFAULT;
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultDouble(java.lang.String)
// */
// @Override
// public double getDefaultDouble(String name) {
// return IPreferenceStore.DOUBLE_DEFAULT_DEFAULT;
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultFloat(java.lang.String)
// */
// @Override
// public float getDefaultFloat(String name) {
// return IPreferenceStore.FLOAT_DEFAULT_DEFAULT;
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultInt(java.lang.String)
// */
// @Override
// public int getDefaultInt(String name) {
// return IPreferenceStore.INT_DEFAULT_DEFAULT;
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultLong(java.lang.String)
// */
// @Override
// public long getDefaultLong(String name) {
// return IPreferenceStore.LONG_DEFAULT_DEFAULT;
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getDefaultString(java.lang.String)
// */
// @Override
// public String getDefaultString(String name) {
// return IPreferenceStore.STRING_DEFAULT_DEFAULT;
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getDouble(java.lang.String)
// */
// @Override
// public double getDouble(String name) {
// return preferences.getDouble(name, IPreferenceStore.DOUBLE_DEFAULT_DEFAULT);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getFloat(java.lang.String)
// */
// @Override
// public float getFloat(String name) {
// return preferences.getFloat(name, IPreferenceStore.FLOAT_DEFAULT_DEFAULT);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getInt(java.lang.String)
// */
// @Override
// public int getInt(String name) {
// return preferences.getInt(name, IPreferenceStore.INT_DEFAULT_DEFAULT);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getLong(java.lang.String)
// */
// @Override
// public long getLong(String name) {
// return preferences.getLong(name, IPreferenceStore.LONG_DEFAULT_DEFAULT);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#getString(java.lang.String)
// */
// @Override
// public String getString(String name) {
// return preferences.get(name, IPreferenceStore.STRING_DEFAULT_DEFAULT);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#isDefault(java.lang.String)
// */
// @Override
// public boolean isDefault(String name) {
// return false;
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#needsSaving()
// */
// @Override
// public boolean needsSaving() {
// return true;
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#putValue(java.lang.String, java.lang.String)
// */
// @Override
// public void putValue(String name, String value) {
// preferences.put(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
// */
// @Override
// public void removePropertyChangeListener(IPropertyChangeListener listener) {
// // TODO Auto-generated method stub
//
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, double)
// */
// @Override
// public void setDefault(String name, double value) {
// defaultPreferences.putDouble(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, float)
// */
// @Override
// public void setDefault(String name, float value) {
// defaultPreferences.putFloat(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, int)
// */
// @Override
// public void setDefault(String name, int value) {
// defaultPreferences.putInt(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, long)
// */
// @Override
// public void setDefault(String name, long value) {
// defaultPreferences.putLong(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, java.lang.String)
// */
// @Override
// public void setDefault(String name, String value) {
// defaultPreferences.put(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setDefault(java.lang.String, boolean)
// */
// @Override
// public void setDefault(String name, boolean value) {
// defaultPreferences.putBoolean(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setToDefault(java.lang.String)
// */
// @Override
// public void setToDefault(String name) {
// preferences.put(name, defaultPreferences.get(name, STRING_DEFAULT_DEFAULT));
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, double)
// */
// @Override
// public void setValue(String name, double value) {
// preferences.putDouble(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, float)
// */
// @Override
// public void setValue(String name, float value) {
// preferences.putFloat(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, int)
// */
// @Override
// public void setValue(String name, int value) {
// preferences.putInt(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, long)
// */
// @Override
// public void setValue(String name, long value) {
// preferences.putLong(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, java.lang.String)
// */
// @Override
// public void setValue(String name, String value) {
// preferences.put(name, value);
// }
//
// /** (inheritDoc)
// * @see org.eclipse.jface.preference.IPreferenceStore#setValue(java.lang.String, boolean)
// */
// @Override
// public void setValue(String name, boolean value) {
// preferences.putBoolean(name, value);
// }
}