Сохранение параметров JFace

В версии 3.1 org.eclipse.jface.preference.IPreferenceStore, возвращаемый функцией AbstractUIPlugin#getPreferenceStore, будет являться экземпляром org.eclipse.ui.preferences.ScopedPreferenceStore. ScopedPreferenceStore для управления параметрами использует новый API ядра времени запуска. В версии 3.0 использовался слой совместимости интерфейса с экземпляром org.eclipse.core.runtime.Preferences.

В версии 3.1 двусмысленность значений, возвращаемых IPreferenceStore, была устранена. Поведение IPreferenceStore, возвращаемого AbstractUIPlugin#getPreferenceStore, не изменилось, но его описание стало более четким.

Typing: org.eclipse.jface.util.Prsoprseyhaneeristerers, добавленный к IPreferenceStore, способен принимать два типа значений, старое и новое - типичные (строковые) представления. Результатом обращения к типичному API IPreferenceStore (например, setValue(String key, boolean value) будет типичное событие. Однако возможно, что событие, динамически определенное в соответствии с параметрами ядра, повлечет нетипичное событие (к примеру, при импорте параметров). Обработчики свойств должны быть способны обработать оба случая. Обратите внимание, что типичные события не возвращают данные простых типов - при обращении к setValue(String key, boolean value) произойдет событие, в котором oldValue и newValue - булевские.

putValue: IPreferenceStore.putValue(String key, String value) не создает событие изменения. Этот API рассчитан на создание параметров, на которые не реагируют обработчики событий.

initializeDefaultPreferences. Этот устаревший API использовался в Eclipse 3.0 при отсутствии прямых обращений к уровню совместимости. Большинство модулей применяют AbstractUIPlugin#getPreferenceStore для получения параметров, поэтому функция ранее отключалась при запуске модуля. Если модуль не обращается к слою совместимости самостоятельно, этот метод нельзя отключать. Для управления процессом инициализации настроек рекомендуется создать экземпляр org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer.