glimmer-dsl-swt 4.24.4.6 → 4.24.4.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +5 -5
- data/VERSION +1 -1
- data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +4 -2
- data/glimmer-dsl-swt.gemspec +0 -0
- data/lib/glimmer/swt/custom/refined_table.rb +40 -3
- data/lib/glimmer/swt/widget_proxy.rb +1 -1
- data/samples/elaborate/meta_sample/tutorials.yml +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa2c86f6cd6f3f38a1f5790a1b66b61fd90d354af69ef815be3330a272bd2e4f
|
4
|
+
data.tar.gz: ed9d793052ab0f83533f517d90dd0419771a6b110ca642f70691f06eac3159c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 250fe4baa75533f2a5c5fec95c26e750f517f6a969621f347ce56e5a1c4f8bb5c8dc8029824809f84b8b0cab3be512b359d45a200ccd7c4942d1bc8535fb04f7
|
7
|
+
data.tar.gz: 863cccf44a913613b242dab209be6c1ce24daa974c458c2f4dced7440012573df1c324025eb91220afbf1571e3f57bc5628dd5397ddbb131535b0175394f827f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 4.24.4.7
|
4
|
+
|
5
|
+
- Optimize performance of `refined_table` in filtering (it now caches results and replays them) and pagination (it now remembers last query page and avoids refiltering when paginating on the same query value)
|
6
|
+
- Improve `combo` `selection` data-binding by auto-converting `_options` values to `String` before setting as `Item`s on `combo` (e.g. in case `Integer` values were set like years)
|
7
|
+
|
3
8
|
## 4.24.4.6
|
4
9
|
|
5
10
|
- Support `refined_table` sorting (now clicking on headers sorts the entire `model_array` collection, not just the visible rows)
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
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.24.4.
|
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.24.4.7
|
2
2
|
## JRuby Desktop Development GUI Framework
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/glimmer-dsl-swt.svg)](http://badge.fury.io/rb/glimmer-dsl-swt)
|
4
4
|
[![Travis CI](https://travis-ci.com/AndyObtiva/glimmer-dsl-swt.svg?branch=master)](https://travis-ci.com/github/AndyObtiva/glimmer-dsl-swt)
|
@@ -21,7 +21,7 @@ Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) an
|
|
21
21
|
|
22
22
|
![Eclipse SWT RCP NASA Mars Rover](/images/glimmer-eclipse-swt-rcp-nasa-mars-rover.png)
|
23
23
|
|
24
|
-
[Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.24.4.
|
24
|
+
[Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.24.4.7 includes [SWT 4.24](https://download.eclipse.org/eclipse/downloads/drops4/R-4.24-202206070700/), which was released on June 7, 2022. Gem version numbers are in sync with the SWT library versions. The first two digits represent the SWT version number. The last two digits represent the minor and patch versions of Glimmer DSL for SWT.
|
25
25
|
|
26
26
|
**Starting in version 4.20.0.0, [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) comes with the new [***Shine***](/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#shine) syntax** for highly intuitive and visually expressive View/Model Attribute Mapping, relying on `<=>` for bidirectional (two-way) data-binding and `<=` for unidirectional (one-way) data-binding, providing an alternative to the `bind` keyword. That was [originally conceived back in 2007](https://andymaleh.blogspot.com/2007/12/data-shining-in-glimmer.html).
|
27
27
|
|
@@ -338,7 +338,7 @@ jgem install glimmer-dsl-swt
|
|
338
338
|
|
339
339
|
Or this command if you want a specific version:
|
340
340
|
```
|
341
|
-
jgem install glimmer-dsl-swt -v 4.24.4.
|
341
|
+
jgem install glimmer-dsl-swt -v 4.24.4.7
|
342
342
|
```
|
343
343
|
|
344
344
|
`jgem` is JRuby's version of `gem` command.
|
@@ -366,7 +366,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u
|
|
366
366
|
|
367
367
|
Add the following to `Gemfile`:
|
368
368
|
```
|
369
|
-
gem 'glimmer-dsl-swt', '~> 4.24.4.
|
369
|
+
gem 'glimmer-dsl-swt', '~> 4.24.4.7'
|
370
370
|
```
|
371
371
|
|
372
372
|
And, then run:
|
@@ -389,7 +389,7 @@ glimmer
|
|
389
389
|
```
|
390
390
|
|
391
391
|
```
|
392
|
-
Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.24.4.
|
392
|
+
Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.24.4.7
|
393
393
|
|
394
394
|
Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
|
395
395
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.24.4.
|
1
|
+
4.24.4.7
|
@@ -4309,7 +4309,7 @@ Here is an explanation of the example above:
|
|
4309
4309
|
|
4310
4310
|
##### Refined Table
|
4311
4311
|
|
4312
|
-
**(
|
4312
|
+
**(BETA FEATURE)**
|
4313
4313
|
|
4314
4314
|
`refined_table` is a custom widget that can handle very large amounts of data by applying pagination and filtering.
|
4315
4315
|
|
@@ -4320,7 +4320,9 @@ Options:
|
|
4320
4320
|
- `page` (default: `1` if table is filled and `0` otherwise): specifies initial page
|
4321
4321
|
- `query` (default: `''`): specifies filter query term (empty shows all results)
|
4322
4322
|
|
4323
|
-
|
4323
|
+
When click columns (headers) in a `refined_table`, it sorts the entire `model_array`, not just the visible rows.
|
4324
|
+
|
4325
|
+
Also, upon filtering with a query term, moving in pages, and then unfiltering (backspacing)/refiltering, it remembers the last query term's page and results (through caching) and goes back to them, thus ensuring better performance.
|
4324
4326
|
|
4325
4327
|
Example taken from [Hello, Refined Table!](/docs/reference/GLIMMER_SAMPLES.md#hello-refined-table):
|
4326
4328
|
|
data/glimmer-dsl-swt.gemspec
CHANGED
Binary file
|
@@ -39,6 +39,7 @@ module Glimmer
|
|
39
39
|
|
40
40
|
before_body do
|
41
41
|
self.query ||= ''
|
42
|
+
@last_query = self.query
|
42
43
|
self.model_array ||= []
|
43
44
|
self.filtered_model_array = []
|
44
45
|
self.refined_model_array = []
|
@@ -52,6 +53,8 @@ module Glimmer
|
|
52
53
|
model_binding = new_widget_binding.model_binding
|
53
54
|
configure_sorting
|
54
55
|
observe(self, :model_array) do
|
56
|
+
@query_to_filtered_model_array_hash = {}
|
57
|
+
@query_to_page_hash = {}
|
55
58
|
filter_and_paginate
|
56
59
|
end
|
57
60
|
@table_proxy.content {
|
@@ -200,11 +203,23 @@ module Glimmer
|
|
200
203
|
end
|
201
204
|
|
202
205
|
def filter
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
+
new_query = query.to_s.strip
|
207
|
+
new_filtered_model_array = query_to_filtered_model_array_hash[new_query]
|
208
|
+
if new_filtered_model_array.nil?
|
209
|
+
if new_query.empty?
|
210
|
+
query_to_filtered_model_array_hash[new_query] = new_filtered_model_array = model_array.dup
|
211
|
+
else
|
212
|
+
new_filtered_model_array = model_array.select do |model|
|
213
|
+
@table_proxy.cells_for(model).any? do |cell_text|
|
214
|
+
cell_text.to_s.downcase.include?(new_query.downcase)
|
215
|
+
end
|
216
|
+
end
|
217
|
+
query_to_filtered_model_array_hash[new_query] = new_filtered_model_array
|
206
218
|
end
|
207
219
|
end
|
220
|
+
self.filtered_model_array = new_filtered_model_array
|
221
|
+
restore_query_page
|
222
|
+
@last_query = new_query
|
208
223
|
end
|
209
224
|
|
210
225
|
def paginate
|
@@ -212,6 +227,28 @@ module Glimmer
|
|
212
227
|
self.refined_model_array = filtered_model_array[(page - 1) * per_page, per_page]
|
213
228
|
end
|
214
229
|
|
230
|
+
def restore_query_page
|
231
|
+
new_query = query.to_s.strip
|
232
|
+
last_query = @last_query.to_s.strip
|
233
|
+
if last_query != new_query
|
234
|
+
query_to_page_hash[last_query] = page
|
235
|
+
else
|
236
|
+
query_to_page_hash[new_query] = page
|
237
|
+
end
|
238
|
+
if last_query != new_query && last_query.include?(new_query)
|
239
|
+
new_page = query_to_page_hash[new_query]
|
240
|
+
self.page = corrected_page(new_page) if new_page
|
241
|
+
end
|
242
|
+
end
|
243
|
+
|
244
|
+
def query_to_filtered_model_array_hash
|
245
|
+
@query_to_filtered_model_array_hash ||= {}
|
246
|
+
end
|
247
|
+
|
248
|
+
def query_to_page_hash
|
249
|
+
@query_to_page_hash ||= {}
|
250
|
+
end
|
251
|
+
|
215
252
|
private
|
216
253
|
|
217
254
|
def configure_sorting
|
@@ -1146,7 +1146,7 @@ module Glimmer
|
|
1146
1146
|
end.to_java(Image)
|
1147
1147
|
end,
|
1148
1148
|
items: lambda do |value|
|
1149
|
-
value.to_java :string
|
1149
|
+
value.map(&:to_s).to_java :string
|
1150
1150
|
end,
|
1151
1151
|
maximized_control: lambda do |value|
|
1152
1152
|
value = (value.respond_to?(:swt_widget) ? value.swt_widget : value) if swt_widget.is_a?(SashForm)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glimmer-dsl-swt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.24.4.
|
4
|
+
version: 4.24.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|