JFace DataBinding 中的 MultiValidator学习和体会
来源:互联网 发布:反恐精英 起源mac版 编辑:程序博客网 时间:2024/05/21 06:19
在展开讨论前,先看看该类所在的包和继承关系。
org.eclipse.core.databinding.validation
Class MultiValidator
java.lang.Object org.eclipse.core.databinding.ValidationStatusProvider org.eclipse.core.databinding.validation.MultiValidator
MultiValidator ,A validator for cross-constraints between observables. 按字面意思为可以横跨多个observables约束的验证器。什么叫cross-constraints,感觉比较费解,下面的实例有助于理解该概念。
这是摘自在线帮助中的一个实例:
该例子通过MultiValidator来判断Text输入均为奇数或偶数,每当middle1或者middle2的值发生变化的时候就会触发validate方法。
MultiValidator也可以防止不合法的数据复制到模型中去,下面的例子就是通过validated observable包装middle1、middle2后,再与模型绑定。
而middle作为target和model的中介,很好的避免了不合法数据往模型的直接写入。
按我的理解,对middle1、middle2的验证就体现了cross-constraints,validate方法是基于middle1、middle2两个原本相对无关联的值联合后进行判断的。
个人附注:
validate方法中引用的observe的对象值发生改变,就会触发MultiValidator的validate方法,如上例只要middle1、middle2的值其中一个发生改变,就会触发validate方法。因此,我们可以利用此特性做一些其他的工作,如在主从(master -details)结构的绑定中,我们可以在当一个detail或一行记录中某个绑定值发生变化的时候,做一些跨域的校验工作(例如:与其他行数据的联合校验)。
总之,MultiValidator在JFace DataBinding中扮演了强大的角色,如果你还没有遇到类似的需求,或由于我的表达能力,你可能未能理解上面的一段个人附注。但只要记住:MultiValidator适用于跨界校验(cross-constraints),只要引用的一个观察值发生变化就会触发验证。这就足够了,只要你使用JFace DataBinding ,终归有一天会用的上的。
- JFace DataBinding 中的 MultiValidator学习和体会
- jface databinding(数据挷定)中的数据转换(IConverter)和数据验证(IValidator )
- jface databinding:延迟计算--ComputedValue和WritableList使用的例子
- VOA学习中的一些经验和体会
- 学习中的体会
- 在编程学习中的体会和简单的技巧
- javascript学习过程中的一些体会和重点(1)
- DataBinding 学习
- DataBinding 学习系列(2)详解DataBinding在xml中的使用
- 探索MVVM -- 体会DataBinding的魅力
- CMMI3学习和实施体会
- jface databinding/PojoBindable实现对POJO对象的支持
- jface databinding:部分实现POJO对象的监测
- jface databinding:UpdateValueStrategy(数值更新策略)类详解
- jface databinding: 创建readonly(只读)可观察对象(observable)
- jface databinding:输入无效数值时强制恢复初始值-updateModelToTarget
- jface databinding:List,Set,Map对象的Observable代理封装
- SWT/Jface Jface中的ProgressIndicator控件
- 网络安全
- 搜索引擎早期重要论文推荐系列【1】
- php不能和MySQL连接
- C/C++中指针和引用之相关问题研究C/C++
- 【转】 Heritrix运行和任务设置的学习总结
- JFace DataBinding 中的 MultiValidator学习和体会
- 利用U盘重装系统的方法
- ip分片技术
- 浅谈Java的输入输出流
- 多行转换成字符串
- 观察者模式的故事--Symbian
- VMVare ESX
- Hive使用杂记
- Lucene 源码剖析 五 索引文件结构(4)