Zachowanie interfejsu IPreferenceStore udostępnianego przez metodę
AbstractUIPlugin#getPreferenceStore() nie zmieniło się, ale specyfikacja została zaktualizowana o
dokładniejsze definicje udostępnianego zachowania.
Określanie typu zdarzeń PropertyChangeEvent
Typ starej i nowej wartości zdarzenia związanego ze zmianą właściwości interfejsu IPreferenceStore musi być zgodny z typem wskazanym przez wywołanie setValue, które wygenerowało to zdarzenie.
Na przykład wywołanie IPreferenceStore#setValue(String name, long
value) powoduje, że obie wartości zdarzenia PropertyChangeEvent
wygenerowanego przez tę metodę będą typu java.lang.Long.
Metoda putValue
Wywołania metody #putValue nie generują zdarzenia PropertyChangedEvent.
Zdarzenia są natomiast generowane przez wywołania metod z grupy #setValue.
Związek między preferencjami środowiska OSGI a interfejsem IPreferenceStore
Interfejs IPreferenceStore udostępniany przez metodę AbstractUIPlugin#getPreferenceStore() jest instancją klasy
ScopedPreferenceStore, która używa obiektu org.osgi.service.prefs.Preferences jako zaplecza. Obiekt
org.osgi.service.prefs.Preferences przekazuje zdarzenia związane ze zmianami tylko jako typ String.
Obiekt ScopedPreferenceStore opakowuje zdarzenia
środowiska OSGI, które są generowane przez wywołanie
IPreferenceStore#setValue(String name, String value) i własne
zdarzenie PropertyChangeEvent, a następnie przekazuje tak
utworzone zdarzenie do swoich funkcji nasłuchiwania. Dla
innych implementacji metody IPreferenceStore#setValue
obiekt ScopedPreferenceStore tworzy własne zdarzenia
odpowiedniego typu, zamiast przekazywać zdarzenia preferencji środowiska OSGI.
Funkcje nasłuchiwania związane z obiektem ScopedPreferenceStore
powinny być przygotowane zarówno do obsługi zdarzeń typu String,
jak i do obsługi zdarzeń o określonym typie, ponieważ mimo wszystko
jest możliwe uzyskanie zdarzenia pochodzącego bezpośrednio od preferencji
środowiska OSGI (na przykład podczas importowania preferencji). Zdarzenia
środowiska OSGI zawsze są typu java.lang.String.
Zawsze możliwe było uzyskanie pustej powłoki org.eclipse.swt.widgets.Shell z istniejącego interfejsu IWorkbenchWindows w pakiecie SDK dla platformy Eclipse. Obecnie jawnie zdefiniowano warunki, w których jest to wykonywane - gdy powłoka nie została utworzona lub jeśli interfejs IWorkbenchWindow został zamknięty.