È stato appena illustrato come gli editor possono aggiungere proprie azioni ai menu e alla barra degli strumenti del workbench quando diventano attivi. Il punto di estensione org.eclipse.ui.editorActions consente di aggiungere un plug-in ai menu e alla barra degli strumenti del workbench quando diventa attivo l'editor di un altro plug-in.
Nell'esempio dello strumento readme, il plug-in utilizza il punto di estensione editorActions per contribuire con azioni aggiuntive al menu fornito dall'editor di readme. La definizione in plugin.xml dovrebbe ormai risultare abbastanza familiare.
<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.gif" tooltip="%Editors.Action.tooltip" class="org.eclipse.ui.examples.readmetool.EditorActionDelegate" /> </editorContribution> </extension>
L'estensione, al pari di un'azione della vista, deve specificare il targetID dell'editor al quale sta aggiungendo azioni. La stessa azione risulta molto simile a un'azione della vista (id, label, icon, toolbarPath, ecc.), con l'unica eccezione che la classe specificata deve implementare IEditorActionDelegate.
Si osservi che in questo tag non è specificato alcun percorso per la barra di menu. Per questo, l'azione, quando l'editor è attivo, viene visualizzata nella barra degli strumenti ma non in quella dei menu del workbench. Per la trattazione dei percorsi di menu e barra degli strumenti, consultare Percorsi di menu e barre degli strumenti
Quando l'editor è attivo, l'azione dell'editor viene visualizzata sulla barra degli strumenti accanto alle azioni fornite dall'editor stesso.
Lo strumento readme fornisce EditorActionDelegate per implementare l'azione. Questa classe è simile all'azione della vista illustrata in precedenza.
public void run(IAction action) { MessageDialog.openInformation(editor.getSite().getShell(), MessageUtil.getString("Readme_Editor"), MessageUtil.getString("Editor_Action_executed")); }