如何在Eclipse RCP中向Window菜单添加视图?

cgr*_*gcn 2 eclipse-plugin menu view eclipse-rcp

我想将自定义视图添加到"窗口"菜单中.此代码仅添加打开的视图

    IMenuManager pencereler = new MenuManager("sample");
    pencereler.add(ContributionItemFactory.VIEWS_SHORTLIST.create(window));
    viewMenu.add(pencereler);
Run Code Online (Sandbox Code Playgroud)

如果我打开自定义视图,则会将其添加到此菜单中.但是,我想在此菜单中始终显示我的自定义视图,而不仅仅是在打开它之后.

那么我可以从视图中创建"ContributionItem"还是有任何其他方式,例如向"plugin.xml"添加一些行或将我的视图的id添加到任何扩展名?

s.d*_*s.d 6

假设您已正确包含Window菜单,这就是它的工作原理.

添加命令

  1. plugin.xml中,选项卡Extensions,添加扩展点org.eclipse.ui.commands.

  2. org.eclipse.ui.commands添加新命令(右键单击扩展点>新建>命令).给命令一个id(例如," myplugin.openCustomView ")和一个名称(例如," Open Custom View ").

为命令添加处理程序

对于新创建的命令" myplugin.openCustomView ",您将必须创建一个处理程序,它将以编程方式打开视图.

  1. plugin.xml中,选项卡Extensions,添加扩展点org.eclipse.ui.handlers.

  2. org.eclipse.ui.handlers添加处理程序(右键单击扩展点> New>处理程序).对于处理程序的commandId,键入新创建的命令的名称(myplugin.openCustomView)或浏览它.在字段类中,键入要创建的处理程序类的名称(例如," OpenCustomViewHandler "),然后单击超链接的字段名称.这将打开New Class Wizard.

  3. 让新类(名称已经填写)扩展org.eclipse.core.commands.AbstractHandler.

  4. 将开放视图逻辑添加到新创建的类的execute()方法中,以便类看起来大致如下(当然,使用视图ID而不是myplugin.mycustomviewID).

    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;
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

将命令添加到菜单

  1. plugin.xml中,选项卡Extensions,添加扩展点org.eclipse.ui.menus.

  2. org.eclipse.ui.menus添加新的menuContribution(右键单击扩展点> New> menuContribution).

  3. menuContribution提供以下locationURI:menu:window?after = additions(这将把贡献放在Window菜单中,如果你已正确包含它).

  4. 在新创建的menuContribution中,添加一个命令(右键单击menuContribution> New>命令).浏览commandId,或手动输入(myplugin.openCustomView).给menuContribution一个id(例如," myplugin.menu.openCustomView "),并将样式设置为" push ".