Lorsqu'un plug-in ajoute une action à l'interface utilisateur du plan de travail à l'aide d'un point d'extension de menu, il peut spécifier les conditions dans lesquelles l'option est visible et/ou activée dans le menu. Par ailleurs, outre les conditions d'activation, telles que le nombre et les classes de sélection, les plug-ins peuvent utiliser des expressions booléennes afin qu'une action devienne visible ou active.
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 à la documentation de référence sur les points d'extension ci-dessous pour obtenir des exemples plus élaborés de ces expressions et une description complète de 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 |
---|---|---|
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 afin d'activer l'action. selection name - un filtre générique pouvant s'appliquer aux objets dans la sélection. |
visibility - une expression booléenne. Contrôle si l'option de menu est visible. enablement - une expression booléenne. Contrôle si l'option de menu est activée. Les attributs enablesFor, selection class et name doivent être appliqués avant l'expression d'activation. |
|
(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.
|
(pour les contributions d'objets et d'afficheurs) visibility - une expression booléenne. Contrôle si l'option de menu est visible. enablement - une expression booléenne. Contrôle si l'option de menu est activée. Les attributs enablesFor, selection class et name doivent être appliqués avant l'expression d'activation. |