Lorsqu'un plug-in ajoute une action à l'interface du plan de travail à l'aide d'un point d'extension de menu, il peut spécifier les conditions dans lesquels l'option de menu est activée (visible). Par ailleurs, outre les conditions d'activation, telles que le nombre de sélections et les classes correspondantes, les plug-in peuvent utiliser des expressions booléennes pour activer une action.
Les expressions booléennes peuvent contenir des opérateurs simples (NOT, AND, OR) et des expressions prédéfinies qui évaluent les conditions suivantes :
objectClass - true si chaque objet dans la sélection sous-classe ou implémente la classe.
objectState - true si l'attribut nommé équivaut à la valeur spécifiée. IActionFilter participe à l'évaluation de l'expression. Un filtre d'action calcule de façon dynamique les critères d'activation pour une action basée sur la sélection cible et la valeur des attributs nommés.
systemProperty - true si la propriété système équivaut à la valeur spécifiée.
pluginState - indique si le plug-in spécifié (par ID) doit être installé ou activé.
Par exemple, les fragments de code suivants représentent des expressions d'activation pouvant être utilisées pour une action supposée d'un ensemble d'actions :
<action id="org.eclipse.examples.actionEnablement.class" label="Red Element" menubarPath="additions" class="org.eclipse.examples.actionEnablement.ObjectTestAction"> <enablement> <and> <objectClass name="org.eclipse.examples.actionEnablement.TestElement"/> <objectState name="name" value="red"/> </and> </enablement> </action>
<action id="org.eclipse.examples.actionEnablement.property" label="Property" menubarPath="additions" class="org.eclipse.examples.actionEnablement.PropertyTestAction"> <enablement> <systemProperty name="MyTestProperty" value="puppy"/> </enablement> </action>
<action id="org.eclipse.examples.actionEnablement.pluginState" label="Installed" menubarPath="additions" class="org.eclipse.examples.actionEnablement.PluginTestAction"> <enablement> <pluginState id="x.y.z.anotherPlugin" value="installed"/> </enablement> </action>
Reportez-vous aux expressions d'actions pour obtenir des exemples plus détaillés sur ces expressions et une description complète du code XML.
Le tableau suivant répertorie les points d'extension ajoutant des actions et illustre comment des expressions booléennes et des attributs de code XML peuvent être utilisés pour décider de l'activation.
Nom du point d'extension |
Attributs influençant l'activation |
Expressions booléennes |
---|---|---|
viewActions |
enablesFor - indique le nombre de sélections devant exister pour l'action à activer. selection class - la classe que les objets sélectionnés doivent sous-classer ou implémenter pour activer l'action. selection name - un filtre générique pouvant s'appliquer aux objets dans la sélection. |
enablement - une expression booléenne. Les attributs selection class, name et enablesFor doivent être appliqués avant l'expression d'activation. |
editorActions |
enablesFor - indique le nombre de sélections devant exister pour l'action à activer. selection class - la classe que les objets sélectionnés doivent sous-classer ou implémenter pour activer l'action. selection name - un filtre générique pouvant s'appliquer aux objets dans la sélection.
|
enablement - une expression booléenne. Les attributs selection class, name et enablesFor doivent être appliqués avant l'expression d'activation. |
popupMenus |
(uniquement pour les contributions d'objets.) objectClass - indique la classe que les objets dans la sélection doivent sous-classer ou implémenter. (pour les contributions d'objets et d'afficheurs) enablesFor - indique le nombre de sélections devant exister pour l'action à activer. selection class - la classe que les objets sélectionnés doivent sous-classer ou implémenter pour activer l'action. selection name - un filtre générique pouvant s'appliquer aux objets dans la sélection.
|
visibility - une expression booléenne. Les attributs selection class, name et enablesFor doivent être appliqués avant l'expression d'activation.
|
actionSets |
enablesFor - indique le nombre de sélections devant exister pour l'action à activer. selection class - la classe que les objets sélectionnés doivent sous-classer ou implémenter pour activer l'action. selection name - un filtre générique pouvant s'appliquer aux objets dans la sélection.
|
enablement - une expression booléenne. Les attributs selection class, name et enablesFor doivent être appliqués avant l'expression d'activation.
|