Commit bfd36e93 authored by Eric Duminil's avatar Eric Duminil
Browse files

Trying to add "select repo" button.

parent 6c9fede7
...@@ -70,8 +70,9 @@ public Void call() throws IOException { ...@@ -70,8 +70,9 @@ public Void call() throws IOException {
new Thread(task).start(); 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 { 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); Path[] paths = Stream.of(csvCitygmls.split(";")).map(s -> citygmlPath(project, s)).toArray(Path[]::new);
StringBuilder sb = RegionExtractor.selectRegionDirectlyFromCityGML(wktPolygon, srsName, paths); StringBuilder sb = RegionExtractor.selectRegionDirectlyFromCityGML(wktPolygon, srsName, paths);
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
<div id="header"> <div id="header">
<ul> <ul>
<li class="title">Simstadt Region Chooser</li> <li class="title">Simstadt Region Chooser</li>
<li class="title" id="repository"><button onclick="regionChooser.selectRepository()">Select repository</button></li>
</ul> </ul>
</div> </div>
<div id="map" class="map" tabindex="0"></div> <div id="map" class="map" tabindex="0"></div>
......
...@@ -227,7 +227,7 @@ var regionChooser = (function(){ ...@@ -227,7 +227,7 @@ var regionChooser = (function(){
dataPanel.append(text + "<br/>\n"); dataPanel.append(text + "<br/>\n");
} }
publicScope.downloadRegionFromCityGML = function(checkbox_ids) { publicScope.downloadRegionFromCityGMLs = function(checkbox_ids) {
// TODO: Disable all links // TODO: Disable all links
// TODO: DRY // TODO: DRY
var features = checkbox_ids.map(checkbox_id => { var features = checkbox_ids.map(checkbox_id => {
...@@ -245,7 +245,7 @@ var regionChooser = (function(){ ...@@ -245,7 +245,7 @@ var regionChooser = (function(){
$("html").addClass("wait"); $("html").addClass("wait");
console.log("Selected region is written in " + srsName + " coordinate system."); console.log("Selected region is written in " + srsName + " coordinate system.");
try { 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"); dataPanel.append("<h2 class='ok'>Done!</h2><br/>\n");
} catch (e) { } catch (e) {
console.log("ERROR : " + e); console.log("ERROR : " + e);
...@@ -287,7 +287,7 @@ var regionChooser = (function(){ ...@@ -287,7 +287,7 @@ var regionChooser = (function(){
//TODO: Add selectAll //TODO: Add selectAll
//TODO: Add selectNone //TODO: Add selectNone
//TODO: Hide button if empty //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'); dataPanel.append('<br/>\n');
findIntersections(); findIntersections();
} }
...@@ -359,7 +359,9 @@ var regionChooser = (function(){ ...@@ -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 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 remove a point with SHIFT + clicking.<br>\n");
dataPanel.append("You can cancel drawing with ESC or DEL.<br><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. // Executed by JavaFX when whole page is loaded.
...@@ -370,14 +372,18 @@ var regionChooser = (function(){ ...@@ -370,14 +372,18 @@ var regionChooser = (function(){
console.log("READY!"); console.log("READY!");
} }
publicScope.clickety_click = function() { publicScope.downloadFromSelectedCityGMLs = function() {
var checkedBoxes = Array.from(document.querySelectorAll("input.select_citygml")).filter(c => c.checked); var checkedBoxes = Array.from(document.querySelectorAll("input.select_citygml")).filter(c => c.checked);
if (checkedBoxes.length === 0){ if (checkedBoxes.length === 0){
console.log("You should select at least one citygml, though."); console.log("You should select at least one citygml, though.");
} else{ } 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(); focusOnMap();
//var regionChooser = publicScope; //NOTE: In order to open closure. For debugging //var regionChooser = publicScope; //NOTE: In order to open closure. For debugging
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment