jface databinding:label provider 实现多列表格(Table)数据绑定的两个途径

显示需求如下图,希望将一组拥有两个字段的表与两列的table绑定在一起,实现自动显示。 在jface viewer中label provider用于提供数据对象到视图对象(viewer)显示内容的数据映射关系。也就是实现将数据模型中的不同字段的内容显示为viewer(如表格Table组件)中...

2017-01-06 13:56:02

阅读数:900

评论数:0

jface databinding:List,Set,Map对象的Observable代理封装

需求描述对于一个已经存在的集合/映射对象(普通的List,Set,Map,非observable),我们希望把将它转换成一个observable对象,这个observable对象就像是原对象的代理一样,当对observable对象操作(增加删除元素)时,实际是对原对象的操作。 jface为Lis...

2017-01-05 14:57:02

阅读数:511

评论数:0

jface databinding:使用CheckboxTableViewer实现表中(Set)对象与CheckTable中选中条目数据绑定

上一篇博文《jface databinding:可多选的widget List组件selection项目与java.util.List对象的双向数据绑定》讲述了如何实现List组件的多选项与List数据绑定的问题。 实际使用中觉得用List组件来给用户做多选,用户体验不太好,比如用户可能不知道按...

2017-01-03 12:12:03

阅读数:887

评论数:0

jface databinding:可多选的widget List组件selection项目与java.util.List对象的双向数据绑定

需求说明如下图,一个可多选的List组件,初始表有3个值,希望实现与一个java.util.List对象(保存选中的值)的双向数据绑定。当List组件中选中的内容变化时,java.util.List对象的内容也同步变化。实现Observable对象我们知道,org.eclipse.jface.da...

2017-01-02 17:39:38

阅读数:500

评论数:4

jface databinding:重写doSetValue方法ComputedValue实现双向多对一的数据绑定

需求说明如下是一个简单的测试对话框,我们希望当”起始日期”按钮为勾选时,数据对象dataBean的date属性为日期组件DateTime选择的值,否则为null. ISideEffect在这个场景中,是两个widget组件的状态绑定到一个数据对象的属性 实现上面的需求,参考我之前的博文《jfa...

2017-01-01 11:32:39

阅读数:421

评论数:0

jface databinding: 创建readonly(只读)可观察对象(observable)

java与C++有一点不同:C++有const关键字,使用const关键字,用于指定一个参数、成员变量或函数是只读不可修改的,通过const参数让对象成为readonly的,可以严格禁止外部调用修改对象的内容。而java没有类似的限制,只有一个final指定变量不可以被赋值,但还是可以通过调用变量...

2016-12-27 13:17:54

阅读数:466

评论数:0

jface databinding: Radio Button group及ISideEffect绑定数据对象的例子

下图左侧是三个Radio button,设计的要求是选择不同的radio button,右侧的三个group会分别有不同的可见状态(visible),并且将radio button状态与数据对象绑定 下面是用SelectObservableValue来实现数据绑定,并在ISideEffect的帮...

2016-12-25 18:25:06

阅读数:622

评论数:0

jface databinding:更简单的ISideEffect实现多目标单边数据绑定塈其原理分析

Eclipse 4.6 提供了名为 ISideEffect的数据绑定工具. ISideEffect可以实现当一个或多个观察对象(IObservable)改变时执行特定代码。 ISideEffect很像一个侦听器,但它却不需要开发者像侦听器那样作任何依附对象的动作(addChangeListene...

2016-12-25 17:49:15

阅读数:541

评论数:1

jface databinding:构建一个改进版的通用型数值验证器StringToNumberValidator

jface已经提供了基于AbstractStringToNumberValidator的基本类型数值验证器IValidator 但是在项目实际使用中发现这些验证器有缺点: 空字符串被视为合法,可以通过验证,而且一般情况下,我们会视空字符串为无效输入 数值解析错误时返回的信息为英文而且太详细,...

2016-12-25 11:13:28

阅读数:438

评论数:0

jface databinding:UpdateValueStrategy(数值更新策略)类详解

在jface databinding(数据绑定框架)中,org.eclipse.core.databinding.UpdateValueStrategy 更新策略类是个比较重要的类,通过了解它可以更容易理解数据绑定的整个框架,起到提纲挈领的作用。 这个类的作用是定义被绑定的源/目标两个可观察值(...

2016-12-24 17:52:34

阅读数:649

评论数:0

jface databinding:部分实现POJO对象的监测

在前一篇博文《jface databinding/PojoBindable实现对POJO对象的支持 》中,已经知道直接对POJO对象进行修改,是不能被绑定的UI组件知道的,在上一篇文章中虽然说到PojoBindable这个项目可以解决这个问题,但这个项目并不成熟,所以我没有采用这个方案,而且如果...

2016-12-23 14:46:53

阅读数:604

评论数:1

jface databinding/PojoBindable实现对POJO对象的支持

POJO对象无法被监控在jface databinding中,将普通的java bean(有get/set方法但没有通过PropertyChangeSupport实现属性监控)定义为POJO对象。 我们可以对POJO对象通过PojoProperties.value(String property...

2016-12-22 12:04:55

阅读数:487

评论数:1

jface databinding(数据挷定)中的数据转换(IConverter)和数据验证(IValidator )

前几天在做对话框界面过程中,对行文本框中的输入数值需要进行验证,于是对Text组件做了扩展,做了一个可以验证输入的字符串是否为数值的NumText组件,参见 《java SWT:限制数值输入的Text文本框通用组件》,但是在使用过程中发现,这种方式有缺陷,就是如果用户输入非法的字符,结果就是输不进...

2016-12-22 00:15:19

阅读数:763

评论数:0

jface databinding:延迟计算--ComputedValue和WritableList使用的例子

org.eclipse.core.databinding.observable.value.ComputedValue类实现IObservableValue接口,提供对象T的延迟计算特性,它提供了一个抽象方法calculate,实现这个方法就可以实现根据多个可监控对象(IObservableVal...

2016-12-21 15:06:23

阅读数:491

评论数:0

提示
确定要删除当前文章?
取消 删除