Показать «входной элемент» ITreeContentProvider в его TreeView

#java #eclipse #eclipse-plugin #contextmenu #eclipse-gef

#java #eclipse #eclipse-плагин #contextmenu #eclipse-gef

Вопрос:

Привет, моя цель — добавить новый подпункт к «входному объекту» ITreeContentProvider. Я говорю об объекте, который вы должны передать функции ITreeContentProviders getElements(Object inputElement).

Есть ли способ сделать так, чтобы inputElement отображался как корневой элемент в TreeView, чтобы я мог его выбрать?

Ответ №1:

Вы должны вызвать TreeViewer.setInput , чтобы изменить корневой элемент дерева.

Если вы хотите продолжать изменять корень дерева, вы могли бы посмотреть на использование org.eclipse.ui.part.DrillDownComposite , которое добавляет некоторые элементы управления для перемещения по дереву:

 DrillDownComposite drillDown = new DrillDownComposite(this, SWT.BORDER);

// Create tree viewer inside drill down.
treeViewer = new TreeViewer(drillDown, SWT.NONE);

drillDown.setChildTree(treeViewer);
  

который выглядит как:

введите описание изображения здесь

Комментарии:

1. Спасибо за подсказку по детализации 😉 Я решил свою проблему, обернув свой корневой элемент в другой класс, его единственная цель — быть корнем дерева. Моя проблема заключалась в том, что мой фактический корень — это элемент, который я хочу отобразить в дереве, но отображение его в getElements приводит к рекурсивному циклу.