diff --git a/src/eu/simstadt/nf4j/ExportJobFromJavaFXRegionChooser.java b/src/eu/simstadt/nf4j/ExportJobFromJavaFXRegionChooser.java index 3af3f082783ba889207f6af2cd49d651ae6cfbf0..7b2d51feb0e20d0300b2b82accc9566fd984c671 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 ff3f05e63c87e9108de0527c519467a309628401..2e7ca2ae9046f10c0e55a3b87630d014377e7372 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 af9b2d01b50656f5634e71ef46378457bce7601b..d81d96d0ac27450177b4d0c701dd623f74260fa3 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 8dee8b19c2d1d7677230ab84362c3feda814ba04..8ef835015b98526547e76eccc79181afa92dd170 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') }) }