// 下階層用テンプレート #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 (月)};%% -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;}