plugin.xml を書きかえてみる
どうも、おとといにやったことからして、plugin.xml がキーになるようですね。
ということで、plugin.xml を書きかえて動作がどういう風に変化するか調べてみました。
まずはメニューを増やしてみたいと思います。
<menu label="Sample &Menu" id="sampleMenu"> <separator name="sampleGroup"> </separator> </menu>
の部分を
<menu label="Sample &Menu" id="sampleMenu"> <separator name="sampleGroup"> </separator> </menu> <menu label="Sample M&enu 2" id="sampleMenu2"> <separator name="sampleGroup2"> </separator> </menu>
というようにして見ました。
ところで、separator って何でしょう? 普通、separator といったら、メニューとかでアイテムの間にある線のことですよね。でも、メニューバーにそんな線なかったし... まぁ、いいや。
で、実行。ありゃ、何も変わらない。
actionset タグの中には menu は 1 つしか書けないのかなぁ。対応する action がないからかなぁ。とりあえず、action を対応させちゃえ。
<action label="&Sample Action" icon="icons/sample.gif" class="sample.actions.SampleAction" tooltip="Hello, Eclipse world" menubarPath="sampleMenu/sampleGroup" toolbarPath="sampleGroup" id="sample.actions.SampleAction"> </action>
そういえば、menubarPath には sampleMenu/sampleGroup とありますね。sampleMenu は menu の id ですけど、sampleGroup が separator の name で書かれたものですね。separator ってこんなところで使うのかな。でも、menu の id だけでいいような気も。でも、なんか意味があるのでしょう。
とりあえず、それはほっておいて、action を次のように書きかえて見ました。
<action label="&Sample Action" icon="icons/sample.gif" class="sample.actions.SampleAction" tooltip="Hello, Eclipse world" menubarPath="sampleMenu2/sampleGroup2" toolbarPath="sampleGroup" id="sample.actions.SampleAction"> </action>
これで実行だ。
やった、ちゃんと変わりました。逆に Sample Menu はなくなってしまいました。やはり、対応する Action がないと表示されないのでしょう。もしかして、違うかもしれないけど。
だとしたら、違う Action を作ってしまいましょう。SampleAction2 クラスを作って、中はほとんど SampleAction クラスの中身をパクってみました。違うのはダイアログで出力するメッセージが違うぐらいです。
plugin.xml は次のように、action が 2 つ並んでいます。
<action label="&Sample Action" icon="icons/sample.gif" class="sample.actions.SampleAction" tooltip="Hello, Eclipse world" menubarPath="sampleMenu/sampleGroup" toolbarPath="sampleGroup" id="sample.actions.SampleAction"> </action> <action label="&Sample Action 2" icon="icons/sample.gif" class="sample.actions.SampleAction2" tooltip="Hello, Eclipse world 2" menubarPath="sampleMenu2/sampleGroup2" toolbarPath="sampleGroup" id="sample.actions.SampleAction2"> </action>
これで実行したら...
ちゃんと 2 つのメニューがあります。でも、順番が逆なんですね。で、Sample Menu2 から Sample Action 2 を選んでみると...
ちゃんと SampleAction2 クラスが呼びだされたようです。
今はメニューを 2 つ並べましたが、同じメニューに新たに項目を追加することもできるのでしょうか? さっそく、やってみました。menu タグを
<menu label="Sample &Menu" id="sampleMenu"> <separator name="sampleGroup"> </separator> </menu>
と戻して、action を少し書きかえてみました。
<action label="&Sample Action 2" icon="icons/sample.gif" class="sample.actions.SampleAction2" tooltip="Hello, Eclipse world 2" menubarPath="sampleMenu/sampleGroup" toolbarPath="sampleGroup" id="sample.actions.SampleAction2"> </action>
これで実行してみます。
やはり、ここでも項目の順番は逆になるんですね。