Как добавить корневой элемент в дерево SWT - PullRequest
0 голосов
/ 27 декабря 2011

Это пример кода, который я использую для создания Tree (t) в TreeViewer (viewer), где MasterTreeContentProvider - это класс, реализующий ITreeContentProvider.

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()); 

Внутри класса MasterTreeContentProvider я определил getElements() таким образом, чтобы он получал содержимое (скажем, Child1, Child2, Child3).

При представленном коде он отображается вследующим образом:

Child1
Child2
Child3

и я хотел бы посмотреть дерево таким образом, с корнем, как показано ниже:

Root
|-- Child1
 -- Child2
 -- Child3

Как и где мне добавить корневой элемент кэто дерево?

1 Ответ

0 голосов
/ 27 декабря 2011

Недостаточно реализовать getElements() в вашем MasterTreeContentProvider.Вы должны реализовать getChildren() для построения иерархии, которую вы хотите показать.Object, который вы передаете этим методам, должен быть пользовательским классом, который представляет эту иерархию.См. Eclipse JFace Tree - Учебное пособие для хорошего примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...