Replace marker 'observe' methods w/ ordinary 'changed' event

This commit is contained in:
Nathan Sobo
2013-04-29 19:14:48 -06:00
parent 4ca00f7347
commit 51e915c423
7 changed files with 74 additions and 114 deletions

View File

@@ -153,15 +153,6 @@ class BufferMarker
containsPoint: (point) ->
@getRange().containsPoint(point)
# Public: Sets a callback to be fired whenever a marker is changed.
observe: (callback) ->
@on 'changed', callback
cancel: => @unobserve(callback)
# Public: Removes the fired callback whenever a marker changes.
unobserve: (callback) ->
@off 'changed', callback
# Destroys the marker
destroy: ->
@buffer.destroyMarker(@id)

View File

@@ -20,7 +20,7 @@ class Cursor
constructor: ({@editSession, @marker}) ->
@updateVisibility()
@marker.observe (e) =>
@marker.on 'changed', (e) =>
@updateVisibility()
{oldHeadScreenPosition, newHeadScreenPosition} = e
{oldHeadBufferPosition, newHeadBufferPosition} = e

View File

@@ -15,7 +15,7 @@ class DisplayBufferMarker
constructor: ({@bufferMarker, @displayBuffer}) ->
@id = @bufferMarker.id
@bufferMarker.on 'destroyed', => @destroyed()
@observeBufferMarker()
###
# Public #
@@ -113,21 +113,6 @@ class DisplayBufferMarker
clearTail: ->
@bufferMarker.clearTail()
# Public: Sets a callback to be fired whenever the marker is changed.
#
# callback - A {Function} to execute
observe: (callback) ->
@observeBufferMarkerIfNeeded()
@on 'changed', callback
cancel: => @unobserve(callback)
# Public: Removes the callback that's fired whenever the marker changes.
#
# callback - A {Function} to remove
unobserve: (callback) ->
@off 'changed', callback
@unobserveBufferMarkerIfNeeded()
# Returns whether the head precedes the tail in the buffer
isReversed: ->
@bufferMarker.isReversed()
@@ -159,23 +144,19 @@ class DisplayBufferMarker
destroyed: ->
delete @displayBuffer.markers[@id]
observeBufferMarkerIfNeeded: ->
return if @subscriptionCount()
observeBufferMarker: ->
@bufferMarker.on 'destroyed', => @destroyed()
@getHeadScreenPosition() # memoize current value
@getTailScreenPosition() # memoize current value
@bufferMarkerSubscription =
@bufferMarker.observe ({oldHeadPosition, newHeadPosition, oldTailPosition, newTailPosition, bufferChanged, valid}) =>
@notifyObservers
oldHeadBufferPosition: oldHeadPosition
newHeadBufferPosition: newHeadPosition
oldTailBufferPosition: oldTailPosition
newTailBufferPosition: newTailPosition
bufferChanged: bufferChanged
valid: valid
unobserveBufferMarkerIfNeeded: ->
return if @subscriptionCount()
@bufferMarkerSubscription.cancel()
@bufferMarker.on 'changed', ({oldHeadPosition, newHeadPosition, oldTailPosition, newTailPosition, bufferChanged, valid}) =>
@notifyObservers
oldHeadBufferPosition: oldHeadPosition
newHeadBufferPosition: newHeadPosition
oldTailBufferPosition: oldTailPosition
newTailBufferPosition: newTailPosition
bufferChanged: bufferChanged
valid: valid
notifyObservers: ({oldHeadBufferPosition, oldTailBufferPosition, bufferChanged, valid} = {}) ->
oldHeadScreenPosition = @getHeadScreenPosition()

View File

@@ -19,7 +19,7 @@ class Selection
constructor: ({@cursor, @marker, @editSession, @goalBufferRange}) ->
@cursor.selection = this
@marker.observe => @screenRangeChanged()
@marker.on 'changed', => @screenRangeChanged()
@cursor.on 'destroyed.selection', =>
@cursor = null
@destroy()

View File

@@ -15,7 +15,7 @@ class MisspellingView extends View
@misspellingValid = true
@marker = @editSession.markScreenRange(range, invalidationStrategy: 'between')
@marker.observe ({newHeadScreenPosition, newTailScreenPosition, valid}) =>
@marker.on 'changed', ({newHeadScreenPosition, newTailScreenPosition, valid}) =>
@startPosition = newTailScreenPosition
@endPosition = newHeadScreenPosition
@updateDisplayPosition = valid