Class DownloadGpsTask
- java.lang.Object
-
- org.openstreetmap.josm.actions.downloadtasks.AbstractDownloadTask<GpxData>
-
- org.openstreetmap.josm.actions.downloadtasks.DownloadGpsTask
-
- All Implemented Interfaces:
DownloadTask
public class DownloadGpsTask extends AbstractDownloadTask<GpxData>
Task allowing to download GPS data.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
DownloadGpsTask.DownloadTask
-
Field Summary
Fields Modifier and Type Field Description private DownloadGpsTask.DownloadTask
downloadTask
private GpxLayer
gpxLayer
protected java.lang.String
url
-
Fields inherited from class org.openstreetmap.josm.actions.downloadtasks.AbstractDownloadTask
downloadedData, zoomAfterDownload
-
-
Constructor Summary
Constructors Constructor Description DownloadGpsTask()
-
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.ProjectionBounds
getDownloadProjectionBounds()
Returns the projection bounds of downloaded data.java.lang.String[]
getPatterns()
Returns regular expressions that match the URLsjava.lang.String
getTitle()
Returns human-readable description of the taskboolean
isSafeForRemotecontrolRequests()
Check / decide if the task is safe for 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, 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
-
downloadTask
private DownloadGpsTask.DownloadTask downloadTask
-
url
protected java.lang.String url
-
-
Constructor Detail
-
DownloadGpsTask
public DownloadGpsTask()
-
-
Method Detail
-
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<GpxData>
- Returns:
- The array of accepted URL patterns
-
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<GpxData>
- Returns:
- The task description
-
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.
-
getDownloadProjectionBounds
public ProjectionBounds getDownloadProjectionBounds()
Description copied from class:AbstractDownloadTask
Returns the projection bounds of downloaded data.- Overrides:
getDownloadProjectionBounds
in classAbstractDownloadTask<GpxData>
- Returns:
- the projection bounds of downloaded data or
null
-
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()
Description copied from class:AbstractDownloadTask
Check / decide if the task is safe for remotecontrol.Keep in mind that a potential attacker has full control over the content of the file that will be downloaded. If it is possible to run arbitrary code or write to the local file system, then the task is (obviously) not save for remote execution.
The default value is false = unsafe. Override in a subclass to allow running the task via remotecontol.
- Overrides:
isSafeForRemotecontrolRequests
in classAbstractDownloadTask<GpxData>
- Returns:
- true if it is safe to download and open any file of the corresponding format, false otherwise
-
-