在我的UI中,我有2个文本字段和2个按钮。我正在使用jface数据绑定来绑定文本字段,我正在进行验证,并且根据验证成功,模型会更新,否则它将不会。希望我的按钮能够做出相应的响应。如果我的模型没有更新,就像我想要禁用我的按钮一样。更多的事情是我做了anot想要进行硬编码。如果没有硬编码,那还有什么办法。
另一方面,我想将一个按钮绑定到文本字段,以便当文本字段有一些不需要的值时,应该禁用该按钮。另一方面,我在文本字段上进行数据绑定,这将在文本字段没有正确的值,因为它不会更新它的模型。然后我想在值不合适时禁用按钮。我可以这样做。任何指针都对我有很大帮助。
答案 0 :(得分:0)
您可以使用下面的监听器。将监听器添加到Observable
org.eclipse.core.databinding.observable.value.IValueChangeListener
答案 1 :(得分:0)
经过一些研究,我发现我必须观察按钮的启用/禁用属性并将其与当前的emf数据绑定上下文绑定。我使用的功能的细节如下:
void bindEnablementButtonToValidationStatus(Button button, EMFDataBindingContext ctx) {
IObservableValue buttonEnable = SWTObservables.observeEnabled(button);
IObservableValue validationStatus = new AggregateValidationStatus(
ctx.getValidationRealm(),
ctx.getBindings(),
AggregateValidationStatus.MAX_SEVERITY);
ctx.bindValue(buttonEnable, validationStatus,
new EMFUpdateValueStrategy(
UpdateValueStrategy.POLICY_NEVER),
new EMFUpdateValueStrategy().setConverter(
new Converter(IStatus.class, Boolean.TYPE) {
public Object convert(Object fromObject) {
return new Boolean(((IStatus)fromObject).isOK());
}
}));
}