Class DownloadSessionTask
- java.lang.Object
-
- org.openstreetmap.josm.actions.downloadtasks.AbstractDownloadTask<java.lang.Object>
-
- org.openstreetmap.josm.actions.downloadtasks.DownloadSessionTask
-
- All Implemented Interfaces:
DownloadTask
public class DownloadSessionTask extends AbstractDownloadTask<java.lang.Object>
Task allowing to download JOSM session (*.jos, *.joz file).- Since:
- 6215
-
-
Field Summary
Fields Modifier and Type Field Description private SessionLoadAction.Loader
loader
private static java.lang.String
PATTERN_SESSION
-
Fields inherited from class org.openstreetmap.josm.actions.downloadtasks.AbstractDownloadTask
downloadedData, zoomAfterDownload
-
-
Constructor Summary
Constructors Constructor Description DownloadSessionTask()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.lang.String[]
getPatterns()
Returns regular expressions that match the URLsjava.lang.String
getTitle()
Returns human-readable description of the taskboolean
isSafeForRemotecontrolRequests()
Do not allow to load a session file via remotecontrol.java.util.concurrent.Future<?>
loadUrl(DownloadParams settings, java.lang.String url, ProgressMonitor progressMonitor)
Asynchronously launches the download task for a given bounding URL.-
Methods inherited from class org.openstreetmap.josm.actions.downloadtasks.AbstractDownloadTask
acceptsUrl, acceptsUrl, getDownloadedData, getDownloadProjectionBounds, getErrorObjects, isCanceled, isFailed, patterns, rememberDownloadedData, rememberErrorMessage, rememberException, setCanceled, setFailed, setZoomAfterDownload, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.openstreetmap.josm.actions.downloadtasks.DownloadTask
acceptsDocumentationSummary, getErrorMessages
-
-
-
-
Field Detail
-
PATTERN_SESSION
private static final java.lang.String PATTERN_SESSION
- See Also:
- Constant Field Values
-
loader
private SessionLoadAction.Loader loader
-
-
Constructor Detail
-
DownloadSessionTask
public DownloadSessionTask()
-
-
Method Detail
-
getTitle
public java.lang.String getTitle()
Description copied from interface:DownloadTask
Returns human-readable description of the task- Specified by:
getTitle
in interfaceDownloadTask
- Overrides:
getTitle
in classAbstractDownloadTask<java.lang.Object>
- Returns:
- The task description
-
getPatterns
public java.lang.String[] getPatterns()
Description copied from interface:DownloadTask
Returns regular expressions that match the URLs- Specified by:
getPatterns
in interfaceDownloadTask
- Overrides:
getPatterns
in classAbstractDownloadTask<java.lang.Object>
- Returns:
- The array of accepted URL patterns
-
download
public java.util.concurrent.Future<?> download(DownloadParams settings, Bounds downloadArea, ProgressMonitor progressMonitor)
Description copied from interface:DownloadTask
Asynchronously launches the download task for a given bounding box.Set
progressMonitor
to null, if the task should create, open, and close a progress monitor. Set progressMonitor toNullProgressMonitor.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);
- Parameters:
settings
- download settingsdownloadArea
- the area to downloadprogressMonitor
- the progressMonitor- Returns:
- the future representing the asynchronous task
-
loadUrl
public java.util.concurrent.Future<?> loadUrl(DownloadParams settings, java.lang.String url, ProgressMonitor progressMonitor)
Description copied from interface:DownloadTask
Asynchronously launches the download task for a given bounding URL.Set 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.- Parameters:
settings
- download settingsurl
- the url to download fromprogressMonitor
- the progressMonitor- Returns:
- the future representing the asynchronous task
- See Also:
DownloadTask.download(DownloadParams, Bounds, ProgressMonitor)
-
cancel
public void cancel()
Description copied from interface:DownloadTask
Cancels the asynchronous download task.
-
getConfirmationMessage
public java.lang.String getConfirmationMessage(java.net.URL url)
Description copied from interface:DownloadTask
Replies the HTML-formatted confirmation message to be shown to user when the given URL needs to be confirmed before loading.- Parameters:
url
- The URL to be confirmed- Returns:
- The HTML-formatted confirmation message to be shown to user
-
isSafeForRemotecontrolRequests
public boolean isSafeForRemotecontrolRequests()
Do not allow to load a session file via remotecontrol. Session importers can be added by plugins and there is currently no way to ensure that these are safe for remotecontol.- Overrides:
isSafeForRemotecontrolRequests
in classAbstractDownloadTask<java.lang.Object>
- Returns:
true
if session import is allowed
-
-