首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Eclipse RCP IDE项目中,"Run“菜单放在其他菜单之前

在Eclipse RCP IDE项目中,"Run“菜单放在其他菜单之前
EN

Stack Overflow用户
提问于 2021-07-08 22:23:29
回答 2查看 22关注 0票数 0

我已经为RCP和RAP开发人员在Eclipse3中为一种自定义语言开发了一个IDE。因此,只要有可能,只要适用,我就使用IDE插件。这周,我忙于使用Eclipse for RCP和RAP developers 2021-6将应用程序迁移到Eclipse (具有兼容层) e4。到目前为止,一切都运行得很好。

有一件事我搞不懂,那就是我怎么才能把"run“菜单放在我想要的地方。它将作为菜单栏中的第一个菜单放置。

顺便说一句,另一件奇怪的事情是,如果我使用Eclipse 2020-6而不是2021-6作为开发环境,那么搜索菜单也会出现在错误的位置。

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

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

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

谁能给我一个提示,我怎样才能把所有的菜单都按所需的顺序排列?或者,当混合actions和commands+handlers时,这是不可能的吗?为了让我在plugin.xml的menuContibution中指定?before=?after=,有没有什么动作包装功能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-08 23:53:47

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

代码语言:javascript
复制
   <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处添加Run菜单。

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

代码语言:javascript
复制
@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());
}
票数 0
EN

Stack Overflow用户

发布于 2021-07-09 15:08:51

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

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68303514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档