Class: StatusLabel

Inherits:
JLabel
  • Object
show all
Defined in:
lib/life_game_viewer/view/life_game_viewer_frame.rb

Overview

Status label showing, e.g. “Current Generation: 1, Population: 42”

Instance Method Summary collapse

Constructor Details

#initialize(table_model) ⇒ StatusLabel

Returns a new instance of StatusLabel.



164
165
166
167
168
169
170
171
172
173
# File 'lib/life_game_viewer/view/life_game_viewer_frame.rb', line 164

def initialize(table_model)
  super()
  @update_text = lambda do |current_generation_num|
    last_fragment = table_model.at_last_generation? ? " (last)" : ""
    self.text = "Current Generation#{last_fragment}: #{current_generation_num}, Population: #{table_model.number_living}"
  end
  @update_text.call(0)
  self.horizontal_alignment = JLabel::CENTER
  table_model.add_current_num_change_handler(@update_text)
end