← 文章 / 开源项目
InfoQ推荐 7小时前 · 2026-09-06 12:31:15 · 5 阅读

FlexGanttFX 正式开源

Dirk Lemmerman 已将 FlexGanttFX 开源,这是一个用于生成甘特图的资源调度框架。Lemmerman 在开发 15 年后选择开源该库,一方面是为了提升代码的可获取性,另一方面通过采用 AGPL 许可来解决项目的维护问题。

该库基于 JavaFX 运行,因此既可用于桌面端,也可用于移动设备。项目提供了可运行的演示程序,展示了图表创建和渲染技术。甘特图可用于展示多项任务随时间推移的进展情况,这些任务可以是并行的,也可以是串行的。它们通常被应用于项目或资源规划,用于分析各项工作之间的相互影响,覆盖物流、航空、医疗以及软件项目规划等多个行业。

FlexGanttFX 将 Canvas 渲染与标准 FX 节点结合使用,实现了高性能图表。这使得应用程序可以将整个图表渲染为单个 Canvas,无需为图表中的每个元素重新应用全套渲染效果。这样一来,复杂图表就能以可接受的速度完成渲染,不依赖生成成百上千个独立节点。

该框架基于四个基本元素构建。行(Row)构成资源的树形结构,活动(Activitie)是放置在行上的带有有时间边界的项,层(Layer)对活动进行分组并控制层级顺序和可见性,链接(Link)用于表示活动之间的依赖关系。框架统一使用 java.time.Instant 来建模时间,时间轴可以支持从毫秒到十年范围的任意渲染粒度,时区、夏令时转换、周末和工作时间都被视为模型的一部分,而不仅仅是展示配置。每一行可以有自己的布局:标准布局可绘制经典条形图,图表布局可将活动渲染为折线图或面积图,容量曲线可以与约束条形图并列显示,池布局可将重叠的活动打包成堆叠线条。编辑采用了直接操作的方式,并提供约束钩子,由应用自身业务规则来判定哪些移动操作是允许执行的。

Lemmerman 选择 AGPL 许可开源,与其他开源但维持商业运营的项目保持一致。Bruno Lowagie 曾在知名老牌 PDF 库 iText 上也做出过类似的选择。他出版的著作 《Entreprenerd》 详细阐述了其将 iText 采用 AGPL 协议开源背后的考量以及该决策带来的影响。

与 Apache 2 等许可不同,AGPL 包含一项关于修改后的软件在网络上使用的条款。修改该库的公司必须向公众公开其源代码,即使他们没有重新分发修改后的版本。尽管这为双许可软件业务创造了收取不同许可费用的条件,但也导致许多 SaaS 公司完全避开 AGPL 项目。

不少大型厂商也做出过类似的决定,例如 Elastic 的回归开源以及 Grafana 在 2021 年做出的许可变更。其他厂商如 MongoDB 也曾选择 AGPL,随后在 2018 年迁移到其他许可

查看英文原文https://www.infoq.com/news/2026/08/flexgantfx/

原始来源: InfoQ推荐

评论 (0)