Skip to content

Commit

Permalink
Polish WeChat payment method support
Browse files Browse the repository at this point in the history
 - Use camel case spelling of 'WeChat' consistently
 - Organize imports with common layout (bisq-network/style#2)
  • Loading branch information
cbeams committed Apr 10, 2018
1 parent e8d084d commit 95daeea
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 46 deletions.
2 changes: 1 addition & 1 deletion doc/protobuffer.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ D TradeStatistics (io.bisq.trade.statistics)
+ NodeAddress (io.bisq.p2p)
C+PaymentAccountContractData (io.bisq.payment)
+ AliPayAccountContractData (io.bisq.payment)
+ WechatPayAccountContractData (io.bisq.payment)
+ WeChatPayAccountContractData (io.bisq.payment)
+ ChaseQuickPayAccountContractData (io.bisq.payment)
+ ClearXchangeAccountContractData (io.bisq.payment)
C+ CountryBasedPaymentAccountContractData (io.bisq.payment)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,56 +17,58 @@

package bisq.desktop.components.paymentmethods;

import bisq.desktop.components.InputTextField;
import bisq.desktop.util.BSFormatter;
import bisq.desktop.util.Layout;
import bisq.desktop.util.validation.WeChatPayValidator;

import bisq.core.locale.Res;
import bisq.core.locale.TradeCurrency;
import bisq.core.payment.AccountAgeWitnessService;
import bisq.core.payment.PaymentAccount;
import bisq.core.payment.WechatPayAccount;
import bisq.core.payment.WeChatPayAccount;
import bisq.core.payment.payload.PaymentAccountPayload;
import bisq.core.payment.payload.WechatPayAccountPayload;
import bisq.core.payment.payload.WeChatPayAccountPayload;
import bisq.core.util.validation.InputValidator;
import bisq.desktop.components.InputTextField;
import bisq.desktop.util.BSFormatter;
import bisq.desktop.util.Layout;
import bisq.desktop.util.validation.WechatPayValidator;

import org.apache.commons.lang3.StringUtils;

import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import static bisq.desktop.util.FormBuilder.*;
import static bisq.desktop.util.FormBuilder.addLabelInputTextField;
import static bisq.desktop.util.FormBuilder.addLabelTextField;
import static bisq.desktop.util.FormBuilder.addLabelTextFieldWithCopyIcon;

public class WechatPayForm extends PaymentMethodForm {
private static final Logger log = LoggerFactory.getLogger(WechatPayForm.class);
public class WeChatPayForm extends PaymentMethodForm {

private final WechatPayAccount wechatPayAccount;
private final WechatPayValidator wechatPayValidator;
private final WeChatPayAccount weChatPayAccount;
private final WeChatPayValidator weChatPayValidator;
private InputTextField accountNrInputTextField;

public static int addFormForBuyer(GridPane gridPane, int gridRow, PaymentAccountPayload paymentAccountPayload) {
addLabelTextFieldWithCopyIcon(gridPane, ++gridRow, Res.get("payment.account.no"), ((WechatPayAccountPayload) paymentAccountPayload).getAccountNr());
addLabelTextFieldWithCopyIcon(gridPane, ++gridRow, Res.get("payment.account.no"), ((WeChatPayAccountPayload) paymentAccountPayload).getAccountNr());
return gridRow;
}

public WechatPayForm(PaymentAccount paymentAccount, AccountAgeWitnessService accountAgeWitnessService, WechatPayValidator wechatPayValidator, InputValidator inputValidator, GridPane gridPane, int gridRow, BSFormatter formatter) {
public WeChatPayForm(PaymentAccount paymentAccount, AccountAgeWitnessService accountAgeWitnessService, WeChatPayValidator weChatPayValidator, InputValidator inputValidator, GridPane gridPane, int gridRow, BSFormatter formatter) {
super(paymentAccount, accountAgeWitnessService, inputValidator, gridPane, gridRow, formatter);
this.wechatPayAccount = (WechatPayAccount) paymentAccount;
this.wechatPayValidator = wechatPayValidator;
this.weChatPayAccount = (WeChatPayAccount) paymentAccount;
this.weChatPayValidator = weChatPayValidator;
}

@Override
public void addFormForAddAccount() {
gridRowFrom = gridRow + 1;

accountNrInputTextField = addLabelInputTextField(gridPane, ++gridRow, Res.get("payment.account.no")).second;
accountNrInputTextField.setValidator(wechatPayValidator);
accountNrInputTextField.setValidator(weChatPayValidator);
accountNrInputTextField.textProperty().addListener((ov, oldValue, newValue) -> {
wechatPayAccount.setAccountNr(newValue);
weChatPayAccount.setAccountNr(newValue);
updateFromInputs();
});

final TradeCurrency singleTradeCurrency = wechatPayAccount.getSingleTradeCurrency();
final TradeCurrency singleTradeCurrency = weChatPayAccount.getSingleTradeCurrency();
final String nameAndCode = singleTradeCurrency != null ? singleTradeCurrency.getNameAndCode() : "";
addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared.currency"), nameAndCode);
addLimitations();
Expand All @@ -86,11 +88,11 @@ protected void autoFillNameTextField() {
@Override
public void addFormForDisplayAccount() {
gridRowFrom = gridRow;
addLabelTextField(gridPane, gridRow, Res.get("payment.account.name"), wechatPayAccount.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE);
addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared.paymentMethod"), Res.get(wechatPayAccount.getPaymentMethod().getId()));
TextField field = addLabelTextField(gridPane, ++gridRow, Res.get("payment.account.no"), wechatPayAccount.getAccountNr()).second;
addLabelTextField(gridPane, gridRow, Res.get("payment.account.name"), weChatPayAccount.getAccountName(), Layout.FIRST_ROW_AND_GROUP_DISTANCE);
addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared.paymentMethod"), Res.get(weChatPayAccount.getPaymentMethod().getId()));
TextField field = addLabelTextField(gridPane, ++gridRow, Res.get("payment.account.no"), weChatPayAccount.getAccountNr()).second;
field.setMouseTransparent(false);
final TradeCurrency singleTradeCurrency = wechatPayAccount.getSingleTradeCurrency();
final TradeCurrency singleTradeCurrency = weChatPayAccount.getSingleTradeCurrency();
final String nameAndCode = singleTradeCurrency != null ? singleTradeCurrency.getNameAndCode() : "";
addLabelTextField(gridPane, ++gridRow, Res.getWithCol("shared.currency"), nameAndCode);
addLimitations();
Expand All @@ -99,8 +101,7 @@ public void addFormForDisplayAccount() {
@Override
public void updateAllInputsValid() {
allInputsValid.set(isAccountNameValid()
&& wechatPayValidator.validate(wechatPayAccount.getAccountNr()).isValid
&& wechatPayAccount.getTradeCurrencies().size() > 0);
&& weChatPayValidator.validate(weChatPayAccount.getAccountNr()).isValid
&& weChatPayAccount.getTradeCurrencies().size() > 0);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
import bisq.desktop.components.paymentmethods.USPostalMoneyOrderForm;
import bisq.desktop.components.paymentmethods.UpholdForm;
import bisq.desktop.components.paymentmethods.VenmoForm;
import bisq.desktop.components.paymentmethods.WechatPayForm;
import bisq.desktop.components.paymentmethods.WeChatPayForm;
import bisq.desktop.components.paymentmethods.WesternUnionForm;
import bisq.desktop.main.overlays.popups.Popup;
import bisq.desktop.util.BSFormatter;
Expand All @@ -79,7 +79,7 @@
import bisq.desktop.util.validation.USPostalMoneyOrderValidator;
import bisq.desktop.util.validation.UpholdValidator;
import bisq.desktop.util.validation.VenmoValidator;
import bisq.desktop.util.validation.WechatPayValidator;
import bisq.desktop.util.validation.WeChatPayValidator;
import javafx.beans.value.ChangeListener;
import javafx.collections.FXCollections;
import javafx.geometry.VPos;
Expand Down Expand Up @@ -127,7 +127,7 @@ public class FiatAccountsView extends ActivatableViewAndModel<GridPane, FiatAcco
private final ChaseQuickPayValidator chaseQuickPayValidator;
private final InteracETransferValidator interacETransferValidator;
private final USPostalMoneyOrderValidator usPostalMoneyOrderValidator;
private final WechatPayValidator wechatPayValidator;
private final WeChatPayValidator weChatPayValidator;
private final AccountAgeWitnessService accountAgeWitnessService;
private final BSFormatter formatter;
private ListView<PaymentAccount> paymentAccountsListView;
Expand Down Expand Up @@ -157,7 +157,7 @@ public FiatAccountsView(FiatAccountsViewModel model,
ChaseQuickPayValidator chaseQuickPayValidator,
InteracETransferValidator interacETransferValidator,
USPostalMoneyOrderValidator usPostalMoneyOrderValidator,
WechatPayValidator wechatPayValidator,
WeChatPayValidator weChatPayValidator,
AccountAgeWitnessService accountAgeWitnessService,
BSFormatter formatter) {
super(model);
Expand All @@ -179,7 +179,7 @@ public FiatAccountsView(FiatAccountsViewModel model,
this.chaseQuickPayValidator = chaseQuickPayValidator;
this.interacETransferValidator = interacETransferValidator;
this.usPostalMoneyOrderValidator = usPostalMoneyOrderValidator;
this.wechatPayValidator = wechatPayValidator;
this.weChatPayValidator = weChatPayValidator;
this.accountAgeWitnessService = accountAgeWitnessService;
this.formatter = formatter;
}
Expand Down Expand Up @@ -447,7 +447,7 @@ private PaymentMethodForm getPaymentMethodForm(PaymentMethod paymentMethod, Paym
case PaymentMethod.ALI_PAY_ID:
return new AliPayForm(paymentAccount, accountAgeWitnessService, aliPayValidator, inputValidator, root, gridRow, formatter);
case PaymentMethod.WECHAT_PAY_ID:
return new WechatPayForm(paymentAccount, accountAgeWitnessService, wechatPayValidator, inputValidator, root, gridRow, formatter);
return new WeChatPayForm(paymentAccount, accountAgeWitnessService, weChatPayValidator, inputValidator, root, gridRow, formatter);
case PaymentMethod.SWISH_ID:
return new SwishForm(paymentAccount, accountAgeWitnessService, swishValidator, inputValidator, root, gridRow, formatter);
case PaymentMethod.CLEAR_X_CHANGE_ID:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
import bisq.desktop.components.paymentmethods.USPostalMoneyOrderForm;
import bisq.desktop.components.paymentmethods.UpholdForm;
import bisq.desktop.components.paymentmethods.VenmoForm;
import bisq.desktop.components.paymentmethods.WechatPayForm;
import bisq.desktop.components.paymentmethods.WeChatPayForm;
import bisq.desktop.components.paymentmethods.WesternUnionForm;
import bisq.desktop.main.overlays.popups.Popup;
import bisq.desktop.main.portfolio.pendingtrades.PendingTradesViewModel;
Expand Down Expand Up @@ -228,7 +228,7 @@ protected void addContent() {
gridRow = AliPayForm.addFormForBuyer(gridPane, gridRow, paymentAccountPayload);
break;
case PaymentMethod.WECHAT_PAY_ID:
gridRow = WechatPayForm.addFormForBuyer(gridPane, gridRow, paymentAccountPayload);
gridRow = WeChatPayForm.addFormForBuyer(gridPane, gridRow, paymentAccountPayload);
break;
case PaymentMethod.CLEAR_X_CHANGE_ID:
gridRow = ClearXchangeForm.addFormForBuyer(gridPane, gridRow, paymentAccountPayload);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,19 +19,11 @@

import bisq.core.util.validation.InputValidator;

public final class WechatPayValidator extends InputValidator {

///////////////////////////////////////////////////////////////////////////////////////////
// Public methods
///////////////////////////////////////////////////////////////////////////////////////////
public final class WeChatPayValidator extends InputValidator {

@Override
public ValidationResult validate(String input) {
// TODO
return super.validate(input);
}

///////////////////////////////////////////////////////////////////////////////////////////
// Private methods
///////////////////////////////////////////////////////////////////////////////////////////
}

0 comments on commit 95daeea

Please sign in to comment.