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.
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.
