private void init() {
if (eventListener == null) {
eventListener = new EventListener() {
public void handleEvent(Event evt) {
if (!updating) {
final ValueDiff diff = Diffs.createValueDiff(evt.getOldValue(), evt.getNewValue());
getRealm().exec(new Runnable() {
public void run() {
fireValueChange(diff);
}
});