Changeset 13927 in josm for trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
- Timestamp:
- 2018-06-13T22:17:23+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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 }
Note:
See TracChangeset
for help on using the changeset viewer.