org.eclipse.ui.actionSets

Votre plug-in peut ajouter des menus, des options de menus et des options 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 engendré par les contributions de chaque plug-in, ces dernières sont regroupées en ensembles d'actions pouvant être affichés grâce aux préférences utilisateur.

Vous pouvez voir quels jeux d'actions ont contribué au plan de travail en sélectionnant Fenêtre->Personnaliser la perspective... dans le me,nu du plan de travail. Cette option affiche une boîte de dialogue qui répertorie les ensembles d'actions sous forme de groupes de commandes. Une coche à côté d'un groupe de commandes signifie que les actions liées aux menus et aux barres d'outils sont visibles dans le plan de travail. Vous pouvez sélectionner le nom du groupe de commandes pour découvrir la liste des actions de menus et de barres d'outils disponibles à droite. La figure ci-dessous affiche la liste des groupes de commandes disponibles dans le plan de travail (le plan de travail peut se présenter différemment en fonction des plug-ins que vous avez installés et de la perspective active).

Boîte de dialogue Personnaliser la perspective avec une liste d'ensembles d'actions

L'outil readme utilise un ensemble d'actions pour ajouter plusieurs actions "Ouvrir l'afficheur de readme" au menu du plan de travail. Nous avons ajouté une action semblable 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="%ActionSet.name"
		   visible="true">
		   <menu id="org_eclipse_ui_examples_readmetool"
			   label="%ActionSet.menu"
			   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="%ReadmeAction.label"
			   tooltip="%ReadmeAction.tooltip"
			   helpContextId="org.eclipse.ui.examples.readmetool.open_browser_action_context"
			   icon="icons/ctool16/openbrwsr.png"
			   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 par une, en nous intéressant pour l'instant à la première action.  

Tout d'abord, l'ensemble d'actions est déclaré et reçoit un libellé. Le libellé "ReadMe Actions" (défini pour la clé %ActionSet.name dans le fichier de propriétés du plug-in) est utilisée pour afficher l'ensemble d'actions dans la boîte de dialogue présentée ci-dessus. Comme la valeur true est attribuée au paramètre visible, l'ensemble d'actions sera initialement sélectionné pour le plan de travail dans la liste des ensembles et les actions seront visibles.

Le reste de la déclaration de l'ensemble d'actions est concerné par la définition du menu dans lequel les actions apparaissent et les actions elles-mêmes.

Nous définissons un menu dont le libellé apparaît dans les menus du plan de travail. Le chemin du menu indique au plan de travail de placer le nouveau menu dans l'emplacement additions du menu Fenêtre. Pour en savoir plus sur les chemins d'accès aux menus et les emplacements, consultez la section Chemins d'accès aux menus et à la barre d'outils.)  Nous définissons également des emplacements dans notre nouveau menu afin de pouvoir insérer des actions à des emplacements spécifiques.

Ceci est suffisant pour que le menu apparaisse dans le menu Fenêtre du plan de travail.

Menu de la fenêtre Plan de travail Workbench Window avec l'entrée Editeur de fichier Readme

Nous définissons ensuite les actions à proprement parler.  

La définition de l'action (ID, libellé, icône, classe) est semblable aux autres actions abordées dans les vues, les éditeurs et les menus en incrustation. Attachons-nous à ce qui diffère :où va l'action ? Nous utilisons  menubarPath et toolbarPath pour indiquer l'emplacement. En premier lieu, nous définissons menubarPath pour ajouter l'action à un emplacement dans le menu créé ( "window/org_eclipse_ui_examples_readmetool/slot1").

Menu de l'Editeur de fichier Readme avec les commandes de menu

Ensuite, nous définissons toolbarPath pour insérer des actions dans la barre d'outils du plan de travail. Comme il s'agit du chemin d'accès du nouvel outil "readme", la plan de travail décide où il va en fonction des autres contributions de la barre d'outils du plug-in.

Barre d'outils du plan de travail avec l'action readme

Que se passe-t-il lorsque l'action est sélectionnée par l'utilisateur ? L'action est implémentée par la classe indiquée par l'attribut class. La classe de l'action doit implémenter IWorkbenchWindowActionDelegate, ou IWorkbenchWindowPulldownDelegate si l'action apparaîtra comme option de menu déroulant dans la barre d'outils. Comme nous ne créons pas une option de menu déroulant, nous fournissons WindowActionDelegate. La classe est similaire à ObjectActionDelegate. Elle lance la boîte de dialogue des sections du readme lorsque l'utilisateur sélectionne l'action. Nous aborderons cette boîte de dialogue dans Boîtes de dialogue de l'application.

L'action offre également des conditions d'activation pour son option de menu et de barre d'outils. Ces options seront uniquement activées lorsqu'un (enablesFor="1") fichier readme (selectionClass ="org.eclipse.core.resources.IFile" name="*.readme") est sélectionné. Elles apparaissent et sont activées uniquement dans les marques du fichier plugin.xml. Aucune partir du code du plug-in ne s'exécute tant que l'utilisateur choisit l'action et que le plan de travail exécute la classe de l'action.

Nous étudierons les deux autres actions ultérieurement dans le contexte des actions redirigeables.