当前位置: 代码迷 >> Eclipse >> 关于TreeViewer的节点选中,该怎么解决
  详细解决方案

关于TreeViewer的节点选中,该怎么解决

热度:73   发布时间:2016-04-23 02:29:38.0
关于TreeViewer的节点选中
有两个View,一个为TableViewer,一个为TreeViewer,现在想把TableViewer作为Selection的提供方,把TreeViewer作为Selection的接收方,当TableViewer中的选中项变化后,希望TreeViewer能根据TableViewer的选中项目而选中自己相关节点。现在从TableViewer中获取信息没有问题,但就是东西传过来之后我不知道用什么方法能够把TreeViewer的节点给设定了,在网上查到了可以用viewer.setSelection( selection, reveal ),但是如果把从TableViewer中接到的Selection直接作为参数传过去,并没有选定我想选的节点,而是TreeViewer的被选定的节点也变为非选中的状态了。是不是必须传递的参数必须是TreeSelection啊,我尝试了new TreeSelection(TreePath paths) 但是TreePath paths这个参数应给怎么初始化呢,希望大神能给些指点,还是我的思路本身就有问题?先谢谢了。

------解决方案--------------------
ISelection强转成IStructuredSelection,就可以获取选中的那个模型的对象了,你需要根据这个对象,计算出在TreeViewer中你想选中的那个对象。 然后new一个StructuredSelection,set到TreeViewer中。

另外,Treeviewer中setSelection无效,还有一个可能原因,ContentProvider中的getParent()方法实现不正确...