From 348dfb47b35f6056f99e47bd03240d3cb5535128 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Tue, 19 Jan 2016 15:27:07 +0100 Subject: [PATCH] show info when opening additional create/take offer tab, cleanups --- .../bitsquare/gui/main/offer/OfferView.java | 42 ++++++++++--------- .../main/offer/takeoffer/TakeOfferView.java | 12 ++++-- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/OfferView.java b/gui/src/main/java/io/bitsquare/gui/main/offer/OfferView.java index 82391646c3..cc281c83e8 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/OfferView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/OfferView.java @@ -27,6 +27,7 @@ import io.bitsquare.gui.main.MainView; import io.bitsquare.gui.main.offer.createoffer.CreateOfferView; import io.bitsquare.gui.main.offer.offerbook.OfferBookView; import io.bitsquare.gui.main.offer.takeoffer.TakeOfferView; +import io.bitsquare.gui.popups.Popup; import io.bitsquare.locale.CurrencyUtil; import io.bitsquare.locale.TradeCurrency; import io.bitsquare.trade.offer.Offer; @@ -53,6 +54,7 @@ public abstract class OfferView extends ActivatableView { private Tab createOfferTab; private Tab takeOfferTab; private TradeCurrency tradeCurrency; + private boolean createOfferViewOpen, takeOfferViewOpen; protected OfferView(ViewLoader viewLoader, Navigation navigation) { this.viewLoader = viewLoader; @@ -100,15 +102,6 @@ public abstract class OfferView extends ActivatableView { navigation.removeListener(listener); } - public void createOffer() { - navigation.navigateTo(MainView.class, this.getClass(), CreateOfferView.class); - } - - public void takeOffer(Offer offer) { - this.offer = offer; - navigation.navigateTo(MainView.class, this.getClass(), TakeOfferView.class); - } - private void loadView(Class viewClass) { TabPane tabPane = root; View view; @@ -125,23 +118,32 @@ public abstract class OfferView extends ActivatableView { OfferActionHandler offerActionHandler = new OfferActionHandler() { @Override public void onCreateOffer(TradeCurrency tradeCurrency) { - OfferView.this.tradeCurrency = tradeCurrency; - OfferView.this.navigation.navigateTo(MainView.class, OfferView.this.getClass(), - CreateOfferView.class); + if (!createOfferViewOpen) { + OfferView.this.createOfferViewOpen = true; + OfferView.this.tradeCurrency = tradeCurrency; + OfferView.this.navigation.navigateTo(MainView.class, OfferView.this.getClass(), + CreateOfferView.class); + } else { + new Popup().information("You have already a \"Create offer\" tab open.").show(); + } } @Override public void onTakeOffer(Offer offer) { - OfferView.this.offer = offer; - OfferView.this.navigation.navigateTo(MainView.class, OfferView.this.getClass(), - TakeOfferView.class); + if (!takeOfferViewOpen) { + OfferView.this.takeOfferViewOpen = true; + OfferView.this.offer = offer; + OfferView.this.navigation.navigateTo(MainView.class, OfferView.this.getClass(), + TakeOfferView.class); + } else { + new Popup().information("You have already a \"Take offer\" tab open.").show(); + } } }; offerBookView.setOfferActionHandler(offerActionHandler); offerBookView.setDirection(direction); - } - else if (viewClass == CreateOfferView.class && createOfferView == null) { + } else if (viewClass == CreateOfferView.class && createOfferView == null) { view = viewLoader.load(viewClass); // CreateOffer and TakeOffer must not be cached by ViewLoader as we cannot use a view multiple times // in different graphs @@ -154,8 +156,7 @@ public abstract class OfferView extends ActivatableView { createOfferTab.setContent(createOfferPane); tabPane.getTabs().add(createOfferTab); tabPane.getSelectionModel().select(createOfferTab); - } - else if (viewClass == TakeOfferView.class && takeOfferView == null && offer != null) { + } else if (viewClass == TakeOfferView.class && takeOfferView == null && offer != null) { view = viewLoader.load(viewClass); // CreateOffer and TakeOffer must not be cached by ViewLoader as we cannot use a view multiple times // in different graphs @@ -173,6 +174,7 @@ public abstract class OfferView extends ActivatableView { private void onCreateOfferViewRemoved() { + createOfferViewOpen = false; if (createOfferView != null) { createOfferView.onClose(); createOfferView = null; @@ -184,6 +186,8 @@ public abstract class OfferView extends ActivatableView { } private void onTakeOfferViewRemoved() { + offer = null; + takeOfferViewOpen = false; if (takeOfferView != null) { takeOfferView.onClose(); takeOfferView = null; diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java index c2123f9281..88a0465034 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java @@ -111,6 +111,7 @@ public class TakeOfferView extends ActivatableViewAndModel { if (newValue != null) { + if (isOfferAvailablePopup != null) { + isOfferAvailablePopup.hide(); + isOfferAvailablePopup = null; + } new Popup().warning(newValue).onClose(() -> { errorPopupDisplayed.set(true); model.resetOfferWarning(); @@ -192,10 +197,7 @@ public class TakeOfferView extends ActivatableViewAndModel a == null && b == null && !c && !d) .subscribe((observable, oldValue, newValue) -> { if (newValue) { - new Popup().message(BSResources.get("takeOffer.fundsBox.isOfferAvailable", newValue)) - .closeButtonText("Cancel") - .showProgressIndicator() - .width(200) + isOfferAvailablePopup = new Popup().information(BSResources.get("takeOffer.fundsBox.isOfferAvailable")) .show() .onClose(() -> { model.resetErrorMessage(); @@ -392,6 +394,8 @@ public class TakeOfferView extends ActivatableViewAndModel