#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 приводит к рекурсивному циклу.