Top / Eclipse / プラグイン開発のTIPS集 / あるビューがアクティブの時のみ表示されるアクション

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="サンプル・メニュー(&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>

参考

org.eclipse.jdt.uiプラグインに、org.eclipse.jdt.ui.CodingActionSet?というアクションセットがあるのですが、それはこのactionSetPartAssociations?拡張ポイントで表示制御されています。


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Eclipse / プラグイン開発のTIPS集 / あるビューがアクティブの時のみ表示されるアクション

現在のアクセス:9890


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