org.openstreetmap.josm.actions.downloadtasks
Class DownloadGpsTask

java.lang.Object
  extended by org.openstreetmap.josm.actions.downloadtasks.AbstractDownloadTask
      extended by org.openstreetmap.josm.actions.downloadtasks.DownloadGpsTask
All Implemented Interfaces:
DownloadTask

public class DownloadGpsTask
extends AbstractDownloadTask


Nested Class Summary
(package private)  class DownloadGpsTask.DownloadTask
           
 
Field Summary
private  DownloadGpsTask.DownloadTask downloadTask
           
protected  java.lang.String newLayerName
           
private static java.lang.String PATTERN_EXTERNAL_GPX_FILE
           
private static java.lang.String PATTERN_EXTERNAL_GPX_SCRIPT
           
private static java.lang.String PATTERN_TRACE_ID
           
private static java.lang.String PATTERN_TRACKPOINTS_BBOX
           
 
Constructor Summary
DownloadGpsTask()
           
 
Method Summary
 boolean acceptsUrl(java.lang.String url)
          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(boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor)
          Asynchronously launches the download task for a given bounding box.
 java.util.concurrent.Future<?> loadUrl(boolean newLayer, 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
getErrorObjects, isCanceled, isFailed, rememberErrorMessage, rememberException, setCanceled, setFailed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

downloadTask

private DownloadGpsTask.DownloadTask downloadTask

PATTERN_TRACE_ID

private static final java.lang.String PATTERN_TRACE_ID
See Also:
Constant Field Values

PATTERN_TRACKPOINTS_BBOX

private static final java.lang.String PATTERN_TRACKPOINTS_BBOX
See Also:
Constant Field Values

PATTERN_EXTERNAL_GPX_SCRIPT

private static final java.lang.String PATTERN_EXTERNAL_GPX_SCRIPT
See Also:
Constant Field Values

PATTERN_EXTERNAL_GPX_FILE

private static final java.lang.String PATTERN_EXTERNAL_GPX_FILE
See Also:
Constant Field Values

newLayerName

protected java.lang.String newLayerName
Constructor Detail

DownloadGpsTask

public DownloadGpsTask()
Method Detail

download

public java.util.concurrent.Future<?> download(boolean newLayer,
                                               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 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();
       }
    }
    Main.worker.submit(runAfterTask);
 

Parameters:
newLayer - true, if the data is to be downloaded into a new layer. If false, the task selects one of the existing layers as download layer, preferably the active layer.
downloadArea - the area to download
progressMonitor - the progressMonitor
Returns:
the future representing the asynchronous task

loadUrl

public java.util.concurrent.Future<?> loadUrl(boolean newLayer,
                                              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:
newLayer - newLayer true, if the data is to be downloaded into a new layer. If false, the task selects one of the existing layers as download layer, preferably the active layer.
url - the url to download from
progressMonitor - the progressMonitor
Returns:
the future representing the asynchronous task
See Also:
DownloadTask.download(boolean, Bounds, ProgressMonitor)

acceptsUrl

public boolean acceptsUrl(java.lang.String url)
Description copied from interface: DownloadTask
Returns true if the task is able to open the given URL, false otherwise.

Parameters:
url - the url to download from
Returns:
True if the task is able to open the given URL, false otherwise.

cancel

public void cancel()
Description copied from interface: DownloadTask
Cancels the asynchronous download task.



JOSM