public IWURLField(WebView webView, boolean secured, Tab tab) { this.webView = webView; this.tab = tab; this.securedHTTP = secured; setText(IWPropertyHelper.getProperty("default_homepage")); webView.getEngine().getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) { if (newValue == State.SUCCEEDED) { tab.setText(webView.getEngine().getTitle()); } if (newValue == State.FAILED) { if(getText().toString().equals("")) { webView.getEngine().loadContent("<html><title>Empty Tab</title><body></body></html>"); } else { webView.getEngine().loadContent("<html><title>Oops!</title><body><b>Page not found!</b></body></html>"); } } } }); }
@Override public void changed(ObservableValue<? extends State> observable, State oldState, State newState) { if (newState == Worker.State.SUCCEEDED) { try { //Determine the full url String favIconFullURL = getHostName(webEngine.getLocation()) + "favicon.ico"; //System.out.println(favIconFullURL) //Create HttpURLConnection HttpURLConnection httpcon = (HttpURLConnection) new URL(favIconFullURL).openConnection(); httpcon.addRequestProperty("User-Agent", "Mozilla/5.0"); List<BufferedImage> image = ICODecoder.read(httpcon.getInputStream()); //Set the favicon facIconImageView.setImage(SwingFXUtils.toFXImage(image.get(0), null)); } catch (Exception ex) { //ex.printStackTrace() facIconImageView.setImage(null); } } }
public UARTPanel() { WebView view = new WebView(); view.setContextMenuEnabled(false); webEngine = view.getEngine(); messageQueue = new LinkedList<>(); valueDisplayOptions = new LinkedHashMap<>(); populateDisplayOptions(); ObservableValue<State> property = webEngine.getLoadWorker().stateProperty(); OnLoadListener.register(this::onLoad, property); String content = "<html><head></head><body " + styleString() + "></body></html>"; webEngine.loadContent(content); HBox controlPane = createControlPane(); this.setCenter(view); this.setBottom(controlPane); }
public ConsolePane() { WebView view = new WebView(); view.setContextMenuEnabled(false); webEngine = view.getEngine(); messageQueue = new LinkedList<>(); ObservableValue<State> property = webEngine.getLoadWorker().stateProperty(); OnLoadListener.register(this::onLoad, property); String content = "<html><head></head><body></body></html>"; webEngine.loadContent(content); ConsolePaneEventHandler eventHandler = new ConsolePaneEventHandler(); EventRegistry.getGlobalRegistry().register(eventHandler); this.setCenter(view); }
/** * * JFXMasonryPane의 버그때문에 reload의 경우 - 새로 JFXMasonryPane을 만드는 작업을 처리함. * * @작성자 : KYJ * @작성일 : 2016. 11. 21. */ protected void reload() { if (service.isRunning()) { return; } if (gargoyleThreadExecutors.isShutdown() || gargoyleThreadExecutors.isTerminated()) { service.setExecutor(gargoyleThreadExecutors); } if (State.SUCCEEDED == service.getState()) { service.restart(); } else { service.start(); } }
public void registerFunction( String namespace, Object theClass ) { log.debug( "Registering Java class whose methods can be called from javascript. Namespace: " + namespace + ", Java class: " + theClass ); Platform.runLater( new Runnable() { @Override public void run() { engine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { @Override public void changed( ObservableValue<? extends Worker.State> ov, State oldState, State newState ) { if ( newState == Worker.State.SUCCEEDED ) { JSObject jsobj = (JSObject) engine.executeScript( "window" ); jsobj.setMember( namespace, theClass ); } } } ); } } ); }
private void removeItem(ZooKeeper zk, TreeView<ZNodeFX> treeView, TreeItem<ZNodeFX> item) { TreeItem<ZNodeFX> parent = item.getParent(); if(parent!=null){ final ZKRemover remover = new ZKRemover(zk, item.getValue()); serviceWorker.bind(remover); remover.stateProperty().addListener((ChangeListener<State>) (observable, oldValue, newValue) -> { switch (newValue) { case SUCCEEDED: if(remover.getValue()){ parent.getChildren().remove(item); } break; case FAILED: Dialogs.showError("Error removing item " + item.getValue().getName(), "It is forbidden to remove the root item"); default: break; } }); remover.start(); }else{ Dialogs.showError("Error removing item " + item.getValue().getName(), "It is forbidden to remove the root item"); } }
private void connectToZK(final String conn) { final ZKConnector connector = new ZKConnector(conn); progress.progressProperty().bind(connector.progressProperty()); progress.visibleProperty().bind(connector.runningProperty()); connector.stateProperty().addListener((ChangeListener<State>) (observable, oldValue, newValue) -> { switch (newValue) { case FAILED: Dialogs.showError("Wrong ZooKeeper connection", conn); break; case SUCCEEDED: createTab(connector.getValue()); ZFXConf.getInstance().addSuccessfulConnection(connector.getValue()); break; default: break; } }); connector.start(); }
protected FXCanvasBrowserApp() { shell = new Shell(); shell.setText(this.getClass().getSimpleName()); shell.setLayout(new FillLayout()); FXCanvas fxCanvas = new FXCanvas(shell, SWT.BORDER); browser = new WebView(); browser.getEngine().getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { public void changed(ObservableValue ov, State oldState, State newState) { if (newState == State.SUCCEEDED) { successLabel.setText(SUCCESS_MESSAGE); } } }); fxCanvas.setScene(createScene()); shell.pack(); Monitor monitor = shell.getMonitor(); Rectangle monitorRect = monitor.getClientArea(); Rectangle shellRect = shell.getBounds(); shellRect.x = Math.max(0, (monitorRect.width - shellRect.width) / 2); shellRect.y = Math.max(0, (monitorRect.height - shellRect.height) / 2); shell.setBounds(shellRect); shell.open(); }
@Override public void start(Stage stage) { view = new WebView(); web = view.getEngine(); web.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() { public void changed(ObservableValue<? extends State> ov, State t, State t1) { if (t1.equals(Worker.State.SUCCEEDED)) { currIndex.setText("Current index: " + web.getHistory().getCurrentIndex()); currHistorySize.setText("Current number of entries: " + web.getHistory().getEntries().size()); } } }); String url = getParameters().getRaw().get(0); if (url != null) web.load(url); stage.setTitle("Launcher"); stage.setScene(new Scene(createContainer(), 800, 600)); stage.sizeToScene(); stage.show(); }
WebView createWebView(String url) { System.out.println("URL to load: " + url); WebView view = new WebView(); web = view.getEngine(); web.getLoadWorker().stateProperty().addListener ( new ChangeListener <State>() { @Override public void changed (ObservableValue ov, State oldState, State newState) { System.out.println ("WebEngine's state changed from " + oldState.toString() + " to " + newState.toString()); System.out.println("Location: " + web.getLocation()); if (web.getLoadWorker().getException() != null) { System.out.println("Exception message: " + web.getLoadWorker().getException().getMessage()); } } }); web.load(url); return view; }
public final void initialize(Stage s) { this.stage = s; WebEngine engine = this.webBrowser.getEngine(); String userAgent = engine.getUserAgent(); engine.setUserAgent(userAgent.substring(0, userAgent.indexOf(')')) + "; rv:56.0) Gecko/20100101 Firefox/56.0"); engine.setJavaScriptEnabled(true); engine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> { if (newValue.equals(State.SUCCEEDED)) { String location = engine.getLocation(); if (!location.contains("sh.st") && !location.contains("adf.ly") && !location.contains("krothium.com") && !location.contains("about:blank")) { this.webBrowser.getEngine().load("about:blank"); } if (location.contains("about:blank") && !this.toHide.isShowing()) { this.toHide.show(); s.close(); } } }); }
public ProgressDialog(final Worker<?> worker) { if (worker == null) return; if (worker.getState() == State.CANCELLED || worker.getState() == State.FAILED || worker.getState() == State.SUCCEEDED) { return; } this.worker = worker; setResultConverter(dialogButton -> null); setTitle("Progress"); getDialogPane().setHeaderText("Operation in Progress"); initModality(Modality.APPLICATION_MODAL); createControls(); createLayout(); bindEvents(); }
public final void setWorker(final Worker<?> newWorker) { if (newWorker != worker) { if (worker != null) { worker.stateProperty().removeListener(stateListener); end(); } worker = newWorker; if (newWorker != null) { newWorker.stateProperty().addListener(stateListener); if (newWorker.getState() == Worker.State.RUNNING || newWorker.getState() == Worker.State.SCHEDULED) { // It is already running begin(); } } } }
public void loadPage(TextField textField, //ProgressBar progressBar, WebEngine webEngine, WebView webView) { String route = textField.getText(); if (route !=null) if (!route.substring(0, 7).equals("http://")) { route = "http://" + route; textField.setText(route); } System.out.println("Loading route: " + route); //progressBar.progressProperty().bind(webEngine.getLoadWorker().progressProperty()); webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> value, State oldState, State newState) { if(newState == State.SUCCEEDED){ System.out.println("Location loaded + " + webEngine.getLocation()); } } }); webEngine.load(route); }
@FXML protected void initialize() { // Update progress bar when service updates progress progressBar.progressProperty().bind(service.progressProperty()); // Update message label when service updates message progressMessage.textProperty().bind(service.messageProperty()); // Hide dialog when the service stops running service.stateProperty().addListener((observable, oldValue, newValue) -> { if (newValue == State.CANCELLED || newValue == State.FAILED || newValue == State.SUCCEEDED) { service.cancel(); hide(); } }); }
@Override public void changed (ObservableValue<? extends State> ov, State oldState, State newState) { if (newState == Worker.State.SUCCEEDED) { EventListener listener = event -> { final String href = ((Element)event.getTarget()).getAttribute(HTML_LINK); if (href != null) { String domEventType = event.getType(); if (domEventType.equals(EVENT_CLICK)) { showPage(href); } else if (domEventType.equals(EVENT_MOUSEOVER)) { showStatus(href); } else if (domEventType.equals(EVENT_MOUSEOUT)) { showStatus(BLANK); } } }; Document doc = myPage.getEngine().getDocument(); NodeList nodes = doc.getElementsByTagName("a"); for (int i = 0; i < nodes.getLength(); i++) { EventTarget node = (EventTarget)nodes.item(i); node.addEventListener(EVENT_CLICK, listener, false); node.addEventListener(EVENT_MOUSEOVER, listener, false); node.addEventListener(EVENT_MOUSEOUT, listener, false); } } }
private void createNodes() { webView = new WebView(); webView.setFocusTraversable(false); // disable WebView default drag and drop handler to allow dropping markdown files webView.setOnDragEntered(null); webView.setOnDragExited(null); webView.setOnDragOver(null); webView.setOnDragDropped(null); webView.setOnDragDetected(null); webView.setOnDragDone(null); webView.getEngine().getLoadWorker().stateProperty().addListener((ob,o,n) -> { if (n == State.SUCCEEDED && !runWhenLoadedList.isEmpty()) { ArrayList<Runnable> runnables = new ArrayList<>(runWhenLoadedList); runWhenLoadedList.clear(); for (Runnable runnable : runnables) runnable.run(); } }); }
public void doWhenFinished(Runnable task) { Platform.runLater(new Runnable() { @Override public void run() { engine.getLoadWorker().stateProperty() .addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue ov, State oldState, State newState) { if(newState == State.SUCCEEDED) { task.run(); engine.getLoadWorker().stateProperty() .removeListener(this); } } }); } }); }
public static void set(final WebView view){ // We want to handle all anchor click events after the view has loaded view.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> obs, State old, State current) { if(State.SUCCEEDED == current) { NodeList nodeList = view.getEngine().getDocument().getElementsByTagName("a"); for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); EventTarget eventTarget = (EventTarget) node; WebViewOnClickListener handler = new WebViewOnClickListener(); eventTarget.addEventListener("click", handler, false); } } } }); }
public void registerAction(final String name,final Object obj){ Platform.runLater(new Runnable() { @Override public void run() { we.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> ov, State oldS, State newS) { if(newS == State.SUCCEEDED) { JSObject window = (JSObject) we.executeScript("window"); window.setMember(name, obj); } } }); } }); }
@Override public void initialize(URL u, ResourceBundle resources) { bindUI(); webView.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) { if (State.SUCCEEDED == newValue) { // a new page has been loaded enhanceAndMonitorPage(); } } }); goToHomePage(); }
public WebTerminal() { webView = new WebView(); webEngine = webView.getEngine(); webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { public void changed(ObservableValue<? extends State> ov, State t, State newValue) { if (newValue == State.SUCCEEDED) { initialize(); loadSucceeded(); } }}); loadPage(webEngine); this.getChildren().add(webView); // We run the key-event handlers during the filter (capture) phase, // rather than the normal (bubbling) phase. This allows us to // consume the event, so it never gets to the bubbling phase - and // thus never gets passed to the native component. (In JavaScript // one can call preventDefault or have the handler return false, // but we don't have the functionality with JavaFX events.) webView.addEventFilter(KeyEvent.KEY_PRESSED, this); webView.addEventFilter(KeyEvent.KEY_TYPED, this); VBox.setVgrow(webView, Priority.ALWAYS); }
public void setup() { this.dialog = new Dialog(this.root.getScene().getWindow()); this.pluginLoader = new PluginLoader(this.dialog, this.logger); WebEngine webEngine = this.htmlRoot.getEngine(); webEngine.setOnAlert(event -> this.dialog.info(event.getData())); webEngine.load(getClass().getResource("/page/index.html").toString()); this.htmlRoot.setFontSmoothingType(FontSmoothingType.GRAY); this.htmlRoot.setContextMenuEnabled(false); webEngine.getLoadWorker().stateProperty().addListener( (ov, oldState, newState) -> { if (newState == State.SUCCEEDED) this.onLoaded(); }); }
public void showHtml() { JComponent oldComp = currentView; final WebView htmlView = getWebView(); Platform.runLater( () -> { htmlView.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) { if(newValue == State.SUCCEEDED) { JSObject window = (JSObject) htmlView.getEngine().executeScript("window"); window.setMember("buffer", BufferPanel.this); } } }); htmlView.getEngine().loadContent(logBuffer.getText()); SwingUtilities.invokeLater(() -> { currentView = fxPanel; cardLayout.show(contentPanel, HTML_VIEW_ID); firePropertyChange(SHOWING_BUFFER_PROP, oldComp, currentView); }); }); }
@FXML /** * Setups the HelpView window and added a changed event to the engine, * this allowed listening for "special" urls where we want to open a * default browser window with more information to the user */ public void initialize() { ewan = lewis.getEngine(); ewan.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { @SuppressWarnings("rawtypes") // Might need to fix this someday @Override public void changed(ObservableValue ov, State oldState, State newState) { if (newState == Worker.State.SUCCEEDED) { System.out.println("Loaded> " + ewan.getLocation()); // TODO check if the location is a special external URL then open it in the default // browser } } }); ewan.load(generateURL("Index.html")); }
void dostuff(){ // process page loading webEngine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> ov, State oldState, State newState) { if (newState == State.SUCCEEDED) { JSObject win = (JSObject) webEngine.executeScript("window"); win.setMember("app", new GrooApp()); doInit(); webEngine.executeScript("start();"); } } } ); }
public void bindRoute(StringProperty startPosition, StringProperty finishPosition) { this.startPosition = startPosition; this.finishPosition = finishPosition; // listen for webEngine to initiate displaying of the route getWebEngine().getLoadWorker().stateProperty() .addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> state, State arg1, State newState) { if (newState == State.SUCCEEDED) { // remove change listener state.removeListener(this); // calculate route calcRoute(); } } }); }
/** * @param javascriptEditor * WebView, in der der Javascript laufen soll. * @param resource * HTML Ressource zur Einbettung des Editors. * @param content * Initialer Inhalt des Editors. */ private void installJavascriptEditorWithInitialContent(final WebView javascriptEditor, final String resource, final String content) { final WebEngine engine = javascriptEditor.getEngine(); engine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { @Override public void changed(final ObservableValue<? extends State> observable, final State oldState, final State newState) { if (newState == State.SUCCEEDED) { engine.getLoadWorker().stateProperty().removeListener(this); statementEditor.setText(content); statementEditor.focus(); } } }); final ResourceLocator locator = new ResourceLocator(); try { javascriptEditor.getEngine() .load(locator.getExternalFormForExplodedResourceInBundle(resource).toExternalForm()); } catch (final Exception e) { installEditorTextArea(); } }
@Override public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) { if (State.SUCCEEDED.equals(newValue)) { Document document = webView.getEngine().getDocument(); NodeList anchors = document.getElementsByTagName(ANCHOR_TAG); for (int i = 0; i < anchors.getLength(); i++) { Node node = anchors.item(i); EventTarget eventTarget = (EventTarget) node; eventTarget.addEventListener(CLICK_EVENT, this, false); } } }
private void initComponent() { webView = new WebView(); String externalForm = ACEEditor.class.getResource("/Ace.html").toExternalForm(); WebEngine engine = webView.getEngine(); engine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) { if (newValue != State.SUCCEEDED) { return; } JSObject window = (JSObject) engine.executeScript("window"); window.setMember("java", ACEEditor.this); engine.executeScript("console.log = function(message)\n" + "{\n" + " java.log(message);\n" + "};"); ACEEditor.this.engine = engine; setOptions(new JSONObject().put("showLineNumbers", showLinenumbers).put("firstLineNumber", startLineNumber) .put("overwrite", false)); loadPreferences(); hookKeyBindings(); } }); engine.load(externalForm); ToolBarContainer container = ToolBarContainer.createDefaultContainer(Orientation.RIGHT); if (withToolbar) { ToolBarPanel toolBarPanel = container.getToolBarPanel(); createToolBars(toolBarPanel); } container.setContent(webView); this.node = container; }
/** * Method to overwrite to listen to changes in the web browser */ @Override public void changed (ObservableValue<? extends State> ov, State oldState, State newState) { if (newState == Worker.State.SUCCEEDED) { String newURL = myEngine.getLocation(); checkForLogin(newURL); } }
private void loadSections(Runnable nextCall) { logger.info("Loading " + bounds.toString()); boolean includeTitle = (bounds.lowerSection == 0 && bounds.lowerOption == 0); String source = project.getTemplate().render(project, includeTitle, bounds, ImageType.REFERENCE); WebEngine engine = browser.getEngine(); engine.loadContent(source); if (listener != null) { engine.getLoadWorker().stateProperty().removeListener(listener); } listener = new ChangeListener<Worker.State>() { @Override public void changed(ObservableValue<? extends Worker.State> observable, Worker.State oldValue, Worker.State newValue) { if (newValue != Worker.State.SUCCEEDED) return; try { engine.executeScript("document.body.style.overflow = 'hidden'"); String heightText = engine .executeScript("window.getComputedStyle(document.body).getPropertyValue('height')") .toString(); height = Double.valueOf(heightText.replace("px", "")); browser.setMinWidth(1280); browser.setMaxWidth(browser.getMinWidth()); nextCall.run(); } catch (Exception e) { logger.error("Error while setting up screenshot browser", e); stage.close(); callback.accept("Error while taking screenshot"); } } }; engine.getLoadWorker().stateProperty().addListener(listener); }
private void createScene() { Platform.runLater(() -> { WebView view = new WebView(); //view.setContextMenuEnabled(false); System.out.println("This happened"); engine = view.getEngine(); System.out.println("So did this"); FXPanel.setScene(new Scene(view)); engine.load(path+"SQLNavigator/User%20Login/login.html"); engine.getLoadWorker().stateProperty().addListener((ObservableValue<? extends State> ov,State oldState, State newState) -> { if (newState == State.SUCCEEDED) { JSObject win = (JSObject) engine.executeScript("window"); win.setMember("Handler", handler); } engine.executeScript("run()"); } ); engine.titleProperty().addListener(new ChangeListener<String>() { @Override public void changed(ObservableValue<? extends String> observable, String oldValue, final String newValue) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { UserManager.this.setTitle(newValue); } }); } }); }); }
public void changed(ObservableValue<? extends State> value, State oldState, State newState) { if (newState == State.SUCCEEDED) { onLoadFunction.perform(); if (observable != null) observable.removeListener(this); } }
@Override public void changed(ObservableValue<? extends State> observable, State oldState, State newState) { if (newState == Worker.State.CANCELLED) { // download detected String url = webEngine.getLocation(); logger.info("download url: "+url); // try{ // Download download = new Download(webEngine.getLocation()); // Thread t = new Thread(download); // t.start(); // }catch(Exception ex){ // logger.log(Level.SEVERE, "download", ex); // } } }
public void create(Stage primaryStage) { this.primaryStage = primaryStage; FunnyCreator.getLogger().info("Creating primary view"); ScreenUtils.to(primaryStage, 960, 480); ScreenUtils.center(primaryStage); WebView view = new WebView(); this.engine = view.getEngine(); engine.getLoadWorker().stateProperty().addListener((observable, oldValue, newValue) -> { if (newValue != State.SUCCEEDED) { return; } FunnyCreator.getLogger().info("Showing view"); primaryStage.show(); FunnyCreator.getLogger().info("Injecting FGC bridge"); JSObject window = (JSObject) engine.executeScript("window"); window.setMember("FunnyGuildsCreator", new FunnyBridge()); creator.runAsync(() -> { try { creator.load(); } catch (Exception e) { e.printStackTrace(); AlertUtils.alert("FunnyCreator Exception", "Cannot load creator", ExceptionUtils.getStackTrace(e), creator::shutdown); } }); }); String style = IOUtils.toString(getClass().getResourceAsStream("/panel/front.css"), Charset.forName("UTF-8")); String script = IOUtils.toString(getClass().getResourceAsStream("/panel/front.js"), Charset.forName("UTF-8")); String html = IOUtils.toString(getClass().getResourceAsStream("/panel/front.html"), Charset.forName("UTF-8")); String content = html .replace("{{STYLE}}", style) .replace("{{SCRIPT}}", script) .replace("{{VERSION}}", FunnyConstants.VERSION); engine.loadContent(content); Scene scene = new Scene(view, primaryStage.getWidth(), primaryStage.getHeight()); primaryStage.getIcons().add(new Image(FunnyCreator.class.getResourceAsStream("/icon.png"))); primaryStage.initStyle(StageStyle.UNDECORATED); primaryStage.setTitle("FunnyGuilds Creator " + FunnyConstants.VERSION); primaryStage.setScene(scene); }
@SuppressWarnings({ "unchecked", "rawtypes" }) public static void printURL(String url) { Platform.runLater(new Runnable() { @Override public void run() { try { WebView view = new WebView(); WebEngine engine = view.getEngine(); engine.getLoadWorker().stateProperty().addListener((ChangeListener) (obsValue, oldState, newState) -> { if (newState == State.SUCCEEDED) { Document doc = engine.getDocument(); // don't know why, but this was necessary to get the font-size smaller for results, prints fine under Chrome but not WebView Element extrastyle = doc.createElement("style"); extrastyle.appendChild(doc.createTextNode(".container-fluid { font-size: 0.65rem !important; } table td span { white-space: nowrap; }")); doc.getDocumentElement().getElementsByTagName("head").item(0).appendChild(extrastyle); PrinterJob job = PrinterJob.createPrinterJob(); if (job == null) { log.warning("Unable to create a print job. Opening in a browser instead."); openURL(url); return; } if (job.showPrintDialog(null)) { engine.print(job); job.endJob(); } } }); engine.load(url); } catch (Exception e) { log.log(Level.SEVERE, "\bCould not print:" + e, e); } } }); }
PageWalker(WebEngine webEngine, GuiController guiController) { this.webEngine = webEngine; this.guiController = guiController; flashesArray = new ArrayList<>(); cookiesArray = new ArrayList<>(); initialListener = new ChangeListener<State>() { @Override public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) { if (newValue == State.SUCCEEDED) { PageTemplate.pageCount = tryGetPageCount(); if (tryGetPageCount() != -1) { guiController.toLog("Get num of pages... " + PageTemplate.pageCount + "."); List<String> links = new ArrayList<>(); for (int i = PageTemplate.pageStart; i <= PageTemplate.pageStop; i++, PageTemplate.pageCountAux++) { String link = PageTemplate.startUrl + "&page=" + i; links.add(link); } guiController.toLog("Generating links... " + PageTemplate.pageCountAux + "."); guiController.toLog("=== Start LINKS"); PageTemplate.pageCountAux = PageTemplate.pageStart; webEngine.getLoadWorker().stateProperty().removeListener(this); loadPagesConsecutively(links, PartStates.PartLink); } else { guiController.toLog("Get num of pages... fail!"); } } } }; }
@Override public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) { if (newValue == State.SUCCEEDED) { WebEngine engine = getWebView().getEngine(); if (ValueUtil.isNotEmpty(initCont)) { engine.executeScript(" document.getElementById('gargoyle-textarea').innerHTML= '" + initCont + "'; "); } engine.getLoadWorker().stateProperty().removeListener(this); webViewLoaded.set(true); } }