// 下階層用テンプレート
#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拡張ポイントで表示制御されています。


***関連リンク [#ocbbb5b9]
[[Eclipse/プラグイン開発のTIPS集/あるパースペクティブを選択したときのみ表示されるアクション]] では、一段上の、あるパースペクティブが選択されているときのみ、表示されるアクションセットの作り方をまとめました。






----
この記事は
#vote(おもしろかった[1],そうでもない[0])
#vote(おもしろかった[2],そうでもない[0])
-%%actionSetPartAssociations拡張ポイントを使ったアクションセットに、他のアクションセットからアクションを追加できないような。。。。アクションを追加しようとしたときに、アクションセットがまだアクティブになっていないから?? -- [[きの]] &new{2006-05-15 09:22:11 (月)};%%
-%%というか、visibleがfalseになってる場合、アクションを追加できないみたい。 -- [[きの]] &new{2006-05-15 09:25:06 (月)};%%
-visible="true"としてしまうと、いつも表示されてしまうので、必ずvisible="false"にしましょう。 -- [[きの]] &new{2006-05-18 13:49:22 (木)};
-直接この拡張ポイントとは関係ない話ですが、visible="false"となっているアクションセットは、Eclipse的にはまだローディングされていないので、そこに拡張ポイント使ってアクションを登録するってことができないみたいですね。。 -- [[きの]] &new{2006-05-18 13:51:54 (木)};

#comment
#topicpath


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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS