アクション・セット
ID: org.eclipse.ui.actionSets
説明: この拡張ポイントは、
ワークベンチ・ウィンドウの共通域にメニューやボタンを追加するために使用します。
これらの contribution は集合的に アクション・セット と呼ばれ、
ユーザーの設定によりワークベンチ・ウィンドウ内に表示されます。
構成マークアップ:
<!ELEMENT actionSet (menu)* (action)* (description?)>
<!ATTLIST actionSet
id CDATA
#REQUIRED
label CDATA #REQUIRED
visible (true
| false) #IMPLIED
>
<!ELEMENT description (#PCDATA)>
-
id - このアクション・セットの識別に使用する固有名
-
label - ワークベンチ・ウィンドウ内で使用される、このアクション・セットを表す変換可能な名前。
-
visible - 初期状態のワークベンチ・ウィンドウ内でアクション・セットを表示するかどうかを指示するオプション属性。
ユーザーは、パースペクティブ・ダイアログのカスタマイズを行ってこのオプションを変更することができます。
-
description - アクション・セットの簡単な説明テキストを本文に含むオプションのサブエレメント。
<!ELEMENT menu (separator)+>
<!ATTLIST menu
id
CDATA #REQUIRED
label
CDATA #REQUIRED
path
CDATA #IMPLIED
>
-
id - このメニューの参照に使用する固有 ID
-
label - 新規メニューのテキスト・ラベル。ラベルには、略号情報を含む必要があります。
-
path - メニュー・バーのルートから開始するメニューの位置。
省略した場合、メニューはメニュー・バーの「パースペクティブ (Perspective)」メニューと
「ウィンドウ (Window)」メニューの間に追加されます。
パス内の各トークンは、パス内の最後のメニューにある名前付きグループを表す最後のトークンを除き、
ワークベンチの既存のメニューを参照する必要があります。
<!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
pulldown
(true | false) #IMPLIED
class
CDATA #REQUIRED
enablesFor
CDATA #IMPLIED
>
-
id - このアクションの参照に使用する固有 ID
-
label - コンテキストに応じて使用される変換可能な名前。
これは、メニュー内ではメニュー・テキストとして使用されます。ツールバーでは、ボタン・ラベルとして使用されます。
ラベルには JFace エンコードの略号およびアクセラレーター情報を含むことができます (例を参照)。
-
menubarPath - メニュー・バーのアクションの位置を指定するスラッシュ ('/') で区切られたパス。
最後のものを除くパス内の各トークンは、階層内の既存のメニューの有効な ID を表す必要があります。
最後のトークンは、アクションの追加先となる名前付きの区切り文字グループを表します。
パスを省略した場合、メニュー・バーにアクションは現れません。
-
toolbarPath - ツールバー内のアクションの位置を指定するスラッシュ ('/') で区切られたパス。
最初のトークンはツールバー ID を表し ("Normal" はデフォルトのツールバー)、
2 番目のトークンはツールバー内の名前付きグループとなります。
グループがツールバーに存在しない場合は、グループが作成されます。
toolbarPath を省略した場合、ツールバーにアクションは現れません。
-
icon - コンテキスト内のアクションをビジュアルに表すためのアイコンの相対パス。
これを省略した場合、ツールバーにアクションが現れると、ワークベンチでは代わりのアイコンが使用されます。
パスは、提供元のプラグインの plugin.xml ファイルの位置に対する相対パスとなります。
-
tooltip - ツールバーにアクションが現れる場合の、ツールのヒント・テキストの値。
アクションが現れない場合、これは無視されます。
-
helpContextId - このアクションのヘルプ・コンテキスト ID を示す固有 ID。
アクションがメニュー項目として現れる場合、
メニュー項目を強調表示しながら F1 キーを押すと、そのコンテキスト ID のヘルプが表示されます。
-
state - アクションをトグル・タイプとするよう指示するオプション属性。
メニューに追加する際、これはチェック・ボックスとして現れます。
ツールバーに追加すると、トグル・ボタンとなります。
定義された属性値は、初期状態として使用されます (true または false)。
この属性は、pulldown とは相互に排他的です。
-
pulldown - アクションにプルダウン・メニューを追加するよう指示するオプション属性。
ツールバーにアクションが現れ、属性値が true の場合、アクションの隣にプルダウン・メニューが表示されます。
メニューにアクションが現れる場合、この属性は無視されます。
この属性は、state とは相互に排他的です。
-
class - org.eclipse.ui.IWorkbenchWindowActionDelegate または
org.eclipse.ui.IWorkbenchWindowPulldownDelegate をインプリメントするクラスの完全修飾名。
後者は、pulldown が true の場合にインプリメントする必要があります。
-
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 など)。
例: アクション・セットの例を次に示します (サブエレメントと way 属性が使用されています)。
<extension point = "org.eclipse.ui.actionSets">
<actionSet id="com.xyz.actionSet"
label="My Actions"
visible="true">
<menu id="com.xyz.xyzMenu"
label="XYZ Menu"
path="additions">
<separator name="group1"/>
</menu>
<action id="com.xyz.runXYZ"
label="&Run XYZ Tool"
menubarPath="com.xyz.xyzMenu/group1"
toolbarPath="Normal/XYZ"
icon="icons/runXYZ.gif"
tooltip="Run XYZ Tool"
helpContextId="com.xyz.run_action_context"
class="com.xyz.actions.RunXYZ"
enablesFor="1">
<selection class="org.eclipse.core.resources.IFile" name="*.java"/>
</action>
</actionSet>
</extension>
上記の例では、指定されたアクション "My Actions" は、各パースペクティブ中、初期状態で可視となります。
これは、単一選択 (enablesFor 属性) に対してのみ使用可能となります。
また、選択内のオブジェクトは、指定されたインターフェース (IFile) をインプリメントする必要があり、
Java ファイルである必要があります。
API 情報: class 属性の値は、
org.eclipse.ui.IWorkbenchWindowActionDelegate または
org.eclipse.ui.IWorkbenchWindowPulldownDelegate をインプリメントするクラスの完全修飾名である必要があります。
後者は、pulldown が true の場合にインプリメントする必要があります。
このクラスは、プラグイン全体が必要になる前に全体がロードされることのないよう、
できる限り後からロードされます。
提供されるインプリメンテーション:
プラグインはこの拡張ポイントを使用して新規のトップレベル・メニューを追加することができます (例、Debug)。
また、プラグインは、
他のプラグインのアクションが提供されるようにするための名前付きグループを定義することもできます。
トップレベル・メニューは、path 属性に次の値を使用して作成されます。
-
additions -「ウィンドウ (Window)」メニューの左側にあるグループを表します。
path 属性を省略すると、additions メニュー・バー・グループに新規のメニューが追加されます。
ワークベンチ・ウィンドウのデフォルト・グループは IWorkbenchActionConstants インターフェースで定義されます。
これらの定数は、動的な contribution のコードで使用することができます。
この値は、XML ファイルにコピーして、既存のワークベンチ・メニューおよびツールバーとの詳細な統合を図ることができます。
ワークベンチ・ウィンドウ内の各種メニューおよびツールバー項目は、アルゴリズムに従って定義されます。
この場合、ウィンドウの拡張には個別のメカニズムが使用されます。
たとえば、新規のワークベンチ・ビューを追加することにより、
「パースペクティブ (Perspective)」メニューには新規のメニュー項目が表示されます。
インポート、エクスポート、および新規ウィザードの拡張機能も自動的にウィンドウに追加されます。