// 下階層用テンプレート
#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="サンプル・メニュー(&amp;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="サンプル・アクション(&amp;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(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS