From bd5f8d002056ab11e3629c20fc6c96a4230684f7 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Thu, 11 Sep 2014 11:17:11 +0200 Subject: [PATCH] Use DI for validators, add @Deprecated/TODOs, --- .../java/io/bitsquare/di/BitSquareModule.java | 9 +++++++++ ...{CachedCodeBehind.java => CachedViewCB.java} | 10 +++++----- .../gui/{CodeBehind.java => ViewCB.java} | 10 +++++----- .../java/io/bitsquare/gui/ViewController.java | 4 ++-- .../gui/components/ConfidenceDisplay.java | 3 ++- .../io/bitsquare/gui/components/HSpacer.java | 2 ++ .../io/bitsquare/gui/components/VSpacer.java | 2 ++ .../java/io/bitsquare/gui/main/MainViewCB.java | 8 ++++---- .../gui/main/account/AccountViewCB.java | 8 ++++---- .../gui/main/account/MultiStepNavigation.java | 4 ++-- .../changepassword/ChangePasswordPM.java | 5 +++-- .../changepassword/ChangePasswordViewCB.java | 4 ++-- .../account/content/fiat/FiatAccountPm.java | 17 +++++++++-------- .../account/content/fiat/FiatAccountViewCB.java | 12 ++++++------ .../account/content/password/PasswordPM.java | 5 +++-- .../content/password/PasswordViewCB.java | 4 ++-- .../registration/RegistrationViewCB.java | 4 ++-- .../restrictions/RestrictionsViewCB.java | 4 ++-- .../content/seedwords/SeedWordsViewCB.java | 4 ++-- .../account/settings/AccountSettingsViewCB.java | 10 +++++----- .../main/account/setup/AccountSetupViewCB.java | 14 +++++++------- .../main/trade/createoffer/CreateOfferPM.java | 9 ++++++--- .../trade/createoffer/CreateOfferViewCB.java | 4 ++-- .../trade/orderbook/OrderBookController.java | 10 +++++----- .../gui/util/validation/FiatValidator.java | 15 +++++++++------ .../java/io/bitsquare/trade/TradeManager.java | 1 + .../java/io/bitsquare/util/BSFXMLLoader.java | 2 ++ src/main/java/io/bitsquare/util/Utilities.java | 3 +++ src/main/java/io/bitsquare/util/Validator.java | 3 +++ .../java/lighthouse/files/AppDirectory.java | 2 +- .../java/io/bitsquare/BitSquareTestSuite.java | 4 ++-- .../trade/createoffer/CreateOfferPMTest.java | 4 +++- .../util/{ => validation}/BtcValidatorTest.java | 4 +--- .../{ => validation}/FiatValidatorTest.java | 7 ++----- 34 files changed, 120 insertions(+), 91 deletions(-) rename src/main/java/io/bitsquare/gui/{CachedCodeBehind.java => CachedViewCB.java} (85%) rename src/main/java/io/bitsquare/gui/{CodeBehind.java => ViewCB.java} (89%) rename src/test/java/io/bitsquare/gui/util/{ => validation}/BtcValidatorTest.java (96%) rename src/test/java/io/bitsquare/gui/util/{ => validation}/FiatValidatorTest.java (93%) diff --git a/src/main/java/io/bitsquare/di/BitSquareModule.java b/src/main/java/io/bitsquare/di/BitSquareModule.java index a3b0a9ba07..be7015e7a7 100644 --- a/src/main/java/io/bitsquare/di/BitSquareModule.java +++ b/src/main/java/io/bitsquare/di/BitSquareModule.java @@ -26,7 +26,11 @@ import io.bitsquare.gui.NavigationController; import io.bitsquare.gui.OverlayController; import io.bitsquare.gui.main.trade.orderbook.OrderBook; import io.bitsquare.gui.util.BSFormatter; +import io.bitsquare.gui.util.validation.BankAccountNumberValidator; +import io.bitsquare.gui.util.validation.BtcValidator; import io.bitsquare.gui.util.validation.FiatValidator; +import io.bitsquare.gui.util.validation.InputValidator; +import io.bitsquare.gui.util.validation.PasswordValidator; import io.bitsquare.msg.BootstrappedPeerFactory; import io.bitsquare.msg.MessageFacade; import io.bitsquare.msg.P2PNode; @@ -70,7 +74,12 @@ public class BitSquareModule extends AbstractModule { bind(NavigationController.class).asEagerSingleton(); bind(OverlayController.class).asEagerSingleton(); bind(BSFormatter.class).asEagerSingleton(); + + bind(BankAccountNumberValidator.class).asEagerSingleton(); + bind(BtcValidator.class).asEagerSingleton(); bind(FiatValidator.class).asEagerSingleton(); + bind(InputValidator.class).asEagerSingleton(); + bind(PasswordValidator.class).asEagerSingleton(); //bind(String.class).annotatedWith(Names.named("networkType")).toInstance(WalletFacade.MAIN_NET); diff --git a/src/main/java/io/bitsquare/gui/CachedCodeBehind.java b/src/main/java/io/bitsquare/gui/CachedViewCB.java similarity index 85% rename from src/main/java/io/bitsquare/gui/CachedCodeBehind.java rename to src/main/java/io/bitsquare/gui/CachedViewCB.java index 6538388f4a..5c6fe062e5 100644 --- a/src/main/java/io/bitsquare/gui/CachedCodeBehind.java +++ b/src/main/java/io/bitsquare/gui/CachedViewCB.java @@ -12,10 +12,10 @@ import org.slf4j.LoggerFactory; * active and awake it at reactivation. * * @param The PresentationModel used in that class */ -public class CachedCodeBehind extends CodeBehind { - private static final Logger log = LoggerFactory.getLogger(CachedCodeBehind.class); +public class CachedViewCB extends ViewCB { + private static final Logger log = LoggerFactory.getLogger(CachedViewCB.class); - public CachedCodeBehind(T presentationModel) { + public CachedViewCB(T presentationModel) { super(presentationModel); } @@ -47,7 +47,7 @@ public class CachedCodeBehind extends CodeBehind */ public void activate() { log.trace("Lifecycle: activate " + this.getClass().getSimpleName()); - if (childController instanceof CachedCodeBehind) ((CachedCodeBehind) childController).activate(); + if (childController instanceof CachedViewCB) ((CachedViewCB) childController).activate(); presentationModel.activate(); } @@ -57,7 +57,7 @@ public class CachedCodeBehind extends CodeBehind */ public void deactivate() { log.trace("Lifecycle: deactivate " + this.getClass().getSimpleName()); - if (childController instanceof CachedCodeBehind) ((CachedCodeBehind) childController).deactivate(); + if (childController instanceof CachedViewCB) ((CachedViewCB) childController).deactivate(); presentationModel.deactivate(); } diff --git a/src/main/java/io/bitsquare/gui/CodeBehind.java b/src/main/java/io/bitsquare/gui/ViewCB.java similarity index 89% rename from src/main/java/io/bitsquare/gui/CodeBehind.java rename to src/main/java/io/bitsquare/gui/ViewCB.java index 74330f994c..11ffbf2904 100644 --- a/src/main/java/io/bitsquare/gui/CodeBehind.java +++ b/src/main/java/io/bitsquare/gui/ViewCB.java @@ -16,8 +16,8 @@ import org.slf4j.LoggerFactory; * * @param The PresentationModel used in that class */ -public class CodeBehind implements Initializable { - private static final Logger log = LoggerFactory.getLogger(CodeBehind.class); +public class ViewCB implements Initializable { + private static final Logger log = LoggerFactory.getLogger(ViewCB.class); protected T presentationModel; //TODO Initializable has to be changed to CodeBehind when all UIs are updated @@ -26,11 +26,11 @@ public class CodeBehind implements Initializable { protected Initializable parentController; @FXML protected Parent root; - public CodeBehind(T presentationModel) { + public ViewCB(T presentationModel) { this.presentationModel = presentationModel; } - public CodeBehind() { + public ViewCB() { } /** @@ -61,7 +61,7 @@ public class CodeBehind implements Initializable { public void terminate() { log.trace("Lifecycle: terminate " + this.getClass().getSimpleName()); if (childController != null) - ((CodeBehind) childController).terminate(); + ((ViewCB) childController).terminate(); presentationModel.deactivate(); presentationModel.terminate(); diff --git a/src/main/java/io/bitsquare/gui/ViewController.java b/src/main/java/io/bitsquare/gui/ViewController.java index 27ed4d019c..1ecac09ab8 100644 --- a/src/main/java/io/bitsquare/gui/ViewController.java +++ b/src/main/java/io/bitsquare/gui/ViewController.java @@ -67,8 +67,8 @@ public abstract class ViewController implements Initializable { if (childController != null) { if (childController instanceof ViewController) ((ViewController) childController).terminate(); - else if (childController instanceof CodeBehind) - ((CodeBehind) childController).terminate(); + else if (childController instanceof ViewCB) + ((ViewCB) childController).terminate(); } } diff --git a/src/main/java/io/bitsquare/gui/components/ConfidenceDisplay.java b/src/main/java/io/bitsquare/gui/components/ConfidenceDisplay.java index 16b76ca759..a9c29d06e8 100644 --- a/src/main/java/io/bitsquare/gui/components/ConfidenceDisplay.java +++ b/src/main/java/io/bitsquare/gui/components/ConfidenceDisplay.java @@ -35,7 +35,8 @@ import javafx.scene.control.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -// TODO refactor +// TODO in new design not used anymore +@Deprecated public class ConfidenceDisplay { private static final Logger log = LoggerFactory.getLogger(ConfidenceDisplay.class); diff --git a/src/main/java/io/bitsquare/gui/components/HSpacer.java b/src/main/java/io/bitsquare/gui/components/HSpacer.java index bedd20dfcb..61ff46e44a 100644 --- a/src/main/java/io/bitsquare/gui/components/HSpacer.java +++ b/src/main/java/io/bitsquare/gui/components/HSpacer.java @@ -20,6 +20,8 @@ package io.bitsquare.gui.components; import javafx.scene.layout.*; +// TODO remove and use margin or padding instead +@Deprecated public class HSpacer extends Pane { public HSpacer() { } diff --git a/src/main/java/io/bitsquare/gui/components/VSpacer.java b/src/main/java/io/bitsquare/gui/components/VSpacer.java index 6832e1ed67..cfb12d8d63 100644 --- a/src/main/java/io/bitsquare/gui/components/VSpacer.java +++ b/src/main/java/io/bitsquare/gui/components/VSpacer.java @@ -20,6 +20,8 @@ package io.bitsquare.gui.components; import javafx.scene.layout.*; +// TODO remove and use margin or padding instead +@Deprecated public class VSpacer extends Pane { public VSpacer() { } diff --git a/src/main/java/io/bitsquare/gui/main/MainViewCB.java b/src/main/java/io/bitsquare/gui/main/MainViewCB.java index 03701ba4ee..9ad4367352 100644 --- a/src/main/java/io/bitsquare/gui/main/MainViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/MainViewCB.java @@ -19,10 +19,10 @@ package io.bitsquare.gui.main; import io.bitsquare.bank.BankAccount; import io.bitsquare.gui.AWTSystemTray; -import io.bitsquare.gui.CodeBehind; import io.bitsquare.gui.NavigationController; import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.OverlayController; +import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.components.NetworkSyncPane; import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.util.ImageUtil; @@ -51,7 +51,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class MainViewCB extends CodeBehind { +public class MainViewCB extends ViewCB { private static final Logger log = LoggerFactory.getLogger(MainViewCB.class); private NavigationController navigationController; @@ -185,8 +185,8 @@ public class MainViewCB extends CodeBehind { contentContainer.getChildren().setAll(view); childController = loader.getController(); - if (childController instanceof CodeBehind) - ((CodeBehind) childController).setParentController(this); + if (childController instanceof ViewCB) + ((ViewCB) childController).setParentController(this); presentationModel.setSelectedNavigationItem(navigationItem); return childController; diff --git a/src/main/java/io/bitsquare/gui/main/account/AccountViewCB.java b/src/main/java/io/bitsquare/gui/main/account/AccountViewCB.java index 29b536da14..3c6f8b2ae3 100644 --- a/src/main/java/io/bitsquare/gui/main/account/AccountViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/AccountViewCB.java @@ -17,10 +17,10 @@ package io.bitsquare.gui.main.account; -import io.bitsquare.gui.CachedCodeBehind; -import io.bitsquare.gui.CodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.NavigationController; import io.bitsquare.gui.NavigationItem; +import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.main.account.setup.AccountSetupViewCB; import io.bitsquare.util.BSFXMLLoader; @@ -39,7 +39,7 @@ import javafx.scene.layout.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class AccountViewCB extends CachedCodeBehind { +public class AccountViewCB extends CachedViewCB { private static final Logger log = LoggerFactory.getLogger(AccountViewCB.class); @@ -110,7 +110,7 @@ public class AccountViewCB extends CachedCodeBehind { Pane view = loader.load(); tab.setContent(view); Initializable childController = loader.getController(); - ((CodeBehind) childController).setParentController(this); + ((ViewCB) childController).setParentController(this); if (childController instanceof AccountSetupViewCB) ((AccountSetupViewCB) childController).setRemoveCallBack(() -> { diff --git a/src/main/java/io/bitsquare/gui/main/account/MultiStepNavigation.java b/src/main/java/io/bitsquare/gui/main/account/MultiStepNavigation.java index 9b055164f6..21bd775662 100644 --- a/src/main/java/io/bitsquare/gui/main/account/MultiStepNavigation.java +++ b/src/main/java/io/bitsquare/gui/main/account/MultiStepNavigation.java @@ -17,9 +17,9 @@ package io.bitsquare.gui.main.account; -import io.bitsquare.gui.CodeBehind; import io.bitsquare.gui.PresentationModel; +import io.bitsquare.gui.ViewCB; public interface MultiStepNavigation { - void nextStep(CodeBehind useSettingsContext); + void nextStep(ViewCB useSettingsContext); } diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordPM.java b/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordPM.java index ebfe2605bf..beae6d85c6 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordPM.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordPM.java @@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory; public class ChangePasswordPM extends PresentationModel { private static final Logger log = LoggerFactory.getLogger(ChangePasswordPM.class); - private final PasswordValidator passwordValidator = new PasswordValidator(); + private final PasswordValidator passwordValidator; private String errorMessage; @@ -48,8 +48,9 @@ public class ChangePasswordPM extends PresentationModel { /////////////////////////////////////////////////////////////////////////////////////////// @Inject - private ChangePasswordPM(ChangePasswordModel model) { + private ChangePasswordPM(ChangePasswordModel model, PasswordValidator passwordValidator) { super(model); + this.passwordValidator = passwordValidator; passwordField.addListener((ov) -> saveButtonDisabled.set(!validate())); repeatedPasswordField.addListener((ov) -> saveButtonDisabled.set(!validate())); diff --git a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewCB.java b/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewCB.java index 6964d0df65..c901b32b60 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/changepassword/ChangePasswordViewCB.java @@ -17,7 +17,7 @@ package io.bitsquare.gui.main.account.content.changepassword; -import io.bitsquare.gui.CachedCodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.main.account.MultiStepNavigation; import io.bitsquare.gui.main.account.content.ContextAware; import io.bitsquare.gui.main.help.Help; @@ -36,7 +36,7 @@ import javafx.scene.layout.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ChangePasswordViewCB extends CachedCodeBehind implements ContextAware { +public class ChangePasswordViewCB extends CachedViewCB implements ContextAware { private static final Logger log = LoggerFactory.getLogger(ChangePasswordViewCB.class); diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountPm.java b/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountPm.java index 723c513eae..eb568c47b2 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountPm.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountPm.java @@ -46,7 +46,7 @@ import org.slf4j.LoggerFactory; public class FiatAccountPm extends PresentationModel { private static final Logger log = LoggerFactory.getLogger(FiatAccountPm.class); - private final BankAccountNumberValidator validator = new BankAccountNumberValidator(); + private final BankAccountNumberValidator bankAccountNumberValidator; public final StringProperty title = new SimpleStringProperty(); public final StringProperty holderName = new SimpleStringProperty(); @@ -67,8 +67,9 @@ public class FiatAccountPm extends PresentationModel { /////////////////////////////////////////////////////////////////////////////////////////// @Inject - private FiatAccountPm(FiatAccountModel model) { + private FiatAccountPm(FiatAccountModel model, BankAccountNumberValidator bankAccountNumberValidator) { super(model); + this.bankAccountNumberValidator = bankAccountNumberValidator; } @@ -264,8 +265,8 @@ public class FiatAccountPm extends PresentationModel { return model.getAllCountriesFor(selectedRegion); } - public BankAccountNumberValidator getValidator() { - return validator; + public BankAccountNumberValidator getBankAccountNumberValidator() { + return bankAccountNumberValidator; } @@ -294,13 +295,13 @@ public class FiatAccountPm extends PresentationModel { /////////////////////////////////////////////////////////////////////////////////////////// private InputValidator.ValidationResult validateInput() { - InputValidator.ValidationResult result = validator.validate(model.title.get()); + InputValidator.ValidationResult result = bankAccountNumberValidator.validate(model.title.get()); if (result.isValid) { - result = validator.validate(model.holderName.get()); + result = bankAccountNumberValidator.validate(model.holderName.get()); if (result.isValid) { - result = validator.validate(model.primaryID.get()); + result = bankAccountNumberValidator.validate(model.primaryID.get()); if (result.isValid) { - result = validator.validate(model.secondaryID.get()); + result = bankAccountNumberValidator.validate(model.secondaryID.get()); if (result.isValid) { if (model.currency.get() == null) result = new InputValidator.ValidationResult(false, diff --git a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewCB.java b/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewCB.java index 8e34f4d598..94c286effd 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/fiat/FiatAccountViewCB.java @@ -19,7 +19,7 @@ package io.bitsquare.gui.main.account.content.fiat; import io.bitsquare.bank.BankAccount; import io.bitsquare.bank.BankAccountType; -import io.bitsquare.gui.CachedCodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.components.InputTextField; import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.main.account.MultiStepNavigation; @@ -52,7 +52,7 @@ import org.slf4j.LoggerFactory; import static javafx.beans.binding.Bindings.createBooleanBinding; -public class FiatAccountViewCB extends CachedCodeBehind implements ContextAware { +public class FiatAccountViewCB extends CachedViewCB implements ContextAware { private static final Logger log = LoggerFactory.getLogger(FiatAccountViewCB.class); @@ -94,10 +94,10 @@ public class FiatAccountViewCB extends CachedCodeBehind implement regionComboBox.setConverter(presentationModel.getRegionConverter()); countryComboBox.setConverter(presentationModel.getCountryConverter()); - titleTextField.setValidator(presentationModel.getValidator()); - holderNameTextField.setValidator(presentationModel.getValidator()); - primaryIDTextField.setValidator(presentationModel.getValidator()); - secondaryIDTextField.setValidator(presentationModel.getValidator()); + titleTextField.setValidator(presentationModel.getBankAccountNumberValidator()); + holderNameTextField.setValidator(presentationModel.getBankAccountNumberValidator()); + primaryIDTextField.setValidator(presentationModel.getBankAccountNumberValidator()); + secondaryIDTextField.setValidator(presentationModel.getBankAccountNumberValidator()); } @Override diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordPM.java b/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordPM.java index 8a729ad1bb..ae887b41d5 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordPM.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordPM.java @@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory; public class PasswordPM extends PresentationModel { private static final Logger log = LoggerFactory.getLogger(PasswordPM.class); - private final PasswordValidator passwordValidator = new PasswordValidator(); + private final PasswordValidator passwordValidator; private String errorMessage; @@ -48,8 +48,9 @@ public class PasswordPM extends PresentationModel { /////////////////////////////////////////////////////////////////////////////////////////// @Inject - private PasswordPM(PasswordModel model) { + private PasswordPM(PasswordModel model, PasswordValidator passwordValidator) { super(model); + this.passwordValidator = passwordValidator; passwordField.addListener((ov) -> saveButtonDisabled.set(!validate())); repeatedPasswordField.addListener((ov) -> saveButtonDisabled.set(!validate())); diff --git a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewCB.java b/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewCB.java index a2f02b2d2d..23ffa4a837 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/password/PasswordViewCB.java @@ -17,7 +17,7 @@ package io.bitsquare.gui.main.account.content.password; -import io.bitsquare.gui.CachedCodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.main.account.MultiStepNavigation; import io.bitsquare.gui.main.account.content.ContextAware; import io.bitsquare.gui.main.help.Help; @@ -36,7 +36,7 @@ import javafx.scene.layout.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class PasswordViewCB extends CachedCodeBehind implements ContextAware { +public class PasswordViewCB extends CachedViewCB implements ContextAware { private static final Logger log = LoggerFactory.getLogger(PasswordViewCB.class); diff --git a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewCB.java b/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewCB.java index ff94d8d600..70d475a9ea 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/registration/RegistrationViewCB.java @@ -17,7 +17,7 @@ package io.bitsquare.gui.main.account.content.registration; -import io.bitsquare.gui.CachedCodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.OverlayController; import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.components.btc.AddressTextField; @@ -48,7 +48,7 @@ import org.controlsfx.dialog.Dialog; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class RegistrationViewCB extends CachedCodeBehind implements ContextAware { +public class RegistrationViewCB extends CachedViewCB implements ContextAware { private static final Logger log = LoggerFactory.getLogger(RegistrationViewCB.class); diff --git a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewCB.java b/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewCB.java index 21b2476624..82894c0941 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/restrictions/RestrictionsViewCB.java @@ -19,7 +19,7 @@ package io.bitsquare.gui.main.account.content.restrictions; import io.bitsquare.BitSquare; import io.bitsquare.arbitrator.Arbitrator; -import io.bitsquare.gui.CachedCodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.main.account.MultiStepNavigation; import io.bitsquare.gui.main.account.content.ContextAware; @@ -53,7 +53,7 @@ import javafx.util.StringConverter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class RestrictionsViewCB extends CachedCodeBehind implements ContextAware { +public class RestrictionsViewCB extends CachedViewCB implements ContextAware { private static final Logger log = LoggerFactory.getLogger(RestrictionsViewCB.class); diff --git a/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewCB.java b/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewCB.java index b25fa1b18b..a3c46894a3 100644 --- a/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsViewCB.java @@ -17,7 +17,7 @@ package io.bitsquare.gui.main.account.content.seedwords; -import io.bitsquare.gui.CachedCodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.main.account.MultiStepNavigation; import io.bitsquare.gui.main.account.content.ContextAware; import io.bitsquare.gui.main.help.Help; @@ -36,7 +36,7 @@ import javafx.scene.layout.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class SeedWordsViewCB extends CachedCodeBehind implements ContextAware { +public class SeedWordsViewCB extends CachedViewCB implements ContextAware { private static final Logger log = LoggerFactory.getLogger(SeedWordsViewCB.class); diff --git a/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsViewCB.java b/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsViewCB.java index 54df35e240..ce7b163f1e 100644 --- a/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsViewCB.java @@ -17,11 +17,11 @@ package io.bitsquare.gui.main.account.settings; -import io.bitsquare.gui.CachedCodeBehind; -import io.bitsquare.gui.CodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.NavigationController; import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.PresentationModel; +import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.main.account.content.ContextAware; import io.bitsquare.util.BSFXMLLoader; @@ -46,7 +46,7 @@ import de.jensd.fx.fontawesome.AwesomeIcon; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class AccountSettingsViewCB extends CachedCodeBehind { +public class AccountSettingsViewCB extends CachedViewCB { private static final Logger log = LoggerFactory.getLogger(AccountSettingsViewCB.class); @@ -160,7 +160,7 @@ public class AccountSettingsViewCB extends CachedCodeBehind { final Pane view = loader.load(); content.getChildren().setAll(view); childController = loader.getController(); - ((CodeBehind) childController).setParentController(this); + ((ViewCB) childController).setParentController(this); ((ContextAware) childController).useSettingsContext(true); return childController; } catch (IOException e) { @@ -174,7 +174,7 @@ public class AccountSettingsViewCB extends CachedCodeBehind { class MenuItem extends ToggleButton { private static final Logger log = LoggerFactory.getLogger(MenuItem.class); - private CodeBehind childController; + private ViewCB childController; private final AccountSettingsViewCB parentCB; private final Parent content; diff --git a/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupViewCB.java b/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupViewCB.java index 73d1dc2e5e..de73bf972d 100644 --- a/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/account/setup/AccountSetupViewCB.java @@ -17,10 +17,10 @@ package io.bitsquare.gui.main.account.setup; -import io.bitsquare.gui.CachedCodeBehind; -import io.bitsquare.gui.CodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.PresentationModel; +import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.main.account.MultiStepNavigation; import io.bitsquare.gui.main.account.content.ContextAware; import io.bitsquare.gui.main.account.content.fiat.FiatAccountViewCB; @@ -51,7 +51,7 @@ import javafx.scene.layout.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class AccountSetupViewCB extends CachedCodeBehind implements MultiStepNavigation { +public class AccountSetupViewCB extends CachedViewCB implements MultiStepNavigation { private static final Logger log = LoggerFactory.getLogger(AccountSetupViewCB.class); @@ -122,7 +122,7 @@ public class AccountSetupViewCB extends CachedCodeBehind impleme // UI handlers /////////////////////////////////////////////////////////////////////////////////////////// - public void nextStep(CodeBehind childView) { + public void nextStep(ViewCB childView) { if (childView instanceof SeedWordsViewCB) { seedWords.onCompleted(); childController = password.show(); @@ -170,7 +170,7 @@ public class AccountSetupViewCB extends CachedCodeBehind impleme final Pane view = loader.load(); content.getChildren().setAll(view); childController = loader.getController(); - ((CodeBehind) childController).setParentController(this); + ((ViewCB) childController).setParentController(this); ((ContextAware) childController).useSettingsContext(false); return childController; } catch (IOException e) { @@ -184,7 +184,7 @@ public class AccountSetupViewCB extends CachedCodeBehind impleme class WizardItem extends HBox { private static final Logger log = LoggerFactory.getLogger(WizardItem.class); - private CodeBehind childController; + private ViewCB childController; private final ImageView imageView; private final Label titleLabel; @@ -232,7 +232,7 @@ class WizardItem extends HBox { getChildren().addAll(imageView, vBox); } - CodeBehind show() { + ViewCB show() { parentCB.loadView(navigationItem); setId("wizard-item-background-active"); imageView.setImage(ImageUtil.getIconImage(ImageUtil.ARROW_BLUE)); diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferPM.java b/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferPM.java index eb0abb1fe3..6059c5752a 100644 --- a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferPM.java +++ b/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferPM.java @@ -52,8 +52,8 @@ import static javafx.beans.binding.Bindings.createStringBinding; public class CreateOfferPM extends PresentationModel { private static final Logger log = LoggerFactory.getLogger(CreateOfferPM.class); - private final BtcValidator btcValidator = new BtcValidator(); - private final FiatValidator fiatValidator = new FiatValidator(); + private final BtcValidator btcValidator; + private final FiatValidator fiatValidator; public final StringProperty amount = new SimpleStringProperty(); public final StringProperty minAmount = new SimpleStringProperty(); @@ -102,8 +102,11 @@ public class CreateOfferPM extends PresentationModel { // non private for testing @Inject - CreateOfferPM(CreateOfferModel model) { + CreateOfferPM(CreateOfferModel model, FiatValidator fiatValidator, BtcValidator btcValidator) { super(model); + + this.fiatValidator = fiatValidator; + this.btcValidator = btcValidator; } diff --git a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewCB.java b/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewCB.java index b5171f5238..2979874151 100644 --- a/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferViewCB.java @@ -17,7 +17,7 @@ package io.bitsquare.gui.main.trade.createoffer; -import io.bitsquare.gui.CachedCodeBehind; +import io.bitsquare.gui.CachedViewCB; import io.bitsquare.gui.NavigationController; import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.OverlayController; @@ -70,7 +70,7 @@ import static javafx.beans.binding.Bindings.createStringBinding; // TODO Implement other positioning method in InoutTextField to display it over the field instead of right side // priceAmountHBox is too large after redesign as to be used as layoutReference. -public class CreateOfferViewCB extends CachedCodeBehind { +public class CreateOfferViewCB extends CachedViewCB { private static final Logger log = LoggerFactory.getLogger(CreateOfferViewCB.class); private NavigationController navigationController; diff --git a/src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBookController.java b/src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBookController.java index 45788cca25..8a2ab320b8 100644 --- a/src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBookController.java +++ b/src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBookController.java @@ -20,10 +20,10 @@ package io.bitsquare.gui.main.trade.orderbook; import io.bitsquare.bank.BankAccountType; import io.bitsquare.btc.WalletFacade; import io.bitsquare.gui.CachedViewController; -import io.bitsquare.gui.CodeBehind; import io.bitsquare.gui.NavigationController; import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.OverlayController; +import io.bitsquare.gui.ViewCB; import io.bitsquare.gui.ViewController; import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.main.trade.OrderBookFilter; @@ -246,8 +246,8 @@ public class OrderBookController extends CachedViewController { if (parentController instanceof ViewController) nextController = ((ViewController) parentController).loadViewAndGetChildController(NavigationItem .CREATE_OFFER); - else if (parentController instanceof CodeBehind) - nextController = ((CodeBehind) parentController).loadView(NavigationItem + else if (parentController instanceof ViewCB) + nextController = ((ViewCB) parentController).loadView(NavigationItem .CREATE_OFFER); } @@ -327,8 +327,8 @@ public class OrderBookController extends CachedViewController { takeOfferController = (TakeOfferController) ((ViewController) parentController) .loadViewAndGetChildController(NavigationItem .TAKE_OFFER); - else if (parentController instanceof CodeBehind) - takeOfferController = (TakeOfferController) ((CodeBehind) parentController) + else if (parentController instanceof ViewCB) + takeOfferController = (TakeOfferController) ((ViewCB) parentController) .loadView(NavigationItem .TAKE_OFFER); } diff --git a/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java b/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java index 2cce93bde8..252c716b4f 100644 --- a/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java +++ b/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java @@ -50,15 +50,18 @@ public final class FiatValidator extends NumberValidator { @Inject public FiatValidator(User user) { - if (user.currentBankAccountProperty().get() == null) - setFiatCurrencyCode(Currency.getInstance(Locale.getDefault()).getCurrencyCode()); - else - setFiatCurrencyCode(user.currentBankAccountProperty().get().getCurrency().getCurrencyCode()); + if (user != null) { + if (user.currentBankAccountProperty().get() == null) + setFiatCurrencyCode(Currency.getInstance(Locale.getDefault()).getCurrencyCode()); + else + setFiatCurrencyCode(user.currentBankAccountProperty().get().getCurrency().getCurrencyCode()); - user.currentBankAccountProperty().addListener((ov, oldValue, newValue) -> - setFiatCurrencyCode(newValue.getCurrency().getCurrencyCode())); + user.currentBankAccountProperty().addListener((ov, oldValue, newValue) -> + setFiatCurrencyCode(newValue.getCurrency().getCurrencyCode())); + } } + /////////////////////////////////////////////////////////////////////////////////////////// // Public methods /////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/main/java/io/bitsquare/trade/TradeManager.java b/src/main/java/io/bitsquare/trade/TradeManager.java index 45186ca53e..42cf664d08 100644 --- a/src/main/java/io/bitsquare/trade/TradeManager.java +++ b/src/main/java/io/bitsquare/trade/TradeManager.java @@ -94,6 +94,7 @@ public class TradeManager { private final Map offers; private final Map trades; + // TODO There might be multiple pending trades private Trade pendingTrade; diff --git a/src/main/java/io/bitsquare/util/BSFXMLLoader.java b/src/main/java/io/bitsquare/util/BSFXMLLoader.java index e343aa00c9..030f1b2280 100644 --- a/src/main/java/io/bitsquare/util/BSFXMLLoader.java +++ b/src/main/java/io/bitsquare/util/BSFXMLLoader.java @@ -55,6 +55,8 @@ public class BSFXMLLoader { this(url, true); } + // TODO check relationship with CachedViewCB -> derive caching strategy, but there are some special cases where + // we need an override, as caching is done manually in the client class public BSFXMLLoader(URL url, boolean useCaching) { this.url = url; diff --git a/src/main/java/io/bitsquare/util/Utilities.java b/src/main/java/io/bitsquare/util/Utilities.java index 3f9fff0f8b..5d59d1e299 100644 --- a/src/main/java/io/bitsquare/util/Utilities.java +++ b/src/main/java/io/bitsquare/util/Utilities.java @@ -39,6 +39,9 @@ import javafx.animation.AnimationTimer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +/** + * General utilities + */ public class Utilities { private static final Logger log = LoggerFactory.getLogger(Utilities.class); private static long lastTimeStamp = System.currentTimeMillis(); diff --git a/src/main/java/io/bitsquare/util/Validator.java b/src/main/java/io/bitsquare/util/Validator.java index d287a49ce0..adbcf4867d 100644 --- a/src/main/java/io/bitsquare/util/Validator.java +++ b/src/main/java/io/bitsquare/util/Validator.java @@ -24,6 +24,9 @@ import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.*; +/** + * Utility class for validating domain data. + */ public class Validator { private static final Logger log = LoggerFactory.getLogger(Validator.class); diff --git a/src/main/java/lighthouse/files/AppDirectory.java b/src/main/java/lighthouse/files/AppDirectory.java index 16365ba973..e5ff6138d3 100644 --- a/src/main/java/lighthouse/files/AppDirectory.java +++ b/src/main/java/lighthouse/files/AppDirectory.java @@ -8,7 +8,7 @@ import java.nio.file.Paths; import static com.google.common.base.Preconditions.checkNotNull; -// TODO update to open source file when its released +// TODO update to open source file when its released, check licence issues /** * Manages the directory where the app stores all its files. diff --git a/src/test/java/io/bitsquare/BitSquareTestSuite.java b/src/test/java/io/bitsquare/BitSquareTestSuite.java index e254c1e106..bcb64153a3 100644 --- a/src/test/java/io/bitsquare/BitSquareTestSuite.java +++ b/src/test/java/io/bitsquare/BitSquareTestSuite.java @@ -22,8 +22,8 @@ import io.bitsquare.gui.main.trade.createoffer.CreateOfferPMTest; import io.bitsquare.gui.util.BSFormatterTest; import io.bitsquare.gui.util.BitSquareConverterTest; import io.bitsquare.gui.util.BitSquareNumberValidatorTest; -import io.bitsquare.gui.util.BtcValidatorTest; -import io.bitsquare.gui.util.FiatValidatorTest; +import io.bitsquare.gui.util.validation.BtcValidatorTest; +import io.bitsquare.gui.util.validation.FiatValidatorTest; import io.bitsquare.msg.P2PNodeTest; import org.junit.runner.RunWith; diff --git a/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferPMTest.java b/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferPMTest.java index 726ead9399..55587b8f1a 100644 --- a/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferPMTest.java +++ b/src/test/java/io/bitsquare/gui/main/trade/createoffer/CreateOfferPMTest.java @@ -19,6 +19,8 @@ package io.bitsquare.gui.main.trade.createoffer; import io.bitsquare.bank.BankAccountType; import io.bitsquare.gui.util.BSFormatter; +import io.bitsquare.gui.util.validation.BtcValidator; +import io.bitsquare.gui.util.validation.FiatValidator; import io.bitsquare.locale.Country; import com.google.bitcoin.core.Coin; @@ -47,7 +49,7 @@ public class CreateOfferPMTest { BSFormatter.setLocale(Locale.US); BSFormatter.setFiatCurrencyCode("USD"); - presenter = new CreateOfferPM(model); + presenter = new CreateOfferPM(model, new FiatValidator(null), new BtcValidator()); presenter.initialized(); } diff --git a/src/test/java/io/bitsquare/gui/util/BtcValidatorTest.java b/src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java similarity index 96% rename from src/test/java/io/bitsquare/gui/util/BtcValidatorTest.java rename to src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java index 346c207772..b4bb0e8a69 100644 --- a/src/test/java/io/bitsquare/gui/util/BtcValidatorTest.java +++ b/src/test/java/io/bitsquare/gui/util/validation/BtcValidatorTest.java @@ -15,9 +15,7 @@ * along with Bitsquare. If not, see . */ -package io.bitsquare.gui.util; - -import io.bitsquare.gui.util.validation.BtcValidator; +package io.bitsquare.gui.util.validation; import com.google.bitcoin.core.Coin; import com.google.bitcoin.core.NetworkParameters; diff --git a/src/test/java/io/bitsquare/gui/util/FiatValidatorTest.java b/src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java similarity index 93% rename from src/test/java/io/bitsquare/gui/util/FiatValidatorTest.java rename to src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java index f1801798e6..78f9984e64 100644 --- a/src/test/java/io/bitsquare/gui/util/FiatValidatorTest.java +++ b/src/test/java/io/bitsquare/gui/util/validation/FiatValidatorTest.java @@ -15,10 +15,7 @@ * along with Bitsquare. If not, see . */ -package io.bitsquare.gui.util; - -import io.bitsquare.gui.util.validation.FiatValidator; -import io.bitsquare.gui.util.validation.NumberValidator; +package io.bitsquare.gui.util.validation; import org.junit.Test; @@ -27,7 +24,7 @@ import static org.junit.Assert.*; public class FiatValidatorTest { @Test public void testValidate() { - FiatValidator validator = new FiatValidator(); + FiatValidator validator = new FiatValidator(null); NumberValidator.ValidationResult validationResult;