通用事件
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 事件。
InputEvent
当组件收到任何类型的输入时(例如,点击、或者按下某个键),发送 com.vaadin.flow.component.InputEvent
事件。
该事件专门用于 DOM API 中的 input
事件。
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());
}