From e405d0e400dc0176fa6f95c78c4bc03bcf16ca85 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Mon, 6 Jun 2016 16:27:37 +0200 Subject: [PATCH] Use errorMessageListener instead of subscription to avoid repeated error popup display at startup --- .../pendingtrades/steps/TradeStepView.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/TradeStepView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/TradeStepView.java index 53efa0b35b..445e690ab3 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/TradeStepView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/TradeStepView.java @@ -29,6 +29,7 @@ import io.bitsquare.gui.main.portfolio.pendingtrades.TradeSubView; import io.bitsquare.gui.util.Layout; import io.bitsquare.trade.Trade; import io.bitsquare.user.Preferences; +import javafx.beans.value.ChangeListener; import javafx.scene.control.ProgressBar; import javafx.scene.control.TextField; import javafx.scene.layout.AnchorPane; @@ -51,7 +52,6 @@ public abstract class TradeStepView extends AnchorPane { protected final Preferences preferences; protected final GridPane gridPane; - private Subscription errorMessageSubscription; private Subscription disputeStateSubscription; private Subscription tradePeriodStateSubscription; protected int gridRow = 0; @@ -62,6 +62,7 @@ public abstract class TradeStepView extends AnchorPane { protected TradeSubView.NotificationGroup notificationGroup; private Subscription txIdSubscription; private Clock.Listener clockListener; + private ChangeListener errorMessageListener; /////////////////////////////////////////////////////////////////////////////////////////// @@ -82,6 +83,11 @@ public abstract class TradeStepView extends AnchorPane { AnchorPane.setBottomAnchor(this, 0d); addContent(); + + errorMessageListener = (observable, oldValue, newValue) -> { + if (newValue != null) + showSupportFields(); + }; } public void activate() { @@ -92,22 +98,16 @@ public abstract class TradeStepView extends AnchorPane { txIdSubscription = EasyBind.subscribe(model.dataModel.txId, id -> txIdTextField.setup(id)); } - errorMessageSubscription = EasyBind.subscribe(trade.errorMessageProperty(), newValue -> { - if (newValue != null) { - showSupportFields(); - } - }); + trade.errorMessageProperty().addListener(errorMessageListener); disputeStateSubscription = EasyBind.subscribe(trade.disputeStateProperty(), newValue -> { - if (newValue != null) { + if (newValue != null) updateDisputeState(newValue); - } }); tradePeriodStateSubscription = EasyBind.subscribe(trade.getTradePeriodStateProperty(), newValue -> { - if (newValue != null) { + if (newValue != null) updateTradePeriodState(newValue); - } }); clockListener = new Clock.Listener() { @@ -135,8 +135,8 @@ public abstract class TradeStepView extends AnchorPane { if (txIdTextField != null) txIdTextField.cleanup(); - if (errorMessageSubscription != null) - errorMessageSubscription.unsubscribe(); + if (errorMessageListener != null) + trade.errorMessageProperty().removeListener(errorMessageListener); if (disputeStateSubscription != null) disputeStateSubscription.unsubscribe();