glimmer 0.3.5 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.markdown +94 -32
- data/lib/glimmer.rb +4 -6
- data/lib/glimmer/command_handler.rb +10 -0
- data/lib/glimmer/command_handler_chain_factory.rb +32 -0
- data/lib/glimmer/command_handler_chain_link.rb +21 -0
- data/lib/{command_handlers.rb → glimmer/command_handlers.rb} +21 -17
- data/lib/glimmer/command_handlers/bind_command_handler.rb +51 -0
- data/lib/glimmer/command_handlers/color_command_handler.rb +26 -0
- data/lib/glimmer/command_handlers/combo_selection_data_binding_command_handler.rb +40 -0
- data/lib/glimmer/command_handlers/data_binding_command_handler.rb +69 -0
- data/lib/glimmer/command_handlers/display_command_handler.rb +16 -0
- data/lib/glimmer/command_handlers/list_selection_data_binding_command_handler.rb +45 -0
- data/lib/glimmer/command_handlers/models/g_color.rb +34 -0
- data/lib/glimmer/command_handlers/models/g_display.rb +26 -0
- data/lib/glimmer/command_handlers/models/g_font.rb +62 -0
- data/lib/glimmer/command_handlers/models/g_runnable.rb +13 -0
- data/lib/glimmer/command_handlers/models/g_shell.rb +27 -0
- data/lib/glimmer/command_handlers/models/g_swt.rb +22 -0
- data/lib/glimmer/command_handlers/models/g_tab_item_composite.rb +33 -0
- data/lib/glimmer/command_handlers/models/g_widget.rb +199 -0
- data/lib/glimmer/command_handlers/models/g_widget_listener.rb +11 -0
- data/lib/glimmer/command_handlers/models/list_selection_binding.rb +47 -0
- data/lib/glimmer/command_handlers/models/model_binding.rb +206 -0
- data/lib/glimmer/command_handlers/models/observable.rb +11 -0
- data/lib/glimmer/command_handlers/models/observable_array.rb +104 -0
- data/lib/glimmer/command_handlers/models/observable_model.rb +105 -0
- data/lib/glimmer/command_handlers/models/observer.rb +115 -0
- data/lib/glimmer/command_handlers/models/table_items_binding.rb +45 -0
- data/lib/glimmer/command_handlers/models/tree_items_binding.rb +49 -0
- data/lib/glimmer/command_handlers/models/widget_binding.rb +29 -0
- data/lib/glimmer/command_handlers/shell_command_handler.rb +17 -0
- data/lib/glimmer/command_handlers/tab_item_command_handler.rb +21 -0
- data/lib/glimmer/command_handlers/table_column_properties_data_binding_command_handler.rb +25 -0
- data/lib/glimmer/command_handlers/table_items_data_binding_command_handler.rb +30 -0
- data/lib/glimmer/command_handlers/tree_items_data_binding_command_handler.rb +29 -0
- data/lib/glimmer/command_handlers/tree_properties_data_binding_command_handler.rb +25 -0
- data/lib/glimmer/command_handlers/widget_command_handler.rb +22 -0
- data/lib/glimmer/command_handlers/widget_listener_command_handler.rb +39 -0
- data/lib/glimmer/command_handlers/widget_method_command_handler.rb +21 -0
- data/lib/glimmer/parent.rb +7 -0
- data/lib/{shine.rb → glimmer/shine.rb} +1 -1
- data/lib/glimmer/swt_packages.rb +13 -0
- data/lib/{xml_command_handlers.rb → glimmer/xml_command_handlers.rb} +10 -8
- data/lib/glimmer/xml_command_handlers/html_command_handler.rb +47 -0
- data/lib/glimmer/xml_command_handlers/models/depth_first_search_iterator.rb +19 -0
- data/lib/glimmer/xml_command_handlers/models/name_space_visitor.rb +20 -0
- data/lib/glimmer/xml_command_handlers/models/node.rb +82 -0
- data/lib/glimmer/xml_command_handlers/models/node_visitor.rb +11 -0
- data/lib/glimmer/xml_command_handlers/models/xml_visitor.rb +61 -0
- data/lib/glimmer/xml_command_handlers/xml_command_handler.rb +20 -0
- data/lib/glimmer/xml_command_handlers/xml_name_space_command_handler.rb +33 -0
- data/lib/glimmer/xml_command_handlers/xml_tag_command_handler.rb +25 -0
- data/lib/glimmer/xml_command_handlers/xml_text_command_handler.rb +21 -0
- metadata +53 -54
- data/lib/command_handler.rb +0 -8
- data/lib/command_handler_chain_factory.rb +0 -30
- data/lib/command_handler_chain_link.rb +0 -19
- data/lib/command_handlers/bind_command_handler.rb +0 -49
- data/lib/command_handlers/color_command_handler.rb +0 -24
- data/lib/command_handlers/combo_selection_data_binding_command_handler.rb +0 -38
- data/lib/command_handlers/data_binding_command_handler.rb +0 -67
- data/lib/command_handlers/list_selection_data_binding_command_handler.rb +0 -43
- data/lib/command_handlers/models/block_observer.rb +0 -14
- data/lib/command_handlers/models/list_selection_binding.rb +0 -45
- data/lib/command_handlers/models/model_binding.rb +0 -205
- data/lib/command_handlers/models/observable.rb +0 -9
- data/lib/command_handlers/models/observable_array.rb +0 -102
- data/lib/command_handlers/models/observable_model.rb +0 -103
- data/lib/command_handlers/models/observer.rb +0 -88
- data/lib/command_handlers/models/r_color.rb +0 -32
- data/lib/command_handlers/models/r_font.rb +0 -60
- data/lib/command_handlers/models/r_runnable.rb +0 -11
- data/lib/command_handlers/models/r_shell.rb +0 -24
- data/lib/command_handlers/models/r_swt.rb +0 -18
- data/lib/command_handlers/models/r_tab_item_composite.rb +0 -31
- data/lib/command_handlers/models/r_widget.rb +0 -183
- data/lib/command_handlers/models/r_widget_listener.rb +0 -9
- data/lib/command_handlers/models/table_items_binding.rb +0 -43
- data/lib/command_handlers/models/tree_items_binding.rb +0 -47
- data/lib/command_handlers/models/widget_binding.rb +0 -27
- data/lib/command_handlers/shell_command_handler.rb +0 -15
- data/lib/command_handlers/tab_item_command_handler.rb +0 -19
- data/lib/command_handlers/table_column_properties_data_binding_command_handler.rb +0 -23
- data/lib/command_handlers/table_items_data_binding_command_handler.rb +0 -28
- data/lib/command_handlers/tree_items_data_binding_command_handler.rb +0 -27
- data/lib/command_handlers/tree_properties_data_binding_command_handler.rb +0 -23
- data/lib/command_handlers/widget_command_handler.rb +0 -20
- data/lib/command_handlers/widget_listener_command_handler.rb +0 -37
- data/lib/command_handlers/widget_method_command_handler.rb +0 -19
- data/lib/parent.rb +0 -5
- data/lib/string.rb +0 -8
- data/lib/swt_packages.rb +0 -11
- data/lib/symbol.rb +0 -10
- data/lib/xml_command_handlers/html_command_handler.rb +0 -45
- data/lib/xml_command_handlers/models/depth_first_search_iterator.rb +0 -17
- data/lib/xml_command_handlers/models/name_space_visitor.rb +0 -18
- data/lib/xml_command_handlers/models/node.rb +0 -80
- data/lib/xml_command_handlers/models/node_visitor.rb +0 -9
- data/lib/xml_command_handlers/models/xml_visitor.rb +0 -59
- data/lib/xml_command_handlers/xml_command_handler.rb +0 -18
- data/lib/xml_command_handlers/xml_name_space_command_handler.rb +0 -31
- data/lib/xml_command_handlers/xml_tag_command_handler.rb +0 -23
- data/lib/xml_command_handlers/xml_text_command_handler.rb +0 -19
@@ -1,31 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/r_widget_listener"
|
2
|
-
require File.dirname(__FILE__) + "/r_runnable"
|
3
|
-
|
4
|
-
class RTabItemComposite < RWidget
|
5
|
-
include_package 'org.eclipse.swt.widgets'
|
6
|
-
|
7
|
-
attr_reader :tab_item
|
8
|
-
def initialize(tab_item, parent, style, &contents)
|
9
|
-
super("composite", parent, style, &contents)
|
10
|
-
@tab_item = tab_item
|
11
|
-
@tab_item.widget.control = self.widget
|
12
|
-
end
|
13
|
-
|
14
|
-
def has_attribute?(attribute_name, *args)
|
15
|
-
if attribute_name.to_s == "text"
|
16
|
-
true
|
17
|
-
else
|
18
|
-
super(attribute_name, *args)
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def set_attribute(attribute_name, *args)
|
23
|
-
if attribute_name.to_s == "text"
|
24
|
-
text_value = args[0]
|
25
|
-
@tab_item.widget.text = text_value
|
26
|
-
else
|
27
|
-
super(attribute_name, *args)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
@@ -1,183 +0,0 @@
|
|
1
|
-
require_relative "r_widget_listener"
|
2
|
-
require_relative "r_runnable"
|
3
|
-
require_relative "r_color"
|
4
|
-
require_relative "r_font"
|
5
|
-
require_relative "r_swt"
|
6
|
-
|
7
|
-
class RWidget
|
8
|
-
include_package 'org.eclipse.swt'
|
9
|
-
include_package 'org.eclipse.swt.widgets'
|
10
|
-
include_package 'org.eclipse.swt.layout'
|
11
|
-
include_package 'org.eclipse.swt.graphics'
|
12
|
-
include Parent
|
13
|
-
|
14
|
-
attr_reader :widget
|
15
|
-
|
16
|
-
#TODO externalize
|
17
|
-
@@default_styles = {
|
18
|
-
"text" => RSwt[:border],
|
19
|
-
"table" => RSwt[:border],
|
20
|
-
"spinner" => RSwt[:border],
|
21
|
-
"list" => RSwt[:border, :v_scroll],
|
22
|
-
"button" => RSwt[:push],
|
23
|
-
}
|
24
|
-
|
25
|
-
#TODO externalize
|
26
|
-
@@default_initializers = {
|
27
|
-
"composite" => Proc.new {|composite| composite.setLayout(GridLayout.new) },
|
28
|
-
"table" => Proc.new do |table|
|
29
|
-
table.setHeaderVisible(true)
|
30
|
-
table.setLinesVisible(true)
|
31
|
-
end,
|
32
|
-
"table_column" => Proc.new { |table_column| table_column.setWidth(80) },
|
33
|
-
"group" => Proc.new {|group| group.setLayout(GridLayout.new) },
|
34
|
-
}
|
35
|
-
|
36
|
-
#styles is a comma separate list of symbols representing SWT styles in lower case
|
37
|
-
def initialize(underscored_widget_name, parent, styles, &contents)
|
38
|
-
@widget = underscored_widget_name.swt_widget.new(parent, style(underscored_widget_name, styles))
|
39
|
-
@@default_initializers[underscored_widget_name].call(@widget) if @@default_initializers[underscored_widget_name]
|
40
|
-
end
|
41
|
-
|
42
|
-
def has_attribute?(attribute_name, *args)
|
43
|
-
@widget.respond_to?(attribute_setter(attribute_name), args)
|
44
|
-
end
|
45
|
-
|
46
|
-
def set_attribute(attribute_name, *args)
|
47
|
-
apply_property_type_converters(attribute_name, args)
|
48
|
-
@widget.send(attribute_setter(attribute_name), *args)
|
49
|
-
end
|
50
|
-
|
51
|
-
def property_type_converters
|
52
|
-
@property_type_converters ||= {
|
53
|
-
:text => Proc.new { |value| value.to_s },
|
54
|
-
:items => Proc.new { |value| value.to_java :string},
|
55
|
-
:visible => Proc.new { |value| !!value},
|
56
|
-
:font => Proc.new do |value|
|
57
|
-
if value.is_a?(Hash)
|
58
|
-
font_properties = value
|
59
|
-
RFont.for(self).font(font_properties)
|
60
|
-
else
|
61
|
-
value
|
62
|
-
end
|
63
|
-
end,
|
64
|
-
}
|
65
|
-
end
|
66
|
-
|
67
|
-
def apply_property_type_converters(attribute_name, args)
|
68
|
-
if args.count == 1
|
69
|
-
value = args.first
|
70
|
-
converter = property_type_converters[attribute_name.to_sym]
|
71
|
-
args[0] = converter.call(value) if converter
|
72
|
-
end
|
73
|
-
if args.count == 1 && args.first.is_a?(Symbol) && args.first.to_s.start_with?('color_')
|
74
|
-
standard_color = args.first
|
75
|
-
args[0] = RColor.for(widget.getDisplay, standard_color)
|
76
|
-
elsif args.count == 1 && args.first.is_a?(RColor)
|
77
|
-
r_color = args.first
|
78
|
-
r_color.display = widget.display if r_color.display.nil? || r_color.display != widget.display
|
79
|
-
args[0] = r_color.color
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def self.widget_exists?(underscored_widget_name)
|
84
|
-
begin
|
85
|
-
eval underscored_widget_name.camelcase(:upper)
|
86
|
-
true
|
87
|
-
rescue NameError
|
88
|
-
false
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
def widget_listener_exists?(underscored_listener_name)
|
93
|
-
listener_method_name = underscored_listener_name.listener_method_name(:lower)
|
94
|
-
@widget.getClass.getMethods.each do |widget_method|
|
95
|
-
if widget_method.getName.match(/add.*Listener/)
|
96
|
-
widget_method.getParameterTypes.each do |listener_type|
|
97
|
-
listener_type.getMethods.each do |listener_method|
|
98
|
-
if (listener_method.getName == listener_method_name)
|
99
|
-
return true
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
return false
|
106
|
-
end
|
107
|
-
|
108
|
-
def can_add_listener?(underscored_listener_name)
|
109
|
-
listener_method_name = underscored_listener_name.camelcase(:lower)
|
110
|
-
@widget.getClass.getMethods.each do |widget_method|
|
111
|
-
if widget_method.getName.match(/add.*Listener/)
|
112
|
-
widget_method.getParameterTypes.each do |listener_type|
|
113
|
-
listener_type.getMethods.each do |listener_method|
|
114
|
-
if (listener_method.getName == listener_method_name)
|
115
|
-
return true
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
return false
|
122
|
-
end
|
123
|
-
|
124
|
-
def add_listener(underscored_listener_name, &block)
|
125
|
-
listener_method_name = underscored_listener_name.camelcase(:lower)
|
126
|
-
@widget.getClass.getMethods.each do |widget_method|
|
127
|
-
if widget_method.getName.match(/add.*Listener/)
|
128
|
-
widget_method.getParameterTypes.each do |listener_type|
|
129
|
-
listener_type.getMethods.each do |listener_method|
|
130
|
-
if (listener_method.getName == listener_method_name)
|
131
|
-
listener_class = Class.new(Object)
|
132
|
-
listener_class.send :include, (eval listener_type.to_s.sub("interface", ""))
|
133
|
-
listener = listener_class.new
|
134
|
-
listener_type.getMethods.each do |t_method|
|
135
|
-
eval "def listener.#{t_method.getName}(event) end"
|
136
|
-
end
|
137
|
-
def listener.block=(block)
|
138
|
-
@block = block
|
139
|
-
end
|
140
|
-
listener.block=block
|
141
|
-
eval "def listener.#{listener_method.getName}(event) @block.call(event) if @block end"
|
142
|
-
@widget.send(widget_method.getName, listener)
|
143
|
-
return RWidgetListener.new(listener)
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
def process_block(block)
|
152
|
-
block.call(@widget)
|
153
|
-
end
|
154
|
-
|
155
|
-
def async_exec(&block)
|
156
|
-
@widget.getDisplay.asyncExec(RRunnable.new(&block))
|
157
|
-
end
|
158
|
-
|
159
|
-
def sync_exec(&block)
|
160
|
-
@widget.getDisplay.syncExec(RRunnable.new(&block))
|
161
|
-
end
|
162
|
-
|
163
|
-
def has_style?(style)
|
164
|
-
(widget.style & RSwt[style]) == RSwt[style]
|
165
|
-
end
|
166
|
-
|
167
|
-
private
|
168
|
-
|
169
|
-
def style(underscored_widget_name, styles)
|
170
|
-
styles.empty? ? default_style(underscored_widget_name) : RSwt[*styles]
|
171
|
-
end
|
172
|
-
|
173
|
-
def default_style(underscored_widget_name)
|
174
|
-
style = @@default_styles[underscored_widget_name] if @@default_styles[underscored_widget_name]
|
175
|
-
style = RSwt[:none] unless style
|
176
|
-
style
|
177
|
-
end
|
178
|
-
|
179
|
-
def attribute_setter(attribute_name)
|
180
|
-
"set#{attribute_name.to_s.camelcase(:upper)}"
|
181
|
-
end
|
182
|
-
|
183
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require_relative 'observable_array'
|
2
|
-
require_relative 'observable_model'
|
3
|
-
require_relative 'observable'
|
4
|
-
require_relative 'observer'
|
5
|
-
|
6
|
-
class TableItemsBinding
|
7
|
-
include Glimmer
|
8
|
-
include Observable
|
9
|
-
include Observer
|
10
|
-
include_package 'org.eclipse.swt'
|
11
|
-
include_package 'org.eclipse.swt.widgets'
|
12
|
-
|
13
|
-
def initialize(parent, model_binding, column_properties)
|
14
|
-
@table = parent
|
15
|
-
@model_binding = model_binding
|
16
|
-
@column_properties = column_properties
|
17
|
-
update(@model_binding.evaluate_property)
|
18
|
-
model = model_binding.base_model
|
19
|
-
observe(model, model_binding.property_name_expression)
|
20
|
-
add_contents(@table) {
|
21
|
-
on_widget_disposed { |dispose_event|
|
22
|
-
unregister_all_observables
|
23
|
-
}
|
24
|
-
}
|
25
|
-
end
|
26
|
-
def update(model_collection=nil)
|
27
|
-
if model_collection and model_collection.is_a?(Array)
|
28
|
-
observe(model_collection, @column_properties)
|
29
|
-
@model_collection = model_collection
|
30
|
-
end
|
31
|
-
populate_table(@model_collection, @table, @column_properties)
|
32
|
-
end
|
33
|
-
def populate_table(model_collection, parent, column_properties)
|
34
|
-
parent.widget.removeAll
|
35
|
-
model_collection.each do |model|
|
36
|
-
table_item = TableItem.new(parent.widget, RSwt[:none])
|
37
|
-
for index in 0..(column_properties.size-1)
|
38
|
-
table_item.setText(index, model.send(column_properties[index]).to_s)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require_relative 'observable_array'
|
2
|
-
require_relative 'observable_model'
|
3
|
-
require_relative 'observable'
|
4
|
-
require_relative 'observer'
|
5
|
-
|
6
|
-
class TreeItemsBinding
|
7
|
-
include Glimmer
|
8
|
-
include Observable
|
9
|
-
include Observer
|
10
|
-
include_package 'org.eclipse.swt'
|
11
|
-
include_package 'org.eclipse.swt.widgets'
|
12
|
-
|
13
|
-
def initialize(parent, model_binding, tree_properties)
|
14
|
-
@tree = parent
|
15
|
-
@model_binding = model_binding
|
16
|
-
@tree_properties = [tree_properties].flatten.first.to_h
|
17
|
-
update(@model_binding.evaluate_property)
|
18
|
-
model = model_binding.base_model
|
19
|
-
observe(model, model_binding.property_name_expression)
|
20
|
-
add_contents(@tree) {
|
21
|
-
on_widget_disposed { |dispose_event|
|
22
|
-
unregister_all_observables
|
23
|
-
}
|
24
|
-
}
|
25
|
-
end
|
26
|
-
def update(model_tree_root_node=nil)
|
27
|
-
if model_tree_root_node and model_tree_root_node.respond_to?(@tree_properties[:children])
|
28
|
-
observe(model_tree_root_node, @tree_properties[:text])
|
29
|
-
observe(model_tree_root_node, @tree_properties[:children])
|
30
|
-
@model_tree_root_node = model_tree_root_node
|
31
|
-
end
|
32
|
-
populate_tree(@model_tree_root_node, @tree, @tree_properties)
|
33
|
-
end
|
34
|
-
def populate_tree(model_tree_root_node, parent, tree_properties)
|
35
|
-
parent.widget.removeAll
|
36
|
-
populate_tree_node(model_tree_root_node, parent.widget, tree_properties)
|
37
|
-
end
|
38
|
-
def populate_tree_node(model_tree_node, parent, tree_properties)
|
39
|
-
table_item = TreeItem.new(parent, RSwt[:none])
|
40
|
-
table_item.setText((model_tree_node && model_tree_node.send(tree_properties[:text])).to_s)
|
41
|
-
[model_tree_node && model_tree_node.send(tree_properties[:children])].flatten.to_a.compact.each do |child|
|
42
|
-
observe(child, @tree_properties[:text])
|
43
|
-
populate_tree_node(child, table_item, tree_properties)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require_relative 'observable'
|
2
|
-
require_relative 'observer'
|
3
|
-
|
4
|
-
class WidgetBinding
|
5
|
-
include Glimmer
|
6
|
-
include Observable
|
7
|
-
include Observer
|
8
|
-
|
9
|
-
attr_reader :widget, :property
|
10
|
-
def initialize(model, property, translator = nil)
|
11
|
-
@widget = model
|
12
|
-
@property = property
|
13
|
-
@translator = translator || proc {|value| value}
|
14
|
-
add_contents(@widget) {
|
15
|
-
on_widget_disposed { |dispose_event|
|
16
|
-
unregister_all_observables
|
17
|
-
}
|
18
|
-
}
|
19
|
-
end
|
20
|
-
def update(value)
|
21
|
-
converted_value = translated_value = @translator.call(value)
|
22
|
-
@widget.set_attribute(@property, converted_value) unless evaluate_property == converted_value
|
23
|
-
end
|
24
|
-
def evaluate_property
|
25
|
-
@widget.widget.send(@property)
|
26
|
-
end
|
27
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/../command_handler"
|
2
|
-
require File.dirname(__FILE__) + "/models/r_shell"
|
3
|
-
|
4
|
-
class ShellCommandHandler
|
5
|
-
include CommandHandler
|
6
|
-
|
7
|
-
def can_handle?(parent, command_symbol, *args, &block)
|
8
|
-
command_symbol.to_s == "shell"
|
9
|
-
end
|
10
|
-
|
11
|
-
def do_handle(parent, command_symbol, *args, &block)
|
12
|
-
RShell.send(:new, *args)
|
13
|
-
end
|
14
|
-
|
15
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/../command_handler"
|
2
|
-
require File.dirname(__FILE__) + "/models/r_shell"
|
3
|
-
require File.dirname(__FILE__) + "/models/r_tab_item_composite"
|
4
|
-
|
5
|
-
class TabItemCommandHandler
|
6
|
-
include CommandHandler
|
7
|
-
include Glimmer
|
8
|
-
|
9
|
-
def can_handle?(parent, command_symbol, *args, &block)
|
10
|
-
parent.is_a?(RWidget) and
|
11
|
-
command_symbol.to_s == "tab_item"
|
12
|
-
end
|
13
|
-
|
14
|
-
def do_handle(parent, command_symbol, *args, &block)
|
15
|
-
tab_item = RWidget.new(command_symbol.to_s, parent.widget, args)
|
16
|
-
RTabItemComposite.new(tab_item, parent.widget, args)
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/../command_handler"
|
2
|
-
require File.dirname(__FILE__) + "/models/r_widget"
|
3
|
-
|
4
|
-
# Responsible for providing a readable keyword (command symbol) to capture
|
5
|
-
# and return column properties for use in TreeItemsDataBindingCommandHandler
|
6
|
-
class TableColumnPropertiesDataBindingCommandHandler
|
7
|
-
include CommandHandler
|
8
|
-
|
9
|
-
include_package 'org.eclipse.swt'
|
10
|
-
include_package 'org.eclipse.swt.widgets'
|
11
|
-
|
12
|
-
def can_handle?(parent, command_symbol, *args, &block)
|
13
|
-
parent.is_a?(RWidget) and
|
14
|
-
parent.widget.is_a?(Table) and
|
15
|
-
command_symbol.to_s == "column_properties" and
|
16
|
-
block == nil
|
17
|
-
end
|
18
|
-
|
19
|
-
def do_handle(parent, command_symbol, *args, &block)
|
20
|
-
args
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/../command_handler"
|
2
|
-
require File.dirname(__FILE__) + "/models/r_widget"
|
3
|
-
require File.dirname(__FILE__) + "/models/table_items_binding"
|
4
|
-
|
5
|
-
#Depends on BindCommandHandler and TableColumnPropertiesDataBindingCommandHandler
|
6
|
-
class TableItemsDataBindingCommandHandler
|
7
|
-
include CommandHandler
|
8
|
-
|
9
|
-
include_package 'org.eclipse.swt.widgets'
|
10
|
-
|
11
|
-
def can_handle?(parent, command_symbol, *args, &block)
|
12
|
-
parent.is_a?(RWidget) and
|
13
|
-
parent.widget.is_a?(Table) and
|
14
|
-
command_symbol.to_s == "items" and
|
15
|
-
args.size == 2 and
|
16
|
-
args[0].is_a?(ModelBinding) and
|
17
|
-
args[0].evaluate_property.is_a?(Array) and
|
18
|
-
args[1].is_a?(Array) and
|
19
|
-
block == nil
|
20
|
-
end
|
21
|
-
|
22
|
-
def do_handle(parent, command_symbol, *args, &block)
|
23
|
-
model_binding = args[0]
|
24
|
-
column_properties = args[1]
|
25
|
-
TableItemsBinding.new(parent, model_binding, column_properties)
|
26
|
-
end
|
27
|
-
|
28
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + "/../command_handler"
|
2
|
-
require File.dirname(__FILE__) + "/models/r_widget"
|
3
|
-
require File.dirname(__FILE__) + "/models/tree_items_binding"
|
4
|
-
|
5
|
-
class TreeItemsDataBindingCommandHandler
|
6
|
-
include CommandHandler
|
7
|
-
|
8
|
-
include_package 'org.eclipse.swt.widgets'
|
9
|
-
|
10
|
-
def can_handle?(parent, command_symbol, *args, &block)
|
11
|
-
(parent.is_a?(RWidget)) and
|
12
|
-
(parent.widget.is_a?(Tree)) and
|
13
|
-
(command_symbol.to_s == "items") and
|
14
|
-
(args.size == 2) and
|
15
|
-
(args[0].is_a?(ModelBinding)) and
|
16
|
-
(!args[0].evaluate_property.is_a?(Array)) and
|
17
|
-
(args[1].is_a?(Array) && !args[1].empty? && args[1].first.is_a?(Hash)) and
|
18
|
-
(block == nil)
|
19
|
-
end
|
20
|
-
|
21
|
-
def do_handle(parent, command_symbol, *args, &block)
|
22
|
-
model_binding = args[0]
|
23
|
-
tree_properties = args[1]
|
24
|
-
TreeItemsBinding.new(parent, model_binding, tree_properties)
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|