在树查看器中设置折叠节点上的选择

Set selection on collapsed nodes in tree viewer

我遇到了以下问题:我创建了一个树查看器并绑定了一个数据模型。树完全倒塌了。
现在我想 select 树中的特定节点:

treeViewer.setSelection(new StructuredSelection(person), true);

Person 是我在数据模型中的自定义对象之一。如果展开树,将找到并 select 编辑该节点。
因为该节点是另一个节点(3.level)的子节点,所以如果树折叠则不会发生任何事情。
是否可以select/focus节点,展开父项等?
我知道我可以递归遍历所有节点并尝试找到正确的节点,但是有没有一种方法可以为我完成这项工作?或者可能有不同的 setSelection 调用让我扩展树路径?

您可以为此使用 TreeSelection。这将 aTreePath 作为参数 - 它列出了路径中的所有节点。

TreePath path = new TreePath(... array of nodes from root to person ...);

treeViewer.setSelection(new TreeSelection(path), true);