Magasins de préférences JFace

Comme pour la version 3.1, le org.eclipse.jface.preference.IPreferenceStore qui est retourné par AbstractUIPlugin#getPreferenceStore sera une instance de org.eclipse.ui.preferences.ScopedPreferenceStore. Le ScopedPreferenceStore utilise la nouvelle API d'exécution principale pour gérer les préférences. Dans la version 3.0 il utilisait la couche de compatibilité comme interface avec une instance de org.eclipse.core.runtime.Preferences.

Dans la version 3.1 nous avons levé toute ambiguïté concernant IPreferenceStore pour être plus précis sur les types des valeurs envoyées dans les événements de changement de préférences. Le IPreferenceStore de AbstractUIPlugin#getPreferenceStore a le même comportement qu'avant - tout ce qui a changé c'est qu'il est défini plus clairement.

Saisie : org.eclipse.jface.util.IPreferenceChangeListeners ajouté à un IPreferenceStore peut recevoir deux types de valeurs anciennes et nouvelles - des représentations saisies ou des chaînes.  Tout événement généré par un appel à une API IPreferenceStore saisie (comme setValue (clé de chaîne, valeur booléenne) générera un événement saisi. Il est également possible que des événements soient propagés à partir des préférences d'exécution principales, qui génèrent un événement non saisi (par exemple sur une importation de préférences). Les programmes d'écoute de préférences doivent être préparés pour ces deux possibilités. Notez aussi que les événements saisis ne seront propageront pas les types primitifs, donc un appel à setValue(clé de chaîne, valeur booléenne) aura pour résultat un événement dont les valeurs anciennes et nouvelles (oldValue et newValue) sont booléennes.

putValue: IPreferenceStore.putValue(clé de chaîne, valeur booléenne) ne générera pas d'événement 'changement'. Cette API est destinée à être utilisée pour des préférences privées, auquel aucun programme d'écoute ne réagira.

initializeDefaultPreferences. Cette API était dépréciée dans Eclipse 3.0 car elle n'est mise en application que si la couche de compatibilité est utilisée. Comme la plupart des plug-ins reposent sur AbstractUIPlugin#getPreferenceStore pour leur magasin de préférences, elle était mise en application sur le plug-in prédédemment démarré. Si votre plug-in n'accède pas à la couche de compatibilité, cette méthode peut ne pas être déclenchée. Il est recommandé de créer un org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer pour traiter l'initialisation des préférences.