Class: StudentListController

Inherits:
Object
  • Object
show all
Defined in:
lib/source/controller.rb,
lib/source/database/controller.rb

Instance Method Summary collapse

Constructor Details

#initialize(view) ⇒ StudentListController

Returns a new instance of StudentListController.



21
22
23
24
25
26
27
28
# File 'lib/source/controller.rb', line 21

def initialize(view)
  @view = view
  @data_list = DataListStudentShort.new([])
  @data_list.add_observer(@view)
  @student_list = StudentList.new(StudentListDBAdapter.new)
  adapter_path='C:/Users/Lenovo/ruby_labs_new/lab2/tests/students.yaml'
  @logger = Logger.new('controller.log')
end

Instance Method Details

#get_student_id(index) ⇒ Object



54
55
56
57
58
59
# File 'lib/source/controller.rb', line 54

def get_student_id(index)
  @data_list.select(index)
  id = @data_list.get_select
  @data_list.clear_selected
  id
end

#on_db_conn_error ⇒ Object



43
44
45
46
47
# File 'lib/source/controller.rb', line 43

def on_db_conn_error
  api = Win32API.new('user32', 'MessageBox', ['L', 'P', 'P', 'L'], 'I')
  api.call(0, "No connection to DB", "Error", 0)
  exit(false)
end

#refresh_data(k_page, number_students) ⇒ Object



32
33
34
35
36
37
38
39
40
41
# File 'lib/source/controller.rb', line 32

def refresh_data(k_page, number_students)
  #begin
  @logger.info("Refreshing data with k_page=#{k_page} and number_students=#{number_students}")
  @data_list = @student_list.get_k_n_student_short_list(k_page, number_students, @data_list)
  #rescue
  #  on_db_conn_error
  #end
  @view.update_count_students(@student_list.count_student)
  @logger.info("Data refreshed successfully with k_page=#{k_page} and number_students=#{number_students}")
end

#student_add ⇒ Object



49
50
51
52
# File 'lib/source/controller.rb', line 49

def student_add
  controller = AddStudentController.new(@student_list)
  show_dialog(controller)
end

#student_change_contact(index) ⇒ Object



77
78
79
80
81
82
83
# File 'lib/source/controller.rb', line 77

def student_change_contact(index)
  @logger.info('Changing student contact')
  puts 'update name'
  id = get_student_id(index)
  controller = ChangeStudentContactController.new(@student_list, id)
  show_dialog(controller)
end

#student_change_git(index) ⇒ Object



69
70
71
72
73
74
75
# File 'lib/source/controller.rb', line 69

def student_change_git(index)
  @logger.info('Changing student Git')
  puts 'update git'
  id = get_student_id(index)
  controller = ChangeStudentGitController.new(@student_list, id)
  show_dialog(controller)
end

#student_change_name(index) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/source/controller.rb', line 61

def student_change_name(index)
  @logger.info('Changing student name')
  puts 'update name'
  id = get_student_id(index)
  controller = ChangeStudentNameController.new(@student_list, id)
  show_dialog(controller)
end

#student_delete(indexes) ⇒ Object



84
85
86
87
88
89
90
91
92
# File 'lib/source/controller.rb', line 84

def student_delete(indexes)
  @data_list.select(*indexes)
  id_list = @data_list.get_select
  @data_list.clear_selected

  id_list.each{|student_id| @student_list.delete_student(student_id)}
  @view.refresh
  @logger.info("Deleted students with IDs: #{id_list.join(', ')}")
end