Example usage for javafx.scene.web WebEngine WebEngine

List of usage examples for javafx.scene.web WebEngine WebEngine

Introduction

In this page you can find the example usage for javafx.scene.web WebEngine WebEngine.

Prototype

public WebEngine() 

Source Link

Document

Creates a new engine.

Usage

From source file:Main.java

@Override
public void start(Stage primaryStage) {
    WebEngine webEngine = new WebEngine();
    webEngine.getLoadWorker().stateProperty().addListener((obs, oldValue, newValue) -> {
        if (newValue == State.SUCCEEDED) {
            System.out.println("finished loading");
        }//from   w w  w .j  a v a2s  . c o  m
    }); // addListener()

    // begin loading...
    webEngine.load("http://www.java2s.com");

    Group root = new Group();
    Scene scene = new Scene(root, 300, 250);

    primaryStage.setScene(scene);
    primaryStage.show();
}

From source file:Main.java

@Override
public void start(Stage primaryStage) {
    WebEngine webEngine = new WebEngine();
    webEngine.getLoadWorker().stateProperty().addListener((obs, oldValue, newValue) -> {
        System.out.println(newValue);
        if (newValue == State.SUCCEEDED) {
            System.out.println("finished loading");
            String html = (String) webEngine.executeScript("document.documentElement.outerHTML");
            System.out.println(html);

        }//from  w w  w . ja v  a 2s .c  o  m
    });

    webEngine.load("http://www.java2s.com");

    Group root = new Group();
    Scene scene = new Scene(root, 300, 250);

    primaryStage.setScene(scene);
    primaryStage.show();
}

From source file:Main.java

@Override
public void start(Stage primaryStage) {
    WebEngine webEngine = new WebEngine();
    webEngine.getLoadWorker().stateProperty().addListener((obs, oldValue, newValue) -> {
        if (newValue == Worker.State.SUCCEEDED) {

            JSObject jsobj = (JSObject) webEngine.executeScript("window");
            jsobj.setMember("ABCD", new HelloWorld());
        }//w w  w.j av  a  2s . com
    });

    webEngine.load("http://www.java2s.com");

    Group root = new Group();
    Scene scene = new Scene(root, 300, 250);

    primaryStage.setScene(scene);
    primaryStage.show();
}

From source file:Main.java

@Override
public void start(Stage primaryStage) {
    WebEngine webEngine = new WebEngine();
    webEngine.getLoadWorker().stateProperty().addListener((obs, oldValue, newValue) -> {
        System.out.println(newValue);
        if (newValue == State.SUCCEEDED) {
            System.out.println("finished loading");
            try {
                TransformerFactory transformerFactory = TransformerFactory.newInstance();
                Transformer transformer = transformerFactory.newTransformer();
                StringWriter stringWriter = new StringWriter();
                transformer.transform(new DOMSource(webEngine.getDocument()), new StreamResult(stringWriter));
                String xml = stringWriter.getBuffer().toString();
                System.out.println(xml);
            } catch (Exception e) {
                e.printStackTrace();//from   www. ja va  2s  . c  om
            }

        }
    }); // addListener()

    // begin loading...
    webEngine.load("http://www.java2s.com");

    Group root = new Group();
    Scene scene = new Scene(root, 300, 250);

    primaryStage.setScene(scene);
    primaryStage.show();
}

From source file:utybo.branchingstorytree.swing.OpenBST.java

/**
 * Launch OpenBST//  w w w  . ja v  a2 s . c o m
 *
 * @param args
 *            Arguments. The first argument is the language code to be used
 */
