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
34
35
36
37
|
# File 'lib/command_handlers/models/r_widget.rb', line 34
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.
11
12
13
|
# File 'lib/command_handlers/models/r_widget.rb', line 11
def widget
@widget
end
|
Class Method Details
51
52
53
54
55
56
57
58
|
# File 'lib/command_handlers/models/r_widget.rb', line 51
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/command_handlers/models/r_widget.rb', line 92
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
123
124
125
|
# File 'lib/command_handlers/models/r_widget.rb', line 123
def async_exec(&block)
@widget.getDisplay.asyncExec(RRunnable.new(&block))
end
|
#can_add_listener?(underscored_listener_name) ⇒ Boolean
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/command_handlers/models/r_widget.rb', line 76
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
39
40
41
|
# File 'lib/command_handlers/models/r_widget.rb', line 39
def has_attribute?(attribute_name, *args)
@widget.respond_to?(attribute_setter(attribute_name), args)
end
|
#has_style?(style) ⇒ Boolean
131
132
133
|
# File 'lib/command_handlers/models/r_widget.rb', line 131
def has_style?(style)
(widget.style & style.swt_constant) == style.swt_constant
end
|
#process_block(block) ⇒ Object
119
120
121
|
# File 'lib/command_handlers/models/r_widget.rb', line 119
def process_block(block)
block.call(@widget)
end
|
#set_attribute(attribute_name, *args) ⇒ Object
43
44
45
46
47
48
49
|
# File 'lib/command_handlers/models/r_widget.rb', line 43
def set_attribute(attribute_name, *args)
if args.count == 1 && args.first.is_a?(Symbol) && args.first.to_s.start_with?('color_')
standard_color = args.first
args[0] = RColor.for(widget.getDisplay, standard_color)
end
@widget.send(attribute_setter(attribute_name), *args)
end
|
#sync_exec(&block) ⇒ Object
127
128
129
|
# File 'lib/command_handlers/models/r_widget.rb', line 127
def sync_exec(&block)
@widget.getDisplay.syncExec(RRunnable.new(&block))
end
|
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/command_handlers/models/r_widget.rb', line 60
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
|