Class: Glimmer::SWT::WidgetListenerProxy

Inherits:
Object
  • Object
show all
Defined in:
lib/glimmer/swt/widget_listener_proxy.rb

Overview

Proxy for widget listeners

Follows the Proxy Design Pattern

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(swt_widget:, swt_listener:, widget_add_listener_method: nil, swt_listener_class: nil, swt_listener_method: nil, event_type: nil, swt_constant: nil) ⇒ WidgetListenerProxy

Returns a new instance of WidgetListenerProxy.



10
11
12
13
14
15
16
17
18
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 10

def initialize(swt_widget:, swt_listener:, widget_add_listener_method: nil, swt_listener_class: nil, swt_listener_method: nil, event_type: nil, swt_constant: nil)
  @swt_widget = swt_widget
  @swt_listener = swt_listener
  @widget_add_listener_method = widget_add_listener_method
  @swt_listener_class = swt_listener_class
  @swt_listener_method = swt_listener_method
  @event_type = event_type
  @swt_constant = swt_constant
end

Instance Attribute Details

#event_typeObject (readonly)

Returns the value of attribute event_type.



8
9
10
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 8

def event_type
  @event_type
end

#swt_constantObject (readonly)

Returns the value of attribute swt_constant.



8
9
10
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 8

def swt_constant
  @swt_constant
end

#swt_listenerObject (readonly)

Returns the value of attribute swt_listener.



8
9
10
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 8

def swt_listener
  @swt_listener
end

#swt_listener_classObject (readonly)

Returns the value of attribute swt_listener_class.



8
9
10
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 8

def swt_listener_class
  @swt_listener_class
end

#swt_listener_methodObject (readonly)

Returns the value of attribute swt_listener_method.



8
9
10
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 8

def swt_listener_method
  @swt_listener_method
end

#swt_widgetObject (readonly)

Returns the value of attribute swt_widget.



8
9
10
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 8

def swt_widget
  @swt_widget
end

#widget_add_listener_methodObject (readonly)

Returns the value of attribute widget_add_listener_method.



8
9
10
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 8

def widget_add_listener_method
  @widget_add_listener_method
end

Instance Method Details

#unregisterObject



24
25
26
27
28
29
30
31
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 24

def unregister
  # TODO consider renaming to deregister (and in Observer too)
  if @event_type
    @swt_widget.removeListener(@event_type, @swt_listener)
  else
    @swt_widget.send(widget_remove_listener_method, @swt_listener)
  end
end

#widget_remove_listener_methodObject



20
21
22
# File 'lib/glimmer/swt/widget_listener_proxy.rb', line 20

def widget_remove_listener_method
  @widget_add_listener_method.sub('add', 'remove')
end