Jface tableviewer 多列排序

发布于 2024-09-06 02:57:57 字数 447 浏览 4 评论 0原文

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

因此我想使用 ColumnViewerSorter,尤其是该方法 “int doCompare(Viewer查看器,对象e1,对象e2);”

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

使用“docompare”内的函数“viewer.getElementAt(index)”应该没问题,但在 docompare 内我确实没有引用表查看器中的对象 e1 和 e2 位置。

我怎样才能做到这一点?

提前非常感谢您帮助我

马尔科姆

i am implementing a tableviewer that is able to sort values depengin on their column order.
e.g. column1-column2-columnX
sorts the rows first on the values of column 1, then column 2, column....

Therefore i want to use a ColumnViewerSorter, especially the method
"int doCompare(Viewer viewer, Object e1, Object e2);"

inside this method i want to sort depending on other Tableviewer Row/Cells for comparison and the difficulty is that JFace tableviewer does the sort in the view only, so i have to "ask" the tableviewer itself for the actual value of e.g. "column 1, row 20"

using the function "viewer.getElementAt(index)" inside "docompare" wold be ok, but inside docompare i do have no reference to the objects e1 and e2 position in the tableviewer.

how could i achieve that?

thanking you very much in advance for helping me

best regards,

Malcom

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

归属感 2024-09-13 02:57:57

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

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

You could iterate through all items in the table viewer and see where the objects e1 and e2 are, of course.

BUT... and I hope I understand your problem correctly... why do you want to implement multisorting?

Let's say you have 3 columns:

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

To obtain the sorting order Col1-Col2-Col3, the user can click on Col3, then on Col2, and in the end 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

This might not be the best example, but to obtain "multi sorting", the user just has to sort the desired columns in the opposite order.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文