# HG changeset patch # User Felipe Heidrich # Date 1399505466 25200 # Wed May 07 16:31:06 2014 -0700 # Node ID 90b1ef6634cdc0d3004121715e73a8db0227da08 # Parent af7a2fabf339315844123eb44e7e80cf229073af [mq]: q diff -r af7a2fabf339 -r 90b1ef6634cd apps/toys/Hello/src/main/java/hello/HelloPagination.java --- a/apps/toys/Hello/src/main/java/hello/HelloPagination.java Tue May 06 13:36:20 2014 -0700 +++ b/apps/toys/Hello/src/main/java/hello/HelloPagination.java Wed May 07 16:31:06 2014 -0700 @@ -102,6 +102,15 @@ pagination.setCurrentPageIndex(8); }); + Button setStyle = new Button("change style"); + setStyle.setOnAction(t -> { + if (pagination.getStyleClass().contains(Pagination.STYLE_CLASS_BULLET)) { + pagination.getStyleClass().remove(Pagination.STYLE_CLASS_BULLET); + } else { + pagination.getStyleClass().add(Pagination.STYLE_CLASS_BULLET); + } + }); + Button getCurrentPageIndex = new Button("getCurrentPageIndex"); getCurrentPageIndex.setOnAction(t -> System.out.println("getCurrentPageIndex = " + pagination.getCurrentPageIndex())); @@ -132,7 +141,7 @@ toolbar.getChildren().addAll( setMaxPageIndicatorCount, setCurrentPageIndex, setCurrentPageIndex2, setCurrentPageIndex3, - setOldPageFactory, setNewPageFactory, + setOldPageFactory, setNewPageFactory, setStyle, setPageCount, setPageCount2, setPageCount3, getMaxPageIndicatorCount, getCurrentPageIndex); diff -r af7a2fabf339 -r 90b1ef6634cd modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java --- a/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java Tue May 06 13:36:20 2014 -0700 +++ b/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/PaginationSkin.java Wed May 07 16:31:06 2014 -0700 @@ -746,16 +746,13 @@ minButtonSize = newFont.getSize() * 2; for(Node child: controlBox.getChildren()) { ((Control)child).setMinSize(minButtonSize, minButtonSize); - // RT-33327 : min size is set on the toggle button but the - // pref size does not match as computed by LabeledSkinBase#computePrefHeight - // so setting the prefSize ensures the desired size on the button. - ((Control)child).setPrefSize(minButtonSize, minButtonSize); } // We want to relayout the indicator buttons because the size has changed. requestLayout(); }); leftArrowButton.setMinSize(minButtonSize, minButtonSize); - leftArrowButton.setPrefSize(minButtonSize, minButtonSize); + leftArrowButton.prefWidthProperty().bind(leftArrowButton.minWidthProperty()); + leftArrowButton.prefHeightProperty().bind(leftArrowButton.minHeightProperty()); leftArrowButton.getStyleClass().add("left-arrow-button"); leftArrowButton.setFocusTraversable(false); HBox.setMargin(leftArrowButton, new Insets(0, snapSize(arrowButtonGap.get()), 0, 0)); @@ -774,7 +771,8 @@ } }; rightArrowButton.setMinSize(minButtonSize, minButtonSize); - rightArrowButton.setPrefSize(minButtonSize, minButtonSize); + rightArrowButton.prefWidthProperty().bind(rightArrowButton.minWidthProperty()); + rightArrowButton.prefHeightProperty().bind(rightArrowButton.minHeightProperty()); rightArrowButton.getStyleClass().add("right-arrow-button"); rightArrowButton.setFocusTraversable(false); HBox.setMargin(rightArrowButton, new Insets(0, 0, 0, snapSize(arrowButtonGap.get()))); @@ -1210,6 +1208,8 @@ tooltipVisibleProperty().addListener((ov, oldValue, newValue) -> { setTooltipVisible(newValue); }); + + prefHeightProperty().bind(minHeightProperty()); } private void setIndicatorType() { @@ -1217,10 +1217,17 @@ getStyleClass().remove("number-button"); getStyleClass().add("bullet-button"); setText(null); + + // Bind the width in addition to the height to ensure the region + // is square + prefWidthProperty().bind(minWidthProperty()); } else { getStyleClass().remove("bullet-button"); getStyleClass().add("number-button"); setText(Integer.toString(this.pageNumber + 1)); + + // Free the width to conform the text content + prefWidthProperty().unbind(); } }