diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.java b/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.java index cdcf5d39e3..afa2737c02 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/AccountView.java @@ -21,6 +21,7 @@ import io.bitsquare.gui.Navigation; import io.bitsquare.gui.common.view.*; import io.bitsquare.gui.main.MainView; import io.bitsquare.gui.main.account.arbitratorregistration.ArbitratorRegistrationView; +import io.bitsquare.gui.main.account.content.paymentsaccount.PaymentAccountView; import io.bitsquare.gui.main.account.settings.AccountSettingsView; import javafx.beans.value.ChangeListener; import javafx.fxml.FXML; @@ -43,6 +44,7 @@ public class AccountView extends ActivatableView { private View accountSetupWizardView; private Tab tab; private ArbitratorRegistrationView arbitratorRegistrationView; + private AccountSettingsView accountSettingsView; @Inject private AccountView(AccountViewModel model, CachingViewLoader viewLoader, Navigation navigation) { @@ -59,10 +61,15 @@ public class AccountView extends ActivatableView { }; tabChangeListener = (ov, oldValue, newValue) -> { - if (newValue == accountSettingsTab) - navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class); - else + if (newValue == accountSettingsTab) { + Class selectedViewClass = accountSettingsView.getSelectedViewClass(); + if (selectedViewClass == null) + navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class, PaymentAccountView.class); + else + navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class, selectedViewClass); + } else { navigation.navigateTo(MainView.class, AccountView.class, ArbitratorRegistrationView.class); + } }; } @@ -98,6 +105,7 @@ public class AccountView extends ActivatableView { if (view instanceof AccountSettingsView) { tab = accountSettingsTab; + accountSettingsView = (AccountSettingsView) view; tab.setText("Account settings"); arbitratorRegistrationTab.setDisable(false); if (arbitratorRegistrationView != null) diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java index 3ded6e8be5..a74e36031e 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java @@ -56,6 +56,8 @@ public class AccountSettingsView extends ActivatableViewAndModel { @FXML private AnchorPane content; + private Class selecteedViewClass; + @Inject private AccountSettingsView(CachingViewLoader viewLoader, Navigation navigation) { this.viewLoader = viewLoader; @@ -86,10 +88,12 @@ public class AccountSettingsView extends ActivatableViewAndModel { protected void activate() { navigation.addListener(listener); ViewPath viewPath = navigation.getCurrentPath(); - if (viewPath.size() == 3 && viewPath.indexOf(AccountSettingsView.class) == 2) { + if (viewPath.size() == 3 && viewPath.indexOf(AccountSettingsView.class) == 2 || + viewPath.size() == 2 && viewPath.indexOf(AccountView.class) == 1) { navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class, PaymentAccountView.class); } else if (viewPath.size() == 4 && viewPath.indexOf(AccountSettingsView.class) == 2) { - loadView(viewPath.get(3)); + selecteedViewClass = viewPath.get(3); + loadView(selecteedViewClass); } } @@ -119,6 +123,11 @@ public class AccountSettingsView extends ActivatableViewAndModel { // else if (view instanceof RegistrationView) registration.setSelected(true); //} } + + public Class getSelectedViewClass() { + return selecteedViewClass; + } + }