FlexGantt是一款先进的特图Swing用户界面组件,由dlsc公司推出的,该软件对于大家来说可能有点陌生,它是目前为止Java中最先进的甘特图解决方案,使用一个很高的抽象层次,能适用于多样的、通常是不同的领域,FlexGantt 允许用户与项目计划和调度结果形成互动。应用程序使用FlexGantt可以自定义甘特图组件。
功能特色
拖放网格:
时间线对象可以被水平拖动、缩放和垂直拖动。一个可见网格能被拖放操作激活,所以时间线对象可以更容易地被放置在特定时间。网格由策略控制,意味着任何种类的网格都可以被完成。可以设置默认网格策略使得时间线对象可以吸附到从千年、百年、十年、年、月、星期、日以至于毫秒的任何时间。
策略控制行为:
调度程序在显示信息、编辑数据、响应用户交互方面有着千差万别。FlexGantt 的策略框架能够根据这些不同而被用于设定相适应的甘特图。策略是小的决定者,通常不包含很多的代码。它们同样是无状态的。在许多情况下,它们仅仅返回标记(booleans)和命令。标记用作控制程序流,而命令被用作实现实际的数据修改(通过一个包含撤销和恢复的命令栈)。
弹出/注释:
时间线下方的栏是显示一个事件的好区域,但是由于空间限制,它只能显示有限的信息。当鼠标指针悬停在这一栏上,显示弹出/注释是一个很好的特性,这样就能显示足够多的信息,提供给计划者用作制订调度决定。FlexGantt 的弹出可以与 Swing 组件一样被自定义。不同的显示可以被映射到不同种类的弹出对象。弹出对象由特定的弹出策略导出。下面的图片显示了默认的弹出显示,它显示了序列化形式的弹出对象。
可变行高:
FlexGantt 图的每行可以有自己的高度。这样特性在树表节点代表不同类型的对象或一个量与每个节点相关联是十分有用。在此情况下,行高可以反映这样量(例如一个资源的容量)。
多行排序:
甘特图左手边的树表支持多行排序,意味着用户可以同时选择多个树表列,表中数据将基于此选择排列。 FlexGantt 使用快速排序算法进行排序,支持升/降序排列。
日历模型:
日历模型提供甘特图中有关周末、假日、或任何特殊时间范围的数据。日历模型的入口显示在整个层容器的高度(右手边)。最显著的使用日历模型的例子是对周末的定义。周末的背景将会以灰色显示。
自动卷动:
如果 FlexGantt 图频繁更新它的“现在时间/系统时间”,有时使程序注意这样时间是有必要的。当自动卷动被激活,现在时间光标(垂直虚线)将提留在层容器的中央,即使时间流逝。当程序具有更多监视功能而不是交互调度功能时,这是一个非常有用的特性。
书签:
用户日益习惯于书签的概念。FlexGantt 同样支持它们,而且用户可以使用它们来快速调整时间线设置,这样一个特定的时间点、间隔和范围会被显示在甘特图上。定义过的书签被列在菜单的导航控件中。 当用户点击菜单按钮时,如果控制键被按下,将会显示被标签的时间间隔的小预览图片
命令框架:
FlexGantt 提供一个小但强大的命令框架。它被用来支持编辑操作的撤销和恢复。命令框架包含命令、命令栈、命令栈监听器和进度监视器。命令通过甘特表被执行、撤销和恢 复,甘特表内部使用一个可置换的命令栈。为了保证用户界面的相应,命令在自己的线程中进行。命令栈事件在命令执行时被提交。进度监视器用来显示命令的进 度。子进度监视器用来监视包含其他许多命令的混合命令。一旦一个命令结束执行,它将被加入到命令栈的撤销列表中。当一个命令被执行而无法撤销时,这一列表 将被清空。命令框架使用一个高级抽象层次,这一已存在的命令架构(传统代码)可以被重用。
打印:
甘特表显示的计划是一份文档,而任何文档都应该能打印。内建的打印支持使得用户指定需要打印的时间范围和间隔(见下图)。结果表可以被打印成具有多页的宽度和高度。
关系:
时间线对象之间具有某种关系是很普遍的。例如项目计划软件通常在它们之间定义约束。一些约束的例子:“在……之后开始”,“在……之前完成”,“同时开 始”,“同时完成”。FlexGantt 通过绘制它们之间的线条来显示关系。每个程序有自己的显示方式(不同的约束有不同的颜色和/或不同的线风格)。通过插入自定义关系显示,可以实现任何种类 的关系显示
可插入显示和编辑器:
Swing 定义了许多显示和编辑类用作它的用户界面组件,例如树、表格或列表。FlexGantt 与之相同,定义了树表单元、列头、弹出、日期线模型、时间线对象、事件线对象的显示。时间线对象编辑器在甘特表左手边的透明窗口里显示。
多线:
多线特性使得甘特表在同一行上下显示时间对象。这样原可能互相重叠的时间线对象可以正常显示。
更新日志
新的SpreadsheetLayer(时间线下面的编辑单元,电子表格形式)。
新的ActionLayer(用于显示时间表特定对象的工具栏,包含行动按钮)
改进了印刷功能。打印输出现在包含了一个标题,一个logo和三个不同的页脚文本(左,中,右)。印刷还支持添加页码、页面数、日期、用户名的要求。
恢复以前拖动和调整时间对象的老版光标图样,它们在默认情况下都是禁用的,但可以通过DragLayer.setShowingDefaultCursors激活(设定为false)。
可以通过设定configurable.Dateline.setZoomClicks(int)的数值来调节触发拖动时间线所需的点击次数。
把逻辑支持列入计划,推出防止违规操作的约束规范。违规操作问题可以被自动解决。
增加能够让几个甘特图同步滚动的MultiGanttChartSynchController类。
∨ 展开