/** * 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()); }