Ignore:
Timestamp:
2016-10-27T00:32:55+02:00 (9 years ago)
Author:
simon04
Message:

Refactor OsmPrimitiveComparator

Replace one big comparator with functions to obtain specific simple comparators.

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java

    r10694 r11177  
    107107    protected static String buildDataText(OsmDataLayer layer, List<OsmPrimitive> primitives) {
    108108        InspectPrimitiveDataText dt = new InspectPrimitiveDataText(layer);
    109         primitives.sort(new OsmPrimitiveComparator());
    110         for (OsmPrimitive o : primitives) {
    111             dt.addPrimitive(o);
    112         }
     109        primitives.stream()
     110                .sorted(OsmPrimitiveComparator.orderingWaysRelationsNodes().thenComparing(OsmPrimitiveComparator.comparingNames()))
     111                .forEachOrdered(dt::addPrimitive);
    113112        return dt.toString();
    114113    }
  • trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java

    r11100 r11177  
    659659            if (selection.size() <= Main.pref.getInteger("selection.no_sort_above", 100_000)) {
    660660                boolean quick = selection.size() > Main.pref.getInteger("selection.fast_sort_above", 10_000);
    661                 selection.sort(new OsmPrimitiveComparator(quick, false));
     661                selection.sort(OsmPrimitiveComparator.orderingWaysRelationsNodes().thenComparing(quick
     662                        ? OsmPrimitiveComparator.comparingUniqueId()
     663                        : OsmPrimitiveComparator.comparingNames()));
    662664            }
    663665        }
  • trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r11033 r11177  
    646646         * (Only works if the data layer has not been saved to and been loaded from an osm file before.)
    647647         */
    648         final List<Way> sortedWays = new ArrayList<>(ways);
    649         sortedWays.sort(new OsmPrimitiveComparator(true, false)); // sort by OsmPrimitive#getUniqueId ascending
    650         Collections.reverse(sortedWays); // sort by OsmPrimitive#getUniqueId descending
    651         for (Way w : sortedWays) {
     648        ways.stream()
     649                .sorted(OsmPrimitiveComparator.comparingUniqueId().reversed())
     650                .forEachOrdered(w -> {
    652651            if (!w.isUsable()) {
    653                 continue;
     652                return;
    654653            }
    655654            Collection<Collection<WayPoint>> trk = new ArrayList<>();
     
    677676
    678677            gpxData.tracks.add(new ImmutableGpxTrack(trk, trkAttr));
    679         }
     678        });
    680679    }
    681680
Note: See TracChangeset for help on using the changeset viewer.