jface databinding: Radio Button group及ISideEffect绑定数据对象的例子
来源:互联网 发布:物理补课软件 编辑:程序博客网 时间:2024/05/22 04:44
下图左侧是三个Radio button,设计的要求是选择不同的radio button,右侧的三个group会分别有不同的可见状态(visible),并且将radio button状态与数据对象绑定
下面是用SelectObservableValue来实现数据绑定,并在ISideEffect的帮助下完成右边三个组件的可见状态控制。
// 创建SelectObservableValue 对象 SelectObservableValue selectedRadioButtonObservable = new SelectObservableValue(); // 分别将左侧三个Radio Button加入SelectObservableValue ,并指定当其实被选中时SelectObservableValue 对象的Value(如ImageSoureConfig.Type.FILE) selectedRadioButtonObservable.addOption(ImageSoureConfig.Type.FILE, WidgetProperties.selection().observe(this.btnSourceFolder)); selectedRadioButtonObservable.addOption(ImageSoureConfig.Type.FILE_WITH_FACE, WidgetProperties.selection().observe(this.btnSourceFolderByDetect)); selectedRadioButtonObservable.addOption(ImageSoureConfig.Type.DB, WidgetProperties.selection().observe(this.btnSourceDb)); // 将SelectObservableValue 的value与数据对象type绑定 // observablesourceConfig对象类型参见本文附参考资料中的《jface databinding:部分实现POJO对象的监测》 observablesourceConfig.bindValue(selectedRadioButtonObservable, "type"); // 调用ISideEffect.create实现右侧三个组件的可见状态控制 ISideEffect.create( // lambda表达,返回selectedRadioButtonObservable的值 selectedRadioButtonObservable::getValue, // lambda表达式 (type)->{ // 根据selectedRadioButtonObservable的值来控制右侧三个组件的可见状态控制 switch((ImageSoureConfig.Type)type){ case FILE: groupFolder.setVisible(true); groupDetect.setVisible(false); groupDb.setVisible(false); break; case FILE_WITH_FACE: groupFolder.setVisible(true); groupDetect.setVisible(true); groupDb.setVisible(false); break; case DB: groupFolder.setVisible(false); groupDetect.setVisible(false); groupDb.setVisible(true); break; } });
关于ISideEffect的介绍参见我上一篇博客《jface databinding:更简单的ISideEffect实现多目标单边数据绑定塈其原理分析》
参考资料:
《Binding values of a radio button group》
《jface databinding:部分实现POJO对象的监测》
《SelectObservableValue》
0 0
- jface databinding: Radio Button group及ISideEffect绑定数据对象的例子
- jface databinding:更简单的ISideEffect实现多目标单边数据绑定塈其原理分析
- radio button 绑定数据
- jface databinding:可多选的widget List组件selection项目与java.util.List对象的双向数据绑定
- jface databinding:使用CheckboxTableViewer实现表中(Set)对象与CheckTable中选中条目数据绑定
- jface databinding:重写doSetValue方法ComputedValue实现双向多对一的数据绑定
- jface databinding:label provider 实现多列表格(Table)数据绑定的两个途径
- Android 中DataBinding的使用及数据的绑定
- jface databinding:延迟计算--ComputedValue和WritableList使用的例子
- RADIO BUTTON group
- jface databinding/PojoBindable实现对POJO对象的支持
- jface databinding:部分实现POJO对象的监测
- jface databinding:List,Set,Map对象的Observable代理封装
- NetBeans中拖拽Radio Button组成Button Group的方法
- MFC-combox和listbox、radio button、group box等控件及onTimer函数的应用
- AngularJs对象数据的绑定例子
- 仅对具有 DataBinding 事件的对象提供数据绑定表达式支持。System.Web.UI.WebControls.HyperLinkField 没有 DataBinding 事件。
- JFace 数据绑定
- 不堆砌公式,用最直观的方式带你入门深度学习
- js之正则表达式(1)笔记
- 连续子数组的最大和
- drools 6.5 -规则引擎入门
- 正确理解差异的“专业意义”与“统计学意义”
- jface databinding: Radio Button group及ISideEffect绑定数据对象的例子
- Angular2文档学习的知识点摘要——架构概览、根模块
- 设计模式系列之十三代理模式
- Python -- pandas
- 21、(知识篇)Mybatis02使用(嵌套结果/嵌套查询)
- Leetcode Merge Two Sorted Lists(合并两个有序表)
- android操作SQLite数据库
- C语言与汇编语言混合编程
- JsonCpp遍历json