Java Examples for javafx.scene.control.ScrollBar

The following java examples will help you to understand the usage of javafx.scene.control.ScrollBar. These source code samples are taken from different open source projects.

Example 1
Project: Cachoeira-master  File: TableAndGanttPane.java View source code
private Node createTableView() {
    VBox.setVgrow(tableView, Priority.ALWAYS);
    tableView.setFixedCellSize(ROW_HEIGHT);
    tableView.createTable();
    tableView.bindScrollsToController();
    ScrollBar horizontalScrollBar = new ScrollBar();
    horizontalScrollBar.setOrientation(Orientation.HORIZONTAL);
    horizontalScrollBar.visibleAmountProperty().bind(tableView.widthProperty());
    horizontalScrollBar.valueProperty().bindBidirectional(controller.taskHorizontalScrollValueProperty());
    return new VBox(tableView, horizontalScrollBar);
}
Example 2
Project: skadi-master  File: JavaFXUtil.java View source code
public static ScrollBar getVerticalScrollbar(final TableView<?> table) {
    ScrollBar result = null;
    for (final Node n : table.lookupAll(".scroll-bar")) {
        if (n instanceof ScrollBar) {
            final ScrollBar bar = (ScrollBar) n;
            if (bar.getOrientation().equals(Orientation.VERTICAL)) {
                result = bar;
            }
        }
    }
    return result;
}
Example 3
Project: XR3Player-master  File: TableViewSample.java View source code
@Override
public void start(Stage stage) {
    Scene scene = new Scene(new Group());
    stage.setTitle("Table View Sample");
    stage.setWidth(450);
    stage.setHeight(550);
    final Label label = new Label("Address Book");
    label.setFont(new Font("Arial", 20));
    table.setEditable(true);
    TableColumn<Person, String> firstNameCol = new TableColumn<>("First Name");
    firstNameCol.setMinWidth(100);
    firstNameCol.setCellValueFactory(new PropertyValueFactory<>("firstName"));
    firstNameCol.setCellFactory(TextFieldTableCell.<Person>forTableColumn());
    firstNameCol.setOnEditCommit((CellEditEvent<Person, String> t) -> {
        ((Person) t.getTableView().getItems().get(t.getTablePosition().getRow())).setFirstName(t.getNewValue());
    });
    TableColumn<Person, String> lastNameCol = new TableColumn<>("Last Name");
    lastNameCol.setMinWidth(100);
    lastNameCol.setCellValueFactory(new PropertyValueFactory<>("lastName"));
    lastNameCol.setCellFactory(TextFieldTableCell.<Person>forTableColumn());
    lastNameCol.setOnEditCommit((CellEditEvent<Person, String> t) -> {
        ((Person) t.getTableView().getItems().get(t.getTablePosition().getRow())).setLastName(t.getNewValue());
    });
    TableColumn<Person, String> emailCol = new TableColumn<>("Email");
    emailCol.setMinWidth(200);
    emailCol.setCellValueFactory(new PropertyValueFactory<>("email"));
    emailCol.setCellFactory(TextFieldTableCell.<Person>forTableColumn());
    emailCol.setOnEditCommit((CellEditEvent<Person, String> t) -> {
        ((Person) t.getTableView().getItems().get(t.getTablePosition().getRow())).setEmail(t.getNewValue());
    });
    table.setItems(data);
    table.getColumns().addAll(firstNameCol, lastNameCol, emailCol);
    final TextField addFirstName = new TextField();
    addFirstName.setPromptText("First Name");
    addFirstName.setMaxWidth(firstNameCol.getPrefWidth());
    final TextField addLastName = new TextField();
    addLastName.setMaxWidth(lastNameCol.getPrefWidth());
    addLastName.setPromptText("Last Name");
    final TextField addEmail = new TextField();
    addEmail.setMaxWidth(emailCol.getPrefWidth());
    addEmail.setPromptText("Email");
    final Button addButton = new Button("Add");
    addButton.setOnAction((ActionEvent e) -> {
        data.add(new Person(addFirstName.getText(), addLastName.getText(), addEmail.getText()));
        addFirstName.clear();
        addLastName.clear();
        addEmail.clear();
    });
    hb.getChildren().addAll(addFirstName, addLastName, addEmail, addButton);
    hb.setSpacing(3);
    final VBox vbox = new VBox();
    vbox.setSpacing(5);
    vbox.setPadding(new Insets(10, 0, 0, 10));
    vbox.getChildren().addAll(label, table, hb);
    ((Group) scene.getRoot()).getChildren().addAll(vbox);
    stage.setScene(scene);
    stage.show();
    ScrollBar verticalBar = (ScrollBar) table.lookup(".scroll-bar:vertical");
    verticalBar.setValue(0.65);
}
Example 4
Project: jitwatch-master  File: EditorPane.java View source code
private void generateLineNumbers(int breakCount) {
    StringBuilder builder = new StringBuilder();
    final int maxDigits = Integer.toString(breakCount).length();
    for (int i = 0; i < breakCount; i++) {
        String marker = StringUtil.padLineNumber(i + 1, maxDigits);
        builder.append(marker).append(C_NEWLINE);
    }
    double minWidth = 16 + maxDigits * 12;
    taLineNumbers.setText(builder.toString());
    taLineNumbers.setMinWidth(minWidth);
    taLineNumbers.setMaxWidth(minWidth + 16);
    taLineNumbers.setPrefWidth(minWidth);
    if (sbSource == null) {
        sbSource = (ScrollBar) taSource.lookup(".scroll-bar:vertical");
    }
    if (sbLineNum == null) {
        sbLineNum = (ScrollBar) taLineNumbers.lookup(".scroll-bar:vertical");
    }
    if (sbLineNum != null) {
        sbLineNum.setOpacity(0.0);
        sbLineNum.setStyle("-fx-background-color:white");
    }
    if (sbSource != null && sbLineNum != null && !scrollLinked) {
        linkScrollBars();
    }
}
Example 5
Project: AsciidocFX-master  File: FileBrowseService.java View source code
private void initializeScrollListener() {
    threadService.runActionLater(() -> {
        this.treeView = controller.getFileSystemView();
        Set<Node> nodes = this.treeView.lookupAll(".scroll-bar");
        for (Node node : nodes) {
            ScrollBar scrollBar = (ScrollBar) node;
            if (scrollBar.getOrientation() == Orientation.VERTICAL) {
                verticalScrollState.updateState(scrollBar);
                scrollBar.valueProperty().addListener(( observable,  oldValue,  newValue) -> {
                    verticalScrollState.updateState(scrollBar, newValue);
                });
            } else if (scrollBar.getOrientation() == Orientation.HORIZONTAL) {
                horizontalScrollState.updateState(scrollBar);
                scrollBar.valueProperty().addListener(( observable,  oldValue,  newValue) -> {
                    horizontalScrollState.updateState(scrollBar, newValue);
                });
            }
        }
    });
}
Example 6
Project: chvote-1-0-master  File: KeyTestingController.java View source code
private void bindScrollBars() {
    ScrollBar plainTextScrollBar = plainTextList.lookupAll(".scroll-bar").stream().map( e -> (ScrollBar) e).filter( e -> e.getOrientation().equals(Orientation.HORIZONTAL)).findFirst().orElse(null);
    ScrollBar decryptedTextScrollBar = decryptedTextList.lookupAll(".scroll-bar").stream().map( e -> (ScrollBar) e).filter( e -> e.getOrientation().equals(Orientation.HORIZONTAL)).findFirst().orElse(null);
    if (plainTextScrollBar != null && decryptedTextScrollBar != null) {
        plainTextScrollBar.valueProperty().bindBidirectional(decryptedTextScrollBar.valueProperty());
    } else {
        LOGGER.error("couldn't find scrollbars");
    }
}
Example 7
Project: jfxtras-master  File: EditRecurrenceRuleVBox.java View source code
/**
     * Provide necessary data to setup
     * 
     * @param vComponent - component to be edited
     * @param dateTimeStartRecurrenceNew - reference to start date or date/time from {@link EditDecriptiveVBox}
     */
