   @property 'children', 'read'
   @property 'element',  'read'
   @property 'loaded',   'read'
+  @property 'visible'
   
   @retainedProperty 'header'
   @retainedProperty 'footer'

    ST.Destructable.method('init').call this
    @_element = element
    @_loaded = false
    @_children = ST.List.create()
    @_children.bind 'itemAdded',   this, 'childAdded'
    @_children.bind 'itemRemoved', this, 'childRemoved'

    @load()
  
  @method 'show', ->
    @visible true
  
  @method 'hide', ->
    @visible false
  
  @method '_visibleChanged', (oldValue, newValue) ->
    if newValue
      @load() unless @_loaded
      @element().show()
    else
      @element().hide()
        
  @method 'scrollTo', -> $.scrollTo @_element
  
