2011-12-27 77 views
0

這是我使用創建示例代碼Treet)在TreeViewerviewer),其中MasterTreeContentProvider是實現ITreeContentProvider類。如何根項添加到SWT樹

Tree t = toolkit.createTree(client, SWT.NULL); 
GridData gd = new GridData(GridData.FILL_BOTH); 
gd.heightHint = 20; 
gd.widthHint = 100; 
t.setLayoutData(gd); 
toolkit.paintBordersFor(client); 
section.setClient(client); 
final SectionPart spart = new SectionPart(section); 
managedForm.addPart(spart); 
viewer = new TreeViewer(t); 
viewer.addSelectionChangedListener(new ISelectionChangedListener() 
{ 
    public void selectionChanged(SelectionChangedEvent event) 
    { 
     managedForm.fireSelectionChanged(spart, event.getSelection()); 
    } 
}); 
viewer.setContentProvider(new MasterTreeContentProvider()); 
viewer.setInput(page.getEditor().getEditorInput()); 

裏面我以這樣的方式,它得到的內容來定義getElements()MasterTreeContentProvider類(比如Child1, Child2, Child3)。

隨着本次代碼它就會顯示在下列方式:

 
Child1 
Child2 
Child3 

,我想看看樹以這種方式,根如下:

 
Root 
|-- Child1 
-- Child2 
-- Child3 

如何和我在哪裏添加一個根元素到這棵樹?

回答

0

僅在您的MasterTreeContentProvider中實施getElements()是不夠的。您必須執行getChildren()才能構建要顯示的層次結構。您傳遞給這些方法的Object應該是代表此層次結構的自定義類。例如Eclipse JFace Tree - Tutorial就是一個很好的例子。

+0

實現了getChildren()方法並獲得了所需的結構。現在,我正在嘗試將新的孩子添加到樹中。我如何更新樹型瀏覽器? – kk331317 2011-12-29 07:50:36

+0

@karthikkonduri:只需在瀏覽器中調用'refresh'。如果你還有其他問題,你應該將它們作爲新問題發佈,而不是擴展這個問題...... – Kai 2011-12-29 14:52:01