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.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<TabPane, AccountViewModel> {
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<TabPane, AccountViewModel> {
};
tabChangeListener = (ov, oldValue, newValue) -> {
if (newValue == accountSettingsTab)
navigation.navigateTo(MainView.class, AccountView.class, AccountSettingsView.class);
else
if (newValue == accountSettingsTab) {
Class<? extends View> 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<TabPane, AccountViewModel> {
if (view instanceof AccountSettingsView) {
tab = accountSettingsTab;
accountSettingsView = (AccountSettingsView) view;
tab.setText("Account settings");
arbitratorRegistrationTab.setDisable(false);
if (arbitratorRegistrationView != null)

View File

@ -56,6 +56,8 @@ public class AccountSettingsView extends ActivatableViewAndModel {
@FXML
private AnchorPane content;
private Class<? extends View> 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<? extends View> getSelectedViewClass() {
return selecteedViewClass;
}
}