JavaFX “Missing Features” Survey Results

I recently conducted a survey asking the community to tell me which features they are missing the most in JavaFX 8. The survey has been closed by now. It received over 100 submissions from various people, various companies, various industries. Overall the participants very quite satisfied with JavaFX so I would argue that the feedback was submitted by people who really care about the platform and would like to see it evolve over time.

The following chart shows the exact distribution of the answers given by the participants when asked how satisfied they were with JavaFX.

Bildschirmfoto 2016-01-25 um 20.04.45

Categories / Issue Areas

The feature requests can be roughly grouped into these categories:

  • Table View
  • Performance
  • Quality
  • Properties
  • CSS & FXML
  • OpenGL & 3D
  • Media
  • Missing Controls
  • Missing API
  • Other

I will try to create a blog for each one of these categories over the next couple of weeks. So stay tuned!

A Popup Editor for JavaFX 8 / Part 2

Just a quick follow-up on the popup editor, which has been renamed to “PopOver”. The current plan is to release it with the ControlsFX release 8.0.3 in early December. Jonathan and Eugene made me work hard for the last couple of days and I think the improvements to the control were worth it. It is more generic / flexible than before and it looks more elegant (the code, too).

The biggest change is probably the move away from always using an accordion control inside the PopOver and instead using a more generic approach where any node can be set as the content.

Attached PopOver

Attached PopOver

Detached PopOver

Detached PopOver

I hope to be able to release the accordion support with the 8.0.4 release of ControlsFX in January (maybe in the form of a utiliy class with a fluent API).

Accordion PopOver

Accordion PopOver

The second big change is support for different arrow locations. An arrow can now be placed in 3 different locations on each side. And before you ask: no, the PopupWindow autofix feature does not automatically fix the arrow location if there is not enough space for the PopOver at the requested location. I hope this can also be done in 8.0.4.

Collapp: First Release / Looking for Testers

I finally managed to release a first version of Collapp, a solution for collaborative project planning, and now I am looking for testers / early adopters. I have been working on it on and off for the last couple of years. In part to learn more about JEE and in part to continue work on FlexGantt (online demo), a framework for creating Gantt charts.

I believe that I have now reached a point where a bigger group of people could take Collapp for a ride. Anyone interested can now try the online demo or download the full installation. The online demo allows you to register a new user account and get immediate access to the application. If you also want to see the administration features then please send me an email so that I can grant you the required permissions.

Collapp is a JEE (rich) client / server solution running on the Glassfish application server and the MySQL database. The screenshots below show what it looks like when running it on a Macintosh (note: use Java 6, not 7) and on Windows.

Collapp Macintosh Snapshot

The first release focuses on the management of so-called “Action Items” only. It does not contain any actual project planning functionality, yet (e.g. a Gantt chart, Work Breakdown Structures, Resource Calendars). I decided to go with this approach in order to get to a point where the application reaches production quality for at least some part of its functionality. Project planning will eventually be based on the action item feature as project tasks will result in action items that are assigned to individual team members.

A strong emphasize of my work was on the Macintosh UI of Collapp. I tried to come up with a user experience that is as close to native Mac apps as humanly possible. I would love to get some feedback on whether I was successful or not. For Windows I picked a more liberal approach by using the commercial BizLaf look and feel framework from Centigrade.

The Macintosh download also contains the standalone rich client, so that you don’t have to answer any annoying Java Webstart security questions. There currently is no Windows standalone client.

To read more about Collapps feature set, please check out these links:

Advanced Java Webstart Login Dialog

I am currently working on a project planning software that “tries” to utilize Java Webstart as its deployment method. Nowadays it is common practice that login dialogs also allow new users to register with the application and existing users to retrieve their password if they forgot it. When I was trying to implement these features I ran into all kinds of issues and finally gave up.

The problem is that login dialogs for webstart applications are stupid. They are not aware of the context in which they are running. All they “know” is that they were shown to the user as a result of a callback from the server. The callback is asking for a user name and a password. This is fine for a simple standard login, but not for an advanced one. How can a new user be created on the server without some kind of connection to the server? Especially if the server is not even known, which is the case when running the webstart client inside an application client container (ACC). The whole idea behind the ACC is to provide injection capabilities, hence freeing the application developer from configuring the initial context.

The following screenshot shows the standard login screen. When the user clicks on the “Login” button the callback object will be populated with the user name and password. The application then simply continues if the login was successful. Another issue I had here was that I could not find out wether the login failed or not. On failure the dialog would simply disappear.

The next screen shows the controls used for registering a new user. I was unable to find a way to actually call something on the server so that the new user would be added. Please let me know if anyone knows a solution for this.

The last screen is used for retrieving a lost password. Once again I ran into problems. The server will not do anything without an authorized user. A solution would be to create a technical user, e.g. “sys” with password “sys”. These values could be put into the callback object and sent back to the server. But how do I let the application know that a password retrieval is in progress? Where do I trigger the code needed to send a mail that contains the user’s password?

Once again, any help would be much appreciated. I still have a couple of months of coding ahead of me before the first release. I would hate to give up on using Webstart as a deployment vehicle.