mirror of
https://github.com/haveno-dex/haveno.git
synced 2025-04-18 14:55:53 -04:00
Remove parent field from base View, introduce Wizard
- Replace MultiStepNavigation and ContextAware with Wizard and Wizard.Step - Introduce ChildOf interface - Eliminate TradeNavigator in favor of depending directly on TradeView
This commit is contained in:
parent
4ae9868ee5
commit
d4eb252973
@ -15,8 +15,8 @@
|
||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.bitsquare.gui.main.account.content;
|
||||
package io.bitsquare.gui;
|
||||
|
||||
public interface ContextAware {
|
||||
void useSettingsContext(boolean useSettingsContext);
|
||||
public interface ChildOf<Parent> {
|
||||
void setParent(Parent parent);
|
||||
}
|
@ -18,7 +18,6 @@
|
||||
package io.bitsquare.gui;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.*;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
@ -31,9 +30,6 @@ public class View<M> {
|
||||
protected final M model;
|
||||
protected @FXML Parent root;
|
||||
|
||||
protected Initializable parent;
|
||||
|
||||
|
||||
public View(M model) {
|
||||
this.model = model;
|
||||
}
|
||||
@ -42,10 +38,6 @@ public class View<M> {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public void setParent(Initializable parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
protected View loadView(Navigation.Item navigationItem) {
|
||||
throw new UnsupportedOperationException("loadView not implemented");
|
||||
}
|
||||
|
@ -15,10 +15,12 @@
|
||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.bitsquare.gui.main.account;
|
||||
package io.bitsquare.gui;
|
||||
|
||||
import io.bitsquare.gui.View;
|
||||
public interface Wizard {
|
||||
void nextStep(View current);
|
||||
|
||||
public interface MultiStepNavigation {
|
||||
void nextStep(View useSettingsContext);
|
||||
public interface Step extends ChildOf<Wizard> {
|
||||
void useSettingsContext(boolean useSettingsContext);
|
||||
}
|
||||
}
|
@ -22,7 +22,6 @@ import io.bitsquare.bank.BankAccount;
|
||||
import io.bitsquare.gui.ActivatableView;
|
||||
import io.bitsquare.gui.Navigation;
|
||||
import io.bitsquare.gui.OverlayManager;
|
||||
import io.bitsquare.gui.View;
|
||||
import io.bitsquare.gui.ViewLoader;
|
||||
import io.bitsquare.gui.components.Popups;
|
||||
import io.bitsquare.gui.components.SystemNotification;
|
||||
@ -127,8 +126,6 @@ public class MainView extends ActivatableView<MainViewModel> {
|
||||
|
||||
ViewLoader.Item loaded = viewLoader.load(navItems[1].getFxmlUrl());
|
||||
contentContainer.getChildren().setAll(loaded.view);
|
||||
if (loaded.controller instanceof View)
|
||||
((View) loaded.controller).setParent(this);
|
||||
|
||||
navButtons.getToggles().stream()
|
||||
.filter(toggle -> toggle instanceof ToggleButton)
|
||||
|
@ -140,10 +140,7 @@ public class AccountView extends ActivatableViewAndModel {
|
||||
|
||||
tab.setContent(loaded.view);
|
||||
((TabPane) root).getSelectionModel().select(tab);
|
||||
View childController = (View) loaded.controller;
|
||||
childController.setParent(this);
|
||||
|
||||
return childController;
|
||||
return (View) loaded.controller;
|
||||
}
|
||||
|
||||
|
||||
|
@ -112,10 +112,7 @@ public class ArbitratorBrowserView extends ActivatableView implements Arbitrator
|
||||
protected View loadView(Navigation.Item navigationItem) {
|
||||
ViewLoader.Item loaded = viewLoader.load(navigationItem.getFxmlUrl());
|
||||
((Pane) root).getChildren().set(0, loaded.view);
|
||||
View childController = arbitratorProfileViewCB = (ArbitratorProfileView) loaded.controller;
|
||||
childController.setParent(this);
|
||||
|
||||
return childController;
|
||||
return arbitratorProfileViewCB = (ArbitratorProfileView) loaded.controller;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -18,8 +18,7 @@
|
||||
package io.bitsquare.gui.main.account.content.changepassword;
|
||||
|
||||
import io.bitsquare.gui.InitializableView;
|
||||
import io.bitsquare.gui.main.account.MultiStepNavigation;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.Wizard;
|
||||
import io.bitsquare.gui.main.help.Help;
|
||||
import io.bitsquare.gui.main.help.HelpId;
|
||||
|
||||
@ -32,7 +31,7 @@ import javafx.scene.layout.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class ChangePasswordView extends InitializableView<ChangePasswordViewModel> implements ContextAware {
|
||||
public class ChangePasswordView extends InitializableView<ChangePasswordViewModel> implements Wizard.Step {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(ChangePasswordView.class);
|
||||
|
||||
@ -40,6 +39,8 @@ public class ChangePasswordView extends InitializableView<ChangePasswordViewMode
|
||||
@FXML Button saveButton, skipButton;
|
||||
@FXML PasswordField oldPasswordField, passwordField, repeatedPasswordField;
|
||||
|
||||
private Wizard parent;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
@ -63,9 +64,10 @@ public class ChangePasswordView extends InitializableView<ChangePasswordViewMode
|
||||
saveButton.disableProperty().bind(model.saveButtonDisabled);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// ContextAware implementation
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
@Override
|
||||
public void setParent(Wizard parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useSettingsContext(boolean useSettingsContext) {
|
||||
@ -80,14 +82,10 @@ public class ChangePasswordView extends InitializableView<ChangePasswordViewMode
|
||||
|
||||
@FXML
|
||||
private void onSaved() {
|
||||
boolean result = model.requestSavePassword();
|
||||
if (result) {
|
||||
if (parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(this);
|
||||
}
|
||||
else {
|
||||
if (model.requestSavePassword())
|
||||
parent.nextStep(this);
|
||||
else
|
||||
log.debug(model.getErrorMessage()); // TODO use validating TF
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
@ -97,8 +95,7 @@ public class ChangePasswordView extends InitializableView<ChangePasswordViewMode
|
||||
|
||||
@FXML
|
||||
private void onSkipped() {
|
||||
if (parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(this);
|
||||
parent.nextStep(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -23,8 +23,7 @@ import io.bitsquare.gui.ActivatableViewAndModel;
|
||||
import io.bitsquare.gui.OverlayManager;
|
||||
import io.bitsquare.gui.components.InputTextField;
|
||||
import io.bitsquare.gui.components.Popups;
|
||||
import io.bitsquare.gui.main.account.MultiStepNavigation;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.Wizard;
|
||||
import io.bitsquare.gui.main.help.Help;
|
||||
import io.bitsquare.gui.main.help.HelpId;
|
||||
import io.bitsquare.gui.util.validation.InputValidator;
|
||||
@ -53,7 +52,7 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import static javafx.beans.binding.Bindings.createBooleanBinding;
|
||||
|
||||
public class FiatAccountView extends ActivatableViewAndModel<FiatAccountViewModel> implements ContextAware {
|
||||
public class FiatAccountView extends ActivatableViewAndModel<FiatAccountViewModel> implements Wizard.Step {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(FiatAccountView.class);
|
||||
|
||||
@ -65,8 +64,11 @@ public class FiatAccountView extends ActivatableViewAndModel<FiatAccountViewMode
|
||||
@FXML ComboBox<BankAccount> selectionComboBox;
|
||||
@FXML ComboBox<BankAccountType> typesComboBox;
|
||||
@FXML ComboBox<Currency> currencyComboBox;
|
||||
|
||||
private final OverlayManager overlayManager;
|
||||
|
||||
private Wizard parent;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
@ -109,9 +111,12 @@ public class FiatAccountView extends ActivatableViewAndModel<FiatAccountViewMode
|
||||
selectionComboBox.setItems(model.getAllBankAccounts());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// ContextAware implementation
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
@Override
|
||||
public void setParent(Wizard parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useSettingsContext(boolean useSettingsContext) {
|
||||
@ -167,8 +172,7 @@ public class FiatAccountView extends ActivatableViewAndModel<FiatAccountViewMode
|
||||
|
||||
@FXML
|
||||
void onCompleted() {
|
||||
if (parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(this);
|
||||
parent.nextStep(this);
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
@ -21,11 +21,9 @@ import io.bitsquare.bank.BankAccountType;
|
||||
import io.bitsquare.gui.ActivatableViewAndModel;
|
||||
import io.bitsquare.gui.components.InputTextField;
|
||||
import io.bitsquare.gui.components.Popups;
|
||||
import io.bitsquare.gui.main.account.MultiStepNavigation;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.Wizard;
|
||||
import io.bitsquare.gui.main.help.Help;
|
||||
import io.bitsquare.gui.main.help.HelpId;
|
||||
import io.bitsquare.gui.util.validation.InputValidator;
|
||||
import io.bitsquare.util.Utilities;
|
||||
|
||||
import java.util.Currency;
|
||||
@ -44,7 +42,7 @@ import org.slf4j.LoggerFactory;
|
||||
/*
|
||||
Just temporary for giving the user a possibility to test the app via simulating the bank transfer in a IRC chat.
|
||||
*/
|
||||
public class IrcAccountView extends ActivatableViewAndModel<IrcAccountViewModel> implements ContextAware {
|
||||
public class IrcAccountView extends ActivatableViewAndModel<IrcAccountViewModel> implements Wizard.Step {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(IrcAccountView.class);
|
||||
|
||||
@ -54,6 +52,8 @@ public class IrcAccountView extends ActivatableViewAndModel<IrcAccountViewModel>
|
||||
@FXML ComboBox<BankAccountType> typesComboBox;
|
||||
@FXML ComboBox<Currency> currencyComboBox;
|
||||
|
||||
private Wizard parent;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
@ -144,9 +144,10 @@ public class IrcAccountView extends ActivatableViewAndModel<IrcAccountViewModel>
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// ContextAware implementation
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
@Override
|
||||
public void setParent(Wizard parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useSettingsContext(boolean useSettingsContext) {
|
||||
@ -170,9 +171,8 @@ public class IrcAccountView extends ActivatableViewAndModel<IrcAccountViewModel>
|
||||
|
||||
@FXML
|
||||
void onSave() {
|
||||
InputValidator.ValidationResult result = model.requestSaveBankAccount();
|
||||
if (result.isValid && parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(this);
|
||||
if (model.requestSaveBankAccount().isValid)
|
||||
parent.nextStep(this);
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
@ -18,8 +18,7 @@
|
||||
package io.bitsquare.gui.main.account.content.password;
|
||||
|
||||
import io.bitsquare.gui.InitializableView;
|
||||
import io.bitsquare.gui.main.account.MultiStepNavigation;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.Wizard;
|
||||
import io.bitsquare.gui.main.help.Help;
|
||||
import io.bitsquare.gui.main.help.HelpId;
|
||||
|
||||
@ -32,7 +31,7 @@ import javafx.scene.layout.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class PasswordView extends InitializableView<PasswordViewModel> implements ContextAware {
|
||||
public class PasswordView extends InitializableView<PasswordViewModel> implements Wizard.Step {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(PasswordView.class);
|
||||
|
||||
@ -40,6 +39,8 @@ public class PasswordView extends InitializableView<PasswordViewModel> implement
|
||||
@FXML Button saveButton, skipButton;
|
||||
@FXML PasswordField oldPasswordField, passwordField, repeatedPasswordField;
|
||||
|
||||
private Wizard parent;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
@ -68,6 +69,11 @@ public class PasswordView extends InitializableView<PasswordViewModel> implement
|
||||
// ContextAware implementation
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@Override
|
||||
public void setParent(Wizard parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useSettingsContext(boolean useSettingsContext) {
|
||||
if (useSettingsContext)
|
||||
@ -81,21 +87,16 @@ public class PasswordView extends InitializableView<PasswordViewModel> implement
|
||||
|
||||
@FXML
|
||||
private void onSaved() {
|
||||
boolean result = model.requestSavePassword();
|
||||
if (result) {
|
||||
if (parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(this);
|
||||
}
|
||||
else {
|
||||
if (model.requestSavePassword())
|
||||
parent.nextStep(this);
|
||||
else
|
||||
// TODO use validating passwordTF
|
||||
log.debug(model.getErrorMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@FXML
|
||||
private void onSkipped() {
|
||||
if (parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(this);
|
||||
parent.nextStep(this);
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
@ -22,8 +22,7 @@ import io.bitsquare.gui.OverlayManager;
|
||||
import io.bitsquare.gui.components.AddressTextField;
|
||||
import io.bitsquare.gui.components.BalanceTextField;
|
||||
import io.bitsquare.gui.components.Popups;
|
||||
import io.bitsquare.gui.main.account.MultiStepNavigation;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.Wizard;
|
||||
import io.bitsquare.gui.main.help.Help;
|
||||
import io.bitsquare.gui.main.help.HelpId;
|
||||
import io.bitsquare.locale.BSResources;
|
||||
@ -45,7 +44,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
||||
public class RegistrationView extends InitializableView<RegistrationViewModel> implements ContextAware {
|
||||
public class RegistrationView extends InitializableView<RegistrationViewModel> implements Wizard.Step {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(RegistrationView.class);
|
||||
|
||||
@ -58,6 +57,8 @@ public class RegistrationView extends InitializableView<RegistrationViewModel> i
|
||||
@FXML Label paymentSpinnerInfoLabel;
|
||||
@FXML ProgressIndicator paymentSpinner;
|
||||
|
||||
private Wizard parent;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
@ -121,8 +122,8 @@ public class RegistrationView extends InitializableView<RegistrationViewModel> i
|
||||
public void handle(ActionEvent actionEvent) {
|
||||
getProperties().put("type", "CLOSE");
|
||||
try {
|
||||
if (parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(RegistrationView.this);
|
||||
if (parent instanceof Wizard)
|
||||
((Wizard) parent).nextStep(RegistrationView.this);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -140,15 +141,13 @@ public class RegistrationView extends InitializableView<RegistrationViewModel> i
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// ContextAware implementation
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
@Override
|
||||
public void setParent(Wizard parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useSettingsContext(boolean useSettingsContext) {
|
||||
if (useSettingsContext) {
|
||||
// TODO not impl. yet
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -22,8 +22,7 @@ import io.bitsquare.gui.ActivatableViewAndModel;
|
||||
import io.bitsquare.gui.Navigation;
|
||||
import io.bitsquare.gui.View;
|
||||
import io.bitsquare.gui.ViewLoader;
|
||||
import io.bitsquare.gui.main.account.MultiStepNavigation;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.Wizard;
|
||||
import io.bitsquare.gui.main.help.Help;
|
||||
import io.bitsquare.gui.main.help.HelpId;
|
||||
import io.bitsquare.gui.util.ImageUtil;
|
||||
@ -35,7 +34,6 @@ import java.util.Locale;
|
||||
import javax.inject.Inject;
|
||||
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.*;
|
||||
import javafx.scene.control.*;
|
||||
import javafx.scene.image.*;
|
||||
@ -48,7 +46,7 @@ import javafx.util.StringConverter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class RestrictionsView extends ActivatableViewAndModel<RestrictionsViewModel> implements ContextAware {
|
||||
public class RestrictionsView extends ActivatableViewAndModel<RestrictionsViewModel> implements Wizard.Step {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(RestrictionsView.class);
|
||||
|
||||
@ -63,6 +61,8 @@ public class RestrictionsView extends ActivatableViewAndModel<RestrictionsViewMo
|
||||
private final ViewLoader viewLoader;
|
||||
private final Stage primaryStage;
|
||||
|
||||
private Wizard parent;
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
@ -97,9 +97,10 @@ public class RestrictionsView extends ActivatableViewAndModel<RestrictionsViewMo
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// ContextAware implementation
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
@Override
|
||||
public void setParent(Wizard parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useSettingsContext(boolean useSettingsContext) {
|
||||
@ -146,8 +147,8 @@ public class RestrictionsView extends ActivatableViewAndModel<RestrictionsViewMo
|
||||
|
||||
@FXML
|
||||
private void onCompleted() {
|
||||
if (parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(this);
|
||||
if (parent instanceof Wizard)
|
||||
((Wizard) parent).nextStep(this);
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
@ -18,8 +18,7 @@
|
||||
package io.bitsquare.gui.main.account.content.seedwords;
|
||||
|
||||
import io.bitsquare.gui.InitializableView;
|
||||
import io.bitsquare.gui.main.account.MultiStepNavigation;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.Wizard;
|
||||
import io.bitsquare.gui.main.help.Help;
|
||||
import io.bitsquare.gui.main.help.HelpId;
|
||||
|
||||
@ -32,10 +31,12 @@ import javafx.scene.layout.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class SeedWordsView extends InitializableView<SeedWordsViewModel> implements ContextAware {
|
||||
public class SeedWordsView extends InitializableView<SeedWordsViewModel> implements Wizard.Step {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(SeedWordsView.class);
|
||||
|
||||
private Wizard parent;
|
||||
|
||||
@FXML Button completedButton;
|
||||
@FXML TextArea seedWordsTextArea;
|
||||
|
||||
@ -59,10 +60,10 @@ public class SeedWordsView extends InitializableView<SeedWordsViewModel> impleme
|
||||
seedWordsTextArea.setText(model.seedWords.get());
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// ContextAware implementation
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
@Override
|
||||
public void setParent(Wizard parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useSettingsContext(boolean useSettingsContext) {
|
||||
@ -77,8 +78,7 @@ public class SeedWordsView extends InitializableView<SeedWordsViewModel> impleme
|
||||
|
||||
@FXML
|
||||
private void onCompleted() {
|
||||
if (parent instanceof MultiStepNavigation)
|
||||
((MultiStepNavigation) parent).nextStep(this);
|
||||
parent.nextStep(this);
|
||||
}
|
||||
|
||||
@FXML
|
||||
|
@ -21,7 +21,6 @@ import io.bitsquare.gui.ActivatableViewAndModel;
|
||||
import io.bitsquare.gui.Navigation;
|
||||
import io.bitsquare.gui.View;
|
||||
import io.bitsquare.gui.ViewLoader;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.util.Colors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@ -132,9 +131,6 @@ public class AccountSettingsView extends ActivatableViewAndModel {
|
||||
ViewLoader.Item loaded = viewLoader.load(navigationItem.getFxmlUrl());
|
||||
content.getChildren().setAll(loaded.view);
|
||||
View child = (View) loaded.controller;
|
||||
child.setParent(this);
|
||||
if (child instanceof ContextAware)
|
||||
((ContextAware) child).useSettingsContext(true);
|
||||
return child;
|
||||
}
|
||||
|
||||
|
@ -21,8 +21,7 @@ import io.bitsquare.gui.ActivatableView;
|
||||
import io.bitsquare.gui.Navigation;
|
||||
import io.bitsquare.gui.View;
|
||||
import io.bitsquare.gui.ViewLoader;
|
||||
import io.bitsquare.gui.main.account.MultiStepNavigation;
|
||||
import io.bitsquare.gui.main.account.content.ContextAware;
|
||||
import io.bitsquare.gui.Wizard;
|
||||
import io.bitsquare.gui.main.account.content.irc.IrcAccountView;
|
||||
import io.bitsquare.gui.main.account.content.password.PasswordView;
|
||||
import io.bitsquare.gui.main.account.content.registration.RegistrationView;
|
||||
@ -43,7 +42,7 @@ import org.slf4j.LoggerFactory;
|
||||
/**
|
||||
* This UI is not cached as it is normally only needed once.
|
||||
*/
|
||||
public class AccountSetupView extends ActivatableView implements MultiStepNavigation {
|
||||
public class AccountSetupView extends ActivatableView implements Wizard {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(AccountSetupView.class);
|
||||
|
||||
@ -185,9 +184,10 @@ public class AccountSetupView extends ActivatableView implements MultiStepNaviga
|
||||
ViewLoader.Item loaded = viewLoader.load(navigationItem.getFxmlUrl());
|
||||
content.getChildren().setAll(loaded.view);
|
||||
View child = (View) loaded.controller;
|
||||
child.setParent(this);
|
||||
if (child instanceof ContextAware)
|
||||
((ContextAware) child).useSettingsContext(false);
|
||||
if (child instanceof Wizard.Step) {
|
||||
((Step) child).setParent(this);
|
||||
((Step) child).useSettingsContext(false);
|
||||
}
|
||||
return child;
|
||||
}
|
||||
}
|
||||
|
@ -110,10 +110,7 @@ public class FundsView extends ActivatableViewAndModel {
|
||||
}
|
||||
currentTab.setContent(loaded.view);
|
||||
((TabPane) root).getSelectionModel().select(currentTab);
|
||||
View childController = (View) loaded.controller;
|
||||
childController.setParent(this);
|
||||
|
||||
return childController;
|
||||
return (View) loaded.controller;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -19,9 +19,6 @@ package io.bitsquare.gui.main.home;
|
||||
|
||||
import io.bitsquare.gui.View;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
// home is just hosting the arbiters buttons yet, but that's just for dev, not clear yet what will be in home,
|
||||
// probably overview, event history, news, charts,... -> low prio
|
||||
public class HomeView extends View {
|
||||
|
@ -17,13 +17,10 @@
|
||||
|
||||
package io.bitsquare.gui.main.msg;
|
||||
|
||||
import io.bitsquare.gui.Navigation;
|
||||
import io.bitsquare.gui.View;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import javafx.fxml.Initializable;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -121,10 +121,7 @@ public class PortfolioView extends ActivatableViewAndModel {
|
||||
}
|
||||
currentTab.setContent(loaded.view);
|
||||
((TabPane) root).getSelectionModel().select(currentTab);
|
||||
View childController = (View) loaded.controller;
|
||||
childController.setParent(this);
|
||||
|
||||
return childController;
|
||||
return (View) loaded.controller;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,10 +117,7 @@ public class SettingsView extends ActivatableViewAndModel {
|
||||
}
|
||||
tab.setContent(loaded.view);
|
||||
((TabPane) root).getSelectionModel().select(tab);
|
||||
View childController = (View) loaded.controller;
|
||||
childController.setParent(this);
|
||||
|
||||
return childController;
|
||||
return (View) loaded.controller;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,29 +0,0 @@
|
||||
/*
|
||||
* This file is part of Bitsquare.
|
||||
*
|
||||
* Bitsquare is free software: you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Affero General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* Bitsquare is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
|
||||
* License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public License
|
||||
* along with Bitsquare. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package io.bitsquare.gui.main.trade;
|
||||
|
||||
import io.bitsquare.offer.Offer;
|
||||
|
||||
import org.bitcoinj.core.Coin;
|
||||
import org.bitcoinj.utils.Fiat;
|
||||
|
||||
public interface TradeNavigator {
|
||||
void createOffer(Coin amount, Fiat price);
|
||||
|
||||
void takeOffer(Coin amount, Fiat price, Offer offer);
|
||||
}
|
@ -41,7 +41,7 @@ import javafx.scene.control.*;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class TradeView extends ActivatableView implements TradeNavigator {
|
||||
public class TradeView extends ActivatableView {
|
||||
private static final Logger log = LoggerFactory.getLogger(TradeView.class);
|
||||
|
||||
private OfferBookView offerBookViewCB;
|
||||
@ -118,25 +118,17 @@ public class TradeView extends ActivatableView implements TradeNavigator {
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// TradeNavigator implementation
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@Override
|
||||
public void createOffer(Coin amount, Fiat price) {
|
||||
this.amount = amount;
|
||||
this.price = price;
|
||||
navigation.navigationTo(Navigation.Item.MAIN, navigationItem,
|
||||
Navigation.Item.CREATE_OFFER);
|
||||
navigation.navigationTo(Navigation.Item.MAIN, navigationItem, Navigation.Item.CREATE_OFFER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void takeOffer(Coin amount, Fiat price, Offer offer) {
|
||||
this.amount = amount;
|
||||
this.price = price;
|
||||
this.offer = offer;
|
||||
navigation.navigationTo(Navigation.Item.MAIN, navigationItem,
|
||||
Navigation.Item.TAKE_OFFER);
|
||||
navigation.navigationTo(Navigation.Item.MAIN, navigationItem, Navigation.Item.TAKE_OFFER);
|
||||
}
|
||||
|
||||
|
||||
@ -168,7 +160,6 @@ public class TradeView extends ActivatableView implements TradeNavigator {
|
||||
ViewLoader.Item loaded = viewLoader.load(navigationItem.getFxmlUrl(), false);
|
||||
createOfferView = loaded.view;
|
||||
createOfferViewCB = (CreateOfferView) loaded.controller;
|
||||
createOfferViewCB.setParent(this);
|
||||
createOfferViewCB.initWithData(direction, amount, price);
|
||||
final Tab tab = new Tab("Create offer");
|
||||
createOfferViewCB.configCloseHandlers(tab.closableProperty());
|
||||
@ -184,7 +175,6 @@ public class TradeView extends ActivatableView implements TradeNavigator {
|
||||
ViewLoader.Item loaded = viewLoader.load(Navigation.Item.TAKE_OFFER.getFxmlUrl(), false);
|
||||
takeOfferView = loaded.view;
|
||||
takeOfferViewCB = (TakeOfferView) loaded.controller;
|
||||
takeOfferViewCB.setParent(this);
|
||||
takeOfferViewCB.initWithData(direction, amount, offer);
|
||||
final Tab tab = new Tab("Take offer");
|
||||
takeOfferViewCB.configCloseHandlers(tab.closableProperty());
|
||||
|
@ -18,11 +18,12 @@
|
||||
package io.bitsquare.gui.main.trade.offerbook;
|
||||
|
||||
import io.bitsquare.gui.ActivatableViewAndModel;
|
||||
import io.bitsquare.gui.ChildOf;
|
||||
import io.bitsquare.gui.Navigation;
|
||||
import io.bitsquare.gui.OverlayManager;
|
||||
import io.bitsquare.gui.components.InputTextField;
|
||||
import io.bitsquare.gui.components.Popups;
|
||||
import io.bitsquare.gui.main.trade.TradeNavigator;
|
||||
import io.bitsquare.gui.main.trade.TradeView;
|
||||
import io.bitsquare.gui.util.ImageUtil;
|
||||
import io.bitsquare.gui.util.validation.OptionalBtcValidator;
|
||||
import io.bitsquare.gui.util.validation.OptionalFiatValidator;
|
||||
@ -59,7 +60,7 @@ import static javafx.beans.binding.Bindings.createStringBinding;
|
||||
* TODO: The advanced filters are not impl. yet
|
||||
* The restrictions handling is open from the concept and is only implemented for countries yet.
|
||||
*/
|
||||
public class OfferBookView extends ActivatableViewAndModel<OfferBookViewModel> {
|
||||
public class OfferBookView extends ActivatableViewAndModel<OfferBookViewModel> implements ChildOf<TradeView> {
|
||||
private static final Logger log = LoggerFactory.getLogger(OfferBookView.class);
|
||||
|
||||
private final Navigation navigation;
|
||||
@ -82,6 +83,8 @@ public class OfferBookView extends ActivatableViewAndModel<OfferBookViewModel> {
|
||||
@FXML TableColumn<OfferBookListItem, OfferBookListItem> priceColumn, amountColumn, volumeColumn,
|
||||
directionColumn, countryColumn, bankAccountTypeColumn;
|
||||
|
||||
private TradeView parent;
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Constructor
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -183,8 +186,7 @@ public class OfferBookView extends ActivatableViewAndModel<OfferBookViewModel> {
|
||||
void createOffer() {
|
||||
if (model.isRegistered()) {
|
||||
createOfferButton.setDisable(true);
|
||||
((TradeNavigator) parent).createOffer(model.getAmountAsCoin(),
|
||||
model.getPriceAsCoin());
|
||||
parent.createOffer(model.getAmountAsCoin(), model.getPriceAsCoin());
|
||||
}
|
||||
else {
|
||||
openSetupScreen();
|
||||
@ -249,8 +251,7 @@ public class OfferBookView extends ActivatableViewAndModel<OfferBookViewModel> {
|
||||
|
||||
if (model.isRegistered()) {
|
||||
if (offer.getDirection() == Direction.BUY) {
|
||||
((TradeNavigator) parent).takeOffer(model.getAmountAsCoin(),
|
||||
model.getPriceAsCoin(), offer);
|
||||
parent.takeOffer(model.getAmountAsCoin(), model.getPriceAsCoin(), offer);
|
||||
}
|
||||
else {
|
||||
Popups.openInfoPopup("Not implemented yet",
|
||||
@ -386,6 +387,11 @@ public class OfferBookView extends ActivatableViewAndModel<OfferBookViewModel> {
|
||||
}
|
||||
|
||||
|
||||
public void setParent(TradeView parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
// CellFactories
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
Loading…
x
Reference in New Issue
Block a user