Paměti předvolby JFace

Počínaje verzí 3.1 jeorg.eclipse.jface.preference.IPreferenceStore vracené z AbstractUIPlugin#getPreferenceStore instancí org.eclipse.ui.preferences.ScopedPreferenceStore. ScopedPreferenceStore používá ke správě předvoleb nové rozhraní API modulu Core Runtime. Ve verzi 3.0 používal vrstvu kompatibility ke komunikaci s instancí org.eclipse.core.runtime.Preferences.

Ve verzi 3.1 jsme odstranili víceznačnost IPreferenceStore pro zvýšení konkrétnosti u typů hodnot zasílaných v rámci událostí změny předvoleb. IPreferenceStore z AbstractUIPlugin#getPreferenceStore má stejné chování jako dříve - změnilo se pouze v tom, že nyní je specifikováno jasněji.

Typování: org.eclipse.jface.util.IPreferenceChangeListeners přidané do IPreferenceStore může vést na dva typy starých a nových hodnot - typové nebo řetězcové vyjádření. Jakákoli událost generovaná voláním typového rozhraní API IPreferenceStore (např. setValue(String key, boolean value) vygeneruje typovou událost. Je však také možné, že události se budou šířit z běhových předvoleb modulu Core Runtime, které generují netypovou událost (například při importu předvolby). Listenery předvoleb musí být připraveny na obě situace. Vezměte také na vědomí, že typové události nebudou šířit primitivní typy, takže volání setValue(String key, boolean value) skončí s výsledkem, kde oldValue a newValue budou typu Boolean.

putValue: IPreferenceStore.putValue(String key, String value) nebude generovat událost změny. Smyslem použití tohoto rozhraní API jsou soukromé předvolby, na které žádný listener nereaguje.

initializeDefaultPreferences. Toto rozhraní API bylo v Eclipse verze 3.0 označeno za nepřípustné a aktivuje se pouze v případě, že je použita vrstva kompatibility. Protože většina modulů plug-in spoléhá při získávání paměti předvolby na AbstractUIPlugin#getPreferenceStore, dříve se toto aktivovalo v okamžiku spouštění modulu plug-in. Pokud váš modul plug-in k samotné vrstvě kompatibility nepřistupuje, tato metoda se nespouští. Doporučuje se, abyste k ošetření inicializace svých předvoleb vytvořili org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer.