glimmer-dsl-opal 0.28.3 → 0.29.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 (167) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +172 -27
  5. data/VERSION +1 -1
  6. data/app/assets/images/glimmer/images/ui-icons_444444_256x240.png +0 -0
  7. data/app/assets/images/glimmer/images/ui-icons_555555_256x240.png +0 -0
  8. data/app/assets/images/glimmer/images/ui-icons_777620_256x240.png +0 -0
  9. data/app/assets/images/glimmer/images/ui-icons_777777_256x240.png +0 -0
  10. data/app/assets/images/glimmer/images/ui-icons_cc0000_256x240.png +0 -0
  11. data/app/assets/images/glimmer/images/ui-icons_ffffff_256x240.png +0 -0
  12. data/app/assets/stylesheets/glimmer/jquery-ui.css +109 -106
  13. data/app/assets/stylesheets/glimmer/jquery-ui.structure.css +91 -91
  14. data/app/assets/stylesheets/glimmer/jquery-ui.theme.css +18 -15
  15. data/app/controllers/glimmer/image_paths_controller.rb +0 -1
  16. data/config/routes.rb +1 -1
  17. data/lib/display.rb +1 -1
  18. data/lib/glimmer/data_binding/table_items_binding.rb +1 -1
  19. data/lib/glimmer/dsl/opal/async_exec_expression.rb +1 -1
  20. data/lib/glimmer/dsl/opal/bind_expression.rb +1 -1
  21. data/lib/glimmer/dsl/opal/block_property_expression.rb +1 -1
  22. data/lib/glimmer/dsl/opal/checkbox_group_selection_data_binding_expression.rb +1 -1
  23. data/lib/glimmer/dsl/opal/color_expression.rb +1 -1
  24. data/lib/glimmer/dsl/opal/custom_widget_expression.rb +3 -3
  25. data/lib/glimmer/dsl/opal/data_binding_expression.rb +1 -1
  26. data/lib/glimmer/dsl/opal/dialog_expression.rb +1 -1
  27. data/lib/glimmer/dsl/opal/display_expression.rb +1 -1
  28. data/lib/glimmer/dsl/opal/exec_expression.rb +1 -1
  29. data/lib/glimmer/dsl/opal/font_expression.rb +1 -1
  30. data/lib/glimmer/dsl/opal/image_expression.rb +2 -2
  31. data/lib/glimmer/dsl/opal/menu_bar_expression.rb +1 -1
  32. data/lib/glimmer/dsl/opal/menu_expression.rb +2 -2
  33. data/lib/glimmer/dsl/opal/message_box_expression.rb +1 -1
  34. data/lib/glimmer/dsl/opal/property_expression.rb +1 -1
  35. data/lib/glimmer/dsl/opal/radio_group_selection_data_binding_expression.rb +1 -1
  36. data/lib/glimmer/dsl/opal/rgb_expression.rb +1 -1
  37. data/lib/glimmer/dsl/opal/rgba_expression.rb +1 -1
  38. data/lib/glimmer/dsl/opal/shape_expression.rb +2 -1
  39. data/lib/glimmer/dsl/opal/shell_expression.rb +2 -2
  40. data/lib/glimmer/dsl/opal/shine_data_binding_expression.rb +1 -1
  41. data/lib/glimmer/dsl/opal/swt_expression.rb +1 -1
  42. data/lib/glimmer/dsl/opal/sync_exec_expression.rb +1 -1
  43. data/lib/glimmer/dsl/opal/widget_expression.rb +1 -1
  44. data/lib/glimmer/engine.rb +1 -1
  45. data/lib/glimmer/swt/arrow_proxy.rb +7 -1
  46. data/lib/glimmer/swt/button_proxy.rb +4 -3
  47. data/lib/glimmer/swt/c_combo_proxy.rb +1 -1
  48. data/lib/glimmer/swt/c_tab_folder_proxy.rb +1 -1
  49. data/lib/glimmer/swt/c_tab_item_proxy.rb +1 -1
  50. data/lib/glimmer/swt/checkbox_proxy.rb +3 -2
  51. data/lib/glimmer/swt/color_proxy.rb +1 -1
  52. data/lib/glimmer/swt/composite_proxy.rb +1 -1
  53. data/lib/glimmer/swt/control_editor.rb +1 -1
  54. data/lib/glimmer/swt/custom/checkbox_group.rb +1 -1
  55. data/lib/glimmer/swt/custom/radio_group.rb +1 -1
  56. data/lib/glimmer/swt/custom/shape/arc.rb +1 -1
  57. data/lib/glimmer/swt/custom/shape/image.rb +1 -1
  58. data/lib/glimmer/swt/custom/shape/line.rb +1 -1
  59. data/lib/glimmer/swt/custom/shape/oval.rb +1 -1
  60. data/lib/glimmer/swt/custom/shape/point.rb +1 -1
  61. data/lib/glimmer/swt/custom/shape/polygon.rb +1 -1
  62. data/lib/glimmer/swt/custom/shape/polyline.rb +1 -1
  63. data/lib/glimmer/swt/custom/shape/rectangle.rb +1 -1
  64. data/lib/glimmer/swt/custom/shape/text.rb +1 -1
  65. data/lib/glimmer/swt/custom/shape.rb +4 -4
  66. data/lib/glimmer/swt/date_time_proxy.rb +2 -2
  67. data/lib/glimmer/swt/dialog_proxy.rb +1 -1
  68. data/lib/glimmer/swt/font_proxy.rb +1 -1
  69. data/lib/glimmer/swt/label_proxy.rb +1 -1
  70. data/lib/glimmer/swt/latest_dialog_proxy.rb +1 -1
  71. data/lib/glimmer/swt/latest_message_box_proxy.rb +1 -1
  72. data/lib/glimmer/swt/latest_shell_proxy.rb +4 -4
  73. data/lib/glimmer/swt/layout_proxy.rb +1 -1
  74. data/lib/glimmer/swt/make_shift_shell_proxy.rb +1 -1
  75. data/lib/glimmer/swt/menu_item_proxy.rb +3 -3
  76. data/lib/glimmer/swt/menu_proxy.rb +22 -16
  77. data/lib/glimmer/swt/message_box_proxy.rb +1 -1
  78. data/lib/glimmer/swt/progress_bar_proxy.rb +1 -1
  79. data/lib/glimmer/swt/scale_proxy.rb +7 -1
  80. data/lib/glimmer/swt/shell_proxy.rb +1 -1
  81. data/lib/glimmer/swt/slider_proxy.rb +6 -0
  82. data/lib/glimmer/swt/spinner_proxy.rb +4 -3
  83. data/lib/glimmer/swt/style_constantizable.rb +1 -1
  84. data/lib/glimmer/swt/swt_proxy.rb +1 -1
  85. data/lib/glimmer/swt/tab_folder_proxy.rb +1 -1
  86. data/lib/glimmer/swt/tab_item_proxy.rb +1 -1
  87. data/lib/glimmer/swt/table_editor.rb +1 -1
  88. data/lib/glimmer/swt/table_item_proxy.rb +3 -3
  89. data/lib/glimmer/swt/table_proxy.rb +1 -1
  90. data/lib/glimmer/swt/widget_proxy.rb +28 -28
  91. data/lib/glimmer/swt.rb +1 -1
  92. data/lib/glimmer/ui/custom_shell.rb +1 -5
  93. data/lib/glimmer/ui/custom_widget.rb +5 -5
  94. data/lib/glimmer/util/proc_tracker.rb +3 -3
  95. data/lib/glimmer-dsl-opal/ext/date.rb +8 -8
  96. data/lib/glimmer-dsl-opal/ext/file.rb +1 -1
  97. data/lib/glimmer-dsl-opal/ext/glimmer/dsl/engine.rb +1 -1
  98. data/lib/glimmer-dsl-opal/samples/elaborate/contact_manager/contact_repository.rb +1 -1
  99. data/lib/glimmer-dsl-opal/samples/elaborate/login.rb +1 -1
  100. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/model/block.rb +1 -1
  101. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/model/game.rb +1 -1
  102. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/model/past_game.rb +1 -1
  103. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/model/tetromino.rb +1 -1
  104. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/view/block.rb +1 -1
  105. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/view/high_score_dialog.rb +1 -1
  106. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/view/playfield.rb +1 -1
  107. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/view/score_lane.rb +1 -1
  108. data/lib/glimmer-dsl-opal/samples/elaborate/tetris/view/tetris_menu_bar.rb +1 -1
  109. data/lib/glimmer-dsl-opal/samples/elaborate/tetris.rb +2 -2
  110. data/lib/glimmer-dsl-opal/samples/elaborate/tic_tac_toe.rb +1 -1
  111. data/lib/glimmer-dsl-opal/samples/elaborate/user_profile.rb +1 -1
  112. data/lib/glimmer-dsl-opal/samples/elaborate/weather.rb +1 -1
  113. data/lib/glimmer-dsl-opal/samples/hello/hello_arrow.rb +1 -1
  114. data/lib/glimmer-dsl-opal/samples/hello/hello_browser.rb +1 -1
  115. data/lib/glimmer-dsl-opal/samples/hello/hello_button.rb +1 -1
  116. data/lib/glimmer-dsl-opal/samples/hello/hello_c_combo.rb +1 -1
  117. data/lib/glimmer-dsl-opal/samples/hello/hello_c_tab.rb +1 -1
  118. data/lib/glimmer-dsl-opal/samples/hello/hello_canvas.rb +1 -1
  119. data/lib/glimmer-dsl-opal/samples/hello/hello_checkbox.rb +1 -1
  120. data/lib/glimmer-dsl-opal/samples/hello/hello_checkbox_group.rb +1 -1
  121. data/lib/glimmer-dsl-opal/samples/hello/hello_combo.rb +1 -1
  122. data/lib/glimmer-dsl-opal/samples/hello/hello_composite.rb +1 -1
  123. data/lib/glimmer-dsl-opal/samples/hello/hello_computed.rb +1 -1
  124. data/lib/glimmer-dsl-opal/samples/hello/hello_cursor.rb +1 -1
  125. data/lib/glimmer-dsl-opal/samples/hello/hello_custom_shell.rb +1 -1
  126. data/lib/glimmer-dsl-opal/samples/hello/hello_custom_widget.rb +1 -1
  127. data/lib/glimmer-dsl-opal/samples/hello/hello_date_time.rb +1 -1
  128. data/lib/glimmer-dsl-opal/samples/hello/hello_dialog.rb +1 -1
  129. data/lib/glimmer-dsl-opal/samples/hello/hello_group.rb +1 -1
  130. data/lib/glimmer-dsl-opal/samples/hello/hello_label.rb +1 -1
  131. data/lib/glimmer-dsl-opal/samples/hello/hello_layout.rb +1 -1
  132. data/lib/glimmer-dsl-opal/samples/hello/hello_list_multi_selection.rb +1 -1
  133. data/lib/glimmer-dsl-opal/samples/hello/hello_list_single_selection.rb +1 -1
  134. data/lib/glimmer-dsl-opal/samples/hello/hello_menu_bar.rb +1 -1
  135. data/lib/glimmer-dsl-opal/samples/hello/hello_message_box.rb +1 -1
  136. data/lib/glimmer-dsl-opal/samples/hello/hello_pop_up_context_menu.rb +1 -1
  137. data/lib/glimmer-dsl-opal/samples/hello/hello_print.rb +1 -1
  138. data/lib/glimmer-dsl-opal/samples/hello/hello_progress_bar.rb +1 -1
  139. data/lib/glimmer-dsl-opal/samples/hello/hello_radio.rb +1 -1
  140. data/lib/glimmer-dsl-opal/samples/hello/hello_radio_group.rb +1 -1
  141. data/lib/glimmer-dsl-opal/samples/hello/hello_scale.rb +1 -1
  142. data/lib/glimmer-dsl-opal/samples/hello/hello_slider.rb +1 -1
  143. data/lib/glimmer-dsl-opal/samples/hello/hello_spinner.rb +1 -1
  144. data/lib/glimmer-dsl-opal/samples/hello/hello_tab.rb +1 -1
  145. data/lib/glimmer-dsl-opal/samples/hello/hello_table.rb +1 -1
  146. data/lib/glimmer-dsl-opal/samples/hello/hello_text.rb +1 -1
  147. data/lib/glimmer-dsl-opal/samples/hello/hello_world.rb +1 -1
  148. data/lib/glimmer-dsl-opal/vendor/jquery-ui/AUTHORS.txt +35 -1
  149. data/lib/glimmer-dsl-opal/vendor/jquery-ui/index.html +503 -0
  150. data/lib/glimmer-dsl-opal/vendor/jquery-ui/jquery-ui.min.css +4 -4
  151. data/lib/glimmer-dsl-opal/vendor/jquery-ui/jquery-ui.min.js +3 -10
  152. data/lib/glimmer-dsl-opal/vendor/jquery-ui/jquery-ui.structure.min.css +2 -2
  153. data/lib/glimmer-dsl-opal/vendor/jquery-ui/jquery-ui.theme.min.css +2 -2
  154. data/lib/glimmer-dsl-opal/vendor/jquery-ui/package.json +26 -26
  155. data/lib/glimmer-dsl-opal/vendor/jquery.js +10881 -2
  156. data/lib/glimmer-dsl-opal.rb +1 -1
  157. data/lib/glimmer-dsl-swt.rb +1 -1
  158. data/lib/net/http.rb +1 -1
  159. data/lib/os.rb +1 -1
  160. metadata +10 -16
  161. data/app/assets/images/glimmer/images/ui-icons_222222_256x240.png +0 -0
  162. data/lib/glimmer-dsl-opal/vendor/jquery-ui/images/ui-icons_444444_256x240.png +0 -0
  163. data/lib/glimmer-dsl-opal/vendor/jquery-ui/images/ui-icons_555555_256x240.png +0 -0
  164. data/lib/glimmer-dsl-opal/vendor/jquery-ui/images/ui-icons_777620_256x240.png +0 -0
  165. data/lib/glimmer-dsl-opal/vendor/jquery-ui/images/ui-icons_777777_256x240.png +0 -0
  166. data/lib/glimmer-dsl-opal/vendor/jquery-ui/images/ui-icons_cc0000_256x240.png +0 -0
  167. data/lib/glimmer-dsl-opal/vendor/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -98,7 +98,7 @@ module Glimmer
