vaadin 8 ComboBox: удалить все Validators - PullRequest
1 голос
/ 19 февраля 2020

В ваадине 7 com.vaadin.ui.ComboBox было removeAllValidators(). Есть ли замена для removeAllValidators() в vaadin 8?

1 Ответ

1 голос
/ 22 февраля 2020

В Vaadin 8, а также в последующих Vaadin 10,14 API проверки версий больше не находится в полях. Вместо этого Vaadin 8 представил новую концепцию под названием Binder , которая обрабатывает привязку данных с помощью цепочки Validator - Converter.

С помощью Binder вы можете сформировать цепочку Validator - Converter, используя шаблон построителя, см. Пример ниже

binder.forField(yearOfBirthField)
  // Validator will be run with the String value of the field
  .withValidator(text -> text.length() == 4,
    "Doesn't look like a year")
  // Converter will only be run for strings with 4 characters
  .withConverter(
    new StringToIntegerConverter("Must enter a number"))
  // Validator will be run with the converted value
  .withValidator(year -> year >= 1900 && year < 2000,
    "Person must be born in the 20th century")
  .bind(Person::getYearOfBirth, Person::setYearOfBirth);

Грубый эквивалент старого Vaadin 7, field.removeAllValidators ():

binder.removeBinding(yearOfBirthField);

Связыватель напечатан с Бином, который вы используете в своей форме. Если у вас есть только одно поле, то Binder может быть излишним, и вы можете использовать FieldBinder дополнение.

...