ComboBoxViewerCellEditor和AutoCompleteField不起作用

时间:2016-08-24 14:31:12

标签: java swt eclipse-rcp

我有一个ComboBoxViewerCellEditor,它有一个AutoCompleteField。

我将其定义为:

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

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

我有什么遗失的吗?我应该添加一些听众吗?

谢谢,

路易莎

1 个答案:

答案 0 :(得分: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是私有布尔类型变量。