98
98
 
99
99
  attr_reader :menu_item_proxy, :menu_parent
100
100
 
101
- def initialize(parent, args)
101
+ def initialize(parent, args, block = nil)
102
102
  # TODO refactor/simplify code below
103
103
  @children = []
104
104
  index = args.delete(args.last) if args.last.is_a?(Numeric)
@@ -111,21 +111,22 @@ module Glimmer
111
111
  args = args.unshift(:pop_up)
112
112
  end
113
113
  if parent.is_a?(MenuProxy)
114
- @menu_item_proxy = SWT::WidgetProxy.for('menu_item', parent, [:cascade] + [index].compact)
115
- super(@menu_item_proxy, args)
114
+ @menu_item_proxy = SWT::WidgetProxy.for('menu_item', parent, [:cascade] + [index].compact, block)
115
+ super(@menu_item_proxy, args, nil)
116
116
  @menu_item_proxy.menu = self
117
117
  elsif parent.is_a?(ShellProxy)
118
- super(parent, args)
118
+ super(parent, args, nil)
119
119
  else # widget pop up
120
- super(parent, args)
120
+ super(parent, args, nil)
121
121
  end
122
-
122
+
123
123
  if bar?
124
124
  # Assumes a parent shell
125
125
  parent.menu_bar = self
