Class PreferenceStore
- All Implemented Interfaces:
IPersistentPreferenceStore
,IPreferenceStore
java.util.Properties
object, with support for persisting the
non-default preference values to files or streams.
This class was not designed to be subclassed.
- See Also:
-
Field Summary
Fields inherited from interface org.eclipse.jface.preference.IPreferenceStore
BOOLEAN_DEFAULT_DEFAULT, DOUBLE_DEFAULT_DEFAULT, FALSE, FLOAT_DEFAULT_DEFAULT, INT_DEFAULT_DEFAULT, LONG_DEFAULT_DEFAULT, STRING_DEFAULT_DEFAULT, TRUE
-
Constructor Summary
ConstructorDescriptionCreates an empty preference store.PreferenceStore
(String filename) Creates an empty preference store that loads from and saves to the a file. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Adds a property change listener to this preference store.boolean
Returns whether the named preference is known to this preference store.void
firePropertyChangeEvent
(String name, Object oldValue, Object newValue) Fires a property change event corresponding to a change to the current value of the preference with the given name.boolean
getBoolean
(String name) Returns the current value of the boolean-valued preference with the given name.boolean
getDefaultBoolean
(String name) Returns the default value for the boolean-valued preference with the given name.double
getDefaultDouble
(String name) Returns the default value for the double-valued preference with the given name.float
getDefaultFloat
(String name) Returns the default value for the float-valued preference with the given name.int
getDefaultInt
(String name) Returns the default value for the integer-valued preference with the given name.long
getDefaultLong
(String name) Returns the default value for the long-valued preference with the given name.getDefaultString
(String name) Returns the default value for the string-valued preference with the given name.double
Returns the current value of the double-valued preference with the given name.float
Returns the current value of the float-valued preference with the given name.int
Returns the current value of the integer-valued preference with the given name.long
Returns the current value of the long-valued preference with the given name.Returns the current value of the string-valued preference with the given name.boolean
Returns whether the current value of the preference with the given name has the default value.void
list
(PrintStream out) Prints the contents of this preference store to the given print stream.void
list
(PrintWriter out) Prints the contents of this preference store to the given print writer.void
load()
Loads this preference store from the file established in the constructorPreferenceStore(java.lang.String)
(or bysetFileName
).void
load
(InputStream in) Loads this preference store from the given input stream.boolean
Returns whether the current values in this property store require saving.String[]
Returns an enumeration of all preferences known to this store which have current values other than their default value.void
Sets the current value of the preference with the given name to the given string value without sending a property change.void
Removes the given listener from this preference store.void
save()
Saves the non-default-valued preferences known to this preference store to the file from which they were originally loaded.void
save
(OutputStream out, String header) Saves this preference store to the given output stream.void
setDefault
(String name, boolean value) Sets the default value for the boolean-valued preference with the given name.void
setDefault
(String name, double value) Sets the default value for the double-valued preference with the given name.void
setDefault
(String name, float value) Sets the default value for the float-valued preference with the given name.void
setDefault
(String name, int value) Sets the default value for the integer-valued preference with the given name.void
setDefault
(String name, long value) Sets the default value for the long-valued preference with the given name.void
setDefault
(String name, String value) Sets the default value for the string-valued preference with the given name.void
setFilename
(String name) Sets the name of the file used when loading and storing this preference store.void
setToDefault
(String name) Sets the current value of the preference with the given name back to its default value.void
Sets the current value of the boolean-valued preference with the given name.void
Sets the current value of the double-valued preference with the given name.void
Sets the current value of the float-valued preference with the given name.void
Sets the current value of the integer-valued preference with the given name.void
Sets the current value of the long-valued preference with the given name.void
Sets the current value of the string-valued preference with the given name.Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
-
Constructor Details
-
PreferenceStore
public PreferenceStore()Creates an empty preference store.Use the methods
load(InputStream)
andsave(InputStream)
to load and store this preference store.- See Also:
-
PreferenceStore
Creates an empty preference store that loads from and saves to the a file.Use the methods
load()
andsave()
to load and store this preference store.
-
-
Method Details
-
addPropertyChangeListener
Description copied from interface:IPreferenceStore
Adds a property change listener to this preference store.
Note The types of the oldValue and newValue of the generated PropertyChangeEvent are determined by whether or not the typed API in IPreferenceStore was called. If values are changed via setValue(name,type) the values in the PropertyChangedEvent will be of that type. If they are set using a non typed API (i.e. #setToDefault or using the OSGI Preferences) the values will be unconverted Strings.
A listener will be called in the same Thread that it is invoked in. Any Thread dependant listeners (such as those who update an SWT widget) will need to update in the correct Thread. In the case of an SWT update you can update using Display#syncExec(Runnable) or Display#asyncExec(Runnable).
Likewise any application that updates an IPreferenceStore from a Thread other than the UI Thread should be aware of any listeners that require an update in the UI Thread.
- Specified by:
addPropertyChangeListener
in interfaceIPreferenceStore
- Parameters:
listener
- a property change listener- See Also:
-
PropertyChangeEvent
IPreferenceStore.setToDefault(String)
IPreferenceStore.setValue(String, boolean)
IPreferenceStore.setValue(String, double)
IPreferenceStore.setValue(String, float)
IPreferenceStore.setValue(String, int)
IPreferenceStore.setValue(String, long)
IPreferenceStore.setValue(String, String)
-
contains
Description copied from interface:IPreferenceStore
Returns whether the named preference is known to this preference store.- Specified by:
contains
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
true
if either a current value or a default value is known for the named preference, andfalse
otherwise
-
firePropertyChangeEvent
Description copied from interface:IPreferenceStore
Fires a property change event corresponding to a change to the current value of the preference with the given name.This method is provided on this interface to simplify the implementation of decorators. There is normally no need to call this method since
setValue
andsetToDefault
report such events in due course. Implementations should funnel all preference changes through this method.- Specified by:
firePropertyChangeEvent
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference, to be used as the property in the event objectoldValue
- the old valuenewValue
- the new value
-
getBoolean
Description copied from interface:IPreferenceStore
Returns the current value of the boolean-valued preference with the given name. Returns the default-default value (false
) if there is no preference with the given name, or if the current value cannot be treated as a boolean.- Specified by:
getBoolean
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the boolean-valued preference
-
getDefaultBoolean
Description copied from interface:IPreferenceStore
Returns the default value for the boolean-valued preference with the given name. Returns the default-default value (false
) if there is no default preference with the given name, or if the default value cannot be treated as a boolean.- Specified by:
getDefaultBoolean
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the default value of the named preference
-
getDefaultDouble
Description copied from interface:IPreferenceStore
Returns the default value for the double-valued preference with the given name. Returns the default-default value (0.0
) if there is no default preference with the given name, or if the default value cannot be treated as a double.- Specified by:
getDefaultDouble
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the default value of the named preference
-
getDefaultFloat
Description copied from interface:IPreferenceStore
Returns the default value for the float-valued preference with the given name. Returns the default-default value (0.0f
) if there is no default preference with the given name, or if the default value cannot be treated as a float.- Specified by:
getDefaultFloat
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the default value of the named preference
-
getDefaultInt
Description copied from interface:IPreferenceStore
Returns the default value for the integer-valued preference with the given name. Returns the default-default value (0
) if there is no default preference with the given name, or if the default value cannot be treated as an integer.- Specified by:
getDefaultInt
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the default value of the named preference
-
getDefaultLong
Description copied from interface:IPreferenceStore
Returns the default value for the long-valued preference with the given name. Returns the default-default value (0L
) if there is no default preference with the given name, or if the default value cannot be treated as a long.- Specified by:
getDefaultLong
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the default value of the named preference
-
getDefaultString
Description copied from interface:IPreferenceStore
Returns the default value for the string-valued preference with the given name. Returns the default-default value (the empty string""
) is no default preference with the given name, or if the default value cannot be treated as a string.- Specified by:
getDefaultString
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the default value of the named preference
-
getDouble
Description copied from interface:IPreferenceStore
Returns the current value of the double-valued preference with the given name. Returns the default-default value (0.0
) if there is no preference with the given name, or if the current value cannot be treated as a double.- Specified by:
getDouble
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the double-valued preference
-
getFloat
Description copied from interface:IPreferenceStore
Returns the current value of the float-valued preference with the given name. Returns the default-default value (0.0f
) if there is no preference with the given name, or if the current value cannot be treated as a float.- Specified by:
getFloat
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the float-valued preference
-
getInt
Description copied from interface:IPreferenceStore
Returns the current value of the integer-valued preference with the given name. Returns the default-default value (0
) if there is no preference with the given name, or if the current value cannot be treated as an integer.- Specified by:
getInt
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the int-valued preference
-
getLong
Description copied from interface:IPreferenceStore
Returns the current value of the long-valued preference with the given name. Returns the default-default value (0L
) if there is no preference with the given name, or if the current value cannot be treated as a long.- Specified by:
getLong
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the long-valued preference
-
getString
Description copied from interface:IPreferenceStore
Returns the current value of the string-valued preference with the given name. Returns the default-default value (the empty string""
) if there is no preference with the given name, or if the current value cannot be treated as a string.- Specified by:
getString
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
- the string-valued preference
-
isDefault
Description copied from interface:IPreferenceStore
Returns whether the current value of the preference with the given name has the default value.- Specified by:
isDefault
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference- Returns:
true
if the preference has a known default value and its current value is the same, andfalse
otherwise (including the case where the preference is unknown to this store)
-
list
Prints the contents of this preference store to the given print stream.- Parameters:
out
- the print stream
-
list
Prints the contents of this preference store to the given print writer.- Parameters:
out
- the print writer
-
load
Loads this preference store from the file established in the constructorPreferenceStore(java.lang.String)
(or bysetFileName
). Default preference values are not affected.- Throws:
IOException
- if there is a problem loading this store
-
load
Loads this preference store from the given input stream. Default preference values are not affected.- Parameters:
in
- the input stream- Throws:
IOException
- if there is a problem loading this store
-
needsSaving
public boolean needsSaving()Description copied from interface:IPreferenceStore
Returns whether the current values in this property store require saving.- Specified by:
needsSaving
in interfaceIPreferenceStore
- Returns:
true
if at least one of values of the preferences known to this store has changed and requires saving, andfalse
otherwise.
-
preferenceNames
Returns an enumeration of all preferences known to this store which have current values other than their default value.- Returns:
- an array of preference names
-
putValue
Description copied from interface:IPreferenceStore
Sets the current value of the preference with the given name to the given string value without sending a property change.This method does not fire a property change event and should only be used for setting internal preferences that are not meant to be processed by listeners. Normal clients should instead call #setValue.
- Specified by:
putValue
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new current value of the preference
-
removePropertyChangeListener
Description copied from interface:IPreferenceStore
Removes the given listener from this preference store. Has no effect if the listener is not registered.- Specified by:
removePropertyChangeListener
in interfaceIPreferenceStore
- Parameters:
listener
- a property change listener, must not benull
-
save
Saves the non-default-valued preferences known to this preference store to the file from which they were originally loaded.- Specified by:
save
in interfaceIPersistentPreferenceStore
- Throws:
IOException
- if there is a problem saving this store
-
save
Saves this preference store to the given output stream. The given string is inserted as header information.- Parameters:
out
- the output streamheader
- the header- Throws:
IOException
- if there is a problem saving this store
-
setDefault
Description copied from interface:IPreferenceStore
Sets the default value for the double-valued preference with the given name.Note that the current value of the preference is affected if the preference's current value was its old default value, in which case it changes to the new default value. If the preference's current is different from its old default value, its current value is unaffected. No property change events are reported by changing default values.
- Specified by:
setDefault
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new default value for the preference
-
setDefault
Description copied from interface:IPreferenceStore
Sets the default value for the float-valued preference with the given name.Note that the current value of the preference is affected if the preference's current value was its old default value, in which case it changes to the new default value. If the preference's current is different from its old default value, its current value is unaffected. No property change events are reported by changing default values.
- Specified by:
setDefault
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new default value for the preference
-
setDefault
Description copied from interface:IPreferenceStore
Sets the default value for the integer-valued preference with the given name.Note that the current value of the preference is affected if the preference's current value was its old default value, in which case it changes to the new default value. If the preference's current is different from its old default value, its current value is unaffected. No property change events are reported by changing default values.
- Specified by:
setDefault
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new default value for the preference
-
setDefault
Description copied from interface:IPreferenceStore
Sets the default value for the long-valued preference with the given name.Note that the current value of the preference is affected if the preference's current value was its old default value, in which case it changes to the new default value. If the preference's current is different from its old default value, its current value is unaffected. No property change events are reported by changing default values.
- Specified by:
setDefault
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new default value for the preference
-
setDefault
Description copied from interface:IPreferenceStore
Sets the default value for the string-valued preference with the given name.Note that the current value of the preference is affected if the preference's current value was its old default value, in which case it changes to the new default value. If the preference's current is different from its old default value, its current value is unaffected. No property change events are reported by changing default values.
- Specified by:
setDefault
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new default value for the preference
-
setDefault
Description copied from interface:IPreferenceStore
Sets the default value for the boolean-valued preference with the given name.Note that the current value of the preference is affected if the preference's current value was its old default value, in which case it changes to the new default value. If the preference's current is different from its old default value, its current value is unaffected. No property change events are reported by changing default values.
- Specified by:
setDefault
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new default value for the preference
-
setFilename
Sets the name of the file used when loading and storing this preference store.Afterward, the methods
load()
andsave()
can be used to load and store this preference store. -
setToDefault
Description copied from interface:IPreferenceStore
Sets the current value of the preference with the given name back to its default value.Note that the preferred way of re-initializing a preference to the appropriate default value is to call
setToDefault
. This is implemented by removing the named value from the store, thereby exposing the default value.- Specified by:
setToDefault
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preference
-
setValue
Description copied from interface:IPreferenceStore
Sets the current value of the double-valued preference with the given name.A property change event is reported if the current value of the preference actually changes from its previous value. In the event object, the property name is the name of the preference, and the old and new values are wrapped as objects.
Note that the preferred way of re-initializing a preference to its default value is to call
setToDefault
.- Specified by:
setValue
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new current value of the preference
-
setValue
Description copied from interface:IPreferenceStore
Sets the current value of the float-valued preference with the given name.A property change event is reported if the current value of the preference actually changes from its previous value. In the event object, the property name is the name of the preference, and the old and new values are wrapped as objects.
Note that the preferred way of re-initializing a preference to its default value is to call
setToDefault
.- Specified by:
setValue
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new current value of the preference
-
setValue
Description copied from interface:IPreferenceStore
Sets the current value of the integer-valued preference with the given name.A property change event is reported if the current value of the preference actually changes from its previous value. In the event object, the property name is the name of the preference, and the old and new values are wrapped as objects.
Note that the preferred way of re-initializing a preference to its default value is to call
setToDefault
.- Specified by:
setValue
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new current value of the preference
-
setValue
Description copied from interface:IPreferenceStore
Sets the current value of the long-valued preference with the given name.A property change event is reported if the current value of the preference actually changes from its previous value. In the event object, the property name is the name of the preference, and the old and new values are wrapped as objects.
Note that the preferred way of re-initializing a preference to its default value is to call
setToDefault
.- Specified by:
setValue
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new current value of the preference
-
setValue
Description copied from interface:IPreferenceStore
Sets the current value of the string-valued preference with the given name.A property change event is reported if the current value of the preference actually changes from its previous value. In the event object, the property name is the name of the preference, and the old and new values are wrapped as objects.
Note that the preferred way of re-initializing a preference to its default value is to call
setToDefault
.- Specified by:
setValue
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new current value of the preference
-
setValue
Description copied from interface:IPreferenceStore
Sets the current value of the boolean-valued preference with the given name.A property change event is reported if the current value of the preference actually changes from its previous value. In the event object, the property name is the name of the preference, and the old and new values are wrapped as objects.
Note that the preferred way of re-initializing a preference to its default value is to call
setToDefault
.- Specified by:
setValue
in interfaceIPreferenceStore
- Parameters:
name
- the name of the preferencevalue
- the new current value of the preference
-