 
     @firstRenderedRow = firstRow
     @lastRenderedRow = lastRow
+    @hasChanged = false
 
   asDisposable: (subscription) -> new Disposable -> subscription.off()

    firstVisibleRow = @getFirstVisibleRow()
    lastVisibleRow = @getLastVisibleRow()

    return if firstVisibleRow >= @firstRenderedRow and lastVisibleRow <= @lastRenderedRow

    firstRow = Math.max 0, firstVisibleRow - @rowOverdraw
    lastRow = Math.min @table.getRowsCount(), lastVisibleRow + @rowOverdraw


  getRowHeight: -> @rowHeight

  setRowHeight: (@rowHeight) -> @requestUpdate(true)

  getRowOverdraw: -> @rowOverdraw or 0

  setRowOverdraw: (@rowOverdraw) -> @requestUpdate(true)

  getFirstVisibleRow: ->
    row = Math.floor(@scrollView.scrollTop() / @getRowHeight())
