Skip to content

Latest commit

 

History

601 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

FlexGanttFX

Build Maven Central License: AGPL v3 JFXCentral

FlexGanttFX is a professional JavaFX Gantt chart and scheduling framework by DLSC Software & Consulting GmbH. It provides a model, timeline, graphics engine, renderers, layers, and optional controls for building planning, scheduling, and resource visualization applications.

Documentation, screenshots, and product information are available at flexganttfx.com.

Highlights

  • JavaFX Gantt chart controls with tree-table row headers and canvas-based rendering
  • Time line, date line, event line, grid, calendar, now-line, and overlay layers
  • Activity repositories, links, layouts, renderers, and row models
  • Extra controls such as status bar, toolbar, radar, layers panel, and property views
  • Dual licensing: AGPLv3 or commercial license
  • No runtime license key is required. The old license-key enforcement has been removed, so anyone can build and run the library without licensing setup.

Coordinates

FlexGanttFX publishing to Maven Central is being set up. These are the coordinates for the upcoming 12.4.0 release.

Maven

<dependency>
    <groupId>com.flexganttfx</groupId>
    <artifactId>view</artifactId>
    <version>12.4.0</version>
</dependency>

Add extras if you need the optional helper controls:

<dependency>
    <groupId>com.flexganttfx</groupId>
    <artifactId>extras</artifactId>
    <version>12.4.0</version>
</dependency>

Gradle

implementation "com.flexganttfx:view:12.4.0"
implementation "com.flexganttfx:extras:12.4.0" // optional

The lower-level artifacts are core, model, view, and extras.

Quick start

The sketch below shows the essential steps. See FlexGanttFXTutorials for complete, runnable examples.

// 1. A row type: Aircraft rows have Aircraft children and carry Flight activities
public class Aircraft extends Row<Aircraft, Aircraft, Flight> {
    public Aircraft(String name) {
        super(name);
    }
}

// 2. An activity type
public class Flight extends MutableActivityBase<FlightData> {
    public Flight(FlightData data) {
        setUserObject(data);
        setName(data.getFlightNo());
        setStartTime(data.getDepartureTime()); // java.time.Instant
        setEndTime(data.getArrivalTime());
    }
}

// 3. Wire up the chart
GanttChart<Aircraft> gantt = new GanttChart<>(new Aircraft("ROOT"));

Layer layer = new Layer("Flights");
gantt.getLayers().add(layer);

Aircraft b747 = new Aircraft("B747");
b747.addActivity(layer, new Flight(flightData));
gantt.getRoot().getChildren().add(b747);

gantt.getTimeline().showTemporalUnit(ChronoUnit.HOURS, 10);

GraphicsBase<Aircraft> graphics = gantt.getGraphics();
graphics.setActivityRenderer(
        Flight.class,
        GanttLayout.class,
        new ActivityBarRenderer<>(graphics, "Flight Renderer"));
graphics.showEarliestActivities();

For complete examples, see the tutorial and demo modules in this repository.

Modules

Module Maven artifact Purpose
FlexGanttFXCore core Logging and utilities; no JavaFX UI dependencies.
FlexGanttFXModel model Domain model: rows, activities, layers, links, repositories, layouts, calendars.
FlexGanttFXView view Main controls, renderers, skins, graphics, timeline, date line, event line.
FlexGanttFXExtras extras Optional status bar, toolbar, radar, layers panel, and property views.

Other modules contain demos, tutorials, tooling, integrations, and assembly packaging.

Documentation and demos

Which license do I need?

FlexGanttFX is dual-licensed.

AGPLv3

You may use FlexGanttFX under the GNU Affero General Public License v3.0. The AGPLv3 is a strong copyleft open source license with network-copyleft obligations. If you distribute an application, or offer a network/SaaS product, that includes FlexGanttFX, you must comply with the AGPLv3 source-code obligations for the combined work.

Commercial license

If you want to use FlexGanttFX in a proprietary product, closed-source application, or commercial SaaS offering without the AGPLv3 obligations, purchase a commercial license from DLSC.

This README is a practical summary, not legal advice. Please review the license texts and consult your own legal counsel if needed.

Building from source

Requirements:

  • JDK 25 to build the whole repository. The demo and showcase modules target Java 25.
  • The published libraries themselves are compiled with --release 11, so applications only need JDK 11+.
  • JavaFX 17.0.14 for the libraries (managed by Maven), Maven 3.9+.

Build everything from the repository root:

mvn install

Build only the libraries (these target Java 11):

mvn install -pl FlexGanttFXCore,FlexGanttFXModel,FlexGanttFXView,FlexGanttFXExtras -am

Run all tests:

mvn test

Run one module's tests:

mvn test -pl FlexGanttFXModel

Run one test class:

mvn test -pl FlexGanttFXModel -Dtest=SomeTest

The test stack includes JUnit 5, TestFX, Mockito, Hamcrest, and JMemoryBuddy.

Contributing and community

Before contributing Java code, run mvn license:format so new files receive the standard license header.

About

A framework for creating professional scheduling and planning user interfaces.

Resources

Code of conduct

Contributing

Security policy

Stars

14 stars

Watchers

9 watching

Forks

Releases

Packages

Contributors

Languages