问题标签 [eclipse-databinding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - AggregateValidationStatus 的 ChangeListener 中的 JFace/Eclipse 数据绑定触发多重验证器
我有AggregateValidationStatus
一个IChangeListener
. 每次我选择/更改和组件时都会调用侦听器,这是我需要的。validate()
我唯一的问题是我必须MultiValidator
在ChangeListener
. 可悲的是,文档很少,我发现的内容对我没有帮助。
我的ChangeListener
jface - 可选择在 EMF 属性之间复制值
问题
想象一下基于 EMF 模型的 JFace 形式
对应的 EMF-EClass
用户应在此处输入 的值field1
。那么他可以
- 选中复选框以将值从复制
field1
到field2
- 取消选中复选框并为
field2
我的问题:
- 应该如何使用 JFace 数据绑定正确实现这种模式?
(文本字段可以是各种小部件,包括表格)
(我想将启用/禁用field2
文本框排除在此问题的范围之外)
脏溶液
- 不要使用这个
- 这适用于简单的属性,但不适用于列表/表格。
- 另外,如果
inherit=false
我绑定field2
到自己。这看起来很奇怪,将来可能会导致问题。
java - JFace 数据绑定 MultiValidator 未重新评估
我设置了一个MultiValidator
来检查 2 个文本字段的总和是否等于另一个字段的值。然而,出于某种原因,验证器仅在初始化时验证一次。初始化后,它总是会成功。失败条件仅在向导中的稍后时间触发(条件在第一个向导页面失败,验证器在第三个页面)。
以下是数据绑定本身的代码以及MultiValidator
. 这dbFactory
是一个方便的类来设置绑定本身,这部分工作得很好。
我也曾经从我的另一个问题中提示过,但这一次并没有解决我的问题。
让我更难理解这个问题的另一个事实是,完全相同的代码在我的代码的另一个地方工作得很好。
为什么MultiValidator
绑定更新时不更新?我该如何解决?
如果您需要更多信息,请随时询问。
编辑:
经过更多测试,我发现ValidationStatusProvider
状态似乎没有更新为validate()
. 此外,我刚刚发现此代码在其他地方无法正常工作,尽管影响并不大,因为用户无法更改值以使第一个 IF 失败/成功。
所以基本上验证器的问题是它不会在返回ValidationStatus.OK_STATUS
所有 IF 的外部后立即更新。