Java 使用NatTable实现树
我尝试从JFace TreeViewer切换到NatTable。不幸的是,我没有找到很多关于用NatTable实现树的文档。所以我有一些问题Java 使用NatTable实现树,java,swt,jface,nebula,nattable,Java,Swt,Jface,Nebula,Nattable,我尝试从JFace TreeViewer切换到NatTable。不幸的是,我没有找到很多关于用NatTable实现树的文档。所以我有一些问题 对于TreeViewer,我使用setInput()来提供新的输入。如何使用NatTable实现同样的效果?对基础数据源列表调用clear()和addAll()是否合适?(我使用glazedlist) 我使用descriptedclear()/addAll()方法在查询数据库后传递新数据。在树的扩展状态丢失后,所有节点都被关闭。我用的JFace TreeV
setInput()
来提供新的输入。如何使用NatTable实现同样的效果?对基础数据源列表调用clear()
和addAll()
是否合适?(我使用glazedlist)
clear()
/addAll()
方法在查询数据库后传递新数据。在树的扩展状态丢失后,所有节点都被关闭。我用的JFace TreeViewer
getExpandedElements()
/setExpandedElements()
以保持展开状态。NatTable中有类似的产品吗SortableTreeComparator
和astreeComparator
我使用我的自定义比较器(而不是glazedList.beanPropertyComparator
,如示例所示)。这里可能有什么问题?首先,您可以查看并查看树的实现方式
ca.odell.glazedlists.TreeList.ExpansionModel
,它是用作输入的TreeList
的一部分IDataProvider
能够以二维方式提供数据。由于我们的抽象级别,NatTable中没有setInput()
。在1.4中,我们打开了API,以便能够在运行时将IDataProvider
设置为DataLayer
,这与此类似ExpansionModel
。在NatTable中,由于相同的原因,GroupByExpansionModel
中也有相同的内容ITreeRowModel
,如果需要的话,它可以在expand上执行延迟加载。我建议扩展glazedListRetreRowmodel
,并检查需要覆盖的各种扩展方法谢谢,我已经实现了延迟加载并使用了相同的方法。但我面临着排序方面的新问题。我已经更新了我的问题。你的帮助将得到真正的重视,最重要的事实是,你需要考虑两个比较器排序树。一个是将树按正确的顺序排列,另一个是内容。听起来比较器只检查内容,不尊重树层次结构,因此破坏了树结构。但如果没有进一步的信息,我就说不出来了。如果没有帮助的话,我还建议创建一个新问题。我创建了一个新问题,因为我几乎放弃了。即使使用示例代码,我也有这个问题。