Class: RWidget
- Inherits:
-
Object
show all
- Includes:
- Parent
- Defined in:
- lib/command_handlers/models/r_widget.rb
Constant Summary
collapse
- @@default_styles =
{
"text" => SWT::BORDER,
"table" => SWT::BORDER,
"spinner" => SWT::BORDER,
"list" => SWT::BORDER | SWT::V_SCROLL,
"button" => SWT::PUSH,
}
- @@default_initializers =
{
"composite" => Proc.new {|composite| composite.setLayout(GridLayout.new) },
"table" => Proc.new do |table|
table.(true)
table.setLinesVisible(true)
end,
"table_column" => Proc.new { |table_column| table_column.setWidth(80) },
"group" => Proc.new {|group| group.setLayout(GridLayout.new) },
}
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(underscored_widget_name, parent, styles, &contents) ⇒ RWidget
styles is a comma separate list of symbols representing SWT styles in lower case
33
34
35
36
|
# File 'lib/command_handlers/models/r_widget.rb', line 33
def initialize(underscored_widget_name, parent, styles, &contents)
@widget = underscored_widget_name.swt_widget.new(parent, style(underscored_widget_name, styles))
@@default_initializers[underscored_widget_name].call(@widget) if @@default_initializers[underscored_widget_name]
end
|
Instance Attribute Details
Returns the value of attribute widget.
10
11
12
|
# File 'lib/command_handlers/models/r_widget.rb', line 10
def widget
@widget
end
|
Class Method Details
46
47
48
49
50
51
52
53
|
# File 'lib/command_handlers/models/r_widget.rb', line 46
def self.widget_exists?(underscored_widget_name)
begin
eval underscored_widget_name.camelcase(:upper)
true
rescue NameError
false
end
end
|
Instance Method Details
#add_listener(underscored_listener_name, &block) ⇒ Object
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
# File 'lib/command_handlers/models/r_widget.rb', line 87
def add_listener(underscored_listener_name, &block)
listener_method_name = underscored_listener_name.camelcase(:lower)
@widget.getClass.getMethods.each do |widget_method|
if widget_method.getName.match(/add.*Listener/)
widget_method.getParameterTypes.each do |listener_type|
listener_type.getMethods.each do |listener_method|
if (listener_method.getName == listener_method_name)
listener_class = Class.new(Object)
listener_class.send :include, (eval listener_type.to_s.sub("interface", ""))
listener = listener_class.new
listener_type.getMethods.each do |t_method|
eval "def listener.#{t_method.getName}(event) end"
end
def listener.block=(block)
@block = block
end
listener.block=block
eval "def listener.#{listener_method.getName}(event) @block.call(event) if @block end"
@widget.send(widget_method.getName, listener)
return RWidgetListener.new(listener)
end
end
end
end
end
end
|
#async_exec(&block) ⇒ Object
118
119
120
|
# File 'lib/command_handlers/models/r_widget.rb', line 118
def async_exec(&block)
@widget.getDisplay.asyncExec(RRunnable.new(&block))
end
|
#can_add_listener?(underscored_listener_name) ⇒ Boolean
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/command_handlers/models/r_widget.rb', line 71
def can_add_listener?(underscored_listener_name)
listener_method_name = underscored_listener_name.camelcase(:lower)
@widget.getClass.getMethods.each do |widget_method|
if widget_method.getName.match(/add.*Listener/)
widget_method.getParameterTypes.each do |listener_type|
listener_type.getMethods.each do |listener_method|
if (listener_method.getName == listener_method_name)
return true
end
end
end
end
end
return false
end
|
#has_attribute?(attribute_name, *args) ⇒ Boolean
38
39
40
|
# File 'lib/command_handlers/models/r_widget.rb', line 38
def has_attribute?(attribute_name, *args)
@widget.respond_to?(attribute_setter(attribute_name), args)
end
|
#has_style?(style) ⇒ Boolean
126
127
128
|
# File 'lib/command_handlers/models/r_widget.rb', line 126
def has_style?(style)
(widget.style & style.swt_constant) == style.swt_constant
end
|
#process_block(block) ⇒ Object
114
115
116
|
# File 'lib/command_handlers/models/r_widget.rb', line 114
def process_block(block)
block.call(@widget)
end
|
#set_attribute(attribute_name, *args) ⇒ Object
42
43
44
|
# File 'lib/command_handlers/models/r_widget.rb', line 42
def set_attribute(attribute_name, *args)
@widget.send(attribute_setter(attribute_name), *args)
end
|
#sync_exec(&block) ⇒ Object
122
123
124
|
# File 'lib/command_handlers/models/r_widget.rb', line 122
def sync_exec(&block)
@widget.getDisplay.syncExec(RRunnable.new(&block))
end
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/command_handlers/models/r_widget.rb', line 55
def widget_listener_exists?(underscored_listener_name)
listener_method_name = underscored_listener_name.listener_method_name(:lower)
@widget.getClass.getMethods.each do |widget_method|
if widget_method.getName.match(/add.*Listener/)
widget_method.getParameterTypes.each do |listener_type|
listener_type.getMethods.each do |listener_method|
if (listener_method.getName == listener_method_name)
return true
end
end
end
end
end
return false
end
|