glimmer-dsl-opal 0.0.9 → 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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/README.md +57 -28
  4. data/VERSION +1 -1
  5. data/lib/glimmer-dsl-opal.rb +26 -11
  6. data/lib/glimmer/data_binding/element_binding.rb +1 -1
  7. data/lib/glimmer/data_binding/ext/observable_model.rb +4 -4
  8. data/lib/glimmer/data_binding/list_selection_binding.rb +1 -1
  9. data/lib/glimmer/data_binding/table_items_binding.rb +3 -3
  10. data/lib/glimmer/dsl/opal/column_properties_expression.rb +2 -2
  11. data/lib/glimmer/dsl/opal/combo_selection_data_binding_expression.rb +2 -2
  12. data/lib/glimmer/dsl/opal/dsl.rb +4 -16
  13. data/lib/glimmer/dsl/opal/layout_data_expression.rb +2 -2
  14. data/lib/glimmer/dsl/opal/{text_expression.rb → layout_expression.rb} +5 -5
  15. data/lib/glimmer/dsl/opal/list_selection_data_binding_expression.rb +2 -3
  16. data/lib/glimmer/dsl/opal/message_box_expression.rb +2 -2
  17. data/lib/glimmer/dsl/opal/shell_expression.rb +2 -2
  18. data/lib/glimmer/dsl/opal/table_expression.rb +2 -2
  19. data/lib/glimmer/dsl/opal/table_items_data_binding_expression.rb +2 -2
  20. data/lib/glimmer/dsl/opal/widget_expression.rb +23 -0
  21. data/lib/glimmer/opal/display_proxy.rb +3 -3
  22. data/lib/glimmer/opal/element_proxy.rb +11 -3
  23. data/lib/glimmer/swt/browser_proxy.rb +27 -0
  24. data/lib/glimmer/swt/button_proxy.rb +40 -0
  25. data/lib/glimmer/{opal/select_proxy.rb → swt/combo_proxy.rb} +14 -10
  26. data/lib/glimmer/{opal/div_proxy.rb → swt/composite_proxy.rb} +8 -6
  27. data/lib/glimmer/{opal → swt}/event_listener_proxy.rb +1 -1
  28. data/lib/glimmer/{opal → swt}/grid_layout_proxy.rb +5 -18
  29. data/lib/glimmer/swt/label_proxy.rb +30 -0
  30. data/lib/glimmer/{opal → swt}/layout_data_proxy.rb +3 -3
  31. data/lib/glimmer/swt/layout_proxy.rb +60 -0
  32. data/lib/glimmer/{opal → swt}/list_proxy.rb +16 -13
  33. data/lib/glimmer/{opal/modal.rb → swt/message_box_proxy.rb} +61 -9
  34. data/lib/glimmer/{opal → swt}/point.rb +1 -1
  35. data/lib/glimmer/{opal → swt}/property_owner.rb +1 -1
  36. data/lib/glimmer/swt/shell_proxy.rb +235 -0
  37. data/lib/glimmer/{opal/tab_folder.rb → swt/tab_folder_proxy.rb} +13 -14
  38. data/lib/glimmer/{opal/tab_item.rb → swt/tab_item_proxy.rb} +37 -34
  39. data/lib/glimmer/{opal/table_column.rb → swt/table_column_proxy.rb} +13 -7
  40. data/lib/glimmer/{opal/table_item.rb → swt/table_item_proxy.rb} +59 -48
  41. data/lib/glimmer/swt/table_proxy.rb +177 -0
  42. data/lib/glimmer/swt/text_proxy.rb +46 -0
  43. data/lib/glimmer/swt/widget_proxy.rb +389 -0
  44. data/lib/jquery.js +2 -0
  45. data/lib/samples/elaborate/contact_manager.rb +1 -1
  46. data/lib/samples/hello/hello_computed.rb +19 -19
  47. metadata +79 -55
  48. data/lib/glimmer/dsl/opal/browser_expression.rb +0 -17
  49. data/lib/glimmer/dsl/opal/button_expression.rb +0 -18
  50. data/lib/glimmer/dsl/opal/combo_expression.rb +0 -17
  51. data/lib/glimmer/dsl/opal/composite_expression.rb +0 -17
  52. data/lib/glimmer/dsl/opal/grid_layout_expression.rb +0 -17
  53. data/lib/glimmer/dsl/opal/label_expression.rb +0 -17
  54. data/lib/glimmer/dsl/opal/list_expression.rb +0 -17
  55. data/lib/glimmer/dsl/opal/tab_folder_expression.rb +0 -17
  56. data/lib/glimmer/dsl/opal/tab_item_expression.rb +0 -17
  57. data/lib/glimmer/opal/document_proxy.rb +0 -187
  58. data/lib/glimmer/opal/iframe_proxy.rb +0 -23
  59. data/lib/glimmer/opal/input_proxy.rb +0 -45
  60. data/lib/glimmer/opal/label_proxy.rb +0 -25
  61. data/lib/glimmer/opal/table_proxy.rb +0 -149
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.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - AndyMaleh
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-28 00:00:00.000000000 Z
11
+ date: 2020-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: glimmer
@@ -16,42 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.9.3
19
+ version: 0.9.5
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: 0.9.3
26
+ version: 0.9.5
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec-mocks
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: 3.5.0
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 3.5.0
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 3.5.0
48
- type: :development
33
+ version: 0.1.0
34
+ type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: 3.5.0
40
+ version: 0.1.0
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: puts_debuggerer
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -132,28 +118,70 @@ dependencies:
132
118
  requirements:
