source: josm/trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadSessionTask.java@ 8921

Last change on this file since 8921 was 8921, checked in by Don-vip, 9 years ago

fix compilation warning

  • Property svn:eol-style set to native
File size: 2.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions.downloadtasks;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.io.IOException;
7import java.net.URISyntaxException;
8import java.net.URL;
9import java.util.concurrent.Future;
10
11import org.openstreetmap.josm.Main;
12import org.openstreetmap.josm.actions.SessionLoadAction.Loader;
13import org.openstreetmap.josm.data.Bounds;
14import org.openstreetmap.josm.gui.progress.ProgressMonitor;
15import org.openstreetmap.josm.tools.Utils;
16
17/**
18 * Task allowing to download JOSM session (*.jos, *.joz file).
19 * @since 6215
20 */
21public class DownloadSessionTask extends AbstractDownloadTask<Object> {
22
23 private static final String PATTERN_SESSION = "https?://.*/.*\\.jo(s|z)";
24
25 private Loader loader;
26
27 @Override
28 public String getTitle() {
29 return tr("Download session");
30 }
31
32 @Override
33 public String[] getPatterns() {
34 return new String[]{PATTERN_SESSION};
35 }
36
37 @Override
38 public Future<?> download(boolean newLayer, Bounds downloadArea, ProgressMonitor progressMonitor) {
39 return null;
40 }
41
42 @Override
43 public Future<?> loadUrl(boolean newLayer, String url, ProgressMonitor progressMonitor) {
44 if (url != null && (url.matches(PATTERN_SESSION))) {
45 try {
46 URL u = new URL(url);
47 loader = new Loader(Utils.openURL(u), u.toURI(), url.endsWith(".joz"));
48 return Main.worker.submit(loader);
49 } catch (URISyntaxException | IOException e) {
50 Main.error(e);
51 }
52 }
53 return null;
54 }
55
56 @Override
57 public void cancel() {
58 if (loader != null) {
59 loader.cancel();
60 }
61 }
62
63 @Override
64 public String getConfirmationMessage(URL url) {
65 // TODO
66 return null;
67 }
68
69 /**
70 * Do not allow to load a session file via remotecontrol.
71 *
72 * Session importers can be added by plugins and there is currently
73 * no way to ensure that these are safe for remotecontol.
74 * @return <code>true</code> if session import is allowed
75 */
76 @Override
77 public boolean isSafeForRemotecontrolRequests() {
78 return Main.pref.getBoolean("remotecontrol.import.allow_session", false);
79 }
80}
Note: See TracBrowser for help on using the repository browser.