126
126
  elsif pop_up?
127
127
  parent.menu = self
128
128
  end
129
+
129
130
  # TODO IMPLEMENT PROPERLY
130
131
  # on_focus_lost {
131
132
  # dispose
@@ -195,26 +196,30 @@ module Glimmer
195
196
 
196
197
  def post_add_content
197
198
  if bar?
198
- # delay this till all children rendered (perhaps post_add_content block)
199
199
  parent_dom_element.css('position', 'relative')
200
200
  parent_dom_element.css('margin-top', '30px')
201
201
  parent_dom_element.css('height', '114%')
202
- redraw
202
+ render
203
203
  `$(#{path}).menu({
204
204
  position: { my: "top", at: "bottom" },
205
205
  icons: { submenu: "ui-icon-blank" }
206
206
  });`
207
207
  the_element = dom_element
208
- the_element.on('mouseover') { |event|
208
+ the_element.on('mouseenter') do |event|
209
209
  if event.page_x.between?(the_element.offset.left, the_element.offset.left + the_element.width) and
210
210
  event.page_y.between?(the_element.offset.top, the_element.offset.top + the_element.height)
211
211
  `$(#{path}).menu('option', 'position', { my: 'left top', at: 'left bottom' })`
212
212
  end
213
- }
214
- the_element.on('menublur') {
215
- `$(#{path}).menu('option', 'position', { my: 'left top', at: 'right top' })`
216
- }
217
- minimum_width = children.to_a.map(&:dom_element).map(&:width).reduce(:+)
213
+ end
214
+ the_element.on('mouseout') do |event|
215
+ if event.page_x.between?(the_element.offset.left, the_element.offset.left + the_element.width) and
216
+ event.page_y.between?(the_element.offset.top, the_element.offset.top + the_element.height)
217
+ `$(#{path}).menu('option', 'position', { my: 'left top', at: 'left bottom' })`
218
+ else
219
+ `$(#{path}).menu('option', 'position', { my: 'left top', at: 'right top' })`
220
+ end
221
+ end
222
+ minimum_width = children.to_a.map(&:dom_element).map(&:width).map(&:to_f).reduce(:+)
218
223
  the_element.css('min-width', minimum_width)