133
119
  - - "~>"
134
120
  - !ruby/object:Gem::Version
135
- version: 0.7.1
121
+ version: 0.8.0.alpha2
122
+ type: :development
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - "~>"
127
+ - !ruby/object:Gem::Version
128
+ version: 0.8.0.alpha2
129
+ - !ruby/object:Gem::Dependency
130
+ name: opal-rails
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "~>"
134
+ - !ruby/object:Gem::Version
135
+ version: 1.1.2
136
+ type: :development
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "~>"
141
+ - !ruby/object:Gem::Version
142
+ version: 1.1.2
143
+ - !ruby/object:Gem::Dependency
144
+ name: opal-async
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: 1.1.0
136
150
  type: :development
137
151
  prerelease: false
138
152
  version_requirements: !ruby/object:Gem::Requirement
139
153
  requirements:
140
154
  - - "~>"
141
155
  - !ruby/object:Gem::Version
142
- version: 0.7.1
156
+ version: 1.1.0
143
157
  - !ruby/object:Gem::Dependency
144
- name: opal-browser
158
+ name: opal-jquery
145
159
  requirement: !ruby/object:Gem::Requirement
146
160
  requirements:
147
161
  - - "~>"
148
162
  - !ruby/object:Gem::Version
149
- version: 0.2.0
163
+ version: 0.4.4
150
164
  type: :development
151
165
  prerelease: false
152
166
  version_requirements: !ruby/object:Gem::Requirement
153
167
  requirements:
154
168
  - - "~>"
155
169
  - !ruby/object:Gem::Version
156
- version: 0.2.0
170
+ version: 0.4.4
171
+ - !ruby/object:Gem::Dependency
172
+ name: glimmer-dsl-opal
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
157
185
  description: Glimmer DSL for Opal (Web GUI Adapter for Desktop Apps)
158
186
  email: andy.am@gmail.com
159
187
  executables: []
@@ -175,50 +203,46 @@ files:
175
203
  - lib/glimmer/data_binding/table_items_binding.rb
176
204
  - lib/glimmer/dsl/opal/async_exec_expression.rb
177
205
  - lib/glimmer/dsl/opal/bind_expression.rb
178
- - lib/glimmer/dsl/opal/browser_expression.rb
179
- - lib/glimmer/dsl/opal/button_expression.rb
180
206
  - lib/glimmer/dsl/opal/column_properties_expression.rb
181
- - lib/glimmer/dsl/opal/combo_expression.rb
182
207
  - lib/glimmer/dsl/opal/combo_selection_data_binding_expression.rb
183
- - lib/glimmer/dsl/opal/composite_expression.rb
184
208
  - lib/glimmer/dsl/opal/data_binding_expression.rb
185
209
  - lib/glimmer/dsl/opal/dsl.rb
186
- - lib/glimmer/dsl/opal/grid_layout_expression.rb
187
- - lib/glimmer/dsl/opal/label_expression.rb
188
210
  - lib/glimmer/dsl/opal/layout_data_expression.rb
189
- - lib/glimmer/dsl/opal/list_expression.rb
211
+ - lib/glimmer/dsl/opal/layout_expression.rb
190
212
  - lib/glimmer/dsl/opal/list_selection_data_binding_expression.rb
191
213
  - lib/glimmer/dsl/opal/message_box_expression.rb
192
214
  - lib/glimmer/dsl/opal/observe_expression.rb
193
215
  - lib/glimmer/dsl/opal/property_expression.rb
194
216
  - lib/glimmer/dsl/opal/shell_expression.rb
195
- - lib/glimmer/dsl/opal/tab_folder_expression.rb
196
- - lib/glimmer/dsl/opal/tab_item_expression.rb
197
217
  - lib/glimmer/dsl/opal/table_column_expression.rb
