Components


Components are graphical user interface elements with which the user interacts. They visualize information that is provided by a model. Components use policies to control their behaviour, renderers for their appearance and editors for their editing capabilities. Except for the use of policies this approach is equivalent with the approach taken by the standard components that are contained in the Swing framework. FlexGantt is based on Swing and focuses on the creation of Gantt charts that can be used for production planning and scheduling applications, hence the list of components is limited to those that are required for these charts. They are:

GanttChart - a standard Gantt chart, sufficient for most applications

DualGanttChart - a Gantt chart capable of displaying two different Gantt chart models (a primary and a secondary model) at the same time. Vertical and horizontal scrolling are performed on both models in sync allowing for easy comparison of the data. Drag and drop operations allow the user to move objects from one model to another. Primary and secondary model can be the same, enabling the user to look at two different sections of the object hierarchy at the same time.

TreeTable - a table widget that maintains a special column, called the „key column“, and several standard columns that are called „value columns“ . The key column displays a tree structure, the object hierarchy. Each node in the tree can have several values that are displayed in the value columns. Each node is also associated with a list of timeline objects. These are displayed on the right-hand side of the Gantt chart, in the so-called layer container. The tree table itself is displayed on the left-hand side of any Gantt chart.

Tree Table Container - a specialized container that is a subclass of a Gantt chart. It only contains the left-hand side of a Gantt chart, the tree table. This class becomes useful if applications desire to use the same table implementation for the entire user interface and not just for the Gantt charts. A container like this one is required because of the tree table's dependencies to many features that are usually provided by the parent Gantt chart container (for example the command stack, the renderer configuration, etc...).

Tree Table Header - a component that is displayed on top of a tree table. It is responsible for displaying the columns as they are being provided by the Gantt chart‘s column model. The header allows the user to resize columns and perform a multi-column sort on the tree table‘s data.

Row Header - shown to the left of a tree table. The row header displays row numbers and expand / collapse icons. It is also used for selecting rows in the tree table or for changing the height of a single row or all rows at once.

Timeline - a container placed above the layer container on the right-hand side of the Gantt chart. It contains the dateline and the eventline.

Timeline-HR

Dateline - contained in the upper part of the timeline and responsible for displaying dates. The dateline itself is split in half. The upper half displays the so-called ‚major‘ time and the lower half the ‚minor‘ time. A minor time might for example be the ‚hour of day‘ (e.g. 5pm), while the major time is a specific day (e.g. Friday, November 10th 2006). The user can interact with the dateline and select time intervals in order to zoom into that interval.

Eventline - contained in the lower part of the timeline and responsible for displaying information provided by an eventline model. The information shown in the eventline is information that can not be associated with a specific node in the object hierarchy but that has a global character (e.g. milestones, national holidays, etc...). The user can interact with the eventline and select, move and change the duration of eventline objects. The eventline implements the grid component interface in order to support a virtual grid for editing operations.

Layer Container - the right-hand side of any Gantt chart mainly consists of this container. It manages the visibility and the event handling of the various layers / layer types: system layers, timeline object layers, and custom layers. System layers are limited in number and each one of them focuses on one feature that is supported by the framework (drag & drop, calendar information, popups, grid, etc...). Timeline object layers are used for rendering the data provided by the Gantt chart model. They visualize timeline objects with the help of specialized timeline object renderers. Custom layers do not implement any predefined functionality but allow the developer to add application-specific visualizations. The layer container implements the grid component interface in order to support a virtual grid for drag & drop operations.

Layers-HR