FlexGantt

2015: The Year When JavaFX Takes Over

  I must say that I very much enjoy using Google trends to evaluate the importance of a technology and to see what its future will look like. So today I ran a comparison between "Java Swing" and "JavaFX". The result shows two things: once we enter the next year JavaFX will be more relevant than Swing but JavaFX will not be that relevant either. I think this is totally wrong. Based on the feedback I am getting from the community and also on the projects that I had contact with I foresee a rapid increase in JavaFX usage (and Google [...]

By |2021-02-18T13:42:30+01:00October 27th, 2014|ControlsFX, FlexGantt, JavaFX, Swing|4 Comments

FlexGanttFX: First JavaFX Component on ComponentSource

Yesterday FlexGanttFX has become the first JavaFX component in the product catalog of ComponentSource.com. You can find the entry here. ComponentSource is an international reseller of software components, basically the "App Store" of custom controls.  The fact that FlexGanttFX has been listed shows that the market is reacting and that JavaFX is gaining acceptance.

By |2021-02-18T13:42:30+01:00September 20th, 2014|FlexGantt, JavaFX|1 Comment

New Release: FlexGanttFX 1.0.0

I finally managed to put together a 1.0.0 production-ready release of FlexGanttFX. After two early access releases at the beginning of the year I put in a lot of hours to get the framework to a maturity level that I deem to be high enough for real-world application development. The release can be downloaded from the product website at http://www.flexganttfx.com. I would recommend to run the three standalone demos in this distribution to get an idea of FlexGanttFX's capabilities. FlexGanttFX is much bigger than a regular JavaFX control. The view consists of 83 and the model of 58 classes. [...]

By |2021-02-18T13:42:30+01:00September 2nd, 2014|ControlsFX, FlexGantt, JavaFX|4 Comments

JavaFX Tip 8: Beauty is Skin Deep

If you are developing a UI framework for JavaFX, then please make it a habit to always split your custom controls into a control class and a skin class. Coming from Swing myself this was not obvious to me right away. Swing also uses an MVC concept and delegates the actual component rendering to a UI delegate, but people extending Swing mostly subclassed one of its controls and added extensions / modifications to the subclass. Only very few frameworks actually worked with the UI delegates (e.g. MacWidgets). I have the luxury of being able to compare the implementation of [...]

By |2021-02-18T13:42:30+01:00July 14th, 2014|FlexGantt, Java, JavaFX, Tips & Tricks|2 Comments

JavaFX Tip 7: Use CSS Color Constants / Derive Colors

When working on FlexCalendarFX I got to the point where I had to define a set of colors to visualize the controls for different calendars in different colors. And not just one color per calendar but several: a background and a text color for deselected / selected / hover states. The  colors were used in several places but for the sake of brevity I only focus on the visual calendar entries in the day view of FlexCalendarFX. The two screenshots below show the same entry, first deselected, then selected. What is important to notice is that these are not completely different [...]

By |2021-02-18T13:42:30+01:00July 11th, 2014|FlexGantt, Java, JavaFX, Tips & Tricks|4 Comments

JavaFX Tip 6: Use Transparent Colors

Picking the right colors for your user interface elements is always a great challenge, but it is even more challenging when you develop reusable framework controls where you as a developer have no control over the look and feel of the application using them. While you might always add elements on top of the default gray background the developers embedding your controls  might have more of a gothic tendency and use a black background. All of a sudden the nice colors your picked clash with the rest of the application. To tackle this problem the best way I found while working on FlexGanttFX and FlexCalendarFX [...]

By |2021-02-18T13:42:31+01:00July 11th, 2014|FlexGantt, Java, JavaFX, Tips & Tricks|2 Comments

JavaFX Tip 5: Be Observable

Even in this time of total NSA surveillance it is still a good idea to implement your JavaFX controls with observability in mind. This is easy to achieve in JavaFX especially compared to Swing. The Old Days Coming from Swing I was used to spending a lot of energy and time on making custom controls observable. It usually required adding methods to add and remove listeners of a certain type. This listener type was a new interface, the single method of that interface accepted a new event object. To send this event object the control had to "fire" it [...]

By |2021-02-18T13:42:31+01:00July 10th, 2014|FlexGantt, Java, JavaFX, Tips & Tricks|3 Comments

JavaFX Tip 4: Have the Final Word

When developing custom controls for JavaFX I would highly recommend to follow in the footsteps of  the core JavaFX controls and to make the API of your controls as final as possible and to put the "final" keyword in front of all your method declarations. Example In FlexGanttFX I have a lot of code that looks like this: public final Activity getActivityAt(double x, double y) { ... } public final Row getRowAt(double y) { ... } public final void setShowLinks(boolean show) { ... }   Why? When you design a control you have a specific behaviour of the control in [...]

By |2021-02-18T13:42:31+01:00July 9th, 2014|FlexGantt, Java, JavaFX, Tips & Tricks|8 Comments

Finally: Agenda Visualization in FlexGanttFX

Probably a small step for mankind but a giant one for FlexGanttFX. I finished a first working version of actual agenda style visualization of Gantt chart data including editing capabilities. What really made a difference compared to previous attempts in the Swing FlexGantt is the new java.time API. LocalDate and LocalTime came in very handy and make the computation of x and y coordinates a piece of cake. You can see the new agenda layout in the video below. The data in this example is fake, so you will not see any updates to the capacity profiles [...]

By |2021-02-18T13:42:31+01:00March 10th, 2014|FlexGantt, JavaFX|4 Comments