From 623b07dfcc2c2496a1737925dce3b5e94fd2cc65 Mon Sep 17 00:00:00 2001 From: Manfred Karrer Date: Thu, 28 Jan 2016 21:49:10 +0100 Subject: [PATCH] UI bugfixes and improvements --- .../trade/offer/OpenOfferManager.java | 5 ++-- .../components/paymentmethods/AliPayForm.java | 4 ++- .../paymentmethods/BlockChainForm.java | 6 +++-- .../components/paymentmethods/OKPayForm.java | 4 ++- .../paymentmethods/PerfectMoneyForm.java | 4 ++- .../components/paymentmethods/SepaForm.java | 6 +++-- .../components/paymentmethods/SwishForm.java | 4 ++- .../PaymentAccountDataModel.java | 6 ++++- .../markets/charts/MarketsChartsView.java | 13 +++++---- .../offer/offerbook/OfferBookViewModel.java | 6 ++--- .../resources/i18n/displayStrings.properties | 27 ++----------------- .../bitsquare/p2p/storage/P2PDataStorage.java | 7 +++-- 12 files changed, 44 insertions(+), 48 deletions(-) diff --git a/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java b/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java index e81a80c24e..01cd1f0168 100644 --- a/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java +++ b/core/src/main/java/io/bitsquare/trade/offer/OpenOfferManager.java @@ -18,6 +18,7 @@ package io.bitsquare.trade.offer; import com.google.inject.Inject; +import io.bitsquare.app.Log; import io.bitsquare.btc.TradeWalletService; import io.bitsquare.btc.WalletService; import io.bitsquare.common.UserThread; @@ -148,14 +149,14 @@ public class OpenOfferManager { TimerTask timerTask = new TimerTask() { @Override public void run() { - UserThread.execute(() -> rePublishOffers()); + UserThread.execute(OpenOfferManager.this::rePublishOffers); } }; timer.scheduleAtFixedRate(timerTask, 500, period); } private void rePublishOffers() { - if (!openOffers.isEmpty()) log.trace("rePublishOffers"); + Log.traceCall("Number of offer for republish: " + openOffers.size()); for (OpenOffer openOffer : openOffers) { offerBookService.republishOffer(openOffer.getOffer(), () -> log.debug("Successful added offer to P2P network"), diff --git a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/AliPayForm.java b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/AliPayForm.java index f1f4267a41..12d7e8251e 100644 --- a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/AliPayForm.java +++ b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/AliPayForm.java @@ -26,6 +26,7 @@ import io.bitsquare.payment.AliPayAccount; import io.bitsquare.payment.AliPayAccountContractData; import io.bitsquare.payment.PaymentAccount; import io.bitsquare.payment.PaymentAccountContractData; +import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -83,7 +84,8 @@ public class AliPayForm extends PaymentMethodForm { gridRowFrom = gridRow; addLabelTextField(gridPane, gridRow, "Account name:", aliPayAccount.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE); addLabelTextField(gridPane, ++gridRow, "Payment method:", BSResources.get(aliPayAccount.getPaymentMethod().getId())); - addLabelTextField(gridPane, ++gridRow, "Account nr.:", aliPayAccount.getAccountNr()); + TextField field = addLabelTextField(gridPane, ++gridRow, "Account nr.:", aliPayAccount.getAccountNr()).second; + field.setMouseTransparent(false); addLabelTextField(gridPane, ++gridRow, "Currency:", aliPayAccount.getSingleTradeCurrency().getCodeAndName()); addAllowedPeriod(); } diff --git a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/BlockChainForm.java b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/BlockChainForm.java index ef91de5276..1ebedc67b3 100644 --- a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/BlockChainForm.java +++ b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/BlockChainForm.java @@ -30,6 +30,7 @@ import io.bitsquare.payment.PaymentAccount; import io.bitsquare.payment.PaymentAccountContractData; import javafx.collections.FXCollections; import javafx.scene.control.ComboBox; +import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import javafx.util.StringConverter; import org.slf4j.Logger; @@ -70,7 +71,7 @@ public class BlockChainForm extends PaymentMethodForm { addTradeCurrencyComboBox(); currencyComboBox.setPrefWidth(250); - addressInputTextField = addLabelInputTextField(gridPane, ++gridRow, "Address:").second; + addressInputTextField = addLabelInputTextField(gridPane, ++gridRow, "Receiving altcoin address:").second; addressInputTextField.setValidator(altCoinAddressValidator); addressInputTextField.textProperty().addListener((ov, oldValue, newValue) -> { @@ -98,7 +99,8 @@ public class BlockChainForm extends PaymentMethodForm { gridRowFrom = gridRow; addLabelTextField(gridPane, gridRow, "Account name:", blockChainAccount.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE); addLabelTextField(gridPane, ++gridRow, "Payment method:", BSResources.get(blockChainAccount.getPaymentMethod().getId())); - addLabelTextField(gridPane, ++gridRow, "Address:", blockChainAccount.getAddress()); + TextField field = addLabelTextField(gridPane, ++gridRow, "Receiving altcoin address:", blockChainAccount.getAddress()).second; + field.setMouseTransparent(false); addLabelTextField(gridPane, ++gridRow, "Crypto currency:", blockChainAccount.getSingleTradeCurrency().getCodeAndName()); addAllowedPeriod(); } diff --git a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/OKPayForm.java b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/OKPayForm.java index 05575510c7..9e99505f88 100644 --- a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/OKPayForm.java +++ b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/OKPayForm.java @@ -31,6 +31,7 @@ import javafx.geometry.Insets; import javafx.geometry.VPos; import javafx.scene.control.CheckBox; import javafx.scene.control.Label; +import javafx.scene.control.TextField; import javafx.scene.control.Tooltip; import javafx.scene.layout.FlowPane; import javafx.scene.layout.GridPane; @@ -127,7 +128,8 @@ public class OKPayForm extends PaymentMethodForm { gridRowFrom = gridRow; addLabelTextField(gridPane, gridRow, "Account name:", okPayAccount.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE); addLabelTextField(gridPane, ++gridRow, "Payment method:", BSResources.get(okPayAccount.getPaymentMethod().getId())); - addLabelTextField(gridPane, ++gridRow, "Account nr.:", okPayAccount.getAccountNr()); + TextField field = addLabelTextField(gridPane, ++gridRow, "Account nr.:", okPayAccount.getAccountNr()).second; + field.setMouseTransparent(false); addAllowedPeriod(); addCurrenciesGrid(false); } diff --git a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/PerfectMoneyForm.java b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/PerfectMoneyForm.java index 309adb5ec0..053b8f2c0f 100644 --- a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/PerfectMoneyForm.java +++ b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/PerfectMoneyForm.java @@ -26,6 +26,7 @@ import io.bitsquare.payment.PaymentAccount; import io.bitsquare.payment.PaymentAccountContractData; import io.bitsquare.payment.PerfectMoneyAccount; import io.bitsquare.payment.PerfectMoneyAccountContractData; +import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -95,7 +96,8 @@ public class PerfectMoneyForm extends PaymentMethodForm { addLabelTextField(gridPane, gridRow, "Account name:", perfectMoneyAccount.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE); addLabelTextField(gridPane, ++gridRow, "Payment method:", BSResources.get(perfectMoneyAccount.getPaymentMethod().getId())); addLabelTextField(gridPane, ++gridRow, "Account holder name:", perfectMoneyAccount.getHolderName()); - addLabelTextField(gridPane, ++gridRow, "Account nr.:", perfectMoneyAccount.getAccountNr()); + TextField field = addLabelTextField(gridPane, ++gridRow, "Account nr.:", perfectMoneyAccount.getAccountNr()).second; + field.setMouseTransparent(false); addLabelTextField(gridPane, ++gridRow, "Currency:", perfectMoneyAccount.getSingleTradeCurrency().getCodeAndName()); addAllowedPeriod(); } 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 78d23d9076..bf8f0a1c84 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 @@ -244,8 +244,10 @@ public class SepaForm extends PaymentMethodForm { addLabelTextField(gridPane, gridRow, "Account name:", sepaAccount.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE); addLabelTextField(gridPane, ++gridRow, "Payment method:", BSResources.get(sepaAccount.getPaymentMethod().getId())); addLabelTextField(gridPane, ++gridRow, "Account holder name:", sepaAccount.getHolderName()); - addLabelTextField(gridPane, ++gridRow, "IBAN:", sepaAccount.getIban()); - addLabelTextField(gridPane, ++gridRow, "BIC/SWIFT:", sepaAccount.getBic()); + TextField ibanField = addLabelTextField(gridPane, ++gridRow, "IBAN:", sepaAccount.getIban()).second; + 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, "Currency:", sepaAccount.getSingleTradeCurrency().getCodeAndName()); addAllowedPeriod(); diff --git a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/SwishForm.java b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/SwishForm.java index a6353f89c3..965b8c0c98 100644 --- a/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/SwishForm.java +++ b/gui/src/main/java/io/bitsquare/gui/components/paymentmethods/SwishForm.java @@ -26,6 +26,7 @@ import io.bitsquare.payment.PaymentAccount; import io.bitsquare.payment.PaymentAccountContractData; import io.bitsquare.payment.SwishAccount; import io.bitsquare.payment.SwishAccountContractData; +import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -93,7 +94,8 @@ public class SwishForm extends PaymentMethodForm { addLabelTextField(gridPane, gridRow, "Account name:", swishAccount.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE); addLabelTextField(gridPane, ++gridRow, "Payment method:", BSResources.get(swishAccount.getPaymentMethod().getId())); addLabelTextField(gridPane, ++gridRow, "Account holder name:", swishAccount.getHolderName()); - addLabelTextField(gridPane, ++gridRow, "Mobile nr.:", swishAccount.getMobileNr()); + TextField field = addLabelTextField(gridPane, ++gridRow, "Mobile nr.:", swishAccount.getMobileNr()).second; + field.setMouseTransparent(false); addLabelTextField(gridPane, ++gridRow, "Currency:", swishAccount.getSingleTradeCurrency().getCodeAndName()); addAllowedPeriod(); } diff --git a/gui/src/main/java/io/bitsquare/gui/main/account/content/paymentsaccount/PaymentAccountDataModel.java b/gui/src/main/java/io/bitsquare/gui/main/account/content/paymentsaccount/PaymentAccountDataModel.java index 50db596a0e..9022b2b5a7 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/account/content/paymentsaccount/PaymentAccountDataModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/account/content/paymentsaccount/PaymentAccountDataModel.java @@ -34,12 +34,16 @@ class PaymentAccountDataModel extends ActivatableDataModel { @Inject public PaymentAccountDataModel(User user) { this.user = user; - setChangeListener = change -> paymentAccounts.setAll(user.getPaymentAccounts()); + setChangeListener = change -> fillAndSortPaymentAccounts(); } @Override protected void activate() { user.getPaymentAccountsAsObservable().addListener(setChangeListener); + fillAndSortPaymentAccounts(); + } + + private void fillAndSortPaymentAccounts() { paymentAccounts.setAll(user.getPaymentAccounts()); } 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 39929ece2b..293b3ff499 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 @@ -58,9 +58,8 @@ public class MarketsChartsView extends ActivatableViewAndModel areaChart; private ComboBox currencyComboBox; private Subscription tradeCurrencySubscriber; - private final StringProperty priceColumnLabel = new SimpleStringProperty("Price (EUR/BTC)"); - private final StringProperty amountColumnLabel = new SimpleStringProperty("Amount (BTC)"); - private final StringProperty volumeColumnLabel = new SimpleStringProperty("Volume (EUR)"); + private final StringProperty priceColumnLabel = new SimpleStringProperty(); + private final StringProperty volumeColumnLabel = new SimpleStringProperty(); /////////////////////////////////////////////////////////////////////////////////////////// @@ -129,10 +128,10 @@ public class MarketsChartsView extends ActivatableViewAndModel { String code = newValue.getCode(); areaChart.setTitle("Offer book for " + newValue.getName()); - xAxis.setLabel(priceColumnLabel.get()); - xAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(xAxis, "", "")); priceColumnLabel.set("Price (" + code + "/BTC)"); volumeColumnLabel.set("Volume (" + code + ")"); + xAxis.setLabel(priceColumnLabel.get()); + xAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(xAxis, "", "")); }); buyOfferTableView.setItems(model.getBuyOfferList()); @@ -178,7 +177,7 @@ public class MarketsChartsView extends ActivatableViewAndModel amountColumn = new TableColumn<>("Amount (BTC)"); - amountColumn.textProperty().bind(amountColumnLabel); + amountColumn.setText("Amount (BTC)"); amountColumn.setMinWidth(120); amountColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue())); amountColumn.setCellFactory( @@ -202,7 +201,7 @@ public class MarketsChartsView extends ActivatableViewAndModel volumeColumn = new TableColumn<>("Amount (EUR)"); + TableColumn volumeColumn = new TableColumn<>("Amount (BTC)"); volumeColumn.setMinWidth(120); volumeColumn.textProperty().bind(volumeColumnLabel); volumeColumn.setCellValueFactory((offer) -> new ReadOnlyObjectWrapper<>(offer.getValue())); diff --git a/gui/src/main/java/io/bitsquare/gui/main/offer/offerbook/OfferBookViewModel.java b/gui/src/main/java/io/bitsquare/gui/main/offer/offerbook/OfferBookViewModel.java index 6d8fcc6ccd..ff57717b64 100644 --- a/gui/src/main/java/io/bitsquare/gui/main/offer/offerbook/OfferBookViewModel.java +++ b/gui/src/main/java/io/bitsquare/gui/main/offer/offerbook/OfferBookViewModel.java @@ -209,16 +209,16 @@ class OfferBookViewModel extends ActivatableViewModel { String methodCountryCode = offer.getPaymentMethodCountryCode(); if (methodCountryCode != null) - result = method + "\nOfferers country of bank: " + CountryUtil.getNameByCode(methodCountryCode); + result = method + "\n\nOfferers seat of bank country:\n" + CountryUtil.getNameByCode(methodCountryCode); else result = method; List acceptedCountryCodes = offer.getAcceptedCountryCodes(); if (acceptedCountryCodes != null && acceptedCountryCodes.size() > 0) { if (CountryUtil.containsAllSepaEuroCountries(acceptedCountryCodes)) - result += "\nAccepted taker countries: All Euro countries"; + result += "\n\nAccepted takers seat of bank countries:\nAll Euro countries"; else - result += "\nAccepted taker countries: " + CountryUtil.getNamesByCodesString(acceptedCountryCodes); + result += "\n\nAccepted taker seat of bank countries:\n" + CountryUtil.getNamesByCodesString(acceptedCountryCodes); } } return result; diff --git a/gui/src/main/resources/i18n/displayStrings.properties b/gui/src/main/resources/i18n/displayStrings.properties index 472905f362..26ef90737b 100644 --- a/gui/src/main/resources/i18n/displayStrings.properties +++ b/gui/src/main/resources/i18n/displayStrings.properties @@ -144,33 +144,10 @@ takeOffer.error.message=An error occurred when taking the offer.\n\n{0} OK_PAY=OKPay PERFECT_MONEY=Perfect Money ALI_PAY=AliPay -SEPA=Sepa +SEPA=SEPA FED_WIRE=Fed Wire SWISH= Swish TRANSFER_WISE=TransferWise US_POSTAL_MONEY_ORDER=US Postal money order -BLOCK_CHAINS=Blockchains - -# Arbitrator.ID_TYPE -REAL_LIFE_ID=Real life ID -NICKNAME=Nickname -COMPANY=Company - -# Arbitrator.METHODS -TLS_NOTARY=TLS Notary -SKYPE_SCREEN_SHARING=Skype screen sharing -SMART_PHONE_VIDEO_CHAT=Smart phone video chat -REQUIRE_REAL_ID=Require real life Identification -BANK_STATEMENT=Bank statement - -# Arbitrator.ID_VERIFICATIONS -PASSPORT=Passport -GOV_ID=Government issued ID -UTILITY_BILLS=Utility bills -FACEBOOK=Facebook account -GOOGLE_PLUS=Google+ account -TWITTER=Twitter account -PGP=PGP -BTC_OTC=BTC OTC - +BLOCK_CHAINS=Crypto currencies diff --git a/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java b/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java index 1d6bd0a130..ab3b4be105 100644 --- a/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java +++ b/network/src/main/java/io/bitsquare/p2p/storage/P2PDataStorage.java @@ -161,14 +161,17 @@ public class P2PDataStorage implements MessageListener { StringBuilder sb = new StringBuilder("\n\n------------------------------------------------------------\n"); sb.append("Data set after addProtectedExpirableData:"); - map.values().stream().forEach(e -> sb.append("\n").append(e.toString()).append("\n")); + if (map.values().size() < 10) + map.values().stream().forEach(e -> sb.append("\n").append(e.toString()).append("\n")); + else + map.values().stream().forEach(e -> sb.append("\n").append("Truncated logs:").append(map.values().size()) + .append(" entries\n").append(e.toString().substring(0, 40)).append("...\n")); sb.append("\n------------------------------------------------------------\n"); log.info(sb.toString()); if (rePublish || !containsKey) broadcast(new AddDataMessage(protectedData), sender); - hashMapChangedListeners.stream().forEach(e -> e.onAdded(protectedData)); } else { log.trace("add failed");