需求背景、
开发一个答题功能,需要计时答题,到时间不允许再答题
实现方案、
在功能单据页面添加一个倒计时控件实现倒计时功能
实现过程、
在功能单据页面添加一个倒计时控件,添加按钮可以手动计时停止,功能由后台插件实现
/**
* 倒计时控件使用方法
* 场景:在页面添加控件用来记录停留时间(用于答题计时)
* @author zhangyizhe
*
*/
public class CountdownapPlugIn extends AbstractFormPlugin implements CountDownListener{
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
this.addItemClickListeners("kdec_toolbarap");
CountDown countdown = this.getView().getControl("kdec_countdownap");
countdown.addCountDownListener(this);
}
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
CountDown countdown = this.getView().getControl("kdec_countdownap");
// 设置倒计时时间为70秒
countdown.setDuration(70);
// countdown.start();//可以在进入页面时就开始计时
}
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String key = evt.getItemKey();
CountDown countdown = this.getView().getControl("kdec_countdownap");
if (key.equals("kdec_start")) {
// 启动倒计时
countdown.start();
} else if (key.equals("kdec_pause")) {
// 暂停倒计时
countdown.pause();
}
}
/**
* 当倒计时结束时会触发此事件
* @param evt
*/
@Override
public void onCountDownEnd(CountDownEvent evt) {
CountDownListener.super.onCountDownEnd(evt);
this.getView().showMessage("时间到了!!!");
}
效果图、
平台版本、
3.0.003.39 | 3.0.003.39
踩过的坑
元数据和源代码在附件中
Countdownap.zip(3.72KB)
推荐阅读