Class: Glimmer::SWT::WidgetBinding

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Observer

#add_dependent, #dependents, #dependents_for, proc, #register, #registrations, #registrations_for, #remove_dependent, #unregister, #unregister_all_observables, #unregister_dependents_with_observable

Methods included from Observable

#add_observer, #remove_observer

Methods included from Glimmer

#add_contents, add_contents, dsl, #dsl, extended, included, logger, #method_missing, method_missing

Methods included from Glimmer::SwtPackages

included

Constructor Details

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

Returns a new instance of WidgetBinding.



12
13
14
15
16
17
18
19
20
21
# File 'lib/glimmer/swt/widget_binding.rb', line 12

def initialize(model, property, translator = nil)
  @widget = model
  @property = property
  @translator = translator || proc {|value| value}
  add_contents(@widget) {
    on_widget_disposed { |dispose_event|
      unregister_all_observables
    }
  }
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Glimmer

Instance Attribute Details

#propertyObject (readonly)

Returns the value of attribute property.



11
12
13
# File 'lib/glimmer/swt/widget_binding.rb', line 11

def property
  @property
end

#widgetObject (readonly)

Returns the value of attribute widget.



11
12
13
# File 'lib/glimmer/swt/widget_binding.rb', line 11

def widget
  @widget
end

Instance Method Details

#call(value) ⇒ Object



22
23
24
25
# File 'lib/glimmer/swt/widget_binding.rb', line 22

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

#evaluate_propertyObject



26
27
28
# File 'lib/glimmer/swt/widget_binding.rb', line 26

def evaluate_property
  @widget.widget.send(@property)
end