Pages de propriétés

org.eclipse.ui.propertyPages

Ce point d'extension sert à ajouter des pages de propriétés d'un type donné. Une fois définies, ces pages de propriétés apparaissent dans la boîte de dialogue Propriétés des objets de ce type.

Une page de propriétés constitue un moyen convivial d'interagir avec les propriétés d'un objet. Contrairement à la vue Propriétés qui limite l'espace disponible pour l'édition d'une propriété d'objet, une page de propriétés peut offrir la liberté de définir des contrôles plus grands et plus complexes avec des libellés, des icônes, etc. Les propriétés qui logiquement vont ensemble peuvent être regroupées dans une page, plutôt que d'être éparpillées dans la feuille de propriétés. Cependant, dans la plupart des applications, il est plus approprié d'exposer certaines propriétés d'un objet via la feuille de propriétés et d'autres via les pages de propriétés.

Les pages de propriétés s'affichent dans une boîte de dialogue généralement visible lorsque l'option de menu Propriétés est sélectionnée dans le menu en incrustation d'un objet. En plus de la classe d'objets, le filtre de nom peut être également fourni pour enregistrer les pages de propriétés uniquement pour des types d'objet spécifiques.

Si ces mécanismes de filtrage ne sont pas appropriés, une page de propriété peut utiliser le mécanisme des filtres. Dans ce cas, les attributs de l'objet cible sont décrits dans une série de paires clé-valeur. Les attributs qui s'appliquent à la sélection sont spécifiques au type et surpassent le domaine du plan de travail ; aussi ce dernier délègue-t-il le filtrage à ce niveau à la sélection réelle.

<!ELEMENT extension (page*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT page (filter* , keywordReference* , enabledWhen?)>

<!ATTLIST page

id          CDATA #REQUIRED

name        CDATA #REQUIRED

icon        CDATA #IMPLIED

objectClass CDATA #IMPLIED

class       CDATA #REQUIRED

nameFilter  CDATA #IMPLIED

adaptable   (true | false)

category    CDATA #IMPLIED>


<!ELEMENT filter EMPTY>

<!ATTLIST filter

name  CDATA #REQUIRED

value CDATA #REQUIRED>

Cet élément est employé pour évaluer l'état d'attribut de chaque objet dans la sélection en cours. Une correspondance n'est obtenue que si chaque objet de la sélection possède l'état d'attribut spécifié. Chaque objet de la sélection doit implémenter l'interface org.eclipse.ui.IActionFilter ou s'y adapter.



<!ELEMENT keywordReference EMPTY>

<!ATTLIST keywordReference

id CDATA #IMPLIED>

Référence par une page de propriétés à un mot-clé. Voir le point d'extension des mots-clé.



<!ELEMENT enabledWhen (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>



<!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Elément racine générique. L'élément peut être utilisé dans un point d'extension pour définir son expression d'activation. Les enfants d'une expression d'activation sont combinés à l'aide de l'opérateur and.



<!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate)>

Cet élément représente une opération NOT en résultat de l'évaluation de son expression de sous-élément.



<!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Cet élément représente une opération AND en résultat de l'évaluation de ses expressions de sous-élément.



<!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

Cet élément représente une opération OR en résultat de l'évaluation de ses expressions de sous-élément.



<!ELEMENT instanceof EMPTY>

<!ATTLIST instanceof

value CDATA #REQUIRED>

Cet élément permet d'effectuer une instance de vérification de l'objet concerné. L'expression renvoie EvaluationResult.TRUE si le type de l'objet est un sous-type du type spécifié par la valeur de l'attribut. Dans le cas contraire, EvaluationResult.FALSE est renvoyé.



<!ELEMENT test EMPTY>

<!ATTLIST test

property CDATA #REQUIRED

args     CDATA #IMPLIED

value    CDATA #IMPLIED>

Cet élément permet d'évaluer l'état de la propriété de l'objet concerné. L'ensemble de propriétés testables peut être développé à l'aide du point d'extension du testeur de propriété. L'expression de test renvoie EvaluationResult.NOT_LOADED si le testeur de propriété effectuant le test réel n'est pas encore chargé.



<!ELEMENT systemTest EMPTY>

<!ATTLIST systemTest

property CDATA #REQUIRED

value    CDATA #REQUIRED>

Teste une propriété système en appelant la méthode System.getProperty et compare le résultat avec la valeur spécifiée via l'attribut value.



<!ELEMENT equals EMPTY>

<!ATTLIST equals

value CDATA #REQUIRED>

Cet élément permet d'effectuer une vérification d'égalité de l'objet concerné. L'expression renvoie EvaluationResult.TRUE si l'objet est égal à la valeur fournie par la valeur de l'attribut. Dans le cas contraire, EvaluationResult.FALSE est renvoyé.



<!ELEMENT count EMPTY>

<!ATTLIST count

value CDATA #REQUIRED>

Cet élément permet de tester le nombre d'éléments d'une collection.



<!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST with

variable CDATA #REQUIRED>

Cet élément change l'objet à inspecter pour tous les éléments enfant en objet référencé par la variable donnée. Si la variable ne peut pas être résolue, l'expression émet une exception ExpressionException lors de l'évaluation. Les enfants d'une expression with sont combinés à l'aide de l'opérateur and.



<!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST resolve

variable CDATA #REQUIRED

args     CDATA #IMPLIED>

Cet élément change l'objet à inspecter pour tous les éléments enfant en objet référencé par la variable donnée. Si la variable ne peut pas être résolue, l'expression émet une exception ExpressionException lors de l'évaluation. Les enfants d'une expression with sont combinés à l'aide de l'opérateur and.



<!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST adapt

type CDATA #REQUIRED>

Cet élément permet d'adapter l'objet actif en fonction du type spécifié par le type d'attribut. L'expression renvoie l'indication "non chargé" si l'adaptateur ou le type référencé n'est pas encore chargé. Elle émet une exception ExpressionException lors de la détermination de l'existence du nom du type. Les enfants d'une expression adapt sont combinés à l'aide de l'opérateur and.



<!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate)*>

<!ATTLIST iterate

operator (or|and) >

Cet élément permet d'effectuer une itération sur une variable qui est de type java.util.Collection. Si l'objet actif n'est pas du type java.util.Collection, une exception ExpressionException sera émise lors de l'évaluation de l'expression.



L'exemple ci-dessous illustre la définition d'une page de propriétés :

   

<extension point=

"org.eclipse.ui.propertyPages"

>

<page id=

"com.xyz.projectPage"

name=

"Propriétés Java XYZ"

objectClass=

"org.eclipse.core.resources.IFile"

class=

"com.xyz.ppages.JavaPropertyPage"

nameFilter=

"*.java"

>

<filter name=

"readOnly"

value=

"true"

/>

</page>

</extension>

L'attribut class doit correspondre au nom qualifié complet d'une classe implémentant org.eclipse.ui.IWorkbenchPropertyPage.

Certains objets fournis par le plan de travail peuvent avoir des pages de propriétés enregistrées. Les plug-ins sont autorisés à ajouter d'autres pages de propriétés pour ces objets. Les pages de propriétés ne se limitent pas aux ressources du plan de travail : tous les objets apparaissant dans le plan de travail (même ceux spécifiques au domaine et qui ont été créés par les plug-ins) peuvent avoir des pages de propriétés et d'autres plug-ins peuvent également leur enregistrer des pages de propriétés.