ToolBarManager是对SWT的ToolBar控件的封装,用它可以省去对这些底层控件的关注,就像使用了TableViewer,就不需要再去关心TableItem这些繁琐的细节一样。
在一般情况下我们都是向ToolBarManager里面添加Action,显示的效果就是一个Button。如果希望显示一个Combo或者Text这样的控 件,就不能向其中添加Action了,而且又不想使用ToolBar处理具体的ToolItem,以下是两种解决办法:
第一种:
构建自己的ControlContribution 就可以很容易的实现这样的功能。
首先要继承ControlContribution类,实现其protected Control createControl(Composite parent)方法,在这个方法中构建自己希望的控件,只要是Control的子类就都可以,然后将其添加到ToolBarManager里面即可。
以下即为在View的工具栏中添加自定义控件Combo
第一步、新建类 ComboContribution,并继承ControlContribution类,然后实现其protected Control createControl(Composite parent)方法,在这个方法中构建Combo控件
在一般情况下我们都是向ToolBarManager里面添加Action,显示的效果就是一个Button。如果希望显示一个Combo或者Text这样的控 件,就不能向其中添加Action了,而且又不想使用ToolBar处理具体的ToolItem,以下是两种解决办法:
第一种:
构建自己的ControlContribution 就可以很容易的实现这样的功能。
首先要继承ControlContribution类,实现其protected Control createControl(Composite parent)方法,在这个方法中构建自己希望的控件,只要是Control的子类就都可以,然后将其添加到ToolBarManager里面即可。
以下即为在View的工具栏中添加自定义控件Combo
第一步、新建类 ComboContribution,并继承ControlContribution类,然后实现其protected Control createControl(Composite parent)方法,在这个方法中构建Combo控件
class
ComboContribution
extends
ControlContribution
{
public ComboContribution(String id){
super(id);
}
@Override
protected Control createControl(Composite parent){
Combo combo = new Combo(parent, SWT.READ_ONLY);
combo.setItems(new String[]{ "First", "Secend", "Third" });
combo.addSelectionListener(new SelectionListener(){
public void widgetDefaultSelected(SelectionEvent e) {
// TODO Auto-generated method stub
public ComboContribution(String id){
super(id);
}
@Override
protected Control createControl(Composite parent){
Combo combo = new Combo(parent, SWT.READ_ONLY);
combo.setItems(new String[]{ "First", "Secend", "Third" });
combo.addSelectionListener(new SelectionListener(){
public void widgetDefaultSelected(SelectionEvent e) {
// TODO Auto-generated method stub