如何访问IContributionItem的组合框

时间:2012-04-26 16:48:29

标签: java eclipse eclipse-plugin swt

我设法按照下面列出的代码在IToolBarManager上添加一个组合框。现在有没有人知道如何从该范围的oustide访问IContributionItem内部创建的组合框?

亲切的问候, KYRIAKOS

IToolBarManager mgr = this.getViewSite().getActionBars().getToolBarManager();
IContributionItem comboCI = new ControlContribution("test") {
    protected Control createControl(Composite parent) {

        final Combo c = new Combo(parent, SWT.READ_ONLY);
        c.add("one");
        c.add("two");
        c.add("three");
        c.addSelectionListener(new SelectionAdapter() {
             public void widgetSelected(SelectionEvent e) {
                 c.add("four");
              }
              });
        return c;
    }
};        

mgr.add(comboCI);

1 个答案:

答案 0 :(得分:4)

将combo变量放在ControlContribution类或IContributionItem接口中,并创建一个get方法。

class ControlContribution implements IContributionItem {

    protected Combo combo;

    public Combo getCombo(){
        return combo;
    }
}

这样,您就不需要在匿名类中声明它。

IContributionItem comboCI = new ControlContribution("test") {
protected Control createControl(Composite parent) {

    combo = new Combo(parent, SWT.READ_ONLY);
    combo.add("one");
    combo.add("two");
    combo.add("three");
    combo.addSelectionListener(new SelectionAdapter() {
         public void widgetSelected(SelectionEvent e) {
             combo.add("four");
          }
          });
    return combo;
}
};  

你可以致电

comboCI.getCombo();

显然,IContributionItem接口需要有getCombo()方法