2011-12-27 3 views
0

にルートアイテムを追加する方法これは私が作成するために使用しているサンプルコードでMasterTreeContentProviderITreeContentProviderを実装するクラスであるTreeTreeViewerviewer)中(t)、。私はそれが内容(Child1, Child2, Child3言う)を取得するようにgetElements()を定義しMasterTreeContentProviderクラスインサイドは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()); 

。それは次のように表示されます現在のコードで

 
Child1 
Child2 
Child3 

と私は以下のようにルートと、このように木を見たい:

 
Root 
|-- Child1 
-- Child2 
-- Child3 

方法とこのツリーにはどこにルート要素を追加しますか?

答えて

0

MasterTreeContentProvidergetElements()を実装するだけでは不十分です。表示したい階層を構築するには、getChildren()を実装する必要があります。これらのメソッドに渡すObjectは、この階層を表すカスタムクラスである必要があります。良い例は、Eclipse JFace Tree - Tutorialを参照してください。

+0

getChildren()メソッドを実装し、目的の構造を取得しました。さて、私は新しい子供をツリーに追加しようとしています。ツリービューアを更新するにはどうすればよいですか? – kk331317

+0

@karthikkonduri:視聴者に 'refresh'を呼び出すだけです。さらに質問がある場合は、これを拡張するのではなく新しい質問として投稿する必要があります... – Kai