Ignore:
Timestamp:
2007-07-24T11:23:01+02:00 (18 years ago)
Author:
imi
Message:
  • added "download to new layer" option
  • added missing color preferences when opening preferences dialog
Location:
src/org/openstreetmap/josm/actions/downloadtasks
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java

    r237 r295  
    1212import org.openstreetmap.josm.gui.PleaseWaitRunnable;
    1313import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
     14import org.openstreetmap.josm.gui.layer.Layer;
    1415import org.openstreetmap.josm.gui.layer.RawGpsLayer;
    1516import org.openstreetmap.josm.gui.layer.RawGpsLayer.GpsPoint;
     
    2324                private DownloadAction action;
    2425                private Collection<Collection<GpsPoint>> rawData;
     26                private final boolean newLayer;
    2527
    26                 public Task(BoundingBoxDownloader reader, DownloadAction action) {
     28                public Task(boolean newLayer, BoundingBoxDownloader reader, DownloadAction action) {
    2729                        super(tr("Downloading GPS data"));
    2830                        this.reader = reader;
    2931                        this.action = action;
     32                        this.newLayer = newLayer;
    3033                }
    3134
     
    3841                                return;
    3942                        String name = action.dialog.minlat + " " + action.dialog.minlon + " x " + action.dialog.maxlat + " " + action.dialog.maxlon;
    40                         Main.main.addLayer(new RawGpsLayer(rawData, name, null));
     43                        RawGpsLayer layer = new RawGpsLayer(true, rawData, name, null);
     44                        if (newLayer || findMergeLayer() == null)
     45                    Main.main.addLayer(layer);
     46                        else
     47                                findMergeLayer().mergeFrom(layer);
    4148                }
     49
     50                private Layer findMergeLayer() {
     51                        if (Main.map == null)
     52                                return null;
     53                Layer active = Main.map.mapView.getActiveLayer();
     54                if (active != null && active instanceof RawGpsLayer)
     55                        return active;
     56                for (Layer l : Main.map.mapView.getAllLayers())
     57                        if (l instanceof RawGpsLayer && ((RawGpsLayer)l).fromServer)
     58                                return l;
     59                return null;
     60        }
    4261
    4362                @Override protected void cancel() {
     
    5069
    5170        public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
    52                 Task task = new Task(new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), action);
     71                Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon), action);
    5372                Main.worker.execute(task);
    5473        }
  • src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java

    r237 r295  
    2525                private BoundingBoxDownloader reader;
    2626                private DataSet dataSet;
     27                private boolean newLayer;
    2728
    28                 public Task(BoundingBoxDownloader reader) {
     29                public Task(boolean newLayer, BoundingBoxDownloader reader) {
    2930                        super(tr("Downloading data"));
    3031                        this.reader = reader;
     32                        this.newLayer = newLayer;
    3133                }
    3234
     
    4042                        if (dataSet.allPrimitives().isEmpty())
    4143                                errorMessage = tr("No data imported.");
    42                         Main.main.addLayer(new OsmDataLayer(dataSet, tr("Data Layer"), null));
     44                        OsmDataLayer layer = new OsmDataLayer(dataSet, tr("Data Layer"), null);
     45                        if (newLayer)
     46                                Main.main.addLayer(layer);
     47                        else
     48                                Main.main.editLayer().mergeFrom(layer);
    4349                }
    4450
     
    5157
    5258        public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
    53                 Task task = new Task(new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
     59                Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
    5460                Main.worker.execute(task);
    5561    }
Note: See TracChangeset for help on using the changeset viewer.