在SWT树中查找特定项目

时间:2015-05-26 18:24:50

标签: java eclipse swt jface

我有一个JFace Treeviewer(底层SWT Tree) 树包含多行和多个级别。

我希望能够找到特定的树节点(按文字标签进行比较),展开到它的级别并选择项目。

主要问题是我无法循环TreeItems,因为树在LAZY模式下加载所有内容。

也许可以通过搜索模型直接获取树项目?

1 个答案:

答案 0 :(得分:1)

如果要将树展开到可能尚未显示的节点,可以使用TreePath告诉查看者节点的完整路径。 类似的东西:

List<Object> path = new ArrayList<>();

path.add(root element);

... path.add(intermediate elements in tree);

path.add(node element);  

TreePath treePath = new TreePath(path.toArray());

viewer.expandToLevel(treePath, 1);

您添加到路径中的“元素”是内容提供商返回的模型对象。