内容导航
产品标签

FlexGantt

增加专业的甘特图到Java应用程序

以下是 "FlexGantt",如果您需要了解更多信息,您可以联系我们。

FlexGantt是目前可用于Java的最先进的基于Swing的甘特图框架。它使用了非常高的抽象级别,这使它能够应用于各种且通常非常不同的领域,如ERP系统、生产计划和调度应用程序、制造执行系统或项目组合管理应用程序。FlexGantt及其前身框架DJT已被数百个专业规划和调度应用程序使用和测试。


  • MVC. Model View Controller.
  • FlexGantt采用与Swing相同的MVC方法。几种不同的型号用于各种用途。日历模型记录假日和周末。页面模型支持用户加载不同的计划范围,书签模型存储应用程序和用户定义的书签。但是,向甘特图组件提供数据的主要模型是甘特图模型。它是树表模型的扩展,因此它可以用数据填充甘特图的左侧(左侧是树表)。它还返回显示在时间线右侧下方的所谓时间线对象。时间线对象表示活动、任务、事件、里程碑,几乎可以放在时间线上的任何东西,因为它可以与时间点或时间跨度相关联。
    甘特图模型的结构        Image


  • Split Screen. Side by side comparison.
  • 几乎任何计划和调度应用程序都需要一个功能,即在水平滚动时保持两个不同模型或同一模型的两个不同部分的数据同步。FlexGantt框架包含一个双Gantt图表,可以完全做到这一点。用户可以随时拆分/取消拆分Gantt图表。水平分隔符可用于调整上部和下部的大小。日程表对象可以从一个拖动到另一个。
    甘特图模型               Image

  • Layers. For things that belong together.
  • FlexGantt使用了一种非常独特的分层方法,这在图形和映射应用程序中是众所周知的。每个甘特图由一组系统层组成,这些层提供核心功能(例如绘制垂直网格线)和一组专门用于呈现时间轴对象(活动、事件、里程碑等)的层。下图描述了层堆栈。应用程序可以添加任意数量的时间轴对象层,从而可以轻松地对对象进行分组并同时显示或隐藏所有对象。层还支持透明度,以便可以轻松识别重叠的时间轴对象。

    层堆栈        Image


  • Customizable Timeline. When time matters to you.
  • 每个应用程序都有自己的时间表要求。有些人要求在日期旁边显示一年中的星期,另一些人则希望显示一年的日期(例如“第241天”)。时间表的设计考虑到了灵活性。它的模型可以替换,渲染器可以替换,甚至整个时间线都可以用自定义子类替换。
    时间线        Image
  • Drag & Drop Grid. Easy editing.
  • 日程表对象可以水平拖动和调整大小,也可以垂直拖动。在这些拖放操作中,可以启用不可见的网格,以便在特定时间更容易地放置时间轴对象。网格由策略控制,这意味着任何类型的网格都可以实现。默认网格策略可以配置为使时间轴对象捕捉到从千年、世纪、几十年、年、月、周、天到毫秒的任何对象。


    日程表        Image

  • Pluggable Renderers & Editors. Have things your way.
  • Swing定义了几个用于其UI组件(如树、表或列表)的渲染器和编辑器类。FlexGantt也这样做,并为树表单元格、列标题、弹出窗口、日期线模型、时间线对象和事件线对象定义了渲染器。编辑器可用于树表单元格和时间轴对象。时间线对象编辑器显示在甘特图右侧的透明窗口中。

  • Paging. For staying focused.
  • 如果调度应用程序需要处理大量的时间线对象,那么将时间线范围划分为几个页面/时间跨度通常是有意义的。通过这种方式,数据被分解成更小的块,甘特图可以更容易地处理这些块。分页模型管理各个页面。可以查询当前页、上一页、下一页、第一页和最后一页。用户界面提供了一个可用于选择各个页面的控件。


  • Command Framework. Including undo / redo.
  • FlexGantt提供了一个小而强大的命令框架。它用于支持可以撤消和重做的编辑操作。该框架由命令、命令堆栈、命令堆栈侦听器和进度监视器组成。命令通过甘特图执行、撤消和重做,甘特图内部使用可替换的命令堆栈。命令在它们自己的线程中执行,以保持用户界面的响应性。命令堆栈事件是在命令执行期间发出的。进度监视器用于显示命令的进度。子进度监视器用于由多个其他命令组成的复合命令。一旦命令完成执行,它将被添加到命令堆栈的可撤消命令列表中。当执行无法撤消的命令时,此列表将被清除。命令框架使用高级抽象,以便可以重用已经存在的命令基础结构(遗留代码)。


  • Popups / Annotations. Details matter.
  • 时间线下的条形图是一个很好的活动表示,但由于空间限制,它只能承载有限数量的信息。当鼠标光标悬停在这样的栏上时,弹出菜单/注释会显示出来,这是一个很好的功能,可以显示规划者可能需要做出日程安排决定的大量额外信息。FlexGantt的弹出窗口可以像任何Swing组件一样进行自定义。不同的渲染器可以映射到不同类型的弹出对象。弹出对象是从专门的弹出策略中查找的。默认的弹出式渲染器,它以序列化的形式显示弹出式对象。


  • Relationships. Linking data.
  • 时间线对象之间有某种关系是很常见的。例如,项目规划软件经常定义它们之间的约束。约束的一些示例有:“startafter”、“finishbefore”、“same-start”和“same-end”。FlexGantt可以通过在它们之间画线来将它们可视化。每个应用程序都有自己的可视化方式(针对不同的约束,使用不同的颜色和/或线条样式)。通过插入自定义关系渲染器,可以实现任何类型的关系渲染。


  • Lazy Loading. For big data.
  • 根据应用程序类型的不同,需要可视化的数据量可能相当大。在这些情况下,只有使用“延迟加载”方法,用户界面才能快速响应,这意味着只有当用户实际请求时,数据才会从服务器(或数据库)传输到客户端。FlexGantt的设计初衷是支持延迟加载。示例:实现树表扩展侦听器接口的对象将在树扩展之前接收一个事件,以便可以加载正在扩展的父节点的子节点。分页模型是支持延迟加载的基础设施的另一个示例。


  • Multiline. Avoid overlapping objects.
  • 使用多行功能,甘特图可以在同一行中显示时间线对象,但时间线对象之间可以上下显示。通过这种方式,原本会相互重叠的时间轴对象可以毫无问题地显示。