Changeset 2563 in josm for trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java
- Timestamp:
- 03.12.2009 19:02:25 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java
r2512 r2563 3 3 4 4 import static org.openstreetmap.josm.tools.I18n.tr; 5 import static org.openstreetmap.josm.tools.I18n.trn; 5 6 6 7 import java.io.InputStream; … … 308 309 progressMonitor.subTask(tr("Downloading OSM data...")); 309 310 try { 310 311 merge( 312 OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)) 313 ); 311 DataSet loaded = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 312 rememberNodesOfIncompleteWaysToLoad(loaded); 313 merge(loaded); 314 314 } catch(Exception e) { 315 315 throw new OsmTransferException(e); … … 333 333 progressMonitor.subTask(tr("Downloading OSM data...")); 334 334 try { 335 merge(336 OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false))337 );335 DataSet loaded = OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 336 rememberNodesOfIncompleteWaysToLoad(loaded); 337 merge(loaded); 338 338 } catch(Exception e) { 339 339 throw new OsmTransferException(e); … … 376 376 } 377 377 378 protected void rememberNodesOfIncompleteWaysToLoad(DataSet from) { 379 for (Way w: from.getWays()) { 380 if (w.incomplete) { 381 for (Node n: w.getNodes()) { 382 if (n.incomplete) { 383 nodes.add(n.getId()); 384 } 385 } 386 } 387 } 388 } 389 378 390 /** 379 391 * merges the dataset <code>from</code> to {@see #outputDataSet}. … … 401 413 case RELATION: msg = tr("Fetching a package of relations from ''{0}''", OsmApi.getOsmApi().getBaseUrl()); break; 402 414 } 403 progressMonitor. setCustomText(msg);415 progressMonitor.indeterminateSubTask(msg); 404 416 Set<Long> toFetch = new HashSet<Long>(ids); 405 417 toFetch.addAll(ids); … … 428 440 * found on the server (the server response code was 404) 429 441 * 430 * Invoke {@see #getSkippedWay()} to get a list of ways which this reader could not build from431 * the fetched data because the ways refer to nodes which don't exist on the server.432 *433 442 * @return the parsed data 434 443 * @exception OsmTransferException thrown if an error occurs while communicating with the API server 435 444 * @see #getMissingPrimitives() 436 * @see #getSkippedWays() 437 * 438 445 * 439 446 */ 440 447 @Override 441 448 public DataSet parseOsm(ProgressMonitor progressMonitor) throws OsmTransferException { 442 progressMonitor.beginTask(""); 449 int n = nodes.size() + ways.size() + relations.size(); 450 progressMonitor.beginTask(trn("Downloading {0} object from ''{1}''", "Downloading {0} objects from ''{1}''", n, n, OsmApi.getOsmApi().getBaseUrl())); 443 451 try { 444 452 missingPrimitives = new HashSet<Long>(); 445 453 if (isCanceled())return null; 454 fetchPrimitives(ways,OsmPrimitiveType.WAY, progressMonitor); 455 if (isCanceled())return null; 446 456 fetchPrimitives(nodes,OsmPrimitiveType.NODE, progressMonitor); 447 if (isCanceled())return null;448 fetchPrimitives(ways,OsmPrimitiveType.WAY, progressMonitor);449 457 if (isCanceled())return null; 450 458 fetchPrimitives(relations,OsmPrimitiveType.RELATION, progressMonitor);
Note: See TracChangeset
for help on using the changeset viewer.
