Issue #6: Events carry creator information

This commit is contained in:
Kevin Jahns
2014-09-17 18:13:05 +02:00
parent 68c17f1876
commit b750d95b98
41 changed files with 219 additions and 187 deletions

View File

@@ -11,6 +11,7 @@
function Operation(uid) {
this.is_deleted = false;
this.doSync = true;
this.garbage_collected = false;
if (uid != null) {
this.doSync = !isNaN(parseInt(uid.op_number));
} else {
@@ -85,9 +86,10 @@
if (garbagecollect == null) {
garbagecollect = true;
}
if (!this.isDeleted()) {
if (!this.garbage_collected) {
this.is_deleted = true;
if (garbagecollect) {
this.garbage_collected = true;
return HB.addToGarbageCollector(this);
}
}
@@ -220,7 +222,7 @@
this.deleted_by = [];
}
if ((this.parent != null) && !this.isDeleted()) {
this.parent.callEvent("delete", this);
this.parent.callEvent("delete", this, o);
}
if (o != null) {
this.deleted_by.push(o);
@@ -228,10 +230,11 @@
garbagecollect = false;
if (this.prev_cl.isDeleted()) {
garbagecollect = true;
} else if (this.next_cl.isDeleted()) {
this.next_cl.applyDelete();
}
return Insert.__super__.applyDelete.call(this, garbagecollect);
Insert.__super__.applyDelete.call(this, garbagecollect);
if (this.next_cl.isDeleted()) {
return this.next_cl.applyDelete();
}
};
Insert.prototype.cleanup = function() {

File diff suppressed because one or more lines are too long

View File

@@ -242,27 +242,24 @@
};
ReplaceManager.prototype.setParent = function(parent, property_name) {
var addPropertyListener;
this.on('insert', (function(_this) {
return function(event, op) {
if (op.next_cl instanceof types.Delimiter) {
return _this.parent.callEvent('change', property_name);
}
};
})(this));
this.on('change', (function(_this) {
return function(event) {
return _this.parent.callEvent('change', property_name);
};
})(this));
addPropertyListener = (function(_this) {
return function(event, op) {
if (op.next_cl instanceof types.Delimiter && op.prev_cl instanceof types.Delimiter) {
_this.parent.callEvent('addProperty', property_name);
}
return _this.deleteListener('addProperty', addPropertyListener);
};
})(this);
var addPropertyListener, repl_manager;
repl_manager = this;
this.on('insert', function(event, op) {
if (op.next_cl instanceof types.Delimiter) {
return repl_manager.parent.callEvent('change', property_name, op);
}
});
this.on('change', function(event, op) {
if (repl_manager !== this) {
return repl_manager.parent.callEvent('change', property_name, op);
}
});
addPropertyListener = function(event, op) {
if (op.next_cl instanceof types.Delimiter && op.prev_cl instanceof types.Delimiter) {
repl_manager.parent.callEvent('addProperty', property_name, op);
}
return repl_manager.deleteListener('addProperty', addPropertyListener);
};
this.on('insert', addPropertyListener);
return ReplaceManager.__super__.setParent.call(this, parent);
};

File diff suppressed because one or more lines are too long

View File

@@ -174,10 +174,16 @@
WordType.prototype.setReplaceManager = function(op) {
this.saveOperation('replace_manager', op);
this.validateSavedOperations();
return this.on(['insert', 'delete'], (function(_this) {
return function() {
this.on('insert', (function(_this) {
return function(event, ins) {
var _ref;
return (_ref = _this.replace_manager) != null ? _ref.callEvent('change') : void 0;
return (_ref = _this.replace_manager) != null ? _ref.forwardEvent(_this, 'change', ins) : void 0;
};
})(this));
return this.on('delete', (function(_this) {
return function(event, ins, del) {
var _ref;
return (_ref = _this.replace_manager) != null ? _ref.forwardEvent(_this, 'change', del) : void 0;
};
})(this));
};

File diff suppressed because one or more lines are too long