diff --git a/src/main/java/io/bitsquare/gui/NavigationController.java b/src/main/java/io/bitsquare/gui/NavigationController.java index 256334271a..426aaa8574 100644 --- a/src/main/java/io/bitsquare/gui/NavigationController.java +++ b/src/main/java/io/bitsquare/gui/NavigationController.java @@ -58,7 +58,7 @@ public class NavigationController { previousMainNavigationItems = currentNavigationItems; currentNavigationItems = navigationItems; - listeners.stream().forEach((e) -> e.onNavigationRequested(currentNavigationItems)); + listeners.stream().forEach((e) -> e.onNavigationRequested(navigationItems)); } diff --git a/src/main/java/io/bitsquare/gui/components/Popups.java b/src/main/java/io/bitsquare/gui/components/Popups.java index 1c71971c93..1e02ecd218 100644 --- a/src/main/java/io/bitsquare/gui/components/Popups.java +++ b/src/main/java/io/bitsquare/gui/components/Popups.java @@ -46,6 +46,7 @@ import org.slf4j.LoggerFactory; * TODO Replace it with custom views as they are graphically more flexible and the Dialogs are a bit limited from the * API */ +@Deprecated public class Popups { private static final Logger log = LoggerFactory.getLogger(Popups.class); @@ -55,7 +56,7 @@ public class Popups { } private static OverlayController overlayController; - + // Information public static void openInfo(String message) { openInfo(message, null, null); diff --git a/src/main/java/io/bitsquare/gui/model/MainModel.java b/src/main/java/io/bitsquare/gui/model/MainModel.java index 9fa24ca531..320523fd5b 100644 --- a/src/main/java/io/bitsquare/gui/model/MainModel.java +++ b/src/main/java/io/bitsquare/gui/model/MainModel.java @@ -87,17 +87,6 @@ public class MainModel extends UIModel { super.initialized(); } - @Override - public void activate() { - super.activate(); - } - - @SuppressWarnings("EmptyMethod") - @Override - public void deactivate() { - super.deactivate(); - } - @SuppressWarnings("EmptyMethod") @Override public void terminate() { diff --git a/src/main/java/io/bitsquare/gui/pm/MainPM.java b/src/main/java/io/bitsquare/gui/pm/MainPM.java index e74627ba47..ef93de6af5 100644 --- a/src/main/java/io/bitsquare/gui/pm/MainPM.java +++ b/src/main/java/io/bitsquare/gui/pm/MainPM.java @@ -92,17 +92,6 @@ public class MainPM extends PresentationModel { bankAccountsComboBoxPrompt.set(model.getBankAccounts().isEmpty() ? "No accounts" : ""); } - @Override - public void activate() { - super.activate(); - } - - @SuppressWarnings("EmptyMethod") - @Override - public void deactivate() { - super.deactivate(); - } - @SuppressWarnings("EmptyMethod") @Override public void terminate() { diff --git a/src/main/java/io/bitsquare/gui/view/MainViewCB.java b/src/main/java/io/bitsquare/gui/view/MainViewCB.java index 7aab5672cb..f9efbce80c 100644 --- a/src/main/java/io/bitsquare/gui/view/MainViewCB.java +++ b/src/main/java/io/bitsquare/gui/view/MainViewCB.java @@ -51,9 +51,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class MainViewCB extends CachedCodeBehind { +public class MainViewCB extends CodeBehind { private static final Logger log = LoggerFactory.getLogger(MainViewCB.class); + private NavigationController navigationController; + private OverlayController overlayController; + private final ToggleGroup navButtonsGroup = new ToggleGroup(); private NavigationItem mainNavigationItem; @@ -68,8 +71,6 @@ public class MainViewCB extends CachedCodeBehind { private ToggleButton buyButton, sellButton, homeButton, msgButton, ordersButton, fundsButton, settingsButton, accountButton; private Pane ordersButtonButtonPane; - private NavigationController navigationController; - private OverlayController overlayController; /////////////////////////////////////////////////////////////////////////////////////////// @@ -80,6 +81,7 @@ public class MainViewCB extends CachedCodeBehind { private MainViewCB(MainPM presentationModel, NavigationController navigationController, OverlayController overlayController) { super(presentationModel); + this.navigationController = navigationController; this.overlayController = overlayController; @@ -87,20 +89,22 @@ public class MainViewCB extends CachedCodeBehind { Popups.setOverlayController(overlayController); navigationController.addListener(navigationItems -> { - if (navigationItems != null && navigationItems.length > 0) { - NavigationItem navigationItem = navigationItems[0]; - if (navigationItem.getLevel() == 1) { - mainNavigationItem = navigationItem; - loadView(mainNavigationItem); - selectMainMenuButton(mainNavigationItem); + if (navigationItems != null) { + for (int i = 0; i < navigationItems.length; i++) { + if (navigationItems[i].getLevel() == 1) { + mainNavigationItem = navigationItems[i]; + break; + } } } - else { + + if (mainNavigationItem == null) mainNavigationItem = NavigationItem.HOME; - loadView(mainNavigationItem); - selectMainMenuButton(mainNavigationItem); - } + + loadView(mainNavigationItem); + selectMainMenuButton(mainNavigationItem); }); + overlayController.addListener(new OverlayController.OverlayListener() { @Override public void onBlurContentRequested() { @@ -128,17 +132,6 @@ public class MainViewCB extends CachedCodeBehind { startup(); } - @Override - public void activate() { - super.activate(); - } - - @SuppressWarnings("EmptyMethod") - @Override - public void deactivate() { - super.deactivate(); - } - @SuppressWarnings("EmptyMethod") @Override public void terminate() { diff --git a/src/main/java/io/bitsquare/gui/view/account/AccountSettingsViewCB.java b/src/main/java/io/bitsquare/gui/view/account/AccountSettingsViewCB.java index 947206ce96..7726400bc1 100644 --- a/src/main/java/io/bitsquare/gui/view/account/AccountSettingsViewCB.java +++ b/src/main/java/io/bitsquare/gui/view/account/AccountSettingsViewCB.java @@ -34,6 +34,7 @@ import java.util.ResourceBundle; import javax.inject.Inject; +import javafx.fxml.Initializable; import javafx.geometry.Pos; import javafx.scene.*; import javafx.scene.control.*; @@ -54,6 +55,8 @@ public class AccountSettingsViewCB extends CachedCodeBehind { public VBox leftVBox; public AnchorPane content; + private MenuItem seedWords, password, restrictions, fiatAccount, registration; + private NavigationController navigationController; /////////////////////////////////////////////////////////////////////////////////////////// // Constructor @@ -63,14 +66,7 @@ public class AccountSettingsViewCB extends CachedCodeBehind { private AccountSettingsViewCB(AccountSettingsPM presentationModel, NavigationController navigationController) { super(presentationModel); - navigationController.addListener(navigationItem -> { - if (navigationItem.length > 1) { - NavigationItem subMenuNavigationItem1 = navigationItem[1]; - if (subMenuNavigationItem1.getLevel() == 2) { - AccountSettingsViewCB.this.subMenuNavigationItem = subMenuNavigationItem1; - } - } - }); + this.navigationController = navigationController; } @@ -83,15 +79,15 @@ public class AccountSettingsViewCB extends CachedCodeBehind { super.initialize(url, rb); ToggleGroup toggleGroup = new ToggleGroup(); - MenuItem seedWords = new MenuItem(this, content, "Wallet seed", + seedWords = new MenuItem(this, content, "Wallet seed", NavigationItem.SEED_WORDS, toggleGroup); - MenuItem password = new MenuItem(this, content, "Wallet password", + password = new MenuItem(this, content, "Wallet password", NavigationItem.CHANGE_PASSWORD, toggleGroup); - MenuItem restrictions = new MenuItem(this, content, "Trading restrictions", + restrictions = new MenuItem(this, content, "Trading restrictions", NavigationItem.RESTRICTIONS, toggleGroup); - MenuItem fiatAccount = new MenuItem(this, content, "Payments account(s)", + fiatAccount = new MenuItem(this, content, "Payments account(s)", NavigationItem.FIAT_ACCOUNT, toggleGroup); - MenuItem registration = new MenuItem(this, content, "Renew your account", + registration = new MenuItem(this, content, "Renew your account", NavigationItem.REGISTRATION, toggleGroup); registration.setDisable(true); @@ -99,6 +95,21 @@ public class AccountSettingsViewCB extends CachedCodeBehind { leftVBox.getChildren().addAll(seedWords, password, restrictions, fiatAccount, registration); + + } + + @Override + public void activate() { + super.activate(); + + NavigationItem[] navigationItems = navigationController.getCurrentNavigationItems(); + for (int i = 0; i < navigationItems.length; i++) { + if (navigationItems[i].getLevel() == 3) { + subMenuNavigationItem = navigationItems[i]; + break; + } + } + if (subMenuNavigationItem == null) subMenuNavigationItem = NavigationItem.SEED_WORDS; @@ -126,12 +137,6 @@ public class AccountSettingsViewCB extends CachedCodeBehind { } } - @SuppressWarnings("EmptyMethod") - @Override - public void activate() { - super.activate(); - } - @SuppressWarnings("EmptyMethod") @Override public void deactivate() { @@ -145,24 +150,26 @@ public class AccountSettingsViewCB extends CachedCodeBehind { } - /////////////////////////////////////////////////////////////////////////////////////////// - // UI handlers - /////////////////////////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////////////////////////////// // Public Methods /////////////////////////////////////////////////////////////////////////////////////////// - - /////////////////////////////////////////////////////////////////////////////////////////// - // UI handlers - /////////////////////////////////////////////////////////////////////////////////////////// - - - /////////////////////////////////////////////////////////////////////////////////////////// - // Private methods - /////////////////////////////////////////////////////////////////////////////////////////// + @Override + public Initializable loadView(NavigationItem navigationItem) { + final BSFXMLLoader loader = new BSFXMLLoader(getClass().getResource(navigationItem.getFxmlUrl())); + try { + final Pane view = loader.load(); + content.getChildren().setAll(view); + childController = loader.getController(); + ((CodeBehind) childController).setParentController(this); + ((ContextAware) childController).useSettingsContext(true); + return childController; + } catch (IOException e) { + log.error("Loading view failed. FxmlUrl = " + navigationItem.getFxmlUrl()); + e.getStackTrace(); + } + return null; + } } class MenuItem extends ToggleButton { @@ -198,7 +205,7 @@ class MenuItem extends ToggleButton { setGraphic(icon); - setOnAction((event) -> show()); + setOnAction((event) -> parentCB.loadView(navigationItem)); selectedProperty().addListener((ov, oldValue, newValue) -> { if (newValue) { @@ -222,19 +229,5 @@ class MenuItem extends ToggleButton { } }); } - - void show() { - final BSFXMLLoader loader = new BSFXMLLoader(getClass().getResource(navigationItem.getFxmlUrl())); - try { - final Pane view = loader.load(); - ((AnchorPane) content).getChildren().setAll(view); - childController = loader.getController(); - childController.setParentController(parentCB); - ((ContextAware) childController).useSettingsContext(true); - } catch (IOException e) { - log.error("Loading view failed. FxmlUrl = " + navigationItem.getFxmlUrl()); - e.getStackTrace(); - } - } } diff --git a/src/main/java/io/bitsquare/gui/view/account/AccountSetupViewCB.java b/src/main/java/io/bitsquare/gui/view/account/AccountSetupViewCB.java index b265d794d9..1f7d2d241b 100644 --- a/src/main/java/io/bitsquare/gui/view/account/AccountSetupViewCB.java +++ b/src/main/java/io/bitsquare/gui/view/account/AccountSetupViewCB.java @@ -41,6 +41,7 @@ import java.util.concurrent.Callable; import javax.inject.Inject; import javafx.fxml.FXML; +import javafx.fxml.Initializable; import javafx.geometry.Insets; import javafx.scene.*; import javafx.scene.control.*; @@ -161,6 +162,23 @@ public class AccountSetupViewCB extends CachedCodeBehind { this.requestCloseCallable = requestCloseCallable; } + + @Override + public Initializable loadView(NavigationItem navigationItem) { + final BSFXMLLoader loader = new BSFXMLLoader(getClass().getResource(navigationItem.getFxmlUrl())); + try { + final Pane view = loader.load(); + content.getChildren().setAll(view); + childController = loader.getController(); + ((CodeBehind) childController).setParentController(this); + ((ContextAware) childController).useSettingsContext(false); + return childController; + } catch (IOException e) { + log.error("Loading view failed. FxmlUrl = " + navigationItem.getFxmlUrl()); + e.getStackTrace(); + } + return null; + } } class WizardItem extends HBox { @@ -215,7 +233,7 @@ class WizardItem extends HBox { } CodeBehind show() { - loadView(navigationItem); + parentCB.loadView(navigationItem); setId("wizard-item-background-active"); imageView.setImage(ImageUtil.getIconImage(ImageUtil.ARROW_BLUE)); titleLabel.setId("wizard-title-active"); @@ -229,20 +247,5 @@ class WizardItem extends HBox { titleLabel.setId("wizard-title-completed"); subTitleLabel.setId("wizard-sub-title-completed"); } - - private void loadView(NavigationItem navigationItem) { - final BSFXMLLoader loader = new BSFXMLLoader(getClass().getResource(navigationItem.getFxmlUrl())); - try { - final Pane view = loader.load(); - ((AnchorPane) content).getChildren().setAll(view); - childController = loader.getController(); - childController.setParentController(parentCB); - ((ContextAware) childController).useSettingsContext(false); - } catch (IOException e) { - log.error("Loading view failed. FxmlUrl = " + navigationItem.getFxmlUrl()); - e.getStackTrace(); - } - - } }