Class: DataList

Inherits:
Object
  • Object
show all
Defined in:
lib/repositories/containers/data_list.rb

Direct Known Subclasses

DataListStudentShort

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(objects) ⇒ DataList

Конструктор, принимает массив любых объектов



12
13
14
15
# File 'lib/repositories/containers/data_list.rb', line 12

def initialize(objects)
  self.objects = objects
  @listeners = []
end

Instance Attribute Details

#objects=(value) ⇒ Object

Sets the attribute objects

Parameters:

  • value

    the value to set the attribute objects to.



9
10
11
# File 'lib/repositories/containers/data_list.rb', line 9

def objects=(value)
  @objects = value
end

Instance Method Details

#add_listener(listener) ⇒ Object



17
18
19
# File 'lib/repositories/containers/data_list.rb', line 17

def add_listener(listener)
  @listeners << listener
end

#data_tableObject

Получить DataTable со всеми элементами.



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/repositories/containers/data_list.rb', line 39

def data_table
  result = []
  counter = 0
  objects.each do |obj|
    row = []
    row << counter
    row.push(*table_fields(obj))
    result << row
    counter += 1
  end
  DataTable.new(result)
end

#notifyObject



25
26
27
# File 'lib/repositories/containers/data_list.rb', line 25

def notify
  @listeners.each { |lst| lst.on_datalist_changed(data_table) }
end

#remove_listener(listener) ⇒ Object



21
22
23
# File 'lib/repositories/containers/data_list.rb', line 21

def remove_listener(listener)
  @listeners.delete(listener)
end

#replace_objects(objects) ⇒ Object

Добавить элементы в конец списка



53
54
55
56
# File 'lib/repositories/containers/data_list.rb', line 53

def replace_objects(objects)
  self.objects = objects.dup
  notify
end

#select_element(number) ⇒ Object

Выбрать элемент по номеру



30
31
32
# File 'lib/repositories/containers/data_list.rb', line 30

def select_element(number)
  self.selected_num = number < objects.size ? number : nil
end

#selected_idObject



34
35
36
# File 'lib/repositories/containers/data_list.rb', line 34

def selected_id
  objects[selected_num].id
end