glimmer-cw-cdatetime-nebula 1.4.0.2.0 → 1.4.0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b37eeaba86e192bbf3f0e00c57b267ab0c56e6574c310567489c23f1837c2190
4
- data.tar.gz: 33f2acdd08fad52407236b598046aad6da491bdd61adc95c31ca89781acca617
3
+ metadata.gz: 6c390330481758698b8ec35c2356503c6c660be9dc75151a3085ba45feab75d3
4
+ data.tar.gz: 3a3c0c9c43dc15a5935d3b7563bcf56bf0e8c244ae46c45b5e9718e441893c36
5
5
  SHA512:
6
- metadata.gz: 173b9ff49a578b5e5952eb88513c6b5bf5518eb47036d915bbfc52bba7ce90906d93f6b4cb1cb1e7f825f9c22bca4c78bfb99263bb182d0021f96b146802eec4
7
- data.tar.gz: a0b93d1badec9d7054197b44bfc3610b0f6ad0b8c5c329ae920c0d1ea083311c3335e7849ee0f32570b8b98eba7c5de60728347033f6ad9bb2d9054c89582864
6
+ metadata.gz: 97905ee9b09fd152996fa90efaba4a0b2430e19757a45105f9828cb8c376329f6db0d24d46e1c10596ce2ac2b00886cea71f802040e2929394b4fdfc93b75126
7
+ data.tar.gz: 7daed57b597f0045460f42b08e2b510ef11bc3976ff1d9bfd45ca2ece436e83ca9e0f4995af61acac184c949cf70e155d28c21f7a62f122fffda92029a70f378
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
- # Nebula CDateTime Widget 1.4.0.2.0
1
+ # Nebula CDateTime Widget 1.4.0.2.1
2
2
  ## [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 /> Glimmer Custom Widget](https://github.com/AndyObtiva/glimmer#custom-widget-gem)
