001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.gui.dialogs.changeset;
003
004import java.util.Comparator;
005
006import javax.swing.table.TableRowSorter;
007
008import org.openstreetmap.josm.data.osm.DefaultNameFormatter;
009import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive;
010import org.openstreetmap.josm.tools.AlphanumComparator;
011
012/**
013 * The row sorter for the changeset content
014 * @since 16826
015 */
016class ChangesetContentTableRowSorter extends TableRowSorter<ChangesetContentTableModel> {
017
018    ChangesetContentTableRowSorter(ChangesetContentTableModel model) {
019        super(model);
020
021        // column 1 - ID
022        setComparator(1, Comparator.comparing(HistoryOsmPrimitive::getType).thenComparingLong(HistoryOsmPrimitive::getId));
023
024        // column 2 - Name
025        setComparator(2, Comparator.<HistoryOsmPrimitive, String>comparing(p ->
026                p.getDisplayName(DefaultNameFormatter.getInstance()), AlphanumComparator.getInstance()));
027    }
028}