package com.revolsys.swing.table;
import java.text.Collator;
import java.util.Comparator;
import javax.swing.table.TableModel;
import org.jdesktop.swingx.sort.TableSortController;
import com.revolsys.comparator.NumericComparator;
public class BaseRowSorter extends TableSortController<TableModel> {
public BaseRowSorter() {
}
public BaseRowSorter(final TableModel model) {
super(model);
}
@Override
public Comparator<?> getComparator(final int column) {
final Class<?> columnClass = getModel().getColumnClass(column);
final Comparator<?> comparator = super.getComparator(column);
if (comparator != null) {
return comparator;
}
if (columnClass == String.class) {
return Collator.getInstance();
} else if (Number.class.isAssignableFrom(columnClass)) {
return new NumericComparator<>();
} else if (Comparable.class.isAssignableFrom(columnClass)) {
return COMPARABLE_COMPARATOR;
} else {
return Collator.getInstance();
}
}
}