glimmer-dsl-opal 0.10.0 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/README.md +84 -22
- data/VERSION +1 -1
- data/lib/display.rb +3 -0
- data/lib/glimmer-dsl-opal.rb +1 -1
- data/lib/glimmer-dsl-opal/ext/glimmer/dsl/engine.rb +5 -2
- data/lib/glimmer-dsl-opal/samples/elaborate/contact_manager.rb +17 -13
- data/lib/glimmer-dsl-opal/samples/elaborate/login.rb +55 -28
- data/lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb +2 -2
- data/lib/glimmer-dsl-opal/samples/hello/hello_button.rb +1 -1
- data/lib/glimmer-dsl-opal/samples/hello/hello_checkbox.rb +4 -4
- data/lib/glimmer-dsl-opal/samples/hello/hello_combo.rb +1 -1
- data/lib/glimmer-dsl-opal/samples/hello/hello_computed.rb +5 -5
- data/lib/glimmer-dsl-opal/samples/hello/hello_custom_shell.rb +1 -1
- data/lib/glimmer-dsl-opal/samples/hello/hello_date_time.rb +4 -4
- data/lib/glimmer-dsl-opal/samples/hello/hello_group.rb +6 -6
- data/lib/glimmer-dsl-opal/samples/hello/hello_list_multi_selection.rb +1 -1
- data/lib/glimmer-dsl-opal/samples/hello/hello_list_single_selection.rb +1 -1
- data/lib/glimmer-dsl-opal/samples/hello/hello_radio.rb +6 -6
- data/lib/glimmer-dsl-opal/samples/hello/hello_table.rb +2 -2
- data/lib/glimmer/data_binding/table_items_binding.rb +3 -2
- data/lib/glimmer/dsl/opal/bind_expression.rb +24 -25
- data/lib/glimmer/dsl/opal/custom_widget_expression.rb +6 -6
- data/lib/glimmer/dsl/opal/dsl.rb +4 -0
- data/lib/glimmer/dsl/opal/menu_expression.rb +1 -1
- data/lib/glimmer/dsl/opal/message_box_expression.rb +1 -1
- data/lib/glimmer/dsl/opal/property_expression.rb +2 -1
- data/lib/glimmer/dsl/opal/shape_expression.rb +26 -0
- data/lib/glimmer/dsl/opal/shell_expression.rb +1 -1
- data/lib/glimmer/dsl/opal/shine_data_binding_expression.rb +49 -0
- data/lib/glimmer/dsl/opal/table_items_data_binding_expression.rb +2 -2
- data/lib/glimmer/dsl/opal/widget_expression.rb +1 -1
- data/lib/glimmer/swt/combo_proxy.rb +1 -0
- data/lib/glimmer/swt/composite_proxy.rb +18 -2
- data/lib/glimmer/swt/dialog_proxy.rb +47 -32
- data/lib/glimmer/swt/display_proxy.rb +128 -9
- data/lib/glimmer/swt/grid_layout_proxy.rb +28 -33
- data/lib/glimmer/swt/latest_dialog_proxy.rb +3 -1
- data/lib/glimmer/swt/latest_message_box_proxy.rb +3 -1
- data/lib/glimmer/swt/latest_shell_proxy.rb +6 -2
- data/lib/glimmer/swt/layout_proxy.rb +32 -9
- data/lib/glimmer/swt/message_box_proxy.rb +20 -10
- data/lib/glimmer/swt/row_layout_proxy.rb +13 -6
- data/lib/glimmer/swt/shell_proxy.rb +30 -8
- data/lib/glimmer/swt/table_proxy.rb +19 -3
- data/lib/glimmer/swt/widget_proxy.rb +50 -19
- data/lib/glimmer/ui/custom_shell.rb +23 -6
- data/lib/glimmer/util/proc_tracker.rb +16 -5
- metadata +11 -9
@@ -28,15 +28,26 @@ module Glimmer
|
|
28
28
|
module CustomShell
|
29
29
|
include Glimmer::UI::CustomWidget
|
30
30
|
|
31
|
+
module ClassMethods
|
32
|
+
include Glimmer
|
33
|
+
attr_reader :custom_shell
|
34
|
+
|
35
|
+
def launch
|
36
|
+
custom_shell = send(self.name.underscore.gsub('::', '__'))
|
37
|
+
custom_shell.open
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
31
41
|
class << self
|
32
42
|
def included(klass)
|
33
43
|
klass.extend(CustomWidget::ClassMethods)
|
44
|
+
klass.extend(CustomShell::ClassMethods)
|
34
45
|
klass.include(Glimmer)
|
35
46
|
Glimmer::UI::CustomWidget.add_custom_widget_namespaces_for(klass)
|
36
47
|
keyword = klass.name.split(':').last.underscore
|
37
48
|
LocalStorage[keyword] = $LOADED_FEATURES.last
|
38
49
|
end
|
39
|
-
|
50
|
+
|
40
51
|
def request_parameter_string
|
41
52
|
URI.decode_www_form_component(`document.location.href`.match(/\?(.*)$/).to_a[1].to_s)
|
42
53
|
end
|
@@ -56,14 +67,20 @@ module Glimmer
|
|
56
67
|
|
57
68
|
def initialize(parent, args, options, &content)
|
58
69
|
super(parent, args, options, &content)
|
59
|
-
raise Error, 'Invalid custom shell body root! Must be a shell or another custom shell.' unless body_root.is_a?(Glimmer::SWT::ShellProxy) || body_root.is_a?(Glimmer::UI::CustomShell)
|
70
|
+
raise Error, 'Invalid custom shell body root! Must be a shell or another custom shell.' unless body_root.is_a?(Glimmer::SWT::ShellProxy) || body_root.is_a?(Glimmer::UI::CustomShell)
|
60
71
|
end
|
61
72
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
73
|
+
def open(async: true)
|
74
|
+
work = lambda do
|
75
|
+
body_root.open
|
76
|
+
end
|
77
|
+
if async
|
78
|
+
Glimmer::SWT::DisplayProxy.instance.async_exec(&work)
|
79
|
+
else
|
80
|
+
work.call
|
81
|
+
end
|
66
82
|
end
|
83
|
+
|
67
84
|
|
68
85
|
# DO NOT OVERRIDE. JUST AN ALIAS FOR `#open`. OVERRIDE `#open` INSTEAD.
|
69
86
|
def show
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Copyright (c) 2020-2021 Andy Maleh
|
2
|
-
#
|
2
|
+
#
|
3
3
|
# Permission is hereby granted, free of charge, to any person obtaining
|
4
4
|
# a copy of this software and associated documentation files (the
|
5
5
|
# "Software"), to deal in the Software without restriction, including
|
@@ -7,10 +7,10 @@
|
|
7
7
|
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
8
|
# permit persons to whom the Software is furnished to do so, subject to
|
9
9
|
# the following conditions:
|
10
|
-
#
|
10
|
+
#
|
11
11
|
# The above copyright notice and this permission notice shall be
|
12
12
|
# included in all copies or substantial portions of the Software.
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
15
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
16
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
@@ -23,17 +23,28 @@ require 'delegate'
|
|
23
23
|
|
24
24
|
module Glimmer
|
25
25
|
module Util
|
26
|
+
# Decorator that provides tracking facilities for Ruby procs, tracking owner (string), invoked_form method name (symbol/string), and called? (boolean)
|
26
27
|
class ProcTracker < DelegateClass(Proc)
|
27
|
-
|
28
|
-
|
28
|
+
attr_reader :owner, :invoked_from
|
29
|
+
|
30
|
+
def initialize(proc = nil, owner: nil, invoked_from: nil, &block)
|
31
|
+
super(proc || block)
|
32
|
+
@owner = owner
|
33
|
+
@invoked_from = invoked_from
|
29
34
|
end
|
35
|
+
|
30
36
|
def call(*args)
|
31
37
|
__getobj__.call(*args)
|
32
38
|
@called = true
|
33
39
|
end
|
40
|
+
|
34
41
|
def called?
|
35
42
|
!!@called
|
36
43
|
end
|
44
|
+
|
45
|
+
def respond_to?(method, *args, &block)
|
46
|
+
%w[owner invoked_from called?].include?(method.to_s) || super(method, *args, &block)
|
47
|
+
end
|
37
48
|
end
|
38
49
|
end
|
39
50
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-opal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- AndyMaleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: glimmer
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: glimmer-dsl-xml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.2.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: 1.2.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: glimmer-dsl-css
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 1.2.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: 1.2.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: opal-async
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -349,7 +349,9 @@ files:
|
|
349
349
|
- lib/glimmer/dsl/opal/radio_group_selection_data_binding_expression.rb
|
350
350
|
- lib/glimmer/dsl/opal/rgb_expression.rb
|
351
351
|
- lib/glimmer/dsl/opal/rgba_expression.rb
|
352
|
+
- lib/glimmer/dsl/opal/shape_expression.rb
|
352
353
|
- lib/glimmer/dsl/opal/shell_expression.rb
|
354
|
+
- lib/glimmer/dsl/opal/shine_data_binding_expression.rb
|
353
355
|
- lib/glimmer/dsl/opal/swt_expression.rb
|
354
356
|
- lib/glimmer/dsl/opal/sync_exec_expression.rb
|
355
357
|
- lib/glimmer/dsl/opal/table_column_expression.rb
|
@@ -429,7 +431,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
429
431
|
- !ruby/object:Gem::Version
|
430
432
|
version: '0'
|
431
433
|
requirements: []
|
432
|
-
rubygems_version: 3.
|
434
|
+
rubygems_version: 3.2.22
|
433
435
|
signing_key:
|
434
436
|
specification_version: 4
|
435
437
|
summary: Glimmer DSL for Opal
|