org.eclipse.ui.editorActions

Nous venons de voir comment les éditeurs peuvent ajouter leurs propres actions aux menus et à la barre d'outils du plan de travail lorsqu'ils sont actifs. Le point d'extension org.eclipse.ui.editorActions permet à un plug-in d'ajouter des actions lorsqu'un autre éditeur de plug-in est actif.

Dans l'exemple du readme, le plug-in utilise le point d'extension editorActions pour ajouter des actions supplémentaires au menu mis à disposition par l'éditeur de readme. La définition dans notre fichier plugin.xml doit vous paraître familière à présent.

<extension
    point = "org.eclipse.ui.editorActions">
      <editorContribution 
         id="org.eclipse.ui.examples.readmetool.ec1" 
         targetID="org.eclipse.ui.examples.readmetool.ReadmeEditor">        
	   <action id="org.eclipse.ui.examples.readmetool.ea1" 
              label="%Editors.Action.label" 
	      toolbarPath="ReadmeEditor" 
              icon="icons/obj16/editor.png" 
              tooltip="%Editors.Action.tooltip" 
              class="org.eclipse.ui.examples.readmetool.EditorActionDelegate" 
              /> 
      </editorContribution>
 </extension>

Tout comme l'action d'une vue, l'extension doit spécifier l'ID cible de l'éditeur auquel elle ajoute des actions. L'action elle-même est très proche de celle d'une vue (ID, libellé, icône, chemin de barre d'outils, etc.), sauf que la classe spécifiée doit implémenter IEditorActionDelegate.  

Notez que le chemin d'accès à la barre de menus n'est pas indiqué dans ces marques. L'action apparaîtra par conséquent dans la barre d'outils du plan de travail lorsque l'éditeur est actif, mais pas dans la barre de menus. Consultez la section Chemins d'accès aux menus et à la barre d'outils pour en savoir plus sur le sujet.

Lorsque l'éditeur est actif, nous voyons l'action de notre éditeur sur la barre d'outils, à côté des actions ajoutées par l'éditeur lui-même.

L'action de l'éditeur apparaît à côté des contributions de l'éditeur d'origine dans la barre d'outils du plan de travail

L'outil readme fournit EditorActionDelegate pour implémenter l'action. Cette classe est très proche du délégué de l'action de la vue présentée avant.

public void run(IAction action) {
	MessageDialog.openInformation(editor.getSite().getShell(),
		MessageUtil.getString("Readme_Editor"),  
		MessageUtil.getString("Editor_Action_executed")); 
}