Changeset 13927 in josm
- Timestamp:
- 2018-06-13T22:17:23+02:00 (7 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 30 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/DownloadNotesInViewAction.java
r12636 r13927 9 9 import org.openstreetmap.josm.Main; 10 10 import org.openstreetmap.josm.actions.downloadtasks.DownloadNotesTask; 11 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 11 12 import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler; 12 13 import org.openstreetmap.josm.data.Bounds; … … 47 48 DownloadNotesTask task = new DownloadNotesTask(); 48 49 task.setZoomAfterDownload(false); 49 Future<?> future = task.download( false, bounds, null);50 Future<?> future = task.download(new DownloadParams(), bounds, null); 50 51 MainApplication.worker.submit(new PostDownloadHandler(task, future)); 51 52 } -
trunk/src/org/openstreetmap/josm/actions/DownloadOsmInViewAction.java
r12636 r13927 9 9 import org.openstreetmap.josm.Main; 10 10 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask; 11 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 11 12 import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler; 12 13 import org.openstreetmap.josm.data.Bounds; … … 47 48 private static class DownloadOsmInViewTask extends DownloadOsmTask { 48 49 Future<?> download(Bounds downloadArea) { 49 return download(new DownloadTask( false, new BoundingBoxDownloader(downloadArea), null, false), downloadArea);50 return download(new DownloadTask(new DownloadParams(), new BoundingBoxDownloader(downloadArea), null, false), downloadArea); 50 51 } 51 52 } -
trunk/src/org/openstreetmap/josm/actions/OpenLocationAction.java
r13607 r13927 36 36 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmUrlTask; 37 37 import org.openstreetmap.josm.actions.downloadtasks.DownloadSessionTask; 38 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 38 39 import org.openstreetmap.josm.actions.downloadtasks.DownloadTask; 39 40 import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler; … … 225 226 */ 226 227 public List<Future<?>> openUrl(boolean newLayer, String url) { 227 return openUrl(newLayer, DOWNLOAD_ZOOMTODATA.get(), url); 228 return openUrl(new DownloadParams().withNewLayer(newLayer), url); 229 } 230 231 /** 232 * Open the given URL. 233 * @param settings download settings 234 * @param url The URL to open 235 * @return the list of tasks that have been started successfully (can be empty). 236 * @since 13927 237 */ 238 public List<Future<?>> openUrl(DownloadParams settings, String url) { 239 return openUrl(settings, DOWNLOAD_ZOOMTODATA.get(), url); 228 240 } 229 241 … … 247 259 */ 248 260 public List<Future<?>> openUrl(boolean newLayer, boolean zoomToData, String url) { 261 return openUrl(new DownloadParams().withNewLayer(newLayer), zoomToData, url); 262 } 263 264 /** 265 * Open the given URL. 266 * @param settings download settings 267 * @param zoomToData true to zoom to entire newly downloaded data, false otherwise 268 * @param url The URL to open 269 * @return the list of tasks that have been started successfully (can be empty). 270 * @since 13927 271 */ 272 public List<Future<?>> openUrl(DownloadParams settings, boolean zoomToData, String url) { 249 273 Collection<DownloadTask> tasks = findDownloadTasks(url, false); 250 274 … … 262 286 try { 263 287 task.setZoomAfterDownload(zoomToData); 264 result.add(MainApplication.worker.submit(new PostDownloadHandler(task, task.loadUrl( newLayer, url, monitor))));288 result.add(MainApplication.worker.submit(new PostDownloadHandler(task, task.loadUrl(settings, url, monitor)))); 265 289 } catch (IllegalArgumentException e) { 266 290 Logging.error(e); -
trunk/src/org/openstreetmap/josm/actions/SearchNotesDownloadAction.java
r12846 r13927 18 18 import org.openstreetmap.josm.Main; 19 19 import org.openstreetmap.josm.actions.downloadtasks.DownloadNotesTask; 20 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 20 21 import org.openstreetmap.josm.gui.ExtendedDialog; 21 22 import org.openstreetmap.josm.gui.Notification; … … 104 105 .append(Utils.encodeUrl(trimmedSearchTerm)); 105 106 106 new DownloadNotesTask().loadUrl( false, sb.toString(), null);107 new DownloadNotesTask().loadUrl(new DownloadParams(), sb.toString(), null); 107 108 } 108 109 } -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/AbstractChangesetDownloadTask.java
r12634 r13927 92 92 93 93 @Override 94 public final Future<?> download( boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {94 public final Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 95 95 return download(); 96 96 } … … 129 129 130 130 @Override 131 public final Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {131 public final Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 132 132 return downloadTaskRunnable != null ? MainApplication.worker.submit(downloadTaskRunnable) : null; 133 133 } -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
r13572 r13927 59 59 60 60 @Override 61 public Future<?> download( boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {62 downloadTask = new DownloadTask( newLayer,61 public Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 62 downloadTask = new DownloadTask(settings, 63 63 new BoundingBoxDownloader(downloadArea), progressMonitor); 64 64 // We need submit instead of execute so we can wait for it to finish and get the error … … 68 68 69 69 @Override 70 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {70 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 71 71 CheckParameterUtil.ensureParameterNotNull(url, "url"); 72 72 final Optional<String> mappedUrl = Stream.of(GpxUrlPattern.USER_TRACE_ID, GpxUrlPattern.EDIT_TRACE_ID) … … 76 76 .findFirst(); 77 77 if (mappedUrl.isPresent()) { 78 return loadUrl( newLayer, mappedUrl.get(), progressMonitor);78 return loadUrl(settings, mappedUrl.get(), progressMonitor); 79 79 } 80 80 if (Stream.of(GpxUrlPattern.TRACE_ID, GpxUrlPattern.EXTERNAL_GPX_SCRIPT, 81 81 GpxUrlPattern.EXTERNAL_GPX_FILE, GpxUrlPattern.TASKING_MANAGER) 82 82 .anyMatch(p -> url.matches(p.pattern()))) { 83 downloadTask = new DownloadTask( newLayer,83 downloadTask = new DownloadTask(settings, 84 84 new OsmServerLocationReader(url), progressMonitor); 85 85 // Extract .gpx filename from URL to set the new layer name … … 94 94 for (int i = 0; i < table.length; i++) { 95 95 if ("bbox".equals(table[i]) && i < table.length-1) 96 return download( newLayer, new Bounds(table[i+1], ",", ParseMethod.LEFT_BOTTOM_RIGHT_TOP), progressMonitor);96 return download(settings, new Bounds(table[i+1], ",", ParseMethod.LEFT_BOTTOM_RIGHT_TOP), progressMonitor); 97 97 } 98 98 } … … 117 117 private final boolean newLayer; 118 118 119 DownloadTask( boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor) {119 DownloadTask(DownloadParams settings, OsmServerReader reader, ProgressMonitor progressMonitor) { 120 120 super(tr("Downloading GPS data"), progressMonitor, false); 121 121 this.reader = reader; 122 this.newLayer = newLayer;122 this.newLayer = settings.isNewLayer(); 123 123 } 124 124 -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTask.java
r13761 r13927 67 67 68 68 @Override 69 public Future<?> download( boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {69 public Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 70 70 downloadTask = new DownloadBoundingBoxTask(new BoundingBoxDownloader(downloadArea), progressMonitor); 71 71 return MainApplication.worker.submit(downloadTask); … … 73 73 74 74 @Override 75 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {75 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 76 76 if (url.matches(PATTERN_COMPRESS)) { 77 77 downloadTask = new DownloadCompressedRawUrlTask(new OsmServerLocationReader(url), progressMonitor, Compression.byExtension(url)); -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesUrlBoundsTask.java
r12284 r13927 18 18 19 19 @Override 20 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {21 return download( newLayer, OsmUrlToBounds.parse(url), null);20 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 21 return download(settings, OsmUrlToBounds.parse(url), null); 22 22 } 23 23 -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesUrlIdTask.java
r12284 r13927 21 21 22 22 @Override 23 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {23 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 24 24 final Matcher matcher = Pattern.compile(URL_ID_PATTERN).matcher(url); 25 25 if (matcher.matches()) { -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeCompressedTask.java
r13352 r13927 33 33 /** 34 34 * Loads a given URL 35 * @param newLayer {@code true} if the data should be saved to a new layer35 * @param settings download settings 36 36 * @param url The URL as String 37 37 * @param progressMonitor progress monitor for user interaction 38 38 */ 39 39 @Override 40 public Future<?> loadUrl( boolean newLayer, final String url, ProgressMonitor progressMonitor) {41 downloadTask = new DownloadTask( newLayer, new OsmServerLocationReader(url), progressMonitor) {40 public Future<?> loadUrl(DownloadParams settings, final String url, ProgressMonitor progressMonitor) { 41 downloadTask = new DownloadTask(settings, new OsmServerLocationReader(url), progressMonitor) { 42 42 @Override 43 43 protected DataSet parseDataSet() throws OsmTransferException { … … 48 48 currentBounds = null; 49 49 // Extract .osc.gz/xz/bz/bz2/zip filename from URL to set the new layer name 50 extractOsmFilename(PATTERN_COMPRESS, url); 50 extractOsmFilename(settings, PATTERN_COMPRESS, url); 51 51 return MainApplication.worker.submit(downloadTask); 52 52 } -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java
r12635 r13927 62 62 63 63 @Override 64 public Future<?> download(boolean newLayer, Bounds downloadArea, 65 ProgressMonitor progressMonitor) { 64 public Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 66 65 return null; 67 66 } 68 67 69 68 @Override 70 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {69 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 71 70 final Matcher matcher = Pattern.compile(OSM_WEBSITE_PATTERN).matcher(url); 72 71 if (matcher.matches()) { 73 72 url = OsmApi.getOsmApi().getBaseUrl() + "changeset/" + Long.parseLong(matcher.group(2)) + "/download"; 74 73 } 75 downloadTask = new DownloadTask( newLayer, new OsmServerLocationReader(url), progressMonitor);74 downloadTask = new DownloadTask(settings, new OsmServerLocationReader(url), progressMonitor); 76 75 // Extract .osc filename from URL to set the new layer name 77 extractOsmFilename("https?://.*/(.*\\.osc)", url); 76 extractOsmFilename(settings, "https?://.*/(.*\\.osc)", url); 78 77 return MainApplication.worker.submit(downloadTask); 79 78 } … … 86 85 /** 87 86 * Constructs a new {@code DownloadTask}. 88 * @param newLayer if {@code true}, forcedownloadto a new layer87 * @param settings download settings 89 88 * @param reader OSM data reader 90 89 * @param progressMonitor progress monitor 91 90 */ 92 public DownloadTask( boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor) {93 super( newLayer, reader, progressMonitor);91 public DownloadTask(DownloadParams settings, OsmServerReader reader, ProgressMonitor progressMonitor) { 92 super(settings, reader, progressMonitor); 94 93 } 95 94 -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmCompressedTask.java
r13352 r13927 33 33 34 34 @Override 35 public Future<?> download( boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {35 public Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 36 36 return null; 37 37 } … … 39 39 /** 40 40 * Loads a given URL 41 * @param newLayer {@code true} if the data should be saved to a new layer41 * @param settings download settings 42 42 * @param url The URL as String 43 43 * @param progressMonitor progress monitor for user interaction 44 44 */ 45 45 @Override 46 public Future<?> loadUrl( boolean newLayer, final String url, ProgressMonitor progressMonitor) {47 downloadTask = new DownloadTask( newLayer, new OsmServerLocationReader(url), progressMonitor) {46 public Future<?> loadUrl(DownloadParams settings, final String url, ProgressMonitor progressMonitor) { 47 downloadTask = new DownloadTask(settings, new OsmServerLocationReader(url), progressMonitor) { 48 48 @Override 49 49 protected DataSet parseDataSet() throws OsmTransferException { … … 54 54 currentBounds = null; 55 55 // Extract .osm.gz/bz/bz2/zip filename from URL to set the new layer name 56 extractOsmFilename(PATTERN_COMPRESS, url); 56 extractOsmFilename(settings, PATTERN_COMPRESS, url); 57 57 return MainApplication.worker.submit(downloadTask); 58 58 } -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmIdTask.java
r12634 r13927 32 32 33 33 @Override 34 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {34 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 35 35 final Matcher matcher = Pattern.compile(URL_ID_PATTERN).matcher(url); 36 36 if (matcher.matches()) { … … 39 39 final PrimitiveId primitiveId = new SimplePrimitiveId(id, type); 40 40 final DownloadPrimitivesWithReferrersTask downloadTask = new DownloadPrimitivesWithReferrersTask( 41 newLayer, Collections.singletonList(primitiveId), true, true, null, null);41 settings.isNewLayer(), Collections.singletonList(primitiveId), true, true, null, null); 42 42 return MainApplication.worker.submit(downloadTask); 43 43 } else { -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
r13612 r13927 77 77 78 78 @Override 79 public Future<?> download( boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {80 return download(new BoundingBoxDownloader(downloadArea), newLayer, downloadArea, progressMonitor);79 public Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 80 return download(new BoundingBoxDownloader(downloadArea), settings, downloadArea, progressMonitor); 81 81 } 82 82 … … 112 112 * </pre> 113 113 * @param reader the reader used to parse OSM data (see {@link OsmServerReader#parseOsm}) 114 * @param newLayer true, if the data is to be downloaded into a new layer. If false, the task 115 * selects one of the existing layers as download layer, preferably the active layer. 114 * @param settings download settings 116 115 * @param downloadArea the area to download 117 116 * @param progressMonitor the progressMonitor 118 117 * @return the future representing the asynchronous task 119 118 */ 120 public Future<?> download(OsmServerReader reader, boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {121 return download(new DownloadTask( newLayer, reader, progressMonitor, zoomAfterDownload), downloadArea);119 public Future<?> download(OsmServerReader reader, DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 120 return download(new DownloadTask(settings, reader, progressMonitor, zoomAfterDownload), downloadArea); 122 121 } 123 122 … … 141 140 /** 142 141 * Loads a given URL from the OSM Server 143 * @param newLayer True if the data should be saved to a new layer142 * @param settings download settings 144 143 * @param url The URL as String 145 144 */ 146 145 @Override 147 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {146 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 148 147 String newUrl = modifyUrlBeforeLoad(url); 149 downloadTask = new DownloadTask( newLayer,148 downloadTask = new DownloadTask(settings, 150 149 new OsmServerLocationReader(newUrl), 151 150 progressMonitor); 152 151 currentBounds = null; 153 152 // Extract .osm filename from URL to set the new layer name 154 extractOsmFilename("https?://.*/(.*\\.osm)", newUrl); 153 extractOsmFilename(settings, "https?://.*/(.*\\.osm)", newUrl); 155 154 return MainApplication.worker.submit(downloadTask); 156 155 } 157 156 158 protected final void extractOsmFilename(String pattern, String url) { 159 Matcher matcher = Pattern.compile(pattern).matcher(url); 160 newLayerName = matcher.matches() ? matcher.group(1) : null; 157 protected final void extractOsmFilename(DownloadParams settings, String pattern, String url) { 158 newLayerName = settings.getLayerName(); 159 if (newLayerName == null || newLayerName.isEmpty()) { 160 Matcher matcher = Pattern.compile(pattern).matcher(url); 161 newLayerName = matcher.matches() ? matcher.group(1) : null; 162 } 161 163 } 162 164 … … 190 192 /** 191 193 * Constructs a new {@code AbstractInternalTask}. 192 * @param newLayer if {@code true}, forcedownloadto a new layer194 * @param settings download settings 193 195 * @param title message for the user 194 196 * @param ignoreException If true, exception will be propagated to calling code. If false then … … 197 199 * @param zoomAfterDownload If true, the map view will zoom to download area after download 198 200 */ 199 public AbstractInternalTask( boolean newLayer, String title, boolean ignoreException, boolean zoomAfterDownload) {201 public AbstractInternalTask(DownloadParams settings, String title, boolean ignoreException, boolean zoomAfterDownload) { 200 202 super(title, ignoreException); 201 this.newLayer = newLayer;203 this.newLayer = settings.isNewLayer(); 202 204 this.zoomAfterDownload = zoomAfterDownload; 203 205 } … … 205 207 /** 206 208 * Constructs a new {@code AbstractInternalTask}. 207 * @param newLayer if {@code true}, forcedownloadto a new layer209 * @param settings download settings 208 210 * @param title message for the user 209 211 * @param progressMonitor progress monitor … … 213 215 * @param zoomAfterDownload If true, the map view will zoom to download area after download 214 216 */ 215 public AbstractInternalTask( boolean newLayer, String title, ProgressMonitor progressMonitor, boolean ignoreException,217 public AbstractInternalTask(DownloadParams settings, String title, ProgressMonitor progressMonitor, boolean ignoreException, 216 218 boolean zoomAfterDownload) { 217 219 super(title, progressMonitor, ignoreException); 218 this.newLayer = newLayer;220 this.newLayer = settings.isNewLayer(); 219 221 this.zoomAfterDownload = zoomAfterDownload; 220 222 } … … 348 350 /** 349 351 * Constructs a new {@code DownloadTask}. 350 * @param newLayer if {@code true}, forcedownloadto a new layer352 * @param settings download settings 351 353 * @param reader OSM data reader 352 354 * @param progressMonitor progress monitor 353 */ 354 public DownloadTask(boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor) { 355 this(newLayer, reader, progressMonitor, true); 355 * @since 13927 356 */ 357 public DownloadTask(DownloadParams settings, OsmServerReader reader, ProgressMonitor progressMonitor) { 358 this(settings, reader, progressMonitor, true); 356 359 } 357 360 358 361 /** 359 362 * Constructs a new {@code DownloadTask}. 360 * @param newLayer if {@code true}, forcedownloadto a new layer363 * @param settings download settings 361 364 * @param reader OSM data reader 362 365 * @param progressMonitor progress monitor 363 366 * @param zoomAfterDownload If true, the map view will zoom to download area after download 364 * @since 8942365 */ 366 public DownloadTask( boolean newLayer, OsmServerReader reader, ProgressMonitor progressMonitor, boolean zoomAfterDownload) {367 super( newLayer, tr("Downloading data"), progressMonitor, false, zoomAfterDownload);367 * @since 13927 368 */ 369 public DownloadTask(DownloadParams settings, OsmServerReader reader, ProgressMonitor progressMonitor, boolean zoomAfterDownload) { 370 super(settings, tr("Downloading data"), progressMonitor, false, zoomAfterDownload); 368 371 this.reader = reader; 369 372 } -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmUrlTask.java
r11329 r13927 17 17 18 18 @Override 19 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {20 return download( newLayer, OsmUrlToBounds.parse(url), null);19 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 20 return download(settings, OsmUrlToBounds.parse(url), null); 21 21 } 22 22 -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadSessionTask.java
r12846 r13927 38 38 39 39 @Override 40 public Future<?> download( boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {40 public Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 41 41 return null; 42 42 } 43 43 44 44 @Override 45 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {45 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 46 46 if (url != null && (url.matches(PATTERN_SESSION))) { 47 47 try { -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java
r13261 r13927 46 46 * </pre> 47 47 * 48 * @param newLayer true, if the data is to be downloaded into a new layer. If false, the task 49 * selects one of the existing layers as download layer, preferably the active layer. 48 * @param settings download settings 50 49 * 51 50 * @param downloadArea the area to download 52 51 * @param progressMonitor the progressMonitor 53 52 * @return the future representing the asynchronous task 53 * @since 13927 54 54 */ 55 Future<?> download( boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor);55 Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor); 56 56 57 57 /** … … 62 62 * be discarded. 63 63 64 * @param newLayer newLayer true, if the data is to be downloaded into a new layer. If false, the task 65 * selects one of the existing layers as download layer, preferably the active layer. 64 * @param settings download settings 66 65 * @param url the url to download from 67 66 * @param progressMonitor the progressMonitor 68 67 * @return the future representing the asynchronous task 69 68 * 70 * @see #download(boolean, Bounds, ProgressMonitor) 69 * @see #download(DownloadParams, Bounds, ProgressMonitor) 70 * @since 13927 71 71 */ 72 Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor);72 Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor); 73 73 74 74 /** -
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadTaskList.java
r13842 r13927 55 55 ProgressMonitor childProgress = progressMonitor.createSubTaskMonitor(1, false); 56 56 childProgress.setCustomText(tr("Download {0} of {1} ({2} left)", i, n, n - i)); 57 Future<?> future = dt.download( false, new Bounds(td), childProgress);57 Future<?> future = dt.download(new DownloadParams(), new Bounds(td), childProgress); 58 58 taskFutures.add(future); 59 59 tasks.add(dt); -
trunk/src/org/openstreetmap/josm/gui/MainApplication.java
r13926 r13927 80 80 import org.openstreetmap.josm.actions.downloadtasks.DownloadGpsTask; 81 81 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask; 82 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 82 83 import org.openstreetmap.josm.actions.downloadtasks.DownloadTask; 83 84 import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler; … … 1370 1371 DownloadTask task = rawGps ? new DownloadGpsTask() : new DownloadOsmTask(); 1371 1372 // asynchronously launch the download task ... 1372 Future<?> future = task.download( true, b, null);1373 Future<?> future = task.download(new DownloadParams().withNewLayer(true), b, null); 1373 1374 // ... and the continuation when the download is finished (this will wait for the download to finish) 1374 1375 return Collections.singletonList(MainApplication.worker.submit(new PostDownloadHandler(task, future))); -
trunk/src/org/openstreetmap/josm/gui/download/OSMDownloadSource.java
r13501 r13927 23 23 import org.openstreetmap.josm.actions.downloadtasks.DownloadNotesTask; 24 24 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask; 25 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 25 26 import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler; 26 27 import org.openstreetmap.josm.data.Bounds; … … 64 65 DownloadOsmTask task = new DownloadOsmTask(); 65 66 task.setZoomAfterDownload(zoom && !data.isDownloadGPX() && !data.isDownloadNotes()); 66 Future<?> future = task.download(new Layer, bbox, null);67 Future<?> future = task.download(new DownloadParams().withNewLayer(newLayer), bbox, null); 67 68 MainApplication.worker.submit(new PostDownloadHandler(task, future)); 68 69 if (zoom) { … … 74 75 DownloadGpsTask task = new DownloadGpsTask(); 75 76 task.setZoomAfterDownload(zoom && !data.isDownloadOSMData() && !data.isDownloadNotes()); 76 Future<?> future = task.download(new Layer, bbox, null);77 Future<?> future = task.download(new DownloadParams().withNewLayer(newLayer), bbox, null); 77 78 MainApplication.worker.submit(new PostDownloadHandler(task, future)); 78 79 if (zoom) { … … 84 85 DownloadNotesTask task = new DownloadNotesTask(); 85 86 task.setZoomAfterDownload(zoom && !data.isDownloadOSMData() && !data.isDownloadGPX()); 86 Future<?> future = task.download( false, bbox, null);87 Future<?> future = task.download(new DownloadParams(), bbox, null); 87 88 MainApplication.worker.submit(new PostDownloadHandler(task, future)); 88 89 if (zoom) { -
trunk/src/org/openstreetmap/josm/gui/download/OverpassDownloadSource.java
r13335 r13927 26 26 27 27 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask; 28 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 28 29 import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler; 29 30 import org.openstreetmap.josm.data.Bounds; … … 63 64 Future<?> future = task.download( 64 65 new OverpassDownloadReader(area, OverpassDownloadReader.OVERPASS_SERVER.get(), data.getQuery()), 65 settings.asNewLayer(), area, null); 66 new DownloadParams().withNewLayer(settings.asNewLayer()), area, null); 66 67 MainApplication.worker.submit(new PostDownloadHandler(task, future, data.getErrorReporter())); 67 68 } -
trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandler.java
r12846 r13927 40 40 // As of 2015-04, Overpass Turbo requires this branch of code ... 41 41 Logging.debug("Remote control, /import: defaulting to DownloadOsmTask"); 42 new DownloadOsmTask().loadUrl( isLoadInNewLayer(), url.toExternalForm(), null);42 new DownloadOsmTask().loadUrl(getDownloadParams(), url.toExternalForm(), null); 43 43 } else if (Config.getPref().getBoolean("remotecontrol.import.interactive", true)) { 44 44 // OpenLocationAction queries the user if more than one task is suitable 45 MainApplication.getMenu().openLocation.openUrl( isLoadInNewLayer(), url.toExternalForm());45 MainApplication.getMenu().openLocation.openUrl(getDownloadParams(), url.toExternalForm()); 46 46 } else { 47 47 // Otherwise perform all tasks 48 48 for (DownloadTask task : suitableDownloadTasks) { 49 task.loadUrl( isLoadInNewLayer(), url.toExternalForm(), null);49 task.loadUrl(getDownloadParams(), url.toExternalForm(), null); 50 50 } 51 51 } … … 64 64 @Override 65 65 public String[] getOptionalParams() { 66 return new String[] {"new_layer"}; 66 return new String[] {"new_layer", "layer_name"}; 67 67 } 68 68 … … 74 74 @Override 75 75 public String[] getUsageExamples() { 76 return new String[] {"/import?url="+Main.getJOSMWebsite()+"/browser/josm/trunk/data_nodist/direction-arrows.osm"}; 76 return new String[] {"/import?url=" + Utils.encodeUrl( 77 Main.getJOSMWebsite()+"/browser/josm/trunk/data_nodist/direction-arrows.osm?format=txt")}; 77 78 } 78 79 -
trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
r13257 r13927 16 16 import org.openstreetmap.josm.actions.AutoScaleAction; 17 17 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask; 18 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 18 19 import org.openstreetmap.josm.actions.downloadtasks.DownloadTask; 19 20 import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler; … … 112 113 @Override 113 114 protected void handleRequest() throws RequestHandlerErrorException { 114 DownloadTask osmTask = new DownloadOsmTask() { 115 { 116 newLayerName = args.get("layer_name"); 117 } 118 }; 115 DownloadTask osmTask = new DownloadOsmTask(); 119 116 try { 120 boolean newLayer = isLoadInNewLayer();117 DownloadParams settings = getDownloadParams(); 121 118 122 119 if (command.equals(myCommand)) { … … 125 122 } else { 126 123 Area toDownload = null; 127 if (! newLayer) {124 if (!settings.isNewLayer()) { 128 125 // find out whether some data has already been downloaded 129 126 Area present = null; … … 148 145 Logging.info("RemoteControl: no download necessary"); 149 146 } else { 150 Future<?> future = osmTask.download( newLayer, new Bounds(minlat, minlon, maxlat, maxlon),147 Future<?> future = osmTask.download(settings, new Bounds(minlat, minlon, maxlat, maxlon), 151 148 null /* let the task manage the progress monitor */); 152 149 MainApplication.worker.submit(new PostDownloadHandler(osmTask, future)); -
trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadDataHandler.java
r12634 r13927 8 8 9 9 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask; 10 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 10 11 import org.openstreetmap.josm.data.osm.DataSet; 11 12 import org.openstreetmap.josm.gui.MainApplication; … … 40 41 @Override 41 42 protected void handleRequest() throws RequestHandlerErrorException { 42 MainApplication.worker.submit(new LoadDataTask( isLoadInNewLayer(), dataSet, args.get("layer_name")));43 MainApplication.worker.submit(new LoadDataTask(getDownloadParams(), dataSet, args.get("layer_name"))); 43 44 } 44 45 … … 103 104 /** 104 105 * Constructs a new {@code LoadDataTask}. 105 * @param newLayer if {@code true}, forcedownloadto a new layer106 * @param settings download settings 106 107 * @param dataSet data set 107 108 * @param layerName layer name 109 * @since 13927 108 110 */ 109 public LoadDataTask( boolean newLayer, DataSet dataSet, String layerName) {110 super( newLayer, tr("Loading data"), false, true);111 public LoadDataTask(DownloadParams settings, DataSet dataSet, String layerName) { 112 super(settings, tr("Loading data"), false, true); 111 113 this.dataSet = dataSet; 112 114 this.layerName = layerName; -
trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadObjectHandler.java
r13827 r13927 63 63 } 64 64 if (!ps.isEmpty()) { 65 final boolean newLayer = isLoadInNewLayer();65 final boolean newLayer = getDownloadParams().isNewLayer(); 66 66 final boolean relationMembers = Boolean.parseBoolean(args.get("relation_members")); 67 67 final boolean referrers = Boolean.parseBoolean(args.get("referrers")); -
trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java
r13827 r13927 20 20 21 21 import org.openstreetmap.josm.Main; 22 import org.openstreetmap.josm.actions.downloadtasks.DownloadParams; 22 23 import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault; 23 24 import org.openstreetmap.josm.spi.preferences.Config; … … 298 299 } 299 300 300 pr otectedboolean isLoadInNewLayer() {301 private boolean isLoadInNewLayer() { 301 302 return args.get("new_layer") != null && !args.get("new_layer").isEmpty() 302 303 ? Boolean.parseBoolean(args.get("new_layer")) 303 304 : Config.getPref().getBoolean(loadInNewLayerKey, loadInNewLayerDefault); 305 } 306 307 protected DownloadParams getDownloadParams() { 308 return new DownloadParams() 309 .withNewLayer(isLoadInNewLayer()) 310 .withLayerName(args.get("layer_name")); 304 311 } 305 312 -
trunk/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTaskTest.java
r13572 r13927 45 45 mockHttp(); 46 46 DownloadGpsTask task = new DownloadGpsTask(); 47 task.loadUrl( false, getRemoteFileUrl(), null).get();47 task.loadUrl(new DownloadParams(), getRemoteFileUrl(), null).get(); 48 48 GpxData data = task.getDownloadedData(); 49 49 assertNotNull(data); -
trunk/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadNotesTaskTest.java
r12558 r13927 40 40 mockHttp(); 41 41 DownloadNotesTask task = new DownloadNotesTask(); 42 task.loadUrl( false, getRemoteFileUrl(), null).get();42 task.loadUrl(new DownloadParams(), getRemoteFileUrl(), null).get(); 43 43 NoteData data = task.getDownloadedData(); 44 44 assertNotNull(data); -
trunk/test/unit/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskTest.java
r12558 r13927 42 42 mockHttp(); 43 43 DownloadOsmTask task = new DownloadOsmTask(); 44 task.loadUrl( false, getRemoteFileUrl(), null).get();44 task.loadUrl(new DownloadParams(), getRemoteFileUrl(), null).get(); 45 45 DataSet ds = task.getDownloadedData(); 46 46 assertNotNull(ds); -
trunk/test/unit/org/openstreetmap/josm/actions/downloadtasks/PostDownloadHandlerTest.java
r13261 r13927 37 37 return new DownloadTask() { 38 38 @Override 39 public Future<?> loadUrl( boolean newLayer, String url, ProgressMonitor progressMonitor) {39 public Future<?> loadUrl(DownloadParams settings, String url, ProgressMonitor progressMonitor) { 40 40 return null; 41 41 } … … 62 62 63 63 @Override 64 public Future<?> download( boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {64 public Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor) { 65 65 return null; 66 66 }
Note:
See TracChangeset
for help on using the changeset viewer.