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

@@ -272,7 +272,7 @@ module.exports = (HB)->
@deleted_by ?= []
if @parent? and not @isDeleted()
# call iff wasn't deleted earlyer
@parent.callEvent "delete", @
@parent.callEvent "delete", @, o
if o?
@deleted_by.push o
garbagecollect = false

View File

@@ -248,16 +248,18 @@ module.exports = (HB)->
# Add change listeners for parent.
#
setParent: (parent, property_name)->
@on 'insert', (event, op)=>
repl_manager = this
@on 'insert', (event, op)->
if op.next_cl instanceof types.Delimiter
@parent.callEvent 'change', property_name
@on 'change', (event)=>
@parent.callEvent 'change', property_name
repl_manager.parent.callEvent 'change', property_name, op
@on 'change', (event, op)->
if repl_manager isnt this
repl_manager.parent.callEvent 'change', property_name, op
# Call this, when the first element is inserted. Then delete the listener.
addPropertyListener = (event, op)=>
addPropertyListener = (event, op)->
if op.next_cl instanceof types.Delimiter and op.prev_cl instanceof types.Delimiter
@parent.callEvent 'addProperty', property_name
@deleteListener 'addProperty', addPropertyListener
repl_manager.parent.callEvent 'addProperty', property_name, op
repl_manager.deleteListener 'addProperty', addPropertyListener
@on 'insert', addPropertyListener
super parent

View File

@@ -196,9 +196,10 @@ module.exports = (HB)->
setReplaceManager: (op)->
@saveOperation 'replace_manager', op
@validateSavedOperations()
@on ['insert', 'delete'], ()=>
@replace_manager?.callEvent 'change'
@on 'insert', (event, ins)=>
@replace_manager?.forwardEvent @, 'change', ins
@on 'delete', (event, ins, del)=>
@replace_manager?.forwardEvent @, 'change', del
#
# Bind this WordType to a textfield or input field.
#