| 1 | Index: src/org/openstreetmap/josm/actions/OpenLocationAction.java
|
|---|
| 2 | ===================================================================
|
|---|
| 3 | --- src/org/openstreetmap/josm/actions/OpenLocationAction.java (revision 6015)
|
|---|
| 4 | +++ src/org/openstreetmap/josm/actions/OpenLocationAction.java (working copy)
|
|---|
| 5 | @@ -146,7 +146,32 @@
|
|---|
| 6 | return result;
|
|---|
| 7 | }
|
|---|
| 8 |
|
|---|
| 9 | +
|
|---|
| 10 | /**
|
|---|
| 11 | + * Summarizes acceptable urls for error message purposes.
|
|---|
| 12 | + * @since 6015
|
|---|
| 13 | + */
|
|---|
| 14 | + public String findSummaryDocumentation() {
|
|---|
| 15 | + String result = "";
|
|---|
| 16 | + //for (Class<? extends DownloadTask> taskClass : downloadTasks) {
|
|---|
| 17 | + for (int i = 0; i < downloadTasks.size(); i++) {
|
|---|
| 18 | + Class<? extends DownloadTask> taskClass = downloadTasks.get(i);
|
|---|
| 19 | + if (taskClass != null) {
|
|---|
| 20 | + try {
|
|---|
| 21 | + DownloadTask task = taskClass.getConstructor().newInstance();
|
|---|
| 22 | + result += "<br/>" + task.acceptsDocumentationSummary();
|
|---|
| 23 | + } catch (Exception e) {
|
|---|
| 24 | + e.printStackTrace();
|
|---|
| 25 | + }
|
|---|
| 26 | + }
|
|---|
| 27 | + }
|
|---|
| 28 | + return result;
|
|---|
| 29 | + }
|
|---|
| 30 | +
|
|---|
| 31 | +
|
|---|
| 32 | +
|
|---|
| 33 | +
|
|---|
| 34 | + /**
|
|---|
| 35 | * Open the given URL.
|
|---|
| 36 | * @param new_layer true if the URL needs to be opened in a new layer, false otherwise
|
|---|
| 37 | * @param url The URL to open
|
|---|
| 38 | @@ -163,11 +188,12 @@
|
|---|
| 39 | if (future != null) {
|
|---|
| 40 | Main.worker.submit(new PostDownloadHandler(task, future));
|
|---|
| 41 | } else {
|
|---|
| 42 | + final String details = findSummaryDocumentation(); // Explain what patterns are supported
|
|---|
| 43 | SwingUtilities.invokeLater(new Runnable() {
|
|---|
| 44 | public void run() {
|
|---|
| 45 | JOptionPane.showMessageDialog(Main.parent, tr(
|
|---|
| 46 | - "<html>Cannot open URL ''{0}'' because no suitable download task is available.</html>",
|
|---|
| 47 | - url), tr("Download Location"), JOptionPane.ERROR_MESSAGE);
|
|---|
| 48 | + "<html><p>Cannot open URL ''{0}''<br/>The following load tasks accept the URL patterns shown:<br/>{1}</p></html>",
|
|---|
| 49 | + url, details), tr("Download Location"), JOptionPane.ERROR_MESSAGE);
|
|---|
| 50 | }
|
|---|
| 51 | });
|
|---|
| 52 | }
|
|---|
| 53 | Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java
|
|---|
| 54 | ===================================================================
|
|---|
| 55 | --- src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java (revision 6015)
|
|---|
| 56 | +++ src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeTask.java (working copy)
|
|---|
| 57 | @@ -46,7 +46,15 @@
|
|---|
| 58 | || url.matches("https?://.*/.*\\.osc") // Remote .osc files
|
|---|
| 59 | );
|
|---|
| 60 | }
|
|---|
| 61 | -
|
|---|
| 62 | + @Override
|
|---|
| 63 | + public String acceptsDocumentationSummary() {
|
|---|
| 64 | + String foo = "Download OSM Change:<br/";
|
|---|
| 65 | + foo += "<ul>";
|
|---|
| 66 | + foo += "<li>" + "http://.*/api/0.6/changeset/\\p{Digit}+/download"; // Keep in sync with above
|
|---|
| 67 | + foo += "<li>" + "https?://.*/.*\\.osc"; // Keep in sync with above
|
|---|
| 68 | + foo += "</ul>";
|
|---|
| 69 | + return foo;
|
|---|
| 70 | + }
|
|---|
| 71 | /* (non-Javadoc)
|
|---|
| 72 | * @see org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask#download(boolean, org.openstreetmap.josm.data.Bounds, org.openstreetmap.josm.gui.progress.ProgressMonitor)
|
|---|
| 73 | */
|
|---|
| 74 | Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
|
|---|
| 75 | ===================================================================
|
|---|
| 76 | --- src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java (revision 6015)
|
|---|
| 77 | +++ src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java (working copy)
|
|---|
| 78 | @@ -81,7 +81,19 @@
|
|---|
| 79 | return url != null && (url.matches(PATTERN_TRACE_ID) || url.matches(PATTERN_TRACKPOINTS_BBOX)
|
|---|
| 80 | || url.matches(PATTERN_EXTERNAL_GPX_SCRIPT) || url.matches(PATTERN_EXTERNAL_GPX_FILE));
|
|---|
| 81 | }
|
|---|
| 82 | + @Override
|
|---|
| 83 | + public String acceptsDocumentationSummary() {
|
|---|
| 84 | + String foo = "Download GPS:<br/>";
|
|---|
| 85 | + foo += "<ul>";
|
|---|
| 86 | + foo += "<li>" + PATTERN_TRACE_ID;
|
|---|
| 87 | + foo += "<li>" + PATTERN_TRACKPOINTS_BBOX;
|
|---|
| 88 | + foo += "<li>" + PATTERN_EXTERNAL_GPX_SCRIPT;
|
|---|
| 89 | + foo += "<li>" + PATTERN_EXTERNAL_GPX_FILE;
|
|---|
| 90 | + foo += "</ul>";
|
|---|
| 91 | + return foo;
|
|---|
| 92 | + }
|
|---|
| 93 |
|
|---|
| 94 | +
|
|---|
| 95 | public void cancel() {
|
|---|
| 96 | if (downloadTask != null) {
|
|---|
| 97 | downloadTask.cancel();
|
|---|
| 98 | Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeCompressedTask.java
|
|---|
| 99 | ===================================================================
|
|---|
| 100 | --- src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeCompressedTask.java (revision 6015)
|
|---|
| 101 | +++ src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmChangeCompressedTask.java (working copy)
|
|---|
| 102 | @@ -18,7 +18,14 @@
|
|---|
| 103 | public boolean acceptsUrl(String url) {
|
|---|
| 104 | return url != null && url.matches("https?://.*/.*\\.osc.(gz|bz2?)"); // Remote .osc.gz / .osc.bz / .osc.bz2 files
|
|---|
| 105 | }
|
|---|
| 106 | -
|
|---|
| 107 | + @Override
|
|---|
| 108 | + public String acceptsDocumentationSummary() {
|
|---|
| 109 | + String foo = "Download Compressed OSM Change:<br/";
|
|---|
| 110 | + foo += "<ul>";
|
|---|
| 111 | + foo += "<li>" + "https?://.*/.*\\.osc.(gz|bz2?)"; // Keep in sync with above
|
|---|
| 112 | + foo += "</ul>";
|
|---|
| 113 | + return foo;
|
|---|
| 114 | + }
|
|---|
| 115 | /**
|
|---|
| 116 | * Loads a given URL
|
|---|
| 117 | * @param new_layer {@code true} if the data should be saved to a new layer
|
|---|
| 118 | Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
|
|---|
| 119 | ===================================================================
|
|---|
| 120 | --- src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java (revision 6015)
|
|---|
| 121 | +++ src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java (working copy)
|
|---|
| 122 | @@ -168,6 +168,17 @@
|
|---|
| 123 | || url.matches(PATTERN_EXTERNAL_OSM_FILE) // Remote .osm files
|
|---|
| 124 | );
|
|---|
| 125 | }
|
|---|
| 126 | + @Override
|
|---|
| 127 | + public String acceptsDocumentationSummary() {
|
|---|
| 128 | + String foo = "Download Osm:<br/";
|
|---|
| 129 | + foo += "<ul>";
|
|---|
| 130 | + foo += "<li>" + PATTERN_OSM_API_URL;
|
|---|
| 131 | + foo += "<li>" + PATTERN_OVERPASS_API_URL;
|
|---|
| 132 | + foo += "<li>" + PATTERN_OVERPASS_API_XAPI_URL;
|
|---|
| 133 | + foo += "<li>" + PATTERN_EXTERNAL_OSM_FILE;
|
|---|
| 134 | + foo += "</ul>";
|
|---|
| 135 | + return foo;
|
|---|
| 136 | + }
|
|---|
| 137 |
|
|---|
| 138 | public void cancel() {
|
|---|
| 139 | if (downloadTask != null) {
|
|---|
| 140 | Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java
|
|---|
| 141 | ===================================================================
|
|---|
| 142 | --- src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java (revision 6015)
|
|---|
| 143 | +++ src/org/openstreetmap/josm/actions/downloadtasks/DownloadTask.java (working copy)
|
|---|
| 144 | @@ -79,6 +79,12 @@
|
|---|
| 145 | boolean acceptsUrl(String url);
|
|---|
| 146 |
|
|---|
| 147 | /**
|
|---|
| 148 | + * Returns a short html documentation string, describing acceptable URLs.
|
|---|
| 149 | + */
|
|---|
| 150 | + String acceptsDocumentationSummary();
|
|---|
| 151 | +
|
|---|
| 152 | +
|
|---|
| 153 | + /**
|
|---|
| 154 | * Replies the error objects of the task. Empty list, if no error messages are available.
|
|---|
| 155 | *
|
|---|
| 156 | * Error objects are either {@link String}s with error messages or {@link Exception}s.
|
|---|
| 157 | Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmUrlTask.java
|
|---|
| 158 | ===================================================================
|
|---|
| 159 | --- src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmUrlTask.java (revision 6015)
|
|---|
| 160 | +++ src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmUrlTask.java (working copy)
|
|---|
| 161 | @@ -19,4 +19,12 @@
|
|---|
| 162 | url.matches("http://www\\.openstreetmap\\.org/\\?lat=.*&lon=.*")
|
|---|
| 163 | );
|
|---|
| 164 | }
|
|---|
| 165 | + @Override
|
|---|
| 166 | + public String acceptsDocumentationSummary() {
|
|---|
| 167 | + String foo = "Download OSM URL:<br/";
|
|---|
| 168 | + foo += "<ul>";
|
|---|
| 169 | + foo += "<li>" + "http://www.openstreetmap.org/?lat=.*&lon=.*"; // Keep in sync with above
|
|---|
| 170 | + foo += "</ul>";
|
|---|
| 171 | + return foo;
|
|---|
| 172 | + }
|
|---|
| 173 | }
|
|---|
| 174 | Index: src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmCompressedTask.java
|
|---|
| 175 | ===================================================================
|
|---|
| 176 | --- src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmCompressedTask.java (revision 6015)
|
|---|
| 177 | +++ src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmCompressedTask.java (working copy)
|
|---|
| 178 | @@ -11,15 +11,25 @@
|
|---|
| 179 | import org.openstreetmap.josm.io.OsmTransferException;
|
|---|
| 180 |
|
|---|
| 181 | public class DownloadOsmCompressedTask extends DownloadOsmTask {
|
|---|
| 182 | -
|
|---|
| 183 | +
|
|---|
| 184 | + String PATTERN_GZ = "https?://.*/.*\\.osm.(gz|bz2?)";
|
|---|
| 185 | +
|
|---|
| 186 | /* (non-Javadoc)
|
|---|
| 187 | * @see org.openstreetmap.josm.actions.downloadtasks.DownloadTask#acceptsUrl(java.lang.String)
|
|---|
| 188 | */
|
|---|
| 189 | @Override
|
|---|
| 190 | public boolean acceptsUrl(String url) {
|
|---|
| 191 | - return url != null && url.matches("https?://.*/.*\\.osm.(gz|bz2?)"); // Remote .osm.gz / .osm.bz / .osm.bz2 files
|
|---|
| 192 | + return url != null && url.matches(PATTERN_GZ); // Remote .osm.gz / .osm.bz / .osm.bz2 files
|
|---|
| 193 | }
|
|---|
| 194 | -
|
|---|
| 195 | + @Override
|
|---|
| 196 | + public String acceptsDocumentationSummary() {
|
|---|
| 197 | + String foo = "Download Compressed OSM:<br/";
|
|---|
| 198 | + foo += "<ul>";
|
|---|
| 199 | + foo += "<li>" + PATTERN_GZ;
|
|---|
| 200 | + foo += "</ul>";
|
|---|
| 201 | + return foo;
|
|---|
| 202 | + }
|
|---|
| 203 | +
|
|---|
| 204 | /* (non-Javadoc)
|
|---|
| 205 | * @see org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask#download(boolean, org.openstreetmap.josm.data.Bounds, org.openstreetmap.josm.gui.progress.ProgressMonitor)
|
|---|
| 206 | */
|
|---|