001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.plugins.streetside.io.download;
003
004import org.apache.log4j.Logger;
005import org.openstreetmap.josm.data.Bounds;
006import org.openstreetmap.josm.plugins.streetside.StreetsideLayer;
007import org.openstreetmap.josm.plugins.streetside.gui.StreetsideMainDialog;
008import org.openstreetmap.josm.plugins.streetside.utils.PluginState;
009import org.openstreetmap.josm.plugins.streetside.utils.StreetsideUtils;
010
011public class StreetsideSquareDownloadRunnable implements Runnable {
012
013  final static Logger logger = Logger.getLogger(StreetsideSquareDownloadRunnable.class);
014
015  private final Bounds bounds;
016
017  /**
018   * Main constructor.
019   *
020   * @param bounds the bounds of the area that should be downloaded
021   *
022   */
023  public StreetsideSquareDownloadRunnable(Bounds bounds) {
024    this.bounds = bounds;
025  }
026
027  @Override
028  public void run() {
029    PluginState.startDownload();
030    StreetsideUtils.updateHelpText();
031
032    // Download basic sequence data synchronously
033    new SequenceDownloadRunnable(StreetsideLayer.getInstance().getData(), bounds).run();
034
035    if (Thread.interrupted()) {
036      return;
037    }
038
039    // Image detections are not currently supported for Streetside (Mapillary code removed)
040
041    PluginState.finishDownload();
042
043    StreetsideUtils.updateHelpText();
044    StreetsideLayer.invalidateInstance();
045    StreetsideMainDialog.getInstance().updateImage();
046  }
047}