Пример #1
0
 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();
   }
 }
Пример #2
0
 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();
  }
Пример #4
0
  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;
  }