I have created a new Google group for FlexGanttFX discussions. Anyone interested in FlexGanttFX can become a member. The group is intended for news, technical support, and feature requests.
One of my Gantt chart users wanted to use as much real estate on the screen as possible and asked if the scrollbars could be removed. But how do you navigate without scrollbars? Ok, there are all kinds of keyboard shortcuts and of course the usual mouse drag already supported by FlexGanttFX, but a visual control like a scrollbar is something most users would still expect to see these days (at least on desktops).
So here is the solution: I used to have a manager who when asked “do you want me to do this or that?” would always reply with “both!”. So I followed in his footsteps and implemented scrollbars that only appear when you need them and in order to support this I had to write another control for the ControlsFX project. The control is called HiddenSidesPane and supports four (initially hidden) side nodes. These nodes become visible when the user moves the mouse cursor close to the edges of the primary content node. They will slide-in with a little animation and slide-out when the mouse cursor leaves them. A side node can also be pinned, so that it stays visible.
The video below shows the control in action. I have commited it to the ControlsFX repository today and hope that it will be included in the 8.0.5 release.
The second video shows how the pane is used within FlexGanttFX.
I finished another JavaFX control today, which I urgently needed for my FlexGanttFX control: a master details pane, which allows the user to show / hide a node with detailed information for a so-called “master” node. My use case is a dual Gantt chart control where a primary (master) Gantt chart is initially shown and then a secondary (details) Gantt chart can be added to the window (stage). By using the MasterDetailsPane the user can easily toggle the visibility of the second Gantt chart at the bottom. At the same time each Gantt chart also has a property sheet (ControlsFX) attached to it, which can be made visible on its right side. So I end up with two nested MasterDetailsPane instances. The video below shows the control in action.
Today I had once again the pleasure to write a small and highly specialized control for JavaFX, which might be useful for others as well. I am calling it PlusMinusAdjuster and all it does is firing value events with values ranging from -1 to +1. The difference to a normal slider is that it continues to fire events even when the value has not changed. This kind of behavior is useful for implementing scrolling through large data sets. A normal scrollbar often causes big jumps even when the user only moves it a few pixels. For me this was the case for my Gantt chart component when the timeline horizon was very large and the currently visible time span was small.
So this is what I came up with:
I have asked the ControlsFX guys if they are interested in including this control. The initial response was positive. I will keep you updated.
For the last 6 months I had the opportunity to port my FlexGantt Gantt charting framework for Swing to JavaFX 8. The concepts behind JavaFX are very different to Swing so the initial ramp-up phase was longer than I wanted it to be. However, in the meantime I feel confident that I am on the right track with my approach to Gantt charting with this new technology.
The following videos show the current state of my development efforts.
The first video shows one of the most common use cases for Gantt charts: the display of a project schedule. This demo uses the open source project MPXJ to read in an original MSProject file.
The second video shows how the user can still nicely interact with the display even when working with hundreds of activities at the same time. In this case the data file used represents flights of aircrafts.
The next video shows how FlexGanttFX can be used for course scheduling. The user can resize a row to make the individual sessions of a training week visible. The sessions can be rescheduled by simple drag gestures.
JavaFX is all about CSS-based styling. The test application in the video below shows several versions of the timeline control of FlexGanttFX. Each version has its own stylesheet attached to it. All timeline controls use the same model in the background, which makes them scroll in synch.
A feature often asked for in the Gantt chart domain is the ability to split the Gantt chart. This way the user can work on two related data models at the same time (e.g. aircrafts and crews) or look at two different regions within the same data model.
I am currently planning to start an early adopter program around March 1st 2014. If you are interested in participating then please fill out the form below.
The PopOver control (formerly PopupEditor) has seen the light of day yesterday when it was released as part of ControlsFX 8.0.3. Go and check it out. Any input much appreciated.
My JavaFX developer life currently has a strong focus on the popover control I wrote and contributed to the ControlsFX project. I now find use cases for it all over the place. The latest addition is a task monitor control for the JavaFX version of FlexGantt. The monitor lists the background tasks that are running to load the Gantt chart data for each row.
Once again I was inspired by Apple. This time by the “downloads” popover of Safari, which looks like this.
Please note the fancy gray divider lines