# Package org.eclipse.jface.preference

Provides a framework for preferences.

## Package Specification

A preference manager (class `PreferenceManager`) maintains a tree of preference nodes. Preferences are presented to the end user in a preference dialog consisting of preference pages. A preference page consists of multiple preference fields, which can be displayed and modified though field editors. The framework contains an abstract base class for preference dialogs (`PreferenceDialog`), and an abstract preference page class (`FieldEditorPreferencePage`) for hosting these field editors.

The individual preference values are maintained in a preference store (`IPreferenceStore`). Each preference has a current value and a default value use to (re-)initialize it. The framework provides a concrete preference store implementation (`PreferenceStore`) based on an internal `java.util.Properties` object, with support for persisting the non-default preference values to files or streams.

A field editor presents the value of a single preference to the end user. The value is loaded from the preference store; if modified by the end user, the value is validated and eventually stored back to the preference store.

This package contains ready-to-use field editors for various types of preferences:

- `BooleanFieldEditor` - booleans
- `IntegerFieldEditor` - integers
- `StringFieldEditor` - text strings
- `RadioGroupFieldEditor` - enumerations
- `ColorFieldEditor` - RGB colors
- `FontFieldEditor` - fonts
- `DirectoryFieldEditor` - directories
- `FileFieldEditor` - files
- `PathEditor` - paths

All field editors are subclasses of the abstract base class `FieldEditor`; the framework allows new kinds of field editors to be defined by subclassing this class or one of its subclasses.

Note: None of the classes in this package maintain global state.

Interface Summary
IPersistentPreferenceStore: IPersistentPreferenceStore is a preference store that can be saved.
IPreferenceNode: Interface to a node in a preference dialog.
IPreferencePage: An interface for a preference page.
IPreferencePageContainer: An interface used by a preference page to talk to its dialog.
IPreferenceStore: The `IPreferenceStore` interface represents a table mapping named preferences to values.

Class Summary
BooleanFieldEditor: A field editor for a boolean type preference.
BooleanPropertyAction: The BooleanPropertyAction is an action that set the values of a boolean property in the preference store.
ColorFieldEditor: A field editor for a color type preference.
ColorSelector: The `ColorSelector` is a wrapper for a button that displays a selected `Color` and allows the user to change the selection.
ComboFieldEditor: A field editor for a combo box that allows the drop-down selection of one of a list of items.
DirectoryFieldEditor: A field editor for a directory path type preference.
FieldEditor: Abstract base class for all field editors.
FieldEditorPreferencePage: A special abstract preference page to host field editors.
FileFieldEditor: A field editor for a file path type preference.
FontFieldEditor: A field editor for a font type preference.
IntegerFieldEditor: A field editor for an integer type preference.
JFacePreferences: JFacePreferences is a class used to administer the preferences used by JFace objects.
ListEditor: An abstract field editor that manages a list of input values.
PathEditor: A field editor to edit directory paths.
PreferenceContentProvider: Provides a tree model for `PreferenceManager` content.
PreferenceConverter: A utility class for dealing with preferences whose values are common SWT objects (color, points, rectangles, and font data).
PreferenceDialog: A preference dialog is a hierarchical presentation of preference pages.
PreferenceLabelProvider: Provides labels for `IPreferenceNode` objects.
PreferenceManager: A preference manager maintains a hierarchy of preference nodes and associated preference pages.
PreferenceNode: A concrete implementation of a node in a preference dialog tree.
PreferencePage: Abstract base implementation for all preference page implementations.
PreferenceStore: A concrete preference store implementation based on an internal `java.util.Properties` object, with support for persisting the non-default preference values to files or streams.
RadioGroupFieldEditor: A field editor for an enumeration type preference.
ScaleFieldEditor: A field editor for an integer type preference.
StringButtonFieldEditor: An abstract field editor for a string type preference that presents a string input field with a change button to its right to edit the input field's content.
StringFieldEditor: A field editor for a string type preference.