Class ScopedPreferenceStore
- java.lang.Object
-
- org.eclipse.core.commands.common.EventManager
-
- org.eclipse.handly.ui.preference.ScopedPreferenceStore
-
- All Implemented Interfaces:
org.eclipse.jface.preference.IPersistentPreferenceStore
,org.eclipse.jface.preference.IPreferenceStore
public class ScopedPreferenceStore extends org.eclipse.core.commands.common.EventManager implements org.eclipse.jface.preference.IPersistentPreferenceStore
This class is forked fromorg.eclipse.ui.preferences.ScopedPreferenceStore
to fix the memory leak issue described in Bug 239033.The ScopedPreferenceStore is an IPreferenceStore that uses the scopes provided in org.eclipse.core.runtime.preferences.
A ScopedPreferenceStore does the lookup of a preference based on its search scopes and sets the value of the preference based on its store scope.
The default scope is always included in the search scopes when searching for preference values.
-
-
Constructor Summary
Constructors Constructor Description ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, java.lang.String qualifier)
Creates a new scoped preference store that will store values in the node looked up in the given context by the given qualifier.ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, java.lang.String qualifier, java.lang.String defaultQualifierPath)
Creates a new scoped preference store that will store values in the node looked up in the given context by the given qualifier.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
boolean
contains(java.lang.String name)
void
firePropertyChangeEvent(java.lang.String name, java.lang.Object oldValue, java.lang.Object newValue)
boolean
getBoolean(java.lang.String name)
boolean
getDefaultBoolean(java.lang.String name)
double
getDefaultDouble(java.lang.String name)
float
getDefaultFloat(java.lang.String name)
int
getDefaultInt(java.lang.String name)
long
getDefaultLong(java.lang.String name)
java.lang.String
getDefaultString(java.lang.String name)
double
getDouble(java.lang.String name)
float
getFloat(java.lang.String name)
int
getInt(java.lang.String name)
long
getLong(java.lang.String name)
org.eclipse.core.runtime.preferences.IEclipsePreferences[]
getPreferenceNodes(boolean includeDefault)
Return the preference path to search preferences on.java.lang.String
getString(java.lang.String name)
boolean
isDefault(java.lang.String name)
boolean
needsSaving()
void
putValue(java.lang.String name, java.lang.String value)
void
removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
void
save()
void
setDefault(java.lang.String name, boolean value)
void
setDefault(java.lang.String name, double value)
void
setDefault(java.lang.String name, float value)
void
setDefault(java.lang.String name, int value)
void
setDefault(java.lang.String name, long value)
void
setDefault(java.lang.String name, java.lang.String defaultObject)
void
setSearchContexts(org.eclipse.core.runtime.preferences.IScopeContext[] scopes)
Set the search contexts to scopes.void
setToDefault(java.lang.String name)
void
setValue(java.lang.String name, boolean value)
void
setValue(java.lang.String name, double value)
void
setValue(java.lang.String name, float value)
void
setValue(java.lang.String name, int value)
void
setValue(java.lang.String name, long value)
void
setValue(java.lang.String name, java.lang.String value)
-
-
-
Constructor Detail
-
ScopedPreferenceStore
public ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, java.lang.String qualifier, java.lang.String defaultQualifierPath)
Creates a new scoped preference store that will store values in the node looked up in the given context by the given qualifier.- Parameters:
context
- the scope to store toqualifier
- the qualifier used to look up the preference nodedefaultQualifierPath
- the qualifier used when looking up the defaults
-
ScopedPreferenceStore
public ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, java.lang.String qualifier)
Creates a new scoped preference store that will store values in the node looked up in the given context by the given qualifier.- Parameters:
context
- the scope to store toqualifier
- the qualifier used to look up the preference node
-
-
Method Detail
-
setSearchContexts
public void setSearchContexts(org.eclipse.core.runtime.preferences.IScopeContext[] scopes)
Set the search contexts to scopes. When searching for a value the search will be done in the order of scope contexts and will not search the storeContext unless it is in this list.If the given list is
null
, then clear this store's search contexts. This means that only this store's scope context and default scope will be used during preference value searching.The defaultContext will be added to the end of this list automatically and MUST NOT be included by the user.
- Parameters:
scopes
- a list of scope contexts to use when searching, ornull
-
getPreferenceNodes
public org.eclipse.core.runtime.preferences.IEclipsePreferences[] getPreferenceNodes(boolean includeDefault)
Return the preference path to search preferences on. This is the list of preference nodes based on the scope contexts for this store. If there are no search contexts set, then return this store's context.Whether or not the default context should be included in the resulting list is specified by the
includeDefault
parameter.- Parameters:
includeDefault
-true
if the default context should be included andfalse
otherwise- Returns:
- IEclipsePreferences[]
-
addPropertyChangeListener
public void addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
- Specified by:
addPropertyChangeListener
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
contains
public boolean contains(java.lang.String name)
- Specified by:
contains
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
firePropertyChangeEvent
public void firePropertyChangeEvent(java.lang.String name, java.lang.Object oldValue, java.lang.Object newValue)
- Specified by:
firePropertyChangeEvent
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getBoolean
public boolean getBoolean(java.lang.String name)
- Specified by:
getBoolean
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getDefaultBoolean
public boolean getDefaultBoolean(java.lang.String name)
- Specified by:
getDefaultBoolean
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getDefaultDouble
public double getDefaultDouble(java.lang.String name)
- Specified by:
getDefaultDouble
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getDefaultFloat
public float getDefaultFloat(java.lang.String name)
- Specified by:
getDefaultFloat
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getDefaultInt
public int getDefaultInt(java.lang.String name)
- Specified by:
getDefaultInt
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getDefaultLong
public long getDefaultLong(java.lang.String name)
- Specified by:
getDefaultLong
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getDefaultString
public java.lang.String getDefaultString(java.lang.String name)
- Specified by:
getDefaultString
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getDouble
public double getDouble(java.lang.String name)
- Specified by:
getDouble
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getFloat
public float getFloat(java.lang.String name)
- Specified by:
getFloat
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getInt
public int getInt(java.lang.String name)
- Specified by:
getInt
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getLong
public long getLong(java.lang.String name)
- Specified by:
getLong
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
getString
public java.lang.String getString(java.lang.String name)
- Specified by:
getString
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
isDefault
public boolean isDefault(java.lang.String name)
- Specified by:
isDefault
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
needsSaving
public boolean needsSaving()
- Specified by:
needsSaving
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
putValue
public void putValue(java.lang.String name, java.lang.String value)
- Specified by:
putValue
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
removePropertyChangeListener
public void removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
- Specified by:
removePropertyChangeListener
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setDefault
public void setDefault(java.lang.String name, double value)
- Specified by:
setDefault
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setDefault
public void setDefault(java.lang.String name, float value)
- Specified by:
setDefault
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setDefault
public void setDefault(java.lang.String name, int value)
- Specified by:
setDefault
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setDefault
public void setDefault(java.lang.String name, long value)
- Specified by:
setDefault
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setDefault
public void setDefault(java.lang.String name, java.lang.String defaultObject)
- Specified by:
setDefault
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setDefault
public void setDefault(java.lang.String name, boolean value)
- Specified by:
setDefault
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setToDefault
public void setToDefault(java.lang.String name)
- Specified by:
setToDefault
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setValue
public void setValue(java.lang.String name, double value)
- Specified by:
setValue
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setValue
public void setValue(java.lang.String name, float value)
- Specified by:
setValue
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setValue
public void setValue(java.lang.String name, int value)
- Specified by:
setValue
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setValue
public void setValue(java.lang.String name, long value)
- Specified by:
setValue
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setValue
public void setValue(java.lang.String name, java.lang.String value)
- Specified by:
setValue
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
setValue
public void setValue(java.lang.String name, boolean value)
- Specified by:
setValue
in interfaceorg.eclipse.jface.preference.IPreferenceStore
-
save
public void save() throws java.io.IOException
- Specified by:
save
in interfaceorg.eclipse.jface.preference.IPersistentPreferenceStore
- Throws:
java.io.IOException
-
-