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>これで実行してみます。
やはり、ここでも項目の順番は逆になるんですね。


