From 652df34d19ef0c716007b94e5eee0d91ddd8f3ae Mon Sep 17 00:00:00 2001
From: Eric Duminil <eric.duminil@gmail.com>
Date: Wed, 19 Oct 2022 10:43:24 +0200
Subject: [PATCH] Show how many buildings have been extracted.

---
 .../simstadt/regionchooser/RegionChooserBrowser.java  |  2 +-
 .../eu/simstadt/regionchooser/RegionExtractor.java    |  2 +-
 .../website/script/simstadt_openlayers.js             | 11 ++++++++---
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java b/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java
index cce0985..8e59d50 100644
--- a/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java
+++ b/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java
@@ -98,7 +98,7 @@ public Integer call() throws IOException, XPathParseException, NavException, Par
 
 			downloadTask.setOnRunning(e -> jsApp.call("downloadStart"));
 
-			downloadTask.setOnSucceeded(e -> jsApp.call("downloadFinished"));
+			downloadTask.setOnSucceeded(e -> jsApp.call("downloadFinished", e.getSource().getValue()));
 
 			new Thread(downloadTask).start();
 		}
diff --git a/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java b/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java
index 665c32d..c9c460f 100644
--- a/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java
+++ b/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java
@@ -88,7 +88,7 @@ static int selectRegionDirectlyFromCityGML(String wktPolygon, String srsName, Wr
 			LOGGER.warning("No building found in the selected region.");
 		}
 
-		LOGGER.info("Buildings found in selected region " + foundBuildingsCount);
+		LOGGER.info("Buildings found in selected region : " + foundBuildingsCount);
 		//NOTE: This could be a problem if header starts with <core:CityModel> and footer ends with </CityModel>
 		sb.append(citygml.getFooter());
 		return foundBuildingsCount;
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 7ce789a..99f3b8e 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
@@ -246,13 +246,17 @@ const regionChooser = (function(){
 	publicScope.downloadStart = function(){
 		document.getElementById("download_region_button").disabled = true;
 		document.documentElement.className = 'wait';
-		dataPanel.prepend("<h2 id='download_start' class='ok'>Starting to extract region.</h2><br/>\n");
+		dataPanel.prepend("<h2 id='download_start' class='ok'>Starting to extract region...</h2><br/>\n");
 	}
 	
-	publicScope.downloadFinished = function(){
+	publicScope.downloadFinished = function(count){
 		document.documentElement.className = ''; // Stop waiting
 		document.getElementById("download_start").remove();
-		dataPanel.prepend("<h2 class='ok'>Region has been extracted</h2><br/>\n");
+		if (count > 0){
+			dataPanel.prepend("<h2 class='ok'>Done! (" + count + " buildings found) </h2><br/>\n");
+		} else {
+			dataPanel.prepend("<h2 class='error'>No building has been found in this region</h2><br/>\n");
+		}
 		var button = document.getElementById("download_region_button");
 		if (button){ // Region might have been modified since download start
 			button.disabled = false;
@@ -325,6 +329,7 @@ const regionChooser = (function(){
 		} finally {
 			displayHelp();
 			document.documentElement.className = ''; // Stop waiting
+			kml_source.getFeatures().forEach(f => refreshStyle(f, "original"));
 			draw.setActive(true);
 			drawnLayer.getFeatures().clear();
 			intersections.clear();
-- 
GitLab