private void setAvailable() { for (String s : Arrays.asList("statusNotConnected", "statusConnected", "statusError", "statusBusy")) { signIn.getStyleClass().remove(s); } if (context.getBridge().isConnected()) { int connected = 0; int connecting = 0; try { List<ConnectionStatus> connections = context.getBridge().getClientService().getStatus(); for (ConnectionStatus c : connections) { log.info( String.format("Connection %s = %s", c.getConnection().getHostname(), c.getStatus())); if (c.getStatus() == ConnectionStatus.CONNECTED) { connected++; } else if (c.getStatus() == ConnectionStatus.CONNECTING) { connecting++; } } log.info( String.format("Bridge says %d are connected of %d", connected, connections.size())); if (connecting > 0) { signIn.getStyleClass().add("statusBusy"); if (busyFade == null) { busyFade = new FadeTransition(Duration.seconds(0.25), signIn); signIn.setEffect(new Glow(0.5)); busyFade.setFromValue(0.5); busyFade.setToValue(1.0); busyFade.setAutoReverse(true); busyFade.setCycleCount(Timeline.INDEFINITE); busyFade.play(); } } else if (connected > 0) { signIn.getStyleClass().add("statusNotConnected"); removeBusyGlow(); } else { signIn.getStyleClass().add("statusConnected"); removeBusyGlow(); signIn.setEffect(new Glow(0.5)); } } catch (Exception e) { log.error("Failed to check connection state.", e); signIn.getStyleClass().add("statusError"); removeBusyGlow(); } } else { log.info("Bridge says not connected"); signIn.getStyleClass().add("statusError"); removeBusyGlow(); } }
private void removeBusyGlow() { if (busyFade != null) { busyFade.stop(); busyFade = null; } signIn.setEffect(null); }
@Override public void start(Stage primaryStage) throws Exception { Button button = new Button("BindableTransition"); DropShadow shadow = DropShadowBuilder.create().build(); button.setEffect(shadow); button.setStyle("-fx-font-size: 32px;"); final Duration duration = Duration.millis(1200); BindableTransition transition = new BindableTransition(duration); transition.setCycleCount(1000); transition.setAutoReverse(true); shadow.offsetXProperty().bind(transition.fractionProperty().multiply(32)); shadow.offsetYProperty().bind(transition.fractionProperty().multiply(32)); button.translateXProperty().bind(transition.fractionProperty().multiply(-32)); transition.play(); StackPane pane = new StackPane(); pane.getChildren().add(button); Scene myScene = new Scene(pane, 800, 600); primaryStage.setScene(myScene); primaryStage.show(); }
private BorderPane webViewScene() { url = new TextField(); url.setPrefWidth(800); browser = new WebView(); engine = browser.getEngine(); url.setText(fileUrl); engine.load(fileUrl); history = browser.getEngine().getHistory(); backButton = new Button(null, new ImageView(new Image("res/BrowserIcons/back.png"))); backButton.setOnAction( (ActionEvent e) -> { if (!checkIntConnection(defaultUrl)) { alert(); } else browser.getEngine().load(goBack()); }); backButton.addEventHandler( MouseEvent.MOUSE_ENTERED, event -> backButton.setEffect(new DropShadow())); backButton.addEventHandler(MouseEvent.MOUSE_EXITED, event -> backButton.setEffect(null)); forwardButton = new Button(null, new ImageView(new Image("res/BrowserIcons/forward.png"))); forwardButton.setOnAction( (ActionEvent e) -> { if (!checkIntConnection(defaultUrl)) { alert(); } else browser.getEngine().load(goForward()); }); forwardButton.addEventHandler( MouseEvent.MOUSE_ENTERED, event -> forwardButton.setEffect(new DropShadow())); forwardButton.addEventHandler(MouseEvent.MOUSE_EXITED, event -> forwardButton.setEffect(null)); reloadButton = new Button(null, new ImageView(new Image("res/BrowserIcons/reload.png"))); reloadButton.setOnAction( event -> { if (!checkIntConnection(defaultUrl)) { alert(); } else browser.getEngine().reload(); }); reloadButton.addEventHandler( MouseEvent.MOUSE_ENTERED, event -> reloadButton.setEffect(new DropShadow())); reloadButton.addEventHandler(MouseEvent.MOUSE_EXITED, event -> reloadButton.setEffect(null)); goButton = new Button(null, new ImageView(new Image("res/BrowserIcons/go.jpg"))); goButton.setOnAction( event -> { // adding the http or https prefix if user didn't type it if (!checkIntConnection(defaultUrl)) { alert(); } else { if (url.getText().length() > 7 && (url.getText(0, 7).equals("http://") || url.getText(0, 8).equals("https://"))) { browser.getEngine().load(url.getText()); } else if (url.getText().length() > 7 && !url.getText(0, 7).equals("http://")) { browser.getEngine().load("http://" + url.getText()); } else { browser.getEngine().load("https://" + url.getText()); } } }); goButton.addEventHandler( MouseEvent.MOUSE_ENTERED, event -> goButton.setEffect(new DropShadow())); goButton.addEventHandler(MouseEvent.MOUSE_EXITED, event -> goButton.setEffect(null)); webHistoryComboBox = new ComboBox(); webHistoryComboBox.setPromptText("Web History"); webHistoryComboBox.setPrefWidth(200); webHistoryComboBox.setOnAction( event -> { // Navigate to the link in the history index int offset = webHistoryComboBox.getSelectionModel().getSelectedIndex() - history.getCurrentIndex(); history.go(offset); }); // Displying browse history in a combo box history .getEntries() .addListener( (ListChangeListener<WebHistory.Entry>) c -> { c.next(); for (WebHistory.Entry e : c.getRemoved()) webHistoryComboBox.getItems().remove(e.getUrl()); for (WebHistory.Entry e : c.getAddedSubList()) webHistoryComboBox.getItems().add(e.getUrl()); }); // Enabling and Disabling back and forward buttons browser .getEngine() .getLoadWorker() .stateProperty() .addListener( (observable, oldValue, newValue) -> { if (!browser.getEngine().getHistory().getEntries().isEmpty()) { int index = browser.getEngine().getHistory().getCurrentIndex(); url.setText(browser.getEngine().getHistory().getEntries().get(index).getUrl()); if (index == 0) { backButton.setDisable(true); } else { backButton.setDisable(false); } if (browser.getEngine().getHistory().getEntries().size() == 1) { forwardButton.setDisable(true); } else if (index < browser.getEngine().getHistory().getEntries().size() - 2) { forwardButton.setDisable(false); } else if (index < browser.getEngine().getHistory().getEntries().size() - 1) { forwardButton.setDisable(false); } else if (index == browser.getEngine().getHistory().getEntries().size() - 1) { forwardButton.setDisable(true); } } }); progress.setPrefSize(25, 25); progress.visibleProperty().bind(browser.getEngine().getLoadWorker().runningProperty()); BorderPane border = new BorderPane(); HBox topBar = new HBox(); topBar.setAlignment(Pos.CENTER); topBar.setSpacing(10); topBar.setPadding(new Insets(10, 10, 10, 10)); topBar .getChildren() .addAll( progress, reloadButton, url, goButton, backButton, forwardButton, webHistoryComboBox); border.setTop(topBar); border.setCenter(browser); border.setPrefHeight(Screen.getPrimary().getVisualBounds().getHeight()); border.setPrefWidth(Screen.getPrimary().getVisualBounds().getWidth()); return border; }