2016-08-24 12 views
1

私は、ComComBoxBoxViewerCellEditorにAutoCompleteFieldを持っています。ComboBoxViewerCellEditorとAutoCompleteFieldが機能しません。

私はとして定義さ:オートコンプリート値が表示されていると私はキーボードを介して、それを選択した場合、私のコンボが値を選択している

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

。問題は、あらかじめ入力したリストでマウスをダブルクリックすることです。これはコンボに何の影響も与えず、値を選択しません。

紛失しているものがありますか?リスナーを追加する必要がありますか?

は、あなたがマウスからそれを選択しているとき、実際にあなたの焦点は、セルエディタから失われ

ルイサ

答えて

1

、ありがとう、それが影響していない理由thatsの。

セルエディタには、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())を返します。これを変更して別の振る舞いにする必要がありますか?ありがとうございました –

関連する問題