エディターがアクティブであるときに、ワークベンチ・メニューおよびツールバーに、独自のアクションを組み込む方法を先ほど説明しました。 org.eclipse.ui.editorActions 拡張ポイントを使用して、 プラグインによって、他のプラグインのエディターがアクティブになるときに、ワークベンチ・メニューおよびツールバーに追加を行うことができます。
README の例では、プラグインは editorActions 拡張ポイントを使用して、 README エディターによって作成されたメニューへ、追加のアクションを組み込みます。 以下の plugin.xml の定義は、今では、非常になじみ深いものでしょう。
<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>
ビュー・アクションと同様に、拡張により、アクションの組み込み先のエディターの targetID を指定する 必要があります。 アクション自体は、ビュー・アクションに極めて類似しています (id、label、icon、toolbarPath...)。 ただし、指定されたクラスは IEditorActionDelegate を インプリメントする必要があります。
メニュー・バー・パスは、このマークアップに指定されていないことに注意してください。 つまり、アクションは、エディターがアクティブのときにワークベンチ・ツールバーには表示されますが、 ワークベンチ・メニュー・バーには表示されません。 (ツールバーおよびメニュー・パスの詳細については、「ツールバーおよびメニュー・パス」を参照してください。)
実際、エディターがアクティブのとき、エディター自体によって組み込まれたアクションの隣のツールバー上に、 エディター・アクションが表示されます。
README ツールは、アクションをインプリメントするための EditorActionDelegate を提供します。 このクラスは、前に説明したビュー・アクション代行に極めて類似しています。
public void run(IAction action) { MessageDialog.openInformation(editor.getSite().getShell(), MessageUtil.getString("Readme_Editor"), MessageUtil.getString("Editor_Action_executed")); }