Implémentation d'une page de propriétés

Lorsque le plan de travail crée et lance une page de propriétés, il définit la ressource sélectionnée dans la page. Cette dernière peut utiliser la méthode getElement() pour obtenir son élément, un IAdaptable.

Le schéma de création des pages de propriétés est similaire à celui des pages de préférences, aussi nous ne nous attacherons qu'à ce qui est différent. Les pages de propriétés affichent des informations sur leur élément. Ces informations peuvent être obtenues en accédant à l'élément afin de demander ou de calculer les informations appropriées. Les informations peuvent être également stockées et extraites des propriétés de la ressource.

ReadmeFilePropertyPage calcule la plupart de ses informations à l'aide de l'élément. Le fragment ci-dessous montre comment le nombre de sections est calculé et affiché dans un libellé.

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

Lorsqu'une propriété est calculée, point n'est besoin de logique correspondante pour sauvegarder la valeur, du fait que l'utilisateur ne peut pas mettre à jour cette valeur.

Les pages de propriétés sont couramment utilisées pour l'affichage et la définition des propriétés d'une ressource spécifiques à l'application. Pour plus d'informations sur les propriétés de session et persistantes, reportez-vous aux Propriétés des ressources.Comme la page des propriétés connaît sa ressource, l'API des ressources peut être utilisée dans la page pour initialiser les valeurs de contrôle ou pour définir de nouvelles valeurs de propriété, en fonction des sélections de l'utilisateur dans la page des propriétés.

Le fragment de code ci-dessous montre l'initialisation de la valeur d'une case à cocher à partir d'une propriété dans un élément de page de propriétés.

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

Le code correspondant à la sauvegarde de la valeur de la case à cocher dans la propriété ressemble à ce qui suit :

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