説明: この拡張ポイントは、他のプラグインにより登録されたエディターの メニューおよびツールバーにアクションを追加するために使用します。
エディターの初期 contribution セットは、別の拡張ポイント (org.eclipse.ui.editors) によって定義されます。 1 組のアクションが作成され、同じエディター・タイプのすべてのインスタンスで共用されます。これらのアクションが起動されると、アクティブ・エディターとして機能します。 この拡張ポイントは、同じパターンに従います。それぞれのアクション拡張が作成され、同じエディター・タイプのすべてのインスタンスで共用されます。org.eclipse.ui.IEditorActionDelegate をインプリメントするために、アクション・クラスが必要です。 アクティブ・エディターは、IEditorActionDelegate.setActiveEditor を起動することによって、代行に渡されます。
アクションの使用可能性と可視性は、エレメント enablement と visibility をそれぞれ使用することによって定義できます。 これらの 2 つのエレメントにはブール式が含まれ、この式が評価されて使用可能性と可視性を決定します。
enablement エレメントと visibility エレメントは同じ構文です。 どちらにも、1 つのブール式サブエレメントだけが含まれています。 最も単純なケースでは、これは 1 つの objectClass、objectState、pluginState、または systemProperty エレメントになります。 もっと複雑なケースになると、and、or、および not のエレメントで結合して、1 つのブール式を構成している場合があります。 and および or エレメントの両方に、2 つのサブエレメントが含まれていなければなりません。 not エレメントには、 1 つのサブエレメントだけが含まれなければなりません。
構成マークアップ:
<!ELEMENT extension (editorContribution+)>
<!ATTLIST extension
point CDATA #REQUIRED
id CDATA #IMPLIED
name CDATA #IMPLIED
>
<!ELEMENT editorContribution (menu* , action*)>
このエレメントは、エディターのアクションまたはメニュー (あるいはその両方) のグループの定義に使用されます。
<!ATTLIST editorContribution<!ELEMENT action (selection* | enablement?)>
このエレメントは、ユーザーが UI で起動できるアクションを定義します。
<!ATTLIST actionpush | - 通常のメニュー項目またはツール項目。 | |
radio | - ラジオ・スタイルのメニュー項目またはツール項目。同じメニューまたはツールバー・グループ内のラジオ・スタイルのアクションは、 ラジオ・セットとして動作します。初期値は、state 属性によって指定されます。 | |
toggle | - チェック・スタイル・メニュー項目またはトグル・ツール項目。初期値は、state 属性によって指定されます。 |
! | - 選択された項目が 0 | |
? | - 選択された項目が 0 または 1 | |
+ | - 選択された項目が 1 つ以上 | |
multiple, 2+ | - 選択された項目が 2 つ以上 | |
n | - 選択された項目の正確な数。 たとえば、enablesFor=" 4" では、4 つの項目が選択された場合にのみアクションが使用可能になります。 | |
* | - 任意の数の項目を選択 |
<!ELEMENT menu (separator+ , groupMarker*)>
このエレメントは、新規メニューの定義に使用されます。
<!ATTLIST menu<!ELEMENT separator EMPTY>
このエレメントは、新規メニューのメニュー・セパレーターを作成するために使用されます。
<!ATTLIST separator<!ELEMENT groupMarker EMPTY>
このエレメントは、新規メニューの名前付きグループを作成するために使用されます。 これは、separator エレメントと違って、新規メニューにビジュアル表示されません。
<!ATTLIST groupMarker<!ELEMENT selection EMPTY>
このエレメントは、現行の選択を基にした、アクションの使用可能性を判別するために役立ちます。 enablement エレメントが指定されていると無視されます。
<!ATTLIST selection<!ELEMENT enablement (and | or | not | objectClass | objectState | pluginState | systemProperty)>
このエレメントは、アクションの使用可能性を定義するために使用されます。
<!ELEMENT visibility (and | or | not | objectClass | objectState | pluginState | systemProperty)>
このエレメントは、アクションの可視性を定義するために使用されます。
<!ELEMENT and (and | or | not | objectClass | objectState | pluginState | systemProperty)>
このエレメントは、2 つのサブエレメント式を評価した結果に対するブール AND 演算を表します。
<!ELEMENT or (and | or | not | objectClass | objectState | pluginState | systemProperty)>
このエレメントは、2 つのサブエレメント式を評価した結果に対するブール OR 演算を表します。
<!ELEMENT not (and | or | not | objectClass | objectState | pluginState | systemProperty)>
このエレメントは、2 つのサブエレメント式を評価した結果に対するブール NOT 演算を表します。
<!ELEMENT objectClass EMPTY>
このエレメントは、現行の選択内の各オブジェクトのクラスまたはインターフェースを評価するために使用されます。 選択内の各オブジェクトが指定されたクラスまたはインターフェースをインプリメントしている場合、式は真と評価されます。
<!ATTLIST objectClass<!ELEMENT objectState EMPTY>
このエレメントは、現行の選択内の各オブジェクトの属性の状態を評価するために使用されます。 選択内の各オブジェクトが指定された属性状態である場合、式は真と評価されます。 このタイプの式を評価するには、 選択内の各オブジェクトが org.eclipse.ui.IActionFilter インターフェースをインプリメントするか、または適合している必要があります。
<!ATTLIST objectState<!ELEMENT pluginState EMPTY>
このエレメントは、プラグインの状態を評価するために使用されます。プラグインの状態は、 installed または activated のどちらかにできます。
<!ATTLIST pluginState<!ELEMENT systemProperty EMPTY>
このエレメントは、いくつかのシステム・プロパティーの状態を評価するために使用されます。プロパティーの値は、java.lang.System から検索されます。
<!ATTLIST systemProperty
<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" style="toggle" state="true" icon="icons/runXYZ.gif" tooltip="Run XYZ Tool" helpContextId="com.xyz.run_action_context" class="com.xyz.actions.RunXYZ"> <selection class="org.eclipse.core.resources.IFile" name="*.java"/> </action> </editorContribution> </extension>
上の例で、指定されたアクションは "XYZ Menu" という名前の新しいトップレベル・メニュー内のチェック・ボックス項目として、 またツールバーのトグル・ボタンとして表示されます。 アクションは、選択に Java ファイル・リソースのみが含まれている場合に使用可能になります。
以下は、他のエディター・アクション拡張の例です。
<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" style="push" icon="icons/runXYZ2.gif" tooltip="Run XYZ2 Tool" helpContextId="com.xyz.run_action_context2" class="com.xyz.actions.RunXYZ2"> <enablement> <and> <objectClass name="org.eclipse.core.resources.IFile"/> <not> <objectState name="extension" value="java"/> </not> </and> </enablement> </action> </editorContribution> </extension>
上の例で、指定されたアクションは、トップレベルの「編集」メニューの「XYZ2 Menu」というサブメニューにメニュー項目として表示されます。 アクションは、 選択に Java ファイル・リソースが含まれる場合に使用可能になります。
API 情報: class 属性の値は、org.eclipse.ui.IEditorActionDelegate をインプリメントする Java クラスの完全修飾名である必要があります。 このクラスは、プラグイン全体が必要となる場合に全体がロードされることのないよう、 できる限り後からロードされます。 メソッド setActiveEditor は、指定されたタイプのエディターが活動化されるごとに呼び出されます。現在ワークベンチで開かれているエディターのインスタンスの数に関係なく、指定された エディター・タイプのすべてのインスタンスについて、アクションとメニューが 1 セットだけ作成されます。
この拡張ポイントを使用して、以前にターゲット・エディターにより作成されたメニューに、アクションを 追加します。 さらに、メニューとアクションを、ワークベンチ・ウィンドウに提供することができます。 ワークベンチ・ウィンドウ内のアクションおよび主要グループの ID は、org.eclipse.ui.IWorkbenchActionConstants に定義されています。 これらは、新規アクションを追加するための参照ポイントとして使用されます。 トップレベル・メニューは、path 属性に次の値を使用して作成されます。
これらのパスに追加されたアクションおよびメニューは、関連するエディターが活動化されている場合にのみ 表示されます。 エディターを閉じると、メニューとアクションは除去されます。
アクション拡張の使用可能性の基準は、最初は enablesFor によって定義され、selection または enablement のいずれかによっても定義されます。 ただし、アクション代行がインスタンス化されると、その selectionChanged メソッド内のアクション使用可能状態を直接制御できます。
アクションおよびメニュー・ラベルには、次の規則に従って、簡略記号をエンコードする特殊文字を含めることができます。
selection エレメントと enablement エレメントは相互に排他的です。 サブエレメント objectClass および objectState を使用して、 enablement エレメントで selection エレメントを置き換えることができます。 以下に例を示します。
<selection class="org.eclipse.core.resources.IFile" name="*.java"> </selection>これは、以下の項目を使用して表現することができます。
<enablement> <and> <objectClass name="org.eclipse.core.resources.IFile"/> <objectState name="extension" value="java"/> </and> </enablement>
提供されるインプリメンテーション: ワークベンチでは、組み込みの「デフォルト・テキスト・エディター」を提供しています。このデフォルトのエディター、または他のプラグインの提供するエディターに対しプラグインを提供する ことができます。
Copyright (c) 2000, 2003 IBM Corporation and others.
All rights reserved.
This program and the accompanying materials are made available under the terms of the Common Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/cpl-v10.html