198
218
  - lib/glimmer/dsl/opal/table_expression.rb
199
219
  - lib/glimmer/dsl/opal/table_items_data_binding_expression.rb
200
- - lib/glimmer/dsl/opal/text_expression.rb
220
+ - lib/glimmer/dsl/opal/widget_expression.rb
201
221
  - lib/glimmer/dsl/opal/widget_listener_expression.rb
202
222
  - lib/glimmer/opal/display_proxy.rb
203
- - lib/glimmer/opal/div_proxy.rb
204
- - lib/glimmer/opal/document_proxy.rb
205
223
  - lib/glimmer/opal/element_proxy.rb
206
- - lib/glimmer/opal/event_listener_proxy.rb
207
- - lib/glimmer/opal/grid_layout_proxy.rb
208
- - lib/glimmer/opal/iframe_proxy.rb
209
- - lib/glimmer/opal/input_proxy.rb
210
- - lib/glimmer/opal/label_proxy.rb
211
- - lib/glimmer/opal/layout_data_proxy.rb
212
- - lib/glimmer/opal/list_proxy.rb
213
- - lib/glimmer/opal/modal.rb
214
- - lib/glimmer/opal/point.rb
215
- - lib/glimmer/opal/property_owner.rb
216
- - lib/glimmer/opal/select_proxy.rb
217
- - lib/glimmer/opal/tab_folder.rb
218
- - lib/glimmer/opal/tab_item.rb
219
- - lib/glimmer/opal/table_column.rb
220
- - lib/glimmer/opal/table_item.rb
221
- - lib/glimmer/opal/table_proxy.rb
224
+ - lib/glimmer/swt/browser_proxy.rb
225
+ - lib/glimmer/swt/button_proxy.rb
226
+ - lib/glimmer/swt/combo_proxy.rb
227
+ - lib/glimmer/swt/composite_proxy.rb
228
+ - lib/glimmer/swt/event_listener_proxy.rb
229
+ - lib/glimmer/swt/grid_layout_proxy.rb
230
+ - lib/glimmer/swt/label_proxy.rb
231
+ - lib/glimmer/swt/layout_data_proxy.rb
232
+ - lib/glimmer/swt/layout_proxy.rb
233
+ - lib/glimmer/swt/list_proxy.rb
234
+ - lib/glimmer/swt/message_box_proxy.rb
235
+ - lib/glimmer/swt/point.rb
236
+ - lib/glimmer/swt/property_owner.rb
237
+ - lib/glimmer/swt/shell_proxy.rb
238
+ - lib/glimmer/swt/tab_folder_proxy.rb
239
+ - lib/glimmer/swt/tab_item_proxy.rb
240
+ - lib/glimmer/swt/table_column_proxy.rb
241
+ - lib/glimmer/swt/table_item_proxy.rb
242
+ - lib/glimmer/swt/table_proxy.rb
243
+ - lib/glimmer/swt/text_proxy.rb
244
+ - lib/glimmer/swt/widget_proxy.rb
245
+ - lib/jquery.js
222
246
  - lib/samples/elaborate/contact_manager.rb
223
247
  - lib/samples/elaborate/contact_manager/contact.rb
224
248
  - lib/samples/elaborate/contact_manager/contact_manager_presenter.rb
