glimmer-dsl-opal 0.0.5 → 0.1.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/CHANGELOG.md +41 -0
- data/README.md +1003 -58
- data/VERSION +1 -1
- data/lib/glimmer-dsl-opal.rb +26 -8
- data/lib/glimmer/data_binding/element_binding.rb +1 -1
- data/lib/glimmer/data_binding/ext/observable_model.rb +40 -0
- data/lib/glimmer/data_binding/list_selection_binding.rb +1 -1
- data/lib/glimmer/data_binding/table_items_binding.rb +70 -0
- data/lib/glimmer/dsl/opal/async_exec_expression.rb +17 -0
- data/lib/glimmer/dsl/opal/column_properties_expression.rb +22 -0
- data/lib/glimmer/dsl/opal/combo_selection_data_binding_expression.rb +2 -2
- data/lib/glimmer/dsl/opal/dsl.rb +10 -12
- data/lib/glimmer/dsl/opal/layout_data_expression.rb +2 -2
- data/lib/glimmer/dsl/opal/{text_expression.rb → layout_expression.rb} +5 -5
- data/lib/glimmer/dsl/opal/list_selection_data_binding_expression.rb +2 -3
- data/lib/glimmer/dsl/opal/message_box_expression.rb +20 -0
- data/lib/glimmer/dsl/opal/observe_expression.rb +32 -0
- data/lib/glimmer/dsl/opal/shell_expression.rb +2 -2
- data/lib/glimmer/dsl/opal/{composite_expression.rb → table_column_expression.rb} +3 -3
- data/lib/glimmer/dsl/opal/{list_expression.rb → table_expression.rb} +3 -3
- data/lib/glimmer/dsl/opal/table_items_data_binding_expression.rb +29 -0
- data/lib/glimmer/dsl/opal/widget_expression.rb +23 -0
- data/lib/glimmer/opal/display_proxy.rb +23 -0
- data/lib/glimmer/opal/element_proxy.rb +48 -13
- data/lib/glimmer/swt/browser_proxy.rb +27 -0
- data/lib/glimmer/swt/button_proxy.rb +40 -0
- data/lib/glimmer/{opal/select_proxy.rb → swt/combo_proxy.rb} +15 -11
- data/lib/glimmer/swt/composite_proxy.rb +31 -0
- data/lib/glimmer/{opal → swt}/event_listener_proxy.rb +1 -1
- data/lib/glimmer/{opal → swt}/grid_layout_proxy.rb +7 -18
- data/lib/glimmer/swt/label_proxy.rb +30 -0
- data/lib/glimmer/swt/layout_data_proxy.rb +52 -0
- data/lib/glimmer/swt/layout_proxy.rb +60 -0
- data/lib/glimmer/{opal → swt}/list_proxy.rb +18 -15
- data/lib/glimmer/swt/message_box_proxy.rb +146 -0
- data/lib/glimmer/{opal → swt}/point.rb +1 -1
- data/lib/glimmer/{opal → swt}/property_owner.rb +1 -1
- data/lib/glimmer/swt/shell_proxy.rb +235 -0
- data/lib/glimmer/swt/tab_folder_proxy.rb +52 -0
- data/lib/glimmer/swt/tab_item_proxy.rb +101 -0
- data/lib/glimmer/swt/table_column_proxy.rb +56 -0
- data/lib/glimmer/swt/table_item_proxy.rb +147 -0
- data/lib/glimmer/swt/table_proxy.rb +177 -0
- data/lib/glimmer/swt/text_proxy.rb +46 -0
- data/lib/glimmer/swt/widget_proxy.rb +389 -0
- data/lib/jquery.js +2 -0
- data/lib/samples/elaborate/contact_manager.rb +2 -3
- data/lib/samples/elaborate/login.rb +0 -1
- data/lib/samples/elaborate/tic_tac_toe.rb +5 -5
- data/lib/samples/hello/hello_computed.rb +19 -19
- data/lib/samples/hello/hello_tab.rb +2 -2
- metadata +92 -59
- data/lib/glimmer/config.rb +0 -22
- data/lib/glimmer/dsl/engine.rb +0 -193
- data/lib/glimmer/dsl/expression.rb +0 -42
- data/lib/glimmer/dsl/expression_handler.rb +0 -48
- data/lib/glimmer/dsl/opal/browser_expression.rb +0 -17
- data/lib/glimmer/dsl/opal/button_expression.rb +0 -18
- data/lib/glimmer/dsl/opal/combo_expression.rb +0 -17
- data/lib/glimmer/dsl/opal/grid_layout_expression.rb +0 -17
- data/lib/glimmer/dsl/opal/label_expression.rb +0 -17
- data/lib/glimmer/dsl/parent_expression.rb +0 -12
- data/lib/glimmer/dsl/static_expression.rb +0 -36
- data/lib/glimmer/dsl/top_level_expression.rb +0 -7
- data/lib/glimmer/error.rb +0 -6
- data/lib/glimmer/invalid_keyword_error.rb +0 -6
- data/lib/glimmer/opal/div_proxy.rb +0 -20
- data/lib/glimmer/opal/document_proxy.rb +0 -90
- data/lib/glimmer/opal/iframe_proxy.rb +0 -23
- data/lib/glimmer/opal/input_proxy.rb +0 -41
- data/lib/glimmer/opal/label_proxy.rb +0 -25
- data/lib/glimmer/opal/layout_data_proxy.rb +0 -31
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
data/lib/glimmer-dsl-opal.rb
CHANGED
@@ -1,10 +1,28 @@
|
|
1
1
|
require 'opal'
|
2
|
-
|
3
|
-
require '
|
2
|
+
if RUBY_PLATFORM == 'opal'
|
3
|
+
require 'opal-async'
|
4
|
+
require 'jquery' # included in glimmer-dsl-opal
|
5
|
+
require 'opal-jquery'
|
6
|
+
require 'glimmer'
|
4
7
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
# Spiking async logging
|
9
|
+
# logger = Glimmer::Config.logger
|
10
|
+
# original_add_method = logger.class.instance_method(:add)
|
11
|
+
# logger.define_singleton_method("__original_add", original_add_method)
|
12
|
+
# logger.singleton_class.send(:define_method, :add) do |*args|
|
13
|
+
# Async::Timeout.new 10000 do
|
14
|
+
# __original_add(*args)
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
|
18
|
+
GLIMMER_DSL_OPAL_ROOT = File.expand_path('../..', __FILE__)
|
19
|
+
GLIMMER_DSL_OPAL_LIB = File.join(GLIMMER_DSL_OPAL_ROOT, 'lib')
|
20
|
+
|
21
|
+
$LOAD_PATH.unshift(GLIMMER_DSL_OPAL_LIB)
|
22
|
+
|
23
|
+
require 'glimmer/dsl/opal/dsl'
|
24
|
+
require 'glimmer/data_binding/ext/observable_model'
|
25
|
+
|
26
|
+
require 'glimmer-dsl-xml'
|
27
|
+
Element.alias_native :replace_with, :replaceWith
|
28
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'glimmer/data_binding/observable'
|
2
|
+
require 'glimmer/data_binding/observer'
|
3
|
+
require 'glimmer/opal/display_proxy'
|
4
|
+
|
5
|
+
# This ensures all data-binding events happen async and block on modal display
|
6
|
+
|
7
|
+
module Glimmer
|
8
|
+
module DataBinding
|
9
|
+
# TODO prefix utility methods with double-underscore
|
10
|
+
module ObservableModel
|
11
|
+
include Observable
|
12
|
+
# include Glimmer
|
13
|
+
|
14
|
+
def add_property_writer_observers(property_name)
|
15
|
+
property_writer_name = "#{property_name}="
|
16
|
+
method(property_writer_name)
|
17
|
+
ensure_array_object_observer(property_name, send(property_name))
|
18
|
+
begin
|
19
|
+
method("__original_#{property_writer_name}")
|
20
|
+
rescue
|
21
|
+
old_method = self.class.instance_method(property_writer_name)
|
22
|
+
define_singleton_method("__original_#{property_writer_name}", old_method)
|
23
|
+
define_singleton_method(property_writer_name) do |value|
|
24
|
+
old_value = self.send(property_name)
|
25
|
+
unregister_dependent_observers(property_name, old_value)
|
26
|
+
self.send("__original_#{property_writer_name}", value)
|
27
|
+
# Glimmer::Opal::DisplayProxy.instance.async_exec do
|
28
|
+
notify_observers(property_name)
|
29
|
+
ensure_array_object_observer(property_name, value, old_value)
|
30
|
+
# end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
rescue => e
|
34
|
+
# ignore writing if no property writer exists
|
35
|
+
Glimmer::Config.logger&.debug "No need to observe property writer: #{property_writer_name}\n#{e.message}\n#{e.backtrace.join("\n")}"
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -39,7 +39,7 @@ module Glimmer
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def call(value)
|
42
|
-
PROPERTY_TYPE_UPDATERS[@property_type].call(@element_proxy, value) unless evaluate_property == value
|
42
|
+
PROPERTY_TYPE_UPDATERS[@property_type].call(@element_proxy, value) unless !evaluate_property.is_a?(Array) && evaluate_property == value
|
43
43
|
end
|
44
44
|
|
45
45
|
def evaluate_property
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'glimmer/data_binding/observable_array'
|
2
|
+
require 'glimmer/data_binding/observable_model'
|
3
|
+
require 'glimmer/data_binding/observable'
|
4
|
+
require 'glimmer/data_binding/observer'
|
5
|
+
require 'glimmer/swt/table_proxy'
|
6
|
+
require 'glimmer/swt/table_item_proxy'
|
7
|
+
|
8
|
+
module Glimmer
|
9
|
+
module DataBinding
|
10
|
+
class TableItemsBinding
|
11
|
+
include DataBinding::Observable
|
12
|
+
include DataBinding::Observer
|
13
|
+
|
14
|
+
def initialize(parent, model_binding, column_properties)
|
15
|
+
@last_model_collection = nil
|
16
|
+
@table = parent
|
17
|
+
@model_binding = model_binding
|
18
|
+
@column_properties = column_properties
|
19
|
+
if @table.respond_to?(:column_properties=)
|
20
|
+
@table.column_properties = @column_properties
|
21
|
+
##else # assume custom widget
|
22
|
+
## @table.body_root.column_properties = @column_properties
|
23
|
+
end
|
24
|
+
call(@model_binding.evaluate_property)
|
25
|
+
model = model_binding.base_model
|
26
|
+
observe(model, model_binding.property_name_expression)
|
27
|
+
##@table.on_widget_disposed do |dispose_event| # doesn't seem needed within Opal
|
28
|
+
## unregister_all_observables
|
29
|
+
##end
|
30
|
+
end
|
31
|
+
|
32
|
+
def call(new_model_collection=nil)
|
33
|
+
if new_model_collection and new_model_collection.is_a?(Array)
|
34
|
+
observe(new_model_collection, @column_properties)
|
35
|
+
@model_collection = new_model_collection
|
36
|
+
end
|
37
|
+
populate_table(@model_collection, @table, @column_properties)
|
38
|
+
sort_table(@model_collection, @table, @column_properties)
|
39
|
+
end
|
40
|
+
|
41
|
+
def populate_table(model_collection, parent, column_properties)
|
42
|
+
return if model_collection&.sort_by(&:hash) == @last_model_collection&.sort_by(&:hash)
|
43
|
+
@last_model_collection = model_collection
|
44
|
+
# TODO improve performance
|
45
|
+
selected_table_item_models = parent.selection.map(&:get_data)
|
46
|
+
old_items = parent.items
|
47
|
+
old_item_ids_per_model = old_items.reduce({}) {|hash, item| hash.merge(item.get_data.hash => item.id) }
|
48
|
+
parent.remove_all
|
49
|
+
model_collection.each do |model|
|
50
|
+
table_item = Glimmer::SWT::TableItemProxy.new(parent)
|
51
|
+
for index in 0..(column_properties.size-1)
|
52
|
+
table_item.set_text(index, model.send(column_properties[index]).to_s)
|
53
|
+
end
|
54
|
+
table_item.set_data(model)
|
55
|
+
table_item.id = old_item_ids_per_model[model.hash] if old_item_ids_per_model[model.hash]
|
56
|
+
end
|
57
|
+
selected_table_items = parent.search {|item| selected_table_item_models.include?(item.get_data) }
|
58
|
+
selected_table_items = [parent.items.first] if selected_table_items.empty? && !parent.items.empty?
|
59
|
+
parent.selection = selected_table_items unless selected_table_items.empty?
|
60
|
+
parent.redraw
|
61
|
+
end
|
62
|
+
|
63
|
+
def sort_table(model_collection, parent, column_properties)
|
64
|
+
return if model_collection == @last_model_collection
|
65
|
+
parent.items = parent.items.sort_by { |item| model_collection.index(item.get_data) }
|
66
|
+
@last_model_collection = model_collection
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'glimmer/dsl/static_expression'
|
2
|
+
require 'glimmer/dsl/top_level_expression'
|
3
|
+
require 'glimmer/opal/display_proxy'
|
4
|
+
|
5
|
+
module Glimmer
|
6
|
+
module DSL
|
7
|
+
module Opal
|
8
|
+
class AsyncExecExpression < StaticExpression
|
9
|
+
include TopLevelExpression
|
10
|
+
|
11
|
+
def interpret(parent, keyword, *args, &block)
|
12
|
+
Glimmer::Opal::DisplayProxy.instance.async_exec(&block)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'glimmer/dsl/static_expression'
|
2
|
+
require 'glimmer/swt/table_proxy'
|
3
|
+
|
4
|
+
module Glimmer
|
5
|
+
module DSL
|
6
|
+
module Opal
|
7
|
+
# Responsible for providing a readable keyword (command symbol) to capture
|
8
|
+
# and return column properties for use in TreeItemsDataBindingCommandHandler
|
9
|
+
class ColumnPropertiesExpression < StaticExpression
|
10
|
+
def can_interpret?(parent, keyword, *args, &block)
|
11
|
+
keyword == 'column_properties' and
|
12
|
+
block.nil? and
|
13
|
+
parent.is_a?(Glimmer::SWT::TableProxy)
|
14
|
+
end
|
15
|
+
|
16
|
+
def interpret(parent, keyword, *args, &block)
|
17
|
+
args
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'glimmer/dsl/expression'
|
2
2
|
require 'glimmer/data_binding/model_binding'
|
3
3
|
require 'glimmer/data_binding/element_binding'
|
4
|
-
require 'glimmer/
|
4
|
+
require 'glimmer/swt/combo_proxy'
|
5
5
|
|
6
6
|
module Glimmer
|
7
7
|
module DSL
|
@@ -10,7 +10,7 @@ module Glimmer
|
|
10
10
|
def can_interpret?(parent, keyword, *args, &block)
|
11
11
|
keyword == 'selection' and
|
12
12
|
block.nil? and
|
13
|
-
parent.is_a?(Glimmer::
|
13
|
+
parent.is_a?(Glimmer::SWT::ComboProxy) and
|
14
14
|
args.size == 1 and
|
15
15
|
args[0].is_a?(DataBinding::ModelBinding) and
|
16
16
|
args[0].evaluate_options_property.is_a?(Array)
|
data/lib/glimmer/dsl/opal/dsl.rb
CHANGED
@@ -1,24 +1,20 @@
|
|
1
|
-
require 'opal'
|
2
|
-
require 'browser'
|
3
|
-
|
4
1
|
require 'glimmer/dsl/engine'
|
5
2
|
# Dir[File.expand_path('../*_expression.rb', __FILE__)].each {|f| require f}
|
6
3
|
require 'glimmer/dsl/opal/shell_expression'
|
7
|
-
require 'glimmer/dsl/opal/
|
4
|
+
require 'glimmer/dsl/opal/widget_expression'
|
8
5
|
require 'glimmer/dsl/opal/property_expression'
|
9
|
-
require 'glimmer/dsl/opal/combo_expression'
|
10
|
-
require 'glimmer/dsl/opal/composite_expression'
|
11
|
-
require 'glimmer/dsl/opal/button_expression'
|
12
6
|
require 'glimmer/dsl/opal/bind_expression'
|
13
7
|
require 'glimmer/dsl/opal/data_binding_expression'
|
14
8
|
require 'glimmer/dsl/opal/combo_selection_data_binding_expression'
|
15
9
|
require 'glimmer/dsl/opal/widget_listener_expression'
|
16
|
-
require 'glimmer/dsl/opal/
|
17
|
-
require 'glimmer/dsl/opal/
|
18
|
-
require 'glimmer/dsl/opal/
|
19
|
-
require 'glimmer/dsl/opal/
|
10
|
+
require 'glimmer/dsl/opal/message_box_expression'
|
11
|
+
require 'glimmer/dsl/opal/async_exec_expression'
|
12
|
+
require 'glimmer/dsl/opal/observe_expression'
|
13
|
+
require 'glimmer/dsl/opal/layout_expression'
|
20
14
|
require 'glimmer/dsl/opal/layout_data_expression'
|
21
15
|
require 'glimmer/dsl/opal/list_selection_data_binding_expression'
|
16
|
+
require 'glimmer/dsl/opal/table_items_data_binding_expression'
|
17
|
+
require 'glimmer/dsl/opal/column_properties_expression'
|
22
18
|
|
23
19
|
module Glimmer
|
24
20
|
module DSL
|
@@ -27,11 +23,13 @@ module Glimmer
|
|
27
23
|
Opal,
|
28
24
|
%w[
|
29
25
|
widget_listener
|
26
|
+
table_items_data_binding
|
30
27
|
combo_selection_data_binding
|
31
28
|
list_selection_data_binding
|
32
29
|
data_binding
|
33
|
-
|
30
|
+
layout
|
34
31
|
property
|
32
|
+
widget
|
35
33
|
]
|
36
34
|
)
|
37
35
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'glimmer/dsl/static_expression'
|
2
2
|
require 'glimmer/dsl/parent_expression'
|
3
|
-
require 'glimmer/
|
3
|
+
require 'glimmer/swt/layout_data_proxy'
|
4
4
|
|
5
5
|
module Glimmer
|
6
6
|
module DSL
|
@@ -9,7 +9,7 @@ module Glimmer
|
|
9
9
|
include ParentExpression
|
10
10
|
|
11
11
|
def interpret(parent, keyword, *args, &block)
|
12
|
-
Glimmer::
|
12
|
+
Glimmer::SWT::LayoutDataProxy.new(parent, args)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -1,20 +1,20 @@
|
|
1
1
|
require 'glimmer/dsl/expression'
|
2
2
|
require 'glimmer/dsl/parent_expression'
|
3
|
-
require 'glimmer/
|
3
|
+
require 'glimmer/swt/layout_proxy'
|
4
4
|
|
5
5
|
module Glimmer
|
6
6
|
module DSL
|
7
7
|
module Opal
|
8
|
-
class
|
8
|
+
class LayoutExpression < Expression
|
9
9
|
include ParentExpression
|
10
10
|
|
11
11
|
def can_interpret?(parent, keyword, *args, &block)
|
12
|
-
|
12
|
+
parent.is_a?(Glimmer::SWT::CompositeProxy) &&
|
13
|
+
Glimmer::SWT::LayoutProxy.layout_exists?(keyword)
|
13
14
|
end
|
14
15
|
|
15
16
|
def interpret(parent, keyword, *args, &block)
|
16
|
-
|
17
|
-
Glimmer::Opal::InputProxy.new(parent, args)
|
17
|
+
Glimmer::SWT::LayoutProxy.for(keyword, parent, args)
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -2,7 +2,7 @@ require 'glimmer/dsl/expression'
|
|
2
2
|
require 'glimmer/data_binding/model_binding'
|
3
3
|
require 'glimmer/data_binding/element_binding'
|
4
4
|
require 'glimmer/data_binding/list_selection_binding'
|
5
|
-
require 'glimmer/
|
5
|
+
require 'glimmer/swt/list_proxy'
|
6
6
|
|
7
7
|
module Glimmer
|
8
8
|
module DSL
|
@@ -11,7 +11,7 @@ module Glimmer
|
|
11
11
|
def can_interpret?(parent, keyword, *args, &block)
|
12
12
|
keyword == 'selection' and
|
13
13
|
block.nil? and
|
14
|
-
parent.is_a?(Glimmer::
|
14
|
+
parent.is_a?(Glimmer::SWT::ListProxy) and
|
15
15
|
args.size == 1 and
|
16
16
|
args[0].is_a?(DataBinding::ModelBinding) and
|
17
17
|
args[0].evaluate_options_property.is_a?(Array)
|
@@ -31,7 +31,6 @@ module Glimmer
|
|
31
31
|
list_selection_binding.call(model_binding.evaluate_property)
|
32
32
|
#TODO check if nested data binding works for list widget and other widgets that need custom data binding
|
33
33
|
list_selection_binding.observe(model, model_binding.property_name_expression)
|
34
|
-
|
35
34
|
parent.on_widget_selected do
|
36
35
|
model_binding.call(list_selection_binding.evaluate_property)
|
37
36
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'glimmer/dsl/static_expression'
|
2
|
+
require 'glimmer/dsl/top_level_expression'
|
3
|
+
require 'glimmer/dsl/parent_expression'
|
4
|
+
require 'glimmer/swt/message_box_proxy'
|
5
|
+
|
6
|
+
module Glimmer
|
7
|
+
module DSL
|
8
|
+
module Opal
|
9
|
+
class MessageBoxExpression < StaticExpression
|
10
|
+
include TopLevelExpression
|
11
|
+
include ParentExpression
|
12
|
+
|
13
|
+
def interpret(parent, keyword, *args, &block)
|
14
|
+
parent = args.delete_at(0)
|
15
|
+
Glimmer::SWT::MessageBoxProxy.new(parent, args)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'glimmer/dsl/static_expression'
|
2
|
+
require 'glimmer/dsl/top_level_expression'
|
3
|
+
require 'glimmer/data_binding/observer'
|
4
|
+
require 'glimmer/data_binding/model_binding'
|
5
|
+
|
6
|
+
module Glimmer
|
7
|
+
module DSL
|
8
|
+
module Opal
|
9
|
+
class ObserveExpression < StaticExpression
|
10
|
+
include TopLevelExpression
|
11
|
+
|
12
|
+
REGEX_NESTED_OR_INDEXED_PROPERTY = /([^\[]+)(\[[^\]]+\])?/
|
13
|
+
|
14
|
+
def can_interpret?(parent, keyword, *args, &block)
|
15
|
+
keyword == 'observe' and
|
16
|
+
block_given? and
|
17
|
+
(args.size == 2) and
|
18
|
+
textual?(args[1])
|
19
|
+
end
|
20
|
+
|
21
|
+
def interpret(parent, keyword, *args, &block)
|
22
|
+
observer = DataBinding::Observer.proc(&block)
|
23
|
+
if args[1].to_s.match(REGEX_NESTED_OR_INDEXED_PROPERTY)
|
24
|
+
observer.observe(DataBinding::ModelBinding.new(args[0], args[1]))
|
25
|
+
else
|
26
|
+
observer.observe(args[0], args[1])
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'glimmer/dsl/static_expression'
|
2
2
|
require 'glimmer/dsl/top_level_expression'
|
3
3
|
require 'glimmer/dsl/parent_expression'
|
4
|
-
require 'glimmer/
|
4
|
+
require 'glimmer/swt/shell_proxy'
|
5
5
|
|
6
6
|
module Glimmer
|
7
7
|
module DSL
|
@@ -11,7 +11,7 @@ module Glimmer
|
|
11
11
|
include ParentExpression
|
12
12
|
|
13
13
|
def interpret(parent, keyword, *args, &block)
|
14
|
-
Glimmer::
|
14
|
+
Glimmer::SWT::ShellProxy.new(*args)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'glimmer/dsl/static_expression'
|
2
2
|
require 'glimmer/dsl/parent_expression'
|
3
|
-
require 'glimmer/opal/
|
3
|
+
require 'glimmer/opal/table_column'
|
4
4
|
|
5
5
|
module Glimmer
|
6
6
|
module DSL
|
7
7
|
module Opal
|
8
|
-
class
|
8
|
+
class TableColumnExpression < StaticExpression
|
9
9
|
include ParentExpression
|
10
10
|
|
11
11
|
def interpret(parent, keyword, *args, &block)
|
12
|
-
Glimmer::Opal::
|
12
|
+
Glimmer::Opal::TableColumn.new(parent, args)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'glimmer/dsl/static_expression'
|
2
2
|
require 'glimmer/dsl/parent_expression'
|
3
|
-
require 'glimmer/
|
3
|
+
require 'glimmer/swt/table_proxy'
|
4
4
|
|
5
5
|
module Glimmer
|
6
6
|
module DSL
|
7
7
|
module Opal
|
8
|
-
class
|
8
|
+
class TableExpression < StaticExpression
|
9
9
|
include ParentExpression
|
10
10
|
|
11
11
|
def interpret(parent, keyword, *args, &block)
|
12
|
-
Glimmer::
|
12
|
+
Glimmer::SWT::TableProxy.new(parent, args)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|