2017-09-13 23 views
0

我需要爲我正在處理的項目添加多選功能。 到目前爲止SelectionChangedlistener被使用,但是沒有選擇多選。如何使用CTRL鍵爲TreeViewer啓用多選功能

是否有任何支持Ctrl-click選擇的偵聽器類型,我可以在這裏添加?

這將是我目前最好的選擇。

+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應該可以工作(除非你在使用macd的時候是Cmd + Click) –

相關問題