Fix UI bug with not displaying sub view

This commit is contained in:
Manfred Karrer 2016-01-27 00:03:27 +01:00
parent 991ab56a97
commit 9bb4683379
2 changed files with 22 additions and 5 deletions

View file

@ -21,6 +21,7 @@ import io.bitsquare.gui.Navigation;
import io.bitsquare.gui.common.view.*; import io.bitsquare.gui.common.view.*;
import io.bitsquare.gui.main.MainView; import io.bitsquare.gui.main.MainView;
import io.bitsquare.gui.main.account.arbitratorregistration.ArbitratorRegistrationView; 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 io.bitsquare.gui.main.account.settings.AccountSettingsView;
import javafx.beans.value.ChangeListener; import javafx.beans.value.ChangeListener;
import javafx.fxml.FXML; import javafx.fxml.FXML;
@ -43,6 +44,7 @@ public class AccountView extends ActivatableView<TabPane, AccountViewModel> {
private View accountSetupWizardView; private View accountSetupWizardView;
private Tab tab; private Tab tab;
private ArbitratorRegistrationView arbitratorRegistrationView; private ArbitratorRegistrationView arbitratorRegistrationView;
private AccountSettingsView accountSettingsView;
@Inject @Inject
private AccountView(AccountViewModel model, CachingViewLoader viewLoader, Navigation navigation) { private AccountView(AccountViewModel model, CachingViewLoader viewLoader, Navigation navigation) {
@ -59,10 +61,15 @@ public class AccountView extends ActivatableView<TabPane, AccountViewModel> {
}; };
tabChangeListener = (ov, oldValue, newValue) -> { tabChangeListener = (ov, oldValue, newValue) -> {
if (newValue == accountSettingsTab) if (newValue == accountSettingsTab) {
navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class); Class<? extends View> selectedViewClass = accountSettingsView.getSelectedViewClass();
if (selectedViewClass == null)
navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class, PaymentAccountView.class);
else else
navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class, selectedViewClass);
} else {
navigation.navigateTo(MainView.class, AccountView.class, ArbitratorRegistrationView.class); navigation.navigateTo(MainView.class, AccountView.class, ArbitratorRegistrationView.class);
}
}; };
} }
@ -98,6 +105,7 @@ public class AccountView extends ActivatableView<TabPane, AccountViewModel> {
if (view instanceof AccountSettingsView) { if (view instanceof AccountSettingsView) {
tab = accountSettingsTab; tab = accountSettingsTab;
accountSettingsView = (AccountSettingsView) view;
tab.setText("Account settings"); tab.setText("Account settings");
arbitratorRegistrationTab.setDisable(false); arbitratorRegistrationTab.setDisable(false);
if (arbitratorRegistrationView != null) if (arbitratorRegistrationView != null)

View file

@ -56,6 +56,8 @@ public class AccountSettingsView extends ActivatableViewAndModel {
@FXML @FXML
private AnchorPane content; private AnchorPane content;
private Class<? extends View> selecteedViewClass;
@Inject @Inject
private AccountSettingsView(CachingViewLoader viewLoader, Navigation navigation) { private AccountSettingsView(CachingViewLoader viewLoader, Navigation navigation) {
this.viewLoader = viewLoader; this.viewLoader = viewLoader;
@ -86,10 +88,12 @@ public class AccountSettingsView extends ActivatableViewAndModel {
protected void activate() { protected void activate() {
navigation.addListener(listener); navigation.addListener(listener);
ViewPath viewPath = navigation.getCurrentPath(); 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); navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class, PaymentAccountView.class);
} else if (viewPath.size() == 4 && viewPath.indexOf(AccountSettingsView.class) == 2) { } 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); // else if (view instanceof RegistrationView) registration.setSelected(true);
//} //}
} }
public Class<? extends View> getSelectedViewClass() {
return selecteedViewClass;
}
} }