From 89cc09dc33752bb7618f25a89a57472c6744793a Mon Sep 17 00:00:00 2001 From: duminil <duminil@2c044af0-2e85-064f-a0c3-7471430cffcd> Date: Wed, 27 May 2015 15:17:58 +0000 Subject: [PATCH] Structure to extract zip file to citygml. --- .../ExportJobFromJavaFXRegionChooser.java | 32 ++++++++--------- .../regionchooser/RegionChooserFX.java | 6 +++- .../nf4j/async/test/SuccessfulExportJob.java | 2 +- website/script/simstadt_openlayers.js | 36 ++++++++++++------- 4 files changed, 43 insertions(+), 33 deletions(-) diff --git a/src/eu/simstadt/nf4j/ExportJobFromJavaFXRegionChooser.java b/src/eu/simstadt/nf4j/ExportJobFromJavaFXRegionChooser.java index 3af3f08..7b2d51f 100644 --- a/src/eu/simstadt/nf4j/ExportJobFromJavaFXRegionChooser.java +++ b/src/eu/simstadt/nf4j/ExportJobFromJavaFXRegionChooser.java @@ -31,14 +31,15 @@ public class ExportJobFromJavaFXRegionChooser implements JobStatusListener public void processJob(Geometry poly, JSObject nfButton) throws InterruptedException { this.nfButton = nfButton; + String productName = "WU3"; //NOTE: Others are LB,LBTEST, WU3 ExportJobDescription description = ExportJobDescription.getDefaultDescriptor(); description.setInitiator("2758"); description.setAccount("Bruse"); - description.setProduct("WU3"); + // description.setProduct("WU3"); + description.setProduct(productName); description.setJobnumber("Bruse_0815"); //FIXME: Zipped GMLs coming from nF don't have any defined srsName - //FIXME: Save files somewhere else ArrayList<Coord> regionPolygon = new ArrayList<>(); @@ -49,7 +50,7 @@ public void processJob(Geometry poly, JSObject nfButton) throws InterruptedExcep description.setRegionPolygon(regionPolygon); Layer layer = Layer.getDefaultLayer(); - layer.setProduct("WU3"); + layer.setProduct(productName); layer.setName("GML"); description.addLayer(layer); @@ -63,15 +64,6 @@ public void processJob(Geometry poly, JSObject nfButton) throws InterruptedExcep } catch (InvalidJobDescriptorException ex) { ex.printStackTrace(); } - - // // Wait for timeout, failure or that all tests pass - // long timeout = 1000 * 60 * 3l; // 3 minutes maximum - // long interval = 10000l; - // while (!job.hasFinished() && !job.hasFailed() && timeout > 0) { - // Thread.sleep(interval); - // timeout -= interval; - // System.out.println("+"); - // } } @Override @@ -79,16 +71,16 @@ public void jobStatusChanged(JobStatusEvent event) { JobStatus status = (JobStatus) event.getSource(); System.out.println(status); if (status == JobStatus.LOCAL) { - nfButton.call("updateStatus", "Local"); + nfButton.call("updateStatus", "REQUEST HAS BEEN PREPARED"); } else if (status == JobStatus.SENT) { - nfButton.call("updateStatus", "SENT"); + nfButton.call("updateStatus", "REQUEST HAS BEEN SENT"); } else if (status == JobStatus.PENDING) { nfButton.call("updateStatus", "PENDING"); } else if (status == JobStatus.RUNNING) { - nfButton.call("updateStatus", "RUNNING"); + nfButton.call("updateStatus", "SERVER IS BUSY"); } else if (status == JobStatus.FINISHED) { try { - nfButton.call("updateStatus", "FINISHED"); + nfButton.call("updateStatus", "SERVER IS DONE"); job.downloadResult(); } catch (FailedTransmissionException ex) { ex.printStackTrace(); @@ -96,8 +88,12 @@ public void jobStatusChanged(JobStatusEvent event) { } else if (status == JobStatus.DOWNLOAD) { try { File file = job.getResult(); - nfButton.call("updateStatus", "DOWNLOAD"); - System.out.println("CityGML at " + file.getAbsolutePath()); + nfButton.call("updateStatus", "DOWNLOADED AS ZIP"); + nfButton.call("selectSaveFile", file.toString()); + // System.out.println("CityGML at " + file.getAbsolutePath()); + System.out.println("STILL HERE"); + //TODO: Call downloadFinished if FAILED + nfButton.call("downloadFinished"); } catch (FailedTransmissionException ex) { ex.printStackTrace(); } diff --git a/src/eu/simstadt/regionchooser/RegionChooserFX.java b/src/eu/simstadt/regionchooser/RegionChooserFX.java index ff3f05e..2e7ca2a 100644 --- a/src/eu/simstadt/regionchooser/RegionChooserFX.java +++ b/src/eu/simstadt/regionchooser/RegionChooserFX.java @@ -79,13 +79,17 @@ protected Integer call() throws Exception { ExportJobFromJavaFXRegionChooser nfJob = new ExportJobFromJavaFXRegionChooser(); Geometry poly = wktReader.read(wktPolygon); nfJob.processJob(poly, nfButton); - nfButton.call("downloadFinished"); return 0; } }; new Thread(task).start(); } + public void doSomethingWithThisZIP(String zipFilename) { + System.out.println("Extract zipFile " + zipFilename + " to " + "unkownlocation"); + + } + public void downloadRegionFromCityGML(String wktPolygon, String project, String citygml, JSObject featureOverlay) throws IOException, ParseException { diff --git a/test/eu/simstadt/nf4j/async/test/SuccessfulExportJob.java b/test/eu/simstadt/nf4j/async/test/SuccessfulExportJob.java index af9b2d0..d81d96d 100644 --- a/test/eu/simstadt/nf4j/async/test/SuccessfulExportJob.java +++ b/test/eu/simstadt/nf4j/async/test/SuccessfulExportJob.java @@ -140,7 +140,7 @@ public void jobStatusChanged(JobStatusEvent event) { try { File file = job.getResult(); assertTrue(file.canRead()); - System.out.println("CityGML at " + file.getAbsolutePath()); +// System.out.println("CityGML at " + file.getAbsolutePath()); } catch (FailedTransmissionException ex) { ex.printStackTrace(); } diff --git a/website/script/simstadt_openlayers.js b/website/script/simstadt_openlayers.js index 8dee8b1..8ef8350 100644 --- a/website/script/simstadt_openlayers.js +++ b/website/script/simstadt_openlayers.js @@ -244,15 +244,16 @@ function findIntersections() { function downloadRegionFromCityGML(i) { // TODO: Disable all links + // TODO: DRY $("html").addClass("wait"); var feature = kml_source.getFeatures()[i]; // Waiting 100ms in order to let the cursor change setTimeout(function() { -// var start = new Date().getTime(); + // var start = new Date().getTime(); fxapp.downloadRegionFromCityGML(sketchAsWKT(), feature.get("project"), feature.get("name"), vectorSource); -// var end = new Date().getTime(); -// var time = end - start; -// console.log('DL Execution time: ' + time); + // var end = new Date().getTime(); + // var time = end - start; + // console.log('DL Execution time: ' + time); setTimeout(function() { $("html").removeClass("wait"); dataPanel.append("Done<br/>\n"); @@ -261,7 +262,7 @@ function downloadRegionFromCityGML(i) { } function displayInfo() { -// var start = new Date().getTime(); + // var start = new Date().getTime(); dataPanel.empty(); var geom = /** @type {ol.geom.Polygon} */ (sketch.getGeometry().clone().transform(sourceProj, 'EPSG:4326')); @@ -289,9 +290,9 @@ function displayInfo() { dataPanel.append("Area" + "<br/>\n"); dataPanel.append((Math.round(area / 1000) / 10).toString() + " ha<br/><br/>\n"); findIntersections(); -// var end = new Date().getTime(); -// var time = end - start; -// console.log('Execution time: ' + time); + // var end = new Date().getTime(); + // var time = end - start; + // console.log('Execution time: ' + time); } draw.on('drawend', function(e) { @@ -318,26 +319,35 @@ $('#reset').click(function() { }); novafactory_btn.downloadFinished = function() { - //FIXME: Weird <br>s are inserted between lines + // FIXME: Weird <br>s are inserted between lines dataPanel.append("NovaFactory : DONE <br/>\n"); this.disabled = false; + // FIXME: Doesn't stop waiting cursor + $("html").removeClass("wait"); } novafactory_btn.updateStatus = function(status) { - dataPanel.append("NovaFactory : "+status+"<br/>\n"); + dataPanel.append("NovaFactory : " + status + "<br/>\n"); +} + +novafactory_btn.selectSaveFile = function(zipFilename) { + fxapp.doSomethingWithThisZIP(zipFilename); } $('#nfDownload').click(function() { + $("html").addClass("wait"); novafactory_btn.disabled = true; - dataPanel.append("NovaFactory BEGIN <br/>\n"); - fxapp.downloadRegion(sketchAsWKT('4326'), novafactory_btn); + // dataPanel.append("NovaFactory BEGIN <br/>\n"); + setTimeout(function() { + fxapp.downloadRegion(sketchAsWKT('4326'), novafactory_btn); + }, 100); }); function sketchAsWKT(epsgId) { var epsgId = (typeof epsgId === 'undefined') ? '31467' : epsgId; var wktFormat = new ol.format.WKT(); return wktFormat.writeFeature(sketch, { - dataProjection : ol.proj.get('EPSG:'+epsgId), + dataProjection : ol.proj.get('EPSG:' + epsgId), featureProjection : ol.proj.get('EPSG:3857') }) } -- GitLab