説明: この拡張ポイントは、他のプラグインにより登録されたエディターの メニューおよびツールバーにアクションを追加するために使用します。
エディターの初期 contribution セットは、他の拡張ポイント (org.eclipse.ui.editors) によって定義されます。 アクションのセットが 1 つ作成されて、同じエディター・タイプのすべてのインスタンスにより 共用されます。 これらのアクションは、起動時にアクティブなエディターに対し動作を行います。 この拡張ポイントは、同じパターンをとります。 それぞれのアクションの拡張機能が作成され、同じエディター・タイプのすべてのインスタンスにより 共用されます。 アクション・クラスは、org.eclipse.ui.IEditorActionDelegate をインプリメントする必要が あります。 IEditorActionDelegate#setActiveEditor が起動され、アクティブ・エディターが代行者に 渡されます。
構成マークアップ:
<!ELEMENT editorContribution (menu | action)*>
<!ATTLIST editorContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
<!ELEMENT menu (separator)+>id - この contribution の参照に使用可能な固有 ID。 editorID - 以前に登録され、この contribution のターゲットとなるエディターの固有 ID
<!ELEMENT action (selection)* (enablement)?>name - 後でアクション・パスの最後のトークンとして参照が可能な区切り文字の名前。 区切り文字は、アクションの追加先とすることのできる名前付きグループとして使用することができます。
Eclipse のバージョン 2.0 では、enablement エレメントはアクションの使用可能性を 定義するために使用されます。 enablement エレメントの詳細については、 actionExpressions.html を参照してください。アクション拡張の使用可能性の基準は、最初は enablesFor, selection および enablement によって定義されています。 ただし、アクション代行がインスタンス化されると、その selectionChanged メソッド内の アクション使用可能状態のを直接制御できます。
アクションおよびメニュー・ラベルには、次の規則に従い、簡略記号とアクセラレーターをエンコードする 特殊文字を含むことができます。
例:
エディター・アクション拡張ポイントの例を次に示します。
<extension point="org.eclipse.ui.editorActions">
<editorContribution
id="com.xyz.xyzContribution"
targetID="com.ibm.XMLEditor">
<menu id="XYZ"
label="&XYZ Menu">
<separator name="group1"/>
</menu>
<action
id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="XYZ/group1"
toolbarPath="Normal/additions"
state="true"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ">
</action>
</editorContribution>
</extension>
上の例で、指定されたアクションは "XYZ Menu" という名前の新しいトップレベル・メニュー内のチェック・ボックス項目として、 またツールバーのトグル・ボタンとして表示されます。
エディター・アクション拡張ポイントの例を次に示します。
<extension point="org.eclipse.ui.editorActions">
<editorContribution
id="com.xyz.xyz2Contribution"
targetID="com.ibm.XMLEditor">
<menu
id="XYZ2"
label="&XYZ2 Menu"
path="edit/additions">
<separator name="group1"/>
</menu>
<action
id="com.xyz.runXYZ2"
label="&Run XYZ2 Tool"
menubarPath="edit/XYZ2/group1"
state="true"
icon="icons/runXYZ2.gif"
tooltip="Run XYZ2 Tool"
helpContextId="com.xyz.run_action_context2"
class="com.xyz.actions.RunXYZ2">
</action>
</editorContribution>
</extension>
上の例で、指定されたアクションは トップレベルの「編集」メニューの "XYZ2 Menu" というサブメニューにチェック・ボックス項目として表示されます。
API 情報: class 属性の値は、 org.eclipse.ui.IEditorActionDelegate をインプリメントする Java クラスの完全修飾名である 必要があります。 このインターフェースは、プラグイン全体が必要となる前に全体がロードされることのないよう、 できる限り後からロードされます。 メソッド setActiveEditor は、指定タイプのエディターが活動化されるごとに呼び出されます。 現在ワークベンチで開かれているエディターのインスタンスの数に関係なく、指定された エディター・タイプのすべてのインスタンスについて 1 セットのアクションとメニューが作成されます。
この拡張ポイントを使用して、以前にターゲット・エディターにより作成されたメニューに、アクションを 追加します。 また、メニューとアクションはワークベンチ・ウィンドウに対しても提供することができます。 ワークベンチ・ウィンドウ内のアクションおよび主要グループの ID は、 org.eclipse.ui.IWorkbenchActionConstants に定義されます。 これらは、新規アクションを追加するための参照ポイントとして使用されます。 トップレベルのメニューは、path 属性の次の値を使用して作成されます。
提供されるインプリメンテーション: ワークベンチには、 「デフォルト・テキスト・エディター」が組み込まれています。 このデフォルトのエディター、または他のプラグインの提供するエディターに対しプラグインを提供する ことができます。