通用事件

AttachEvent

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

BlurEvent

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

ComponentValueChangeEvent

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

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 事件。

该事件专门用于 DOM API 中的 input 事件。

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>
<label id="infoLabel" visible="false"/>

按照下面代码定义处理器:

@ViewComponent
private Label 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());
}