2016-08-24 96 views
1

我有一个ComboBoxViewerCellEditor有一个AutoCompleteField。ComboBoxViewerCellEditor和AutoCompleteField不起作用

我将其定义为:

new AutoCompleteField(cellEditor.getControl(),new CComboContentAdapter(),values); 

自动完成值被示出,并且如果我通过键盘选择它我的组合被选择的值。问题是当我在预填充列表上双击鼠标时。这对组合没有任何影响,它不会选择值。

有什么我失踪?我应该添加一些监听器吗?

谢谢

路易莎

回答

1

其实,当你从你的鼠标焦点从单元格编辑器失去了选择它,这就是为什么它没有影响。

单元格编辑器有一个类似dependsOnexternalFocus()的方法。它默认返回true。覆盖它并从中返回false。

里面你的编辑器类的构造函数下面创建自己的内容适配器和地点代码:

contentProposalAdapter.addContentProposalListener(new IContentProposalListener2() 
    { 

     public void proposalPopupClosed(ContentProposalAdapter adapter) 
     { 
      popupOpen = false; 
     } 

     public void proposalPopupOpened(ContentProposalAdapter adapter) 
     { 
      popupOpen = true; 
     } 
    }); 

,并覆盖

@Override 
    protected void focusLost() 
    { 
     if (!popupOpen) 
     { 
      super.focusLost(); 
     } 
    } 

popupOpen是私有的布尔类型的变量。

+0

我重写dependsOnExternalFocusListener(),但它不会在我使用鼠标时进入。也许我也应该告诉我在ObservableValueEditingSupport子类中(在getCellEditor()方法中)使用此CellEditor。在doCreateCellEditorObservable中,我返回一个ViewersObservable.observeSingleSelection(comboCellEditor.getViewer())。我应该修改这个行为不同吗?谢谢 –