Esempio n. 1
0
  /**
   * Constructs a new SliderBlock
   *
   * @param pane The parent pane this Block resides on.
   * @param isIntegral wWhether this slider represent an integral value.
   */
  public SliderBlock(ToplevelPane pane, boolean isIntegral) {
    super(
        "SliderBlock",
        pane,
        pane.getEnvInstance().buildType(isIntegral ? "Num a => a" : "Fractional a => a"));

    this.isIntegral = isIntegral;
    this.baseValue = 0;
    this.slider.setValue(0);
    this.updateValue();

    slider.getStyleClass().add("inactive");
    slider.setOnMousePressed(e -> slider.getStyleClass().removeAll("inactive"));
    slider.setOnMouseReleased(e -> slider.getStyleClass().add("inactive"));
    slider.setOnTouchPressed(e -> slider.getStyleClass().removeAll("inactive"));
    slider.setOnTouchReleased(e -> slider.getStyleClass().add("inactive"));

    slider.valueProperty().addListener(ev -> this.updateValue());
    slider.valueChangingProperty().addListener(ev -> this.toggleSliding());

    slider.addEventHandler(TouchEvent.TOUCH_MOVED, event -> event.consume());
  }