From 892e831b8d4d66daef18186110dc13acfa326673 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Thu, 11 Sep 2014 02:06:00 +0200 Subject: [PATCH] Resolve more cyclic package dependencies --- src/main/java/io/bitsquare/BitSquare.java | 2 +- .../java/io/bitsquare/di/BitSquareModule.java | 6 +++++- .../{util => gui}/AWTSystemTray.java | 2 +- .../io/bitsquare/gui/main/MainViewCB.java | 2 +- .../pending/PendingTradeController.java | 2 +- .../main/trade/createoffer/CreateOfferPM.java | 2 +- .../trade/createoffer/CreateOfferViewCB.java | 2 +- .../main}/trade/orderbook/OrderBook.java | 5 ++--- .../trade/orderbook/OrderBookController.java | 2 -- .../trade/orderbook/OrderBookFilter.java | 3 ++- .../io/bitsquare/gui/util/BSFormatter.java | 16 +++++++++++++++- .../gui/util/validation/FiatValidator.java | 19 +++++++++++++++++++ .../java/io/bitsquare/trade/TradeManager.java | 5 ++--- src/main/java/io/bitsquare/user/User.java | 11 ----------- 14 files changed, 51 insertions(+), 28 deletions(-) rename src/main/java/io/bitsquare/{util => gui}/AWTSystemTray.java (99%) rename src/main/java/io/bitsquare/{ => gui/main}/trade/orderbook/OrderBook.java (98%) rename src/main/java/io/bitsquare/{ => gui/main}/trade/orderbook/OrderBookFilter.java (95%) diff --git a/src/main/java/io/bitsquare/BitSquare.java b/src/main/java/io/bitsquare/BitSquare.java index 098e4a52a5..397cf254d3 100644 --- a/src/main/java/io/bitsquare/BitSquare.java +++ b/src/main/java/io/bitsquare/BitSquare.java @@ -19,6 +19,7 @@ package io.bitsquare; import io.bitsquare.btc.WalletFacade; import io.bitsquare.di.BitSquareModule; +import io.bitsquare.gui.AWTSystemTray; import io.bitsquare.gui.NavigationItem; import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.util.Profiler; @@ -26,7 +27,6 @@ import io.bitsquare.msg.MessageFacade; import io.bitsquare.persistence.Persistence; import io.bitsquare.settings.Settings; import io.bitsquare.user.User; -import io.bitsquare.util.AWTSystemTray; import io.bitsquare.util.BSFXMLLoader; import com.google.common.base.Throwables; diff --git a/src/main/java/io/bitsquare/di/BitSquareModule.java b/src/main/java/io/bitsquare/di/BitSquareModule.java index a6973e990d..a3b0a9ba07 100644 --- a/src/main/java/io/bitsquare/di/BitSquareModule.java +++ b/src/main/java/io/bitsquare/di/BitSquareModule.java @@ -24,6 +24,9 @@ import io.bitsquare.btc.WalletFacade; import io.bitsquare.crypto.CryptoFacade; 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.FiatValidator; import io.bitsquare.msg.BootstrappedPeerFactory; import io.bitsquare.msg.MessageFacade; import io.bitsquare.msg.P2PNode; @@ -31,7 +34,6 @@ import io.bitsquare.msg.SeedNodeAddress; import io.bitsquare.persistence.Persistence; import io.bitsquare.settings.Settings; import io.bitsquare.trade.TradeManager; -import io.bitsquare.trade.orderbook.OrderBook; import io.bitsquare.user.User; import com.google.bitcoin.core.NetworkParameters; @@ -67,6 +69,8 @@ public class BitSquareModule extends AbstractModule { bind(TradeManager.class).asEagerSingleton(); bind(NavigationController.class).asEagerSingleton(); bind(OverlayController.class).asEagerSingleton(); + bind(BSFormatter.class).asEagerSingleton(); + bind(FiatValidator.class).asEagerSingleton(); //bind(String.class).annotatedWith(Names.named("networkType")).toInstance(WalletFacade.MAIN_NET); diff --git a/src/main/java/io/bitsquare/util/AWTSystemTray.java b/src/main/java/io/bitsquare/gui/AWTSystemTray.java similarity index 99% rename from src/main/java/io/bitsquare/util/AWTSystemTray.java rename to src/main/java/io/bitsquare/gui/AWTSystemTray.java index 5c7c8c2159..80a49e6ac9 100644 --- a/src/main/java/io/bitsquare/util/AWTSystemTray.java +++ b/src/main/java/io/bitsquare/gui/AWTSystemTray.java @@ -15,7 +15,7 @@ * along with Bitsquare. If not, see . */ -package io.bitsquare.util; +package io.bitsquare.gui; import io.bitsquare.BitSquare; diff --git a/src/main/java/io/bitsquare/gui/main/MainViewCB.java b/src/main/java/io/bitsquare/gui/main/MainViewCB.java index 1abd938f9d..03701ba4ee 100644 --- a/src/main/java/io/bitsquare/gui/main/MainViewCB.java +++ b/src/main/java/io/bitsquare/gui/main/MainViewCB.java @@ -18,6 +18,7 @@ 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; @@ -27,7 +28,6 @@ import io.bitsquare.gui.components.Popups; import io.bitsquare.gui.util.ImageUtil; import io.bitsquare.gui.util.Profiler; import io.bitsquare.gui.util.Transitions; -import io.bitsquare.util.AWTSystemTray; import io.bitsquare.util.BSFXMLLoader; import java.io.IOException; diff --git a/src/main/java/io/bitsquare/gui/main/orders/pending/PendingTradeController.java b/src/main/java/io/bitsquare/gui/main/orders/pending/PendingTradeController.java index 98a62b2fa2..f93d17d314 100644 --- a/src/main/java/io/bitsquare/gui/main/orders/pending/PendingTradeController.java +++ b/src/main/java/io/bitsquare/gui/main/orders/pending/PendingTradeController.java @@ -21,6 +21,7 @@ import io.bitsquare.bank.BankAccount; import io.bitsquare.bank.BankAccountType; import io.bitsquare.btc.FeePolicy; import io.bitsquare.btc.WalletFacade; +import io.bitsquare.gui.AWTSystemTray; import io.bitsquare.gui.CachedViewController; import io.bitsquare.gui.components.ConfidenceDisplay; import io.bitsquare.gui.components.confidence.ConfidenceProgressIndicator; @@ -32,7 +33,6 @@ import io.bitsquare.trade.Direction; import io.bitsquare.trade.Offer; import io.bitsquare.trade.Trade; import io.bitsquare.trade.TradeManager; -import io.bitsquare.util.AWTSystemTray; import com.google.bitcoin.core.Coin; import com.google.bitcoin.core.ECKey; 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 71c59fd8b5..972487cff7 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 @@ -19,13 +19,13 @@ package io.bitsquare.gui.main.trade.createoffer; import io.bitsquare.btc.WalletFacade; import io.bitsquare.gui.PresentationModel; +import io.bitsquare.gui.main.trade.orderbook.OrderBookFilter; import io.bitsquare.gui.util.BSFormatter; import io.bitsquare.gui.util.validation.BtcValidator; import io.bitsquare.gui.util.validation.FiatValidator; import io.bitsquare.gui.util.validation.InputValidator; import io.bitsquare.locale.BSResources; import io.bitsquare.trade.Direction; -import io.bitsquare.trade.orderbook.OrderBookFilter; import com.google.bitcoin.core.Address; import com.google.bitcoin.core.Coin; 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 a01c8992ed..024a508063 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 @@ -28,9 +28,9 @@ import io.bitsquare.gui.components.btc.AddressTextField; import io.bitsquare.gui.components.btc.BalanceTextField; import io.bitsquare.gui.main.help.Help; import io.bitsquare.gui.main.help.HelpId; +import io.bitsquare.gui.main.trade.orderbook.OrderBookFilter; import io.bitsquare.gui.util.ImageUtil; import io.bitsquare.locale.BSResources; -import io.bitsquare.trade.orderbook.OrderBookFilter; import java.net.URL; diff --git a/src/main/java/io/bitsquare/trade/orderbook/OrderBook.java b/src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBook.java similarity index 98% rename from src/main/java/io/bitsquare/trade/orderbook/OrderBook.java rename to src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBook.java index e726b0fc8a..7641482d85 100644 --- a/src/main/java/io/bitsquare/trade/orderbook/OrderBook.java +++ b/src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBook.java @@ -15,11 +15,10 @@ * along with Bitsquare. If not, see . */ -package io.bitsquare.trade.orderbook; +package io.bitsquare.gui.main.trade.orderbook; import io.bitsquare.arbitrator.Arbitrator; import io.bitsquare.bank.BankAccount; -import io.bitsquare.gui.main.trade.orderbook.OrderBookListItem; import io.bitsquare.locale.Country; import io.bitsquare.locale.CurrencyUtil; import io.bitsquare.msg.MessageFacade; @@ -50,7 +49,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /* -TODO +TODO move to OrderBookModel when converted to new UI structure remove dependencies to tomp2p import net.tomp2p.peers.Number160; import net.tomp2p.storage.Data; 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 407d2edc68..60ddd5c4f9 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 @@ -38,8 +38,6 @@ import io.bitsquare.persistence.Persistence; import io.bitsquare.settings.Settings; import io.bitsquare.trade.Direction; import io.bitsquare.trade.Offer; -import io.bitsquare.trade.orderbook.OrderBook; -import io.bitsquare.trade.orderbook.OrderBookFilter; import io.bitsquare.user.User; import io.bitsquare.util.Utilities; diff --git a/src/main/java/io/bitsquare/trade/orderbook/OrderBookFilter.java b/src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBookFilter.java similarity index 95% rename from src/main/java/io/bitsquare/trade/orderbook/OrderBookFilter.java rename to src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBookFilter.java index 960d230679..d21061f6d5 100644 --- a/src/main/java/io/bitsquare/trade/orderbook/OrderBookFilter.java +++ b/src/main/java/io/bitsquare/gui/main/trade/orderbook/OrderBookFilter.java @@ -15,7 +15,7 @@ * along with Bitsquare. If not, see . */ -package io.bitsquare.trade.orderbook; +package io.bitsquare.gui.main.trade.orderbook; import io.bitsquare.trade.Direction; @@ -24,6 +24,7 @@ import com.google.bitcoin.utils.Fiat; import javafx.beans.property.SimpleBooleanProperty; +//TODO move to OrderBookModel when converted to new UI structure public class OrderBookFilter { // TODO use ObjectProperty instead private final SimpleBooleanProperty directionChangedProperty = new SimpleBooleanProperty(); diff --git a/src/main/java/io/bitsquare/gui/util/BSFormatter.java b/src/main/java/io/bitsquare/gui/util/BSFormatter.java index 55d4d03f4c..8291bb3d5d 100644 --- a/src/main/java/io/bitsquare/gui/util/BSFormatter.java +++ b/src/main/java/io/bitsquare/gui/util/BSFormatter.java @@ -21,6 +21,7 @@ import io.bitsquare.arbitrator.Arbitrator; import io.bitsquare.locale.BSResources; import io.bitsquare.locale.Country; import io.bitsquare.trade.Direction; +import io.bitsquare.user.User; import com.google.bitcoin.core.Coin; import com.google.bitcoin.utils.CoinFormat; @@ -37,12 +38,14 @@ import java.util.List; import java.util.Locale; import java.util.stream.Collectors; +import javax.inject.Inject; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static com.google.common.base.Preconditions.*; -//TODO a lot of old trash... need to cleanup... +//TODO convert to non static /** * Central point for formatting and input parsing. @@ -71,6 +74,17 @@ public class BSFormatter { private static String currencyCode = Currency.getInstance(Locale.getDefault()).getCurrencyCode(); + @Inject + public BSFormatter(User user) { + 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())); + } + /////////////////////////////////////////////////////////////////////////////////////////// // Config 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 8caaa52d0e..2cce93bde8 100644 --- a/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java +++ b/src/main/java/io/bitsquare/gui/util/validation/FiatValidator.java @@ -18,10 +18,18 @@ package io.bitsquare.gui.util.validation; import io.bitsquare.locale.BSResources; +import io.bitsquare.user.User; + +import java.util.Currency; +import java.util.Locale; + +import javax.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +//TODO convert to non static + /** * FiatNumberValidator for validating fiat values. *

@@ -40,6 +48,17 @@ public final class FiatValidator extends NumberValidator { FiatValidator.currencyCode = currencyCode; } + @Inject + public FiatValidator(User user) { + 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())); + } + /////////////////////////////////////////////////////////////////////////////////////////// // Public methods /////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/main/java/io/bitsquare/trade/TradeManager.java b/src/main/java/io/bitsquare/trade/TradeManager.java index 81b7696212..45186ca53e 100644 --- a/src/main/java/io/bitsquare/trade/TradeManager.java +++ b/src/main/java/io/bitsquare/trade/TradeManager.java @@ -20,7 +20,6 @@ package io.bitsquare.trade; import io.bitsquare.btc.BlockChainFacade; import io.bitsquare.btc.WalletFacade; import io.bitsquare.crypto.CryptoFacade; -import io.bitsquare.gui.components.Popups; import io.bitsquare.msg.MessageFacade; import io.bitsquare.msg.listeners.TakeOfferRequestListener; import io.bitsquare.persistence.Persistence; @@ -321,9 +320,9 @@ public class TradeManager { @Override public void onFault(Throwable throwable, BuyerAcceptsOfferProtocol.State state) { log.error("Error while executing trade process at state: " + state + " / " + throwable); - Popups.openErrorPopup("Error while executing trade process", + /* Popups.openErrorPopup("Error while executing trade process", "Error while executing trade process at state: " + state + " / " + - throwable); + throwable);*/ } @Override diff --git a/src/main/java/io/bitsquare/user/User.java b/src/main/java/io/bitsquare/user/User.java index e38311708d..fe0a4921c8 100644 --- a/src/main/java/io/bitsquare/user/User.java +++ b/src/main/java/io/bitsquare/user/User.java @@ -18,8 +18,6 @@ package io.bitsquare.user; import io.bitsquare.bank.BankAccount; -import io.bitsquare.gui.util.BSFormatter; -import io.bitsquare.gui.util.validation.FiatValidator; import io.bitsquare.util.DSAKeyUtil; import java.io.Serializable; @@ -28,9 +26,7 @@ import java.security.KeyPair; import java.security.PublicKey; import java.util.ArrayList; -import java.util.Currency; import java.util.List; -import java.util.Locale; import javax.annotation.Nullable; @@ -88,8 +84,6 @@ public class User implements Serializable { // TODO use separate thread. DSAKeyUtil.getKeyPair() runs in same thread now messageKeyPair = DSAKeyUtil.generateKeyPair(); } - - BSFormatter.setFiatCurrencyCode(Currency.getInstance(Locale.getDefault()).getCurrencyCode()); } public void setBankAccount(BankAccount bankAccount) { @@ -125,11 +119,6 @@ public class User implements Serializable { public void setCurrentBankAccount(@Nullable BankAccount bankAccount) { currentBankAccount.set(bankAccount); - - if (currentBankAccount.get() != null) { - BSFormatter.setFiatCurrencyCode(currentBankAccount.get().getCurrency().getCurrencyCode()); - FiatValidator.setFiatCurrencyCode(currentBankAccount.get().getCurrency().getCurrencyCode()); - } } ///////////////////////////////////////////////////////////////////////////////////////////