public interface DownloadTask
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
acceptsDocumentationSummary()
Returns a short HTML documentation string, describing acceptable URLs.
|
boolean |
acceptsUrl(java.lang.String url,
boolean isRemotecontrol)
Returns true if the task is able to open the given URL, false otherwise.
|
void |
cancel()
Cancels the asynchronous download task.
|
java.util.concurrent.Future<?> |
download(DownloadParams settings,
Bounds downloadArea,
ProgressMonitor progressMonitor)
Asynchronously launches the download task for a given bounding box.
|
java.lang.String |
getConfirmationMessage(java.net.URL url)
Replies the HTML-formatted confirmation message to be shown to user when the given URL needs to be confirmed before loading.
|
java.util.List<java.lang.Object> |
getErrorObjects()
Replies the error objects of the task.
|
java.lang.String[] |
getPatterns()
Returns regular expressions that match the URLs
|
java.lang.String |
getTitle()
Returns human-readable description of the task
|
java.util.concurrent.Future<?> |
loadUrl(DownloadParams settings,
java.lang.String url,
ProgressMonitor progressMonitor)
Asynchronously launches the download task for a given bounding URL.
|
void |
setZoomAfterDownload(boolean zoomAfterDownload)
Sets whether the map view will zoom to download area after download
|
java.util.concurrent.Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor)
progressMonitor to null, if the task should create, open, and close a progress monitor.
Set progressMonitor to NullProgressMonitor.INSTANCE if progress information is to
be discarded.
You can wait for the asynchronous download task to finish by synchronizing on the returned
Future, but make sure not to freeze up JOSM. Example:
Future<?> future = task.download(...);
// DON'T run this on the Swing EDT or JOSM will freeze
future.get(); // waits for the dowload task to complete
The following example uses a pattern which is better suited if a task is launched from
the Swing EDT:
final Future<?> future = task.download(...);
Runnable runAfterTask = new Runnable() {
public void run() {
// this is not strictly necessary because of the type of executor service
// Main.worker is initialized with, but it doesn't harm either
//
future.get(); // wait for the download task to complete
doSomethingAfterTheTaskCompleted();
}
}
MainApplication.worker.submit(runAfterTask);
settings - download settingsdownloadArea - the area to downloadprogressMonitor - the progressMonitorjava.util.concurrent.Future<?> loadUrl(DownloadParams settings, java.lang.String url, ProgressMonitor progressMonitor)
NullProgressMonitor.INSTANCE if progress information is to
be discarded.settings - download settingsurl - the url to download fromprogressMonitor - the progressMonitordownload(DownloadParams, Bounds, ProgressMonitor)boolean acceptsUrl(java.lang.String url, boolean isRemotecontrol)
url - the url to download fromisRemotecontrol - True if download request comes from remotecontrol.java.lang.String acceptsDocumentationSummary()
java.lang.String getTitle()
java.lang.String[] getPatterns()
java.util.List<java.lang.Object> getErrorObjects()
Strings with error messages or Exceptions.void cancel()
java.lang.String getConfirmationMessage(java.net.URL url)
url - The URL to be confirmedvoid setZoomAfterDownload(boolean zoomAfterDownload)
zoomAfterDownload - if true, the map view will zoom to download area after download