Depuis la version 2.0
Description : ce point d'extension est utilisé pour ajouter des décorateurs à des vues abonnés à un gestionnaire de décorateurs. La version 2.1 intègre le concept de décorateur simplifié qui assure la gestion des images pour le décorateur. Il est également possible de déclarer un décorateur simplifié qui vient simplement recouvrir une icône lorsqu'activé et qui ne nécessite aucune implémentation du plug-in.
L'activation et/ou visibilité d'une action se définissent respectivement à l'aide des éléments enablement et visibility. Ces deux éléments contiennent une expression booléenne qui entraîne l'activation et/ou la visibilité.
La syntaxe des éléments enablement et visibility est identique. Ils contiennent chacun un unique sous-élément d'expression booléenne. Dans les cas les plus simples, il s'agit d'un élément objectClass, objectState, pluginState ou systemProperty. Dans les cas plus complexes, les éléments and, or et not peuvent être combinés pour former une expression booléenne. Les éléments and et or doivent chacun contenir 2 sous-éléments. L'élément not ne doit en contenir qu'un.
Marques de configuration :
<!ELEMENT extension (decorator*)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED
>
<!ELEMENT decorator (description? , enablement?)>
<!ATTLIST decorator
id CDATA
#REQUIRED
label CDATA #REQUIRED
class CDATA
#IMPLIED
objectClass CDATA #IMPLIED
adaptable (true | false)
state (true | false)
quadrant (TOP_LEFT|TOP_RIGHT|BOTTOM_RIGHT|BOTTOM_LEFT)
lightweight (true|false)
icon CDATA #IMPLIED
location (TOP_LEFT|TOP_RIGHT|BOTTOM_LEFT|BOTTOM_RIGHT|UNDERLAY)
>
<!ELEMENT description (#CDATA)>
sous-élément facultatif dont le corps doit contenir un texte offrant une description abrégée du décorateur. Comme il apparaîtra dans la page de préférences Décorateurs, il est conseillé de l'inclure. La valeur par défaut est une chaîne vide.
<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Cet élément définit l'activation de l'action.
<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Cet élément définit la visibilité de l'action.
<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Cet élément représente une opération booléenne AND en résultat de l'évaluation de ses deux expressions de sous-élément.
<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Cet élément représente une opération booléenne OR en résultat de l'évaluation de ses deux expressions de sous-élément.
<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>
Cet élément représente une opération booléenne NOT en résultat de l'évaluation de ses deux expressions de sous-élément.
<!ELEMENT objectClass EMPTY>
Cet élément évalue la classe ou l'interface de chaque objet de la sélection courante. Si chaque objet de la sélection implémente la classe ou l'interface spécifiée, l'expression est considérée vraie.
<!ATTLIST objectClass<!ELEMENT objectState EMPTY>
Cet élément évalue l'état d'attribut de chaque objet de la sélection courante. Si chaque objet de la sélection présente l'état d'attribut spécifié, l'expression est considérée vraie. Pour évaluer ce type d'expression, chaque objet de la sélection doit implémenter (ou s'adapter à) l'interface org.eclipse.ui.IActionFilter.
<!ATTLIST objectState<!ELEMENT pluginState EMPTY>
Cet élément évalue l'état d'un plug-in. L'état du plug-in est installé ou activé.
<!ATTLIST pluginState<!ELEMENT systemProperty EMPTY>
Cet élément évalue l'état de certaines propriétés système. La valeur de la propriété système est déterminée en appelant java.lang.System.
<!ATTLIST systemPropertyUn décorateur complet. Les développeurs de plug-in doivent gérer leur propre support d'image.
<extension point="org.eclipse.ui.decorators"> <decorator id="com.xyz.decorator" label="XYZ Decorator" state="true" class="com.xyz.DecoratorContributor"> <enablement> <objectClass name="org.eclipse.core.resources.IResource"/> </enablement> </decorator> </extension>
Un décorateur simplifié. Il existe une classe concrète mais comme il s'agit d'un décorateur ILightweightLabelDecorator, il suffit de fournir du texte et un ImageDescriptor sans gestion de ressource.
<extension point="org.eclipse.ui.decorators"> <decorator id="com.xyz.lightweight.decorator" label="XYZ Lightweight Decorator" state="false" class="com.xyz.LightweightDecoratorContributor" lightweight="true"> <enablement> <objectClass name="org.eclipse.core.resources.IResource"/> </enablement> </decorator> </extension>
Un décorateur simplifié déclaratif. Comme il n'existe pas de classe, une icône et un quadrant à appliquer à cette icône sont fournis.
<extension point="org.eclipse.ui.decorators"> <decorator id="com.xyz.lightweight.declarative.decorator" label="XYZ Lightweight Declarative Decorator" state="false" lightweight="true" icon="icons/full/declarative.gif" location="TOP_LEFT"> <enablement> <objectClass name="org.eclipse.core.resources.IResource"/> </enablement> </decorator> </extension>
Informations d'API : la valeur de l'attribut class doit être le nom complet qualifié d'une classe qui implémente org.eclipse.jface.viewers.ILabelDecorator (si la valeur de lightweight est false) ou org.eclipse.jface.viewers.ILightweightLabelDecorator. Cette classe est chargée aussi tardivement que possible afin d'éviter le chargement du plug-in tout entier avant que cela ne soit réellement nécessaire. Les décorateurs déclaratifs n'entraînent aucune activation de plug-in et doivent être utilisés chaque fois que possible. Les décorateurs non simplifiés seront éventuellement à déconseiller.
Implémentation fournie : les plug-in peuvent utiliser ce point d'extension pour ajouter de nouveaux décorateurs à appliquer à des vues employant le gestionnaire de décorateurs comme intitulé. Pour utiliser le gestionnaire de décorateurs, servez-vous du résultat d'IViewPart.getDecoratorManager() comme décorateur d'une instance de DecoratingLabelProvider. Cette fonctionnalité est utilisée par le navigateur de ressources.
Copyright (c) 2002,2003 IBM Corporation and others.
All rights reserved. Ce programme et les produits qui l'accompagnent
sont fournis sous licence v1.0 associée à cette distribution et
disponibles à l'adresse suivante :
http://www.eclipse.org/legal/cpl-v10.html