В версии 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.