glimmer-dsl-swt 4.17.9.0 → 4.17.10.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +34 -0
- data/README.md +185 -17
- data/VERSION +1 -1
- data/glimmer-dsl-swt.gemspec +8 -7
- data/lib/glimmer/data_binding/table_items_binding.rb +13 -14
- data/lib/glimmer/data_binding/tree_items_binding.rb +7 -7
- data/lib/glimmer/dsl/swt/table_items_data_binding_expression.rb +3 -3
- data/lib/glimmer/launcher.rb +9 -9
- data/lib/glimmer/swt/shell_proxy.rb +18 -3
- data/lib/glimmer/swt/styled_text_proxy.rb +8 -13
- data/lib/glimmer/swt/tab_item_proxy.rb +6 -1
- data/lib/glimmer/swt/table_column_proxy.rb +7 -1
- data/lib/glimmer/swt/table_proxy.rb +144 -59
- data/lib/glimmer/swt/widget_proxy.rb +49 -15
- data/samples/elaborate/meta_sample.rb +9 -9
- data/samples/hello/hello_checkbox_group.rb +3 -0
- data/samples/hello/hello_combo.rb +5 -5
- data/samples/hello/hello_radio_group.rb +3 -0
- data/samples/hello/hello_sash_form.rb +3 -3
- data/samples/hello/hello_spinner.rb +69 -0
- data/samples/hello/hello_tab.rb +3 -3
- data/samples/hello/hello_table.rb +183 -38
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1fb2ca2da3bc7253db8416bc1395423988fee5296324c89fa06d380cb568f28e
|
4
|
+
data.tar.gz: 3924772c16691aafe3a8cdcdc05ef0e9aa566a6843642a987e7ac0e7348c63ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38e692d156d993f29e9b362e8beb34c03eeb933b0d89a1d29c957e033da6f2356408032c03a2e3cfb69d66c0feb1f5c1b863705c40e2ddf55f2282efdf2d18d0
|
7
|
+
data.tar.gz: f9c23c58000fc174b8e6c83b430f117b4ed08ab305510a1f3ee7e1262af6ddb5105e60208be95a92d2bf5adb38501822fe9a8d1bde8fb25f3ee4b70047643858
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,39 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
### 4.17.10.4
|
4
|
+
|
5
|
+
- Do not select first row in a table by default (keep unselected)
|
6
|
+
- Prevented extra call to model data in table items data-binding
|
7
|
+
- Upgraded to glimmer v1.0.5
|
8
|
+
|
9
|
+
### 4.17.10.3
|
10
|
+
|
11
|
+
- Fixed issue in StyledText data-binding relating to capturing selection changes on mouse click
|
12
|
+
|
13
|
+
### 4.17.10.2
|
14
|
+
|
15
|
+
- Upgraded glimmer gem to version 1.0.4
|
16
|
+
- Fixed issues relating to data-binding `styled_text` widget
|
17
|
+
|
18
|
+
### 4.17.10.1
|
19
|
+
|
20
|
+
- Upgraded glimmer gem to version 1.0.3
|
21
|
+
- Upgraded rouge gem to version 3.25.0
|
22
|
+
|
23
|
+
### 4.17.10.0
|
24
|
+
|
25
|
+
- Support table editing via `date_time` for date/time values
|
26
|
+
- Support table default sort configuration via sort_property
|
27
|
+
- Support table default sort configuration via sort block
|
28
|
+
- Support table default sort configuration via sort_by block
|
29
|
+
- Hello, Table! Sample editor :date_time, property: :date_time in
|
30
|
+
- Hello, Table! Sample label for (Baseball Game Schedule)
|
31
|
+
- Hello, Table! Sample combo for selecting nlds, nlcs, alds, alcs, world series
|
32
|
+
- Hello, Table! Sample promotion field that indicates things like Free Bobblehead, Free Towel, Free Umbrella, etc...
|
33
|
+
- ShellProxy#include_focus_control?
|
34
|
+
- Fix issue with table selection data-binding when in single selection mode vs multi
|
35
|
+
- Hello, Spinner! Sample
|
36
|
+
|
3
37
|
### 4.17.9.0
|
4
38
|
|
5
39
|
- Add table style :editable to hook editing listener on mouse click automatically (instead of manually via on_widget_selected)
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.
|
1
|
+
# [<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=85 />](https://github.com/AndyObtiva/glimmer) Glimmer DSL for SWT 4.17.10.4
|
2
2
|
|
3
|
-
## JRuby Desktop Development GUI
|
3
|
+
## JRuby Desktop Development GUI Framework
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/glimmer-dsl-swt.svg)](http://badge.fury.io/rb/glimmer-dsl-swt)
|
5
5
|
[![Travis CI](https://travis-ci.com/AndyObtiva/glimmer-dsl-swt.svg?branch=master)](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
|
6
6
|
[![Coverage Status](https://coveralls.io/repos/github/AndyObtiva/glimmer-dsl-swt/badge.svg?branch=master)](https://coveralls.io/github/AndyObtiva/glimmer-dsl-swt?branch=master)
|
@@ -238,7 +238,7 @@ Glimmer App:
|
|
238
238
|
|
239
239
|
## Table of contents
|
240
240
|
|
241
|
-
- [Glimmer (
|
241
|
+
- [Glimmer (JRuby Desktop Development GUI Framework)](#jruby-desktop-development-gui-framework)
|
242
242
|
- [Examples](#examples)
|
243
243
|
- [Hello, World!](#hello-world)
|
244
244
|
- [Tic Tac Toe](#tic-tac-toe)
|
@@ -353,13 +353,14 @@ Glimmer App:
|
|
353
353
|
- [Hello, Expand Bar!](#hello-expand-bar)
|
354
354
|
- [Hello, Radio!](#hello-radio)
|
355
355
|
- [Hello, Radio Group!](#hello-radio-group)
|
356
|
-
- [Hello, Checkbox!](#hello-checkbox)
|
357
356
|
- [Hello, Group!](#hello-group)
|
358
357
|
- [Hello, Checkbox!](#hello-checkbox)
|
359
358
|
- [Hello, Checkbox Group!](#hello-checkbox-group)
|
360
359
|
- [Hello, Directory Dialog!](#hello-directory-dialog)
|
361
360
|
- [Hello, File Dialog!](#hello-file-dialog)
|
362
361
|
- [Hello, Date Time!](#hello-date-time)
|
362
|
+
- [Hello, Spinner!](#hello-spinner)
|
363
|
+
- [Hello, Table!](#hello-table)
|
363
364
|
- [Elaborate Samples](#elaborate-samples)
|
364
365
|
- [User Profile](#user-profile)
|
365
366
|
- [Login](#login)
|
@@ -453,7 +454,7 @@ jgem install glimmer-dsl-swt
|
|
453
454
|
|
454
455
|
Or this command if you want a specific version:
|
455
456
|
```
|
456
|
-
jgem install glimmer-dsl-swt -v 4.17.
|
457
|
+
jgem install glimmer-dsl-swt -v 4.17.10.4
|
457
458
|
|
458
459
|
```
|
459
460
|
|
@@ -530,7 +531,7 @@ bin/glimmer samples
|
|
530
531
|
Below are the full usage instructions that come up when running `glimmer` without args.
|
531
532
|
|
532
533
|
```
|
533
|
-
Glimmer (
|
534
|
+
Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.17.10.4
|
534
535
|
|
535
536
|
|
536
537
|
Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
|
@@ -708,7 +709,7 @@ glimmer bin/greeter
|
|
708
709
|
|
709
710
|
#### Desktopify
|
710
711
|
|
711
|
-
This scaffolding mode enables you to desktopify a web app. Glimmer Scaffolding basically
|
712
|
+
This scaffolding mode enables you to desktopify a web app. Glimmer Scaffolding basically turns a website into a desktop application by wrapping the website with a [Browser Widget](#browser-widget).
|
712
713
|
|
713
714
|
The desktopify app is similar to the standard scaffolded app. It can be extended and the [browser may even be instrumented](https://help.eclipse.org/2020-09/topic/org.eclipse.platform.doc.isv/reference/api/org/eclipse/swt/browser/Browser.html).
|
714
715
|
|
@@ -1008,7 +1009,7 @@ Output:
|
|
1008
1009
|
|
1009
1010
|
Css glimmer-dsl-css 1.1.0 AndyMaleh Glimmer DSL for CSS
|
1010
1011
|
Opal glimmer-dsl-opal 0.4.0 AndyMaleh Glimmer DSL for Opal
|
1011
|
-
Swt glimmer-dsl-swt 4.17.
|
1012
|
+
Swt glimmer-dsl-swt 4.17.10.4
|
1012
1013
|
AndyMaleh Glimmer DSL for SWT
|
1013
1014
|
Tk glimmer-dsl-tk 0.0.6 AndyMaleh Glimmer DSL for Tk
|
1014
1015
|
Xml glimmer-dsl-xml 1.1.0 AndyMaleh Glimmer DSL for XML
|
@@ -2269,6 +2270,117 @@ This automatically leverages the SWT TableEditor custom class behind the scenes,
|
|
2269
2270
|
passed table item text into something else.
|
2270
2271
|
It automatically persists the change to `items` data-bound model on ENTER/FOCUS-OUT or cancels on ESC/NO-CHANGE.
|
2271
2272
|
|
2273
|
+
##### Table Selection
|
2274
|
+
|
2275
|
+
Table Selection data-binding is simply done via the `selection` property.
|
2276
|
+
|
2277
|
+
```ruby
|
2278
|
+
selection bind(group, :selected_person)
|
2279
|
+
```
|
2280
|
+
|
2281
|
+
If it's a multi-selection table (`table(:multi)`), then the data-bound model property oughta be a collection.
|
2282
|
+
|
2283
|
+
```ruby
|
2284
|
+
selection bind(group, :selected_people)
|
2285
|
+
```
|
2286
|
+
|
2287
|
+
##### Table Editing
|
2288
|
+
|
2289
|
+
Glimmer provides a custom SWT style for table editing called `:editable` to obviate the need for an `on_mouse_up` listener.
|
2290
|
+
|
2291
|
+
For example, the code above could be simplified as:
|
2292
|
+
|
2293
|
+
```ruby
|
2294
|
+
shell {
|
2295
|
+
@table = table(:editable) {
|
2296
|
+
table_column {
|
2297
|
+
text "Name"
|
2298
|
+
width 120
|
2299
|
+
}
|
2300
|
+
table_column {
|
2301
|
+
text "Age"
|
2302
|
+
width 120
|
2303
|
+
}
|
2304
|
+
table_column {
|
2305
|
+
text "Adult"
|
2306
|
+
width 120
|
2307
|
+
}
|
2308
|
+
items bind(group, :people), column_properties(:name, :age, :adult)
|
2309
|
+
selection bind(group, :selected_person)
|
2310
|
+
}
|
2311
|
+
}
|
2312
|
+
```
|
2313
|
+
|
2314
|
+
Additionally, Glimmer supports the idea of custom editors or no editor per column.
|
2315
|
+
|
2316
|
+
Example:
|
2317
|
+
|
2318
|
+
```ruby
|
2319
|
+
shell {
|
2320
|
+
@table = table(:editable) {
|
2321
|
+
table_column {
|
2322
|
+
text "Name"
|
2323
|
+
width 120
|
2324
|
+
}
|
2325
|
+
table_column {
|
2326
|
+
text "Age"
|
2327
|
+
width 120
|
2328
|
+
editor :spinner
|
2329
|
+
}
|
2330
|
+
table_column {
|
2331
|
+
text "Adult"
|
2332
|
+
width 120
|
2333
|
+
editor :checkbox
|
2334
|
+
}
|
2335
|
+
items bind(group, :people), column_properties(:name, :age, :adult)
|
2336
|
+
selection bind(group, :selected_person)
|
2337
|
+
}
|
2338
|
+
}
|
2339
|
+
```
|
2340
|
+
|
2341
|
+
The example above uses a `spinner` widget editor for the age column since it's an `Integer` and
|
2342
|
+
a `checkbox` widget (`button(:check)`) editor for the adult column since it's a `Boolean`
|
2343
|
+
|
2344
|
+
Here are all the supported types of table editors:
|
2345
|
+
- `text`: expects a `String` property
|
2346
|
+
- `combo`: expects a `String` property accompanied by a matching `property_options` property by convention to provide items to present in the `combo`
|
2347
|
+
- `checkbox`: expects a `Boolean` property
|
2348
|
+
- `radio`: expects a `Boolean` property
|
2349
|
+
- `spinner`: expects an `Integer` property
|
2350
|
+
- `date`: expects a `DateTime` property
|
2351
|
+
- `date_drop_down`: expects a `DateTime` property
|
2352
|
+
- `time`: expects a `DateTime` property
|
2353
|
+
|
2354
|
+
An editor may also take additional arguments (SWT styles such as :long for the date field) that are passed to the editor widget, as well as hash options to
|
2355
|
+
customize the property being used for editing (e.g. property: :raw_name for a :formatted_name field) in case it differs from the property used to display
|
2356
|
+
the data in the table.
|
2357
|
+
|
2358
|
+
Example:
|
2359
|
+
|
2360
|
+
```ruby
|
2361
|
+
shell {
|
2362
|
+
@table = table(:editable) {
|
2363
|
+
table_column {
|
2364
|
+
text "Date of Birth"
|
2365
|
+
width 120
|
2366
|
+
editor :date_drop_down, property: :date_time
|
2367
|
+
}
|
2368
|
+
table_column {
|
2369
|
+
text "Industry"
|
2370
|
+
width 120
|
2371
|
+
# assume there is a `Person#industry_options` property method on the model to provide items to the `combo`
|
2372
|
+
editor :combo, :read_only # passes :ready_only SWT style to `combo` widget
|
2373
|
+
}
|
2374
|
+
items bind(group, :people), column_properties(:formatted_date, :industry)
|
2375
|
+
selection bind(group, :selected_person)
|
2376
|
+
}
|
2377
|
+
}
|
2378
|
+
```
|
2379
|
+
|
2380
|
+
Check out [Hello, Table!](#hello-table) for an actual example including table editors.
|
2381
|
+
|
2382
|
+
[Are We There Yet?](#are-we-there-yet) is an actual production Glimmer application that takes full advantage of table capabilities.
|
2383
|
+
|
2272
2384
|
##### Table Sorting
|
2273
2385
|
|
2274
2386
|
Glimmer automatically adds sorting support to the SWT `Table` widget.
|
@@ -2285,6 +2397,8 @@ Should you have a special data type that could not be compared automatically, Gl
|
|
2285
2397
|
- `sort_by(&block)`: this works just like Ruby `Enumerable` `sort_by`. The block receives the table column data as argument.
|
2286
2398
|
- `sort(&comparator)`: this works just like Ruby `Enumerable` `sort`. The comparator block receives two objects from the table column data.
|
2287
2399
|
|
2400
|
+
These alternatives could be used inside `table_column` for column-clicked sorting or in the `table` body directly to set the initial default sort.
|
2401
|
+
|
2288
2402
|
You may also set `additional_sort_properties` on the parent `table` widget to have secondary sorting applied. For example, if you set `additional_sort_properties :name, :project_name`, then whenever you sort by `:name`, it additionally sorts by `:project_name` afterwards, and vice versa. This only works for columns that either have no custom sort set or have a `sort_property` with one property only (but no sort or sort_by block)
|
2289
2403
|
|
2290
2404
|
Example:
|
@@ -2392,6 +2506,8 @@ You can data-bind any of these properties:
|
|
2392
2506
|
|
2393
2507
|
Learn more at the [Hello, Date Time!](#hello-date-time) sample.
|
2394
2508
|
|
2509
|
+
If you need a better widget with the ability to customize the date format pattern, check out the [Nebula CDateTime Glimmer Custom Widget](https://github.com/AndyObtiva/glimmer-cw-cdatetime-nebula)
|
2510
|
+
|
2395
2511
|
### Observer
|
2396
2512
|
|
2397
2513
|
Glimmer comes with `Observer` module, which is used internally for data-binding, but can also be used externally for custom use of the Observer Pattern. It is hidden when observing widgets, and used explicitly when observing models.
|
@@ -3757,14 +3873,6 @@ Hello, Radio Group!
|
|
3757
3873
|
|
3758
3874
|
![Hello Radio Group](images/glimmer-hello-radio-group.png)
|
3759
3875
|
|
3760
|
-
#### Hello, Checkbox!
|
3761
|
-
|
3762
|
-
This sample demonstrates the use of a `checkbox` (aka `check` or `button(:check)`) in Glimmer.
|
3763
|
-
|
3764
|
-
Code:
|
3765
|
-
|
3766
|
-
[samples/hello/hello_checkbox.rb](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/samples/hello/hello_checkbox.rb)
|
3767
|
-
|
3768
3876
|
#### Hello, Group!
|
3769
3877
|
|
3770
3878
|
This sample demonstrates the use of a `group` in Glimmer (not to be confused with the logical radio group custom widget, this is just an alternative to `composite` that provides a border around content).
|
@@ -3853,6 +3961,66 @@ Hello, Date Time!
|
|
3853
3961
|
|
3854
3962
|
![Hello Date Time](images/glimmer-hello-date-time.png)
|
3855
3963
|
|
3964
|
+
#### Hello, Spinner!
|
3965
|
+
|
3966
|
+
This sample demonstrates the use of `spinner` widget in Glimmer
|
3967
|
+
|
3968
|
+
Code:
|
3969
|
+
|
3970
|
+
[samples/hello/hello_spinner.rb](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/samples/hello/hello_spinner.rb)
|
3971
|
+
|
3972
|
+
Hello, Spinner!
|
3973
|
+
|
3974
|
+
![Hello Spinner](images/glimmer-hello-spinner.png)
|
3975
|
+
|
3976
|
+
#### Hello, Table!
|
3977
|
+
|
3978
|
+
This sample demonstrates the use of [table](#table) widget in Glimmer, including data-binding, multi-type editing, sorting, and filtering.
|
3979
|
+
|
3980
|
+
Code:
|
3981
|
+
|
3982
|
+
[samples/hello/hello_table.rb](https://github.com/AndyObtiva/glimmer-dsl-swt/blob/master/samples/hello/hello_table.rb)
|
3983
|
+
|
3984
|
+
Hello, Table!
|
3985
|
+
|
3986
|
+
![Hello Table](images/glimmer-hello-table.png)
|
3987
|
+
|
3988
|
+
Hello, Table! Editing Game Date
|
3989
|
+
|
3990
|
+
![Hello Table](images/glimmer-hello-table-editing-game-date.png)
|
3991
|
+
|
3992
|
+
Hello, Table! Editing Game Time
|
3993
|
+
|
3994
|
+
![Hello Table](images/glimmer-hello-table-editing-game-time.png)
|
3995
|
+
|
3996
|
+
Hello, Table! Editing Home Team
|
3997
|
+
|
3998
|
+
![Hello Table](images/glimmer-hello-table-editing-home-team.png)
|
3999
|
+
|
4000
|
+
Hello, Table! Sorted Game Date Ascending
|
4001
|
+
|
4002
|
+
![Hello Table](images/glimmer-hello-table-sorted-game-date-ascending.png)
|
4003
|
+
|
4004
|
+
Hello, Table! Sorted Game Date Descending
|
4005
|
+
|
4006
|
+
![Hello Table](images/glimmer-hello-table-sorted-game-date-descending.png)
|
4007
|
+
|
4008
|
+
Hello, Table! Playoff Type Combo
|
4009
|
+
|
4010
|
+
![Hello Table](images/glimmer-hello-table-playoff-type-combo.png)
|
4011
|
+
|
4012
|
+
Hello, Table! Playoff Type Changed
|
4013
|
+
|
4014
|
+
![Hello Table](images/glimmer-hello-table-playoff-type-changed.png)
|
4015
|
+
|
4016
|
+
Hello, Table! Game Booked
|
4017
|
+
|
4018
|
+
![Hello Table](images/glimmer-hello-table-game-booked.png)
|
4019
|
+
|
4020
|
+
Hello, Table! Context Menu
|
4021
|
+
|
4022
|
+
![Hello Table](images/glimmer-hello-table-context-menu.png)
|
4023
|
+
|
3856
4024
|
### Elaborate Samples
|
3857
4025
|
|
3858
4026
|
For more elaborate samples, check the following:
|
@@ -4246,4 +4414,4 @@ Copyright (c) 2007-2020 - Andy Maleh.
|
|
4246
4414
|
|
4247
4415
|
--
|
4248
4416
|
|
4249
|
-
[<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 />](https://github.com/AndyObtiva/glimmer) Built for [Glimmer](https://github.com/AndyObtiva/glimmer) (
|
4417
|
+
[<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer/master/images/glimmer-logo-hi-res.png" height=40 />](https://github.com/AndyObtiva/glimmer) Built for [Glimmer](https://github.com/AndyObtiva/glimmer) (DSL Framework).
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.17.
|
1
|
+
4.17.10.4
|
data/glimmer-dsl-swt.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: glimmer-dsl-swt 4.17.
|
5
|
+
# stub: glimmer-dsl-swt 4.17.10.4 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "glimmer-dsl-swt".freeze
|
9
|
-
s.version = "4.17.
|
9
|
+
s.version = "4.17.10.4"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["AndyMaleh".freeze]
|
14
|
-
s.date = "2020-
|
14
|
+
s.date = "2020-12-02"
|
15
15
|
s.description = "Glimmer DSL for SWT (JRuby Desktop Development GUI Library)".freeze
|
16
16
|
s.email = "andy.am@gmail.com".freeze
|
17
17
|
s.executables = ["glimmer".freeze, "girb".freeze]
|
@@ -152,6 +152,7 @@ Gem::Specification.new do |s|
|
|
152
152
|
"samples/hello/hello_radio.rb",
|
153
153
|
"samples/hello/hello_radio_group.rb",
|
154
154
|
"samples/hello/hello_sash_form.rb",
|
155
|
+
"samples/hello/hello_spinner.rb",
|
155
156
|
"samples/hello/hello_styled_text.rb",
|
156
157
|
"samples/hello/hello_tab.rb",
|
157
158
|
"samples/hello/hello_table.rb",
|
@@ -171,7 +172,7 @@ Gem::Specification.new do |s|
|
|
171
172
|
end
|
172
173
|
|
173
174
|
if s.respond_to? :add_runtime_dependency then
|
174
|
-
s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 1.0.
|
175
|
+
s.add_runtime_dependency(%q<glimmer>.freeze, ["~> 1.0.5"])
|
175
176
|
s.add_runtime_dependency(%q<super_module>.freeze, ["~> 1.4.1"])
|
176
177
|
s.add_runtime_dependency(%q<nested_inherited_jruby_include_package>.freeze, ["~> 0.3.0"])
|
177
178
|
s.add_runtime_dependency(%q<puts_debuggerer>.freeze, ["~> 0.10.2"])
|
@@ -181,7 +182,7 @@ Gem::Specification.new do |s|
|
|
181
182
|
s.add_runtime_dependency(%q<os>.freeze, [">= 1.0.0", "< 2.0.0"])
|
182
183
|
s.add_runtime_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
|
183
184
|
s.add_runtime_dependency(%q<text-table>.freeze, [">= 1.2.4", "< 2.0.0"])
|
184
|
-
s.add_runtime_dependency(%q<rouge>.freeze, [">= 3.
|
185
|
+
s.add_runtime_dependency(%q<rouge>.freeze, [">= 3.25.0", "< 4.0.0"])
|
185
186
|
s.add_development_dependency(%q<juwelier>.freeze, [">= 2.4.9", "< 3.0.0"])
|
186
187
|
s.add_development_dependency(%q<warbler>.freeze, [">= 2.0.5", "< 3.0.0"])
|
187
188
|
s.add_development_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
|
@@ -190,7 +191,7 @@ Gem::Specification.new do |s|
|
|
190
191
|
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.16.1"])
|
191
192
|
s.add_development_dependency(%q<simplecov-lcov>.freeze, ["~> 0.7.0"])
|
192
193
|
else
|
193
|
-
s.add_dependency(%q<glimmer>.freeze, ["~> 1.0.
|
194
|
+
s.add_dependency(%q<glimmer>.freeze, ["~> 1.0.5"])
|
194
195
|
s.add_dependency(%q<super_module>.freeze, ["~> 1.4.1"])
|
195
196
|
s.add_dependency(%q<nested_inherited_jruby_include_package>.freeze, ["~> 0.3.0"])
|
196
197
|
s.add_dependency(%q<puts_debuggerer>.freeze, ["~> 0.10.2"])
|
@@ -200,7 +201,7 @@ Gem::Specification.new do |s|
|
|
200
201
|
s.add_dependency(%q<os>.freeze, [">= 1.0.0", "< 2.0.0"])
|
201
202
|
s.add_dependency(%q<rake>.freeze, [">= 10.1.0", "< 14.0.0"])
|
202
203
|
s.add_dependency(%q<text-table>.freeze, [">= 1.2.4", "< 2.0.0"])
|
203
|
-
s.add_dependency(%q<rouge>.freeze, [">= 3.
|
204
|
+
s.add_dependency(%q<rouge>.freeze, [">= 3.25.0", "< 4.0.0"])
|
204
205
|
s.add_dependency(%q<juwelier>.freeze, [">= 2.4.9", "< 3.0.0"])
|
205
206
|
s.add_dependency(%q<warbler>.freeze, [">= 2.0.5", "< 3.0.0"])
|
206
207
|
s.add_dependency(%q<rspec-mocks>.freeze, ["~> 3.5.0"])
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# Copyright (c) 2007-2020 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
|
@@ -38,16 +38,16 @@ module Glimmer
|
|
38
38
|
@model_binding = model_binding
|
39
39
|
@table.swt_widget.data = @model_binding
|
40
40
|
@column_properties = column_properties
|
41
|
+
@table.on_widget_disposed do |dispose_event|
|
42
|
+
unregister_all_observables
|
43
|
+
end
|
41
44
|
if @table.respond_to?(:column_properties=)
|
42
45
|
@table.column_properties = @column_properties
|
43
46
|
else # assume custom widget
|
44
47
|
@table.body_root.column_properties = @column_properties
|
45
48
|
end
|
46
|
-
call(@model_binding.evaluate_property)
|
47
49
|
@table_observer_registration = observe(model_binding)
|
48
|
-
|
49
|
-
unregister_all_observables
|
50
|
-
end
|
50
|
+
call
|
51
51
|
end
|
52
52
|
|
53
53
|
def call(new_model_collection=nil)
|
@@ -61,11 +61,11 @@ module Glimmer
|
|
61
61
|
add_dependent(@table_observer_registration => @table_items_observer_registration)
|
62
62
|
@model_collection = new_model_collection
|
63
63
|
end
|
64
|
-
populate_table(@model_collection, @table, @column_properties)
|
64
|
+
populate_table(@model_collection, @table, @column_properties)
|
65
65
|
end
|
66
66
|
|
67
67
|
def populate_table(model_collection, parent, column_properties)
|
68
|
-
selected_table_item_models = parent.swt_widget.getSelection.map(&:
|
68
|
+
selected_table_item_models = parent.swt_widget.getSelection.map(&:get_data)
|
69
69
|
parent.finish_edit!
|
70
70
|
parent.swt_widget.items.each(&:dispose)
|
71
71
|
parent.swt_widget.removeAll
|
@@ -74,12 +74,11 @@ module Glimmer
|
|
74
74
|
for index in 0..(column_properties.size-1)
|
75
75
|
table_item.setText(index, model.send(column_properties[index]).to_s)
|
76
76
|
end
|
77
|
-
table_item.
|
77
|
+
table_item.set_data(model)
|
78
78
|
end
|
79
|
-
selected_table_items = parent.search {|item| selected_table_item_models.include?(item.
|
80
|
-
|
81
|
-
parent.
|
82
|
-
parent.sort
|
79
|
+
selected_table_items = parent.search {|item| selected_table_item_models.include?(item.get_data) }
|
80
|
+
parent.swt_widget.setSelection(selected_table_items)
|
81
|
+
parent.sort!
|
83
82
|
parent.swt_widget.redraw if parent&.swt_widget&.respond_to?(:redraw)
|
84
83
|
end
|
85
84
|
end
|