Ticket #8556: import_patch.diff
File import_patch.diff, 3.7 KB (added by , 11 years ago) |
---|
-
src/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandler.java
diff --git a/src/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandler.java b/src/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandler.java index 5874161..f67f497 100644
a b 23 23 */ 24 24 public static final String command = "import"; 25 25 26 private URL url; 26 private URL url; // parameter 'url' 27 private Boolean new_layer; // parameter 'nl' 27 28 private Collection<DownloadTask> suitableDownloadTasks; 28 29 29 30 @Override 30 31 protected void handleRequest() throws RequestHandlerErrorException { 31 32 try { 32 33 if (suitableDownloadTasks != null && !suitableDownloadTasks.isEmpty()) { 33 // TODO: add new_layer parameter34 34 // TODO: handle multiple suitable download tasks ? 35 suitableDownloadTasks.iterator().next().loadUrl( false, url.toExternalForm(), null);35 suitableDownloadTasks.iterator().next().loadUrl(new_layer, url.toExternalForm(), null); 36 36 } 37 37 } catch (Exception ex) { 38 38 System.out.println("RemoteControl: Error parsing import remote control request:"); … … public PermissionPrefWithDefault getPermissionPref() { 69 69 70 70 @Override 71 71 protected void parseArgs() { 72 String req = decodeParam(this.request); 72 73 HashMap<String, String> args = new HashMap<String, String>(); 73 74 if (request.indexOf('?') != -1) { 74 String query = request.substring(request.indexOf('?') + 1); 75 if (query.indexOf("url=") == 0) { 76 args.put("url", decodeParam(query.substring(4))); 77 } else { 78 int urlIdx = query.indexOf("&url="); 79 if (urlIdx != -1) { 80 /*String url =*/ query.substring(urlIdx + 1); 81 args.put("url", decodeParam(query.substring(urlIdx + 5))); 82 query = query.substring(0, urlIdx); 83 } else { 84 if (query.indexOf('#') != -1) { 85 query = query.substring(0, query.indexOf('#')); 86 } 87 } 88 String[] params = query.split("&", -1); 89 for (String param : params) { 90 int eq = param.indexOf('='); 91 if (eq != -1) { 92 args.put(param.substring(0, eq), param.substring(eq + 1)); 93 } 94 } 95 } 75 String query = req.substring(req.indexOf('?') + 1); 76 if (query.indexOf('#') != -1) { 77 query = query.substring(0, query.indexOf('#')); 78 } 79 String[] params = query.split("&", -1); 80 for (String param : params) { 81 int eq = param.indexOf('='); 82 if (eq != -1) { 83 args.put(param.substring(0, eq), param.substring(eq + 1)); 84 } 85 } 96 86 } 97 87 this.args = args; 98 88 } … … protected void validateRequest() throws RequestHandlerBadRequestException { 106 96 } catch (MalformedURLException e) { 107 97 throw new RequestHandlerBadRequestException("MalformedURLException: "+e.getMessage()); 108 98 } 99 100 // See if there is a new-layer specified. 101 if(args.containsKey("nl") && 102 args.get("nl").equals("yes")) 103 { 104 new_layer = true; 105 } 106 else 107 { 108 new_layer = false; 109 } 110 109 111 // Find download tasks for the given URL 110 112 suitableDownloadTasks = Main.main.menu.openLocation.findDownloadTasks(urlString); 111 113 if (suitableDownloadTasks.isEmpty()) { … … protected void validateRequest() throws RequestHandlerBadRequestException { 114 116 suitableDownloadTasks.add(new DownloadOsmTask()); 115 117 } 116 118 } 117 } 118 No newline at end of file 119 }