我创建了一个ListHandler
并且我覆盖了其setComparator
方法,以便在TextColumn
中为每个CellTable
提供基本的字母排序。
以下是一个这样的例子:
private void createTargetColumnSortHandler()
{
ListHandler<RegradeRule> targetColumnHandler = new ListHandler<RegradeRule>(resultsTableDataProvider.getList());
targetColumnHandler.setComparator(this.targetPromotionColumn, new Comparator<RegradeRule>()
{
@Override
public int compare(RegradeRule o1, RegradeRule o2)
{
if (o1 == o2)
{
return 0;
}
// Compare the name columns.
if (o1 != null)
{
return (o2 != null) ? o1.getTargetPromotion().compareTo(o2.getTargetPromotion()) : 1;
}
return -1;
}
});
this.resultsTable.addColumnSortHandler(targetColumnHandler);
}
在GUI中,单击列以启动排序后,如何检索已排序的值?或者改写一下,存储排序值的是什么?在调试时我似乎无法捕获此单击事件(或找不到合适的breakpoint
),因此我找不到已排序的值 - 例如,如果它是ListDataProvider
中使用的我的CellTable
修改 CellTable完美呈现排序值。我只想使用排序值并导出到Excel(我可以导出未排序的值)
答案 0 :(得分:0)
ListHandler
将对您在构造函数中提供的列表进行排序。您已通过ListDataProvider
支持的列表,因此您可以在那里找到您的排序列表:
resultsTableDataProvider.getList();