Community
Participate
Working Groups
public class MyEditorActionBarContributor extends EditorActionBarContributor { ... ... @Override public void contributeToToolBar(IToolBarManager toolBarManager) { super.contributeToToolBar(toolBarManager); } @Override public void contributeToCoolBar(ICoolBarManager coolBarManager) { super.contributeToCoolBar(coolBarManager); IWorkbenchPage workbenchPage = getPage(); IToolBarManager toolbar = getActionBars().getToolBarManager(); ToolBarContributionItem toolbarItem = new ToolBarContributionItem(toolbar, "rptCoolBar"); coolBarManager.insertAfter("DbToolBar", toolbarItem); toolbar.add(ChangeTypeAction.ACTION); workbenchPage.addPartListener(ChangeTypeAction.ACTION); toolbar.add(PreviewReportAction.ACTION); workbenchPage.addPartListener(PreviewReportAction.ACTION); coolBarManager.update(true); } ... ... } the "coolBarManager.insertAfter" is invalid. it is not insert the coolbar in right place,but always add in the last place. -- Configuration Details -- Product: Eclipse IDE 4.13.0.20190917-0000 (org.eclipse.epp.package.rcp.product)Installed Features: org.eclipse.pde 3.14.100.v20190916-1045
Which order is not right? Can you attach a snap?
I create a RCP program, in the ApplicationActionBarAdvisor.java,i create three coolbar,like this: public class ApplicationActionBarAdvisor extends ActionBarAdvisor { ... ... @Override protected void fillCoolBar(ICoolBarManager coolBar) { super.fillCoolBar(coolBar); IToolBarManager filebar = new ToolBarManager(SWT.FLAT | SWT.RIGHT); ToolBarContributionItem fileContributionItem = new ToolBarContributionItem(filebar, "FileToolBar"); ... ... IToolBarManager dbbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT); ToolBarContributionItem dbContributionItem = new ToolBarContributionItem(dbbar , "DbToolBar"); ... ... IToolBarManager otherbar = new ToolBarManager(SWT.FLAT | SWT.RIGHT); ToolBarContributionItem otherContributionItem = new ToolBarContributionItem(otherbar , "OtherToolBar"); ... ... coolBar.add(fileContributionItem ); coolBar.add(dbContributionItem ); coolBar.add(otherContributionItem ); } ... ... } Then, I create a MyEditorActionBarContributor.java like this: public class MyEditorActionBarContributor extends EditorActionBarContributor { ... ... @Override public void contributeToToolBar(IToolBarManager toolBarManager) { super.contributeToToolBar(toolBarManager); } @Override public void contributeToCoolBar(ICoolBarManager coolBarManager) { super.contributeToCoolBar(coolBarManager); IWorkbenchPage workbenchPage = getPage(); IToolBarManager toolbar = getActionBars().getToolBarManager(); ToolBarContributionItem toolbarItem = new ToolBarContributionItem(toolbar, "rptCoolBar"); coolBarManager.insertAfter("DbToolBar", toolbarItem); toolbar.add(ChangeTypeAction.ACTION); workbenchPage.addPartListener(ChangeTypeAction.ACTION); toolbar.add(PreviewReportAction.ACTION); workbenchPage.addPartListener(PreviewReportAction.ACTION); coolBarManager.update(true); } ... ... } I think the right sequence of ApplicationToolBar should be "FileToolBar,DbToolBar,rptCoolBar,OtherToolBar". but the result sequence is "FileToolBar,DbToolBar,OtherToolBar,rptCoolBar" . So, i think the "coolBarManager.insertAfter" is invalid,it is not insert the coolbar in right place,but always add in the last place.