Общие обработчики
ClientValidatedEvent
com.vaadin.flow.component.shared.HasClientValidation.ClientValidatedEvent
отправляется веб-компонентом всякий раз, когда он проверяется на стороне клиента. Это событие соответствует DOM-событию validated
.
ComponentValueChangeEvent
com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent
отправляется при изменении значения компонента.
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());
}