1 | // License: GPL. For details, see LICENSE file.
|
---|
2 | package org.openstreetmap.josm.gui.dialogs.changeset;
|
---|
3 |
|
---|
4 | import static java.util.Comparator.comparing;
|
---|
5 | import static java.util.Comparator.comparingInt;
|
---|
6 | import static java.util.Comparator.naturalOrder;
|
---|
7 | import static java.util.Comparator.nullsLast;
|
---|
8 |
|
---|
9 | import javax.swing.table.TableRowSorter;
|
---|
10 |
|
---|
11 | import org.openstreetmap.josm.data.osm.Changeset;
|
---|
12 | import org.openstreetmap.josm.data.osm.User;
|
---|
13 | import org.openstreetmap.josm.tools.AlphanumComparator;
|
---|
14 |
|
---|
15 | /**
|
---|
16 | * The row sorter for the changeset table
|
---|
17 | * @since 16826
|
---|
18 | */
|
---|
19 | class ChangesetCacheTableRowSorter extends TableRowSorter<ChangesetCacheManagerModel> {
|
---|
20 |
|
---|
21 | ChangesetCacheTableRowSorter(ChangesetCacheManagerModel model) {
|
---|
22 | super(model);
|
---|
23 |
|
---|
24 | // column 0 - Id
|
---|
25 | setComparator(0, comparingInt(Changeset::getId));
|
---|
26 |
|
---|
27 | // column 1 - Upload comment
|
---|
28 | setComparator(1, comparing(Changeset::getComment, AlphanumComparator.getInstance()));
|
---|
29 |
|
---|
30 | // column 2 - Open
|
---|
31 | setComparator(2, comparing(Changeset::isOpen));
|
---|
32 |
|
---|
33 | // column 3 - User
|
---|
34 | setComparator(3, comparing(Changeset::getUser, comparing(User::getName)));
|
---|
35 |
|
---|
36 | // column 4 - Created at
|
---|
37 | setComparator(4, comparing(Changeset::getCreatedAt));
|
---|
38 |
|
---|
39 | // column 5 - Closed at
|
---|
40 | setComparator(5, comparing(Changeset::getClosedAt, nullsLast(naturalOrder())));
|
---|
41 |
|
---|
42 | // column 6 - Changes
|
---|
43 | setComparator(6, comparingInt(Changeset::getChangesCount));
|
---|
44 |
|
---|
45 | // column 7 - Discussions
|
---|
46 | setComparator(7, comparingInt(Changeset::getCommentsCount));
|
---|
47 | }
|
---|
48 | }
|
---|