Общие обработчики
ClientValidatedEvent
com.vaadin.flow.component.shared.HasClientValidation.ClientValidatedEvent отправляется веб-компонентом всякий раз, когда он проверяется на стороне клиента. Это событие соответствует DOM-событию validated.
ComponentValueChangeEvent
com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent отправляется при изменении значения компонента.
| Для типизированных компонентов используйте TypedValueChangeEvent, чтобы убедиться, что входное значение имеет необходимый тип, и избежать дополнительных преобразований типов и проверок. | 
CompositionEndEvent
com.vaadin.flow.component.CompositionEndEvent отправляется, когда композиция завершена. Соответствует DOM-событию compositionend.
CompositionStartEvent
com.vaadin.flow.component.CompositionStartEvent отправляется при запуске композиции. Соответствует DOM-событию compositionstart.
CompositionUpdateEvent
com.vaadin.flow.component.CompositionUpdateEvent отправляется при обновлении композиции. Соответствует DOM-событию compositionupdate.
DetachEvent
com.vaadin.flow.component.DetachEvent отправляется перед тем, как компонент отсоединяется от UI.
InputEvent
com.vaadin.flow.component.InputEvent отправляется, когда компонент получает любой тип ввода (например, щелчок, нажатие клавиши). Соответствует DOM-событию input.
KeyDownEvent
com.vaadin.flow.component.KeyDownEvent отправляется при нажатии клавиши. Соответствует DOM-событию keydown.
KeyPressEvent
com.vaadin.flow.component.KeyPressEvent отправляется при нажатии клавиши. Соответствует DOM-событию keypress.
KeyUpEvent
com.vaadin.flow.component.KeyUpEvent отправляется при отпускании клавиши. Соответствует DOM-событию keyup.
statusChangeHandler
io.jmix.flowui.component.SupportsStatusChangeHandler используется для обработки изменений состояния компонента, например, сообщений проверки, установленных методом HasValidation.setErrorMessage(String).
Например, вместо отображения сообщений проверки под компонентом, можно использовать отдельный компонент, такой как Label:
<textField id="negativeField" datatype="int">
    <validators>
        <negative/>
    </validators>
</textField>
<div id="infoLabel" visible="false"/>Обработчик должен быть определен следующим образом:
@ViewComponent
private Div infoLabel;
@Install(to = "negativeField", subject = "statusChangeHandler")
private void negativeFieldStatusChangeHandler(
        SupportsStatusChangeHandler.StatusContext<TypedTextField<String>>
                                                          statusContext) {
    infoLabel.setVisible(true); (1)
    infoLabel.setText(statusContext.getDescription()); (2)
}| 1 | Делает infoLabelвидимым. | 
| 2 | Получает сообщение об ошибке из объекта StatusContextи устанавливает его в текстinfoLabel. | 
TypedValueChangeEvent
io.jmix.flowui.component.SupportsTypedValue.TypedValueChangeEvent отправляется, когда пользователь завершил манипуляции с компонентом. Например, после нажатия Enter или когда компонент теряет фокус.
Событие имеет следующие методы:
- 
getOldValue()возвращает типизированное значение компонента до изменения.
- 
getValue()возвращает текущее типизированное значение компонента.
@Autowired
protected Notifications notifications;
@Subscribe("nameField")
protected void onNameFieldTypedValueChange(
        SupportsTypedValue.TypedValueChangeEvent<TypedTextField<String>, String> event) {
    notifications
            .show("Before: " + event.getOldValue() +
                    ". After: " + event.getValue());
}