Class: PPCurses::DatePicker

Inherits:
View show all
Defined in:
lib/ppcurses/form/date_picker.rb

Overview

Ruby date objects are immutable


09-15-1950 05-04-2015 = May 4th 2015

Constant Summary collapse

DOWN_ARROW =
'∇'

Instance Attribute Summary collapse

Attributes inherited from View

#frame

Attributes inherited from ResponderManager

#first_responder

Attributes inherited from Responder

#next_responder

Instance Method Summary collapse

Methods inherited from View

#display, #setFrameOrigin, #setFrameSize

Methods inherited from ResponderManager

#accepts_first_responder, #make_first_responder

Methods inherited from Responder

#accepts_first_responder, #become_first_responder, isa, #resign_first_responder

Constructor Details

#initialize(label, initial_date = Date.today) ⇒ DatePicker

Returns a new instance of DatePicker.



18
19
20
21
22
# File 'lib/ppcurses/form/date_picker.rb', line 18

def initialize(label, initial_date = Date.today)
  @label = label
  @display_width = 13
  @date = initial_date      
end

Instance Attribute Details

#dateObject

Returns the value of attribute date.



16
17
18
# File 'lib/ppcurses/form/date_picker.rb', line 16

def date
  @date
end

#selectedObject

Does the element have focus in the form?



15
16
17
# File 'lib/ppcurses/form/date_picker.rb', line 15

def selected
  @selected
end

Instance Method Details

#clearObject



76
77
78
79
80
81
# File 'lib/ppcurses/form/date_picker.rb', line 76

def clear
   @date = Date.today
   if  @date_menu.nil? == false
     @date_menu.day = @date 
   end
end

#heightObject



36
37
38
# File 'lib/ppcurses/form/date_picker.rb', line 36

def height
  1
end

#key_down(key) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/ppcurses/form/date_picker.rb', line 55

def key_down(key)

  if key == ENTER
    
    if  @date_menu.nil?         
      @date_menu = PPCurses::DateMenu.new(@date)
    end

    @date_menu.set_origin(@combo_display_point)

    @date_menu.show
    @date_menu.menu_selection

    if @date_menu.pressed_enter
      @date = @date_menu.day
    end

  end

end

#object_value_of_selected_itemObject

Return Value The object in the receiver’s internal item list corresponding to the last item selected from the pop-up list, or nil if no item is selected.



47
48
49
50
51
52
53
# File 'lib/ppcurses/form/date_picker.rb', line 47

def object_value_of_selected_item
  if  @options_menu.nil?
    return nil
  end

  @options[@options_menu.selection]
end

#set_curs_pos(screen) ⇒ Object



40
41
42
# File 'lib/ppcurses/form/date_picker.rb', line 40

def set_curs_pos(screen)
  screen.curs_set(INVISIBLE)
end

#show(screen) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/ppcurses/form/date_picker.rb', line 25

def show(screen)
  screen.attron(A_REVERSE) if @selected
  screen.addstr("#{@label}:")

  @combo_display_point = screen.cur_point

  screen.attroff(A_REVERSE) if @selected

  screen.addstr(display_string)
end