Description : ce point d'extension est utilisé pour ajouter des actions au menu et à la barre d'outils pour les vues enregistrées par d'autres plug-in. Chaque vue comporte un menu déroulant local que l'on active normalement en cliquant dans la zone supérieure droite. D'autres plug-in peuvent ajouter des sous-menus et des actions à ce menu. Les plug-in peuvent également ajouter des actions à la barre d'outils d'une vue. Les propriétaires de vue reçoivent en premier l'opportunité de remplir ces zones. Des ajouts optionnels sont réalisés par d'autres plug-in.
Marques de configuration :
<!ELEMENT viewContribution (menu | action)*>
<!ATTLIST viewContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
<!ELEMENT menu (separator)+>id est un identificateur unique pouvant être utilisé pour référencer cette contribution. targetID est l'identificateur unique de la vue (comme indiqué dans le registre) dans laquelle la contribution a lieu.
<!ELEMENT action (selection)* (enablement)?>name est le nom du séparateur auquel il peut être ultérieurement fait référence en tant que dernier jeton du chemin d'accès de l'action. De ce fait, les séparateurs servent de groupes désignés dans lesquels des actions peuvent être ajoutées.
Dans la version 2.0 d'Eclipse, un élément enablement peut être utilisé pour définir l'activation de l'action. Pour obtenir plus d'informations sur l'utilisation de l'élément enablement, reportez-vous au fichier actionExpressions.html.Les critères d'activation d'une extension d'action d'action sont initialement définis par enablesFor, selection et enablement. Cependant, une fois le délégué d'action instancié, il peut contrôler l'état d'activation de l'action directement dans sa méthode selectionChanged.
Les libellés d'actions et de menus peuvent contenir des caractères spéciaux encodant des mnémoniques spécifiées à l'aide d'une perluète ('&') devant un caractère mnémonique dans le texte traduisible. Comme le caractère perluète n'est pas autorisé dans les chaînes XML, utilisez l'entité de caractère &.
Si deux actions ou plus sont ajoutées à un menu ou une barre d'outils par une extension, elles apparaîtront dans l'ordre inverse de celui dans le fichier plugin.xml. Ce comportement est intuitif. Toutefois, il a été découvert qu'une fois l'API de plateforme Eclipse figée. Si vous modifiez ce comportement maintenant, vous endommagez chaque plug-in utilisant le comportement existant.
Exemples :
L'exemple ci-dessous décrit un point d'extension d'actions de vue (notez les sous-éléments et la façon dont sont utilisés les attributs) :
<extension point="org.eclipse.ui.viewActions">
<viewContribution
id="com.xyz.xyzViewC1"
targetID="org.eclipse.ui.views.ResourceNavigator">
<menu id="com.xyz.xyzMenu"
label="XYZ Menu"
path="additions">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="com.xyz.xyzMenu/group1"
toolbarPath="Normal/XYZ"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ"
enablesFor="1"/>
<selection class="org.eclipse.core.resources.IFile" name="*.java">
</action>
</viewContribution>
</extension>
Dans cet exemple, l'action spécifiée ne sera activée que pour une seule sélection (attribut enablesFor). De plus, chaque objet de la sélection doit implémenter l'interface spécifiée (IFile) et être un fichier Java. Plusieurs éléments selection peuvent être spécifiés, signifiant "l'un de".
Informations d'API : la valeur de l'attribut class doit être un nom complet qualifié d'une classe Java qui implémente org.eclipse.ui.IViewActionDelegate. Cette interface 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. Elle étend org.eclipse.ui.IActionDelegate et ajoute une méthode supplémentaire qui permet au délégué de s'initialiser avec la nouvelle instance à laquelle elle contribue.
Implémentation fournie : chaque vue est généralement fournie avec un certain nombre d'options standard dans le menu déroulant et la barre d'outils locale. Les ajouts émanant d'autres plug-in sont annexés au complément standard. Il est utile de publier les identificateurs d'action pour une vue dans une interface publique. Par exemple, les actions et les groupes majeurs destinés à la fenêtre du plan de travail sont définis dans org.eclipse.ui.IWorkbenchActionConstants.