【问题标题】:Jface tableviewer multi sort columnsJface tableviewer 多排序列
【发布时间】:2011-03-05 18:09:56
【问题描述】:

我正在实现一个表格查看器,它能够根据列顺序对值进行排序。 例如column1-column2-columnX 首先按第 1 列的值对行进行排序,然后按第 2 列的值对行进行排序....

因此我想使用 ColumnViewerSorter,尤其是方法 "int doCompare(Viewer viewer, Object e1, Object e2);"

在此方法中,我想根据其他 Tableviewer 行/单元格进行排序以进行比较,困难在于 JFace tableviewer 仅在视图中进行排序,因此我必须“询问”tableviewer 本身的实际值,例如“第 1 列,第 20 行”

在“docompare”中使用函数“viewer.getElementAt(index)”是可以的,但在docompare中我确实没有引用tableviewer中的对象e1和e2位置。

我怎么能做到这一点?

非常感谢您提前帮助我

最好的问候,

马尔科姆

【问题讨论】:

    标签: sorting jface tableviewer


    【解决方案1】:

    当然,您可以遍历表格查看器中的所有项目并查看对象 e1 和 e2 的位置。

    但是...我希望我能正确理解您的问题...您为什么要实施多重排序?

    假设您有 3 列:

    Col1      Col2      Col3
    -------------------------
     a2        b1        c4   
     a1        b2        c1
     a2        b1        c3
    

    要获得排序顺序Col1-Col2-Col3,用户可以点击Col3,然后点击Col2,最后点击Col1:

    Col1      Col2     _Col3_
    -------------------------
     a1        b2        c1        
     a2        b1        c3
     a2        b1        c4
    
    
    Col1     _Col2_     Col3
    -------------------------     
     a2        b1        c3   
     a2        b1        c4
     a1        b2        c1
    
    
    _Col1_     Col2     Col3
    -------------------------     
     a1        b2        c1     
     a2        b1        c3   
     a2        b1        c4
    

    这可能不是最好的例子,但要获得“多重排序”,用户只需按相反的顺序对所需的列进行排序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多