Class: Glimmer::DataBinding::WidgetBinding

Inherits:
Object
  • Object
show all
Includes:
Glimmer, Observable, Observer
Defined in:
lib/glimmer/data_binding/widget_binding.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Glimmer

included

Constructor Details

#initialize(widget, property, translator = nil) ⇒ WidgetBinding

Returns a new instance of WidgetBinding.



33
34
35
36
37
38
39
40
41
42
43
# File 'lib/glimmer/data_binding/widget_binding.rb', line 33

def initialize(widget, property, translator = nil)
  @widget = widget
  @property = property
  @translator = translator || proc {|value| value} #TODO check on this it doesn't seem used

  if @widget.respond_to?(:dispose)
    @widget.on_widget_disposed do |dispose_event|
      unregister_all_observables
    end
  end
end

Instance Attribute Details

#propertyObject (readonly)

Returns the value of attribute property.



32
33
34
# File 'lib/glimmer/data_binding/widget_binding.rb', line 32

def property
  @property
end

#widgetObject (readonly)

Returns the value of attribute widget.



32
33
34
# File 'lib/glimmer/data_binding/widget_binding.rb', line 32

def widget
  @widget
end

Instance Method Details

#call(value) ⇒ Object



45
46
47
48
# File 'lib/glimmer/data_binding/widget_binding.rb', line 45

def call(value)
  converted_value = translated_value = @translator.call(value)
  @widget.set_attribute(@property, converted_value) unless evaluate_property == converted_value
end

#evaluate_propertyObject



50
51
52
# File 'lib/glimmer/data_binding/widget_binding.rb', line 50

def evaluate_property
  @widget.get_attribute(@property)
end