Ticket #17279: 17279-v2.patch
File 17279-v2.patch, 4.3 KB (added by , 5 years ago) |
---|
-
src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java
137 137 138 138 private HistoryLoaderAndListener(Map<OsmPrimitive, Date> toLoad) { 139 139 this.toLoad = toLoad; 140 this.setChangesetDataNeeded(false); 140 141 add(toLoad.keySet()); 141 142 // Updating process is done after all history requests have been made 142 143 HistoryDataSet.getInstance().addHistoryDataSetListener(this); -
src/org/openstreetmap/josm/gui/history/HistoryLoadTask.java
26 26 import org.openstreetmap.josm.io.OsmServerHistoryReader; 27 27 import org.openstreetmap.josm.io.OsmTransferException; 28 28 import org.openstreetmap.josm.tools.CheckParameterUtil; 29 import org.openstreetmap.josm.tools.Logging; 29 30 import org.xml.sax.SAXException; 30 31 31 32 /** … … 52 53 private final Set<PrimitiveId> toLoad = new HashSet<>(); 53 54 private HistoryDataSet loadedData; 54 55 private OsmServerHistoryReader reader; 56 private boolean getChangesetData = true; 55 57 56 58 /** 57 59 * Constructs a new {@code HistoryLoadTask}. … … 163 165 @Override 164 166 protected void realRun() throws SAXException, IOException, OsmTransferException { 165 167 loadedData = new HistoryDataSet(); 168 int ticks = toLoad.size(); 169 if (getChangesetData) 170 ticks *= 2; 166 171 try { 167 progressMonitor.setTicksCount( 2 * toLoad.size());172 progressMonitor.setTicksCount(ticks); 168 173 for (PrimitiveId pid: toLoad) { 169 174 if (canceled) { 170 175 break; … … 183 188 HistoryDataSet ds; 184 189 try { 185 190 reader = new OsmServerHistoryReader(pid.getType(), pid.getUniqueId()); 186 ds = loadHistory(reader, progressMonitor); 191 if (getChangesetData) { 192 ds = loadHistory(reader, progressMonitor); 193 } else { 194 ds = reader.parseHistory(progressMonitor.createSubTaskMonitor(1, false)); 195 } 187 196 } catch (OsmTransferException e) { 188 197 if (canceled) 189 198 return; … … 195 204 protected static HistoryDataSet loadHistory(OsmServerHistoryReader reader, ProgressMonitor progressMonitor) throws OsmTransferException { 196 205 HistoryDataSet ds = reader.parseHistory(progressMonitor.createSubTaskMonitor(1, false)); 197 206 if (ds != null) { 207 Logging.warn("retrieving CS data!!!"); 198 208 // load corresponding changesets (mostly for changeset comment) 199 209 OsmServerChangesetReader changesetReader = new OsmServerChangesetReader(); 200 210 List<Long> changesetIds = new ArrayList<>(ds.getChangesetIds()); … … 240 250 public Exception getLastException() { 241 251 return lastException; 242 252 } 253 254 /** 255 * Determine if changeset information is needed. By default it is retrieved. 256 * @param b false means don't retrieve changeset data. 257 */ 258 public void setChangesetDataNeeded(boolean b) { 259 getChangesetData = b; 260 } 243 261 } -
src/org/openstreetmap/josm/io/OsmServerHistoryReader.java
59 59 public HistoryDataSet parseHistory(ProgressMonitor progressMonitor) throws OsmTransferException { 60 60 progressMonitor.beginTask(""); 61 61 try { 62 progressMonitor.indeterminateSubTask(tr("Contacting OSM Server..."));63 62 final String urlStr = primitiveType.getAPIName() + '/' + id + "/history"; 63 progressMonitor.indeterminateSubTask(tr("Contacting OSM Server for {0}", urlStr)); 64 64 65 65 try (InputStream in = getInputStream(urlStr, progressMonitor.createSubTaskMonitor(1, true))) { 66 66 if (in == null)