Summary: | When contribute a CoolBar, the order is not right | ||
---|---|---|---|
Product: | [Eclipse Project] Platform | Reporter: | gong md <gongmd> |
Component: | UI | Assignee: | Platform-UI-Inbox <Platform-UI-Inbox> |
Status: | NEW --- | QA Contact: | |
Severity: | enhancement | ||
Priority: | P3 | CC: | daniel_megert, Lars.Vogel, rolf.theunissen, Vikas.Chandra |
Version: | 4.14 | Keywords: | api, ui |
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Windows 10 | ||
Whiteboard: |
Description
gong md
2019-12-02 21:43:30 EST
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. |