The following questions are the ones that have shown up very frequently in regards to FlexGanttFX, its usage, licensing, etc...
Answer: FlexGanttFX is a very powerful and complex custom control for JavaFX applications. It is capable of displaying timeline-related data in an attractive visual way. FlexGanttFX allows the editing / modification of the data, hence enabling users to perform planning and scheduling operations. FlexGanttFX does not include any business logic, which means that it is up to the application to react properly when the user has performed a change.
Answer: You can build any kind of application that requires activities to be shown below a timeline. In most cases our customers build planning and scheduling applications with it. Examples are ERP systems, manufacturing execution systems, etc...
Answer: No, FlexGanttFX is a commercial piece of software. Companies can aquire licenses in order to work with it and to deploy it as an integral part of their solutions.
Answer: FlexGanttFX supports Java 8 and Java 11 or higher. The Java 11 version can be run with OpenJFX version 11 or higher.
Answer: For Java 8 FlexGanttFX works with the JavaFX release that comes bundled with the JDK. The Java 11 version of FlexGanttFX can be run with OpenJFX version 11 or higher.
Answer: The FlexGanttFX distribution includes a lib folder. The four JAR files inside that folder need to be added to your application's classpath or module path. In addition a folder called "ext" contains two JAR files that are also required. One is the ControlsFX release needed for FlexGanttFX and one is used for supporting licensing keys.
Answer: Yes. It is called FlexGantt and has been around for many years. You can download it from the DLSC website. It is also a commercial product and requires licensing just like FlexGanttFX.
Answer: Yes it does but it requires the use of JPRO. You can find more information about this product on their website.
Answer: Yes it does but it requires the use of the Gluon Client plugin in combination with the GraalVM.
Answer: We think so because Java and JavaFX run on embedded devices. But to tell you the truth, we haven't had this use case, yet. No customer so far required this. So if you want to do this please give it a try and let us know.
Answer: Yes. FlexGanttFX supports three different layouts. The most used one is the standard Gantt chart layout where activities are shown as horizontal bars. In addition to that applications can display charts / histograms via the chart layout. A very unique layout is the agenda layout where activities are shown similar to a regular calendar view meaning that the y-axis is used for the time of day.
Answer: Not really. In the past we have seen that most applications did not require this feature and that the usability of a printed complex Gantt chart is somewhat limited. Very often the requirements for the printed version were very different to the requirements of the on-screen version. So we decided to leave this task up to the applications using FlexGanttFX. The only thing possible at the moment is to use the standard JavaFX printing approach where the application creates a snapshot of the view and sends that to the printer.
Answer: Yes you can, simply by binding properties between two or more Gantt chart instances. However, we have already done this for you and added specialized containers that allow you to show two, four, or any number of charts at the same time. These containers are called DualGanttChartContainer, QuadGanttChartContainer, and MultiGanttChartContainer.
Answer: The user can scroll via scrollbars that are showing at the bottom of the right-hand side of the Gantt chart. Two different types of scrollbars are supported. A regular scrollbar for a fixed time horizon (earliest and latest time) and a custom scrollbar based on the PlusMinusSlider of the ControlsFX project that allows the user to scroll indefinitely into the past and the future. These scrollbars auto-hide by default and only show up when the user moves the mouse cursor to the bottom edge of the graphics area (can be disabled). The user can also scroll via "panning" where he / she presses the mouse in the background and then drags to the left or right.
Answer: Yes it is. You can drag activities between Gantt charts in the same window or more natively between different windows or to the desktop. All of that can be configured.
Answer: Yes it is. A controls factory callback can be registered that will be invoked by each row. The returned controls will be placed on top of the row. Another great feature is the ability to add a whole different UI for each row that becomes visible when the row gets flipped around, meaning this UI is actually "behind" the row and becomes visible upon request.
Answer: We support two license types. A developer license and a runtime license. The developer license becomes neccessary once the 30 day trial period has expired. A developer license allows you to continue using the product but you will see console output that the product can only be used for development purposes. Once your product is ready for release you have to use a runtime license. This is independent of whether the release will be in-house or to a third party.
Answer: You have to call FlexGanttFX.setLicenseKey("...") before creating any FlexGanttFX controls. Ideally you call this immediately in your application's main() method. Alternatively you can pass the key as a system property called "flexganttfx.license".
Answer: Yes you can. A callback can be registered that specifies when exactly which editing operation becomes active. The default callback allows the user to change the start time when the mouse cursor is on the left edge of an activity, change the end time when the cursor is on the right edge of an activity, move the entire activity when the mouse cursor is in the middle. If the activity is a "completable" activity then the left edge will trigger an editing operation where the user can change the "percentage complete" value of the activity.
Answer: Absolutely. Activities in FlexGanttFX are drawn via the Canvas API of JavaFX. Different activity renderers can be registered for different types of activities. The renderers can use the information provided by the activity (e.g. a "status") to draw the activity differently. Renderers give you control over every single pixel on the screen.
Answer: Yes, this is done via so-called "system layers". FlexGanttFX ships with a standard set of these layers, e.g. a CalendarLayer that knows how to draw things like weekends (gray background). Another example is the GridLinesLayer that knows how to draw grid lines defined by the timeline at the top.
Answer: Yes, layers are first-class citizens in FlexGanttFX. You can have activities on different layers allowing you to overlay your primary activities with secondary activities that are simply used to annotated the primary activities. Layers can be shown or hidden at any time. API is available to also change the order of the layers. The standard Gantt chart toolbar provides a UI that allows you to manipulate the layer order and visibility.
Answer: Yes. The timeline consists of two sub-components. The first one, the dateline, is used for showing the actual time / dates / hours. A pluggable cell factory is used to create its UI. The second subcomponent is the eventline. It displays time cursors but also a single "frozen row" where applications can display global activities and events. Those can be customized via pluggable renderers.
If you have any other questions, please make sure to take a look at the very detailed online developer manual. If you do not find your answers there then send us an email and we will try to answer as soon as possible.