Eclipseでは、あるビューがアクティブの場合だけ表示されるアクションを作成することができます。たとえばユーザがパッケージ・エクスプローラを選択すると、Eclipseのメニューバーに「リファクタリング(T)」などが表示されます。アクティブでなくなると「リファクタリング(T)」はメニューバーから消えます。 このようにあるビューのみで使用したいアクション(メニュー)は、そのビューがアクティブの場合にのみ表示される、というのがUIとしては親切ですね。 Eclipseではそのような仕組みを拡張ポイントレベルでサポートしています。具体的にはアクションセット(actionSet)に対してビューIDを関連づけることで「そのアクションセットはそのビューがアクティブの場合だけ表示されるよ」といったことを設定することができます。 拡張ポイント †org.eclipse.ui.actionSetPartAssociations plugin.xmlのサンプル †<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?というビューがアクティブの時のみ、サンプル・アクション・セット というアクションセット*1は有効になります。このビューってパッケージ・エクスプローラなのですが、ようするにパッケージ・エクスプローラを選択するとEclipseのメニュー部にサンプル・メニュー(&M)というメニューが表示されます。 参考 †org.eclipse.jdt.uiプラグインに、org.eclipse.jdt.ui.CodingActionSet?というアクションセットがあるのですが、それはこのactionSetPartAssociations?拡張ポイントで表示制御されています。 関連リンク †Eclipse/プラグイン開発のTIPS集/あるパースペクティブを選択したときのみ表示されるアクション では、一段上の、あるパースペクティブが選択されているときのみ、表示されるアクションセットの作り方をまとめました。 この記事は
現在のアクセス:10098 |