想象一下基于EMF模型的JFace-form
+-------------------------------------------------+
| My text field1 : __________________ |
+-------------------------------------------------+
| Inherit value from field1: [x] |
| My text field2 : __________________ |
+-------------------------------------------------+
对应的EMF-EClass
class Model {
String field1;
boolean inherit;
String field2;
}
此处用户应输入field1
的值。然后他可以
field1
复制到field2
field2
我的问题:
(文本字段我是所有类型的小部件,包括表格)
(我想将启用/禁用field2
文本框放在此问题的范围之外)
IObservableValue value1Obs = EMFProperties.value(field1).observe(model);
IObservableValue value2Obs = EMFProperties.value(field2).observe(model);
IObservableValue inheritObs = EMFProperties.value(inherit).observe(model);
IObservableValue copyObs = new ComputedValue() {
@Override
protected Object calculate() {
if ((Boolean)inheritObs.getValue()) {
return value1Obs.getValue();
}
return value2Obs.getValue();
}
}
getBindingContext().bindValue(value2Obs, copyObs);
inherit=false
的情况下,我将field2
绑定到自身。这看起来很奇怪,将来可能会引发问题。