エディターのメニュー、ツールバー、およびアクション
ID: org.eclipse.ui.editorActions
説明: この拡張ポイントは、
他のプラグインにより登録されたエディターのメニューおよびツールバーにアクションを追加するために使用します。
エディターの初期 contribution セットは、
他の拡張ポイント (org.eclipse.ui.editors) によって定義されます。
アクションのセットが 1 つ作成されて、同じエディター・タイプのすべてのインスタンスにより共用されます。
これらのアクションは、起動時にアクティブなエディターに対し動作を行います。
この拡張ポイントは、同じパターンをとります。
それぞれのアクションの拡張機能が作成され、同じエディター・タイプのすべてのインスタンスにより共用されます。
アクション・クラスは、org.eclipse.ui.IEditorActionDelegate をインプリメントする必要があります。
IEditorActionDelegate#setActiveEditor が起動され、アクティブ・エディターが代行者に渡されます。
構成マークアップ:
<!ELEMENT editorContribution (menu | action)*>
<!ATTLIST editorContribution
id
CDATA #REQUIRED
targetID CDATA #REQUIRED
>
id - この contribution の参照に使用する固有 ID
editorID - 以前に登録され、この contribution のターゲットとなるエディターの固有 ID
<!ELEMENT menu (separator)+>
<!ATTLIST menu
id
CDATA #REQUIRED
label
CDATA #REQUIRED
path
CDATA #IMPLIED
>
-
id - このメニューの参照に使用する固有 ID
-
label - 新規メニューのテキスト・ラベル。ラベルには、略号情報を含む必要があります。
-
path - メニュー・バーのルートから開始するメニューの位置。
省略した場合、メニューはメニュー・バーのスロットの additions に追加されます。
パス内の各トークンは、パス内の最後のメニューにある名前付きグループを表す最後のトークンを除き、
ワークベンチの既存のメニューを参照する必要があります。
<!ELEMENT separator EMPTY>
<!ATTLIST separator
name
CDATA #REQUIRED
>
name - 後でアクション・パスの最後のトークンとして参照が可能な区切り文字の名前。
区切り文字は、アクションの追加先とすることのできる名前付きグループとして使用することができます。
<!ELEMENT action (selection)*>
<!ATTLIST action
id
NMTOKEN #REQUIRED
label
CDATA #REQUIRED
menubarPath
CDATA #IMPLIED
toolbarPath
CDATA #IMPLIED
icon
CDATA #IMPLIED
tooltip
CDATA #IMPLIED
helpContextId
CDATA #IMPLIED
state
(true | false) #IMPLIED
class
CDATA #REQUIRED
enablesFor
CDATA #IMPLIED
>
-
id - このアクションの参照に使用する固有 ID
-
label - コンテキストに応じて使用される変換可能な名前。
これは、メニュー内ではメニュー・テキストとして使用されます。ツールバーでは、ボタン・ラベルとして使用されます。
ラベルには JFace エンコードの略号およびアクセラレーター情報を含むことができます (例を参照)。
-
menubarPath - メニュー・バーのアクションの位置を指定するスラッシュ ('/') で区切られたパス。
パスが指すのは、ターゲット・エディターに属するメニューのみです。
最後のトークンは、アクションの追加先となる名前付きの区切り文字グループを表します。
パスを省略した場合、メニュー・バーにアクションは現れません。
-
toolbarPath - ツールバー内のアクションの位置を指定するスラッシュ ('/') で区切られたパス。
最初のトークンはツールバー ID を表し ("Normal" はデフォルトのツールバー)、
2 番目のトークンはツールバー内の名前付きグループとなります。
グループがツールバーに存在しない場合は、グループが作成されます。
toolbarPAth を省略した場合、アクションは現れません。
-
icon - コンテキスト内のアクションをビジュアルに表すためのアイコンの相対パス。
これを省略した場合、ツールバーにアクションが現れると、ワークベンチでは代わりのアイコンが使用されます。
パスは、提供元のプラグインの plugin.xml ファイルの位置に対する相対パスとなります。
-
tooltip - ツールバーにアクションが現れる場合に使用します。アクションが現れない場合、これは無視されます。
-
helpContextId - このアクションのヘルプ・コンテキスト ID を示す固有 ID。アクションがメニュー項目として現れる場合、
メニュー項目を強調表示しながら F1 キーを押すと、そのコンテキスト ID のヘルプが表示されます。
-
state - アクションをトグル・タイプとするよう指示するオプション属性。
メニューに追加する際、これはチェック・ボックスとして現れます。
ツールバーに追加すると、トグル・ボタンとなります。
定義された属性値は、初期状態として使用されます (true または false)。
-
class - org.eclipse.ui.IEditorActionDelegate をインプリメントするクラスの完全修飾名。
-
enablesFor - アクションを使用可能にするために満たす必要のある選択カウントを示す値。
この属性が指定され、条件が満たされると、アクションが使用可能になります。
条件が満たされない場合は、アクションは使用不可です。
属性が指定されないと、アクションは選択された項目の数にかかわらず使用可能となります。
次の属性形式がサポートされます。
! - 選択された項目が 0
? - 選択された項目が 0 または 1
+ - 選択された項目が 1 つ以上
multiple, 2+ - 選択された項目が 2 つ以上
n - 選択された項目の正確な数。例、4
* - 任意数の項目を選択
<!ELEMENT selection EMPTY>
<!ATTLIST selection
class
CDATA #REQUIRED
name
CDATA #IMPLIED
>
-
class - アクションを使用可能にするため、選択内の各オブジェクトがサブクラス化またはインプリメントするクラスまたはインターフェースの完全修飾名。
-
name - 選択内のオブジェクトにオプションで適用可能なワイルドカード・フィルター。このフィルターを指定して、マッチングに失敗すると、アクションは使用不可になります。
アクションの拡張機能を使用可能にするための基準は、
最初に enablesFor および selection によって定義されます。
ただし、アクションの代行者がインスタンス化されると、
これはその selectionChanged メソッド内で直接アクションの使用可能状態をコントロールすることができます。
アクションおよびメニュー・ラベルには、
次の規則に従い略号とアクセラレーターをエンコードする特殊文字を含むことができます。
-
略号は、変換されたテキスト中の選択文字の前のアンパーサンド ('&') 文字で指定されます。
XML ストリングではアンパーサンドは使用できないため、& 文字エンティティーを使用してください。
-
オプションのアクセラレーターは、名前ストリングの最後で指定します。
これには、@ に続けて一連の修飾子と最終的なアクセラレーター文字を続けます (例、&Save@Ctrl+S)。
修飾子は、'+' 符号を区切り文字としてつなげることができます (@Ctrl+Shift+S など)。
例: エディター・アクション拡張ポイントの例を次に示します。
<extension point="org.eclipse.ui.editorActions">
<editorContribution
id="com.xyz.xyzContribution"
targetID="com.ibm.XMLEditor">
<menu id="com.xyz.xyzMenu"
label="&XYZ Menu">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="com.xyz.xyzMenu/group1"
toolbarPath="Normal/XYZ"
state="true"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ">
</action>
</editorContribution>
</extension>
上記の例で、指定されたアクションは、メニュー内のチェック・ボックス項目として、
また、ツールバーのトグル・ボタンとして表示されます。
API 情報: class 属性の値は、
org.eclipse.ui.IEditorActionDelegate をインプリメントする Java クラスの完全修飾名である必要があります。
このインターフェースは、プラグイン全体が必要となる前に全体がロードされることのないよう、
できる限り後からロードされます。メソッド setActiveEditor は、
指定タイプのエディターが活動化されるごとに呼び出されます。
現在ワークベンチで開かれているエディターのインスタンスの数に関係なく、
指定されたエディター・タイプのすべてのインスタンスについて 1 セットのアクションとメニューが作成されます。
この拡張ポイントを使用して、以前にターゲット・エディターにより作成されたメニューに、アクションを追加します。
また、メニューとアクションはワークベンチ・ウィンドウに対しても提供することができます。
ワークベンチ・ウィンドウ内のアクションおよび主要グループの ID は、
org.eclipse.ui.IWorkbenchActionConstants に定義されます。
これらは、新規アクションを追加するための参照ポイントとして使用されます。
トップレベルのメニューは、path 属性の次の値を使用して作成されます。
-
additions -「ウィンドウ (Window)」メニューの左側にあるグループを表します。
これらのパスに追加されたアクションおよびメニューは、関連するエディターが活動化されている場合にのみ表示されます。
エディターを閉じると、メニューとアクションは除去されます。
提供されるインプリメンテーション: ワークベンチには、
「デフォルトのテキスト・エディター」が組み込まれています。
このデフォルトのエディター、または他のプラグインの提供するエディターに対しプラグインを提供することができます。