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}