       @listenTo(@model, 'data_update', @plot_view.request_render)
 
   render: () ->
+
+    @set_data(@mget('source'))
+
     if @mget('render_mode') == 'css'
       @_css_text()
     else

  _canvas_text: () ->
    ctx = @plot_view.canvas_view.ctx

    ctx.save()
    ctx.translate(@mget('x')+@mget('x_offset'), @mget('y')+@mget('y_offset'))
    ctx.rotate(@mget('angle'))

    @visuals.text.set_value(ctx)
    # ctx.fillText(@mget('text'), 0, 0)
    ctx.fillText(@mget('text'), 300, 300)
    ctx.restore()

  _css_text: () ->
    console.log('css not implemented')


  props: ->
    return _.extend {}, super(), {
      x:            [ p.NumberSpec                      ]
      x_units:      [ p.SpatialUnits, 'data'            ]
      y:            [ p.NumberSpec                      ]
      y_units:      [ p.SpatialUnits, 'data'            ]
      text:         [ p.StringSpec,   { field :"text" } ]
      angle:        [ p.AngleSpec,    0                 ]
      x_offset:     [ p.Number,       0                 ]
      y_offset:     [ p.Number,       0                 ]
      level:        [ p.RenderLevel, 'overlay'          ]
      source:       [ p.Instance                        ]
      x_range_name: [ p.String,      'default'          ]
      y_range_name: [ p.String,      'default'          ]
      render_mode:  [ p.RenderMode,  'canvas'           ]
    }

  defaults: ->
