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 from org.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 Details

    • ScopedPreferenceStore

      public ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, String qualifier, 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 to
      qualifier - the qualifier used to look up the preference node
      defaultQualifierPath - the qualifier used when looking up the defaults
    • ScopedPreferenceStore

      public ScopedPreferenceStore(org.eclipse.core.runtime.preferences.IScopeContext context, 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 to
      qualifier - the qualifier used to look up the preference node
  • Method Details

    • 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, or null
    • 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 and false otherwise
      Returns:
      IEclipsePreferences[]
    • addPropertyChangeListener

      public void addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
      Specified by:
      addPropertyChangeListener in interface org.eclipse.jface.preference.IPreferenceStore
    • contains

      public boolean contains(String name)
      Specified by:
      contains in interface org.eclipse.jface.preference.IPreferenceStore
    • firePropertyChangeEvent

      public void firePropertyChangeEvent(String name, Object oldValue, Object newValue)
      Specified by:
      firePropertyChangeEvent in interface org.eclipse.jface.preference.IPreferenceStore
    • getBoolean

      public boolean getBoolean(String name)
      Specified by:
      getBoolean in interface org.eclipse.jface.preference.IPreferenceStore
    • getDefaultBoolean

      public boolean getDefaultBoolean(String name)
      Specified by:
      getDefaultBoolean in interface org.eclipse.jface.preference.IPreferenceStore
    • getDefaultDouble

      public double getDefaultDouble(String name)
      Specified by:
      getDefaultDouble in interface org.eclipse.jface.preference.IPreferenceStore
    • getDefaultFloat

      public float getDefaultFloat(String name)
      Specified by:
      getDefaultFloat in interface org.eclipse.jface.preference.IPreferenceStore
    • getDefaultInt

      public int getDefaultInt(String name)
      Specified by:
      getDefaultInt in interface org.eclipse.jface.preference.IPreferenceStore
    • getDefaultLong

      public long getDefaultLong(String name)
      Specified by:
      getDefaultLong in interface org.eclipse.jface.preference.IPreferenceStore
    • getDefaultString

      public String getDefaultString(String name)
      Specified by:
      getDefaultString in interface org.eclipse.jface.preference.IPreferenceStore
    • getDouble

      public double getDouble(String name)
      Specified by:
      getDouble in interface org.eclipse.jface.preference.IPreferenceStore
    • getFloat

      public float getFloat(String name)
      Specified by:
      getFloat in interface org.eclipse.jface.preference.IPreferenceStore
    • getInt

      public int getInt(String name)
      Specified by:
      getInt in interface org.eclipse.jface.preference.IPreferenceStore
    • getLong

      public long getLong(String name)
      Specified by:
      getLong in interface org.eclipse.jface.preference.IPreferenceStore
    • getString

      public String getString(String name)
      Specified by:
      getString in interface org.eclipse.jface.preference.IPreferenceStore
    • isDefault

      public boolean isDefault(String name)
      Specified by:
      isDefault in interface org.eclipse.jface.preference.IPreferenceStore
    • needsSaving

      public boolean needsSaving()
      Specified by:
      needsSaving in interface org.eclipse.jface.preference.IPreferenceStore
    • putValue

      public void putValue(String name, String value)
      Specified by:
      putValue in interface org.eclipse.jface.preference.IPreferenceStore
    • removePropertyChangeListener

      public void removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener listener)
      Specified by:
      removePropertyChangeListener in interface org.eclipse.jface.preference.IPreferenceStore
    • setDefault

      public void setDefault(String name, double value)
      Specified by:
      setDefault in interface org.eclipse.jface.preference.IPreferenceStore
    • setDefault

      public void setDefault(String name, float value)
      Specified by:
      setDefault in interface org.eclipse.jface.preference.IPreferenceStore
    • setDefault

      public void setDefault(String name, int value)
      Specified by:
      setDefault in interface org.eclipse.jface.preference.IPreferenceStore
    • setDefault

      public void setDefault(String name, long value)
      Specified by:
      setDefault in interface org.eclipse.jface.preference.IPreferenceStore
    • setDefault

      public void setDefault(String name, String defaultObject)
      Specified by:
      setDefault in interface org.eclipse.jface.preference.IPreferenceStore
    • setDefault

      public void setDefault(String name, boolean value)
      Specified by:
      setDefault in interface org.eclipse.jface.preference.IPreferenceStore
    • setToDefault

      public void setToDefault(String name)
      Specified by:
      setToDefault in interface org.eclipse.jface.preference.IPreferenceStore
    • setValue

      public void setValue(String name, double value)
      Specified by:
      setValue in interface org.eclipse.jface.preference.IPreferenceStore
    • setValue

      public void setValue(String name, float value)
      Specified by:
      setValue in interface org.eclipse.jface.preference.IPreferenceStore
    • setValue

      public void setValue(String name, int value)
      Specified by:
      setValue in interface org.eclipse.jface.preference.IPreferenceStore
    • setValue

      public void setValue(String name, long value)
      Specified by:
      setValue in interface org.eclipse.jface.preference.IPreferenceStore
    • setValue

      public void setValue(String name, String value)
      Specified by:
      setValue in interface org.eclipse.jface.preference.IPreferenceStore
    • setValue

      public void setValue(String name, boolean value)
      Specified by:
      setValue in interface org.eclipse.jface.preference.IPreferenceStore
    • save

      public void save() throws IOException
      Specified by:
      save in interface org.eclipse.jface.preference.IPersistentPreferenceStore
      Throws:
      IOException