class Glimmer::SWT::SpinnerProxy
Attributes
digits[R]
increment[R]
maximum[R]
minimum[R]
page_increment[R]
Public Class Methods
new(parent, args, block)
click to toggle source
Calls superclass method
# File lib/glimmer/swt/spinner_proxy.rb, line 29 def initialize(parent, args, block) super(parent, args, block) @increment = 1 @digits = 0 dom_element.spinner end
Public Instance Methods
digits=(value)
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 90 def digits=(value) @digits = value dom_element.spinner('option', 'numberFormat', "n") if @digits.to_i > 0 end
divider()
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 86 def divider ('1' + '0'*@digits.to_i).to_f end
dom()
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 159 def dom text_text = @text text_id = id text_style = css text_class = name options = {type: 'text', id: text_id, style: text_style, class: text_class, value: text_text, style: 'min-width: 27px;'} options = options.merge('disabled': 'disabled') unless @enabled @dom ||= html { input(options) }.to_s end
element()
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 95 def element 'input' end
increment=(value)
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 76 def increment=(value) @increment = value.to_f / divider dom_element.spinner('option', 'step', @increment) end
maximum=(value)
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 71 def maximum=(value) @maximum = value.to_f / divider dom_element.spinner('option', 'max', @maximum) end
minimum=(value)
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 66 def minimum=(value) @minimum = value.to_f / divider dom_element.spinner('option', 'min', @minimum) end
observation_request_to_event_mapping()
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 99 def observation_request_to_event_mapping { 'on_widget_selected' => [ { event: 'change', event_handler: -> (event_listener) { -> (event) { self.selection = event.target.value event_listener.call(event) } } }, { event: 'keyup', event_handler: -> (event_listener) { -> (event) { @keyup = true # ensures spinstop event does not set selection if caused by key up entry } } }, { event: 'spin', event_handler: -> (event_listener) { -> (event) { @keyup = false } } }, { event: 'spinstop', event_handler: -> (event_listener) { -> (event) { self.set_selection(event.target.value, format_digits: !@keyup) @keyup = false event_listener.call(event) } } }, ], 'on_modify_text' => { event: 'keyup', event_handler: -> (event_listener) { -> (event) { # TODO consider unifying this event handler with on_key_pressed by relying on its result instead of hooking another keyup event if @last_key_pressed_event.nil? || @last_key_pressed_event.doit self.text = event.target.value event_listener.call(event) else # TODO Fix doit false, it's not stopping input event.prevent event.prevent_default event.stop_propagation event.stop_immediate_propagation end } } }, } end
page_increment=(value)
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 81 def page_increment=(value) @page_increment = value.to_f / (@increment * divider) dom_element.spinner('option', 'page', @page_increment) end
selection()
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 54 def selection @selection && @selection * divider end
selection=(value, format_digits: true)
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 36 def selection=(value, format_digits: true) old_value = @selection.to_f if @selection.nil? @selection = value.to_f / divider else @selection = value.to_f end if value.to_i != old_value.to_i if format_digits && @digits.to_i > 0 new_value = "%0.#{@digits.to_i}f" % @selection dom_element.value = new_value else dom_element.value = @selection if @selection != 0 end end end
Also aliased as: set_selection
text()
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 62 def text self.selection.to_s end
text=(value)
click to toggle source
# File lib/glimmer/swt/spinner_proxy.rb, line 58 def text=(value) self.selection = value.to_f end