def set_content list, columns=nil
        if list.is_a? Canis::Tabular
          @list = list
        elsif list.is_a? Array
          @list = list
        else
          raise "set_content expects Array not #{list.class}"
        end
        if @table_row_sorter
          @table_row_sorter.model=@list
        else
          @table_row_sorter = TableRowSorter.new @list
        end
        # adding columns setting here 2011-10-16 
        self.columns = columns if columns
        @current_index = @_header_adjustment # but this is set when columns passed
        @toprow = 0
        @second_time = false # so that reestimation of column_widths
        @repaint_required = true
        @recalc_required = true # is this used, if not remove TODO
        self
      end
def set_content list, columns=nil
        if list.is_a? Canis::Tabular
          @list = list
        elsif list.is_a? Array
          @list = list
        else
          raise "set_content expects Array not #{list.class}"
        end
        if @table_row_sorter
          @table_row_sorter.model=@list
        else
          @table_row_sorter = TableRowSorter.new @list
        end
        # adding columns setting here 2011-10-16 
        self.columns = columns if columns
        @current_index = @_header_adjustment # but this is set when columns passed
        @toprow = 0
        @second_time = false # so that reestimation of column_widths
        @repaint_required = true
        @recalc_required = true # is this used, if not remove TODO
        self
      end
send in a list of data
 sorting will only happen if data passed using set_content
 NOTE: why doesn't set_content take in columns
 @param [Array / Tabular] data to be displayed