def source=(sou)
      @source = sou
      if @renderer
        @source.renderer = @renderer
      end
      @source.bind :ROW_CHANGED  do | o, ix|  parse_line ix ; end
      @source.bind :DIMENSION_CHANGED do | o, _meth|  parse_required() ; end
      @source.title = self.title() if self.title()
    end
def source=(sou)
      @source = sou
      if @renderer
        @source.renderer = @renderer
      end
      @source.bind :ROW_CHANGED  do | o, ix|  parse_line ix ; end
      @source.bind :DIMENSION_CHANGED do | o, _meth|  parse_required() ; end
      @source.title = self.title() if self.title()
    end
set the object that is using this textdocument (typically TextPad).
 This allows us to bind to events such as adding or deleting a row, or modification of data.