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 76b84aa1de..1d2981b42a 100644 --- a/src/main/java/io/bitsquare/gui/main/account/AccountView.java +++ b/src/main/java/io/bitsquare/gui/main/account/AccountView.java @@ -28,8 +28,8 @@ import javax.inject.Inject; import viewfx.view.FxmlView; import viewfx.view.View; import viewfx.view.ViewLoader; -import viewfx.view.ViewPath; import viewfx.view.support.ActivatableView; +import viewfx.view.support.CachingViewLoader; import javafx.beans.value.ChangeListener; import javafx.fxml.FXML; @@ -45,9 +45,11 @@ public class AccountView extends ActivatableView { private final ViewLoader viewLoader; private final Navigation navigation; + private View accountSetupWizardView; + private Tab tab; @Inject - private AccountView(AccountViewModel model, ViewLoader viewLoader, Navigation navigation) { + private AccountView(AccountViewModel model, CachingViewLoader viewLoader, Navigation navigation) { super(model); this.viewLoader = viewLoader; this.navigation = navigation; @@ -73,8 +75,7 @@ public class AccountView extends ActivatableView { navigation.addListener(navigationListener); root.getSelectionModel().selectedItemProperty().addListener(tabChangeListener); - if (navigation.getCurrentPath().size() == 2 && - navigation.getCurrentPath().get(1) == AccountView.class) { + if (navigation.getCurrentPath().size() == 2 && navigation.getCurrentPath().get(1) == AccountView.class) { if (model.getNeedRegistration()) { navigation.navigateTo(MainView.class, AccountView.class, AccountSetupWizard.class); } @@ -91,10 +92,12 @@ public class AccountView extends ActivatableView { public void deactivate() { navigation.removeListener(navigationListener); root.getSelectionModel().selectedItemProperty().removeListener(tabChangeListener); + + if (accountSetupWizardView != null) + tab.setContent(null); } private void loadView(Class viewClass) { - Tab tab; View view = viewLoader.load(viewClass); if (view instanceof AccountSettingsView) { @@ -106,6 +109,7 @@ public class AccountView extends ActivatableView { tab = accountSettingsTab; tab.setText("Account setup"); arbitratorSettingsTab.setDisable(true); + accountSetupWizardView = view; } else if (view instanceof ArbitratorSettingsView) { tab = arbitratorSettingsTab; 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 8e89d37719..3e0e28b4d7 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 @@ -34,6 +34,7 @@ import viewfx.view.FxmlView; import viewfx.view.View; import viewfx.view.ViewLoader; import viewfx.view.support.ActivatableView; +import viewfx.view.support.CachingViewLoader; import javafx.fxml.FXML; import javafx.scene.control.*; @@ -58,7 +59,7 @@ public class ArbitratorBrowserView extends ActivatableView implement private final MessageService messageService; @Inject - public ArbitratorBrowserView(ViewLoader viewLoader, AccountSettings accountSettings, Persistence persistence, + public ArbitratorBrowserView(CachingViewLoader viewLoader, AccountSettings accountSettings, Persistence persistence, MessageService messageService) { this.viewLoader = viewLoader; this.accountSettings = accountSettings; 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 46bc75f955..b54f6f9a67 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 @@ -64,7 +64,7 @@ public class ChangePasswordView extends InitializableView { private final Navigation navigation; @Inject - public FundsView(ViewLoader viewLoader, Navigation navigation) { + public FundsView(CachingViewLoader viewLoader, Navigation navigation) { this.viewLoader = viewLoader; this.navigation = navigation; } @@ -75,13 +76,14 @@ public class FundsView extends ActivatableViewAndModel { if (root.getSelectionModel().getSelectedItem() == transactionsTab) navigation.navigateTo(MainView.class, FundsView.class, TransactionsView.class); else - navigation.navigateTo(MainView.class, FundsView.class, WithdrawalView.class); + navigation.navigateTo(MainView.class, FundsView.class, WithdrawalView.class); } @Override public void doDeactivate() { root.getSelectionModel().selectedItemProperty().removeListener(tabChangeListener); navigation.removeListener(navigationListener); + currentTab = null; } private void loadView(Class viewClass) { @@ -91,8 +93,10 @@ public class FundsView extends ActivatableViewAndModel { View view = viewLoader.load(viewClass); - if (view instanceof WithdrawalView) currentTab = withdrawalTab; - else if (view instanceof TransactionsView) currentTab = transactionsTab; + if (view instanceof WithdrawalView) + currentTab = withdrawalTab; + else if (view instanceof TransactionsView) + currentTab = transactionsTab; currentTab.setContent(view.getRoot()); root.getSelectionModel().select(currentTab); 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 26e3daad2c..85e2b83a01 100644 --- a/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java +++ b/src/main/java/io/bitsquare/gui/main/portfolio/PortfolioView.java @@ -31,6 +31,7 @@ import viewfx.view.FxmlView; import viewfx.view.View; import viewfx.view.ViewLoader; import viewfx.view.support.ActivatableViewAndModel; +import viewfx.view.support.CachingViewLoader; import javafx.beans.value.ChangeListener; import javafx.fxml.FXML; @@ -50,7 +51,7 @@ public class PortfolioView extends ActivatableViewAndModel private final TradeManager tradeManager; @Inject - public PortfolioView(ViewLoader viewLoader, Navigation navigation, TradeManager tradeManager) { + public PortfolioView(CachingViewLoader viewLoader, Navigation navigation, TradeManager tradeManager) { this.viewLoader = viewLoader; this.navigation = navigation; this.tradeManager = tradeManager; 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 4b6891800b..633e5f7709 100644 --- a/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java +++ b/src/main/java/io/bitsquare/gui/main/settings/SettingsView.java @@ -30,6 +30,7 @@ import viewfx.view.FxmlView; import viewfx.view.View; import viewfx.view.ViewLoader; import viewfx.view.support.ActivatableViewAndModel; +import viewfx.view.support.CachingViewLoader; import javafx.beans.value.ChangeListener; import javafx.fxml.FXML; @@ -48,7 +49,7 @@ public class SettingsView extends ActivatableViewAndModel private final Navigation navigation; @Inject - public SettingsView(ViewLoader viewLoader, Navigation navigation, Preferences preferences) { + public SettingsView(CachingViewLoader viewLoader, Navigation navigation, Preferences preferences) { this.viewLoader = viewLoader; this.navigation = navigation; this.preferences = preferences;