我有一个TableViewer
,表中有15列。我已经实现了自己的内容和标签提供商。我需要对所有这些列进行排序,因此在表查看器上对所有列调用setComparator()
。每次调用该setComparator()
时,都会调用内容提供商的getElements()
,从而导致表加载延迟。
我该如何解决这个问题?
如果getElements()
确实导致延迟,因为它执行了一项代价高昂的操作(例如,从数据库中提取数据),那么您可以缓冲或缓存提取的数据,而不是在每次调用时重新检索。
如果排序是固定的(即用户无法更改),则可以从getElements()
返回预先排序的元素,而不是调用setComparator()
。