動きを調べる (ちょっとだけだけどね)
さて、Debug モードでちょこちょこ動かし始めました。
すべてのメソッドに Breakpoint を入れて、どんな順番で起動されるかとか、誰が呼び出しているかなどを見てみたいと思っています。
Eclipse を起動しただけだと、この Plug-in はインスタンス化されないんですね。メニューに出しているということは、インスタンス化していると思ったのですが、意外。
ということは plugin.xml を読み込んで、メニューバーとツールバーの情報だけ読み込むでしょうか。
で、ツールバーのボタンをポッチと押してみると、まず SamplePlugin が生成されるようです。
ダイアログを表示するまでの処理の順番は
- SamplePlugin の生成
- SamplePlugin#start
- SampleAction の生成
- SampleAction#init
- SampleAction#selectionChanged
- SampleAction#run
ダイアログを閉じてもプラグインはそのまま生き続けるのでしょうか。特に SampleAction#dispose は呼ばれないようです。パースペクティブを変えたりすると dispose が呼ばれるのかな?
と思ってやってみたら SampleAction#selectionChanged メソッドがコールされてました。
で、Workbench を終了してみると
- SampleAction#dispose
- SamplePlugin#stop
ふーん、こういうライフサイクルなわけですね。
これはメニューバーから実行したときも同じでした。