Jface tableviewer多排列

时间:2010-06-19 11:35:39

标签: sorting jface tableviewer

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

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

在这个方法中我想根据其他Tableviewer Row / Cells进行排序以进行比较,难点在于JFace tableviewer只在视图中进行排序,因此我必须“询问”tableviewer本身的实际值,例如: “第1栏第20行”

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

我怎么能实现这一目标?

非常感谢你提前帮助我

最好的问候,

马尔科姆

1 个答案:

答案 0 :(得分: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

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