是否可以在VIRTUAL模式下以SWT樹的形式編程觸發setData事件?如何以虛擬模式在SWT樹上以編程方式觸發setData事件
3
A
回答
1
notifyListeners
-Widget中的方法是這樣做的。
tree.notifyListeners(SWT.SetData, <EventData>)
你必須構建並交出適當的事件。
0
山姆鄭,兩年下來路上,我當然希望你找到了你的答案,但在這裏它是爲真理而其他求職者:
使用Tree.clear(index,boolean)
或Tree.clearAll(boolean)
方法根級別項目,TreeItem.clear(index,boolean)
或TreeItem.clear(boolean)
方法的根目錄下的項目。
+0
這不適合我,它不觸發'SWT.SetData'事件。雖然Fabian的[建議](http://stackoverflow.com/a/10626178/517705)確實[work](http://stackoverflow.com/a/33869980/517705)。 – Sk8erPeter
1
我只是想補充Fabian Zeindl的answer,這對我很有幫助,以防這些附加信息對某人有用。
當使用SWT.VIRTUAL
標誌時,元素在滾動到視圖中時按需加載爲TreeItem
。我想選擇TreeViewer
中尚未作爲TreeItem
加載的元素,這使得viewer.setSelection()
無法工作。
這意味着給定的元素必須顯式加載爲TreeItem。
下面是該簡化的示例代碼工作:
final Tree treeViewerTree = treeViewer.getTree();
// we now assume that the indexOfElementToSelect value is set to a correct value (which is a lower value than treeViewerTree.getItemCount()!!)
TreeItem treeItem = treeViewerTree.getItem(indexOfElementToSelect);
final boolean isVirtualTree = (treeViewerTree.getStyle() & SWT.VIRTUAL) != 0;
if(isVirtualTree) {
// trigger SWT.SetData event programmatically on SWT tree in VIRTUAL mode which loads the item explicitly
Event virtualTreeEvent = new Event();
virtualTreeEvent.index = indexOfElementToSelect;
virtualTreeEvent.item = treeItem;
// triggering SWT.SetData programmatically
treeViewerTree.notifyListeners(SWT.SetData, virtualTreeEvent);
}
treeViewer.setSelection(new StructuredSelection(........), true);
相關問題
- 1. 如何以編程方式模擬Meego中的觸摸事件?
- 2. 以編程方式觸發MouseLeftButtonDown事件
- 3. 以編程方式觸發ACTION_POINTER_DOWN事件
- 4. 以編程方式觸發ontouch事件
- 5. jQuery以編程方式觸發事件
- 6. jQuery - 以編程方式觸發事件
- 7. 以編程方式觸發Sitecore事件
- 8. 以編程方式顯示JFace/SWT選擇事件 - 樹
- 9. 如何以編程方式在javascript中觸發dblclick事件?
- 10. 如何在JavaFX中以編程方式觸發鼠標事件?
- 11. 如何在jQuery中以編程方式觸發事件?
- 12. 如何在android中以編程方式觸發Onclick事件?
- 13. 以編程方式在Linux上觸發inotify事件
- 14. 在jQuery UI對話框上以編程方式觸發事件
- 15. 在Android設備上以編程方式觸發搖動事件
- 16. 以編程方式切換Windows虛擬觸控板/觸控板
- 17. 如何以編程方式觸發`valueChanges`?
- 18. 如何以編程方式觸發seque?
- 19. 如何以編程方式觸發OnTouchListener
- 20. iPhone,如何以編程方式觸發按鈕事件
- 21. 如何以編程方式觸發mx:Button單擊事件?
- 22. 如何以編程方式觸發ASP.net頁面中的事件
- 23. 如何以編程方式觸發Twitter意向事件?
- 24. 如何以編程方式觸發點擊事件?
- 25. 如何以編程方式觸發onclick事件
- 26. 如何以編程方式觸發選擇事件
- 27. 如何以編程方式觸發離子中的doubletap事件?
- 28. 以編程方式觸發Android上按鈕的點擊事件
- 29. Android:在設備上以編程方式模擬/模擬呼叫
- 30. 在Coldfusion中以編程方式觸發事件
這不是我想要的,因爲使用此功能,必須要創建的事件的數據。無論如何,我終於繞過了這個問題。 –
@三正:怎麼樣? – Sk8erPeter
謝謝,Fabian,它爲我工作。 +1! [Here](http://stackoverflow.com/a/33869980/517705)是我的案例的簡短描述。 – Sk8erPeter