2

カスタム ビューを [ウィンドウ] メニューに追加したいと考えています。このコードは、開いているビューのみを追加しています

    IMenuManager pencereler = new MenuManager("sample");
    pencereler.add(ContributionItemFactory.VIEWS_SHORTLIST.create(window));
    viewMenu.add(pencereler);

カスタム ビューを開くと、このメニューに追加されます。ただし、開いた後だけでなく、常にこのメニューにカスタム ビューを表示したいと考えています。

ビューから「ContributionItem」を作成できますか、または「plugin.xml」にいくつかの行を追加するか、ビューのIDを拡張子に追加するなどの他の方法はありますか?

4

1 に答える 1

6

Windowメニューが正しく含まれていると仮定すると、これがどのように機能するかです。

コマンドを追加する

  1. plugin.xmlの [拡張機能] タブで、拡張ポイントを追加しますorg.eclipse.ui.commands

  2. に、新しいコマンドorg.eclipse.ui.commandsを追加します(拡張ポイントを右クリック > [新規] > [コマンド] )。コマンドにID (例: " myplugin.openCustomView ") と名前(例: " Open Custom View ") を付けます。

コマンドのハンドラーを追加する

新しく作成されたコマンド「myplugin.openCustomView」については、プログラムでビューを開くハンドラーを作成する必要があります。

  1. plugin.xmlの [拡張機能] タブで、拡張ポイントを追加しますorg.eclipse.ui.handlers

  2. するには、ハンドラーorg.eclipse.ui.handlers追加します(拡張ポイントを右クリック > [新規] > [ハンドラー] )。ハンドラーのcommandIdには、新しく作成したコマンド ( myplugin.openCustomView ) の名前を入力するか、参照して探します。フィールドクラスに、作成するハンドラー クラスの名前 (「OpenCustomViewHandler」など) を入力し、ハイパーリンクされたフィールド名クラスをクリックします。これにより、新しいクラス ウィザードが開きます。

  3. 新しいクラス (名前は既に入力されています) を extends しorg.eclipse.core.commands.AbstractHandlerます。

  4. 新しく作成されたクラスのexecute()メソッドにビューを開くロジックを追加して、クラスがほぼ次のようになるようにします (もちろん、 myplugin.mycustomviewIDの代わりにビュー ID を使用します)。

    import org.eclipse.core.commands.AbstractHandler;
    import org.eclipse.core.commands.ExecutionEvent;
    import org.eclipse.core.commands.ExecutionException;
    import org.eclipse.ui.PartInitException;
    import org.eclipse.ui.handlers.HandlerUtil;
    
    public class OpenViewHandler extends AbstractHandler {
    
      @Override
      public Object execute(ExecutionEvent event) throws ExecutionException {
        try {
          HandlerUtil.getActiveWorkbenchWindowChecked(event).
            getActivePage().showView("myplugin.mycustomviewID");
        } catch (PartInitException e) {
          e.printStackTrace();
        }
        return null;
      }
    }
    

コマンドをメニューに追加する

  1. plugin.xmlの [拡張機能] タブで、拡張ポイントを追加しますorg.eclipse.ui.menus

  2. org.eclipse.ui.menus、新しいmenuContributionを追加します(拡張ポイントを右クリック > New > menuContribution )。

  3. menuContributionに次のlocationURIを指定します: menu:window?after=additions (正しく含まれていれば、ウィンドウメニューにコントリビューションが配置されます)。

  4. 新しく作成したmenuContributionに、コマンドを追加します( menuContribution > New > command を右クリックします)。commandIdを参照するか、手動で入力します ( myplugin.openCustomView )。menuContributionID (例: " myplugin.menu.openCustomView ") を与え、スタイルを " push " に設定します。

于 2013-02-27T13:09:28.757 に答える