我正在为我的项目浏览器视图使用通用导航器框架(CNF)。我已经为树查看器设置了内容提供者和标签提供者。当我的应用程序内部数据发生变化时,我还需要更新树视图(例如,就像添加节点、删除节点一样)。
对于这种情况,我尝试刷新树查看器。并且刷新操作成功。但是在刷新操作之后,树查看器选择会到达查看器中最顶层的父节点。但相反,我需要在新添加的节点或新添加的节点的父节点上进行选择。如何做到这一点?
我正在为我的项目浏览器视图使用通用导航器框架(CNF)。我已经为树查看器设置了内容提供者和标签提供者。当我的应用程序内部数据发生变化时,我还需要更新树视图(例如,就像添加节点、删除节点一样)。
对于这种情况,我尝试刷新树查看器。并且刷新操作成功。但是在刷新操作之后,树查看器选择会到达查看器中最顶层的父节点。但相反,我需要在新添加的节点或新添加的节点的父节点上进行选择。如何做到这一点?
Treeviewer 要求您在查看器中的对象上实现 hashCode() 和 equals()。同样,您应该向查看器提供一个 IElementComparer。
Eclipse 论坛的提示:http: //www.eclipse.org/forums/index.php/t/166563/
您可以手动设置选择并在树查看器中显示它:
//after the refresh operation
treeViewer.setSelection(new StructuredSelection(newlyAddedNode, true));