@Override
  public boolean validateForm() {
    if (payeeTextField != null) { // transfer slips do not use the payee field
      if (payeeTextField.getText() == null || payeeTextField.getText().isEmpty()) {
        ValidationFactory.showValidationWarning(
            payeeTextField, resources.getString("Message.Warn.EmptyPayee"));
      }
    }

    if (amountField.getDecimal().compareTo(BigDecimal.ZERO) == 0) {
      ValidationFactory.showValidationError(
          amountField, resources.getString("Message.Error.Value"));
      return false;
    }

    return true;
  }
  private DecimalTextField getInputNode() {
    if (textField != null) return textField;

    textField = detailedDecimalTextField.getEditor();
    textField.setFocusTraversable(true);
    textField.promptTextProperty().bindBidirectional(detailedDecimalTextField.promptTextProperty());

    initialDecimalFieldValue = textField.getDecimal();

    focusChangeListener =
        (observable, oldValue, hasFocus) -> {
          // RT-21454 starts here
          if (!hasFocus) {
            setTextFromTextFieldIntoComboBoxValue();
            pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDO_CLASS_STATE, false);
          } else {
            pseudoClassStateChanged(CONTAINS_FOCUS_PSEUDO_CLASS_STATE, true);
          }
        };

    textField.focusedProperty().addListener(new WeakChangeListener<>(focusChangeListener));

    return textField;
  }