Votre plug-in peut ajouter des menus, des options de menu et des éléments de barre d'outils aux menus et à la barre d'outils du plan de travail à l'aide du point d'extension org.eclipse.ui.actionSets. Afin de réduire l'encombrement dû au fait d'avoir toutes les contributions de chaque plug-in affichées simultanément, celles-ci sont regroupées en jeux d'actions qui peuvent être rendus visibles via les préférences de l'utilisateur.
Vous pouvez voir quels jeux d'actions ont contribué au plan de travail en sélectionnant Perspective->Personnaliser... dans le menu du plan de travail. Une boîte de dialogue s'affiche alors, contenant la liste de tous les jeux d'actions disponibles. Une marque en regard du jeu d'actions signifie que les actions de la barre d'outils ou du menu sont visibles dans le plan de travail. Vous pouvez sélectionner le nom du jeu d'actions pour voir la liste des actions disponibles dans la partie droite. L'illustration ci-dessous montre la liste des jeux d'actions disponibles dans notre plan de travail. (Votre plan de travail peut sembler différent selon les plug-ins que vous avez installés et la perspective active.)
L'outil readme utilise un jeu d'actions pour ajouter l'action "Open Readme Browser" (Ouvrir l'afficheur de readme) au menu du plan de travail. (Nous avons ajouté une action similaire au menu en incrustation du navigateur de ressources.) Les marques sont les suivantes :
<extension
point = "org.eclipse.ui.actionSets">
<actionSet id="org_eclipse_ui_examples_readmetool_actionSet"
label="ReadMe Actions"
visible="true">
<menu id="org_eclipse_ui_examples_readmetool"
label="Readme &File Editor"
path="window/additions">
<separator name="slot1"/>
<separator name="slot2"/>
<separator name="slot3"/>
</menu>
<action id="org_eclipse_ui_examples_readmetool_readmeAction"
menubarPath="window/org_eclipse_ui_examples_readmetool/slot1"
toolbarPath="readme"
label="&Open Readme
Browser@Ctrl+R"
tooltip="Open Readme Browser"
helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
icon="icons/basic/ctool16/openbrwsr.gif"
class="org.eclipse.ui.examples.readmetool.WindowActionDelegate"
enablesFor="1">
<selection
class="org.eclipse.core.resources.IFile"
name="*.readme">
</selection>
</action>
</actionSet>
</extension>
Examinons les étapes une à une.
D'abord, le jeu d'actions est déclaré et reçoit un libellé. Le libellé "ReadMe Actions" est utilisé pour afficher le jeu d'actions dans la boîte de dialogue illustrée ci-dessus. Du fait que la valeur "true" est attribuée au paramètre visible, le jeu d'actions sera initialement sélectionné pour le plan de travail dans la liste des jeux d'actions et les actions seront visibles.
Le reste de la déclaration du jeu d'actions est concerné par la définition du menu dans lequel l'action apparaît et l'action elle-même.
Nous définissons un menu dont le libellé ("Readme &File Editor") apparaît dans les menus du plan de travail. Le chemin d'accès au menu indique au plan de travail de placer le nouveau menu dans l'emplacement additions du menu Fenêtre. (Pour plus de détails sur les chemins d'accès de menus et les emplacements, reportez-vous à la section Chemins d'accès aux menus et à la barre d'outils.) Nous définissons des emplacements dans notre nouveau menu afin de pouvoir insérer des actions à des emplacements spécifiques du menu.
Ceci est suffisant pour que le menu apparaisse dans le menu Fenêtre du plan de travail.
Ensuite, nous définissons l'action elle-même. La définition de l'action (id, label, icon, class) est similaire aux autres actions que nous avons abordées dans les vues, les éditeurs et les incrustations. Nous allons nous attacher ici à ce qui diffère : où va l'action ? Nous utilisons menubarPath et toolbarPath pour indiquer l'emplacement. En premier lieu, nous ajoutons l'action à un emplacement du menu que nous venons de définir.
Ensuite, nous définissons un nouveau toolbarPath pour insérer notre action dans la barre d'outils du plan de travail. Comme il s'agit du chemin d'accès d'un nouvel outil, le plan de travail décide où il va en fonction des autres contributions de la barre d'outils du plug-in.
Notez que des conditions d'activation sont également fournies pour cette action. Notre nouvelle option de menu et notre nouvel élément de la barre d'outils ne sont activés que lorsqu'un seul (enablesFor="1") fichier readme (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme") est sélectionné.
Ces options de menu et de la barre d'outils apparaissent et ne sont activés que dans les marques du fichier plugin.xml. Aucune partie du code du plug-in ne s'exécute tant que l'utilisateur n'a pas sélectionné d'action et que le plan de travail exécute la classe de l'action.
La classe de l'action doit implémenter IWorkbenchWindowActionDelegate ou IWorkbenchWindowPulldownDelegate si le jeu d'actions s'affiche sous forme d'un menu déroulant dans une barre d'outils. Comme nous ne créons pas de menu déroulant de barre d'outils, nous fournissons WindowActionDelegate. Cette classe est similaire à ObjectActionDelegate. Elle lance la boîte de dialogue des sections du readme lorsque l'utilisateur sélectionne l'action. Nous aborderons la boîte de dialogue des sections dans Boîtes de dialogue de l'application.