2012-06-12 2 views
0

Я использую общую структуру навигатора (CNF) для моего проекта Explorer. Я установил поставщика контента и поставщика меток для просмотра дерева. Когда данные меняются внутри приложения, мне также нужно обновить древовидное представление (например, как добавлять узлы, удаляя узлы).Обновление просмотра дерева

В этом случае я попытался обновить средство просмотра деревьев. И операция обновления работает успешно. Но после операции обновления, выбор древовидных зрителей попадает в самый верхний родительский узел в средстве просмотра. Но вместо этого мне нужен выбор на недавно добавленном узле или родительском узле недавно добавленного узла. Как это можно достичь?

ответ

0

Вы можете вручную установить выбор и открыть его в окне просмотра дерева:

//after the refresh operation 
treeViewer.setSelection(new StructuredSelection(newlyAddedNode, true)); 
+0

Привет лля, Thnks за ценный ответ. Но я не получаю желаемого результата. Когда я выполняю обновление, средство просмотра дерева автоматически сворачивается в корневой узел дерева, и выбор производится на первом узле дерева. –

+0

Кроме того, я попытался обновить узел, на котором выполняется операция обновления, с помощью treeViewer.refresh (node, true). Но ничего не происходит. Узел не обновляется. –

+0

проверить #equals реализация класса newAddedNode –

0

TreeViewer требует, чтобы вы реализуете хэш-код() и Equals() на объектах в вашем средстве просмотра. Кроме того, вы должны предоставить IElementComparer для просмотра.

Hat наконечник на форумах Eclipse: http://www.eclipse.org/forums/index.php/t/166563/

Смежные вопросы