Fix nullpointer

This commit is contained in:
Manfred Karrer 2016-05-25 21:46:09 +02:00
parent 638d1ab916
commit 88951b5725
2 changed files with 23 additions and 13 deletions

View file

@ -51,7 +51,7 @@ abstract class BankForm extends PaymentMethodForm {
private InputTextField bankNameInputTextField, bankIdInputTextField, branchIdInputTextField, accountNrInputTextField, holderIdInputTextField; private InputTextField bankNameInputTextField, bankIdInputTextField, branchIdInputTextField, accountNrInputTextField, holderIdInputTextField;
private TextField currencyTextField; private TextField currencyTextField;
private Label holderIdLabel; private Label holderIdLabel;
private InputTextField holderNameInputTextField; protected InputTextField holderNameInputTextField;
private Label bankIdLabel; private Label bankIdLabel;
private Label branchIdLabel; private Label branchIdLabel;
private Label accountNrLabel; private Label accountNrLabel;
@ -63,6 +63,7 @@ abstract class BankForm extends PaymentMethodForm {
private Label accountTypeLabel; private Label accountTypeLabel;
private ComboBox<String> accountTypeComboBox; private ComboBox<String> accountTypeComboBox;
private boolean validatorsApplied; private boolean validatorsApplied;
private boolean useHolderID;
static int addFormForBuyer(GridPane gridPane, int gridRow, PaymentAccountContractData paymentAccountContractData) { static int addFormForBuyer(GridPane gridPane, int gridRow, PaymentAccountContractData paymentAccountContractData) {
BankAccountContractData data = (BankAccountContractData) paymentAccountContractData; BankAccountContractData data = (BankAccountContractData) paymentAccountContractData;
@ -274,7 +275,6 @@ abstract class BankForm extends PaymentMethodForm {
branchIdLabel.setText(BankUtil.getBranchIdLabel(countryCode)); branchIdLabel.setText(BankUtil.getBranchIdLabel(countryCode));
accountNrLabel.setText(BankUtil.getAccountNrLabel(countryCode)); accountNrLabel.setText(BankUtil.getAccountNrLabel(countryCode));
accountTypeLabel.setText(BankUtil.getAccountTypeLabel(countryCode)); accountTypeLabel.setText(BankUtil.getAccountTypeLabel(countryCode));
holderIdLabel.setText(BankUtil.getHolderIdLabel(countryCode));
bankNameInputTextField.setText(""); bankNameInputTextField.setText("");
bankIdInputTextField.setText(""); bankIdInputTextField.setText("");
@ -285,6 +285,7 @@ abstract class BankForm extends PaymentMethodForm {
if (BankUtil.useValidation(countryCode) && !validatorsApplied) { if (BankUtil.useValidation(countryCode) && !validatorsApplied) {
validatorsApplied = true; validatorsApplied = true;
if (useHolderID)
holderIdInputTextField.setValidator(inputValidator); holderIdInputTextField.setValidator(inputValidator);
bankNameInputTextField.setValidator(inputValidator); bankNameInputTextField.setValidator(inputValidator);
bankIdInputTextField.setValidator(new BankIdValidator(countryCode)); bankIdInputTextField.setValidator(new BankIdValidator(countryCode));
@ -292,6 +293,7 @@ abstract class BankForm extends PaymentMethodForm {
accountNrInputTextField.setValidator(new AccountNrValidator(countryCode)); accountNrInputTextField.setValidator(new AccountNrValidator(countryCode));
} else { } else {
validatorsApplied = false; validatorsApplied = false;
if (useHolderID)
holderIdInputTextField.setValidator(null); holderIdInputTextField.setValidator(null);
bankNameInputTextField.setValidator(null); bankNameInputTextField.setValidator(null);
bankIdInputTextField.setValidator(null); bankIdInputTextField.setValidator(null);
@ -299,26 +301,33 @@ abstract class BankForm extends PaymentMethodForm {
accountNrInputTextField.setValidator(null); accountNrInputTextField.setValidator(null);
} }
holderNameInputTextField.resetValidation(); holderNameInputTextField.resetValidation();
holderIdInputTextField.resetValidation();
bankNameInputTextField.resetValidation(); bankNameInputTextField.resetValidation();
bankIdInputTextField.resetValidation(); bankIdInputTextField.resetValidation();
branchIdInputTextField.resetValidation(); branchIdInputTextField.resetValidation();
accountNrInputTextField.resetValidation(); accountNrInputTextField.resetValidation();
boolean requiresHolderId = BankUtil.isHolderIdRequired(countryCode); boolean requiresHolderId = BankUtil.isHolderIdRequired(countryCode);
if (requiresHolderId) { if (requiresHolderId) {
holderNameInputTextField.minWidthProperty().unbind(); holderNameInputTextField.minWidthProperty().unbind();
holderNameInputTextField.setMinWidth(300); holderNameInputTextField.setMinWidth(300);
} else { } else {
holderNameInputTextField.minWidthProperty().bind(currencyTextField.widthProperty()); holderNameInputTextField.minWidthProperty().bind(currencyTextField.widthProperty());
holderIdInputTextField.setText("");
} }
holderIdLabel.setVisible(requiresHolderId);
holderIdLabel.setManaged(requiresHolderId); if (useHolderID) {
if (!requiresHolderId)
holderIdInputTextField.setText("");
holderIdInputTextField.resetValidation();
holderIdInputTextField.setVisible(requiresHolderId); holderIdInputTextField.setVisible(requiresHolderId);
holderIdInputTextField.setManaged(requiresHolderId); holderIdInputTextField.setManaged(requiresHolderId);
holderIdLabel.setText(BankUtil.getHolderIdLabel(countryCode));
holderIdLabel.setVisible(requiresHolderId);
holderIdLabel.setManaged(requiresHolderId);
}
boolean bankNameRequired = BankUtil.isBankNameRequired(countryCode); boolean bankNameRequired = BankUtil.isBankNameRequired(countryCode);
bankNameTuple.first.setVisible(bankNameRequired); bankNameTuple.first.setVisible(bankNameRequired);
bankNameTuple.first.setManaged(bankNameRequired); bankNameTuple.first.setManaged(bankNameRequired);
@ -438,6 +447,7 @@ abstract class BankForm extends PaymentMethodForm {
holderNameInputTextField.minWidthProperty().bind(currencyTextField.widthProperty()); holderNameInputTextField.minWidthProperty().bind(currencyTextField.widthProperty());
holderNameInputTextField.setValidator(inputValidator); holderNameInputTextField.setValidator(inputValidator);
useHolderID = true;
holderIdLabel = tuple.third; holderIdLabel = tuple.third;
holderIdLabel.setVisible(false); holderIdLabel.setVisible(false);
holderIdLabel.setManaged(false); holderIdLabel.setManaged(false);
@ -508,7 +518,7 @@ abstract class BankForm extends PaymentMethodForm {
if (BankUtil.isAccountTypeRequired(countryCode)) if (BankUtil.isAccountTypeRequired(countryCode))
result &= bankAccountContractData.getAccountType() != null; result &= bankAccountContractData.getAccountType() != null;
if (BankUtil.isHolderIdRequired(countryCode)) if (useHolderID && BankUtil.isHolderIdRequired(countryCode))
result &= holderIdInputTextField.getValidator().validate(bankAccountContractData.getHolderTaxId()).isValid; result &= holderIdInputTextField.getValidator().validate(bankAccountContractData.getHolderTaxId()).isValid;
} }
allInputsValid.set(result); allInputsValid.set(result);

View file

@ -49,7 +49,7 @@ public class SameBankForm extends BankForm {
@Override @Override
protected void addHolderNameAndId() { protected void addHolderNameAndId() {
Tuple2<Label, InputTextField> tuple = addLabelInputTextField(gridPane, ++gridRow, "Account holder name:"); Tuple2<Label, InputTextField> tuple = addLabelInputTextField(gridPane, ++gridRow, "Account holder name:");
InputTextField holderNameInputTextField = tuple.second; holderNameInputTextField = tuple.second;
holderNameInputTextField.setValidator(inputValidator); holderNameInputTextField.setValidator(inputValidator);
holderNameInputTextField.textProperty().addListener((ov, oldValue, newValue) -> { holderNameInputTextField.textProperty().addListener((ov, oldValue, newValue) -> {
bankAccountContractData.setHolderName(newValue); bankAccountContractData.setHolderName(newValue);