public void setupData(T vComponent, ObjectProperty<Temporal> dateTimeStartRecurrenceNew) {
    dateTimeStartProperty = new SimpleObjectProperty<Temporal>(vComponent.getDateTimeStart().getValue());
    rrule = (vComponent.getRecurrenceRule() != null) ? vComponent.getRecurrenceRule().getValue() : null;
    recurrenceRuleProperty = new SimpleObjectProperty<>(rrule);
    this.vComponent = vComponent;
    this.dateTimeStartRecurrenceNew = dateTimeStartRecurrenceNew;
    if (!isSupported(vComponent)) {
        throw new RuntimeException("Unsupported VComponent");
    }
    // Listen to DTSTART type changes (by selecting wholeDay in DescriptiveVBox)
    dateTimeStartRecurrenceNew.addListener(( obs,  oldValue,  newValue) -> {
        // Change EXCEPTIONS type
        DateTimeType newType = DateTimeType.of(newValue);
        Temporal[] convertedExceptions = exceptionsListView.getItems().stream().map( e -> {
            Temporal converted = newType.from(e);
            if (converted.isSupported(ChronoUnit.NANOS)) {
                converted = converted.with(LocalTime.from(newValue));
            }
            return converted;
        }).toArray( size -> new Temporal[size]);
        exceptionsListView.getItems().clear();
        exceptionsListView.getItems().addAll(convertedExceptions);
        // Change UNTIL type
        if (untilRadioButton.isSelected()) {
            Temporal untilOld = vComponent.getRecurrenceRule().getValue().getUntil().getValue();
            final Temporal untilNew;
            if (newValue instanceof ZonedDateTime) {
                LocalTime localTime = ((ZonedDateTime) newValue).withZoneSameInstant(ZoneId.of("Z")).toLocalTime();
                untilNew = LocalDate.from(untilOld).atTime(localTime).atZone(ZoneId.of("Z"));
            } else if (newValue instanceof LocalDateTime) {
                LocalTime localTime = LocalTime.from(newValue);
                untilNew = LocalDate.from(untilOld).atTime(localTime).atZone(ZoneId.of("Z"));
            //                    untilNew = ((LocalDateTime) newValue.with((TemporalAdjuster) untilOld)).atZone(ZoneId.of("Z"));
            } else {
                untilNew = LocalDate.from(vComponent.getRecurrenceRule().getValue().getUntil().getValue());
            }
            rrule.setUntil(untilNew);
        }
        exceptionMasterList.clear();
        refreshExceptionDates();
    });
    // Add or remove functionality and listeners when RRULE changes
    recurrenceRuleProperty.addListener(( obs,  oldValue,  newValue) -> {
        if (newValue != null) {
            addListeners();
            dateTimeStartProperty.addListener(dateTimeStartToExceptionChangeListener);
        //                vComponent.getDateTimeStart().valueProperty().addListener(dateTimeStartToExceptionChangeListener);
        } else {
            removeListeners();
            dateTimeStartProperty.removeListener(dateTimeStartToExceptionChangeListener);
        //                vComponent.getDateTimeStart().valueProperty().removeListener(dateTimeStartToExceptionChangeListener);                
        }
    });
    /* EXCEPTIONS
         * Note: exceptionComboBox string converter must be setup after the controller's initialization 
         * because the resource bundle isn't instantiated earlier.
         *
         * Note2:
         * When exceptions change you can only on change ALL or CANCEL - a change is an addition or removal, not merely a TYPE change such as from toggling wholeDayCheckBoy
         * TODO - NEED TO MAKE SURE TEMPORAL CLASS MATCHES WHOLE DAY CHECKBOX
         * 
         */
    //        exceptionFirstTemporal = vComponent.getDateTimeStart().getValue();
    exceptionComboBox.setConverter(new StringConverter<Temporal>() {

        // setup string converter
        @Override
        public String toString(Temporal temporal) {
            DateTimeFormatter myFormatter = getFormatter(temporal);
            return myFormatter.format(temporal);
        }

        @Override
        public Temporal fromString(String string) {
            throw new RuntimeException("not required for non editable ComboBox");
        }
    });
    // turn on add button when exception date is selected in combobox
    exceptionComboBox.valueProperty().addListener( obs -> addExceptionButton.setDisable(false));
    exceptionsListView.getSelectionModel().selectedItemProperty().addListener( obs -> {
        removeExceptionButton.setDisable(false);
    });
    // Format Temporal in exceptionsListView to LocalDate or LocalDateTime
    final Callback<ListView<Temporal>, ListCell<Temporal>> temporalCellFactory = new Callback<ListView<Temporal>, ListCell<Temporal>>() {

        @Override
        public ListCell<Temporal> call(ListView<Temporal> list) {
            return new ListCell<Temporal>() {

                @Override
                public void updateItem(Temporal temporal, boolean empty) {
                    super.updateItem(temporal, empty);
                    if (temporal == null || empty) {
                        setText(null);
                        setStyle("");
                    } else {
                        // Format date.
                        DateTimeFormatter myFormatter = getFormatter(temporal);
                        setText(myFormatter.format(temporal));
                    }
                }
            };
        }
    };
    exceptionsListView.setCellFactory(temporalCellFactory);
    /*
         * Make infinite scroll bars for exception dates
         * 
         * When node is attached to a scene an on-shown event handler is attached to the window
         * to loop through all the vertical scroll bars to add value property listeners to them
         * that adds data when scroll is near the extremes.
         * 
         * The scroll bars don't exist before the node is attached to the scene which is why
         * the sceneProperty listener and the onShown event handler are required.
         */
    sceneProperty().addListener(( obs,  oldScene,  newScene) -> {
        if (newScene != null) {
            newScene.getWindow().setOnShown( event -> {
                for (Node node : exceptionComboBox.lookupAll(".scroll-bar")) {
                    if (node instanceof ScrollBar) {
                        final ScrollBar bar = (ScrollBar) node;
                        if (bar.getOrientation() == Orientation.VERTICAL) {
                            bar.valueProperty().addListener((ChangeListener<Number>) ( value,  oldValue,  newValue) -> {
                                if (((double) newValue > 0.9) && ((double) oldValue < 0.9)) {
                                    int elements = exceptionComboBox.getItems().size();
                                    if (elements == EXCEPTION_CHOICE_LIMIT) {
                                        makeExceptionDates();
                                        bar.setValue(.5);
                                    }
                                } else if (((double) newValue < 0.1) && ((double) oldValue > 0.1)) {
                                    int elements = exceptionComboBox.getItems().size();
                                    Temporal firstElement = exceptionComboBox.getItems().get(0);
                                    int indexInMasterList = exceptionMasterList.indexOf(firstElement);
                                    int newIndex = Math.max((indexInMasterList - elements / 3), 0);
                                    if (newIndex < indexInMasterList) {
                                        makeExceptionDates();
                                        bar.setValue(.5);
                                    }
                                }
                            });
                        }
                    }
                }
            });
        }
    });
    // SETUP CONTROLLER'S INITIAL DATA FROM RRULE
    boolean isInitiallyRepeatable = (rrule != null);
    if (isInitiallyRepeatable) {
        setInitialValues(vComponent);
    }
    repeatableCheckBox.setSelected(isInitiallyRepeatable);
    // DAY OF WEEK RAIO BUTTON LISTENER (FOR MONTHLY)
    dayOfWeekRadioButton.selectedProperty().addListener(dayOfWeekButtonListener);
    // LISTENERS TO BE ADDED AFTER INITIALIZATION
    // Listeners to update exception dates
    addListeners();
    frequencyComboBox.valueProperty().addListener(frequencyListener);
}
Example 8
Project: gef-master  File: InfiniteCanvas.java View source code
/**
	 * Creates the {@link Group} designated for holding the scrollbars and
	 * places the scrollbars in it. Furthermore, event listeners are registered
	 * to update the scroll offset upon scrollbar movement.
	 *
	 * @return The {@link Group} designated for holding the scrollbars.
	 */
