diff --git a/src/main/java/io/bitsquare/gui/main/account/content/ContextAware.java b/src/main/java/io/bitsquare/gui/ChildOf.java similarity index 83% rename from src/main/java/io/bitsquare/gui/main/account/content/ContextAware.java rename to src/main/java/io/bitsquare/gui/ChildOf.java index 712eaddef9..f659f45c29 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/ContextAware.java +++ b/src/main/java/io/bitsquare/gui/ChildOf.java @@ -15,8 +15,8 @@ * along with Bitsquare. If not, see . */ -package io.bitsquare.gui.main.account.content; +package io.bitsquare.gui; -public interface ContextAware { - void useSettingsContext(boolean useSettingsContext); +public interface ChildOf { + void setParent(Parent parent); } diff --git a/src/main/java/io/bitsquare/gui/View.java b/src/main/java/io/bitsquare/gui/View.java index 361a0b23ca..0686f7f7ea 100644 --- a/src/main/java/io/bitsquare/gui/View.java +++ b/src/main/java/io/bitsquare/gui/View.java @@ -18,7 +18,6 @@ package io.bitsquare.gui; import javafx.fxml.FXML; -import javafx.fxml.Initializable; import javafx.scene.*; import org.slf4j.Logger; @@ -31,9 +30,6 @@ public class View { protected final M model; protected @FXML Parent root; - protected Initializable parent; - - public View(M model) { this.model = model; } @@ -42,10 +38,6 @@ public class View { this(null); } - public void setParent(Initializable parent) { - this.parent = parent; - } - protected View loadView(Navigation.Item navigationItem) { throw new UnsupportedOperationException("loadView not implemented"); } diff --git a/src/main/java/io/bitsquare/gui/main/account/MultiStepNavigation.java b/src/main/java/io/bitsquare/gui/Wizard.java similarity index 77% rename from src/main/java/io/bitsquare/gui/main/account/MultiStepNavigation.java rename to src/main/java/io/bitsquare/gui/Wizard.java index 236890e4f8..235b18923d 100644 --- a/src/main/java/io/bitsquare/gui/main/account/MultiStepNavigation.java +++ b/src/main/java/io/bitsquare/gui/Wizard.java @@ -15,10 +15,12 @@ * along with Bitsquare. If not, see . */ -package io.bitsquare.gui.main.account; +package io.bitsquare.gui; -import io.bitsquare.gui.View; +public interface Wizard { + void nextStep(View current); -public interface MultiStepNavigation { - void nextStep(View useSettingsContext); + public interface Step extends ChildOf { + void useSettingsContext(boolean useSettingsContext); + } } diff --git a/src/main/java/io/bitsquare/gui/main/MainView.java b/src/main/java/io/bitsquare/gui/main/MainView.java index 903b2b0c25..6b88951d71 100644 --- a/src/main/java/io/bitsquare/gui/main/MainView.java +++ b/src/main/java/io/bitsquare/gui/main/MainView.java @@ -22,7 +22,6 @@ import io.bitsquare.bank.BankAccount; import io.bitsquare.gui.ActivatableView; import io.bitsquare.gui.Navigation; import io.bitsquare.gui.OverlayManager; -import io.bitsquare.gui.View; import io.bitsquare.gui.ViewLoader; import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.SystemNotification; @@ -127,8 +126,6 @@ public class MainView extends ActivatableView { ViewLoader.Item loaded = viewLoader.load(navItems[1].getFxmlUrl()); contentContainer.getChildren().setAll(loaded.view); - if (loaded.controller instanceof View) - ((View) loaded.controller).setParent(this); navButtons.getToggles().stream() .filter(toggle -> toggle instanceof ToggleButton) diff --git a/src/main/java/io/bitsquare/gui/main/account/AccountView.java b/src/main/java/io/bitsquare/gui/main/account/AccountView.java index aae8fca93a..128b5e8578 100644 --- a/src/main/java/io/bitsquare/gui/main/account/AccountView.java +++ b/src/main/java/io/bitsquare/gui/main/account/AccountView.java @@ -140,10 +140,7 @@ public class AccountView extends ActivatableViewAndModel { tab.setContent(loaded.view); ((TabPane) root).getSelectionModel().select(tab); - View childController = (View) loaded.controller; - childController.setParent(this); - - return childController; + return (View) loaded.controller; } diff --git a/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java b/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java index 7dad2a16b7..1e60f48bf3 100644 --- a/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java +++ b/src/main/java/io/bitsquare/gui/main/account/arbitrator/browser/ArbitratorBrowserView.java @@ -112,10 +112,7 @@ public class ArbitratorBrowserView extends ActivatableView implements Arbitrator protected View loadView(Navigation.Item navigationItem) { ViewLoader.Item loaded = viewLoader.load(navigationItem.getFxmlUrl()); ((Pane) root).getChildren().set(0, loaded.view); - View childController = arbitratorProfileViewCB = (ArbitratorProfileView) loaded.controller; - childController.setParent(this); - - return childController; + return arbitratorProfileViewCB = (ArbitratorProfileView) loaded.controller; } /////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java b/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java index 3631eafdb4..2903cd090a 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordView.java @@ -18,8 +18,7 @@ package io.bitsquare.gui.main.account.content.changepassword; import io.bitsquare.gui.InitializableView; -import io.bitsquare.gui.main.account.MultiStepNavigation; -import io.bitsquare.gui.main.account.content.ContextAware; +import io.bitsquare.gui.Wizard; import io.bitsquare.gui.main.help.Help; import io.bitsquare.gui.main.help.HelpId; @@ -32,7 +31,7 @@ import javafx.scene.layout.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ChangePasswordView extends InitializableView implements ContextAware { +public class ChangePasswordView extends InitializableView implements Wizard.Step { private static final Logger log = LoggerFactory.getLogger(ChangePasswordView.class); @@ -40,6 +39,8 @@ public class ChangePasswordView extends InitializableView implements ContextAware { +public class FiatAccountView extends ActivatableViewAndModel implements Wizard.Step { private static final Logger log = LoggerFactory.getLogger(FiatAccountView.class); @@ -65,8 +64,11 @@ public class FiatAccountView extends ActivatableViewAndModel selectionComboBox; @FXML ComboBox typesComboBox; @FXML ComboBox currencyComboBox; + private final OverlayManager overlayManager; + private Wizard parent; + /////////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -109,9 +111,12 @@ public class FiatAccountView extends ActivatableViewAndModel implements ContextAware { +public class IrcAccountView extends ActivatableViewAndModel implements Wizard.Step { private static final Logger log = LoggerFactory.getLogger(IrcAccountView.class); @@ -54,6 +52,8 @@ public class IrcAccountView extends ActivatableViewAndModel @FXML ComboBox typesComboBox; @FXML ComboBox currencyComboBox; + private Wizard parent; + /////////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -144,9 +144,10 @@ public class IrcAccountView extends ActivatableViewAndModel } - /////////////////////////////////////////////////////////////////////////////////////////// - // ContextAware implementation - /////////////////////////////////////////////////////////////////////////////////////////// + @Override + public void setParent(Wizard parent) { + this.parent = parent; + } @Override public void useSettingsContext(boolean useSettingsContext) { @@ -170,9 +171,8 @@ public class IrcAccountView extends ActivatableViewAndModel @FXML void onSave() { - InputValidator.ValidationResult result = model.requestSaveBankAccount(); - if (result.isValid && parent instanceof MultiStepNavigation) - ((MultiStepNavigation) parent).nextStep(this); + if (model.requestSaveBankAccount().isValid) + parent.nextStep(this); } @FXML diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java b/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java index f400495f54..1bcd6042d4 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordView.java @@ -18,8 +18,7 @@ package io.bitsquare.gui.main.account.content.password; import io.bitsquare.gui.InitializableView; -import io.bitsquare.gui.main.account.MultiStepNavigation; -import io.bitsquare.gui.main.account.content.ContextAware; +import io.bitsquare.gui.Wizard; import io.bitsquare.gui.main.help.Help; import io.bitsquare.gui.main.help.HelpId; @@ -32,7 +31,7 @@ import javafx.scene.layout.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class PasswordView extends InitializableView implements ContextAware { +public class PasswordView extends InitializableView implements Wizard.Step { private static final Logger log = LoggerFactory.getLogger(PasswordView.class); @@ -40,6 +39,8 @@ public class PasswordView extends InitializableView implement @FXML Button saveButton, skipButton; @FXML PasswordField oldPasswordField, passwordField, repeatedPasswordField; + private Wizard parent; + /////////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -68,6 +69,11 @@ public class PasswordView extends InitializableView implement // ContextAware implementation /////////////////////////////////////////////////////////////////////////////////////////// + @Override + public void setParent(Wizard parent) { + this.parent = parent; + } + @Override public void useSettingsContext(boolean useSettingsContext) { if (useSettingsContext) @@ -81,21 +87,16 @@ public class PasswordView extends InitializableView implement @FXML private void onSaved() { - boolean result = model.requestSavePassword(); - if (result) { - if (parent instanceof MultiStepNavigation) - ((MultiStepNavigation) parent).nextStep(this); - } - else { + if (model.requestSavePassword()) + parent.nextStep(this); + else // TODO use validating passwordTF log.debug(model.getErrorMessage()); - } } @FXML private void onSkipped() { - if (parent instanceof MultiStepNavigation) - ((MultiStepNavigation) parent).nextStep(this); + parent.nextStep(this); } @FXML diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java b/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java index 2cf6033955..b9420d1c7b 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationView.java @@ -22,8 +22,7 @@ import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.components.AddressTextField; import io.bitsquare.gui.components.BalanceTextField; import io.bitsquare.gui.components.Popups; -import io.bitsquare.gui.main.account.MultiStepNavigation; -import io.bitsquare.gui.main.account.content.ContextAware; +import io.bitsquare.gui.Wizard; import io.bitsquare.gui.main.help.Help; import io.bitsquare.gui.main.help.HelpId; import io.bitsquare.locale.BSResources; @@ -45,7 +44,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class RegistrationView extends InitializableView implements ContextAware { +public class RegistrationView extends InitializableView implements Wizard.Step { private static final Logger log = LoggerFactory.getLogger(RegistrationView.class); @@ -58,6 +57,8 @@ public class RegistrationView extends InitializableView i @FXML Label paymentSpinnerInfoLabel; @FXML ProgressIndicator paymentSpinner; + private Wizard parent; + /////////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -121,8 +122,8 @@ public class RegistrationView extends InitializableView i public void handle(ActionEvent actionEvent) { getProperties().put("type", "CLOSE"); try { - if (parent instanceof MultiStepNavigation) - ((MultiStepNavigation) parent).nextStep(RegistrationView.this); + if (parent instanceof Wizard) + ((Wizard) parent).nextStep(RegistrationView.this); } catch (Exception e) { e.printStackTrace(); } @@ -140,15 +141,13 @@ public class RegistrationView extends InitializableView i } - /////////////////////////////////////////////////////////////////////////////////////////// - // ContextAware implementation - /////////////////////////////////////////////////////////////////////////////////////////// + @Override + public void setParent(Wizard parent) { + this.parent = parent; + } @Override public void useSettingsContext(boolean useSettingsContext) { - if (useSettingsContext) { - // TODO not impl. yet - } } diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java b/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java index 2cf4898347..7f52bb0977 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsView.java @@ -22,8 +22,7 @@ import io.bitsquare.gui.ActivatableViewAndModel; import io.bitsquare.gui.Navigation; import io.bitsquare.gui.View; import io.bitsquare.gui.ViewLoader; -import io.bitsquare.gui.main.account.MultiStepNavigation; -import io.bitsquare.gui.main.account.content.ContextAware; +import io.bitsquare.gui.Wizard; import io.bitsquare.gui.main.help.Help; import io.bitsquare.gui.main.help.HelpId; import io.bitsquare.gui.util.ImageUtil; @@ -35,7 +34,6 @@ import java.util.Locale; import javax.inject.Inject; import javafx.fxml.FXML; -import javafx.fxml.Initializable; import javafx.scene.*; import javafx.scene.control.*; import javafx.scene.image.*; @@ -48,7 +46,7 @@ import javafx.util.StringConverter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class RestrictionsView extends ActivatableViewAndModel implements ContextAware { +public class RestrictionsView extends ActivatableViewAndModel implements Wizard.Step { private static final Logger log = LoggerFactory.getLogger(RestrictionsView.class); @@ -63,6 +61,8 @@ public class RestrictionsView extends ActivatableViewAndModel implements ContextAware { +public class SeedWordsView extends InitializableView implements Wizard.Step { private static final Logger log = LoggerFactory.getLogger(SeedWordsView.class); + private Wizard parent; + @FXML Button completedButton; @FXML TextArea seedWordsTextArea; @@ -59,10 +60,10 @@ public class SeedWordsView extends InitializableView impleme seedWordsTextArea.setText(model.seedWords.get()); } - - /////////////////////////////////////////////////////////////////////////////////////////// - // ContextAware implementation - /////////////////////////////////////////////////////////////////////////////////////////// + @Override + public void setParent(Wizard parent) { + this.parent = parent; + } @Override public void useSettingsContext(boolean useSettingsContext) { @@ -77,8 +78,7 @@ public class SeedWordsView extends InitializableView impleme @FXML private void onCompleted() { - if (parent instanceof MultiStepNavigation) - ((MultiStepNavigation) parent).nextStep(this); + parent.nextStep(this); } @FXML diff --git a/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java b/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java index e48bd3c227..2cf4279d1e 100644 --- a/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java +++ b/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java @@ -21,7 +21,6 @@ import io.bitsquare.gui.ActivatableViewAndModel; import io.bitsquare.gui.Navigation; import io.bitsquare.gui.View; import io.bitsquare.gui.ViewLoader; -import io.bitsquare.gui.main.account.content.ContextAware; import io.bitsquare.gui.util.Colors; import javax.inject.Inject; @@ -132,9 +131,6 @@ public class AccountSettingsView extends ActivatableViewAndModel { ViewLoader.Item loaded = viewLoader.load(navigationItem.getFxmlUrl()); content.getChildren().setAll(loaded.view); View child = (View) loaded.controller; - child.setParent(this); - if (child instanceof ContextAware) - ((ContextAware) child).useSettingsContext(true); return child; } diff --git a/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupView.java b/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupView.java index 6d0db867f8..ab722ceb79 100644 --- a/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupView.java +++ b/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupView.java @@ -21,8 +21,7 @@ import io.bitsquare.gui.ActivatableView; import io.bitsquare.gui.Navigation; import io.bitsquare.gui.View; import io.bitsquare.gui.ViewLoader; -import io.bitsquare.gui.main.account.MultiStepNavigation; -import io.bitsquare.gui.main.account.content.ContextAware; +import io.bitsquare.gui.Wizard; import io.bitsquare.gui.main.account.content.irc.IrcAccountView; import io.bitsquare.gui.main.account.content.password.PasswordView; import io.bitsquare.gui.main.account.content.registration.RegistrationView; @@ -43,7 +42,7 @@ import org.slf4j.LoggerFactory; /** * This UI is not cached as it is normally only needed once. */ -public class AccountSetupView extends ActivatableView implements MultiStepNavigation { +public class AccountSetupView extends ActivatableView implements Wizard { private static final Logger log = LoggerFactory.getLogger(AccountSetupView.class); @@ -185,9 +184,10 @@ public class AccountSetupView extends ActivatableView implements MultiStepNaviga ViewLoader.Item loaded = viewLoader.load(navigationItem.getFxmlUrl()); content.getChildren().setAll(loaded.view); View child = (View) loaded.controller; - child.setParent(this); - if (child instanceof ContextAware) - ((ContextAware) child).useSettingsContext(false); + if (child instanceof Wizard.Step) { + ((Step) child).setParent(this); + ((Step) child).useSettingsContext(false); + } return child; } } diff --git a/src/main/java/io/bitsquare/gui/main/funds/FundsView.java b/src/main/java/io/bitsquare/gui/main/funds/FundsView.java index ca2c0ceefe..fa5a7020ff 100644 --- a/src/main/java/io/bitsquare/gui/main/funds/FundsView.java +++ b/src/main/java/io/bitsquare/gui/main/funds/FundsView.java @@ -110,10 +110,7 @@ public class FundsView extends ActivatableViewAndModel { } currentTab.setContent(loaded.view); ((TabPane) root).getSelectionModel().select(currentTab); - View childController = (View) loaded.controller; - childController.setParent(this); - - return childController; + return (View) loaded.controller; } } diff --git a/src/main/java/io/bitsquare/gui/main/home/HomeView.java b/src/main/java/io/bitsquare/gui/main/home/HomeView.java index 24ffefdfd5..20336ea20b 100644 --- a/src/main/java/io/bitsquare/gui/main/home/HomeView.java +++ b/src/main/java/io/bitsquare/gui/main/home/HomeView.java @@ -19,9 +19,6 @@ package io.bitsquare.gui.main.home; import io.bitsquare.gui.View; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - // home is just hosting the arbiters buttons yet, but that's just for dev, not clear yet what will be in home, // probably overview, event history, news, charts,... -> low prio public class HomeView extends View { diff --git a/src/main/java/io/bitsquare/gui/main/msg/MsgView.java b/src/main/java/io/bitsquare/gui/main/msg/MsgView.java index ad2ddf7eab..ef889f8b31 100644 --- a/src/main/java/io/bitsquare/gui/main/msg/MsgView.java +++ b/src/main/java/io/bitsquare/gui/main/msg/MsgView.java @@ -17,13 +17,10 @@ package io.bitsquare.gui.main.msg; -import io.bitsquare.gui.Navigation; import io.bitsquare.gui.View; import javax.inject.Inject; -import javafx.fxml.Initializable; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java b/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java index 8cb7a2da93..1b1b8b4744 100644 --- a/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java +++ b/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java @@ -121,10 +121,7 @@ public class PortfolioView extends ActivatableViewAndModel { } currentTab.setContent(loaded.view); ((TabPane) root).getSelectionModel().select(currentTab); - View childController = (View) loaded.controller; - childController.setParent(this); - - return childController; + return (View) loaded.controller; } } diff --git a/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java b/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java index 020232aa50..f536264e3c 100644 --- a/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java +++ b/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java @@ -117,10 +117,7 @@ public class SettingsView extends ActivatableViewAndModel { } tab.setContent(loaded.view); ((TabPane) root).getSelectionModel().select(tab); - View childController = (View) loaded.controller; - childController.setParent(this); - - return childController; + return (View) loaded.controller; } } diff --git a/src/main/java/io/bitsquare/gui/main/trade/TradeNavigator.java b/src/main/java/io/bitsquare/gui/main/trade/TradeNavigator.java deleted file mode 100644 index 253590b00a..0000000000 --- a/src/main/java/io/bitsquare/gui/main/trade/TradeNavigator.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * This file is part of Bitsquare. - * - * Bitsquare is free software: you can redistribute it and/or modify it - * under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or (at - * your option) any later version. - * - * Bitsquare is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public - * License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with Bitsquare. If not, see . - */ - -package io.bitsquare.gui.main.trade; - -import io.bitsquare.offer.Offer; - -import org.bitcoinj.core.Coin; -import org.bitcoinj.utils.Fiat; - -public interface TradeNavigator { - void createOffer(Coin amount, Fiat price); - - void takeOffer(Coin amount, Fiat price, Offer offer); -} diff --git a/src/main/java/io/bitsquare/gui/main/trade/TradeView.java b/src/main/java/io/bitsquare/gui/main/trade/TradeView.java index 69a8d22ed2..a0b1cb24e6 100644 --- a/src/main/java/io/bitsquare/gui/main/trade/TradeView.java +++ b/src/main/java/io/bitsquare/gui/main/trade/TradeView.java @@ -41,7 +41,7 @@ import javafx.scene.control.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class TradeView extends ActivatableView implements TradeNavigator { +public class TradeView extends ActivatableView { private static final Logger log = LoggerFactory.getLogger(TradeView.class); private OfferBookView offerBookViewCB; @@ -118,25 +118,17 @@ public class TradeView extends ActivatableView implements TradeNavigator { } - /////////////////////////////////////////////////////////////////////////////////////////// - // TradeNavigator implementation - /////////////////////////////////////////////////////////////////////////////////////////// - - @Override public void createOffer(Coin amount, Fiat price) { this.amount = amount; this.price = price; - navigation.navigationTo(Navigation.Item.MAIN, navigationItem, - Navigation.Item.CREATE_OFFER); + navigation.navigationTo(Navigation.Item.MAIN, navigationItem, Navigation.Item.CREATE_OFFER); } - @Override public void takeOffer(Coin amount, Fiat price, Offer offer) { this.amount = amount; this.price = price; this.offer = offer; - navigation.navigationTo(Navigation.Item.MAIN, navigationItem, - Navigation.Item.TAKE_OFFER); + navigation.navigationTo(Navigation.Item.MAIN, navigationItem, Navigation.Item.TAKE_OFFER); } @@ -168,7 +160,6 @@ public class TradeView extends ActivatableView implements TradeNavigator { ViewLoader.Item loaded = viewLoader.load(navigationItem.getFxmlUrl(), false); createOfferView = loaded.view; createOfferViewCB = (CreateOfferView) loaded.controller; - createOfferViewCB.setParent(this); createOfferViewCB.initWithData(direction, amount, price); final Tab tab = new Tab("Create offer"); createOfferViewCB.configCloseHandlers(tab.closableProperty()); @@ -184,7 +175,6 @@ public class TradeView extends ActivatableView implements TradeNavigator { ViewLoader.Item loaded = viewLoader.load(Navigation.Item.TAKE_OFFER.getFxmlUrl(), false); takeOfferView = loaded.view; takeOfferViewCB = (TakeOfferView) loaded.controller; - takeOfferViewCB.setParent(this); takeOfferViewCB.initWithData(direction, amount, offer); final Tab tab = new Tab("Take offer"); takeOfferViewCB.configCloseHandlers(tab.closableProperty()); diff --git a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java b/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java index 6e481eef53..fdace24de3 100644 --- a/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java +++ b/src/main/java/io/bitsquare/gui/main/trade/offerbook/OfferBookView.java @@ -18,11 +18,12 @@ package io.bitsquare.gui.main.trade.offerbook; import io.bitsquare.gui.ActivatableViewAndModel; +import io.bitsquare.gui.ChildOf; import io.bitsquare.gui.Navigation; import io.bitsquare.gui.OverlayManager; import io.bitsquare.gui.components.InputTextField; import io.bitsquare.gui.components.Popups; -import io.bitsquare.gui.main.trade.TradeNavigator; +import io.bitsquare.gui.main.trade.TradeView; import io.bitsquare.gui.util.ImageUtil; import io.bitsquare.gui.util.validation.OptionalBtcValidator; import io.bitsquare.gui.util.validation.OptionalFiatValidator; @@ -59,7 +60,7 @@ import static javafx.beans.binding.Bindings.createStringBinding; * TODO: The advanced filters are not impl. yet * The restrictions handling is open from the concept and is only implemented for countries yet. */ -public class OfferBookView extends ActivatableViewAndModel { +public class OfferBookView extends ActivatableViewAndModel implements ChildOf { private static final Logger log = LoggerFactory.getLogger(OfferBookView.class); private final Navigation navigation; @@ -82,6 +83,8 @@ public class OfferBookView extends ActivatableViewAndModel { @FXML TableColumn priceColumn, amountColumn, volumeColumn, directionColumn, countryColumn, bankAccountTypeColumn; + private TradeView parent; + /////////////////////////////////////////////////////////////////////////////////////////// // Constructor /////////////////////////////////////////////////////////////////////////////////////////// @@ -183,8 +186,7 @@ public class OfferBookView extends ActivatableViewAndModel { void createOffer() { if (model.isRegistered()) { createOfferButton.setDisable(true); - ((TradeNavigator) parent).createOffer(model.getAmountAsCoin(), - model.getPriceAsCoin()); + parent.createOffer(model.getAmountAsCoin(), model.getPriceAsCoin()); } else { openSetupScreen(); @@ -249,8 +251,7 @@ public class OfferBookView extends ActivatableViewAndModel { if (model.isRegistered()) { if (offer.getDirection() == Direction.BUY) { - ((TradeNavigator) parent).takeOffer(model.getAmountAsCoin(), - model.getPriceAsCoin(), offer); + parent.takeOffer(model.getAmountAsCoin(), model.getPriceAsCoin(), offer); } else { Popups.openInfoPopup("Not implemented yet", @@ -386,6 +387,11 @@ public class OfferBookView extends ActivatableViewAndModel { } + public void setParent(TradeView parent) { + this.parent = parent; + } + + /////////////////////////////////////////////////////////////////////////////////////////// // CellFactories ///////////////////////////////////////////////////////////////////////////////////////////