public static void main(final String[] args) {
    // Before we do anything, setup system properties
    // First one to ensure Java 9's scaling system gets out of the way
    System.setProperty("sun.java2d.uiScale", "1.0");
    // Second one to force hardware acceleration
    System.setProperty("sun.java2d.opengl", "true");

    LOG.info("OpenBST version " + VERSION + ", part of the BST project");
    LOG.trace("[ INIT ]");
    LOG.trace("Loading language files");
    loadLang(args.length > 0 ? args[0] : null);

    LOG.trace("Applying Look and Feel");
    OpenBSTGUI.initializeLaF();
    VisualsUtils.fixTextFontScaling();

    LOG.trace("Loading scaling factor");
    Icons.loadScalingFactor();

    Splashscreen sc = Splashscreen.start();
    SwingWorker<Void, String> sw = new SwingWorker<Void, String>() {

        @Override
        protected Void doInBackground() {
            LOG.trace("Initializing JavaFX");
            publish(Lang.get("splash.init"));
            // Necessary - because we are killing Scenes all the time with WebViews in NodePanels,
            // JFX may think we just ended our application.
            // OpenBST exits with a dirty System.exit() anyway.
            Platform.setImplicitExit(false);
            // Initialize JavaFX
            new JFXPanel();
            VisualsUtils.invokeJfxAndWait(() -> {
                // Initialize the web engine
                new WebEngine();
                // Initialize a view
                new WebView();
            });

            LOG.info("Loading icons...");
            publish(Lang.get("splash.icons"));
            long timeAtIconStart = System.currentTimeMillis();
            Icons.load();
            LOG.info("Time taken to load icons : " + (System.currentTimeMillis() - timeAtIconStart) + " ms");

            LOG.info("Loading backgrounds...");
            publish(Lang.get("splash.loadbg"));
            Icons.loadBackgrounds();

            // $EXPERIMENTAL
            LOG.info("Caching backgrounds...");
            publish(Lang.get("splash.processbg"));
            IMGClient.initInternal();

            // $EXPERIMENTAL
            LOG.info("Loading internal BTS files...");
            publish(Lang.get("splash.loadinternalbst"));
            loadInternalBSTFiles();

            return null;
        }

        @Override
        protected void process(List<String> chunks) {
            String s = chunks.get(chunks.size() - 1);
            sc.setText(s);
        }

    };

    sw.execute();
    try {
        sw.get();
    } catch (InterruptedException | ExecutionException e1) {
        OpenBST.LOG.error(e1);
    }

    VisualsUtils.invokeSwingAndWait(() -> {
        sc.setText(Lang.get("splash.launch"));
        sc.lock();
        sc.stop();
    });
    LOG.trace("Launching app...");
    OpenBSTGUI.launch();

    VisualsUtils.invokeSwingAndWait(() -> sc.dispose());

    LOG.trace("Checking versions...");
    if (!"<unknown version>".equals(VERSION)) {
        SwingWorker<UpdateInfo, Void> worker = new SwingWorker<UpdateInfo, Void>() {

            @Override
            protected UpdateInfo doInBackground() throws Exception {
                URL updateInfoSite = new URL("https://utybo.github.io/BST/version.json");
                UpdateInfo info = new Gson().fromJson(
                        new InputStreamReader(updateInfoSite.openStream(), StandardCharsets.UTF_8),
                        UpdateInfo.class);
                return info;
            }

            @Override
            protected void done() {
                try {
                    UpdateInfo remoteVersion = this.get();
                    ComparableVersion remoteUnstable = new ComparableVersion(remoteVersion.unstable),
                            remoteStable = new ComparableVersion(remoteVersion.stable);
                    ComparableVersion local = new ComparableVersion(VERSION.substring(0, VERSION.length() - 1));

                    if (VERSION.endsWith("u")) {
                        // Local version is unstable
                        // Show updates to either the most recent unstable or the most recent stable
                        if (local.compareTo(remoteStable) < 0 && remoteStable.compareTo(remoteUnstable) < 0) {
                            // local (unstable) < stable < unstable
                            // Give options for both unstable and stable
                            JButton stablebtn = new JButton(Lang.get("up.moreinfostable"));
                            stablebtn.addActionListener(e -> {
                                VisualsUtils.browse(remoteVersion.stableurl);
                            });
                            JButton unstablebtn = new JButton(Lang.get("up.moreinfounstable"));
                            unstablebtn.addActionListener(e -> {
                                VisualsUtils.browse(remoteVersion.unstableurl);
                            });
                            OpenBSTGUI.getInstance()
                                    .addBanner(new JBannerPanel(
                                            new ImageIcon(Icons.getImage("Installing Updates", 48)),
                                            new Color(142, 255, 159), Lang.get("up.message1"), stablebtn, false,
                                            unstablebtn));
                        } else if (remoteStable.compareTo(local) < 0 && local.compareTo(remoteUnstable) < 0) {
                            // stable < local (unstable) < unstable
                            JButton unstablebtn = new JButton(Lang.get("up.moreinfo"));
                            unstablebtn.addActionListener(e -> {
                                VisualsUtils.browse(remoteVersion.unstableurl);
                            });
                            OpenBSTGUI.getInstance().addBanner(new JBannerPanel(
                                    new ImageIcon(Icons.getImage("Installing Updates", 48)),
                                    new Color(142, 255, 159), Lang.get("up.message2"), unstablebtn, false));
                        } else if (remoteUnstable.compareTo(remoteStable) < 0
                                && local.compareTo(remoteStable) < 0) {
                            // local (unstable) < stable
                            // and unstable < stable
                            JButton stablebtn = new JButton(Lang.get("up.moreinfo"));
                            stablebtn.addActionListener(e -> {
                                VisualsUtils.browse(remoteVersion.stableurl);
                            });
                            OpenBSTGUI.getInstance().addBanner(new JBannerPanel(
                                    new ImageIcon(Icons.getImage("Installing Updates", 48)),
                                    new Color(142, 255, 159), Lang.get("up.message3"), stablebtn, false));
                        }
                    } else {
                        // If we're not running an unstable version, the only interesting case is local < stable
                        if (local.compareTo(remoteStable) < 0) {
                            // local (stable) < stable
                            JButton stablebtn = new JButton(Lang.get("up.moreinfo"));
                            stablebtn.addActionListener(e -> {
                                VisualsUtils.browse(remoteVersion.stableurl);
                            });
                            OpenBSTGUI.getInstance().addBanner(new JBannerPanel(
                                    new ImageIcon(Icons.getImage("Installing Updates", 48)),
                                    new Color(142, 255, 159), Lang.get("up.message4"), stablebtn, false));
                        }
                    }
                }

                catch (InterruptedException | ExecutionException e) {
                    LOG.warn("Failed to read update information", e);
                    JButton showDetails = new JButton(Lang.get("up.showdetails"));
                    showDetails.addActionListener(ev -> Messagers.showException(OpenBSTGUI.getInstance(),
                            Lang.get("up.failedmessage"), e));
                    OpenBSTGUI.getInstance()
                            .addBanner(new JBannerPanel(new ImageIcon(Icons.getImage("Cancel", 16)),
                                    new Color(255, 144, 144), Lang.get("up.failedbanner"), showDetails, false));
                }
            }
        };
        worker.execute();
    }
}