Eclipse RCP:增添工具栏
Eclipse RCP:添加工具栏
Eclipse RCP:添加工具栏 2008-10-13 20:18 在工具栏上添加按钮 (1)启用工具栏 org.eclipsercp.hyperbola/ApplicationWorkbenchWindowAdvisor public void preWindowOpen() { …… configurer.setShowCoolBar(true); …… } (2)添加工具栏按钮 org.eclipsercp.hyperbola/ApplicationActionBarAdvisor protected void fillCoolBar(ICoolBarManager coolBar) { IToolBarManager toolbar1 = new ToolBarManager(coolBar.getStyle()); coolBar.add(toolbar1); toolbar1.add(addContactAction); toolbar1.add(new Separator()); toolbar1.add(addContactAction); ToolBarManager toolbar2 = new ToolBarManager(coolBar.getStyle()); coolBar.add(toolbar2); toolbar2.add(addContactAction); } ICoolBarManager 上有多个 CoolItem 组,每个 ToolBarManager 可以添加到这些 CoolItem 组上。 运行效果如图: 同时显示图像和文字 ICoolBarManager 接口继承 IContributionManager ,用于管理 IActions 和 IContributionItems。JFace 提供了 ActionContributionItem 类,用于将 Action 加入到 IContributionManager。 org.eclipsercp.hyperbola/ApplicationActionBarAdvisor protected void fillCoolBar(ICoolBarManager coolBar) { IToolBarManager toolbar = new ToolBarManager(coolBar.getStyle() | SWT.BOTTOM); coolBar.add(toolbar); ActionContributionItem addContactCI = new ActionContributionItem(addContactAction); addContactCI.setMode(ActionContributionItem.MODE_FORCE_TEXT); toolbar.add(addContactCI); coolBar.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); } ToolBarManager 的 SWT.BOTTOM 或 SWT.RIGHT 用于控制显示文字的位置,为每个 action 创建 ActionConfigurationItem ,并通过其设置 mode 为 ActionContributionItem.MODE_FORCE_TEXT。 在工具栏上添加其他控件 工具栏上不仅能添加按钮,还可以添加其他 SWT 控件,例如 ComboBox。 JFace 提供了 ControlContribution 类,可以将控件添加到 toolbar 或 coolbar。如果添加自定义控件,需要继承 ControlContribution 并实现 createControl(Composite) 方法,在此方法返回目标控件。 org.eclipsercp.hyperbola/ApplicationActionBarAdvisor protected void fillCoolBar(ICoolBarManager coolBar) { IToolBarManager toolbar = new ToolBarManager(coolBar.getStyle()); coolBar.add(toolbar); IContributionItem comboCI = new ControlContribution() { protected Control createControl(Composite parent) { Combo c = new Combo(parent, SWT.READ_ONLY); c.add("one"); c.add("two"); c.add("three"); return c; } }; toolbar.add(comboCI); }