Las páginas de propiedades son muy parecidas a las de preferencias. La diferencia principal es que las páginas de propiedades están asociadas con un recurso concreto, mientras que las de preferencias lo están con el conector mismo.
Se puede contribuir con una página de propiedad para un recurso mediante el punto de extensión org.eclipse.ui.propertyPages. La página de propiedades de un recurso se invoca utilizando el menú Propiedades en la vista del navegador de recursos. Esté menú está disponible cuando se selecciona un solo recurso.
La herramienta readme contribuye con dos páginas de propiedades.
<extension
point = "org.eclipse.ui.propertyPages">
<page
id="org.eclipse.ui.examples.readmetool.FilePage"
name="Readme Tool"
objectClass="org.eclipse.core.resources.IFile"
class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage"
nameFilter="*.readme">
</page>
<page
id="org.eclipse.ui.examples.readmetool.FilePage2"
name="More Readme Info"
objectClass="org.eclipse.core.resources.IFile"
class="org.eclipse.ui.examples.readmetool.ReadmeFilePropertyPage2"
nameFilter="*.readme">
</page>
</extension>
Se contribuye con ambas páginas para objetos de tipo IFile con una extensión de archivo .readme.
El aspecto de las páginas de propiedades es muy parecido al de las páginas de preferencias, con la excepción de que las primeras no están jerarquizadas u organizadas en categorías. En el diálogo siguiente, las dos páginas de propiedades de readme aparecen en la lista de páginas principal.
Cuando el entorno de trabajo crea y lanza una página de propiedades, establece el recurso seleccionado en la página. La página puede utilizar el método getElement() para obtener su elemento, un IAdaptable.
El patrón para crear páginas de propiedades es similar al de las páginas de preferencias, por lo que sólo se hablará de las diferencias. Las páginas de propiedades muestran información sobre su elemento. esta información se puede obtener accediendo al elemento al objeto de consultar o calcular la información importante. La información también se puede almacenar y recuperar de las propiedades del recurso.
ReadmeFilePropertyPage calcula la mayor parte de su información utilizando este elemento. El segmento siguiente muestra cómo se calcula el número de secciones y se muestra en una etiqueta.
...
IResource resource = (IResource) getElement();
...
IAdaptable sections = getSections(resource);
if (sections instanceof AdaptableList) {
AdaptableList list = (AdaptableList)sections;
label = createLabel(panel, String.valueOf(list.size()));
...
Cuando se calcula una propiedad, no es necesario que la lógica correspondiente guarde el valor, ya que el usuario no puede actualizarlo.
Generalmente, las páginas de propiedades se utilizan para visualizar y establecer las propiedades de un recurso específicas de la aplicación . (Consulte Propiedades del recurso para obtener información sobre propiedades de sesión y de persistencia.) Puesto que la página de propiedades conoce su recurso, la API de recursos puede utilizarse en la página para inicializar los valores de control o establecer nuevos valores de propiedades basados en selecciones del usuario en la página de propiedades.
El segmento siguiente muestra un valor de recuadro de selección que se está inicializando a partir de una propiedad en un elemento de la página de propiedades.
private void initializeValues() {
...
IResource resource = (IResource) getElement();
label.setText(resource.getPersistentProperty("MyProperty"));
...
}
El código correspondiente para guardar el valor de recuadro de selección en la propiedad tiene este aspecto:
private void storeValues() {
...
IResource resource = (IResource) getElement();
resource.setPersistentProperty("MyProperty",
label.getText());
...
}