Class: ViewController
- Inherits:
-
Object
- Object
- ViewController
- Defined in:
- lib/model_gem_source/controllers/view_controller.rb,
lib/model_gem_source/controllers/view_controller.rb
Overview
StudentsListViewDelegate
Instance Attribute Summary collapse
-
#selected_page ⇒ Object
Returns the value of attribute selected_page.
Instance Method Summary collapse
-
#initialize(model) ⇒ ViewController
constructor
A new instance of ViewController.
- #last_page ⇒ Object
- #next_page ⇒ Object
- #open_student_creation_window ⇒ Object
- #open_student_editing_window(id) ⇒ Object
- #pages_count ⇒ Object
- #remove_student(id) ⇒ Object
- #table_columns ⇒ Object
- #update_table ⇒ Object
Constructor Details
#initialize(model) ⇒ ViewController
Returns a new instance of ViewController.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 13 def initialize(model) self.model = model self.selected_page = 0 self.data_list = DataListStudentShort.new(list: [], data_constructor: DefaultDataConstructPattern.new()) self.model.get_students(0, 10, self.data_list) self.view = MainView.new(self) self.data_list.add_observer(self.view.filter_tab) update_table() self.view.window_view.open end |
Instance Attribute Details
#selected_page ⇒ Object
Returns the value of attribute selected_page.
11 12 13 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 11 def selected_page @selected_page end |
Instance Method Details
#last_page ⇒ Object
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 51 def last_page if self.selected_page != 0 self.selected_page -= 1 end puts self.selected_page update_table() end |
#next_page ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 41 def next_page if self.selected_page != self.pages_count - 1 self.selected_page += 1 end puts self.selected_page update_table() end |
#open_student_creation_window ⇒ Object
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 70 def open_student_creation_window() controller = CreateStudentController.new() controller.onCreate = lambda { |student| puts student model.add_student(student) update_table() } controller.ui.present end |
#open_student_editing_window(id) ⇒ Object
81 82 83 84 85 86 87 88 89 90 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 81 def open_student_editing_window(id) student = model.get_student(id) controller = EditStudentController.new(student) controller.onCreate = lambda { |student| model.replace_student(controller.edit_user_id, student) update_table() } controller.ui.present end |
#pages_count ⇒ Object
33 34 35 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 33 def pages_count (model.count / 10.0).ceil end |
#remove_student(id) ⇒ Object
92 93 94 95 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 92 def remove_student(id) model.remove_student(id) update_table() end |
#table_columns ⇒ Object
37 38 39 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 37 def table_columns self.data_list.get_names end |
#update_table ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/model_gem_source/controllers/view_controller.rb', line 62 def update_table model.get_students(self.selected_page * 10, (self.selected_page + 1) * 10, self.data_list) self.view.filter_tab..enabled = self.selected_page != self.pages_count - 1 self.view.filter_tab..enabled = self.selected_page != 0 self.view.filter_tab.table_title.text = (self.selected_page + 1).to_s + " из " + self.pages_count.to_s end |