Nous venons juste 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 de faire des ajouts aux menus et à la barre d'outils du plan de travail lorsqu'un autre éditeur du plug-in devient actif.
Dans l'exemple du readme, le plug-in utilise le point d'extension editorActions pour ajouter des actions supplémentaires au menu contribué 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="&Readme Editor Extension"
toolbarPath="ReadmeEditor"
icon="icons/basic/obj16/editor.gif"
tooltip="Run Readme Editor Extension"
class="org.eclipse.ui.examples.readmetool.EditorActionDelegate"
/>
</editorContribution>
</extension>
Tout comme l'action d'une vue, l'extension doit spécifier l'ID cible (targetID) de l'éditeur auquel elle ajoute des actions. L'action elle-même est très proche de celle d'une vue (id, label et toolbarPath), 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 spécifié dans ces marques. Ceci signifie que l'action apparaît dans la barre d'outils du plan de travail lorsque l'éditeur est actif, mais pas dans la barre de menus du plan de travail. (Pour plus de détails sur les chemins d'accès à la barre d'outils et aux menus, reportez-vous à la section Chemins d'accès aux menus et à la barre d'outils.)
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'outil readme fournit EditorActionDelegate pour implémenter l'action. Ceci est très similaire à la délégation d'action de la vue que nous avons abordée précédemment.
public void run(IAction action) {
MessageDialog.openInformation(editor.getSite().getShell(),
"Readme Editor",
"Editor Action executed");
}