我有一个具有AutoCompleteField的ComboBoxViewerCellEditor。
我将其定义为:
new AutoCompleteField(cellEditor.getControl(),new CComboContentAdapter(),values);
如果我通过键盘选择了自动完成值,则我的组合正在选择一个值。问题是当我用鼠标双击预填充列表时。这对组合没有任何影响,它不会选择值。
我有什么想念的吗?我应该添加一些监听器吗?
谢谢,
路易莎
最佳答案
实际上,当您从鼠标中选择它时,您的焦点从单元格编辑器中丢失了,这就是为什么它不受影响的原因。
单元格编辑器有一种方法,类似于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是私有布尔类型变量。