« ビュー上のコンテキストメニュー(1) | トップページ | コンテキストメニューの公開 »

2004.02.11

ビュー上のコンテキストメニュー(2)

さて,後回しにしていたコンテキストメニューへのメニュー項目の作成方法。これは,ビュー上のコンテキストメニュー(1)で紹介したIMenuListenerインタフェースのmenuAboutToShowメソッド内に記述する。menuAboutToShowメソッドは,コンテキストメニューの表示の直前にEclipseプラットフォームから呼び出される

コンテキストメニューの各メニュー項目で呼び出されるアクションは,Actionクラスのサブクラスとして作成する

  class TestAction extends Action {
    TestAction() {
      super();
      setText("Test Menu");
    }
    public void run() {
      // このメニュー項目が選択されたときの処理
    }
  }

コンテキストメニューに表示される文字列をsetTextメソッドでセットしている。メニュー項目がユーザに選択されたときにはrunメソッドが呼び出される。このrunメソッド内に,実行したい処理を記述する

このアクションをIMenuListenerインタフェースのmenuAboutToShowメソッド内で登録する。

  public void menuAboutToShow(IMenuManager menu) {
    menu.add(new TestAction());
  }

これでメニュー項目がコンテキストメニューに追加される。ちなみに,

  menu.add(new Separator());

セパレータがコンテキストメニューに追加される

上記のコードでは,コンテキストメニューが呼び出されるたびにアクションのインスタンスが生成されなおされているが,通常はアクションのインスタンスは使いまわした方が効率的だし,状況依存で使用可否を変えたりすることもしやすくなるだろう。

|

« ビュー上のコンテキストメニュー(1) | トップページ | コンテキストメニューの公開 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: ビュー上のコンテキストメニュー(2):

« ビュー上のコンテキストメニュー(1) | トップページ | コンテキストメニューの公開 »