From cd33a623e82d2d2d0c2f6556c9cf99cd77cd5432 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Wed, 12 Apr 2017 12:53:35 -0500 Subject: [PATCH] Fill table in bsqTxView after resize window --- .../gui/main/dao/wallet/tx/BsqTxView.java | 21 +++++++++++++++++ .../main/market/trades/TradesChartsView.java | 11 +++++---- .../offer/createoffer/CreateOfferView.java | 2 +- .../main/offer/takeoffer/TakeOfferView.java | 2 +- .../main/java/io/bisq/gui/util/GUIUtil.java | 23 ++++++++++++++++++- 5 files changed, 52 insertions(+), 7 deletions(-) diff --git a/gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java b/gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java index 69886d6cbb..85a44bc879 100644 --- a/gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java +++ b/gui/src/main/java/io/bisq/gui/main/dao/wallet/tx/BsqTxView.java @@ -33,7 +33,10 @@ import io.bisq.gui.main.dao.wallet.BsqBalanceUtil; import io.bisq.gui.main.overlays.popups.Popup; import io.bisq.gui.util.BsqFormatter; import io.bisq.gui.util.GUIUtil; +import javafx.beans.property.DoubleProperty; import javafx.beans.property.ReadOnlyObjectWrapper; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.value.ChangeListener; import javafx.collections.FXCollections; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; @@ -41,6 +44,7 @@ import javafx.collections.transformation.SortedList; import javafx.geometry.Insets; import javafx.scene.control.*; import javafx.scene.layout.GridPane; +import javafx.scene.layout.Pane; import javafx.util.Callback; import org.bitcoinj.core.Transaction; @@ -65,6 +69,10 @@ public class BsqTxView extends ActivatableView { private ListChangeListener walletBsqTransactionsListener; private final ObservableList observableList = FXCollections.observableArrayList(); private final SortedList sortedList = new SortedList<>(observableList); + private ChangeListener parentHeightListener; + private Pane rootParent; + // Need to be DoubleProperty as we pass it as reference + private DoubleProperty initialOccupiedHeight = new SimpleDoubleProperty(-1); /////////////////////////////////////////////////////////////////////////////////////////// @@ -104,6 +112,7 @@ public class BsqTxView extends ActivatableView { addConfidenceColumn(); walletBsqTransactionsListener = change -> updateList(); + parentHeightListener = (observable, oldValue, newValue) -> layout(); } @Override @@ -115,6 +124,12 @@ public class BsqTxView extends ActivatableView { tableView.setItems(sortedList); updateList(); + + if (root.getParent() instanceof Pane) { + rootParent = (Pane) root.getParent(); + rootParent.heightProperty().addListener(parentHeightListener); + } + layout(); } @Override @@ -123,6 +138,8 @@ public class BsqTxView extends ActivatableView { sortedList.comparatorProperty().unbind(); bsqWalletService.getWalletTransactions().removeListener(walletBsqTransactionsListener); observableList.forEach(BsqTxListItem::cleanup); + if (rootParent != null) + ((Pane) root.getParent()).heightProperty().removeListener(parentHeightListener); } private void updateList() { @@ -161,6 +178,10 @@ public class BsqTxView extends ActivatableView { } } + private void layout() { + GUIUtil.fillAvailableHeight(root, tableView, initialOccupiedHeight); + } + private void addDateColumn() { TableColumn column = new TableColumn<>(Res.get("shared.dateTime")); column.setCellValueFactory(item -> new ReadOnlyObjectWrapper<>(item.getValue())); diff --git a/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsView.java b/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsView.java index 7232cab097..26571f5bd3 100644 --- a/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsView.java +++ b/gui/src/main/java/io/bisq/gui/main/market/trades/TradesChartsView.java @@ -93,6 +93,7 @@ public class TradesChartsView extends ActivatableViewAndModel parentHeightListener; + private Pane rootParent; /////////////////////////////////////////////////////////////////////////////////////////// @@ -219,8 +220,10 @@ public class TradesChartsView extends ActivatableViewAndModel GUIUtil.showClearXchangeWarning(preferences), + UserThread.runAfter(() -> GUIUtil.showClearXchangeWarning(), 500, TimeUnit.MILLISECONDS); } } diff --git a/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferView.java b/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferView.java index 67838ad287..03d629c959 100644 --- a/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferView.java +++ b/gui/src/main/java/io/bisq/gui/main/offer/takeoffer/TakeOfferView.java @@ -212,7 +212,7 @@ public class TakeOfferView extends ActivatableViewAndModel GUIUtil.showClearXchangeWarning(preferences), + UserThread.runAfter(() -> GUIUtil.showClearXchangeWarning(), 500, TimeUnit.MILLISECONDS); } } diff --git a/gui/src/main/java/io/bisq/gui/util/GUIUtil.java b/gui/src/main/java/io/bisq/gui/util/GUIUtil.java index 74fafebdfc..849cc332c1 100644 --- a/gui/src/main/java/io/bisq/gui/util/GUIUtil.java +++ b/gui/src/main/java/io/bisq/gui/util/GUIUtil.java @@ -22,6 +22,7 @@ import com.googlecode.jcsv.CSVStrategy; import com.googlecode.jcsv.writer.CSVEntryConverter; import com.googlecode.jcsv.writer.CSVWriter; import com.googlecode.jcsv.writer.internal.CSVWriterBuilder; +import io.bisq.common.UserThread; import io.bisq.common.app.DevEnv; import io.bisq.common.locale.CurrencyUtil; import io.bisq.common.locale.Res; @@ -34,11 +35,14 @@ import io.bisq.core.user.Preferences; import io.bisq.core.user.User; import io.bisq.gui.components.indicator.TxConfidenceIndicator; import io.bisq.gui.main.overlays.popups.Popup; +import javafx.beans.property.DoubleProperty; import javafx.collections.ObservableList; import javafx.geometry.Orientation; import javafx.scene.Node; import javafx.scene.control.ScrollBar; import javafx.scene.control.Tooltip; +import javafx.scene.layout.Pane; +import javafx.scene.layout.Region; import javafx.stage.DirectoryChooser; import javafx.stage.FileChooser; import javafx.stage.Stage; @@ -58,6 +62,7 @@ import java.net.URISyntaxException; import java.net.URLEncoder; import java.nio.file.Paths; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; public class GUIUtil { @@ -349,7 +354,7 @@ public class GUIUtil { return parent != null ? (T) parent : null; } - public static void showClearXchangeWarning(Preferences preferences) { + public static void showClearXchangeWarning() { String key = "confirmClearXchangeRequirements"; new Popup().information(Res.get("payment.clearXchange.selected") + "\n" + Res.get("payment.clearXchange.info")) .width(900) @@ -357,4 +362,20 @@ public class GUIUtil { .dontShowAgainId(key) .show(); } + + public static void fillAvailableHeight(Pane container, Region component, DoubleProperty initialOccupiedHeight) { + UserThread.runAfter(() -> { + + double available; + if (container.getParent() instanceof Pane) + available = ((Pane) container.getParent()).getHeight(); + else + available = container.getHeight(); + + if (initialOccupiedHeight.get() == -1 && component.getHeight() > 0) { + initialOccupiedHeight.set(available - component.getHeight()); + } + component.setPrefHeight(available - initialOccupiedHeight.get()); + }, 100, TimeUnit.MILLISECONDS); + } }