@@ -1,17 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/iframe_proxy'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class BrowserExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- Glimmer::Opal::IframeProxy.new(parent, args)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,18 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/input_proxy'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class ButtonExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- args << {type: 'button'}
13
- Glimmer::Opal::InputProxy.new(parent, args)
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,17 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/select_proxy'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class ComboExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- Glimmer::Opal::SelectProxy.new(parent, args)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/div_proxy'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class CompositeExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- Glimmer::Opal::DivProxy.new(parent, args)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/grid_layout_proxy'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class GridLayoutExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- Glimmer::Opal::GridLayoutProxy.new(parent, args)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/label_proxy'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class LabelExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- Glimmer::Opal::LabelProxy.new(parent, args)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/list_proxy'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class ListExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- Glimmer::Opal::ListProxy.new(parent, args)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/tab_folder'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class TabFolderExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- Glimmer::Opal::TabFolder.new(parent, args)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require 'glimmer/dsl/static_expression'
2
- require 'glimmer/dsl/parent_expression'
3
- require 'glimmer/opal/tab_item'
4
-
5
- module Glimmer
6
- module DSL
7
- module Opal
8
- class TabItemExpression < StaticExpression
9
- include ParentExpression
10
-
11
- def interpret(parent, keyword, *args, &block)
12
- Glimmer::Opal::TabItem.new(parent, args)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,187 +0,0 @@
1
- require 'glimmer/opal/element_proxy'
2
- require 'glimmer/opal/point'
3
-
4
- module Glimmer
5
- module Opal
6
- class DocumentProxy < ElementProxy
7
- # TODO consider renaming to ShellProxy to match SWT API
8
- attr_reader :minimum_size
9
-
10
- def initialize(args)
11
- @args = args
12
- @children = []
13
- $document.ready do
14
- $document.head.replace(head_dom)
15
- $document.body.replace(dom)
16
- end
17
- end
18
-
19
- def text
20
- $document.title
21
- end
22
-
23
- def text=(value)
24
- $document.ready do
25
- $document.title = value
26
- end
27
- end
28
-
29
- def minimum_size=(width_or_minimum_size, height = nil)
30
- @minimum_size = height.nil? ? width_or_minimum_size : Point.new(width_or_minimum_size, height)
31
- redraw
32
- end
33
-
34
- def head_dom
35
- # TODO make grid-layout support grab excess space false
36
- @head_dom ||= DOM {
37
- head {
38
- <<~CSS
39
- <style>
40
- html {
41
- width: 100%;
42
- height: 100%;
43
- }
44
- body {
45
- width: 100%;
46
- height: 100%;
47
- margin: 0;
48
- }
49
- body > iframe {
50
- width: 100%;
51
- height: 100%;
52
- }
53
- ul {
54
- list-style: none;
55
- padding: 0;
56
- }
57
- li {
58
- cursor: default;
59
- padding-left: 10px;
60
- padding-right: 10px;
61
- }
62
- li.empty-list-item {
63
- color: transparent;
64
- }
65
- .tabs {
66
- overflow: hidden;
67
- border: 1px solid #ccc;
68
- background-color: #f1f1f1;
69
- }
70
-
71
- /* Style the buttons inside the tab */
72
- .tabs .tab {
73
- background-color: inherit;
74
- float: left;
75
- border: none;
76
- outline: none;
77
- cursor: pointer;
78
- padding: 14px 16px;
79
- transition: 0.3s;
80
- font-size: 17px;
81
- }
82
-
83
- /* Change background color of buttons on hover */
84
- .tabs .tab:hover {
85
- background-color: #ddd;
86
- }
87
-
88
- /* Create an active/current tablink class */
89
- .tabs .tab.active {
90
- background-color: #ccc;
91
- }
92
-
93
- /* Style the tab content */
94
- .tab-item {
95
- padding: 6px 12px;
96
- border: 1px solid #ccc;
97
- border-top: none;
98
- }
99
-
100
- .hide {
101
- display: none !important;
102
- }
103
-
104
- /* The Modal (background) */
105
- .modal {
106
- position: fixed; /* Stay in place */
107
- z-index: 1; /* Sit on top */
108
- padding-top: 100px; /* Location of the box */
109
- left: 0;
110
- top: 0;
111
- width: 100%; /* Full width */
112
- height: 100%; /* Full height */
113
- overflow: auto; /* Enable scroll if needed */
114
- background-color: rgb(0,0,0); /* Fallback color */
115
- background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
116
- text-align: center;
117
- }
118
-
119
- /* Modal Content */
120
- .modal-content {
121
- background-color: #fefefe;
122
- margin: auto;
123
- border: 1px solid #888;
124
- display: inline-block;
125
- min-width: 200px;
126
- }
127
-
128
- .modal-content .text {
129
- background: rgb(80, 116, 211);
130
- color: white;
131
- padding: 5px;
132
- }
133
-
134
- .modal-content .message {
135
- padding: 20px;
136
- }
137
-
138
- /* The Close Button */
139
- .close {
140
- color: #aaaaaa;
141
- float: right;
142
- font-weight: bold;
143
- margin: 5px;
144
- }
145
-
146
- .close:hover,
147
- .close:focus {
148
- color: #000;
149
- text-decoration: none;
150
- cursor: pointer;
151
- }
152
-
153
- .selected {
154
- background: rgb(80, 116, 211);
155
- color: white;
156
- }
157
-
158
- table {
159
- border-spacing: 0;
160
- }
161
-
162
- table tr th,td {
163
- cursor: default;
164
- }
165
-
166
- </style>
167
- CSS
168
- }
169
- }
170
- end
171
-
172
- def dom
173
- i = 0
174
- body_style = ''
175
- body_style += "min-width: #{@minimum_size.x}px; min-height: #{@minimum_size.y}px;" if @minimum_size
176
- @dom ||= DOM {
177
- body(style: body_style) {
178
- }
179
- }
180
- end
181
-
182
- def open
183
- # No Op (just a placeholder since it is not needed on the web)
184
- end
185
- end
186
- end
187
- end