0

我正在实现一个 tableviewer,它能够根据它们的列顺序对值进行排序。例如,column1-column2-columnX 首先根据第 1 列的值对行进行排序,然后是第 2 列、第 2 列...。

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

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

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

我怎么能做到这一点?

非常感谢你提前帮助我

此致,

马尔科姆

4

1 回答 1

0

当然,您可以遍历表查看器中的所有项目并查看对象 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

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

于 2010-06-22T11:20:18.983 回答