FX Experience Has Gone Read-Only

I've been maintaining FX Experience for a really long time now, and I love hearing from people who enjoy my weekly links roundup. One thing I've noticed recently is that maintaining two sites (FX Experience and JonathanGiles.net) takes more time than ideal, and splits the audience up. Therefore, FX Experience will become read-only for new blog posts, but weekly posts will continue to be published on JonathanGiles.net. If you follow @FXExperience on Twitter, I suggest you also follow @JonathanGiles. This is not the end - just a consolidation of my online presence to make my life a little easier!

tl;dr: Follow me on Twitter and check for the latest news on JonathanGiles.net.

Hot on the heels of ControlsFX 8.0.0 (which has had over 1000 downloads already!), Eugene Ryzhikov and I are very pleased to announce the availability of ControlsFX 8.0.1. Now, to be clear, despite this only being an 0.0.1 increment in version numbers, as per our release versioning policy, this is actually a major release comprising a number of new features. The number of people downloading and using the previous ControlsFX releases is really, really pleasing – especially when you take into account the fast release cycle and the fact that ControlsFX depends on JavaFX 8.0, which is only part of JDK 8!

In 8.0.1 final, the most notable features are detailed below, but before I get into that I just wanted to remind you that this is an open source project that you can participate in, either through helping with documentation, bug fixing, new features, or whatever else. Here I have to give thanks to Danno Ferrin for his continued support of our build system, and Hendrik Ebbers for his work on enabling a continuous build of ControlsFX. Finally, another mention of Eugene Ryzhikov who has been my partner in crime on most of these features – he single-handily developed the PropertySheet control in this release!

Also, as per usual, before you ask a question on how to use the API, please refer to our JavaDocs. We put so much effort into them that it pains us every time we have to refer you to them, where your question has already been answered πŸ™‚

Finally, learn more about ControlsFX, and download it, from the ControlsFX page.

Now, on to the features!

A vertical list of properties that can be edited with a number of pre-build editors (in the 8.0.1 release we support string, number, boolean, enumeration, color, and font editors). As well as supporting the built-in editors, you can provide custom editors for your specific use cases.


Allows you to notify your users of something without requiring their immediate input (which you can do with the ControlsFX dialogs API). The NotificationPane will animate in and out of view, and provides support for an arbitrarily complex ‘graphic’ property (put any Node in there), as well as text and an area to place control buttons. It also supports two visual styles, continuing in our theme of providing light and dark styles.


Lightweight Dialogs
One of the feature requests from the 8.0.0 was support for dialogs that didn’t open up in their own window (and rather opens within the scene and can’t be moved outside of the window). This style of dialog has two useful benefits: firstly, it can be used on systems that don’t provide a window toolkit (e.g. tablets), and secondly, they can be used to block execution of a subsection of your application whilst allowing the rest of it to remain interactive (e.g. block one tab whilst the rest continue to be accessible). The nice thing about the lightweight dialogs API is to enable it you simply call .lightweight() when using the Dialogs class, or set the useLightWeight property to true in the Dialog constructor – the rendering of the dialog is exactly the same as if it were heavyweight!


New Pre-Built Dialogs
1) Font Chooser Dialog

A dialog that people frequently need when building user interfaces is a font chooser dialog. We figured that seeing as we’ve already rolled the whole dialog API we may as well put it to good use! So now there exists a functional font chooser dialog, so that you can get on with building your application, and not this dialog! πŸ™‚


2) Progress Dialog
A dialog that binds to a JavaFX Worker so that you can easily show progress to your users and prevent them from interacting with the user interface whilst the worker completes its task. The code underlying this dialog was originally provided to ControlsFX by Richard Bair.


That’s the main features of this release (there are others, but they are more minor – check out the javadoc for everything else!). I hope you all continue to appreciate the effort that is being put into the quality of ControlsFX. As I’ve already mentioned, our JavaDocs continue to improve in quality – this is a thankless job, so a little bit of thanks in the comment section would go a long way πŸ™‚

If you’ve got all this way and aren’t sure about something – go to the ControlsFX page to download and learn more about the project! πŸ™‚