2011-11-17 120 views
1

我試圖從我的CheckboxTreeViewer中獲取一個對象或對象。如何從CheckboxTreeViewer獲取對象/對象?

我設置了內容提供者來提供數據,並且我可以從選定的項目中輕鬆獲取數據。我認爲這將是這樣的: treeViewer.getElements();

但這部作品獲得所選對象:

IStructuredSelection ss = (IStructuredSelection) treeViewer.getSelection(); 
if (ss.size() == 1) { 
    Object selectedObject = ss.getFirstElement(); 

    if (selectedObject instanceof IndividualNode) { 
    individual = ((IndividualNode) selectedObject).getIndividual();     
    } 
} 

,讓我我的對象我從選擇想要的。

知道如何從treeViewer中獲取對象(如果未選中)?

有喜歡

treeViewer.getCheckedElements(); 

返回對象[]的方法。

卻找不到像

treeViewer.getElements(); 

感謝很多東西,

布蘭登

回答

0

我不認爲有這樣的事。最接近的是StructureViewer中的elementMap字段,但這是私人的,所以你甚至不能創建自己的子類並獲取這些信息。

3

想通了。

訪問樹項目使用:

TreeItems[] treeItems = treeViewer.getTree().getItems(); 

然後用得到的getData對象()

for(int i = 0; i < treeItems.length; i++){ 
    Object itemObject = treeItems[i].getData(); 

    //Then cast to the object type  
    Foo foo = (Foo) itemObject; 
} 

此工程的TreeViewer和CheckboxTreeViewer。

+0

您可以將其作爲答案。 謝謝! :) – f1v3