From f5525f8ae5b6d2c128449416cbbed0db49e98708 Mon Sep 17 00:00:00 2001 From: woodser <13068859+woodser@users.noreply.github.com> Date: Sun, 6 Jul 2025 19:03:57 -0400 Subject: [PATCH] adjust payment accounts list height dynamically --- .../main/account/content/PaymentAccountsView.java | 13 +++++++++++++ .../content/cryptoaccounts/CryptoAccountsView.java | 4 +--- .../TraditionalAccountsView.java | 4 +--- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/desktop/src/main/java/haveno/desktop/main/account/content/PaymentAccountsView.java b/desktop/src/main/java/haveno/desktop/main/account/content/PaymentAccountsView.java index cd22e98a3f2..cd89273c9be 100644 --- a/desktop/src/main/java/haveno/desktop/main/account/content/PaymentAccountsView.java +++ b/desktop/src/main/java/haveno/desktop/main/account/content/PaymentAccountsView.java @@ -14,7 +14,9 @@ import haveno.desktop.main.overlays.popups.Popup; import haveno.desktop.util.GUIUtil; import haveno.desktop.util.ImageUtil; +import haveno.desktop.util.Layout; import javafx.beans.value.ChangeListener; +import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; import javafx.event.EventHandler; import javafx.scene.Node; @@ -67,6 +69,10 @@ public void initialize() { Label placeholder = new AutoTooltipLabel(Res.get("shared.noAccountsSetupYet")); placeholder.setWrapText(true); paymentAccountsListView.setPlaceholder(placeholder); + + getPaymentAccounts().addListener((ListChangeListener) change -> { + setPaymentAccountsListHeight(); + }); } @Override @@ -153,6 +159,13 @@ public void updateItem(final PaymentAccount item, boolean empty) { }); } + protected void setPaymentAccountsListHeight() { + int prefNumRows = Math.min(5, Math.max(2, getPaymentAccounts().size())); + double prefHeight = prefNumRows * (Layout.LIST_ROW_HEIGHT + 6); + paymentAccountsListView.setMinHeight(prefHeight); + paymentAccountsListView.setMaxHeight(prefHeight); + } + protected abstract void removeSelectAccountForm(); protected abstract boolean deleteAccountFromModel(PaymentAccount paymentAccount); diff --git a/desktop/src/main/java/haveno/desktop/main/account/content/cryptoaccounts/CryptoAccountsView.java b/desktop/src/main/java/haveno/desktop/main/account/content/cryptoaccounts/CryptoAccountsView.java index ba62725aab9..d0773f5961a 100644 --- a/desktop/src/main/java/haveno/desktop/main/account/content/cryptoaccounts/CryptoAccountsView.java +++ b/desktop/src/main/java/haveno/desktop/main/account/content/cryptoaccounts/CryptoAccountsView.java @@ -174,9 +174,7 @@ protected void buildForm() { Tuple3, VBox> tuple = addTopLabelListView(root, gridRow, Res.get("account.crypto.yourCryptoAccounts"), Layout.FIRST_ROW_DISTANCE); paymentAccountsListView = tuple.second; - int prefNumRows = Math.min(4, Math.max(2, model.dataModel.getNumPaymentAccounts())); - paymentAccountsListView.setMinHeight(prefNumRows * Layout.LIST_ROW_HEIGHT + 34); - paymentAccountsListView.setMaxHeight(prefNumRows * Layout.LIST_ROW_HEIGHT + 34); + setPaymentAccountsListHeight(); setPaymentAccountsCellFactory(); Tuple3 tuple3 = add3ButtonsAfterGroup(root, ++gridRow, Res.get("shared.addNewAccount"), diff --git a/desktop/src/main/java/haveno/desktop/main/account/content/traditionalaccounts/TraditionalAccountsView.java b/desktop/src/main/java/haveno/desktop/main/account/content/traditionalaccounts/TraditionalAccountsView.java index 939a271366b..3a758f1657d 100644 --- a/desktop/src/main/java/haveno/desktop/main/account/content/traditionalaccounts/TraditionalAccountsView.java +++ b/desktop/src/main/java/haveno/desktop/main/account/content/traditionalaccounts/TraditionalAccountsView.java @@ -455,9 +455,7 @@ protected void buildForm() { Tuple3, VBox> tuple = addTopLabelListView(root, gridRow, Res.get("account.traditional.yourTraditionalAccounts"), Layout.FIRST_ROW_DISTANCE); paymentAccountsListView = tuple.second; - int prefNumRows = Math.min(4, Math.max(2, model.dataModel.getNumPaymentAccounts())); - paymentAccountsListView.setMinHeight(prefNumRows * Layout.LIST_ROW_HEIGHT + 34); - paymentAccountsListView.setMaxHeight(prefNumRows * Layout.LIST_ROW_HEIGHT + 34); + setPaymentAccountsListHeight(); setPaymentAccountsCellFactory(); Tuple3 tuple3 = add3ButtonsAfterGroup(root, ++gridRow, Res.get("shared.addNewAccount"),