Ticket #6251: downloadMultiple2.patch
File downloadMultiple2.patch, 2.0 KB (added by , 10 years ago) |
---|
-
src/org/openstreetmap/josm/gui/io/DownloadPrimitivesTask.java
11 11 import java.util.logging.Logger; 12 12 13 13 import javax.swing.SwingUtilities; 14 import org.openstreetmap.josm.actions.AutoScaleAction; 14 15 15 16 import org.openstreetmap.josm.data.osm.DataSet; 16 17 import org.openstreetmap.josm.data.osm.DataSetMerger; … … 83 84 Runnable r = new Runnable() { 84 85 public void run() { 85 86 layer.mergeFrom(ds); 87 AutoScaleAction.zoomTo(ds.allPrimitives()); 86 88 layer.onPostDownloadFromServer(); 87 89 } 88 90 }; … … 139 141 } 140 142 DataSetMerger merger = new DataSetMerger(ds, theirDataSet); 141 143 merger.merge(); 144 145 // if incomplete relation members exist, download them too 146 for (Relation r : ds.getRelations()) { 147 if (canceled) return; 148 if (r.hasIncompleteMembers()) { 149 synchronized(this) { 150 if (canceled) return; 151 objectReader = new OsmServerObjectReader(r.getId(), OsmPrimitiveType.RELATION, true /* full */); 152 } 153 theirDataSet = objectReader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 154 synchronized (this) { 155 objectReader = null; 156 } 157 merger = new DataSetMerger(ds, theirDataSet); 158 merger.merge(); 159 } 160 } 161 142 162 // a way loaded with MultiFetch may have incomplete nodes because at least one of its 143 163 // nodes isn't present in the local data set. We therefore fully load all 144 164 // ways with incomplete nodes.