- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
Eclipseでは、あるビューがアクティブの場合だけ表示されるアクションを作成することができます。たとえばユーザがパッケージ・エクスプローラを選択すると、Eclipseのメニューバーに「リファクタリング(T)」などが表示されます。アクティブでなくなると「リファクタリング(T)」はメニューバーから消えます。
このようにあるビューのみで使用したいアクション(メニュー)は、そのビューがアクティブの場合にのみ表示される、というのがUIとしては親切ですね。
Eclipseではそのような仕組みを拡張ポイントレベルでサポートしています。具体的には''アクションセット(actionSet)に対してビューIDを関連づける''ことで「そのアクションセットはそのビューがアクティブの場合だけ表示されるよ」といったことを設定することができます。
***拡張ポイント [#f5cc934d]
org.eclipse.ui.actionSetPartAssociations
***plugin.xmlのサンプル [#l2db6b79]
<extension point="org.eclipse.ui.actionSets">
<actionSet
id="nu.mine.kino.plugin.hogehogeg.actionSet"
label="サンプル・アクション・セット" visible="false">
<menu id="sampleMenu" label="サンプル・メニュー(&M)">
<separator name="sampleGroup"/>
</menu>
<action
class="nu.mine.kino.plugin.hogehogeg.actions.SampleAction"
icon="icons/sample.gif"
id="nu.mine.kino.plugin.hogehogeg.actions.SampleAction"
label="サンプル・アクション(&S)"
menubarPath="sampleMenu/sampleGroup"
toolbarPath="sampleGroup"
tooltip="Hello, Eclipse world"/>
</actionSet>
</extension>
<extension point="org.eclipse.ui.actionSetPartAssociations">
<actionSetPartAssociation
targetID="nu.mine.kino.plugin.hogehogeg.actionSet">
<part id="org.eclipse.jdt.ui.PackageExplorer"/>
</actionSetPartAssociation>
</extension>
これで、IDがorg.eclipse.jdt.ui.PackageExplorerというビューがアクティブの時のみ、サンプル・アクション・セット というアクションセット((メニューの群とでもいう?))は有効になります。このビューってパッケージ・エクスプローラなのですが、ようするにパッケージ・エクスプローラを選択するとEclipseのメニュー部にサンプル・メニュー(&M)というメニューが表示されます。
***参考 [#k0194946]
org.eclipse.jdt.uiプラグインに、org.eclipse.jdt.ui.CodingActionSetというアクションセットがあるのですが、それはこのactionSetPartAssociations拡張ポイントで表示制御されています。
----
この記事は
#vote(おもしろかった,そうでもない)
-actionSetPartAssociations拡張ポイントを使ったアクションセットに、他のアクションセットからアクションを追加できないような。。。。アクションを追加しようとしたときに、アクションセットがまだアクティブになっていないから?? -- [[きの]] &new{2006-05-15 09:22:11 (月)};
-というか、visibleがfalseになってる場合、アクションを追加できないみたい。 -- [[きの]] &new{2006-05-15 09:25:06 (月)};
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}