我实现了一个在TreeViewer中显示数据的Eclipse插件。
树结构在初始化时读取,在运行时不会更改。
LabelProvider
用于设置要为每个项目显示的数据。此对象通过阅读我们的硬件来完成此操作。读取值可能需要一些时间(约0.5秒)。每次调试器暂停时以及每次用户单击指定的“刷新”按钮时都会更新值。
我有很多项目和子项目,因此一次读取所有值太费时间了。 因此,我只想读取用户可见的项目数据。
我尝试使用ILazyTreeContentProvider
但这只会节省树加载的时间:滚动或展开TreeItem后,可见项添加到要更新的项列表而不是< strong>替换不可见的节点。
我该如何做到这一点?
答案 0 :(得分:1)
发现它!
我还在使用ILazyTreeContentProvider
。
每次调试器停止或单击刷新按钮时,我只需使用tree.clearAll(true)
删除所有元素,而不是检查要刷新的元素。删除将调用ILazyTreeContentProvider
仅在可见项目上再次执行其工作。