Changeset 2061 in josm for trunk/src/org/openstreetmap/josm/io
- Timestamp:
- 2009-09-05T11:00:10+02:00 (16 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/io
- Files:
-
- 2 edited
-
OsmApi.java (modified) (1 diff)
-
OsmServerWriter.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/OsmApi.java
r2040 r2061 325 325 326 326 /** 327 * Update a changeset on the server. 328 * 329 * @param changeset the changeset to update 330 * @param progressMonitor the progress monitor 331 * 332 * @throws OsmTransferException if something goes wrong. 333 */ 334 public void updateChangeset(Changeset changeset, ProgressMonitor progressMonitor) throws OsmTransferException { 335 try { 336 progressMonitor.beginTask(tr("Updating changeset...")); 337 initialize(progressMonitor); 338 if (this.changeset != null && this.changeset.getId() > 0) { 339 if (this.changeset.hasEqualSemanticAttributes(changeset)) { 340 progressMonitor.setCustomText(tr("Changeset {0} is unchanged. Skipping update.", changeset.getId())); 341 return; 342 } 343 changeset.id = this.changeset.getId(); 344 this.changeset.cloneFrom(changeset); 345 progressMonitor.setCustomText(tr("Updating changeset {0}...", changeset.getId())); 346 sendRequest( 347 "PUT", 348 OsmPrimitiveType.from(changeset).getAPIName() + "/" + changeset.getId(), 349 toXml(changeset, true), 350 progressMonitor 351 ); 352 this.changeset = changeset; 353 } else 354 throw new OsmTransferException(tr("Failed to update changeset. Either there is no current changeset or the id of the current changeset is 0")); 355 } finally { 356 progressMonitor.finishTask(); 357 } 358 } 359 360 /** 327 361 * Closes a changeset on the server. 328 362 * -
trunk/src/org/openstreetmap/josm/io/OsmServerWriter.java
r2040 r2061 91 91 try { 92 92 progressMonitor.setTicksCount(primitives.size()); 93 api.createChangeset(changeset, changesetProcessingType,progressMonitor.createSubTaskMonitor(0, false)); 93 if (changesetProcessingType.isUseNew()) { 94 api.createChangeset(changeset, changesetProcessingType,progressMonitor.createSubTaskMonitor(0, false)); 95 } else { 96 api.updateChangeset(changeset,progressMonitor.createSubTaskMonitor(0, false)); 97 } 94 98 uploadStartTime = System.currentTimeMillis(); 95 99 for (OsmPrimitive osm : primitives) { … … 98 102 String msg = ""; 99 103 switch(OsmPrimitiveType.from(osm)) { 100 case NODE: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading node ''{4}'' (id: {5})"); break;101 case WAY: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading way ''{4}'' (id: {5})"); break;102 case RELATION: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading relation ''{4}'' (id: {5})"); break;104 case NODE: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading node ''{4}'' (id: {5})"); break; 105 case WAY: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading way ''{4}'' (id: {5})"); break; 106 case RELATION: msg = marktr("{0}% ({1}/{2}), {3} left. Uploading relation ''{4}'' (id: {5})"); break; 103 107 } 104 108 progressMonitor.subTask( … … 146 150 // 147 151 try { 148 api.createChangeset(changeset, changesetProcessingType, progressMonitor.createSubTaskMonitor(0, false)); 152 if (changesetProcessingType.isUseNew()) { 153 api.createChangeset(changeset, changesetProcessingType,progressMonitor.createSubTaskMonitor(0, false)); 154 } else { 155 api.updateChangeset(changeset,progressMonitor.createSubTaskMonitor(0, false)); 156 } 149 157 processed.addAll(api.uploadDiff(primitives, progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false))); 150 158 } catch(OsmTransferException e) { … … 173 181 174 182 api.initialize(progressMonitor); 175 176 183 try { 177 184 // check whether we can use diff upload
Note:
See TracChangeset
for help on using the changeset viewer.
