windows 2008 R2 Server无法远程桌面登陆
2015-07-31 18:01
495 查看
事件拦截器是Dataset与被绑定对象的纽带,通过事件拦截器实现数据绑定
一个简单的数据绑定TextField,当Dataset发生ACTION_MOVE(当前记录行变动)事件时动态修改绑定字段内容,如下:
public interface DatasetInterceptor { public boolean doBeforeIntercept(Dataset dataset, String action, Object[] params); public void onIntercept(Dataset dataset, String action, Object[] params); public void doAfterIntercept(Dataset dataset, String action, Object[] params, int resultCode); }
一个简单的数据绑定TextField,当Dataset发生ACTION_MOVE(当前记录行变动)事件时动态修改绑定字段内容,如下:
public class DatasetText extends TextField implements DatasetFormField { private Dataset dataset; private DatasetField field; private DatasetInterceptor interceptor; public DatasetText(Dataset dataset, DatasetField field) { this.dataset = dataset; this.field = field; this.init(); this.bind(); } public DatasetText(DatasetField field) { this(null, field); } private void init() { setFieldLabel(field.getTitle()); setName(field.getName()); setWidth(field.getEditWidth()); if(dataset != null) { this.addListener(new TextFieldListenerAdapter(){ @Override public void onBlur(Field field) { dataset.set(field.getName(), DatasetText.this.getText()); } @Override public void onFocus(Field field) { DatasetText.this.selectText(); } }); } } @Override public void bind() { if(this.dataset == null) return; if(this.interceptor == null) this.interceptor = new DatasetInterceptorFormAdapter(Constants.ACTION_MOVE){ @Override public void doAction(Dataset dataset, Object params) { Record rec = dataset.getRecordAtCursor(); if(rec != null) DatasetText.this.setValue(rec.getAsString(field.getName())); } }; this.dataset.addInterceptor(this.interceptor); Record rec = dataset.getRecordAtCursor(); if(rec != null) this.setValue(rec.getAsString(field.getName())); } @Override public void unbind() { if(this.dataset == null) return; this.dataset.removeInterceptor(this.interceptor); } @Override public Dataset getDataset() { return this.dataset; } @Override public DatasetField getField() { return this.field; } }
相关文章推荐
- SparkR安装
- 使用dbcp连接池连接数据库
- 树莓派-WebCamera图像采集(OpenCV)
- 文本文件加密解密(一)
- UnicodeEncodeError: 'gbk' codec can't encode character '\ufeff' in position 0: illegal multibyte seq
- Spring Boot使用自定义的properties
- 使用 ftrace 调试 Linux 内核,第 1 部分
- java.面向对象
- c#与c++之间的交互
- Toolbar的用法,实现导航栏的切换
- HDU_1087_SuperJumping!Jumping!Jumping!
- 如何提高tableView的性能
- 搭建java,oracle,plsql开发环境
- 数据结构:链表 >> 链表按结点中第j个数据属性排序(冒泡排序法)
- vue.js学习
- 7月英语总结
- js金额计算解决精度问题
- HDOJ 1873 看病要排队(优先队列)
- Android:onItemClickListener无效
- 【Android】揭秘如何利用Service与线程制造安卓后台通知栏推送