Ignore:
Timestamp:
2017-05-03T22:19:58+02:00 (7 years ago)
Author:
michael2402
Message:

Make cleanupDeletedPrimitives code nicer, only use one bulk update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/DataSet.java

    r12056 r12057  
    2222import java.util.function.Function;
    2323import java.util.function.Predicate;
    24 import java.util.stream.Collectors;
    2524import java.util.stream.Stream;
    2625
     
    575574            if (primitive == null)
    576575                return;
     576            clearSelection(primitiveId);
    577577            super.removePrimitive(primitive);
    578             clearSelection(primitiveId);
    579578            allPrimitives.remove(primitive);
    580579            primitive.setDataset(null);
     
    12461245        beginUpdate();
    12471246        try {
    1248             cleanupDeleted(Stream.concat(
    1249                     getNodes().stream(), Stream.concat(getNodes().stream(), getNodes().stream())));
     1247            Collection<OsmPrimitive> toCleanUp = getPrimitives(primitive -> primitive.isDeleted() && (!primitive.isVisible() || primitive.isNew()));
     1248            if (!toCleanUp.isEmpty()) {
     1249                clearSelection(toCleanUp.stream().map(OsmPrimitive::getPrimitiveId));
     1250                for (OsmPrimitive primitive : toCleanUp) {
     1251                    allPrimitives.remove(primitive);
     1252                    removePrimitive(primitive);
     1253                    primitive.setDataset(null);
     1254                }
     1255                firePrimitivesRemoved(toCleanUp, false);
     1256            }
    12501257        } finally {
    12511258            endUpdate();
    12521259        }
    1253     }
    1254 
    1255     private void cleanupDeleted(Stream<? extends OsmPrimitive> it) {
    1256         it.filter(primitive -> primitive.isDeleted() && (!primitive.isVisible() || primitive.isNew()))
    1257                 .collect(Collectors.toList())
    1258                 .forEach(primitive -> this.removePrimitive(primitive.getPrimitiveId()));
    1259 
    12601260    }
    12611261
Note: See TracChangeset for help on using the changeset viewer.