いくつかの値を表示するダイアログがあります。ここで、ユーザーが何かを変更したかどうかを知る必要があります。
すべてのフィールドは、Eclipse の DatabindingContext にラップされます。
...
bindingContext.bindValue(process_observable_milage, process_bean_mileage, new UpdateValueStrategy(), null);
...
一部のフィールドを変更すると、モデル内の propertyChangeSupport リスナーが起動します。(プロパティのセッターが呼び出されます)。
this.firePropertyChange(SignalEntity.SIGNALNAME, this.signalname, this.signalname = name);
ここで、値が変更されたかどうかを検出するグローバル リスナーが必要です。
私は成功せずに次のように試しました:
IObservableValue globalValidity = new WritableValue();
globalValidity.addChangeListener(new IChangeListener() {
@Override
public void handleChange(ChangeEvent event) {
dirty = true;
}
});
bindingContext.bindValue(globalValidity, new AggregateValidationStatus(bindingContext.getBindings(), AggregateValidationStatus.MAX_SEVERITY), null, null);
これは、いくつかの afterConvertValidators が追加された別のクラスからのものです。そのため、代わりに「addValueChangeListener」を使用する必要があると考えましたが、これでも機能しません。
IObservableValue globalValidity = new WritableValue();
globalValidity.addValueChangeListener(new IValueChangeListener() {
@Override
public void handleValueChange(ValueChangeEvent event) {
dirty = true;
}
});
bindingContext.bindValue(globalValidity, new AggregateValidationStatus(bindingContext.getBindings(), AggregateValidationStatus.MAX_SEVERITY), null, null);
これを達成する方法はありますか?
よろしくお願いします