【问题标题】:Elapsed time column - how to refresh only one part of StructuredViewer已用时间列 - 如何仅刷新 StructuredViewer 的一部分
【发布时间】:2015-03-10 16:11:45
【问题描述】:

我有一个StructuredViewer(在这个例子中是一个带有列的TreeViewer),它通过一些我不想进入的回调来刷新它的内部,方法是在回调时调用setInput()refresh()发生。

我需要引入一个 Time Elapsed 单元格,该单元格需要每秒刷新一次,并且这只在 Viewer 的一个单元格中。

仅在一个单元格/列上进行轻量级刷新的最佳方法是什么?

提前致谢

【问题讨论】:

    标签: swt eclipse-rcp jface


    【解决方案1】:

    树浏览器

    public void update(Object element, String[] properties) 
    

    方法是更新行的最轻量级的方法。

    您可以使用“属性”参数来告诉标签提供者哪一列正在被更新。标签提供者应该覆盖

    public boolean isLabelProperty(Object element, String property)
    

    告诉查看者他们受哪些属性影响。

    【讨论】:

    • 在使用ColumnLabelProviders的情况下,这是否意味着只有包含需要特定更新的单元格的LabelProviders才能覆盖isLabelProperty?谢谢
    • 它们都应该覆盖 isLabelProperty,以便在属性不需要更新标签时返回“false”(默认实现对所有内容都返回“true”)。
    猜你喜欢
    • 2023-03-11
    • 2011-11-24
    • 1970-01-01
    • 2014-12-23
    • 2020-02-24
    • 2012-04-16
    • 2014-10-11
    • 2012-01-27
    • 2012-08-06
    相关资源
    最近更新 更多