       supermodel: @supermodel
       schema: {type: 'array', items: LevelComponent.schema}
       data: ($.extend(true, {}, c) for c in components)
-      callbacks: {select: @onSelectAddableComponent, enter: @onAddComponentEnterPressed, dblclick: @onAddComponentDoubleClicked }
+      callbacks: {
+        select: @onSelectAddableComponent
+        enter: @onAddComponentEnterPressed
+        dblclick: @onAddComponentDoubleClicked
+        mouseenter: @onAddComponentMouseEnter 
+        mouseleave: @onAddComponentMouseLeave
+      }
       readOnly: true
       noSortable: true
       nodeClasses:


  onEnterPressed: (args...) ->
    super(args...)
    @callbacks.enter?(@)

  onMouseEnter: (e) ->
    @$el.find('.add-button').show()
    super()

  onMouseLeave: (e) ->
    @$el.find('.add-button').hide()
    super()

class ComponentNode extends TreemaObjectNode
  valueClass: 'treema-component'
  addButtonTemplate: '<span class="glyphicon-plus glyphicon add-button" style="float: right;"></span>'
  collection: false

  build: ->
    super()
    @$el.find('> .treema-row').append @addButtonTemplate
    addButton = @$el.find('.add-button')
    addButton.hide()
    addButton.click =>
      @callbacks.enter?(@)
    @$el

