【问题标题】:"Run" menu is placed before other menus in an Eclipse RCP IDE project在 Eclipse RCP IDE 项目中,“运行”菜单位于其他菜单之前
【发布时间】:2021-09-19 00:45:29
【问题描述】:

我在 Eclipse 3 中为 RCP 和 RAP 开发人员开发了一种自定义语言的 IDE。因此,我尽可能且适用地使用了 IDE 插件。本周,我正忙于使用 Eclipse 将应用程序迁移到 Eclipse e4(带有兼容层),用于 RCP 和 RAP 开发人员 2021-6。到目前为止一切正常。

我无法弄清楚的一件事是如何将“运行”菜单放置在我想要的位置。它作为菜单栏中的第一个菜单放置。

另外一个奇怪的事情是,如果我使用 Eclipse 2020-6 而不是 2021-6 作为开发环境,搜索菜单的位置也会出错。

问题在于运行和搜索菜单来自 IDE 插件,它们是作为操作实现的,因此我无法根据菜单指定任何顺序。对于所有其他菜单,我定义了适当的menuContibutions、命令和处理程序。对于后者,我可以通过指定?before=?after= 来决定每个菜单应该在plugin.xml 的帮助下放置在哪里。

我搜索了与添加菜单、重新排序菜单、将操作与命令和处理程序混合等有关的 stackoverflow 问题,但我找不到如何将运行菜单放置在我想要的位置的解决方案。

我希望有类似 ID 的东西,我可以在 plugin.xml 中指定为 ?before=?after=,但我认为这不适用于操作。

谁能给我一个提示,我如何将所有菜单按所需的顺序排列?或者当混合动作和命令+处理程序时这根本不可能?是否有任何操作包装功能以便我在 plugin.xml 中的 menuContibutions 中指定 ?before=?after=

【问题讨论】:

    标签: eclipse menu ide action rcp


    【解决方案1】:

    如果您指的是由org.eclipse.debug.ui 插件添加的运行菜单,这是使用和操作集创建的:

       <extension point="org.eclipse.ui.actionSets">
            <actionSet
                label="%BreakpointActionSet.label"
                visible="false"
                id="org.eclipse.debug.ui.breakpointActionSet">
             <menu
                   label="%RunMenu.label"
                   path="additions"
                   id="org.eclipse.ui.run">
    

    在主菜单additions位置添加运行菜单。

    org.eclipse.ui.internal.ide.WorkbenchActionBuilder 创建的标准主菜单创建的主菜单如下:

    @Override
    protected void fillMenuBar(IMenuManager menuBar) {
        menuBar.add(createFileMenu());
        menuBar.add(createEditMenu());
        menuBar.add(createNavigateMenu());
        menuBar.add(createProjectMenu());
    
        // This line creates the 'additions' position
        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
    
        menuBar.add(createWindowMenu());
        menuBar.add(createHelpMenu());
    }
    

    【讨论】:

      【解决方案2】:

      感谢greg-449,我终于弄明白了。下面的定义终于解决了我的问题(-->?before=org.eclipse.ui.run):

      <extension
           point="org.eclipse.ui.menus">
        <menuContribution
              allPopups="false"
              locationURI="menu:org.eclipse.ui.main.menu?before=org.eclipse.ui.run">
           <menu
                 id="at.boi.tabex.dvl.mainmenu.file"
                 label="&amp;File">
           </menu>
           <menu
                 id="at.boi.tabex.dvl.mainmenu.edit"
                 label="&amp;Edit">
           </menu>
           <menu
                 id="at.boi.tabex.dvl.mainmenu.project"
                 label="&amp;Project">
           </menu>
           <menu
                 id="at.boi.tabex.dvl.mainmenu.tools"
                 label="&amp;Tools">
           </menu>
           <menu
                 id="at.boi.tabex.dvl.mainmenu.table"
                 label="&amp;Ta&amp;ble">
           </menu>
        </menuContribution>
      </extension>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 2011-08-12
        • 2013-04-19
        • 2014-09-08
        • 2019-09-19
        • 1970-01-01
        相关资源
        最近更新 更多