3
3
  [![Gem Version](https://badge.fury.io/rb/glimmer-cw-cdatetime-nebula.svg)](http://badge.fury.io/rb/glimmer-cw-cdatetime-nebula)
4
4
 
5
- [<img alt="Nebula CDateTime Widget" src="https://www.eclipse.org/nebula/widgets/cdatetime/images/CDTSnippet02.png" />](https://www.eclipse.org/nebula/widgets/cdatetime/cdatetime.php)
5
+ <img alt="Nebula CDateTime Widget" src="https://www.eclipse.org/nebula/widgets/cdatetime/images/CDTSnippet02.png" />](https://www.eclipse.org/nebula/widgets/cdatetime/cdatetime.php)
6
6
 
7
- The [Nebula CDateTime Widget](https://www.eclipse.org/nebula/widgets/cdatetime/cdatetime.php) is a Date and Time selection widget that can be used in a plain (graphical), dropdown, spinner, or compact text style.
7
+ The [Nebula CDateTime Widget](https://www.eclipse.org/nebula/widgets/cdatetime/cdatetime.php) is a Date and Time selection widget that can be used in a simple, dropdown, spinner, or compact style.
8
8
 
9
9
  Packaged as a [Glimmer Custom Widget](https://github.com/AndyObtiva/glimmer#custom-widget-gem) to provide date/time selection via a combo/dropdown-style widget in [Glimmer](https://github.com/AndyObtiva/glimmer) using the `c_date_time` [Glimmer DSL](https://github.com/AndyObtiva/glimmer#glimmer-dsl-syntax) keyword.
10
10
 
@@ -12,34 +12,35 @@ Packaged as a [Glimmer Custom Widget](https://github.com/AndyObtiva/glimmer#cust
12
12
 
13
13
  ## Table of contents
14
14
 
15
- - [Nebula CDateTime Widget 1.4.0.2.0](#nebula-cdatetime-widget-14020)
15
+ # Table of contents
16
+
17
+ - [Nebula CDateTime Widget 1.4.0.2.1](#nebula-cdatetime-widget-14021)
16
18
  - [Pre-requisites](#pre-requisites)
17
19
  - [Setup](#setup)
18
20
  - [Glimmer Application](#glimmer-application)
19
21
  - [Glimmer Custom Shell or Glimmer Custom Widget](#glimmer-custom-shell-or-glimmer-custom-widget)
20
22
  - [Java Imports](#java-imports)
21
- - [Instructions](#instructions)
23
+ - [Usage Instructions](#usage-instructions)
22
24
  - [Sample](#sample)
23
- - [Plain](#plain)
25
+ - [Simple Style](#simple-style)
24
26
  - [`c_date_time`](#cdatetime)
25
27
  - [`c_date`](#cdate)
26
28
  - [`c_time`](#ctime)
27
- - [Drop Down](#drop-down)
29
+ - [Drop Down Style](#drop-down-style)
28
30
  - [`c_date_time_drop_down`](#cdatetimedropdown)
29
31
  - [`c_date_drop_down`](#cdatedropdown)
30
32
  - [`c_time_drop_down`](#ctimedropdown)
31
- - [Spinner](#spinner)
33
+ - [Spinner Style](#spinner-style)
32
34
  - [`c_date_time_spinner`](#cdatetimespinner)
33
35
  - [`c_date_spinner`](#cdatespinner)
34
36
  - [`c_time_spinner`](#ctimespinner)
35
- - [Compact](#compact)
37
+ - [Compact Style](#compact-style)
36
38
  - [`c_date_time_compact`](#cdatetimecompact)
37
39
  - [`c_date_compact`](#cdatecompact)
38
40
  - [`c_time_compact`](#ctimecompact)
39
- - [Style](#style)
40
- - [`cdt`](#cdt)
41
+ - [`CDT` Style Arguments](#cdt-style-arguments)
41
42
  - [Data-Binding and Observers:](#data-binding-and-observers)
42
- - [Table Editing](#table-editing)
43
+ - [Table Editor](#table-editor)
43
44
  - [API](#api)
44
45
  - [Glimmer Custom API](#glimmer-custom-api)
45
46
  - [`toggle_open`](#toggleopen)
@@ -66,7 +67,7 @@ Versions follow this convention:
66
67
  Add the following to a [Glimmer](https://github.com/AndyObtiva/glimmer) application `Gemfile`:
67
68
 
68
69
  ```ruby
69
- gem 'glimmer-cw-cdatetime-nebula', '1.4.0.2.0'
70
+ gem 'glimmer-cw-cdatetime-nebula', '1.4.0.2.1'
70
71
  ```
71
72
 
72
73
  Run:
@@ -95,9 +96,9 @@ Requiring the gem automatically configures java imports in [Glimmer](https://git
95
96
 
96
97
  ## Usage Instructions
97
98
 
98
- This [glimmer-cw-cdatetime-nebula](https://rubygems.org/gems/glimmer-cw-cdatetime-nebula) gem adds the `c_date_time` keyword to the [Glimmer GUI DSL](https://github.com/AndyObtiva/glimmer#glimmer-dsl-syntax) as well as other alias keywords as explained below.
99
+ This [glimmer-cw-cdatetime-nebula](https://rubygems.org/gems/glimmer-cw-cdatetime-nebula) gem adds the `c_date_time` keyword to the [Glimmer GUI DSL](https://github.com/AndyObtiva/glimmer#glimmer-dsl-syntax) as well as other alias keywords (e.g. drop down style, spinner style, and compact style) as explained below.
99
100
 
100
- The `c_date_time` keyword takes [`CDT`](#cdt) style bits as arguments.
101
+ The `c_date_time` keyword optionally takes [`CDT`](#cdt) style bits as arguments. When not specified, [smart defaults](https://github.com/AndyObtiva/glimmer-cw-cdatetime-nebula#cdt-style-arguments) are used instead.
101
102
 
102
103
  Example:
103
104
 
@@ -115,79 +116,234 @@ Please run the following command to launch the [Nebula CDateTime Glimmer Custom
115
116
  glimmer sample:run[c_date_time_gallery]
116
117
  ```
117
118
 
118
- ### Plain
119
+ Glimmer Code:
120
+
121
+ ```ruby
122
+ require_relative '../../lib/glimmer-cw-cdatetime-nebula'
123
+
124
+ class CDateTimeGallery
125
+ include Glimmer
126
+
127
+ def open
128
+ shell {
129
+ grid_layout(4, false) {
130
+ vertical_spacing 20
131
+ }
132
+ text 'Nebula CDateTime Glimmer Custom Widget Gallery'
133
+
134
+ label {
135
+ layout_data(:center, :center, true, false) {
136
+ horizontal_span 4
137
+ }
138
+ text 'Nebula CDateTime Glimmer Custom Widget Gallery'
139
+ font height: 24, style: :bold
140
+ }
141
+
142
+ tab_folder {
143
+ tab_item {
144
+ grid_layout 2, false
145
+ text 'Simple'
146
+
147
+ label {
148
+ text 'c_date_time'
149
+ font name: 'Consolas', height: 14
150
+ }
151
+ c_date_time
152
+
153
+ label {
154
+ text 'c_date'
155
+ font name: 'Consolas', height: 14
156
+ }
157
+ c_date
158
+
159
+ label {
160
+ text 'c_time'
161
+ font name: 'Consolas', height: 14
162
+ }
163
+ c_time
164
+ }
165
+
166
+ tab_item {
167
+ grid_layout 2, false
168
+ text 'Drop Down'
169
+
170
+ label {
171
+ text 'c_date_time_drop_down'
172
+ font name: 'Consolas', height: 14
173
+ }
174
+ c_date_time_drop_down {
175
+ layout_data(:fill, :center, true, true)
176
+ }
177
+
178
+ label {
179
+ text 'c_date_drop_down'
180
+ font name: 'Consolas', height: 14
181
+ }
182
+ c_date_drop_down {
183
+ layout_data(:fill, :center, true, true)
184
+ }
185
+
186
+ label {
187
+ text 'c_time_drop_down'
188
+ font name: 'Consolas', height: 14
189
+ }
190
+ c_time_drop_down {
191
+ layout_data(:fill, :center, true, true)
192
+ }
193
+ }
194
+
195
+ tab_item {
196
+ grid_layout 2, false
197
+ text 'Spinner'
198
+
199
+ label {
200
+ text 'c_date_time_spinner'
201
+ font name: 'Consolas', height: 14
202
+ }
203
+ c_date_time_spinner {
204
+ layout_data(:fill, :center, true, true)
205
+ }
206
+
207
+ label {
208
+ text 'c_date_spinner'
209
+ font name: 'Consolas', height: 14
210
+ }
211
+ c_date_spinner {
212
+ layout_data(:fill, :center, true, true)
213
+ }
214
+
215
+ label {
216
+ text 'c_time_spinner'
217
+ font name: 'Consolas', height: 14
218
+ }
219
+ c_time_spinner {
220
+ layout_data(:fill, :center, true, true)
221
+ }
222
+ }
223
+
224
+ tab_item {
225
+ grid_layout 2, false
226
+ text 'Compact'
227
+
228
+ label {
229
+ text 'c_date_time_compact'
230
+ font name: 'Consolas', height: 14
231
+ }
232
+ c_date_time_compact {
233
+ layout_data(:fill, :center, true, true)
234
+ }
235
+
236
+ label {
237
+ text 'c_date_compact'
238
+ font name: 'Consolas', height: 14
239
+ }
240
+ c_date_compact {
241
+ layout_data(:fill, :center, true, true)
242
+ }
243
+
244
+ label {
245
+ text 'c_time_compact'
246
+ font name: 'Consolas', height: 14
247
+ }
248
+ c_time_compact {
249
+ layout_data(:fill, :center, true, true)
250
+ }
251
+ }
252
+ }
253
+ }.open
254
+ end
255
+ end
256
+
257
+ CDateTimeGallery.new.open
258
+ ```
259
+
260
+ ### Simple Style
261
+
262
+ Simple style is the default style when using `c_date_time`, `c_date`, and `c_time` keywords. It displays a graphical calendar/clock.
119
263
 
120
- ![plain screenshot](images/glimmer-cw-cdatetime-nebula-plain.png)
264
+ `CDT::SIMPLE` style is applied by default but may be overriden by manually passing arguments to the keywords.
265
+
266
+ ![simple screenshot](images/glimmer-cw-cdatetime-nebula-simple.png)
121
267
 
122
268
  #### `c_date_time`
123
269
 
124
- Main keyword representing the Nebula CDateTime custom widget. Defaults to date/time pattern `'MM/dd/yyyy hh:mm a'` and plain style with a border
270
+ Main keyword representing the Nebula CDateTime custom widget. Defaults to date/time [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'MM/dd/yyyy hh:mm a'` and simple style with a border
125
271
 
126
272
  #### `c_date`
127
273
 
128
- Alias keyword that specifies date pattern `'MM/dd/yyyy'` and plain style with a border
274
+ Alias keyword that specifies date [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'MM/dd/yyyy'` and simple style with a border
129
275
 
130
276
  #### `c_time`
131
277
 
132
- Alias keyword that specifies time pattern `'hh:mm a'` and plain style with a border
278
+ Alias keyword that specifies time [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'hh:mm a'` and simple style with a border
279
+
280
+ ### Drop Down Style
133
281
 
134
- ### Drop Down
282
+ Drop down style is used with the `c_date_time_drop_down`, `c_date_drop_down`, and `c_time_drop_down` keywords to provide a text box for textual entry of date/time coupled with a drop down button for bringing up the calendar/clock to perform graphical selection.
135
283
 
136
- ![plain screenshot](images/glimmer-cw-cdatetime-nebula-drop-down.png)
284
+ `CDT::DROP_DOWN` style is applied by default but may be overriden by manually passing arguments to the keywords.
285
+
286
+ ![dropdown screenshot](images/glimmer-cw-cdatetime-nebula-drop-down.png)
137
287
 
138
288
  #### `c_date_time_drop_down`
139
289
 
140
- Alias keyword that specifies date/time pattern `'MM/dd/yyyy hh:mm a'` and drop down style with a border
290
+ Alias keyword that specifies date/time [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'MM/dd/yyyy hh:mm a'` and drop down style with a border
141
291
 
142
- ![plain screenshot](images/glimmer-cw-cdatetime-nebula-drop-down-date-time.png)
292
+ ![date time dropdown screenshot](images/glimmer-cw-cdatetime-nebula-drop-down-date-time.png)
143
293
 
144
294
  #### `c_date_drop_down`
145
295
 
146
- Alias keyword that specifies date pattern `'MM/dd/yyyy'` and drop down style with a border
296
+ Alias keyword that specifies date [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'MM/dd/yyyy'` and drop down style with a border
147
297
 
148
- ![plain screenshot](images/glimmer-cw-cdatetime-nebula-drop-down-date.png)
298
+ ![date dropdown screenshot](images/glimmer-cw-cdatetime-nebula-drop-down-date.png)
149
299
 
150
300
  #### `c_time_drop_down`
151
301
 
152
- Alias that specifies time pattern `'hh:mm a'` and drop down style with a border
302
+ Alias that specifies time [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'hh:mm a'` and drop down style with a border
303
+
304
+ ![time dropdown screenshot](images/glimmer-cw-cdatetime-nebula-drop-down-time.png)
305
+
306
+ ### Spinner Style
153
307
 
154
- ![plain screenshot](images/glimmer-cw-cdatetime-nebula-drop-down-time.png)
308
+ Spinner style is used with the `c_date_time_spinner`, `c_date_spinner`, and `c_time_spinner` keywords to provide a spinner for textual entry of date/time accompanied by up and down spinner buttons.
155
309
 
156
- ### Spinner
310
+ `CDT::SPINNER` style is applied by default but may be overriden by manually passing arguments to the keywords.
157
311
 
158
- ![plain screenshot](images/glimmer-cw-cdatetime-nebula-spinner.png)
312
+ ![spinner screenshot](images/glimmer-cw-cdatetime-nebula-spinner.png)
159
313
 
160
314
  #### `c_date_time_spinner`
161
315
 
162
- Alias that specifies date/time pattern `'MM/dd/yyyy hh:mm a'` and spinner style with a border
316
+ Alias that specifies date/time [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'MM/dd/yyyy hh:mm a'` and spinner style with a border
163
317
 
164
318
  #### `c_date_spinner`
165
319
 
166
- Alias that specifies date pattern `'MM/dd/yyyy'` and spinner style with a border
320
+ Alias that specifies date [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'MM/dd/yyyy'` and spinner style with a border
167
321
 
168
322
  #### `c_time_spinner`
169
323
 
170
- Alias that specifies time pattern `'hh:mm a'` and spinner style with a border
324
+ Alias that specifies time [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'hh:mm a'` and spinner style with a border
171
325
 
172
- ### Compact
326
+ ### Compact Style
173
327
 
174
- ![plain screenshot](images/glimmer-cw-cdatetime-nebula-compact.png)
328
+ Compact style is used with the `c_date_time_compact`, `c_date_compact`, and `c_time_compact` keywords to provide a compact text widget for date/time without any extra buttons.
329
+
330
+ `CDT::COMPACT` style is applied by default but may be overriden by manually passing arguments to the keywords.
331
+
332
+ ![compact screenshot](images/glimmer-cw-cdatetime-nebula-compact.png)
175
333
 
176
334
  #### `c_date_time_compact`
177
335
 
178
- Alias that specifies date/time pattern `'MM/dd/yyyy hh:mm a'` and compact style (just a text field) with a border
336
+ Alias that specifies date/time [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'MM/dd/yyyy hh:mm a'` and compact style (just a text field) with a border
179
337
 
180
338
  #### `c_date_compact`
181
339
 
182
- Alias that specifies date pattern `'MM/dd/yyyy'` and compact style (just a text field) with a border
340
+ Alias that specifies date [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'MM/dd/yyyy'` and compact style (just a text field) with a border
183
341
 
184
342
  #### `c_time_compact`
185
343
 
186
- Alias that specifies time pattern `'hh:mm a'` and compact style (just a text field) with a border
344
+ Alias that specifies time [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) `'hh:mm a'` and compact style (just a text field) with a border
187
345
 
188
- ### Style
189
-
190
- #### `cdt`
346
+ ### `CDT` Style Arguments
191
347
 
192
348
  [`CDT`](https://www.eclipse.org/nebula/releases/latest/javadoc/org/eclipse/nebula/widgets/cdatetime/CDT.html) styles are fully documented in the [Nebula `CDT` Javadoc](https://www.eclipse.org/nebula/releases/latest/javadoc/org/eclipse/nebula/widgets/cdatetime/CDT.html).
193
349
 
@@ -196,19 +352,19 @@ The `cdt` keyword builds a [`CDT`](https://www.eclipse.org/nebula/releases/lates
196
352
  For example, instead of passing style as bit-or'ed `CDT` Constant style bits:
197
353
 
198
354
  ```ruby
199
- c_date_time(CDT::BORDER | CDT::COMPACT | CDT::DROP_DOWN | CDT::DATE_LONG)
355
+ c_date_time(CDT::BORDER | CDT::TAB_FIELDS | CDT::DROP_DOWN | CDT::DATE_LONG)
200
356
  ```
201
357
 
202
358
  You instead pass style as comma-separated symbols:
203
359
 
204
360
  ```ruby
205
- c_date_time(cdt(:border, :compact, :drop_down, :date_long))
361
+ c_date_time(cdt(:border, :tab_fields, :drop_down, :date_long))
206
362
  ```
207
363
 
208
364
  However, `c_date_time` goes one step further and uses it internally automatically by all `c_date_time` keyword initializers, so you could ditch the `cdt` entirely when constructing a widget.
209
365
 
210
366
  ```ruby
211
- c_date_time(:border, :compact, :drop_down, :date_long)
367
+ c_date_time(:border, :tab_fields, :drop_down, :date_long)
212
368
  ```
213
369
 
214
370
  Furthermore, `c_date_time` has pre-configured smart defaults for `CDT` styles:
@@ -251,9 +407,9 @@ Example:
251
407
 
252
408
  ![Nebula CDateTime Example](images/glimmer-cw-cdatetime-nebula-example.png)
253
409
 
254
- ### Table Editing
410
+ ### Table Editor
255
411
 
256
- `c_date_time` can be used as a `table` / `table_column` editor.
412
+ `c_date_time` (and any keyword aliases) can be used as a `table` / `table_column` editor by passing as symbol to `editor` property (optionally followed by args model editing property).
257
413
 
258
414
  Example:
259
415
 
@@ -269,7 +425,7 @@ Example:
269
425
  table_column {
270
426
  text 'End Date'
271
427
  width CONFIG[:table_column_width_hint]
272
- editor :c_date_time, cdt(:border, :drop_down, :date_long), property: :end_at
428
+ editor :c_date_drop_down, property: :end_at
273
429
  }
274
430
  # ... other table_column declarations
275
431
  items bind(Task, :list), column_properties(:project_name, :task_type, :name, :start_date, :end_date, :duration, :priority)
@@ -284,6 +440,20 @@ Example:
284
440
 
285
441
  You may check out the Nebula CDateTime Widget [Javadoc API](https://www.eclipse.org/nebula/releases/latest/javadoc/org/eclipse/nebula/widgets/cdatetime/CDateTime.html).
286
442
 
443
+ One noteworthy property is [pattern](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html), which can be customized according to the date/time pattern [SimpleDateFormat Javadoc](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html).
444
+
445
+ Example:
446
+
447
+ ```ruby
448
+ c_date_time(:border, :drop_down) {
449
+ pattern 'hh:mm a'
450
+ }
451
+ ```
452
+
453
+ This should customize `c_date_time` to function just like `c_time_drop_down`
454
+
455
+ ![time drop down screenshot](images/glimmer-cw-cdatetime-nebula-drop-down-time.png)
456
+
287
457
  ### Glimmer Custom API
288
458
 
289
459
  Glimmer adds a few extra API methods to CDateTime from Nebula.
@@ -302,7 +472,7 @@ Example:
302
472
  c_time { |proxy|
303
473
  proxy.text_widget_proxy.content {
304
474
  on_swt_mouseup { |event|
305
- proxy.toggle_open
475
+ proxy.toggle_open
306
476
  }
307
477
  }
308
478
  }
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.4.0.2.0
1
+ 1.4.0.2.1
@@ -20,12 +20,11 @@
20
20
  # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
21
 
22
22
  $LOAD_PATH.unshift(File.expand_path('..', __FILE__))
23
- $LOAD_PATH.unshift(File.expand_path('../..', __FILE__))
24
23
 
25
24
  require 'glimmer-dsl-swt'
26
25
 
27
- require 'vendor/nebula/org.eclipse.nebula.cwt_1.1.0.jar'
28
- require 'vendor/nebula/org.eclipse.nebula.widgets.cdatetime_1.4.0.jar'
26
+ require_relative '../vendor/nebula/org.eclipse.nebula.cwt_1.1.0.jar'
27
+ require_relative '../vendor/nebula/org.eclipse.nebula.widgets.cdatetime_1.4.0.jar'
29
28
 
30
29
  Glimmer::Config.import_swt_packages += [
31
30
  'org.eclipse.nebula.cwt',
@@ -36,43 +35,4 @@ require 'glimmer-cw-cdatetime-nebula/ext/glimmer/dsl/swt/cdt_expression'
36
35
  require 'glimmer-cw-cdatetime-nebula/ext/glimmer/swt/c_date_time_proxy'
37
36
  require 'views/nebula/c_date_time'
38
37
 
39
- Glimmer::SWT::WidgetProxy::DEFAULT_STYLES.merge!(
40
- 'c_date_time' => [:border, :tab_fields, :simple],
41
- 'c_date' => [:border, :tab_fields, :date_short, :simple],
42
- 'c_time' => [:border, :tab_fields, :time_short, :simple],
43
- 'c_date_time_compact' => [:border, :tab_fields, :compact],
44
- 'c_date_compact' => [:border, :tab_fields, :date_short, :compact],
45
- 'c_time_compact' => [:border, :tab_fields, :time_short, :compact],
46
- 'c_date_time_spinner' => [:border, :tab_fields, :spinner],
47
- 'c_date_spinner' => [:border, :tab_fields, :date_short, :spinner],
48
- 'c_time_spinner' => [:border, :tab_fields, :time_short, :spinner],
49
- 'c_date_time_drop_down' => [:border, :tab_fields, :drop_down],
50
- 'c_date_drop_down' => [:border, :tab_fields, :drop_down, :date_short],
51
- 'c_time_drop_down' => [:border, :tab_fields, :drop_down, :time_short],
52
- )
53
-
54
- Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_date_time'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_date_time_compact'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_date_time_spinner'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_date_time_drop_down'] = lambda do |widget|
55
- widget.pattern = 'MM/dd/yyyy hh:mm a'
56
- end
57
- Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_date'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_date_compact'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_date_spinner'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_date_drop_down'] = lambda do |widget|
58
- widget.pattern = 'MM/dd/yyyy'
59
- end
60
- Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_time'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_time_compact'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_time_spinner'] = Glimmer::SWT::WidgetProxy::DEFAULT_INITIALIZERS['c_time_drop_down'] = lambda do |widget|
61
- widget.pattern = 'hh:mm a'
62
- end
63
-
64
- Glimmer::SWT::WidgetProxy::KEYWORD_ALIASES.merge!(
65
- 'c_date' => 'c_date_time',
66
- 'c_time' => 'c_date_time',
67
- 'c_date_time_compact' => 'c_date_time',
68
- 'c_date_compact' => 'c_date_time',
69
- 'c_time_compact' => 'c_date_time',
70
- 'c_date_time_spinner' => 'c_date_time',
71
- 'c_date_spinner' => 'c_date_time',
72
- 'c_time_spinner' => 'c_date_time',
73
- 'c_date_time_drop_down' => 'c_date_time',
74
- 'c_date_drop_down' => 'c_date_time',
75
- 'c_time_drop_down' => 'c_date_time',
76
- )
77
-
78
38
  Glimmer::Config::SAMPLE_DIRECTORIES << File.expand_path('../../samples/nebula', __FILE__)
@@ -25,52 +25,69 @@ module Glimmer
25
25
  # Since it is wrapping an existing SWT widget with the same name,
26
26
  # it is not implemented as a typical "Glimmer Custom Widget", yet
27
27
  # just a Glimmer widget proxy that extends Glimmer::SWT::WidgetProxy
28
- class CDateTimeProxy < Glimmer::SWT::WidgetProxy
28
+ class CDateTimeProxy < WidgetProxy
29
29
  def text_widget_proxy
30
- Glimmer::SWT::WidgetProxy.new(swt_widget: swt_widget.text_widget.control)
30
+ WidgetProxy.create(swt_widget: swt_widget.text_widget.control) if swt_widget.text_widget
31
31
  end
32
32
 
33
33
  def toggle_open
34
34
  swt_widget.set_open(!swt_widget.is_open)
35
35
  end
36
-
37
- private
38
-
39
- def has_style?(style)
40
- begin
41
- comparison = CDTProxy[style]
42
- rescue
43
- begin
44
- comparison = SWTProxy[style]
45
- rescue
46
- comparison = DNDProxy[style]
47
- end
48
- end
49
- (@swt_widget.style & comparison) == comparison
36
+
37
+ WidgetProxy::DEFAULT_STYLES.merge!(
38
+ 'c_date_time' => [:border, :tab_fields, :simple],
39
+ 'c_date' => [:border, :tab_fields, :simple],
40
+ 'c_time' => [:border, :tab_fields, :simple],
41
+ 'c_date_time_drop_down' => [:border, :tab_fields, :drop_down],
42
+ 'c_date_drop_down' => [:border, :tab_fields, :drop_down],
43
+ 'c_time_drop_down' => [:border, :tab_fields, :drop_down],
44
+ 'c_date_time_spinner' => [:border, :tab_fields, :spinner],
45
+ 'c_date_spinner' => [:border, :tab_fields, :spinner],
46
+ 'c_time_spinner' => [:border, :tab_fields, :spinner],
47
+ 'c_date_time_compact' => [:border, :tab_fields, :compact],
48
+ 'c_date_compact' => [:border, :tab_fields, :compact],
49
+ 'c_time_compact' => [:border, :tab_fields, :compact],
50
+ )
51
+
52
+ WidgetProxy::DEFAULT_INITIALIZERS['c_date_time'] = WidgetProxy::DEFAULT_INITIALIZERS['c_date_time_compact'] = WidgetProxy::DEFAULT_INITIALIZERS['c_date_time_spinner'] = WidgetProxy::DEFAULT_INITIALIZERS['c_date_time_drop_down'] = lambda do |widget|
53
+ has_pattern_style = %w[time_short time_medium date_short date_medium date_long].reduce(false) {|result, style| result || widget.get_data('proxy').has_style?(style)}
54
+ widget.pattern = 'MM/dd/yyyy hh:mm a' unless has_pattern_style
50
55
  end
51
-
52
- def default_style(underscored_widget_name)
53
- styles = DEFAULT_STYLES[underscored_widget_name] || [:none]
54
- CDTProxy[styles] rescue SWTProxy[styles] rescue DNDProxy[styles]
56
+ WidgetProxy::DEFAULT_INITIALIZERS['c_date'] = WidgetProxy::DEFAULT_INITIALIZERS['c_date_compact'] = WidgetProxy::DEFAULT_INITIALIZERS['c_date_spinner'] = WidgetProxy::DEFAULT_INITIALIZERS['c_date_drop_down'] = lambda do |widget|
57
+ has_pattern_style = %w[time_short time_medium date_short date_medium date_long].reduce(false) {|result, style| result || widget.get_data('proxy').has_style?(style)}
58
+ unless has_pattern_style
59
+ widget.format = Glimmer::SWT::CDTProxy[:date_short]
60
+ widget.pattern = 'MM/dd/yyyy'
61
+ end
55
62
  end
56
-
57
- def style(underscored_widget_name, styles)
58
- styles = [styles].flatten.compact
59
- if styles.empty?
60
- default_style(underscored_widget_name)
61
- else
62
- begin
63
- CDTProxy[*styles]
64
- rescue
65
- begin
66
- SWTProxy[*styles]
67
- rescue
68
- DNDProxy[*styles]
69
- end
70
- end
63
+ WidgetProxy::DEFAULT_INITIALIZERS['c_time'] = WidgetProxy::DEFAULT_INITIALIZERS['c_time_compact'] = WidgetProxy::DEFAULT_INITIALIZERS['c_time_spinner'] = WidgetProxy::DEFAULT_INITIALIZERS['c_time_drop_down'] = lambda do |widget|
64
+ has_pattern_style = %w[time_short time_medium date_short date_medium date_long].reduce(false) {|result, style| result || widget.get_data('proxy').has_style?(style)}
65
+ unless has_pattern_style
66
+ widget.format = Glimmer::SWT::CDTProxy[:time_short]
67
+ widget.pattern = 'hh:mm a'
71
68
  end
72
69
  end
73
-
70
+
71
+ WidgetProxy::KEYWORD_ALIASES.merge!(
72
+ 'c_date' => 'c_date_time',
73
+ 'c_time' => 'c_date_time',
74
+ 'c_date_time_compact' => 'c_date_time',
75
+ 'c_date_compact' => 'c_date_time',
76
+ 'c_time_compact' => 'c_date_time',
77
+ 'c_date_time_spinner' => 'c_date_time',
78
+ 'c_date_spinner' => 'c_date_time',
79
+ 'c_time_spinner' => 'c_date_time',
80
+ 'c_date_time_drop_down' => 'c_date_time',
81
+ 'c_date_drop_down' => 'c_date_time',
82
+ 'c_time_drop_down' => 'c_date_time',
83
+ )
84
+
85
+ private
86
+
87
+ def interpret_style(*styles)
88
+ CDTProxy[*styles] rescue super
89
+ end
90
+
74
91
  end
75
92
 
76
93
  end
@@ -1,35 +1,43 @@
1
+ require 'glimmer-cw-cdatetime-nebula/ext/glimmer/swt/c_date_time_proxy'
2
+
1
3
  module Nebula
2
4
  # This modules just configures Glimmer to work with Nebula CDateTime
3
5
  module CDateTime
4
6
  include Glimmer
5
-
6
- Glimmer::SWT::TableProxy.editors[:c_date_time] ||= {
7
- widget_value_property: :selection,
8
- editor_gui: lambda do |args, model, property, table_proxy|
9
- args << cdt(:drop_down) if args.empty?
10
- table_editor_widget_proxy = c_date_time(*args) {
11
- table_proxy.table_editor.minimumHeight = 20
12
- selection model.send(property)
13
- focus true
14
- on_focus_lost {
15
- table_proxy.finish_edit!
16
- }
17
- on_key_pressed { |key_event|
18
- if key_event.keyCode == swt(:cr)
7
+
8
+ keywords = ['c_date_time'] + Glimmer::SWT::WidgetProxy::KEYWORD_ALIASES.select do |key, value|
9
+ value == 'c_date_time'
10
+ end.keys
11
+
12
+ keywords.each do |keyword|
13
+ Glimmer::SWT::TableProxy.editors[keyword] ||= {
14
+ widget_value_property: :selection,
15
+ editor_gui: lambda do |args, model, property, table_proxy|
16
+ args << cdt(:drop_down) if args.empty?
17
+ table_editor_widget_proxy = send(keyword, *args) {
18
+ table_proxy.table_editor.minimumHeight = 20
19
+ selection model.send(property)
20
+ focus true
21
+ on_focus_lost {
19
22
  table_proxy.finish_edit!
20
- elsif key_event.keyCode == swt(:esc)
21
- table_proxy.cancel_edit!
22
- end
23
- }
24
- on_widget_selected { |event|
25
- table_proxy.finish_edit! unless event.widget.is_open
26
- }
27
- on_widget_default_selected { |event|
28
- table_proxy.finish_edit! unless event.widget.is_open
23
+ }
24
+ on_key_pressed { |key_event|
25
+ if key_event.keyCode == swt(:cr)
26
+ table_proxy.finish_edit!
27
+ elsif key_event.keyCode == swt(:esc)
28
+ table_proxy.cancel_edit!
29
+ end
30
+ }
31
+ on_widget_selected { |event|
32
+ table_proxy.finish_edit! unless event.widget.is_open
33
+ }
34
+ on_widget_default_selected { |event|
35
+ table_proxy.finish_edit! unless event.widget.is_open
36
+ }
29
37
  }
30
- }
31
- table_editor_widget_proxy
32
- end
33
- }
38
+ table_editor_widget_proxy
39
+ end
40
+ }
41
+ end
34
42
  end
35
43
  end
@@ -42,7 +42,7 @@ class CDateTimeGallery
42
42
  tab_folder {
43
43
  tab_item {
44
44
  grid_layout 2, false
45
- text 'Plain'
45
+ text 'Simple'
46
46
 
47
47
  label {
48
48
  text 'c_date_time'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glimmer-cw-cdatetime-nebula
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0.2.0
4
+ version: 1.4.0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Maleh
@@ -15,7 +15,7 @@ dependencies:
15
15
  requirements:
16
16
  - - ">="
17
17
  - !ruby/object:Gem::Version
18
- version: 0.6.8
18
+ version: 0.6.9
19
19
  - - "<"
20
20
  - !ruby/object:Gem::Version
21
21
  version: 2.0.0
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 0.6.8
29
+ version: 0.6.9
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.0.0
@@ -86,9 +86,8 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
- description: Nebula CDateTime Widget - Glimmer Custom Widget - A Date and Time selection
90
- widget that can be used in a plain (graphical), dropdown, spinner, or compact text
91
- style.
89
+ description: Nebula CDateTime Widget 1.4.0 - Glimmer Custom Widget - A Date and Time
90
+ selection widget that can be used in a simple, dropdown, spinner, or compact style.
92
91
  email: andy.am@gmail.com
93
92
  executables: []
94
93
  extensions: []
@@ -129,5 +128,5 @@ requirements: []
129
128
  rubygems_version: 3.0.6
130
129
  signing_key:
131
130
  specification_version: 4
132
- summary: Nebula CDateTime Widget - Glimmer Custom Widget
131
+ summary: Nebula CDateTime Widget 1.4.0 - Glimmer Custom Widget
133
132
  test_files: []