219
224
  end
220
225
  end
@@ -223,6 +228,7 @@ module Glimmer
223
228
  @visible = value
224
229
  if @visible
225
230
  parent.menu_requested = true
231
+ parent.dom_element.css('position', 'relative')
226
232
  render
227
233
  dom_element.css('position', 'absolute')
228
234
  dom_element.css('left', parent.menu_x - parent.dom_element.offset.left)
@@ -250,7 +256,7 @@ module Glimmer
250
256
 
251
257
  def close
252
258
  dom_element.remove
253
- Element['body'].off('click', &@close_event_handler)
259
+ Element['body'].off('click', @close_event_handler)
254
260
  @visible = false
255
261
  end
256
262
 
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -24,6 +24,12 @@ require 'glimmer/swt/widget_proxy'
24
24
  module Glimmer
25
25
  module SWT
26
26
  class ScaleProxy < WidgetProxy
27
+ STYLE = <<~CSS
28
+ .scale {
29
+ width: 100%;
30
+ }
31
+ CSS
32
+
27
33
  attr_reader :selection, :minimum, :maximum, :increment
28
34
 
29
35
  def initialize(parent, args, block)
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -24,6 +24,12 @@ require 'glimmer/swt/widget_proxy'
24
24
  module Glimmer
25
25
  module SWT
