super(masterKeySet, detailValueType);
this.observableValueFactory = observableValueFactory;
}
protected void hookListener(final Object addedKey) {
final IObservableValue detailValue = getDetailObservableValue(addedKey);
detailValue.addValueChangeListener(new IValueChangeListener() {
public void handleValueChange(ValueChangeEvent event) {
if (!event.getObservableValue().isStale()) {
staleDetailObservables.remove(detailValue);
}
fireSingleChange(addedKey, event.diff.getOldValue(),
event.diff.getNewValue());
}
});
detailValue.addStaleListener(detailStaleListener);
}