Radiance 2.0.1
It gives me great pleasure to announce the second major release of Radiance. It was all ready to go as 2.0.0, but what’s a release really if a blocker bug doesn’t make it in? So instead, you get to get 2.0.1 for now – pending any other blockers that would require a couple more minor re-spins. Anyway, let’s get to what’s new. First, I’m going to use emojis to mark different parts of it like this:
💔 marks an incompatible API / binary change
😻 marks new features
🤷♀️ marks bug fixes and general improvements
General
- 💔 Java 9 is the new minimum requirement for build time and runtime of all Radiance modules
Modules
- 💔 Removed Spoonbill (SVNKit-powered implementation of Flamingo’s breadcrumb bar
- 😻 Added Meteor – Kotlin extensions for core Swing APIs
- 😻 Added Ember – Kotlin extensions for
SubstanceCortex
APIs - 🤷♀️ Renamed Kormorant to Plasma
- 🤷♀️ All core Kotlin modules (Ember, Meteor, Plasma) moved under the top-level
kotlin-ext
folder - 🤷♀️ Jitterbug (visual tool for editing Substance color schemes) renamed to Apollo
- 😻 Added Ion – sample walkthroughs for replacing
SwingWorker
with Kotlin coroutines
Neon
- 💔 An almost complete rewrite of
NeonIcon
APIs - 💔 Most Flamingo and Substance APIs moved off of
ResizableIcon
and toResizableIcon.Factory
- 💔 Moved some icon colorization APIs from Substance to Neon
- 💔 Removed usage of
UITable
fromFontPolicy
API
Photon
- 💔 Removed default public no-argument constructor from bundled templates for Java and Kotlin targets
Trident
- 💔 Moved to builder-based construction of timelines
Substance
- 😻 New
Graphite Electric
skin - 😻 New APIs for working with complex renderers, including built-in animations
- 🤷♀️ Fix for incorrect offsets of rotated texts
- 🤷♀️ Fix for inconsistent font metrics between preferred size and rendering passes
- 🤷♀️ Fix for incorrect vertical position of icons in
JOptionPane
- 🤷♀️ Fix for crash in showing
JColorChooser
dialog - 💔 Moved all three Office 2007 skins to the extras pack
Flamingo
- 💔 Moved all lower-level components (command button, command button strip. command popup menu, command button panel) to the new world based on content models, presentation models and projections
- 😻 Added support for placing any ribbon content (including components, application menu links and galleries) in the taskbar
- 😻 Added support for taskbar overflow (including built-in horizontal scrolling)
- 💔 Keytips for taskbar content are controlled by keytip policy
- 😻 Added support for separate keytips on action and secondary / popup areas of command buttons
- 😻 Added support for global contextual menu on the ribbon
- 🤷♀️ Added complete documentation
The first Radiance release focused on bringing all the different Swing open-source projects that I’ve been working on since 2005 under one roof. This release (code-named Beryl) is about making them work much better together. And it’s also about making it just a bit easier to use Flamingo components in general, and the ribbon in particular, in what one might call serious, if not even boring, business applications.
There’s still a long road ahead to continue exploring the never-ending depths of what it takes to write elegant and high-performing desktop applications in Swing. If you’re in the business of writing just such apps, I’d love for you to take this second Radiance release for a spin. Click here to get the instructions on how to add Radiance to your Gradle / Maven / Ivy / Leiningen / Bazel builds. And don’t forget that all of the modules require Java 9 to build and run.