Ticket #20091: 20091-download.patch
File 20091-download.patch, 2.1 KB (added by , 4 years ago) |
---|
-
src/org/openstreetmap/josm/actions/relation/DownloadMembersAction.java
6 6 7 7 import java.awt.event.ActionEvent; 8 8 import java.util.Collection; 9 import java.util.List; 10 import java.util.stream.Collectors; 9 11 10 12 import org.openstreetmap.josm.data.osm.IPrimitive; 11 import org.openstreetmap.josm.data.osm. Relation;13 import org.openstreetmap.josm.data.osm.PrimitiveId; 12 14 import org.openstreetmap.josm.gui.MainApplication; 13 import org.openstreetmap.josm.gui. dialogs.relation.DownloadRelationTask;15 import org.openstreetmap.josm.gui.io.DownloadPrimitivesTask; 14 16 import org.openstreetmap.josm.tools.ImageProvider; 15 import org.openstreetmap.josm.tools.SubclassFilteredCollection;16 import org.openstreetmap.josm.tools.Utils;17 17 18 18 /** 19 19 * The action for downloading members of relations … … 34 34 @Override 35 35 public void actionPerformed(ActionEvent e) { 36 36 if (!isEnabled() || relations.isEmpty() || !MainApplication.isDisplayingMapView()) return; 37 MainApplication.worker.submit(new DownloadRelationTask( 38 Utils.filteredCollection(relations, Relation.class), MainApplication.getLayerManager().getEditLayer())); 37 List<PrimitiveId> members = relations.stream() 38 .flatMap(r -> r.getMemberPrimitivesList().stream().filter(osm -> !osm.isNew()).map(IPrimitive::getOsmPrimitiveId)) 39 .distinct() 40 .collect(Collectors.toList()); 41 42 MainApplication.worker.submit(new DownloadPrimitivesTask(MainApplication.getLayerManager().getEditLayer(), members, false)); 39 43 } 40 44 41 45 @Override 42 46 public void setPrimitives(Collection<? extends IPrimitive> primitives) { 43 // selected non-new relations 44 this.relations = SubclassFilteredCollection.filter(getRelations(primitives), r -> !r.isNew()); 47 this.relations = getRelations(primitives); 45 48 updateEnabledState(); 46 49 } 47 50