在 Nattable 中添加用于整数排序的自定义比较器

Adding custom comparator for integer sorting in Nattable

我尝试对 header 层进行排序,这对文本工作正常,但对整数和日期不适合 - 所以我想为此创建一个自定义比较器。

首先对您的问题发表评论。数字和日期的排序在 NatTable 中工作得很好。事实上,所有 Comparable 数据类型的排序都与 DefaultSortConfiguration 应用的 DefaultComparator 一起正常工作。但要使其正常工作,您需要注册相应的数据类型转换器,如各种 NatTable 示例所示。如果没有转换器,NatTable 中的所有数据都将被视为字符串,这会导致 "incorrect" 排序。

第二个问题。您可以像这样注册自定义比较器:

configRegistry.registerConfigAttribute(
    SortConfigAttributes.SORT_COMPARATOR,
    new MyCustomComparator(),
    DisplayMode.NORMAL,
    CUSTOM_COMPARATOR_LABEL);

因此您需要为配置属性 SortConfigAttributes.SORT_COMPARATOR 和相应的标签注册一个 Comparator

但如果您没有匹配的类型转换器,则需要比较字符串。所以恕我直言,您需要注册一个 DisplayConverter 并且排序可以按预期工作,而无需自定义比较器。