source: josm/trunk/src/org/openstreetmap/josm/actions/DownloadOsmInViewAction.java@ 17049

Last change on this file since 17049 was 17049, checked in by stoecker, 5 years ago

fix #19836 - add possibility for shortcuts to two actions

File size: 2.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.event.ActionEvent;
7import java.awt.event.KeyEvent;
8import java.util.concurrent.Future;
9
10import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask;
11import org.openstreetmap.josm.actions.downloadtasks.DownloadParams;
12import org.openstreetmap.josm.actions.downloadtasks.PostDownloadHandler;
13import org.openstreetmap.josm.data.Bounds;
14import org.openstreetmap.josm.gui.MainApplication;
15import org.openstreetmap.josm.io.BoundingBoxDownloader;
16import org.openstreetmap.josm.io.NetworkManager;
17import org.openstreetmap.josm.io.OnlineResource;
18import org.openstreetmap.josm.tools.Shortcut;
19
20/**
21 * Action that downloads the OSM data within the current view from the server.
22 *
23 * No interaction is required.
24 */
25public final class DownloadOsmInViewAction extends JosmAction {
26
27 /**
28 * Creates a new {@code DownloadOsmInViewAction}.
29 */
30 public DownloadOsmInViewAction() {
31 super(tr("Download in current view"), "download_in_view", tr("Download map data from the OSM server in current view"),
32 Shortcut.registerShortcut("file:downloadosminview",
33 tr("Download in current view"), KeyEvent.CHAR_UNDEFINED, Shortcut.NONE), false,
34 "dialogs/download_in_view", true);
35 }
36
37 @Override
38 public void actionPerformed(ActionEvent e) {
39 final Bounds bounds = MainApplication.getMap().mapView.getRealBounds();
40 DownloadOsmInViewTask task = new DownloadOsmInViewTask();
41 task.setZoomAfterDownload(false);
42 Future<?> future = task.download(bounds);
43 MainApplication.worker.submit(new PostDownloadHandler(task, future));
44 }
45
46 @Override
47 protected boolean listenToSelectionChange() {
48 return false;
49 }
50
51 @Override
52 protected void updateEnabledState() {
53 setEnabled(getLayerManager().getActiveLayer() != null
54 && !NetworkManager.isOffline(OnlineResource.OSM_API));
55 }
56
57 private static class DownloadOsmInViewTask extends DownloadOsmTask {
58 Future<?> download(Bounds downloadArea) {
59 return download(new DownloadTask(new DownloadParams(), new BoundingBoxDownloader(downloadArea), null, false), downloadArea);
60 }
61 }
62}
Note: See TracBrowser for help on using the repository browser.