Eclipse rcp e4中的RCP工具栏项目订单更改

Eclipse rcp e4中的RCP工具栏项目订单更改,eclipse-rcp,toolbar,Eclipse Rcp,Toolbar,我正在尝试将RCP Eclipse3应用程序更新到Eclipse4.5目标平台。根据兼容层的不同,存在一些差异。 一个区别是主菜单工具栏中项目的顺序 旧版本: 新版本: 红色标记的图标添加了ActionBarAdvisor,其他图标作为工具栏命令添加到plugin.xml中。 为什么订单会改变?是否需要以编程方式添加工具栏项 更新: 如果使用-clearPersistedState选项,工具栏的顺序与旧版本中的相同。删除该标志将再次创建新版本屏幕截图中显示的工具栏。我也遇到了同样的问题。刚创

我正在尝试将RCP Eclipse3应用程序更新到Eclipse4.5目标平台。根据兼容层的不同,存在一些差异。 一个区别是主菜单工具栏中项目的顺序

旧版本:

新版本:

红色标记的图标添加了ActionBarAdvisor,其他图标作为工具栏命令添加到plugin.xml中。 为什么订单会改变?是否需要以编程方式添加工具栏项

更新:


如果使用-clearPersistedState选项,工具栏的顺序与旧版本中的相同。删除该标志将再次创建新版本屏幕截图中显示的工具栏。

我也遇到了同样的问题。刚创建工作区时,工具栏的顺序正确,下一次启动时,ActionBarAdvisor添加的“我的”按钮位于右侧


你的选择-clearPersistedState对我有用。我很想知道这个问题的起因,如果有人知道这个信息的话

我在Eclipse Bugtracker中挖掘了一些问题后找到了解决方案

在方法fillCoolBarICoolBarManager中,将工具栏项添加到ToolbarManager的实例中,然后将其添加为ToolBarContributionItem,ID为toolbar:org.eclipse.ui.main.toolbar

到coolbar:

@Override
protected void fillCoolBar(ICoolBarManager coolBar)
{
    IToolBarManager manager = new ToolBarManager(SWT.FLAT);
    manager.add(action1);
    ...

    coolBar.add(new ToolBarContributionItem(manager, "toolbar:org.eclipse.ui.main.toolbar"));
}

在plugin.xml中,将工具栏添加到具有相同ID工具栏的menuContribution:org.eclipse.ui.main.toolbar。这将导致在coolbar之后添加其他工具栏。

这应该是一条注释。