2017-09-13 13 views
0

私が取り組んでいるプロジェクトに複数選択機能を追加する必要があります。 今までSelectionChangedlistenerが使用されていますが、複数選択のオプションはありません。Ctrlを押しながらTreeViewerを複数選択する方法

ここに追加できるCtrlキーを押しながら選択することをサポートするリスナータイプはありますか?

現在、私の最善の選択肢となります。

+0

はいああ、あなたに感謝 –

答えて

2

例えば、複数選択を可能にSWT.MULTIスタイルフラグでツリービューアを作成し、

するには、次の

TreeViewer viewer = new TreeViewer(parent, SWT.MULTI); 

ISelectionChangedListenerは単一選択だけでなく、マルチ選択に通知されます。選択された要素はSelectionChangedEvent::getSelectionに保持されます。

ISelectionChangedListener listener = new ISelectionChangedListener() { 
    @Override 
    public void selectionChanged(SelectionChangedEvent event) { 
    IStructuredSelection selection = (IStructuredSelection)event.getSelection(); 
    List<?> selectedElements = selection.toList(); 
    } 
}; 

あなたはバージョン4.8のRCPのプラットフォームをターゲットにしている場合は、後にのみ、あなたもevent.getStructuredSelection()を使用して、自分に余裕ができます。

選択されたすべての要素を抽出し、選択リスナーの例については、以下のコードを参照してください。キャスト。たとえば、次のように

ISelectionChangedListener listener = new ISelectionChangedListener() { 
    @Override 
    public void selectionChanged(SelectionChangedEvent event) { 
    IStructuredSelection selection = event.getStructuredSelection(); 
    List<?> selectedElements = selection.toList(); 
    } 
}; 
+0

はい、私は、この文脈での決定要因として、CTRLキーを設定するのですか? 選択が実際に起こるようにする –

+1

@MadalinBranea SWT.MULTIが使用されるとCtrl + Clickが機能するはずです(Cmd +クリック時にmacOSを使用している場合を除く) –

関連する問題