26
26
  class SliderProxy < WidgetProxy
27
+ STYLE = <<~CSS
28
+ .slider {
29
+ width: 100%;
30
+ }
31
+ CSS
32
+
27
33
  attr_reader :selection, :minimum, :maximum, :page_increment
28
34
 
29
35
  def initialize(parent, args, block)
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -159,9 +159,10 @@ module Glimmer
159
159
  def dom
160
160
  text_text = @text
161
161
  text_id = id
162
- text_style = css
162
+ text_style = "min-width: 27px; #{css}"
163
163
  text_class = name
164
- options = {type: 'text', id: text_id, style: text_style, class: text_class, value: text_text, style: 'min-width: 27px;'}
164
+ # TODO `:style` key is duplicated twice
165
+ options = {type: 'text', id: text_id, style: text_style, class: text_class, value: text_text}
165
166
  options = options.merge('disabled': 'disabled') unless @enabled
166
167
  @dom ||= html {
167
168
  input(options)
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -41,9 +41,9 @@ module Glimmer
41
41
  def initialize(parent, args, block)
42
42
  super(parent, args, block)
43
43
  # TODO check if there is a need to remove this observer when removing widget from table upon items update
44
- on_widget_selected { |event|
44
+ on_widget_selected do |event|
45
45
  parent.select(parent.index_of(self), (event.meta? if event.respond_to?(:meta?)))
46
- }
46
+ end
47
47
  end
48
48
 
49
49
  def get_text(index)
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -128,7 +128,7 @@ module Glimmer
128
128
 
129
129
  DEFAULT_INITIALIZERS = {
130
130
  # TODO remove if built in class initializer is taking care of this
131
- composite: lambda do |composite_proxy|
131
+ composite: proc do |composite_proxy|
132
132
  if composite_proxy.get_layout.nil?
133
133
  the_layout = GridLayoutProxy.new(composite_proxy, [])
134
134
  composite_proxy.layout = the_layout
@@ -136,18 +136,18 @@ module Glimmer
136
136
  the_layout.margin_height = 15
137
137
  end
138
138
  end,
139
- # scrolled_composite: lambda do |scrolled_composite|
139
+ # scrolled_composite: proc do |scrolled_composite|
140
140
  # scrolled_composite.expand_horizontal = true
141
141
  # scrolled_composite.expand_vertical = true
142
142
  # end,
143
- # table: lambda do |table|
143
+ # table: proc do |table|
144
144
  # table.setHeaderVisible(true)
145
145
  # table.setLinesVisible(true)
146
146
  # end,
147
- table_column: lambda do |table_column_proxy|
147
+ table_column: proc do |table_column_proxy|
148
148
  table_column_proxy.width = 80
149
149
  end,
150
- # group: lambda do |group_proxy|
150
+ # group: proc do |group_proxy|
151
151
  # group_proxy.layout = GridLayoutProxy.new(group_proxy, []) if group.get_layout.nil?
152
152
  # end,
153
153
  }
@@ -235,7 +235,7 @@ module Glimmer
235
235
  event_handler = mapping[:event_handler]
236
236
  event_element_css_selector = mapping[:event_element_css_selector]
237
237
  the_listener_dom_element = event_element_css_selector ? Element[event_element_css_selector] : listener_dom_element
238
- the_listener_dom_element.off(event)
238
+ the_listener_dom_element.off(event, event_listener)
239
239
  # TODO improve to precisely remove the listeners that were added, no more no less. (or use the event_listener_proxies method instead or in collaboration)
240
240
  end
241
241
  end
@@ -878,7 +878,7 @@ module Glimmer
878
878
  event_element_css_selector = mapping[:event_element_css_selector]
879
879
  potential_event_listener = event_handler&.call(original_event_listener)
880
880
  event_listener = potential_event_listener || original_event_listener
881
- async_event_listener = lambda do |event|
881
+ async_event_listener = proc do |event|
882
882
  # TODO look into the issue with using async::task.new here. maybe put it in event listener (like not being able to call preventDefault or return false successfully )
883
883
  # maybe consider pushing inside the widget classes instead where needed only or implement universal doit support correctly to bypass this issue
884
884
  # Async::Task.new do
@@ -944,7 +944,7 @@ module Glimmer
944
944
  end
945
945
 
946
946
  def property_type_converters
947
- color_converter = lambda do |value|
947
+ color_converter = proc do |value|
948
948
  if value.is_a?(Symbol) || value.is_a?(String)
949
949
  ColorProxy.new(value)
950
950
  else
@@ -953,7 +953,7 @@ module Glimmer
953
953
  end
954
954
  @property_type_converters ||= {
955
955
  :background => color_converter,
956
- # :background_image => lambda do |value|
956
+ # :background_image => proc do |value|
957
957
  # if value.is_a?(String)
958
958
  # if value.start_with?('uri:classloader')
959
959
  # value = value.sub(/^uri\:classloader\:\//, '')
@@ -973,7 +973,7 @@ module Glimmer
973
973
  # end
974
974
  # end,
975
975
  :foreground => color_converter,
976
- # :font => lambda do |value|
976
+ # :font => proc do |value|
977
977
  # if value.is_a?(Hash)
978
978
  # font_properties = value
979
979
  # FontProxy.new(self, font_properties).swt_font
@@ -981,14 +981,14 @@ module Glimmer
981
981
  # value
982
982
  # end
983
983
  # end,
984
- :text => lambda do |value|
984
+ :text => proc do |value|
985
985
  # if swt_widget.is_a?(Browser)
986
986
  # value.to_s
987
987
  # else
988
988
  value.to_s
989
989
  # end
990
990
  end,
991
- # :visible => lambda do |value|
991
+ # :visible => proc do |value|
992
992
  # !!value
993
993
  # end,
994
994
  }
@@ -997,7 +997,7 @@ module Glimmer
997
997
  def widget_property_listener_installers
998
998
  @swt_widget_property_listener_installers ||= {
999
999
  # WidgetProxy => {
1000
- # :focus => lambda do |observer|
1000
+ # :focus => proc do |observer|
1001
1001
  # on_focus_gained { |focus_event|
1002
1002
  # observer.call(true)
1003
1003
  # }
@@ -1007,7 +1007,7 @@ module Glimmer
1007
1007
  # end,
1008
1008
  # },
1009
1009
  MenuItemProxy => {
1010
- :selection => lambda do |observer|
1010
+ :selection => proc do |observer|
1011
1011
  on_widget_selected { |selection_event|
1012
1012
  # TODO look into validity of this and perhaps move toggle logic to MenuItemProxy
1013
1013
  if check?
@@ -1019,33 +1019,33 @@ module Glimmer
1019
1019
  end
1020
1020
  },
1021
1021
  ScaleProxy => {
1022
- :selection => lambda do |observer|
1022
+ :selection => proc do |observer|
1023
1023
  on_widget_selected { |selection_event|
1024
1024
  observer.call(selection)
1025
1025
  }
1026
1026
  end
1027
1027
  },
1028
1028
  SliderProxy => {
1029
- :selection => lambda do |observer|
1029
+ :selection => proc do |observer|
1030
1030
  on_widget_selected { |selection_event|
1031
1031
  observer.call(selection)
1032
1032
  }
1033
1033
  end
1034
1034
  },
1035
1035
  SpinnerProxy => {
1036
- :selection => lambda do |observer|
1036
+ :selection => proc do |observer|
1037
1037
  on_widget_selected { |selection_event|
1038
1038
  observer.call(selection)
1039
1039
  }
1040
1040
  end
1041
1041
  },
1042
1042
  TextProxy => {
1043
- :text => lambda do |observer|
1043
+ :text => proc do |observer|
1044
1044
  on_modify_text { |modify_event|
1045
1045
  observer.call(text)
1046
1046
  }
1047
1047
  end,
1048
- # :caret_position => lambda do |observer|
1048
+ # :caret_position => proc do |observer|
1049
1049
  # on_event_keydown { |event|
1050
1050
  # observer.call(getCaretPosition)
1051
1051
  # }
@@ -1059,7 +1059,7 @@ module Glimmer
1059
1059
  # observer.call(getCaretPosition)
1060
1060
  # }
1061
1061
  # end,
1062
- # :selection => lambda do |observer|
1062
+ # :selection => proc do |observer|
1063
1063
  # on_event_keydown { |event|
1064
1064
  # observer.call(getSelection)
1065
1065
  # }
@@ -1073,7 +1073,7 @@ module Glimmer
1073
1073
  # observer.call(getSelection)
1074
1074
  # }
1075
1075
  # end,
1076
- # :selection_count => lambda do |observer|
1076
+ # :selection_count => proc do |observer|
1077
1077
  # on_event_keydown { |event|
1078
1078
  # observer.call(getSelectionCount)
1079
1079
  # }
@@ -1087,7 +1087,7 @@ module Glimmer
1087
1087
  # observer.call(getSelectionCount)
1088
1088
  # }
1089
1089
  # end,
1090
- # :top_index => lambda do |observer|
1090
+ # :top_index => proc do |observer|
1091
1091
  # @last_top_index = getTopIndex
1092
1092
  # on_paint_control { |event|
1093
1093
  # if getTopIndex != @last_top_index
@@ -1098,35 +1098,35 @@ module Glimmer
1098
1098
  # end,
1099
1099
  },
1100
1100
  # Java::OrgEclipseSwtCustom::StyledText => {
1101
- # :text => lambda do |observer|
1101
+ # :text => proc do |observer|
1102
1102
  # on_modify_text { |modify_event|
1103
1103
  # observer.call(getText)
1104
1104
  # }
1105
1105
  # end,
1106
1106
  # },
1107
1107
  DateTimeProxy => {
1108
- :date_time => lambda do |observer|
1108
+ :date_time => proc do |observer|
1109
1109
  on_widget_selected { |selection_event|
1110
1110
  observer.call(date_time)
1111
1111
  }
1112
1112
  end
1113
1113
  },
1114
1114
  RadioProxy => { #radio?
1115
- :selection => lambda do |observer|
1115
+ :selection => proc do |observer|
1116
1116
  on_widget_selected { |selection_event|
1117
1117
  observer.call(selection)
1118
1118
  }
1119
1119
  end
1120
1120
  },
1121
1121
  TableProxy => {
1122
- :selection => lambda do |observer|
1122
+ :selection => proc do |observer|
1123
1123
  on_widget_selected { |selection_event|
1124
1124
  observer.call(selection_event.table_item.get_data) # TODO ensure selection doesn't conflict with editing
1125
1125
  }
1126
1126
  end,
1127
1127
  },
1128
1128
  # Java::OrgEclipseSwtWidgets::MenuItem => {
1129
- # :selection => lambda do |observer|
1129
+ # :selection => proc do |observer|
1130
1130
  # on_widget_selected { |selection_event|
1131
1131
  # observer.call(getSelection)
1132
1132
  # }
data/lib/glimmer/swt.rb CHANGED
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -101,10 +101,6 @@ module Glimmer
101
101
  body_root.visible?
102
102
  end
103
103
 
104
- def center
105
- body_root.center
106
- end
107
-
108
104
  def start_event_loop
109
105
  body_root.start_event_loop
110
106
  end
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -285,10 +285,10 @@ module Glimmer
285
285
  end
286
286
 
287
287
  alias local_respond_to? respond_to?
288
- def respond_to?(method, *args, &block)
289
- super or
290
- can_handle_observation_request?(method) or
291
- body_root.respond_to?(method, *args, &block)
288
+ def respond_to?(method_name, include_private = false)
289
+ super(method_name, include_private) or
290
+ can_handle_observation_request?(method_name) or
291
+ body_root.respond_to?(method_name, include_private)
292
292
  end
293
293
 
294
294
  private
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -42,8 +42,8 @@ module Glimmer
42
42
  !!@called
43
43
  end
44
44
 
45
- def respond_to?(method, *args, &block)
46
- %w[owner invoked_from called?].include?(method.to_s) || super(method, *args, &block)
45
+ def respond_to?(method_name, include_private = false)
46
+ %w[owner invoked_from called?].include?(method_name.to_s) || super(method_name, include_private)
47
47
  end
48
48
  end
49
49
  end
@@ -4,23 +4,23 @@ require 'time'
4
4
  class DateTime < Date
5
5
  def initialize(*args, &block)
6
6
  @time = Time.new(*args, &block)
7
- methods_to_exclude = [:to_date, :to_time, :==, :eql?, :class]
7
+ methods_to_exclude = [:to_date, :to_time, :==, :eql?, :class] + Object.new.methods
8
8
  methods_to_define = @time.methods - methods_to_exclude
9
- methods_to_define.each do |method|
10
- singleton_class.define_method(method) do |*args, &block|
11
- @time.send(method, *args, &block)
9
+ methods_to_define.each do |method_name|
10
+ singleton_class.define_method(method_name) do |*args, &block|
11
+ @time.send(method_name, *args, &block)
12
12
  end
13
13
  end
14
14
  end
15
-
15
+
16
16
  def to_date
17
17
  @time.to_date
18
18
  end
19
-
19
+
20
20
  def to_time
21
21
  @time
22
22
  end
23
-
23
+
24
24
  def ==(other)
25
25
  return false if other.class != self.class
26
26
  year == other.year and
@@ -51,7 +51,7 @@ class Time
51
51
  new_original(*args)
52
52
  end
53
53
  end
54
-
54
+
55
55
  def to_datetime
56
56
  # TODO support timezone
57
57
  DateTime.new(year, month, day, hour, min, sec)
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2020-2021 Andy Maleh
1
+ # Copyright (c) 2020-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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
@@ -1,4 +1,4 @@
1
- # Copyright (c) 2007-2021 Andy Maleh
1
+ # Copyright (c) 2007-2022 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