glimmer-dsl-swt 4.24.0.1 → 4.24.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/README.md +51 -12
- data/RUBY_VERSION +1 -1
- data/VERSION +1 -1
- data/docs/reference/GLIMMER_GUI_DSL_SYNTAX.md +704 -43
- data/docs/reference/GLIMMER_SAMPLES.md +3 -23
- data/glimmer-dsl-swt.gemspec +0 -0
- data/lib/glimmer/rake_task/scaffold.rb +11 -18
- data/lib/glimmer/swt/custom/shape/path_segment.rb +1 -0
- data/samples/elaborate/meta_sample/tutorials.yml +3 -0
- data/samples/hello/hello_canvas_data_binding.rb +695 -38
- data/samples/hello/hello_canvas_path.rb +94 -89
- data/samples/hello/hello_canvas_transform.rb +3 -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: fb2e6b29d0e22472197125558b15c5907bb8cd0f14435a5394e50e988d246e60
|
4
|
+
data.tar.gz: fb077b4b726a322ba57a3bc18e5feb8356d25eac9f8919cd3fccabd8cb3220a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: be47b7d1ed562c8a086f6d4f58df9f669597fe0726f7befc15632ee21ba326514978a6622b6daeb3c35da6fdaaf104a55c316ee1b8fd22841697999eddedb193
|
7
|
+
data.tar.gz: bd6f034024917f91b7b15b54010c37c17b9b10a85d82ae9b41ad7f5605935217ca381a98f15f4f96f874684a3fb1f6b62e6bb19fb7a354af4c98d30a746daa47
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,20 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
## 4.24.1.1
|
4
|
+
|
5
|
+
- Fix `jar-dependencies` gem version to v0.4.1 in scaffolded applications to avoid issue encountered in newly released v0.4.2
|
6
|
+
|
7
|
+
## 4.24.1.0
|
8
|
+
|
9
|
+
- Upgrade to JRuby 9.3.6.0
|
10
|
+
- Speed up app scaffolding by dropping packaging from the scaffolding steps as there is no point in packaging an unfinished product
|
11
|
+
- Refactor/simplify Hello, Canvas Path!
|
12
|
+
|
13
|
+
## 4.24.0.2
|
14
|
+
|
15
|
+
- Update Hello, Canvas Data-Binding! to support quadratic bezier curves, cubic bezier curves, and Drag & Drop of endpoints / control points
|
16
|
+
- Fix issue with data-binding `quad` & `cubic` path shape `point_array`
|
17
|
+
|
3
18
|
## 4.24.0.1
|
4
19
|
|
5
20
|
- Support declaratively setting shape data via `data` property
|
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.
|
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.1.1
|
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)
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
[GLIMMER VIDEO TUTORIAL CHANNEL](https://www.youtube.com/channel/UC5hzDE23HZXsZLAxYk2UJEw)
|
12
12
|
|
13
|
-
[Glimmer](https://github.com/AndyObtiva/glimmer) DSL for [SWT](https://www.eclipse.org/swt/) is a native
|
13
|
+
[Glimmer](https://github.com/AndyObtiva/glimmer) DSL for [SWT](https://www.eclipse.org/swt/) is a native GUI (Graphical User Interface) cross-platform desktop development library written in [JRuby](https://www.jruby.org/), an OS-threaded faster [JVM](https://www.java.com/en/download/help/whatis_java.html) version of [Ruby](https://www.ruby-lang.org/en/). [Glimmer](https://github.com/AndyObtiva/glimmer)'s main innovation is a declarative [Ruby DSL](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#glimmer-dsl-syntax) (Domain Specific Language) that enables productive and efficient authoring of desktop application user-interfaces by relying on the robust [Eclipse SWT library](https://www.eclipse.org/swt/). [Glimmer](https://rubygems.org/gems/glimmer) additionally innovates by having built-in [data-binding](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#data-binding) support, which greatly facilitates synchronizing the GUI with domain models, thus achieving true decoupling of object oriented components and enabling developers to solve business problems (test-first) without worrying about GUI concerns, or alternatively drive development GUI-first, and then write clean business models afterwards. Not only does Glimmer provide a large set of GUI [widgets](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#widgets), but it also supports drawing Canvas Graphics like [Shapes](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#canvas-shape-dsl) and [Animations](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#canvas-animation-dsl). To get started quickly, [Glimmer](https://rubygems.org/gems/glimmer) offers [scaffolding](docs/reference/GLIMMER_COMMAND.md#scaffolding) options for [Apps](#in-production), [Gems](docs/reference/GLIMMER_COMMAND.md#custom-shell-gem), and [Custom Widgets](docs/reference/GLIMMER_GUI_DSL_SYNTAX.md#custom-widgets). [Glimmer](https://rubygems.org/gems/glimmer) also includes native-executable [packaging](docs/reference/GLIMMER_PACKAGING_AND_DISTRIBUTION.md) support, sorely lacking in other libraries, thus enabling the delivery of desktop apps written in [Ruby](https://www.ruby-lang.org/en/) as truly native DMG/PKG/APP files on the [Mac](https://www.apple.com/ca/macos), MSI/EXE files on [Windows](https://www.microsoft.com/en-ca/windows), and DEB/RPM files on [Linux](https://www.linux.org/). [Glimmer](https://github.com/AndyObtiva/glimmer) was the [first Ruby gem](https://rubygems.org/gems/glimmer) to bring [SWT](https://www.eclipse.org/swt/) (Standard Widget Toolkit) to [Ruby](https://www.ruby-lang.org/en/), thanks to creator [Andy Maleh](https://andymaleh.blogspot.com/), EclipseCon/EclipseWorld/RubyConf speaker.
|
14
14
|
|
15
15
|
[<img src="https://covers.oreillystatic.com/images/9780596519650/lrg.jpg" width=105 /><br />
|
16
16
|
Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) and [Chalmers/Gothenburg University Software Engineering Master's Lecture Material](http://www.cse.chalmers.se/~bergert/slides/guest_lecture_DSLs.pdf)
|
@@ -19,7 +19,7 @@ Featured in JRuby Cookbook](http://shop.oreilly.com/product/9780596519650.do) an
|
|
19
19
|
|
20
20
|
![Eclipse SWT RCP NASA Mars Rover](/images/glimmer-eclipse-swt-rcp-nasa-mars-rover.png)
|
21
21
|
|
22
|
-
[Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.24.
|
22
|
+
[Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) 4.24.1.1 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.
|
23
23
|
|
24
24
|
**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).
|
25
25
|
|
@@ -200,6 +200,7 @@ Glimmer app:
|
|
200
200
|
|
201
201
|
![Tetris](images/glimmer-tetris.png)
|
202
202
|
|
203
|
+
[Check out many more samples over here.](/docs/reference/GLIMMER_SAMPLES.md)
|
203
204
|
|
204
205
|
### Desktop Apps Built with Glimmer DSL for SWT
|
205
206
|
|
@@ -211,6 +212,8 @@ Glimmer app:
|
|
211
212
|
|
212
213
|
[![Math Bowling App Screenshot](https://raw.githubusercontent.com/AndyObtiva/MathBowling/master/Math-Bowling-Screenshot.png)](https://github.com/AndyObtiva/MathBowling)
|
213
214
|
|
215
|
+
[Check out other apps in production.](#in-production)
|
216
|
+
|
214
217
|
## Table of contents
|
215
218
|
|
216
219
|
- [Glimmer (JRuby Desktop Development GUI Framework)](#jruby-desktop-development-gui-framework)
|
@@ -278,7 +281,7 @@ Audio is supported via the Java Sound library in a cross-platform approach and v
|
|
278
281
|
|
279
282
|
### Remaining Challenges
|
280
283
|
|
281
|
-
JRuby startup time is longer than that of CRuby, but has gotten a lot faster with newer CPUs, especially the latest Mac ARM64 processors. Thankfully, [there are work-arounds](https://andymaleh.blogspot.com/2021/03/glimmer-dsl-for-swt-41900-halved.html) that could make apps start as fast as instantly when needed.
|
284
|
+
JRuby startup time is longer than that of CRuby, but has gotten a lot faster with newer CPUs, especially the latest Mac ARM64 processors (it is now about 2.5 seconds on Mac ARM64 processors like the M1 chip). Thankfully, [there are work-arounds](https://andymaleh.blogspot.com/2021/03/glimmer-dsl-for-swt-41900-halved.html) that could make apps start as fast as instantly when needed.
|
282
285
|
|
283
286
|
Contributors who appreciate Glimmer's ultra-high productivity, maintainability, and extensibility might want to help report and resolve remaining challenges in its software architecture.
|
284
287
|
|
@@ -303,7 +306,7 @@ https://www.eclipse.org/swt/faq.php
|
|
303
306
|
|
304
307
|
- JDK 18 is recommended / Minimum is JDK 16 on x64 platforms and Linux AARCH64, and JDK 17 on Mac ARM64 (find at https://www.oracle.com/java/technologies/downloads / Ensure `PATH` env var includes Java bin directory for `jpackage` command to work when packaging Glimmer applications / Preferably setup `JAVA_HOME` env var too to point to JDK home directory before installing JRuby)
|
305
308
|
- [RVM](http://rvm.io) on Mac & Linux (not needed on Windows)
|
306
|
-
- JRuby 9.3.
|
309
|
+
- JRuby 9.3.6.0 (supporting Ruby 2.6.x syntax) (get via [RVM](http://rvm.io) on Mac and Linux by running `rvm install jruby-9.3.6.0`; On Windows, find at [https://www.jruby.org/download](https://www.jruby.org/download))
|
307
310
|
- SWT 4.24 (already included in the [glimmer-dsl-swt](https://rubygems.org/gems/glimmer-dsl-swt) gem). Note that SWT supports ARM64/AARCH64 on Mac and Linux since version 4.20
|
308
311
|
- Git (comes with Mac and Linux. Install on Windows: https://git-scm.com/download/win )
|
309
312
|
|
@@ -333,7 +336,7 @@ jgem install glimmer-dsl-swt
|
|
333
336
|
|
334
337
|
Or this command if you want a specific version:
|
335
338
|
```
|
336
|
-
jgem install glimmer-dsl-swt -v 4.24.
|
339
|
+
jgem install glimmer-dsl-swt -v 4.24.1.1
|
337
340
|
```
|
338
341
|
|
339
342
|
`jgem` is JRuby's version of `gem` command.
|
@@ -361,7 +364,7 @@ Note: if you're using activerecord or activesupport, keep in mind that Glimmer u
|
|
361
364
|
|
362
365
|
Add the following to `Gemfile`:
|
363
366
|
```
|
364
|
-
gem 'glimmer-dsl-swt', '~> 4.24.
|
367
|
+
gem 'glimmer-dsl-swt', '~> 4.24.1.1'
|
365
368
|
```
|
366
369
|
|
367
370
|
And, then run:
|
@@ -384,7 +387,7 @@ glimmer
|
|
384
387
|
```
|
385
388
|
|
386
389
|
```
|
387
|
-
Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.24.
|
390
|
+
Glimmer (JRuby Desktop Development GUI Framework) - JRuby Gem: glimmer-dsl-swt v4.24.1.1
|
388
391
|
|
389
392
|
Usage: glimmer [--bundler] [--pd] [--quiet] [--debug] [--log-level=VALUE] [[ENV_VAR=VALUE]...] [[-jruby-option]...] (application.rb or task[task_args]) [[application2.rb]...]
|
390
393
|
|
@@ -565,46 +568,82 @@ If you have a Glimmer app you would like referenced here, please mention in a Pu
|
|
565
568
|
|
566
569
|
[<img alt="Math Bowling Logo" src="https://raw.githubusercontent.com/AndyObtiva/MathBowling/master/images/math-bowling-logo.png" width="40" />Math Bowling](https://github.com/AndyObtiva/MathBowling): an educational math game for elementary level kids
|
567
570
|
|
568
|
-
|
571
|
+
[![Math Bowling App Screenshot](https://raw.githubusercontent.com/AndyObtiva/MathBowling/master/Math-Bowling-Screenshot.png)](https://github.com/AndyObtiva/MathBowling)
|
569
572
|
|
570
|
-
|
573
|
+
### Gladiator
|
574
|
+
|
575
|
+
[<img src='https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-gladiator/master/images/glimmer-cs-gladiator-logo.png' height=40 /> Gladiator](https://github.com/AndyObtiva/glimmer-cs-gladiator) (short for Glimmer Editor) is a code editor built with Ruby.
|
576
|
+
|
577
|
+
[<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer-cs-gladiator/master/images/glimmer-gladiator.png" />](https://github.com/AndyObtiva/glimmer-cs-gladiator)
|
578
|
+
|
579
|
+
Gladiator is a good demonstration of:
|
580
|
+
- MVP Pattern
|
581
|
+
- Tree data-binding
|
582
|
+
- List data-binding
|
583
|
+
- Text selection data-binding
|
584
|
+
- Tabs
|
585
|
+
- Context menus
|
586
|
+
- Custom Shell
|
587
|
+
- Custom widget
|
588
|
+
|
589
|
+
### Are We There Yet?
|
571
590
|
|
572
591
|
[<img alt="Are We There Yet Logo" src="https://raw.githubusercontent.com/AndyObtiva/are-we-there-yet/master/are-we-there-yet-logo.svg" width="40" />Are We There Yet?](https://github.com/AndyObtiva/are-we-there-yet): A tool that helps you learn when your small projects will finish
|
573
592
|
|
574
|
-
|
593
|
+
[![Are We There Yet? App Screenshot](https://raw.githubusercontent.com/AndyObtiva/are-we-there-yet/master/are-we-there-yet-screenshot-windows.png)](https://github.com/AndyObtiva/are-we-there-yet)
|
575
594
|
|
576
|
-
This [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) application connects to a [
|
595
|
+
This [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) application connects to a [SQLite](https://www.sqlite.org/index.html) database using [ActiveRecord](https://rubygems.org/gems/activerecord).
|
596
|
+
|
597
|
+
### Garderie Rainbow Daily Agenda
|
577
598
|
|
578
599
|
[<img alt="Garderie Rainbow Daily Agenda Logo" src="https://github.com/AndyObtiva/garderie_rainbow_daily_agenda/raw/master/images/garderie_rainbow_daily_agenda_logo.png" width="40" />Garderie Rainbow Daily Agenda](https://github.com/AndyObtiva/garderie_rainbow_daily_agenda): A child nursery daily agenda reporting desktop app
|
579
600
|
|
601
|
+
[![Garderie Rainbow Daily Agenda App Screenshot](https://github.com/AndyObtiva/garderie_rainbow_daily_agenda/raw/master/images/garderie_rainbow_daily_agenda_screenshot.png)](https://github.com/AndyObtiva/garderie_rainbow_daily_agenda)
|
602
|
+
|
603
|
+
This [Glimmer DSL for SWT](https://rubygems.org/gems/glimmer-dsl-swt) application connects to a [Rails](https://rubyonrails.org/) server to submit a nursery child daily agenda via a REST API, storing data in [PostgreSQL](https://www.postgresql.org/).
|
604
|
+
|
580
605
|
### Glimmer Gab
|
581
606
|
|
582
607
|
[<img alt="Glimmer Gab Logo" src="https://raw.githubusercontent.com/AndyObtiva/glimmer_gab/master/package/linux/Glimmer%20Gab.png" height=40 /> Glimmer Gab](https://github.com/AndyObtiva/glimmer_gab): Desktop App for Gab.com
|
583
608
|
|
609
|
+
[![Glimmer Gab App Screenshot](https://github.com/AndyObtiva/glimmer_gab/raw/master/screenshots/glimmer-gab-mac.png)](https://github.com/AndyObtiva/glimmer_gab)
|
610
|
+
|
584
611
|
### Connector
|
585
612
|
|
586
613
|
[<img alt="Connector Logo" src="https://raw.githubusercontent.com/AndyObtiva/connector/master/package/linux/Connector.png" height=40 /> Connector](https://github.com/AndyObtiva/connector): A minimalist open-source multi-engine web browser
|
587
614
|
|
615
|
+
[![Connector App Screenshot](https://github.com/AndyObtiva/connector/raw/master/images/connector-mac.png)](https://github.com/AndyObtiva/connector)
|
616
|
+
|
588
617
|
### The DCR Programming Language
|
589
618
|
|
590
619
|
[<img alt="Connector Logo" src="https://raw.githubusercontent.com/AndyObtiva/dcr/f31cd45a8503051e899ed8e831fd03654d38e418/package/linux/Draw%20Color%20Repeat.png" height=40 /> Draw Color Repeat](https://github.com/AndyObtiva/dcr): A young boy programming language for Drawing and Coloring with Repetition
|
591
620
|
|
621
|
+
[![DCR App Screenshot](https://github.com/AndyObtiva/dcr/raw/master/images/dcr-screenshot.png)](https://github.com/AndyObtiva/dcr)
|
622
|
+
|
592
623
|
### Befunge 98 Programming Language
|
593
624
|
|
594
625
|
[Befunge 98 GUI](https://github.com/AndyObtiva/befunge98/tree/gui)
|
595
626
|
|
627
|
+
[![Befunge 98 App Screenshot](https://github.com/AndyObtiva/befunge98/raw/gui/gui/glimmer-dsl-swt/befunge98_gui_glimmer_dsl_swt/screenshots/befunge98_gui_glimmer_dsl_swt_example_output.png)](https://github.com/AndyObtiva/befunge98/tree/gui)
|
628
|
+
|
596
629
|
### Glimmer Klondike Solitaire
|
597
630
|
|
598
631
|
[<img alt="Glimmer Klondike Solitaire Icon" src="https://raw.githubusercontent.com/AndyObtiva/glimmer_klondike_solitaire/master/icons/linux/Glimmer%20Klondike%20Solitaire.png" height=40 /> Glimmer Klondike Solitaire](https://github.com/AndyObtiva/glimmer_klondike_solitaire)
|
599
632
|
|
633
|
+
[![Glimmer Klondike Solitaire App Screenshot](https://github.com/AndyObtiva/glimmer_klondike_solitaire/raw/master/images/glimmer-klondike-solitaire.png)](https://github.com/AndyObtiva/glimmer_klondike_solitaire)
|
634
|
+
|
600
635
|
### Glimmer Metronome
|
601
636
|
|
602
637
|
[<img src="https://raw.githubusercontent.com/AndyObtiva/glimmer_metronome/master/icons/linux/Glimmer%20Metronome.png" height=40 /> Glimmer Metronome](https://github.com/AndyObtiva/glimmer_metronome)
|
603
638
|
|
639
|
+
[![Glimmer Metronome App Screenshot](https://raw.githubusercontent.com/AndyObtiva/glimmer_metronome/master/screenshots/glimmer-metronome.gif)](https://github.com/AndyObtiva/glimmer_metronome)
|
640
|
+
|
604
641
|
### Glimmer Wordle
|
605
642
|
|
606
643
|
[<img src='https://raw.githubusercontent.com/AndyObtiva/glimmer_wordle/master/icons/linux/Glimmer Wordle.png' height=40 /> Glimmer Wordle - Word Game](https://github.com/AndyObtiva/glimmer_wordle)
|
607
644
|
|
645
|
+
[![Glimmer Wordle App Screenshot](https://github.com/AndyObtiva/glimmer_wordle/raw/master/screenshots/glimmer-wordle.png)](https://github.com/AndyObtiva/glimmer_wordle)
|
646
|
+
|
608
647
|
## Packaging & Distribution
|
609
648
|
|
610
649
|
Glimmer simplifies the process of native-executable packaging and distribution on Mac and Windows via a single command:
|
data/RUBY_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
jruby-9.3.
|
1
|
+
jruby-9.3.6.0
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
4.24.
|
1
|
+
4.24.1.1
|