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
///////////////////////////////////////////////////////////////////////////////////////////