ツールバーへのアクションの追加
基本に立ち戻り,「Contributing to eclipse」に沿って学習しなおすことにしたEclipseプラグイン開発。最初のお題は,「Helloアクション」。ツールバーにボタンを追加するという単純なプラグイン。
アクションはアクションセットの中で定義されるので,まずプラグインのマニフェスト(plugin.xml)の中にactionSet要素を準備する。そしてactionSet要素の中に,action要素を記述してアクションを定義する。以下のような感じ。
<extension point="org.eclipse.ui.actionSets">
<actionSet
label="Hello Action Set"
id="yoichiro.hello.actionSet">
<action
label="Hello"
id="yoichiro.hello.action"
toolbarPath="helloGroup"
class="yoichiro.hello.HelloAction">
</action>
</actionSet>
</extension>
上記をプラグインのマニフェストのplugin要素内に記述するだけで,一応プラグインとして認識され,ちゃんとツールバーにボタンが出現する(アイコンを指定していないので,デフォルトの赤ポッチのちっちゃなボタンになる)。この際,「Window>Customize Perspective」メニューを使って,Other内にあるHello Action Set にチェックを入れないと,ツールバーにボタンが表示されない(チェックを入れることを活性化,チェックを外すことを非活性化とここでは呼ぶ)。toolbarPath属性を使って,ツールバー上に新たにhelloGroupグループを作成している。これにより,ツールバー内にアクションがボタンとして表示されるようになる。
アクションの定義は上記でOK。次はアクションの実装となるクラスであるが,これはIWorkbenchWindowActionDelegateインタフェースの実装クラスでなければならない。クラスは以下のような感じ。
public class HelloAction
implements IWorkbenchWindowActionDelegate {
public HelloAction() {}
public void init(IWorkbenchWindow window) {}
public void run(IAction action) {}
public void dispose() {}
public void selectionChanged(IAction action, ISelection selection) {}
}
アクションセットが活性化されてツールバーにボタンが表示されただけでは,上記のアクションのインスタンスは生成されない。ボタンを押して初めてインスタンスが生成される。・・・と本には書いてあるんだけど,それは最初の一回目だけで,アクションセットを非活性化し,再度活性化すると,その直後にインスタンスが作られている。まぁ,この動作の違いはプラグインを自作するときにはそんなに気にならないだろう。
ボタンが押されたときに実行したい処理は,runメソッド内に記述すればよい。
ちなみに,パースペクティブを切り替えたりするとアクションはdisposeメソッドが呼ばれて破棄され,元のパースペクティブに戻ってくるとインスタンスが再度作り直される,といった動きをするので,もちろんアクションクラスにインスタンス変数を作って状態を覚えるといったことはご法度です。
| 固定リンク
この記事へのコメントは終了しました。
コメント
弊店はブランドコピー時計N品、
ロレックスコピー時計、パネライレプリカ時計、
シャネルレプリカ時計、ブライトリングレプリカ時計、
ウブロレプリカ時計、IWC コピー時計、
二年以内に人的破壊でない故障は無料で修理をします。
正規品と同等品質のコピー品を低価でお客様に提供します。
安心して購入して下さい。
自身が使用するだけでなく、入学、卒業、誕生日、結婚のお祝い等のギフトにもご利用ください。
投稿: ブランドバッグ・ブランド財布N級品販売通販 | 2019.04.09 03:09 午後
Sexy teen photo galleries
http://freepornpics.instakink.com/?madyson
porn hup com cameron fine porn porn icon siobhan and robin porn black celetrity porn
投稿: gretaxm69 | 2019.05.05 02:06 午後
Tel est pris, http://traitement-de-lacne.eklablog.fr Further shareholding at a.
投稿: roaccutane ptix | 2020.04.26 08:13 午前