在 SWT 树中查找特定项目
Find specific item in SWT Tree
我有一个 JFace Treeviewer
(带有底层 SWT Tree
)。
树包含多行和多个级别。
我希望能够找到一个特定的树节点(通过文本标签进行比较),展开到它的级别和 select 项目。
主要问题是我无法循环 TreeItems
因为树在 LAZY 模式下加载所有内容。
也许有一个选项可以通过搜索模型直接进入树项目?
如果您想将树扩展到一个可能尚未显示的节点,您可以使用 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);
您添加到路径的 'elements' 是内容提供者返回的模型对象。
我有一个 JFace Treeviewer
(带有底层 SWT Tree
)。
树包含多行和多个级别。
我希望能够找到一个特定的树节点(通过文本标签进行比较),展开到它的级别和 select 项目。
主要问题是我无法循环 TreeItems
因为树在 LAZY 模式下加载所有内容。
也许有一个选项可以通过搜索模型直接进入树项目?
如果您想将树扩展到一个可能尚未显示的节点,您可以使用 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);
您添加到路径的 'elements' 是内容提供者返回的模型对象。