2011-12-21 5 views
0

Я новичок в eclipse RCP, а также на самом деле для java. Имейте очень простой вопрос. У меня есть JFace TreeViewer. Я хочу расширить этот узел. Уловка у меня есть только имя узла. и никакой информации кроме этого. Я попытался использовать treeItem, сравнил его строку с именем узла, которое у меня есть, таким образом, я получил узел. Я попытался расширить его в contentprovider дерева. Но я не получаю желаемого результата. Когда я проверяю его в журнале, я понимаю, что он расширен, но он не отображается в средстве просмотра. Я выполняю это в методе display.asyncExec в contentprovider.Расширяющиеся узлы дерева

Я надеюсь, что вопрос ясен.

+0

Что вы подразумеваете под «расширением его в contentprovider»? В [TreeViewer] используется метод 'expandToLevel (Object elementOrTreePath, int level)' (http://help.eclipse.org/indigo/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/jface /viewers/TreeViewer.html), это работает? –

+0

Я попробовал. но тогда я не знаю уровня узла. Я попытался использовать treeItem.setexpanded (true). Хотя кажется, что он работает иногда, он дает некоторые совершенно неожиданные результаты, как и в случае, новент arent просматривается, но после еще одной операции они видны. это может быть проблема с treeViewer.refresh()? Какие еще способы я могу обновить определенный узел, а не все дерево? – Sid

ответ

5

JFace viewers были созданы так, что разработчикам не пришлось бы обходиться с виджетами SWT и вместо этого использовать API более высокого уровня. При использовании провайдера/провайдера/поставщика ярлыков JFace вы должны контролировать, какие узлы находятся в вашем дереве (поэтому, когда вы говорите, что знаете только имя, я предполагаю, что вы напрямую используете SWT Tree). Вы можете прочитать о зрителях JFace от Eclipse help.

Для расширения использования узла дерева expandToLevel(Object elementOrTreePath, int level) метода TreeViewer (уровня находится по отношению к узлу, который расширяется, а не корень дерева).

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