【发布时间】:2017-10-31 01:59:57
【问题描述】:
我尝试对标头层进行排序,这对于文本效果很好,但不适用于整数和日期 - 所以我想为此创建一个自定义比较器。
【问题讨论】:
-
你能发布一个最小的、完整的、可验证的代码示例吗?
标签: nattable
我尝试对标头层进行排序,这对于文本效果很好,但不适用于整数和日期 - 所以我想为此创建一个自定义比较器。
【问题讨论】:
标签: nattable
首先对您的问题发表评论。数字和日期的排序在 NatTable 中工作得很好。事实上,所有Comparable 数据类型的排序与DefaultSortConfiguration 应用的DefaultComparator 一起工作得很好。但要使其正常工作,您需要注册相应的数据类型转换器,如各种 NatTable 示例中所示。如果没有转换器,NatTable 中的所有数据都被视为字符串,这会导致“不正确”的排序。
其次是您的问题。您可以像这样注册一个自定义比较器:
configRegistry.registerConfigAttribute(
SortConfigAttributes.SORT_COMPARATOR,
new MyCustomComparator(),
DisplayMode.NORMAL,
CUSTOM_COMPARATOR_LABEL);
所以你需要为配置属性SortConfigAttributes.SORT_COMPARATOR注册一个Comparator和一个相应的标签。
但如果您没有匹配的类型转换器,则需要比较字符串。所以恕我直言,您需要注册一个DisplayConverter,然后排序就可以按预期进行,而无需自定义比较器。
【讨论】: