Commandをつかわなきゃなぁーって思いつつ、ついActionを使ってしまってあまり試せていなかったので、今日ちょっと使ってみました。
なかなか便利ですねー。こいつ。
Commandの場合は目的によって綺麗にモノが分かれている感じです。
plugin.xml には、
- commandの定義
- Commandをどこに表示するのか?の定義
- どんな処理を行なうのか?のHandler定義
例えば....
* commandを複数作成するがHandlerのクラスを1つで使い回すパターン。
この場合、commandにcommandParameterを設定してHandlerから取得する ことで実現。
*メニューアイテムをOn/Off切替(チェックボックス)にするパターン
command定義の子要素にstateを記述してHandlerから状態を取得して処理する。
ここのtoggleの所
*複数のメニューアイテムをラジオの選択形式にし、1つのHandlerで処理してしまうパターン
ここのradioの所
なんて事とか楽に....というよりスッキリ?....出来ちゃうんですね。
しかも、処理を書くHandlerのクラスではラベル文字も書き換えできるようになっているもナイス。
ここらへんで参考になるのは Eclipse Tips のCommandsラベルが付いている記事。
一通り読んだだけで、全て試してないけど、ISourceProviderとか...なんか夢が広がるww
Commands以外でもEclpse Tipsのサイトは凄いいい記事多いですねー。
今度ゆっくり読んでみる事にする!
あと、もう1つほほーっと思ったのが、Contributionに書くlocationURI.
<extension point="org.eclipse.ui.menus">
<menuContribution locationURI="****">
<command commandId="****" />
</menuContribution>
</extension>
ここのlocationURIで色々表示場所を切り替えれるみたいなんですが、
昔よりも分かりやすい表示になった気がする。
メニューのIDさえ分かれば、ここの後ろに...とか入れれるって事なんですよね。
locationURIの指定で見かけたものをpickupしてみました。
popup:#CompilationUnitEditorContext?after=additions
JavaEditorのコンテキストメニューのaddtionsの下に追加
popup:org.eclipse.ui.popup.any
すぺてのPopupmenuに追加? この場合詳細はVisibleWhenとかで指定する感じってことかな。
popup:org.eclipse.jdt.ui.PackageExplorer
PackageExplorerのメニューに追加
menu:org.eclipse.ui.main.menu?after=navigate
メニューに追加する時。上記の場合メインメニューのNavigateの後ろに追加
toolbar:org.eclipse.ui.main.toolbar
ツールバーに追加する時。