通用事件

AttachEvent

com.vaadin.flow.component.AttachEvent 在组件添加至 UI 后发送。

BlurEvent

com.vaadin.flow.component.BlurNotifier.BlurEvent 对应 blur DOM 事件。

ClientValidatedEvent

com.vaadin.flow.component.shared.HasClientValidation.ClientValidatedEvent 由 web 组件在客户端层进行验证时发送。对应于 validated DOM 事件。

ComponentValueChangeEvent

当组件的输入值发生变化时,发送 com.vaadin.flow.component.AbstractField.ComponentValueChangeEvent 事件。

对于有参数类型的组件,可以使用 TypedValueChangeEvent,以确保输入值是正确的类型,还能避免额外的类型转换或检查。

CompositionEndEvent

当文本合成结束时发送 com.vaadin.flow.component.CompositionEndEvent 事件。对应于 compositionend DOM 事件。

CompositionStartEvent

当文本合成开始时发送 com.vaadin.flow.component.CompositionStartEvent 事件。对应于 compositionstart DOM 事件。

CompositionUpdateEvent

当文本合成更新时发送 com.vaadin.flow.component.CompositionUpdateEvent 事件。对应于 compositionupdate DOM 事件。

DetachEvent

com.vaadin.flow.component.DetachEvent 在组件从 UI 中脱离之前发送。

FocusEvent

com.vaadin.flow.component.FocusNotifier.FocusEvent 对应 focus DOM 事件。

InputEvent

当组件收到任何类型的输入时(例如,点击、或者按下某个键),发送 com.vaadin.flow.component.InputEvent 事件。对应于 input DOM 事件。

KeyDownEvent

当按下某个键时发送 com.vaadin.flow.component.KeyDownEvent 事件。对应于 keydown DOM 事件。

KeyPressEvent

当按下某个键时发送 com.vaadin.flow.component.KeyPressEvent 事件。对应于 keypress DOM 事件。

KeyUpEvent

当抬起某个键时发送 com.vaadin.flow.component.KeyUpEvent 事件。对应于 keyup DOM 事件。

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());
}