valueRef.set(input.getValue());
performValidation();
}
};
ListenerRef ref1 = input.addChangeListener(new Runnable() {
@Override
public void run() {
updateReader.execute(updateValueTask);
}
});
ListenerRef ref2 = this.validator.addValidator(new Validator<Void>() {
@Override
public Problem validateInput(Void inputType) {
return validator.validateInput(valueRef.get());
}
});
performValidation();
final ListenerRef result = ListenerRegistries.combineListenerRefs(ref1, ref2);
return new ListenerRef() {
@Override
public boolean isRegistered() {
return result.isRegistered();
}
@Override
public void unregister() {
result.unregister();
performValidation();
}
};
}