У меня есть диалог, показывающий некоторые значения. Теперь мне нужно знать, изменил ли пользователь что-то.Eclipse DatabindingContext valuechange Listener => dirty
Все поля завернуты в 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);
Любые идеи, как достичь этого?
С наилучшими пожеланиями