Sha256: 43875603e63672f097c9698ba2e96dab87cbff0dde05ab51282d2ded44249318

Contents?: true

Size: 1.39 KB

Versions: 2

Compression:

Stored size: 1.39 KB

Contents

# frozen_string_literal: true

class DataList
  attr_writer :list
  def initialize(objects)
    self.sel_objects = []
    self.list = objects
    @observers = []
  end

  def add_observer(observer)
    @observers.append(observer)
  end

  def notify
    @observers.each { |observer| observer.on_datalist_changed(get_data) }
  end

  def select(number)
    raise ArgumentError, "arg 'number' not Integer" if number.class != Integer
    sel_objects.append(number)
  end

  def clear_select
    self.sel_objects = []
  end

  def get_select
    sel_objects.inject([]) {|res, index| res<<list[index].id}
  end

  def clear_selected
    self.sel_objects = []
  end

  #def get_selected
  #  list_id=[]
  #  sel_objects.each do |i|
  #    list_id.append(list[i].id)
  #  end
  #  list_id
  #end

  def get_data
    result = []
    id = 0
    list.each do |o|
      elem = []
      elem << id
      # * необходима так как, если нам передадут [1,2,3], то передастся row.push(1,2,3)
      elem.push(*table_fields(o))
      result << elem
      id += 1
    end
    DataTable.new(result)
  end

  def replace_objects(objects_list)
    self.list=objects_list.dup
    notify
  end

  def get_names

  end

  def table_fields(object)
    []
  end



  private
  attr_accessor :sel_objects
  attr_reader :list
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shanti555890-1.1.5 lib/source/all_data/data_list.rb
shanti555890-1.1.4 lib/source/all_data/data_list.rb