package info.opencards.ui.table;
import javax.swing.*;
import javax.swing.table.TableRowSorter;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
class CardTableRowSorter extends TableRowSorter<CardTableModel> {
public CardTableRowSorter(CardTableModel model) {
super(model);
// define the different column comparators
// skip the name row because the default sorter does a great job here
setComparator(1, new Comparator<StringifiedScheduleDate>() {
public int compare(StringifiedScheduleDate o1, StringifiedScheduleDate o2) {
return o1.compareTo(o2);
}
});
setComparator(2, new IntegerComparator());
setComparator(3, new IntegerComparator());
// apply the default sorting
List<SortKey> sortKeys = new ArrayList<SortKey>();
sortKeys.add(new RowSorter.SortKey(0, SortOrder.ASCENDING));
setSortKeys(sortKeys);
sort();
}
private static class IntegerComparator implements Comparator<Integer> {
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
}
}