ChangeListener<Object> l = new ChangeListener<Object>() {
@Override
public void changed(ObservableValue<? extends Object> source,
Object oldValue, Object newValue) {
IDiff diff;
if (oldValue == null || newValue == null)
diff = null;
else
diff = computeDiff(oldValue, newValue);
fireChange(source, diff);