首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeViewer展开/崩溃-ToLevel

TreeViewer展开/崩溃-ToLevel
EN

Stack Overflow用户
提问于 2014-06-03 05:19:01
回答 1查看 571关注 0票数 0

我有一个TreeViewer,它的项目我试图展开或折叠一个级别。我的TreeViewer包含具有相同名称的项。例如:

代码语言:javascript
复制
Node 1
  -> Node A
      -> Node B
         -> Node C
Node 2
  -> Node A
      -> Node B
         -> Node C

即使我选择第二个节点A展开或折叠,它仍然会展开或折叠第一个节点A。

我的扩展代码是:

代码语言:javascript
复制
ITreeSelection selection = (ITreeSelection) tree.getSelection();
TreeNode selectedItem = (TreeNode) selection.getFirstElement();
tree.expandToLevel(selectedItem, 1);

我的崩溃代码是:

代码语言:javascript
复制
ITreeSelection selection = (ITreeSelection) tree.getSelection();
TreeNode selectedItem = (TreeNode) selection.getFirstElement();
TreeNode[] children = selectedItem.getChildren();
if (children != null) {
    for (TreeNode child : children) {
         tree.collapseToLevel(child, 1);
    }
}

为了使TreeViewer展开和折叠正确的选定项,我可以做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-03 07:58:13

必须确保树中同名不同对象的equals方法不返回true。如果equals为两个不同的对象返回true,树查看器将无法找到正确的树项。与往常一样,您必须使hashCode与equals实现兼容。

如果不能修复对象中的equals方法,可以使用IElementComparer为树查看器创建特殊的比较。使用TreeViewer.setComparer设置树的比较器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24007619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档