Example usage for javafx.scene.web WebView WebView

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

Introduction

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

Prototype

public WebView() 

Source Link

Document

Creates a WebView object.

Usage

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

/**
 * Launch OpenBST//ww  w  .  j av  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();
    }
}

From source file:Main.java

@Override
public void start(final Stage stage) {
    stage.setWidth(400);/* w  w w .j  a va2 s .c o  m*/
    stage.setHeight(500);
    Scene scene = new Scene(new Group());

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setContent(browser);

    browser.getEngine().setOnAlert((WebEvent<String> wEvent) -> {
        System.out.println("Alert Event  -  Message:  " + wEvent.getData());
    });

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

    scene.setRoot(scrollPane);

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

From source file:Main.java

@Override
public void start(Stage primaryStage) {
    vb.setId("root");

    WebView browser = new WebView();
    WebEngine engine = browser.getEngine();
    String url = "http://java2s.com/";
    engine.load(url);/*from   w  w w  . j  a  v a  2s.  c  om*/

    vb.setPadding(new Insets(30, 50, 50, 50));
    vb.setSpacing(10);
    vb.setAlignment(Pos.CENTER);
    vb.getChildren().addAll(browser);

    Scene scene = new Scene(vb);
    primaryStage.setScene(scene);
    primaryStage.show();
}

From source file:Main.java

License:asdf

@Override
public void start(Stage stage) {
    stage.setWidth(500);//  w ww  .  ja  va  2 s  .  c  o m
    stage.setHeight(500);
    Scene scene = new Scene(new Group());

    VBox root = new VBox();

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setContent(browser);
    webEngine.loadContent("<b>asdf</b>");

    root.getChildren().addAll(scrollPane);
    scene.setRoot(root);

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

From source file:Main.java

License:asdf

@Override
public void start(Stage stage) {
    stage.setWidth(500);//from   w  w  w . j  a v  a2s. co  m
    stage.setHeight(500);
    Scene scene = new Scene(new Group());

    VBox root = new VBox();

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setFitToWidth(true);

    scrollPane.setContent(browser);
    webEngine.loadContent("<b>asdf</b>");

    root.getChildren().addAll(scrollPane);
    scene.setRoot(root);

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

From source file:Main.java

License:asdf

@Override
public void start(Stage stage) {
    stage.setTitle("HTML");
    stage.setWidth(500);/* www .ja  v a 2  s.  com*/
    stage.setHeight(500);
    Scene scene = new Scene(new Group());

    VBox root = new VBox();

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setContent(browser);
    webEngine.loadContent("<b>asdf</b>");

    root.getChildren().addAll(scrollPane);
    scene.setRoot(root);

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

From source file:Main.java

License:asdf

@Override
public void start(Stage stage) {
    stage.setTitle("HTML");
    stage.setWidth(500);/*from  www  . jav  a 2  s  .co m*/
    stage.setHeight(500);
    Scene scene = new Scene(new Group());

    VBox root = new VBox();

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setStyle("-fx-background-color: white");

    scrollPane.setContent(browser);
    webEngine.loadContent("<b>asdf</b>");

    root.getChildren().addAll(scrollPane);
    scene.setRoot(root);

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

From source file:Main.java

@Override
public void start(Stage stage) {
    stage.setTitle("HTML");
    stage.setWidth(500);// w ww . j  av a2  s .co m
    stage.setHeight(500);
    Scene scene = new Scene(new Group());
    VBox root = new VBox();
    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();
    Hyperlink hpl = new Hyperlink("java2s.com");
    hpl.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent e) {
            webEngine.load("http://java2s.com");
        }
    });

    root.getChildren().addAll(hpl, browser);
    scene.setRoot(root);

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

From source file:Main.java

@Override
public void start(final Stage stage) {
    stage.setWidth(400);/*from w  w w  .  java2  s  .  c  om*/
    stage.setHeight(500);
    Scene scene = new Scene(new Group());

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setContent(browser);

    browser.getEngine().setOnAlert((WebEvent<String> wEvent) -> {
        System.out.println("Alert Event  -  Message:  " + wEvent.getData());
    });

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

    final WebHistory history = webEngine.getHistory();
    history.getEntries().addListener(new ListChangeListener<WebHistory.Entry>() {
        @Override
        public void onChanged(Change<? extends Entry> c) {
            c.next();
            for (Entry e : c.getRemoved()) {
                System.out.println(e.getUrl());
            }
            for (Entry e : c.getAddedSubList()) {
                System.out.println(e.getUrl());
            }
        }
    });

    history.go(0);
    scene.setRoot(scrollPane);

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

From source file:Main.java

License:asdf

@Override
public void start(final Stage stage) {
    stage.setTitle("HTML");
    stage.setWidth(500);//w  w  w .java 2 s  .  co m
    stage.setHeight(500);
    Scene scene = new Scene(new Group());

    VBox root = new VBox();

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    ScrollPane scrollPane = new ScrollPane();
    scrollPane.setContent(browser);

    webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {
        @Override
        public void changed(ObservableValue ov, State oldState, State newState) {

            if (newState == Worker.State.SUCCEEDED) {
                stage.setTitle(webEngine.getLocation());
                System.out.println("called");
            }

        }
    });
    webEngine.load("http://javafx.com");

    webEngine.loadContent("<b>asdf</b>");

    root.getChildren().addAll(scrollPane);
    scene.setRoot(root);

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