     @super()
   
   @method 'setList', (newList) ->
+    self = this
     unless newList == @list    
       if @_list
         @_list.unbindAll this
       
       @_list = newList
-      @_ordered = @_list._array.slice(0)
-      for item in @_list._array
-        item._uid ||= ST.Object.UID++
       
       if @_list
+        @_list.each (item) ->
+          item._uid ||= ST.Object.UID++
+          self._ordered.push item
         @_list.bind 'itemAdded', this, 'listItemAdded'
         @_list.bind 'itemChanged', this, 'listItemChanged'
         @_list.bind 'itemRemoved', this, 'listItemRemoved'

        @_mapping.sort sortFunction
    
    html.push '<table class="tableView">'
    @generateHeaderHTML html, 'print'
    @generateBodyHTML html, 'print'
    html.push '</table>'
    
    @_mapping = oldMapping

    @_id = ST.TableView.Instances.length - 1
    @_rowsByUid = {}
    @_columns = []
    @_ordered = []
    @_sortColumn = null
    @_reverseSort = false
    @_tableClass = null
