Implementar uma página de propriedades

Quando a área de trabalho criar e lançar uma página de propriedades, define o recurso seleccionado na página. A página pode utilizar o método getElement() para obter o seu elemento, um IAdaptable.

O padrão para criar páginas de propriedades é semelhante ao das páginas de preferências, de modo que só iremos abordar o que for diferente. As páginas de propriedades mostram informações sobre o respectivo elemento. Estas informações podem ser obtidas acedendo ao elemento para poder consultar ou calcular as informações relevantes.  As informações também podem ser armazenadas e obtidas junto das propriedades do recurso.

A ReadmeFilePropertyPage calcula a maioria das suas informações com este elemento. A porção de código seguinte mostra como é calculado o número de secções e apresentado numa etiqueta.

   ...
      IResource resource = (IResource) getElement();
   ...
   IAdaptable sections = getSections(resource);
   if (sections instanceof AdaptableList) {
      AdaptableList list = (AdaptableList)sections;
      label = createLabel(panel, String.valueOf(list.size()));
   ...

Quando uma propriedade é calculada, não há necessidade da lógica correspondente guardar o valor, dado que o utilizador não pode actualizar este valor.

As páginas de propriedades são geralmente utilizadas para ver e definir as propriedades de um recurso  específicas a uma aplicação. (Consulte Propriedades de recursos para ver um debate sobre propriedades de sessão e persistentes.   Dado que a página de propriedades conhece o seu recurso, a API de recursos pode ser utilizada na página para inicializar valores de controlo ou para definir novos valores de propriedades com base em selecções do utilizador na página de propriedades.

A porção de código seguinte mostra um valor de uma caixa de verificação a ser inicializado numa propriedade no elemento de uma página de propriedades.

   private void initializeValues() {
      ...
      IResource resource = (IResource) getElement();
      label.setText(resource.getPersistentProperty("aMinhaPropriedade"));
      ...
   }

O código correspondente para guardar o valor da caixa de verificação de volta à propriedade assemelha-se ao seguinte:

   private void storeValues() {
      ...
      IResource resource = (IResource) getElement();
      resource.setPersistentProperty("aMinhaPropriedade", label.getText());
      ...
   }