Implementando uma página de propriedade

Quando o workbench cria e lança uma página de propriedade, ele define os recursos selecionados na página. A página pode utilizar o método getElement() para obter seu elemento, um IAdaptable.

O padrão para a criação das páginas de propriedades é similar àquele das páginas de preferências, então, somente trataremos do que é diferente. As páginas de propriedades mostram informações sobre seus elementos. Essas informações podem ser obtidas acessando o elemento para consultar ou computar as informações relevantes.  As informações também podem ser armazenadas e recuperadas das propriedades do recurso.

O ReadmeFilePropertyPage computa a maioria das informações utilizando seu elemento. O seguinte fragmento mostra como o número de seções é computado e exibido em uma 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 é computada, não há necessidade de lógica correspondente para salvar o valor, pelo fato de o usuário não poder atualizar esse valor.

As páginas de propriedades são comumente utilizadas para exibir e definir as propriedades específicas do aplicativo de um recurso.  (Consulte Propriedades do recurso para obter uma discussão da seção e propriedades persistentes.)  Desde que a página de propriedades conheça seu recurso, os recursos API podem ser utilizados na página para iniciar os valores de controle ou para definir novos valores de propriedades das seleções do usuário na página de propriedades.

O fragmento a seguir mostra um valor de caixa de entrada sendo inicializado a partir de uma propriedade em um elemento de página de propriedade.

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

O código correspondente para salvar o valor da caixa de entrada de volta na propriedade parece com este:

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

Copyright IBM Corporation e outros 2000, 2003.