import java.io.File;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.DirectoryChooser;
import javafx.stage.Stage;
import netscape.javascript.JSObject;


public class Main extends Application {

public static Stage stage = null;

    @Override
    public void start(Stage primaryStage) throws Exception {
        final WebView root = new WebView();
        root.getEngine().documentProperty().addListener((obs, oldDoc, newDoc) -> {
            if (newDoc != null) {
                JSObject window = (JSObject) root.getEngine ().executeScript ("window");
                window.setMember ("viewObj", this);
            }
        });
// root.getEngine().load(getClass().getResource("view.html").toURI().toString());
        root.getEngine().loadContent("<!DOCTYPE html>"
                +"<html>"
                +" <head>"
                +" <meta charset=\"utf-8\">"
                +" <link rel=\"stylesheet\" href=\"app.css\" />"
                +" <link rel=\"stylesheet\" href=\"d3-context-menu.css\" />"
                +" <link rel=\"stylesheet\" href=\"tab.css\" />"
                +" </head>"
                +" <script>"
                +" function open_file_chooser(){"
                +" console.log(\"Reached export_data\");"
                +" viewObj.openFileChooser();"
                +" }"
                +" </script>"
                +" <body>"
                +" <button type=\"button\" onclick=\"open_file_chooser();\">Click Me!</button>"
                +" </body>"
                +"</html>");
        primaryStage.setTitle("TestGetScene");
        primaryStage.setScene(new Scene(root));
        primaryStage.show();
        stage = primaryStage;
    }
   
    public void openFileChooser() {
        DirectoryChooser dirChooser = new DirectoryChooser();
        dirChooser.setTitle("Export Tree");
        File pathTosave = dirChooser.showDialog(null);
    }
}