timer

timer(定时器)facet 支持以指定的时间间隔运行 UI 代码。

timer 的操作以用户请求的方式从浏览器发起,其事件处理器中可以更新 UI 组件。当创建 timer 的视图关闭之后,timer 就会停止运行。

基本用法

在视图 XML 的 facets 元素中添加 timer

<facets>
    <timer id="timer" delay="3000" autostart="true" repeating="true"/>
</facets>

创建 TimerActionEvent 事件的处理方法:

@Autowired
private Notifications notifications;

@Subscribe("timer")
public void onTimerTimerAction(final Timer.TimerActionEvent event) {
    notifications.show("Timer action");
}

视图打开后,每隔 3 秒就会调用一次处理方法。

属性

timer 在视图 XML 的 facets 元素中定义,具有下列属性:

delay

必需属性。定义定时器的时间间隔,单位为毫秒。

autostart

可选属性。默认为 false,即仅当调用 start() 方法时才会启动计时器。当设置为 true 时,计时器在视图打开时立即启动。

repeating

可选属性。启用计时器的重复执行功能。如果设置为 true,则计时器以 delay 属性设置的时间间隔反复运行。否则,仅在计时器启动后按 delay 设置的间隔运行一次。

事件和处理器

在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 CodeGenerate 菜单(Alt+Insert / Cmd+N)生成。

TimerActionEvent

TimerActionEvent 在计时器启动且 delay 属性指定的时间过去后触发。如果 repeating 属性为 true,则会周期性的发送该事件,直至计时器停止。

如需编程式注册事件的处理方法,可以使用 facet 的 addTimerActionListener() 方法。

TimerStopEvent

TimerStopEvent 当调用 facet 的 stop() 方法停止计时器后发送。

如需编程式注册事件的处理方法,可以使用 facet 的 addTimerStopListener() 方法。