Class: DataList

Inherits:
Object
  • Object
show all
Defined in:
lib/source/Data_list.rb

Direct Known Subclasses

DataListStudentShort

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*elems) ⇒ DataList

Returns a new instance of DataList.



6
7
8
9
# File 'lib/source/Data_list.rb', line 6

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

Instance Attribute Details

#objectsObject

Returns the value of attribute objects.



4
5
6
# File 'lib/source/Data_list.rb', line 4

def objects
  @objects
end

#selected_numObject

Returns the value of attribute selected_num.



4
5
6
# File 'lib/source/Data_list.rb', line 4

def selected_num
  @selected_num
end

Instance Method Details

#add_listener(listener) ⇒ Object



11
12
13
# File 'lib/source/Data_list.rb', line 11

def add_listener(listener)
	@listeners << listener
end

#append(new_data) ⇒ Object



52
53
54
# File 'lib/source/Data_list.rb', line 52

def append(new_data)
	self.objects.append(new_data)
end

#data_tableObject



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/source/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

#get_namesObject



31
32
33
# File 'lib/source/Data_list.rb', line 31

def get_names
	self.objects.first.instance_variables.map{|v| v.to_s[1..-1]}
end

#notifyObject



19
20
21
# File 'lib/source/Data_list.rb', line 19

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

#remove_listener(listener) ⇒ Object



15
16
17
# File 'lib/source/Data_list.rb', line 15

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

#replace_objects(objects) ⇒ Object



56
57
58
59
# File 'lib/source/Data_list.rb', line 56

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

#select_element(number) ⇒ Object



23
24
25
# File 'lib/source/Data_list.rb', line 23

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

#selected_idObject



27
28
29
# File 'lib/source/Data_list.rb', line 27

def selected_id
	objects[selected_num].id
end

#table_fields(_obj) ⇒ Object



35
36
37
# File 'lib/source/Data_list.rb', line 35

def table_fields(_obj)
	[]
end