【问题标题】:Update only visible items in JFace TreeViewer仅更新 JFace TreeViewer 中的可见项
【发布时间】:2015-05-20 22:45:19
【问题描述】:

我实现了一个在 TreeViewer 中显示数据的 Eclipse 插件。

树结构在初始化时被读取,在运行时不会改变。 LabelProvider 用于设置要为每个项目显示的数据。这个对象通过从我们的硬件中读取来做到这一点。读取一个值可能需要一些时间(~0.5 秒)。每次调试器暂停以及每次用户单击指定的“刷新”按钮时都会更新值。

我有很多项目和子项目,因此一次读取所有值太耗时了。 因此,我只想读取用户可见的项目数据。

我尝试使用ILazyTreeContentProvider,但这只会在树加载时节省时间:滚动或展开 TreeItem 后,可见项目将添加到要更新的项目列表中,而不是 替换不可见的节点。

我怎样才能做到这一点?

【问题讨论】:

    标签: java swt jface


    【解决方案1】:

    找到了!

    我仍在使用ILazyTreeContentProvider。 每次调试器停止或单击刷新按钮时,我不会检查要刷新的元素,而是使用tree.clearAll(true) 删除所有元素。删除将调用 ILazyTreeContentProvider 以仅在可见项目上再次执行其工作。

    【讨论】:

      猜你喜欢
      • 2022-06-13
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 2013-11-26
      • 2016-08-14
      • 1970-01-01
      相关资源
      最近更新 更多