protected Group createScrollBarGroup() {
    // create horizontal scrollbar
    horizontalScrollBar = new ScrollBar();
    horizontalScrollBar.setVisible(false);
    horizontalScrollBar.setOpacity(0.5);
    // create vertical scrollbar
    verticalScrollBar = new ScrollBar();
    verticalScrollBar.setOrientation(Orientation.VERTICAL);
    verticalScrollBar.setVisible(false);
    verticalScrollBar.setOpacity(0.5);
    // bind horizontal size
    DoubleBinding vWidth = new DoubleBinding() {

        {
            bind(verticalScrollBar.visibleProperty(), verticalScrollBar.widthProperty());
        }

        @Override
        protected double computeValue() {
            return verticalScrollBar.isVisible() ? verticalScrollBar.getWidth() : 0;
        }
    };
    horizontalScrollBar.prefWidthProperty().bind(widthProperty().subtract(vWidth));
    // bind horizontal y position
    horizontalScrollBar.layoutYProperty().bind(heightProperty().subtract(horizontalScrollBar.heightProperty()));
    // bind vertical size
    DoubleBinding hHeight = new DoubleBinding() {

        {
            bind(horizontalScrollBar.visibleProperty(), horizontalScrollBar.heightProperty());
        }

        @Override
        protected double computeValue() {
            return horizontalScrollBar.isVisible() ? horizontalScrollBar.getHeight() : 0;
        }
    };
    verticalScrollBar.prefHeightProperty().bind(heightProperty().subtract(hHeight));
    // bind vertical x position
    verticalScrollBar.layoutXProperty().bind(widthProperty().subtract(verticalScrollBar.widthProperty()));
    // fade in/out on mouse enter/exit
    registerFadeInOutTransitions(horizontalScrollBar);
    registerFadeInOutTransitions(verticalScrollBar);
    horizontalScrollBar.valueProperty().addListener(horizontalScrollBarValueChangeListener);
    verticalScrollBar.valueProperty().addListener(verticalScrollBarValueChangeListener);
    return new Group(horizontalScrollBar, verticalScrollBar);
}
Example 9
Project: LifeTiles-master  File: MiniMapScrollPaneSkinTest.java View source code
@Before
public void setUp() {
    // force to initialize Toolkit
    new JFXPanel();
    scrollBar = new ScrollBar();
    scrollBar.setStyle("test");
    skin = new MiniMapScrollPaneSkin(new ScrollPane());
}
Example 10
Project: bitcoin-exchange-master  File: GUIUtil.java View source code
public static double getScrollbarWidth(Node scrollablePane) {
    Node node = scrollablePane.lookup(".scroll-bar");
    if (node instanceof ScrollBar) {
        final ScrollBar bar = (ScrollBar) node;
        if (bar.getOrientation().equals(Orientation.VERTICAL))
            return bar.getWidth();
    }
    return 0;
}
Example 11
Project: autopsy-master  File: GroupPane.java View source code
@ThreadConfined(type = ThreadType.JFX)
private Optional<ScrollBar> getScrollBar() {
    if (gridView == null || gridView.getSkin() == null) {
        return Optional.empty();
    }
    //NON-NLS
    return Optional.ofNullable((ScrollBar) gridView.getSkin().getNode().lookup(".scroll-bar"));
}
Example 12
Project: JXTN-master  File: JFX.java View source code
/**
     * 建立新的{@link javafx.scene.control.ScrollBar}建構器。
     *
     * @return 新的{@link javafx.scene.control.ScrollBarMaker}
     */
@SuppressWarnings({ "rawtypes", "unchecked" })
public static javafx.scene.control.ScrollBarMaker<javafx.scene.control.ScrollBar, ?> scrollBar() {
    return new javafx.scene.control.ScrollBarMaker();
}
Example 13
Project: bitsquare-master  File: GUIUtil.java View source code
public static double getScrollbarWidth(Node scrollablePane) {
    Node node = scrollablePane.lookup(".scroll-bar");
    if (node instanceof ScrollBar) {
        final ScrollBar bar = (ScrollBar) node;
        if (bar.getOrientation().equals(Orientation.VERTICAL))
            return bar.getWidth();
    }
    return 0;
}