diff --git a/gui/src/main/java/io/bitsquare/gui/bitsquare.css b/gui/src/main/java/io/bitsquare/gui/bitsquare.css index 9ee2658bee..aa8732dce5 100644 --- a/gui/src/main/java/io/bitsquare/gui/bitsquare.css +++ b/gui/src/main/java/io/bitsquare/gui/bitsquare.css @@ -7,7 +7,7 @@ new blue: 0f87c3 new grey: 666666 00abff -orange webpage quotes : ff7f00 +orange web page quotes : ff7f00 main bg grey: dddddd @@ -679,7 +679,7 @@ textfield */ } /* copied form modena.css text-input */ -#flowpane-checkboxes-bg { +#flow-pane-checkboxes-bg { -fx-text-fill: -fx-text-inner-color; -fx-highlight-fill: derive(-fx-control-inner-background, -20%); -fx-highlight-text-fill: -fx-text-inner-color; @@ -691,7 +691,7 @@ textfield */ -fx-padding: 0.333333em 0.583em 0.333333em 0.583em; /* 4 7 4 7 */ } -#flowpane-checkboxes-non-editable-bg { +#flow-pane-checkboxes-non-editable-bg { -fx-text-fill: -fx-text-inner-color; -fx-highlight-fill: derive(-fx-control-inner-background, -20%); -fx-highlight-text-fill: -fx-text-inner-color; diff --git a/gui/src/main/java/io/bitsquare/gui/common/ViewFxException1.java b/gui/src/main/java/io/bitsquare/gui/common/ViewFxException1.java new file mode 100644 index 0000000000..fd36f7ab9b --- /dev/null +++ b/gui/src/main/java/io/bitsquare/gui/common/ViewFxException1.java @@ -0,0 +1,33 @@ +/* + * 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 . + */ + +package io.bitsquare.gui.common; + +import static java.lang.String.format; + +public class ViewFxException1 extends RuntimeException { + + private static final long serialVersionUID = -6266047448442595372L; + + public ViewFxException1(Throwable cause, String format, Object... args) { + super(format(format, args), cause); + } + + public ViewFxException1(String format, Object... args) { + super(format(format, args)); + } +} diff --git a/gui/src/main/java/io/bitsquare/gui/common/fxml/FxmlViewLoader.java b/gui/src/main/java/io/bitsquare/gui/common/fxml/FxmlViewLoader.java index f24fb86962..9508a238a3 100644 --- a/gui/src/main/java/io/bitsquare/gui/common/fxml/FxmlViewLoader.java +++ b/gui/src/main/java/io/bitsquare/gui/common/fxml/FxmlViewLoader.java @@ -17,7 +17,7 @@ package io.bitsquare.gui.common.fxml; -import io.bitsquare.gui.common.ViewfxException; +import io.bitsquare.gui.common.ViewFxException; import io.bitsquare.gui.common.view.FxmlView; import io.bitsquare.gui.common.view.View; import io.bitsquare.gui.common.view.ViewFactory; @@ -76,13 +76,13 @@ public class FxmlViewLoader implements ViewLoader { URL fxmlUrl = viewClass.getClassLoader().getResource(resolvedLocation); if (fxmlUrl == null) - throw new ViewfxException( + throw new ViewFxException( "Failed to load view class [%s] because FXML file at [%s] could not be loaded " + "as a classpath resource. Does it exist?", viewClass, specifiedLocation); return loadFromFxml(fxmlUrl); } catch (InstantiationException | IllegalAccessException ex) { - throw new ViewfxException(ex, "Failed to load view from class %s", viewClass); + throw new ViewFxException(ex, "Failed to load view from class %s", viewClass); } } @@ -94,14 +94,14 @@ public class FxmlViewLoader implements ViewLoader { loader.load(); Object controller = loader.getController(); if (controller == null) - throw new ViewfxException("Failed to load view from FXML file at [%s]. " + + throw new ViewFxException("Failed to load view from FXML file at [%s]. " + "Does it declare an fx:controller attribute?", fxmlUrl); if (!(controller instanceof View)) - throw new ViewfxException("Controller of type [%s] loaded from FXML file at [%s] " + + throw new ViewFxException("Controller of type [%s] loaded from FXML file at [%s] " + "does not implement [%s] as expected.", controller.getClass(), fxmlUrl, View.class); return (View) controller; } catch (IOException ex) { - throw new ViewfxException(ex, "Failed to load view from FXML file at [%s]", fxmlUrl); + throw new ViewFxException(ex, "Failed to load view from FXML file at [%s]", fxmlUrl); } } diff --git a/gui/src/main/java/io/bitsquare/gui/common/model/Activatable.java b/gui/src/main/java/io/bitsquare/gui/common/model/Activatable.java index 9d7a0afca0..18bf07cd02 100644 --- a/gui/src/main/java/io/bitsquare/gui/common/model/Activatable.java +++ b/gui/src/main/java/io/bitsquare/gui/common/model/Activatable.java @@ -24,7 +24,7 @@ public interface Activatable { void _deactivate(); - Activatable NOOP_INSTANCE = new Activatable() { + Activatable NO_OP_INSTANCE = new Activatable() { @Override public void _activate() { } diff --git a/gui/src/main/java/io/bitsquare/gui/common/view/ActivatableViewAndModel.java b/gui/src/main/java/io/bitsquare/gui/common/view/ActivatableViewAndModel.java index a45a63ae74..9bec294a97 100644 --- a/gui/src/main/java/io/bitsquare/gui/common/view/ActivatableViewAndModel.java +++ b/gui/src/main/java/io/bitsquare/gui/common/view/ActivatableViewAndModel.java @@ -29,7 +29,7 @@ public abstract class ActivatableViewAndModel { if (oldValue == null && newValue != null && newValue.getWindow() != null) { newValue.getWindow().widthProperty().addListener(listener); - // localToScene does deliver 0 instead of the correct x position when scene propery gets set, + // localToScene does deliver 0 instead of the correct x position when scene property gets set, // so we delay for 1 render cycle UserThread.execute(() -> { label.setVisible(true); diff --git a/gui/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java b/gui/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java index c004c6cba8..5325243137 100644 --- a/gui/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java +++ b/gui/src/main/java/io/bitsquare/gui/components/confidence/skin/ConfidenceProgressIndicatorSkin.java @@ -64,7 +64,7 @@ public class ConfidenceProgressIndicatorSkin extends BehaviorSkinBase { diff --git a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/SepaForm.java b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/SepaForm.java index 58346d5530..0037f4d965 100644 --- a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/SepaForm.java +++ b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/SepaForm.java @@ -164,9 +164,9 @@ public class SepaForm extends PaymentMethodForm { flowPane.setHgap(10); if (isEditable) - flowPane.setId("flowpane-checkboxes-bg"); + flowPane.setId("flow-pane-checkboxes-bg"); else - flowPane.setId("flowpane-checkboxes-non-editable-bg"); + flowPane.setId("flow-pane-checkboxes-non-editable-bg"); dataProvider.stream().forEach(country -> { @@ -255,7 +255,8 @@ public class SepaForm extends PaymentMethodForm { ibanField.setMouseTransparent(false); TextField bicField = addLabelTextField(gridPane, ++gridRow, "BIC/SWIFT:", sepaAccount.getBic()).second; bicField.setMouseTransparent(false); - addLabelTextField(gridPane, ++gridRow, "Location of Bank:", sepaAccount.getCountry().name); + addLabelTextField(gridPane, ++gridRow, "Location of Bank:", + sepaAccount.getCountry() != null ? sepaAccount.getCountry().name : ""); addLabelTextField(gridPane, ++gridRow, "Currency:", sepaAccount.getSingleTradeCurrency().getNameAndCode()); String countries; Tooltip tooltip = null; diff --git a/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java b/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java index f3a5ce47db..ff34a64bd8 100644 --- a/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java +++ b/gui/src/main/java/io/bitsquare/gui/components/processbar/ProcessStepBarSkin.java @@ -154,6 +154,7 @@ class ProcessStepBarSkin extends BehaviorSkinBase, Behavior } public void open() { + //noinspection SuspiciousNameCombination,SuspiciousNameCombination BorderStroke borderStroke = new BorderStroke(Colors.LIGHT_GREY, BorderStrokeStyle.SOLID, null, new BorderWidths(borderWidth, borderWidth, borderWidth, borderWidth), Insets.EMPTY); this.setBorder(new Border(borderStroke)); @@ -161,6 +162,7 @@ class ProcessStepBarSkin extends BehaviorSkinBase, Behavior } public void current() { + //noinspection SuspiciousNameCombination,SuspiciousNameCombination BorderStroke borderStroke = new BorderStroke(Colors.GREEN, BorderStrokeStyle.SOLID, null, new BorderWidths(borderWidth, borderWidth, borderWidth, borderWidth), Insets.EMPTY); this.setBorder(new Border(borderStroke)); @@ -168,6 +170,7 @@ class ProcessStepBarSkin extends BehaviorSkinBase, Behavior } public void past() { + //noinspection SuspiciousNameCombination,SuspiciousNameCombination BorderStroke borderStroke = new BorderStroke(Color.valueOf("#444444"), BorderStrokeStyle.SOLID, null, new BorderWidths(borderWidth, borderWidth, borderWidth, borderWidth), Insets.EMPTY); this.setBorder(new Border(borderStroke)); diff --git a/gui/src/main/java/io/bitsquare/gui/main/MainView.java b/gui/src/main/java/io/bitsquare/gui/main/MainView.java index 6ca54fff49..0be2f8ed67 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/MainView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/MainView.java @@ -464,13 +464,11 @@ public class MainView extends InitializableView { p2PNetworkIcon.setOpacity(1); }); - AnchorPane footerContainer = new AnchorPane(separator, blockchainSyncBox, versionLabel, p2PNetworkLabel, p2PNetworkIcon) {{ + return new AnchorPane(separator, blockchainSyncBox, versionLabel, p2PNetworkLabel, p2PNetworkIcon) {{ setId("footer-pane"); setMinHeight(30); setMaxHeight(30); }}; - - return footerContainer; } private void setupNotificationIcon(Pane buttonHolder) { diff --git a/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java index 068adac3a3..f185542f02 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/MainViewModel.java @@ -91,9 +91,9 @@ public class MainViewModel implements ViewModel { private final Preferences preferences; private final AlertManager alertManager; private final WalletPasswordPopup walletPasswordPopup; - private NotificationCenter notificationCenter; - private TacPopup tacPopup; - private Navigation navigation; + private final NotificationCenter notificationCenter; + private final TacPopup tacPopup; + private final Navigation navigation; private final BSFormatter formatter; // BTC network @@ -129,13 +129,13 @@ public class MainViewModel implements ViewModel { final StringProperty p2PNetworkLabelId = new SimpleStringProperty("footer-pane"); private MonadicBinding allServicesDone, tradesAndUIReady; - private MarketPriceFeed marketPriceFeed; + private final MarketPriceFeed marketPriceFeed; private final User user; private int numBTCPeers = 0; private Timer checkForBtcSyncStateTimer; private ChangeListener numConnectedPeersListener, btcNumPeersListener; - private java.util.Timer numberofBtcPeersTimer; - private java.util.Timer numberofP2PNetworkPeersTimer; + private java.util.Timer numberOfBtcPeersTimer; + private java.util.Timer numberOfP2PNetworkPeersTimer; private Timer startupTimeout; private final Map disputeIsClosedSubscriptionsMap = new HashMap<>(); @@ -325,9 +325,9 @@ public class MainViewModel implements ViewModel { btcNumPeersListener = (observable, oldValue, newValue) -> { if ((int) oldValue > 0 && (int) newValue == 0) { // give a bit of tolerance - if (numberofBtcPeersTimer != null) - numberofBtcPeersTimer.cancel(); - numberofBtcPeersTimer = UserThread.runAfter(() -> { + if (numberOfBtcPeersTimer != null) + numberOfBtcPeersTimer.cancel(); + numberOfBtcPeersTimer = UserThread.runAfter(() -> { if (walletService.numPeersProperty().get() == 0) { walletServiceErrorMsg.set("You lost the connection to all bitcoin network peers.\n" + "Maybe you lost your internet connection or your computer was in hibernate/sleep mode."); @@ -517,9 +517,9 @@ public class MainViewModel implements ViewModel { numConnectedPeersListener = (observable, oldValue, newValue) -> { if ((int) oldValue > 0 && (int) newValue == 0) { // give a bit of tolerance - if (numberofP2PNetworkPeersTimer != null) - numberofP2PNetworkPeersTimer.cancel(); - numberofP2PNetworkPeersTimer = UserThread.runAfter(() -> { + if (numberOfP2PNetworkPeersTimer != null) + numberOfP2PNetworkPeersTimer.cancel(); + numberOfP2PNetworkPeersTimer = UserThread.runAfter(() -> { if (p2PService.getNumConnectedPeers().get() == 0) { p2PNetworkWarnMsg.set("You lost the connection to all P2P network peers.\n" + "Maybe you lost your internet connection or your computer was in hibernate/sleep mode."); diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java index 9c0732f939..5f5b617da2 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/arbitratorregistration/ArbitratorRegistrationViewModel.java @@ -79,7 +79,7 @@ class ArbitratorRegistrationViewModel extends ActivatableViewModel { Arbitrator myRegisteredArbitrator = user.getRegisteredArbitrator(); myArbitratorProperty.set(myRegisteredArbitrator); - // We don't reset the languages in case of revokation, as its likely that the arbitrator will use the same again when he re-activate + // We don't reset the languages in case of revocation, as its likely that the arbitrator will use the same again when he re-activate // registration later if (myRegisteredArbitrator != null) languageCodes.setAll(myRegisteredArbitrator.getLanguageCodes()); diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java index 86f6dfb102..89845b029c 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/seedwords/SeedWordsView.java @@ -130,8 +130,12 @@ public class SeedWordsView extends ActivatableView { Wallet wallet = walletService.getWallet(); KeyCrypter keyCrypter = wallet.getKeyCrypter(); keyChainSeed = wallet.getKeyChainSeed(); - DeterministicSeed decryptedSeed = keyChainSeed.decrypt(keyCrypter, "", aesKey); - showSeedScreen(decryptedSeed); + if (keyCrypter != null) { + DeterministicSeed decryptedSeed = keyChainSeed.decrypt(keyCrypter, "", aesKey); + showSeedScreen(decryptedSeed); + } else { + log.warn("keyCrypter is null"); + } }).show(); } diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java index 8585587347..c4b4d09fbb 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/settings/AccountSettingsView.java @@ -56,7 +56,7 @@ public class AccountSettingsView extends ActivatableViewAndModel { @FXML private AnchorPane content; - private Class selecteedViewClass; + private Class selectedViewClass; @Inject private AccountSettingsView(CachingViewLoader viewLoader, Navigation navigation) { @@ -97,8 +97,8 @@ public class AccountSettingsView extends ActivatableViewAndModel { 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) { - selecteedViewClass = viewPath.get(3); - loadView(selecteedViewClass); + selectedViewClass = viewPath.get(3); + loadView(selectedViewClass); } } @@ -125,7 +125,7 @@ public class AccountSettingsView extends ActivatableViewAndModel { } public Class getSelectedViewClass() { - return selecteedViewClass; + return selectedViewClass; } } @@ -135,8 +135,8 @@ class MenuItem extends ToggleButton { private final ChangeListener selectedPropertyChangeListener; private final ChangeListener disablePropertyChangeListener; - private Navigation navigation; - private Class viewClass; + private final Navigation navigation; + private final Class viewClass; MenuItem(Navigation navigation, ToggleGroup toggleGroup, String title, Class viewClass, AwesomeIcon awesomeIcon) { this.navigation = navigation; diff --git a/gui/src/main/java/io/bitsquare/gui/main/debug/DebugView.java b/gui/src/main/java/io/bitsquare/gui/main/debug/DebugView.java index 733e95fe6f..e5627c51ad 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/debug/DebugView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/debug/DebugView.java @@ -65,7 +65,7 @@ public class DebugView extends InitializableView { OfferAvailabilityProtocol.class, SendOfferAvailabilityRequest.class, ProcessOfferAvailabilityResponse.class, - Boolean.class, /* used as seperator*/ + Boolean.class, /* used as separator*/ /*---- Protocol ----*/ @@ -74,7 +74,7 @@ public class DebugView extends InitializableView { CreateOfferFeeTx.class, AddOfferToRemoteOfferBook.class, BroadcastCreateOfferFeeTx.class, - Boolean.class, /* used as seperator*/ + Boolean.class, /* used as separator*/ /*---- Protocol ----*/ @@ -98,7 +98,7 @@ public class DebugView extends InitializableView { SignAndFinalizePayoutTx.class, SendPayoutTxFinalizedMessage.class, BroadcastAfterLockTime.class, - Boolean.class, /* used as seperator*/ + Boolean.class, /* used as separator*/ /*---- Protocol ----*/ @@ -123,7 +123,7 @@ public class DebugView extends InitializableView { ProcessPayoutTxFinalizedMessage.class, BroadcastAfterLockTime.class, - Boolean.class /* used as seperator*/ + Boolean.class /* used as separator*/ ) ); final ObservableList items2 = FXCollections.observableArrayList(Arrays.asList( @@ -149,7 +149,7 @@ public class DebugView extends InitializableView { SignAndFinalizePayoutTx.class, SendPayoutTxFinalizedMessage.class, BroadcastAfterLockTime.class, - Boolean.class, /* used as seperator*/ + Boolean.class, /* used as separator*/ /*---- Protocol ----*/ @@ -173,7 +173,7 @@ public class DebugView extends InitializableView { ProcessPayoutTxFinalizedMessage.class, BroadcastAfterLockTime.class, - Boolean.class /* used as seperator*/ + Boolean.class /* used as separator*/ ) ); diff --git a/gui/src/main/java/io/bitsquare/gui/main/disputes/DisputesView.fxml b/gui/src/main/java/io/bitsquare/gui/main/disputes/DisputesView.fxml index 85c1b34b6a..56f85ca61b 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/disputes/DisputesView.fxml +++ b/gui/src/main/java/io/bitsquare/gui/main/disputes/DisputesView.fxml @@ -26,6 +26,6 @@ AnchorPane.topAnchor="0.0" xmlns:fx="http://javafx.com/fxml"> - + diff --git a/gui/src/main/java/io/bitsquare/gui/main/disputes/trader/TraderDisputeView.java b/gui/src/main/java/io/bitsquare/gui/main/disputes/trader/TraderDisputeView.java index 5d5469f96c..d4971a6de8 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/disputes/trader/TraderDisputeView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/disputes/trader/TraderDisputeView.java @@ -228,7 +228,8 @@ public class TraderDisputeView extends ActivatableView { hideSendMsgInfo(timer); } }; - disputeDirectMessage.arrivedProperty().addListener(arrivedPropertyListener); + if (disputeDirectMessage.arrivedProperty() != null) + disputeDirectMessage.arrivedProperty().addListener(arrivedPropertyListener); storedInMailboxPropertyListener = (observable, oldValue, newValue) -> { if (newValue) { sendMsgInfoLabel.setVisible(true); diff --git a/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml b/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml index 8164543468..2936e46cd3 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml +++ b/gui/src/main/java/io/bitsquare/gui/main/funds/FundsView.fxml @@ -24,7 +24,7 @@ AnchorPane.topAnchor="0.0" xmlns:fx="http://javafx.com/fxml"> - + diff --git a/gui/src/main/java/io/bitsquare/gui/main/markets/charts/MarketsChartsView.java b/gui/src/main/java/io/bitsquare/gui/main/markets/charts/MarketsChartsView.java index 9adeb1f471..7e35cc60be 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/markets/charts/MarketsChartsView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/markets/charts/MarketsChartsView.java @@ -55,7 +55,7 @@ public class MarketsChartsView extends ActivatableViewAndModel changeListener; - private Navigation navigation; + private final Navigation navigation; private final BSFormatter formatter; private TableView buyOfferTableView; private TableView sellOfferTableView; diff --git a/gui/src/main/java/io/bitsquare/gui/main/markets/charts/MarketsChartsViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/markets/charts/MarketsChartsViewModel.java index 53a9d9545c..7139266602 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/markets/charts/MarketsChartsViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/markets/charts/MarketsChartsViewModel.java @@ -42,7 +42,7 @@ class MarketsChartsViewModel extends ActivatableViewModel { private final OfferBook offerBook; private final Preferences preferences; - private MarketPriceFeed marketPriceFeed; + private final MarketPriceFeed marketPriceFeed; final ObjectProperty tradeCurrency = new SimpleObjectProperty<>(CurrencyUtil.getDefaultTradeCurrency()); private final List buyData = new ArrayList(); diff --git a/gui/src/main/java/io/bitsquare/gui/main/notifications/NotificationCenter.java b/gui/src/main/java/io/bitsquare/gui/main/notifications/NotificationCenter.java index 2cb5f0009e..0cabf64cee 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/notifications/NotificationCenter.java +++ b/gui/src/main/java/io/bitsquare/gui/main/notifications/NotificationCenter.java @@ -48,10 +48,10 @@ public class NotificationCenter { // Instance fields /////////////////////////////////////////////////////////////////////////////////////////// - private TradeManager tradeManager; - private DisputeManager disputeManager; - private Preferences preferences; - private Navigation navigation; + private final TradeManager tradeManager; + private final DisputeManager disputeManager; + private final Preferences preferences; + private final Navigation navigation; private final Map disputeStateSubscriptionsMap = new HashMap<>(); private final Map tradeStateSubscriptionsMap = new HashMap<>(); @@ -126,6 +126,7 @@ public class NotificationCenter { // Setter/Getter /////////////////////////////////////////////////////////////////////////////////////////// + @org.jetbrains.annotations.Nullable public String getSelectedTradeId() { return selectedTradeId; } diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/OfferView.java b/gui/src/main/java/io/bitsquare/gui/main/offer/OfferView.java index 2f94dd218d..feda8e68b9 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/OfferView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/OfferView.java @@ -52,7 +52,7 @@ public abstract class OfferView extends ActivatableView { private final ViewLoader viewLoader; private final Navigation navigation; - private MarketPriceFeed marketPriceFeed; + private final MarketPriceFeed marketPriceFeed; private final Offer.Direction direction; private Tab takeOfferTab, createOfferTab, offerBookTab; private TradeCurrency tradeCurrency; @@ -94,7 +94,7 @@ public abstract class OfferView extends ActivatableView { } } }; - tabListChangeListener = (ListChangeListener) change -> { + tabListChangeListener = change -> { change.next(); List removedTabs = change.getRemoved(); if (removedTabs.size() == 1) { diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferDataModel.java index 7cf78e9db1..3a886ab13f 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferDataModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferDataModel.java @@ -70,9 +70,9 @@ class CreateOfferDataModel extends ActivatableDataModel { private final User user; private final KeyRing keyRing; private final P2PService p2PService; - private MarketPriceFeed marketPriceFeed; + private final MarketPriceFeed marketPriceFeed; private final WalletPasswordPopup walletPasswordPopup; - private BlockchainService blockchainService; + private final BlockchainService blockchainService; private final BSFormatter formatter; private final String offerId; private final AddressEntry addressEntry; diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java index 2838f276ca..59bd8479f2 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/createoffer/CreateOfferView.java @@ -110,7 +110,7 @@ public class CreateOfferView extends ActivatableViewAndModel currencyComboBoxSelectionHandler; private int gridRow = 0; - private Preferences preferences; + private final Preferences preferences; /////////////////////////////////////////////////////////////////////////////////////////// @@ -213,7 +213,7 @@ public class CreateOfferView extends ActivatableViewAndModel filteredItems; @@ -168,8 +168,7 @@ class OfferBookViewModel extends ActivatableViewModel { } public ObservableList getTradeCurrencies() { - ObservableList list = preferences.getTradeCurrenciesAsObservable(); - return list; + return preferences.getTradeCurrenciesAsObservable(); } boolean isBootstrapped() { diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferDataModel.java index 1b4a94a5ce..e637c22922 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferDataModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferDataModel.java @@ -68,9 +68,9 @@ class TakeOfferDataModel extends ActivatableDataModel { private final User user; private final WalletPasswordPopup walletPasswordPopup; private final Preferences preferences; - private MarketPriceFeed marketPriceFeed; - private BlockchainService blockchainService; - private BSFormatter formatter; + private final MarketPriceFeed marketPriceFeed; + private final BlockchainService blockchainService; + private final BSFormatter formatter; private final Coin offerFeeAsCoin; private final Coin networkFeeAsCoin; @@ -305,7 +305,6 @@ class TakeOfferDataModel extends ActivatableDataModel { void calculateVolume() { if (offer != null && - offer.getPrice() != null && amountAsCoin.get() != null && !amountAsCoin.get().isZero()) { volumeAsFiat.set(new ExchangeRate(offer.getPrice()).coinToFiat(amountAsCoin.get())); @@ -330,7 +329,7 @@ class TakeOfferDataModel extends ActivatableDataModel { boolean isMinAmountLessOrEqualAmount() { //noinspection SimplifiableIfStatement - if (offer != null && offer.getMinAmount() != null && amountAsCoin.get() != null) + if (offer != null && amountAsCoin.get() != null) return !offer.getMinAmount().isGreaterThan(amountAsCoin.get()); return true; } diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java b/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java index 341d0bd680..c48ac6e506 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/takeoffer/TakeOfferView.java @@ -72,7 +72,7 @@ public class TakeOfferView extends ActivatableViewAndModel implements ViewModel { private final BtcValidator btcValidator; - private P2PService p2PService; + private final P2PService p2PService; final BSFormatter formatter; private String amountRange; @@ -161,7 +161,7 @@ class TakeOfferViewModel extends ActivatableWithDataModel im checkNotNull(dataModel.getAddressEntry(), "dataModel.getAddressEntry() must not be null"); - addressAsString = dataModel.getAddressEntry().getAddress().toString(); + addressAsString = dataModel.getAddressEntry().getAddressString(); address.set(dataModel.getAddressEntry().getAddress()); offerErrorListener = (observable, oldValue, newValue) -> { diff --git a/gui/src/main/java/io/bitsquare/gui/main/popups/OfferDetailsPopup.java b/gui/src/main/java/io/bitsquare/gui/main/popups/OfferDetailsPopup.java index 20cc2cc9a8..bc93b4c5b9 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/popups/OfferDetailsPopup.java +++ b/gui/src/main/java/io/bitsquare/gui/main/popups/OfferDetailsPopup.java @@ -52,7 +52,7 @@ public class OfferDetailsPopup extends Popup { private final BSFormatter formatter; protected final Preferences preferences; private final User user; - private KeyRing keyRing; + private final KeyRing keyRing; private final Navigation navigation; private Offer offer; private Coin tradeAmount; diff --git a/gui/src/main/java/io/bitsquare/gui/main/popups/PopupManager.java b/gui/src/main/java/io/bitsquare/gui/main/popups/PopupManager.java index 7bff92e8c3..0da8417347 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/popups/PopupManager.java +++ b/gui/src/main/java/io/bitsquare/gui/main/popups/PopupManager.java @@ -8,7 +8,7 @@ import java.util.concurrent.LinkedBlockingQueue; class PopupManager { private static final Logger log = LoggerFactory.getLogger(PopupManager.class); - private static Queue popups = new LinkedBlockingQueue<>(3); + private static final Queue popups = new LinkedBlockingQueue<>(3); private static Popup displayedPopup; static void queueForDisplay(Popup popup) { diff --git a/gui/src/main/java/io/bitsquare/gui/main/popups/TacPopup.java b/gui/src/main/java/io/bitsquare/gui/main/popups/TacPopup.java index c0bf6cdca0..fe1cca62d3 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/popups/TacPopup.java +++ b/gui/src/main/java/io/bitsquare/gui/main/popups/TacPopup.java @@ -12,7 +12,7 @@ import java.util.concurrent.TimeUnit; public class TacPopup extends Popup { private static final Logger log = LoggerFactory.getLogger(TacPopup.class); - private Preferences preferences; + private final Preferences preferences; @Inject public TacPopup(Preferences preferences) { diff --git a/gui/src/main/java/io/bitsquare/gui/main/popups/TradeDetailsPopup.java b/gui/src/main/java/io/bitsquare/gui/main/popups/TradeDetailsPopup.java index 396b3abcfb..14c5f294f8 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/popups/TradeDetailsPopup.java +++ b/gui/src/main/java/io/bitsquare/gui/main/popups/TradeDetailsPopup.java @@ -45,7 +45,7 @@ public class TradeDetailsPopup extends Popup { protected static final Logger log = LoggerFactory.getLogger(TradeDetailsPopup.class); private final BSFormatter formatter; - private DisputeManager disputeManager; + private final DisputeManager disputeManager; private Trade trade; private ChangeListener changeListener; private TextArea textArea; diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/failedtrades/FailedTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/failedtrades/FailedTradesViewModel.java index 506a43a04f..5b0087b528 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/failedtrades/FailedTradesViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/failedtrades/FailedTradesViewModel.java @@ -44,7 +44,7 @@ class FailedTradesViewModel extends ActivatableWithDataModel list = FXCollections.observableArrayList(); private final ListChangeListener tradesListChangeListener; @@ -351,36 +351,42 @@ public class PendingTradesDataModel extends ActivatableDataModel { } else { log.warn("depositTx is null"); } - Transaction payoutTx = getTrade().getPayoutTx(); - if (payoutTx != null) { - payoutTxSerialized = payoutTx.bitcoinSerialize(); - payoutTxHashAsString = payoutTx.getHashAsString(); - } - Trade trade = getTrade(); - Dispute dispute = new Dispute(disputeManager.getDisputeStorage(), - trade.getId(), - keyRing.getPubKeyRing().hashCode(), // traderId - trade.getOffer().getDirection() == Offer.Direction.BUY ? isOfferer : !isOfferer, - isOfferer, - keyRing.getPubKeyRing(), - trade.getDate(), - trade.getContract(), - trade.getContractHash(), - depositTxSerialized, - payoutTxSerialized, - depositTxHashAsString, - payoutTxHashAsString, - trade.getContractAsJson(), - trade.getOffererContractSignature(), - trade.getTakerContractSignature(), - user.getAcceptedArbitratorByAddress(trade.getArbitratorNodeAddress()).getPubKeyRing(), - isSupportTicket - ); + if (trade != null) { + Transaction payoutTx = trade.getPayoutTx(); + if (payoutTx != null) { + payoutTxSerialized = payoutTx.bitcoinSerialize(); + payoutTxHashAsString = payoutTx.getHashAsString(); + } else { + log.warn("payoutTx is null at doOpenDispute"); + } - trade.setDisputeState(Trade.DisputeState.DISPUTE_REQUESTED); - disputeManager.sendOpenNewDisputeMessage(dispute); - navigation.navigateTo(MainView.class, DisputesView.class); + Dispute dispute = new Dispute(disputeManager.getDisputeStorage(), + trade.getId(), + keyRing.getPubKeyRing().hashCode(), // traderId + trade.getOffer().getDirection() == Offer.Direction.BUY ? isOfferer : !isOfferer, + isOfferer, + keyRing.getPubKeyRing(), + trade.getDate(), + trade.getContract(), + trade.getContractHash(), + depositTxSerialized, + payoutTxSerialized, + depositTxHashAsString, + payoutTxHashAsString, + trade.getContractAsJson(), + trade.getOffererContractSignature(), + trade.getTakerContractSignature(), + user.getAcceptedArbitratorByAddress(trade.getArbitratorNodeAddress()).getPubKeyRing(), + isSupportTicket + ); + + trade.setDisputeState(Trade.DisputeState.DISPUTE_REQUESTED); + disputeManager.sendOpenNewDisputeMessage(dispute); + navigation.navigateTo(MainView.class, DisputesView.class); + } else { + log.warn("trade is null at doOpenDispute"); + } } } diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java index e698a70703..efb415c146 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesView.java @@ -50,7 +50,7 @@ import javax.inject.Inject; public class PendingTradesView extends ActivatableViewAndModel { private final TradeDetailsPopup tradeDetailsPopup; - private BSFormatter formatter; + private final BSFormatter formatter; @FXML TableView table; @FXML diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java index 56467c13ca..343a6771ad 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/PendingTradesViewModel.java @@ -68,7 +68,7 @@ public class PendingTradesViewModel extends ActivatableWithDataModel buyerState = new SimpleObjectProperty<>(); private final ObjectProperty sellerState = new SimpleObjectProperty<>(); diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/TradeSubView.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/TradeSubView.java index 6e6eb4c396..ac1cf0ea9f 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/TradeSubView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/TradeSubView.java @@ -166,7 +166,7 @@ public abstract class TradeSubView extends HBox { private void addLeftBox() { leftVBox = new VBox(); - leftVBox.setSpacing(Layout.SPACING_VBOX); + leftVBox.setSpacing(Layout.SPACING_V_BOX); leftVBox.setMinWidth(290); getChildren().add(leftVBox); } diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java index 68299a24c5..b66878aa1e 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep2View.java @@ -119,7 +119,7 @@ public class BuyerStep2View extends TradeStepView { addTradeInfoBlock(); PaymentAccountContractData paymentAccountContractData = model.dataModel.getSellersPaymentAccountContractData(); - String paymentMethodName = paymentAccountContractData.getPaymentMethodName(); + String paymentMethodName = paymentAccountContractData != null ? paymentAccountContractData.getPaymentMethodName() : ""; TitledGroupBg accountTitledGroupBg = addTitledGroupBg(gridPane, ++gridRow, 1, "Start payment using " + BSResources.get(paymentAccountContractData.getPaymentMethodName()), Layout.GROUP_DISTANCE); diff --git a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep5View.java b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep5View.java index de88587ee6..4348935920 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep5View.java +++ b/gui/src/main/java/io/bitsquare/gui/main/portfolio/pendingtrades/steps/buyer/BuyerStep5View.java @@ -98,9 +98,9 @@ public class BuyerStep5View extends TradeStepView { Tuple2 fiatTradeAmountPair = addLabelTextField(gridPane, ++gridRow, getFiatTradeAmountLabel(), model.getFiatVolume()); fiatTradeAmountLabel = fiatTradeAmountPair.first; - Tuple2 feesPair = addLabelTextField(gridPane, ++gridRow, "Total fees paid:", model.getTotalFees()); + addLabelTextField(gridPane, ++gridRow, "Total fees paid:", model.getTotalFees()); - Tuple2 securityDepositPair = addLabelTextField(gridPane, ++gridRow, "Refunded security deposit:", model.getSecurityDeposit()); + addLabelTextField(gridPane, ++gridRow, "Refunded security deposit:", model.getSecurityDeposit()); addTitledGroupBg(gridPane, ++gridRow, 2, "Withdraw your bitcoins", Layout.GROUP_DISTANCE); addLabelTextField(gridPane, gridRow, "Amount to withdraw:", model.getPayoutAmount(), Layout.FIRST_ROW_AND_GROUP_DISTANCE); diff --git a/gui/src/main/java/io/bitsquare/gui/main/settings/preferences/PreferencesView.java b/gui/src/main/java/io/bitsquare/gui/main/settings/preferences/PreferencesView.java index 3802fce55e..2827fe8157 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/settings/preferences/PreferencesView.java +++ b/gui/src/main/java/io/bitsquare/gui/main/settings/preferences/PreferencesView.java @@ -48,7 +48,7 @@ public class PreferencesView extends ActivatableViewAndModel transactionFeeFocusedListener; - private Preferences preferences; + private final Preferences preferences; @Inject public PreferencesView(PreferencesViewModel model, Preferences preferences) { diff --git a/gui/src/main/java/io/bitsquare/gui/util/Layout.java b/gui/src/main/java/io/bitsquare/gui/util/Layout.java index e280dcfb7b..c7ed71b111 100644 --- a/gui/src/main/java/io/bitsquare/gui/util/Layout.java +++ b/gui/src/main/java/io/bitsquare/gui/util/Layout.java @@ -23,8 +23,8 @@ public class Layout { public static final double FIRST_ROW_AND_GROUP_DISTANCE = GROUP_DISTANCE + FIRST_ROW_DISTANCE; public static final double PADDING_WINDOW = 20d; public static double PADDING = 10d; - public static double SPACING_HBOX = 10d; - public static final double SPACING_VBOX = 5d; + public static double SPACING_H_BOX = 10d; + public static final double SPACING_V_BOX = 5d; public static final double GRID_GAP = 5d; public static final double LIST_ROW_HEIGHT = 34; diff --git a/gui/src/test/java/io/bitsquare/common/fxml/FxmlViewLoaderTests.java b/gui/src/test/java/io/bitsquare/common/fxml/FxmlViewLoaderTests.java index 01b51ead67..1424259f43 100644 --- a/gui/src/test/java/io/bitsquare/common/fxml/FxmlViewLoaderTests.java +++ b/gui/src/test/java/io/bitsquare/common/fxml/FxmlViewLoaderTests.java @@ -17,7 +17,7 @@ package io.bitsquare.common.fxml; -import io.bitsquare.gui.common.ViewfxException; +import io.bitsquare.gui.common.ViewFxException; import io.bitsquare.gui.common.fxml.FxmlViewLoader; import io.bitsquare.gui.common.view.*; import javafx.fxml.LoadException; @@ -70,7 +70,7 @@ public class FxmlViewLoaderTests { @Test public void fxmlFileMissingFxControllerAttributeShouldThrow() { - thrown.expect(ViewfxException.class); + thrown.expect(ViewFxException.class); thrown.expectMessage("Does it declare an fx:controller attribute?"); viewLoader.load(MissingFxController.class); } @@ -93,7 +93,7 @@ public class FxmlViewLoaderTests { @Test public void malformedFxmlFileShouldThrow() { - thrown.expect(ViewfxException.class); + thrown.expect(ViewFxException.class); thrown.expectMessage("Failed to load view from FXML file"); thrown.expectCause(instanceOf(LoadException.class)); viewLoader.load(Malformed.class); @@ -106,7 +106,7 @@ public class FxmlViewLoaderTests { @Test public void missingFxmlFileShouldThrow() { - thrown.expect(ViewfxException.class); + thrown.expect(ViewFxException.class); thrown.expectMessage("Does it exist?"); viewLoader.load(MissingFxmlFile.class); } @@ -118,7 +118,7 @@ public class FxmlViewLoaderTests { @Test public void customFxmlFileLocationShouldOverrideDefaultConvention() { - thrown.expect(ViewfxException.class); + thrown.expect(ViewFxException.class); thrown.expectMessage("Failed to load view class"); thrown.expectMessage("CustomLocation"); thrown.expectMessage("[unconventionally/located.fxml] could not be loaded");