diff --git a/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java b/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java index 81641419110493c67ca36b780471e3cf22d9b4a3..0e9d8ef6ab14993c8e21f36264ffbce6d8834939 100644 --- a/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java +++ b/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java @@ -70,8 +70,9 @@ public Void call() throws IOException { new Thread(task).start(); } - public void downloadRegionFromCityGML(String wktPolygon, String project, String csvCitygmls, String srsName) + public void downloadRegionFromCityGMLs(String wktPolygon, String project, String csvCitygmls, String srsName) throws IOException, ParseException, XPathParseException, NavException { + //NOTE: It doesn't seem possible to pass arrays or list from JS to Java. So csvCitygmls contains names separated by ; Path[] paths = Stream.of(csvCitygmls.split(";")).map(s -> citygmlPath(project, s)).toArray(Path[]::new); StringBuilder sb = RegionExtractor.selectRegionDirectlyFromCityGML(wktPolygon, srsName, paths); diff --git a/src/main/resources/eu/simstadt/regionchooser/website/index.html b/src/main/resources/eu/simstadt/regionchooser/website/index.html index 6cfa47b6794999275492e980202aa2d520f6f9ae..d933448181221eeafce55b07fde262261f398809 100644 --- a/src/main/resources/eu/simstadt/regionchooser/website/index.html +++ b/src/main/resources/eu/simstadt/regionchooser/website/index.html @@ -25,6 +25,7 @@ <div id="header"> <ul> <li class="title">Simstadt Region Chooser</li> + <li class="title" id="repository"><button onclick="regionChooser.selectRepository()">Select repository</button></li> </ul> </div> <div id="map" class="map" tabindex="0"></div> diff --git a/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js index 671376b6112f84509e3f5fe615c3bcacde68c0ba..dfbd58aa72933709983ce8adde0fe3335c5a9ad8 100644 --- a/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js +++ b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js @@ -227,7 +227,7 @@ var regionChooser = (function(){ dataPanel.append(text + "<br/>\n"); } - publicScope.downloadRegionFromCityGML = function(checkbox_ids) { + publicScope.downloadRegionFromCityGMLs = function(checkbox_ids) { // TODO: Disable all links // TODO: DRY var features = checkbox_ids.map(checkbox_id => { @@ -245,7 +245,7 @@ var regionChooser = (function(){ $("html").addClass("wait"); console.log("Selected region is written in " + srsName + " coordinate system."); try { - fxapp.downloadRegionFromCityGML(sketchAsWKT(srsName), project, citygmlNames.join(";"), srsName); + fxapp.downloadRegionFromCityGMLs(sketchAsWKT(srsName), project, citygmlNames.join(";"), srsName); dataPanel.append("<h2 class='ok'>Done!</h2><br/>\n"); } catch (e) { console.log("ERROR : " + e); @@ -287,7 +287,7 @@ var regionChooser = (function(){ //TODO: Add selectAll //TODO: Add selectNone //TODO: Hide button if empty - dataPanel.append('<button type="button" onclick="regionChooser.clickety_click()" id="download" style="visibility:hidden">Download Region</button>'); + dataPanel.append('<button type="button" onclick="regionChooser.downloadFromSelectedCityGMLs()" id="download" style="visibility:hidden">Download Region</button>'); dataPanel.append('<br/>\n'); findIntersections(); } @@ -359,7 +359,9 @@ var regionChooser = (function(){ dataPanel.append("You can add a new point to an existing edge by clicking and dragging.<br>\n"); dataPanel.append("You can remove a point with SHIFT + clicking.<br>\n"); dataPanel.append("You can cancel drawing with ESC or DEL.<br><br>\n"); - dataPanel.append("After drawing a polygon which intersects with a GML file, you can download the corresponding part by clicking on the filename.<br>\n"); + dataPanel.append("After drawing a polygon which intersects with at least one GML file,<br>\n"); + dataPanel.append("you can download the corresponding part by checking the<br>\n"); + dataPanel.append("desired filenames and clicking on 'Download' button.<br>\n"); } // Executed by JavaFX when whole page is loaded. @@ -370,14 +372,18 @@ var regionChooser = (function(){ console.log("READY!"); } - publicScope.clickety_click = function() { + publicScope.downloadFromSelectedCityGMLs = function() { var checkedBoxes = Array.from(document.querySelectorAll("input.select_citygml")).filter(c => c.checked); if (checkedBoxes.length === 0){ console.log("You should select at least one citygml, though."); } else{ - publicScope.downloadRegionFromCityGML(checkedBoxes.map(c => c.id)); + publicScope.downloadRegionFromCityGMLs(checkedBoxes.map(c => c.id)); } } + + publicScope.selectRepository = function() { + console.log("Should probably do something"); + } focusOnMap(); //var regionChooser = publicScope; //NOTE: In order to open closure. For debugging