Składnice preferencji środowiska JFace

Od wersji 3.1 interfejs org.eclipse.jface.preference.IPreferenceStore zwracany przez metodę AbstractUIPlugin#getPreferenceStore będzie instancją klasy org.eclipse.ui.preferences.ScopedPreferenceStore. Klasa ScopedPreferenceStore używa do zarządzanie preferencjami nowego interfejsu API podstawowego środowiska wykonawczego. W wersji 3.0 jako interfejs z instancją pakietu org.eclipse.core.runtime.Preferences używana była warstwa zgodności.

W wersji 3.1 interfejs IPreferenceStore jest bardziej jednoznaczny i konkretny w kwestii typów wartości wysyłanych w zdarzeniach związanych ze zmianą preferencji. Interfejs IPreferenceStore z metody AbstractUIPlugin#getPreferenceStore zachowuje się tak samo, jak wcześniej - zmieniło się tylko to, że został określony w bardziej przejrzysty sposób.

Określanie typu: Interfejs org.eclipse.jface.util.IPropertyChangeListener dodany do interfejsu IPreferenceStore może potencjalnie otrzymać dwa typy starych i nowych wartości - reprezentacje określonego typu lub reprezentacje łańcuchowe. Dowolne zdarzenie wygenerowane przez wywołanie interfejsu API IPreferenceStore określonego typu, takie jak metoda setValue(String key, boolean value) wygeneruje zdarzenie określonego typu. Możliwe również, że zdarzenia będą propagowane z preferencji podstawowego środowiska wykonawczego, które generują zdarzenia o nieokreślonym typie (na przykład podczas importu preferencji). Funkcje nasłuchiwania właściwości muszą być przygotowane na obie możliwości. Należy również zwrócić uwagę, że zdarzenia określonego typu nie będą propagowały typów podstawowych, więc wywołanie metody setValue(String key, boolean value) wygeneruje zdarzenie, gdzie stara i nowa wartość będą typu Boolean.

putValue: Metoda IPreferenceStore.putValue(String key, String value) nie wygeneruje zdarzenia związanego ze zmianą. Ta funkcja API jest przeznaczona dla prywatnych preferencji, na które nie zareagowałaby żadna funkcja nasłuchiwania.

initializeDefaultPreferences. Ten interfejs API stał się nieaktualny w środowisku Eclipse 3.0, ponieważ jest on wyzwalany jedynie w przypadku używania warstwy zgodności. Ponieważ większość modułów dodatkowych uzyskuje swoje składnice preferencji z metody AbstractUIPlugin#getPreferenceStore, we wcześniejszej wersji była ona wyzwalana przy uruchamianiu modułu dodatkowego. Jeśli dany moduł dodatkowy nie uzyskuje dostępu do warstwy zgodności, to ta metoda może nie zostać wyzwolona. Do obsługi procesu inicjowania preferencji zaleca się utworzenie klasy org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer.