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.

JavaFX links of the week, September 16

A heap of links this week, with a lot of talk about JavaOne that starts next week. It sounds like it is going to be a great conference, and I wish I could be there (but as noted previously there is a pretty valid reason why I won’t be). Anywho, enjoy the links, and for those going to JavaOne enjoy it – I’ll be following via Twitter and the blogosphere ๐Ÿ™‚

That’s a heap of links! ๐Ÿ™‚ Keep up the great work, and again, to everyone attending JavaOne: enjoy, and be sure to tweet every detail ๐Ÿ™‚

Announcing ControlsFX 8.0.2 Developer Preview 2

The releases of ControlsFX keep rolling out the door! This month we have another developer preview release of ControlsFX 8.0.2 available for download. As usual, this release adds a bunch of bug fixes and new features. The most notable changes in this release include:

Miscellaneous:

  • Support for dates in the PropertySheet control.
  • Support for icon font packs (like Font Awesome and IcoMoon). This is inspired by Jens Deters FontAwesomeFX work, and we look forward to future collaboration with him both inside and outside of ControlsFX.
  • Improved worker progress dialog.
  • Improved ControlsFX sample application to actually work from the command line! ๐Ÿ™‚ (Previously it only run if you cloned the repo and run from within an IDE, whoops!)

SpreadsheetView:

  • Improved API and continued development of the SpreadsheetView control.
  • Support for fixing any column to the left side of the SpreadsheetView.

Actions:

  • The introduction of an ActionProxy annotation (to create actions directly by annotating methods) which can be discovered at runtime using the ActionMap class.
  • The introduction of ActionTraits to more cleanly specify the functionality of actions when used in dialogs.
  • The introduction of ActionTextBehavior to more easily specify what text is shown in UI controls when built from an action.
  • Now that we support icon font packs and have an @ActionProxy annotation, we have linked the functionality together, so you can define an Action on a method with a font icon simply as follows: @ActionProxy(text=”Action Text”, image=”@FontAwesome:STAR”)

That is quite a nice list given ControlsFX 8.0.2 developer preview 1 only came out around a month ago! As always, head over to the ControlsFX page to download and learn how to get involved!

In general we encourage people to upgrade to this release, but do warn that of course this release is not as polished as a final release (so therefore the documentation is less complete, and the new API more likely to change). It’s up to you whether you stay on 8.01 or keep up with us ๐Ÿ™‚

I can’t conclude without thanking the contributors to this release, including Eugene Ryzhikov, Samir Hadzic,ย Henri Biestro, Jens Deters, Ryan Jaeb, and John Malc.

Finally, I know this is a wall of text – I highly recommend you all take a moment and run the HelloControlsFX sample application – in there we try to demonstrate all the functionality, and I think (and hope) you should be fairly impressed ๐Ÿ™‚

JavaFX links of the week, September 9

Not long now until JavaOne! It sounds like a lot of people are working on their presentations and are generally getting very excited. I wish I could be there, but alas, not this year (my wife and I are expecting our first kid in December, so I have to be a good husband)! ๐Ÿ™‚

That’s a lot of links! Keep up the great work and I’ll catch you all next week ๐Ÿ™‚

JavaFX links of the week, September 2

A bunch of links this week – enjoy! ๐Ÿ™‚

  • Tom Schindl has a blog about his progress on an FXML to Java converter, that removes the need to parse FXML files at runtime (which should prove beneficial on low-end devices / embedded devices).
  • Hendrik Ebbers has a blog post about BoxFX, a project he is working on with Claudine Zillmann (their previous project together being AquaFX – a Mac OS X theme for JavaFX). BoxFX is an application container for JavaFX applications that will run on the Raspberry Pi. It is optimized for HD resolution and can be controlled by a remote.
  • In another post, Hendrik has a post titled ‘Pimp your App by using the BlurPane‘, which talks about placing a blur effect behind your popup to make the popup stand out better.
  • The JavaFX controls team has a number of user experience specifications they follow when developing and testing their UI controls. These UX specifications have been moving quite rapidly onto the OpenJDK wiki due to the hard work of Jindra Dinga, our user experience expert.
  • The JavaFX Tutorials website (whose author is unclear) has published an overview of some of the new features coming up in JavaFX 8.0.
  • The Oracle Technical Network has published another case study, this time on Facewizz, which uses JavaFX for facial surgery planning.
  • Stephen Chin has been interviewing some of the presenters due to be at JavaOne this year, to have them detail some of the details of the talks they will be presenting in a few weeks time. Interviews have been conducted with Gerrit Grunwald, Dierk Kรถnig, and Toni Epple.
  • Sven Ruppert has blogged about how to setup a JavaFX / CDI component.
  • LoadUI 2.6 has been released. LoadUI is a load testing tool for web services, and this is the first release where it has been updated to be built using JavaFX 2.x (previous releases were based on JavaFX 1.x).
  • Michael has blogged about the first commercial JavaFX application his company has released: a JavaFX based accounting & cash register system for garage sales, flee markets and even large events.
  • Jens Deters has a post about creating a JavaFX user interface that drives a stepper motor connected to a Raspberry Pi.
  • Mark Heckler has posted about his upcoming sessions at JavaOne including a talk on JavaFX widgets and Java Embedded.
  • A tutorial has appeared on the Oracle Learning Library website entitled ‘Developing an Enterprise Application with JavaFX 2.0 and Java EE 7‘.

That’s that for another week – catch you again next week ๐Ÿ™‚

JavaFX links of the week, August 26

A heap of great links this week, totally ruining my pre-JavaOne quietness theory, but I’m not complaining! ๐Ÿ™‚ Let’s get right into it.

  • Tom Eugelink has two interesting blog posts this week. Firstly, he has blogged about how to use CSS as part of the JavaFX API to make styling custom controls easier and more consistent with the built-in JavaFX controls. Secondly, he has a post about providing custom builders to the JavaFX FXML loader, so that it can handle setting properties on classes where it would otherwise fail (e.g. converting a String to a DateFormat instance).
  • Pedro Duque Vieira has a post about what is new in JavaFX 8.0, listing off a lot of the nice features coming up in the next major release of JavaFX.
  • Speaking of new features in JavaFX 8.0, Jim Weaver has posted a video of the new DatePicker control coming in JavaFX 8.0. For those of you sticking with JavaFX 2.x for the foreseeable future, it also shows the JFXtras CalendarPicker control.
  • Michael has a post about adding custom icons to the JFXtras Window control (also known as VFXWindows).
  • Robert Ladstรคtter has a post about an application he is calling HSV Ranger, which allows for determining HSV values for objects you show to the application via your webcam. It’s also nice to see that ControlsFX is being used in this project.
  • Speaking of ControlsFX, Eugene Ryzhikov, one of my partners in crime on that project is now using it in another of his side projects: a JavaFX-based markdown editor called Markdown Pad FX.
  • Christian Schudt has written about beefing up the animations in JavaFX with custom easing functions.
  • Granite Data Services 3.0.0.M3 is out and available for download here. You can learn more about GraniteDS 3.0.0.M3, or you can go and check out the updated sample app.
  • Daniel Ziltener has posted about getting started with JavaFX in Clojure.
  • Gerrit Grunwald has posted about a BoF at JavaOne called Raspberry Pi Showdown. This BoF is a little different in that attendees are invited to present on how they are using their Raspberry Pi’s, as long as it is JavaFX related.
  • Uwe has been working on extending the 3D Viewer app to support FBX files.
  • Felipe Pedroso, community manager at Intel was interviewed at TDC 2013 (warning: direct YouTube link) about his work on a pretty neat multitouch image viewer application.
  • Ben Ashby has posted a tip on making sure you interact with JavaFX on the correct thread.
  • Jeff Martin has published a video demo of ReportMill’s new JavaFX RAD tool, Java Inventor, creating an AddressBook app from scratch in minutes.
  • QuantCell Research have announced their JavaFX-based product is now available for purchase. As they put it, “QuantCell is a big data spreadsheet and an end-user programming tool. It improves turnaround time and enables SMEs to benefit from big data. It enables non-developers to build complex analysis, models and applications, and it brings the capabilities of major programming languages to the spreadsheet user.”

That’s it folks. Catch you next week!

JavaFX links of the week, August 19

Another week has rolled by, and so have another batch of links. This week is a little quiet, owing mainly to the pre-JavaOne quiet period that seems to happen every year (I’ve been writing this blog for so long patterns do eventually emerge) ๐Ÿ™‚ Anywho, enjoy! ๐Ÿ™‚

  • John Malc has published part three of his ‘Developing a Complex Bank Application in JavaFX‘ series of posts, this time focusing on the ControlsFX project. I’m pleased to read that he is happy with all the effort the ControlsFX developers (including myself)ย  have put into the javadocs – we really busted our gut to get a top-notch example of how javadoc should be written (although I should note that the current documentation online is for our 8.0.2 developer preview 1 release, so it is a little lower quality than we would normally have in a final release).
  • Chris Newland has posted about his Raspberry Pi TFT hack and video glasses, which run JavaFX.
  • The tomoTaka blog has an article about writing a WebSocket echo client using JavaFX.
  • Modellus 0.4 was recently released. Modellus is a freely available software package that enables students and teachers to use mathematics to create or explore models interactively.

That’s all this week. I’ll catch you all in a weeks time! ๐Ÿ™‚

JavaFX links of the week, August 11

Another week, and not surprisingly another weeks worth of Java desktop links. This week there are a number of new releases and interesting blog posts to read. Enjoy! ๐Ÿ™‚

I hope you all found something worth reading. Catch you all again next week ๐Ÿ™‚

Announcing ControlsFX 8.0.2 Developer Preview 1

Announcing ControlsFX 8.0.2 Developer Preview 1

I seem to be on a blogging / open source release roll at the moment, as I’ve got a new release of ControlsFX available today to go with the release of Scenic View I put out the other day. This release of ControlsFX is the first developer preview release of ControlsFX 8.0.2, and contains a number of bug fixes and new features (as always, note that 0.0.x releases in ControlsFX are major releases, despite what the number implies). For those of you playing along at home, ControlsFX is continuing to be developed at breakneck pace – we’ve so far had major releases in May, June, July and now August (we’re apparently marching at around a one-release-a-month beat).

This release was primarily driven due to changes in private API in JavaFX 8.0 b102 and later that causes ControlsFX to no longer work in these releases. Therefore, ControlsFX 8.0.0 and ControlsFX 8.0.1 releases are now effectively deprecated due to this, as they no longer work, and ControlsFX 8.0.2 developer preview 1 requires JavaFX 8.0 b102 or later.

(more…)

Announcing Scenic View 8.0.0 Developer Preview 4

Announcing Scenic View 8.0.0 Developer Preview 4

Just a really quick post about the availability of Scenic View 8.0.0 developer preview 4. This release is simply to get Scenic View working with the latest release developer preview builds of JavaFX 8.0.

For those unfamiliar with Scenic View, here’s a short blurb: Scenic View is a JavaFX application designed to make it simple to understand the current state of your application scenegraph, and to also easily manipulate properties of the scenegraph without having to keep editing your code. This lets you find bugs, and get things pixel perfect without having to do the compile-check-compile dance.

For those of you who like pictures more than text, here is a (really old) screenshot of Scenic View 1.2.0:

sv120

As always, go and download, and leave feedback as a comment in this post! I know there are bugs, but you’re running developer preview code on top of developer preview code – what did you expect?! ๐Ÿ™‚

Returning a TableView back to an unsorted state in JavaFX 8.0

One of the big features I’ve known people have wanted for a long time (hey, I’ve wanted it too!) is support for returning a TableView back to its original, unsorted state after being sorted by the end user. In general the user interaction goes something like this:

  1. Click on a TableView column header once. Everything sorts in ascending order. Great!
  2. Click on the same column header again. Everything sorts in descending order. We’re on a roll here!
  3. Click on the same column again. The sort arrow disappears, and…….nothing ๐Ÿ™

Of course, what should happen here is that the order of the items in the table should be reset back to their original order, from before the user ever clicked on anything. If you step behind the curtains with me for the briefest of moments, you’ll realise that the only way we can really do this is to of course keep a copy of the list in its original state (or a list of all the changes to the original list, such that we can unwind the changes later on). I never really wanted to do this, as you’re just setting yourself up for failure / pain / bugs / etc. What I always wanted to do was follow the wonderful GlazedLists approach from the Swing days, where the collections themselves became smarter, and the TableView remained mostly* inconsiderate of the type of collection given to it.
(more…)