Almacenes de preferencias JFace

A partir del release 3.1, el org.eclipse.jface.preference.IPreferenceStore que se devuelve de AbstractUIPlugin#getPreferenceStore será una instancia de org.eclipse.ui.preferences.ScopedPreferenceStore. ScopedPreferenceStore utiliza la nueva API de tiempo de ejecución de núcleo para gestionar preferencias. En 3.0 se utilizaba la capa de compatibilidad como interfaz con una instancia de org.eclipse.core.runtime.Preferences.

En 3.1 se ha eliminado la ambigüedad de IPreferenceStore para que sea más específico sobre los tipos de los valores enviados en los eventos cambiados de preferencias. IPreferenceStore de AbstractUIPlugin#getPreferenceStore tiene el mismo comportamiento que antes: todo lo que ha cambiado es que se ha especificado con más claridad.

Typing: org.eclipse.jface.util.IPropertyChangeListener añadido a un IPreferenceStore puede obtener potencialmente dos tipos de valores antiguos y nuevos: representaciones escritas o de serie. Cualquier evento generado por una llamada a una API de IPreferenceStore escrita (como, por ejemplo, setValue(clave Serie, valor booleano) generará un evento escrito. No obstante, también es posible que los eventos se propaguen desde las preferencias de tiempo de ejecución de núcleo que generan un evento no escrito (por ejemplo en una importación de preferencias). Los escuchas de prepiedades tienen que estar preparados para ambos casos. Observe también que los eventos escritos no propagan tipos primitivos, de manera que una llamada a setValue(clave Serie, valor booleano) dará como resultado un evento en que oldValue y newValue son valores booleanos.

putValue: IPreferenceStore.putValue(clave Serie, valor Serie) no generará un evento de cambio. Esta API está pensada para utilizarse para las preferencias privadas a las que ningún escuchador desea reaccionar.

initializeDefaultPreferences. Esta API se desechó en Eclipse 3.0, ya que sólo se activa si se utilizó la capa de compatibilidad. Como la mayoría de conectores se basan en AbstractUIPlugin#getPreferenceStore para obtener su almacén de preferencias, se activaba anteriormente durante el inicio del conector. Si el conector no accede a la capa de compatibilidad, es posible que no se active este método. Es recomendable que cree un org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer para manejar la inicialización de preferencias.