diff --git a/src/eu/simstadt/regionchooser/RegionChooserFX.java b/src/eu/simstadt/regionchooser/RegionChooserFX.java index fd8e2a72adbb7333dcab52359500834da44c375e..4400d49f623b7e65d1310207e2d10aaaf6807957 100644 --- a/src/eu/simstadt/regionchooser/RegionChooserFX.java +++ b/src/eu/simstadt/regionchooser/RegionChooserFX.java @@ -1,5 +1,7 @@ package eu.simstadt.regionchooser; +import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; import javafx.application.Application; import javafx.beans.value.ObservableValue; @@ -36,8 +38,14 @@ public static void main(String[] args) { class Browser extends Region { - public class JavaApp + public class JavaScriptFXBridge { + private Path repo; + + public JavaScriptFXBridge() { + repo = Paths.get("../TestRepository"); + } + public void downloadRegion(String wktPolygon) { System.out.println("FROM JAVA : DO SOMETHING with " + wktPolygon); } @@ -47,8 +55,14 @@ public void downloadRegionFromCityGML(String wktPolygon, String citygmlDescripti } public boolean checkIfCityGMLSAreAvailable(String citygmlDescription) { - //TODO: IMPLEMENT ME - return true; + boolean available = false; + String[] projectAndCityGML = citygmlDescription.split(">"); + if (projectAndCityGML.length == 2) { + String project = projectAndCityGML[0]; + String citygml = projectAndCityGML[1]; + available = Files.isReadable(repo.resolve(project + ".simstadt").resolve(citygml)); + } + return available; } } @@ -59,15 +73,14 @@ public Browser() { //apply the styles getStyleClass().add("browser"); // load the web page - String url = "file://" + Paths.get("../RegionChooser/website/index.html").toAbsolutePath().toString(); + String url = Paths.get("../RegionChooser/website/index.html").toUri().toString(); webEngine.load(url); // process page loading webEngine.getLoadWorker().stateProperty().addListener( - (ObservableValue<? extends State> ov, State oldState, - State newState) -> { + (ObservableValue<? extends State> ov, State oldState, State newState) -> { if (newState == State.SUCCEEDED) { JSObject win = (JSObject) webEngine.executeScript("window"); - win.setMember("fxapp", new JavaApp()); + win.setMember("fxapp", new JavaScriptFXBridge()); } }); //add the web view to the scene