From 6ac0996c65504835463e3977533f69fbbabb4260 Mon Sep 17 00:00:00 2001 From: Dirk Lemmermann Date: Fri, 13 Dec 2024 11:04:50 +0100 Subject: [PATCH] Update paging controls visibility logic and default label strategy Bound visibility and managed properties to consider the `showPagingControls` property for better flexibility. Changed the default `MessageLabelStrategy` to `ALWAYS_SHOW` to ensure consistent paging label display. --- .../main/java/com/dlsc/gemsfx/demo/PagingListViewApp.java | 5 ++++- gemsfx/src/main/java/com/dlsc/gemsfx/PagingControlBase.java | 2 +- .../main/java/com/dlsc/gemsfx/skins/PagingListViewSkin.java | 5 ++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/gemsfx-demo/src/main/java/com/dlsc/gemsfx/demo/PagingListViewApp.java b/gemsfx-demo/src/main/java/com/dlsc/gemsfx/demo/PagingListViewApp.java index 33fb9be2..b736e515 100644 --- a/gemsfx-demo/src/main/java/com/dlsc/gemsfx/demo/PagingListViewApp.java +++ b/gemsfx-demo/src/main/java/com/dlsc/gemsfx/demo/PagingListViewApp.java @@ -73,6 +73,9 @@ public void start(Stage stage) { CheckBox simulateDelay = new CheckBox("Simulate delay"); simulateDelay.selectedProperty().bindBidirectional(simulateDelayProperty); + CheckBox showPagingControls = new CheckBox("Show paging controls"); + showPagingControls.selectedProperty().bindBidirectional(pagingListView.showPagingControlsProperty()); + ComboBox location = new ComboBox<>(); location.getItems().addAll(Side.TOP, Side.BOTTOM); location.valueProperty().bindBidirectional(pagingListView.pagingControlsLocationProperty()); @@ -86,7 +89,7 @@ public void start(Stage stage) { Button increaseItemCount = new Button("Increase Count"); increaseItemCount.setOnAction(evt -> count.set(count.get() + 1)); - HBox settingsBox = new HBox(10, fillBox, simulateDelay, new Label("Location"), location, clearSetData, reduceItemCount, increaseItemCount); + HBox settingsBox = new HBox(10, fillBox, simulateDelay, showPagingControls, location, clearSetData, reduceItemCount, increaseItemCount); settingsBox.setAlignment(Pos.CENTER_LEFT); VBox box = new VBox(20, pagingListView, settingsBox, new PagingControlsSettingsView(pagingListView), scenicView); diff --git a/gemsfx/src/main/java/com/dlsc/gemsfx/PagingControlBase.java b/gemsfx/src/main/java/com/dlsc/gemsfx/PagingControlBase.java index 8ae56568..baa6e929 100644 --- a/gemsfx/src/main/java/com/dlsc/gemsfx/PagingControlBase.java +++ b/gemsfx/src/main/java/com/dlsc/gemsfx/PagingControlBase.java @@ -224,7 +224,7 @@ public enum MessageLabelStrategy { ALWAYS_SHOW } - private final ObjectProperty messageLabelStrategy = new SimpleObjectProperty<>(this, "messageLabelStrategy", PagingControls.MessageLabelStrategy.SHOW_WHEN_NEEDED); + private final ObjectProperty messageLabelStrategy = new SimpleObjectProperty<>(this, "messageLabelStrategy", MessageLabelStrategy.ALWAYS_SHOW); public final PagingControls.MessageLabelStrategy getMessageLabelStrategy() { return messageLabelStrategy.get(); diff --git a/gemsfx/src/main/java/com/dlsc/gemsfx/skins/PagingListViewSkin.java b/gemsfx/src/main/java/com/dlsc/gemsfx/skins/PagingListViewSkin.java index 657d3a8b..b35eaa19 100644 --- a/gemsfx/src/main/java/com/dlsc/gemsfx/skins/PagingListViewSkin.java +++ b/gemsfx/src/main/java/com/dlsc/gemsfx/skins/PagingListViewSkin.java @@ -41,9 +41,8 @@ public PagingListViewSkin(PagingListView pagingListView) { pagingControls.alignmentProperty().bindBidirectional(pagingListView.alignmentProperty()); pagingControls.firstLastPageDisplayModeProperty().bindBidirectional(pagingListView.firstLastPageDisplayModeProperty()); pagingControls.firstPageDividerProperty().bindBidirectional(pagingListView.firstPageDividerProperty()); - pagingControls.maxPageIndicatorsCountProperty().bindBidirectional(pagingListView.maxPageIndicatorsCountProperty()); - pagingControls.visibleProperty().bind(pagingControls.neededProperty()); - pagingControls.managedProperty().bind(pagingControls.neededProperty()); + pagingControls.visibleProperty().bind(pagingControls.neededProperty().and(pagingListView.showPagingControlsProperty())); + pagingControls.managedProperty().bind(pagingControls.neededProperty().and(pagingListView.showPagingControlsProperty())); content.getStyleClass().add("content");