工具栏上不仅能添加按钮,还可以添加其他 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);
}