com.dlsc.flexgantt.swing

## Class AbstractGanttChart

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JPanel
        - - com.dlsc.flexgantt.swing.AbstractGanttChart

- All Implemented Interfaces:
    ICommandStackListener, IPagingModelListener, IColumnModelListener, KeyListener, ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible
  Direct Known Subclasses:
    DualGanttChart, GanttChart, PrintGanttChart, TreeTableContainer

      public abstract class AbstractGanttChart
      extends JPanel
      implements IColumnModelListener, PropertyChangeListener, IPagingModelListener, KeyListener, ICommandStackListener

  The abstract Gantt chart provides functionality that all Gantt chart implementations have in common:
  - Command Execution
  - Timeline, Dateline, Eventline
  - Column Header
  - Printing Support
  - System Messages
  Since:
    1.0
  Author:
    Dirk Lemmermann
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `AbstractGanttChart.Banner` The banner is used to prompt the user that either no license has been installed or that the currently used license is for development purposes only.

    - ### Nested classes/interfaces inherited from class javax.swing.JPanel

      `JPanel.AccessibleJPanel`

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `PROPERTY_ACTIVE_SPREADSHEET` Constant used for those property change events that get fired when the currently active spreadsheet changes.
    `static String` | `PROPERTY_CALENDAR_MODEL` Constant used for those property change events that get fired when the calendar model changes.
    `static String` | `PROPERTY_CALENDAR_VISIBLE` Constant used for those property change events that get fired when the calendar layer gets set to be visible/invisible.
    `static String` | `PROPERTY_COLUMN_MODEL` Constant used for those property change events that get fired when the column model changes.
    `static String` | `PROPERTY_COMMAND_STACK` Constant used for those property change events that get fired when the command stack of the gantt chart gets set.
    `static String` | `PROPERTY_CONTROLS_BG_COLOR` Constant used for those property change events that get fired when the controls background color changes.
    `static String` | `PROPERTY_CONTROLS_FG_COLOR` Constant used for those property change events that get fired when the controls foreground color changes.
    `static String` | `PROPERTY_CROSSHAIR_VISIBLE` Constant used for those property change events that get fired when the crosshair layer gets set to be visible/invisible.
    `static String` | `PROPERTY_GRID_LINE_MODE` Constant used for those property change events that get fired when the grid mode changes ( `GridLineMode` ).
    `static String` | `PROPERTY_KEY_COLUMN_POSITION` Constant used for those property change events that get fired when the Gantt chart's key column position changes.
    `static String` | `PROPERTY_LABELS_VISIBLE` Constant used for those property change events that get fired when the relationship layer gets set to be visible/invisible.
    `static String` | `PROPERTY_LAYER_CONTAINER_ROW_HEADER_WIDTH` Constant used for those property change events that get fired when the width of the layer container row header gets changed.
    `static String` | `PROPERTY_MODEL` Constant used for those property change events that get fired when the Gantt chart model changes.
    `static String` | `PROPERTY_PAGING_MODEL` Constant used for those property change events that get fired when the paging information changes.
    `static String` | `PROPERTY_POLICY_PROVIDER` Constant used for those property change events that get fired when the policy provider gets replaced.
    `static String` | `PROPERTY_POPUP_VISIBLE` Constant used for those property change events that get fired when the popup (popup layer) gets set to be visible/invisible.
    `static String` | `PROPERTY_RELATIONS_VISIBLE` Constant used for those property change events that get fired when the relationship layer gets set to be visible/invisible.
    `static String` | `PROPERTY_ROW_LAYER_VISIBLE` Constant used for those property change events that get fired when the row layer gets set to be visible/invisible.
    `static String` | `PROPERTY_ROW_RESIZE_POSITION` Constant used for those property change events that get fired when the position of the row resize changes.
    `static String` | `PROPERTY_TIME_NOW_SCROLLING` Constant used for those property change events that get fired when the automatic time now scrolling gets turned on / off.
    `static String` | `PROPERTY_TIME_NOW_VISIBLE` Constant used for those property change events that get fired when the vertical time now line gets set to be visible/invisible.
    `static String` | `PROPERTY_TREE_TABLE_ROW_HEADER_WIDTH` Constant used for those property change events that get fired when the width of the tree table row header gets changed.
    `static String` | `PROPERTY_VERTICAL_LINES_ON_TOP` Constant used for those property change events that get fired when the vertical lines get set to be on top or below the timeline objects.

    - ### Fields inherited from class javax.swing.JComponent

      `listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractGanttChart()` Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header.
    `protected` | `AbstractGanttChart(IColumnModel columnModel)` Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header.
    `protected` | `AbstractGanttChart(IComponentFactory compFactory)` Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header.
    `protected` | `AbstractGanttChart(IGanttChartModel model)` Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header.
    `protected` | `AbstractGanttChart(IGanttChartModel model, IColumnModel columnModel)` Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header.
    `protected` | `AbstractGanttChart(IGanttChartModel model, IColumnModel columnModel, IComponentFactory compFactory)` Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header.
    `protected` | `AbstractGanttChart(IGanttChartModel model, IComponentFactory compFactory)` Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAvailableColumn(TreeTableColumn column)` Adds a column to the Gantt chart that can be added to the column model interactively by the user.
    `void` | `addMessage(IMessage msg)` Adds a message for the user to the Gantt chart.
    `void` | `addMessageListener(IMessageListener l)` Adds a message listener to the Gantt chart.
    `void` | `addSortingListener(ISortingListener l)` Adds a tree table sorting listener to the table.
    `void` | `addToolBarAction(Action action)` Adds an action to the Gantt chart, which will automatically be picked up and shown by the toolbar.
    `void` | `alignEndTimes()` Adjusts the end times of all currently selected and visible timeline objects so that they are all the same.
    `void` | `alignStartTimes()` Adjusts the start times of all currently selected and visible timeline objects so that they are all the same.
    `void` | `clearMessages()` Removes all messages from the Gantt chart.
    `void` | `clearToolBarActions()` Removes all toolbar actions from the Gantt chart.
    `void` | `collapseAll()` Collapses all tree nodes in all tree tables.
    `void` | `columnModelChanged(ColumnModelEvent e)` The listener's callback method that will be invoked when columns get added, removed, inserted.
    `void` | `commandExecute(ICommand cmd)` Executes the given command via the command stack.
    `void` | `commandRedo()` Redoes the last command that was executed (if the command can be redone) by calling `ICommandStack.redo(IProgressMonitor)`.
    `void` | `commandStackChanged(CommandStackEvent e)` Gets called whenever the command stack changed.
    `void` | `commandUndo()` Undoes the last command that was executed (if the command can be undone) by calling `ICommandStack.undo(IProgressMonitor)`.
    `PrintGanttChart` | `createPrintableGanttChart(PrintContext context)` Returns a printable Gantt Chart for the given print context.
    `void` | `expandAll()` Expands all tree nodes in all tree tables.
    `protected void` | `fireMessageAdded(IMessage msg)` Iterates over all message listeners that are currently attached to the Gantt chart and calls the `messageAdded()` event method.
    `protected void` | `fireMessageRemoved(IMessage msg)` Iterates over all message listeners that are currently attached to the Gantt chart and calls the `messageRemoved()` event method.
    `protected void` | `fireMessagesCleared()` Iterates over all message listeners that are currently attached to the Gantt chart and calls the `messagesCleared()` event method.
    `protected void` | `fireSortingEvent(SortingEvent evt)` Fires a sorting event when the user performed a sort on the Gantt chart.
    `ISpreadsheet` | `getActiveSpreadsheet()` Returns the currently active spreadsheet (see `SpreadsheetLayer`.
    `List<TreeTableColumn>` | `getAvailableColumns()` Returns the list of available columns.
    `ICalendarModel` | `getCalendarModel()` Returns the calendar model associated with the Gantt chart.
    `TreeTableColumn` | `getColumn(int index)` Returns the column at the given index.
    `int` | `getColumnCount()` Returns the number of columns in the column model.
    `IColumnModel` | `getColumnModel()` Returns the Gantt chart's column model.
    `ICommandInterceptor` | `getCommandInterceptor(Class cl)` Returns a command interceptor implementation for the given command type.
    `ICommandStack` | `getCommandStack()` Returns the command stack that is being used by the Gantt chart to execute commands.
    `IComponentFactory` | `getComponentFactory()` Returns the component factory used by the Gantt chart to create components such as `Timeline`, `TreeTableHeader`, `TreeTable`, `LayerContainer`, `TreeTableRowHeader`.
    `Color` | `getControlsBackground()` Returns the color used to paint the background of those controls that 'surround' the actual Gantt chart content (column header, row header, dateline).
    `Color` | `getControlsForeground()` Returns the color used to paint the foreground of those controls that 'surround' the actual Gantt chart content (column header, row header, dateline).
    `Dateline` | `getDateline()` Returns the dateline component, which is responsible for rendering the time (days, minutes, seconds, ...).
    `IDatelineModel` | `getDatelineModel()` Returns the dateline model.
    `Eventline` | `getEventline()` Returns the Eventline component, which is responsible for rendering events and activities that have a global character.
    `IGranularity` | `getGranularity()` Returns the granularity used by the dateline.
    `abstract IGridComponent[]` | `getGridComponents()` Returns all grid components managed by the Gantt chart container.
    `GridLineMode` | `getGridLineMode()` Returns the grid mode used by the Gantt chart.
    `KeyColumn` | `getKeyColumn()` Returns the key column used by the Gantt chart.
    `int` | `getKeyColumnPosition()` Returns the key column position, which specifies how many regular columns will be placed to the left of the key column.
    `int` | `getLayerContainerRowHeaderWidth()` Returns the width used to calculate the preferred size of all layer container row headers currently in use by the Gantt chart.
    `abstract LayerContainer[]` | `getLayerContainers()` Returns all layer containers managed by the Gantt chart container.
    `abstract LayerContainerScrollPane[]` | `getLayerContainerScrollPanes()` Returns all layer container scrollpanes managed by the Gantt chart container.
    `Collection<IMessage>` | `getMessages()` Returns a list of all messages that are currently attached to the Gantt chart.
    `IGanttChartModel` | `getModel()` Returns the Gantt chart's data model.
    `IPagingModel` | `getPagingModel()` Returns the (optional) paging model.
    `IPolicyProvider` | `getPolicyProvider()` Returns the policy provider used by the Gantt chart to lookup policy implementations.
    `abstract PrintContext[]` | `getPrintContexts()` Returns all print context supported by the Gantt chart.
    `PrintSetup` | `getPrintSetup()` Returns the print setup object, which is used to configure the decorative elements of a printout (header and footer).
    `IProgressMonitorFactory` | `getProgressMonitorFactory()` Returns the progress monitor factory used by the Gantt chart to create new instances of `IProgressMonitor`.
    `int` | `getRowResizePosition()` Gets the position where the row resizing takes place.
    `ISelectorFactory` | `getSelectorFactory()` Returns the selector factory used by the Gantt chart for creating selectors in various places.
    `Timeline` | `getTimeline()` Returns the Timeline component, which consists of the Dateline and the Eventline.
    `ITimeSpan` | `getTimeSpan()` Convenience method, which returns the total time span covered by the Gantt chart.
    `Action[]` | `getToolBarActions()` Returns all toolbar actions currently associated with the Gantt chart.
    `TreeTableHeader` | `getTreeTableHeader()` Returns the tree table header component.
    `int` | `getTreeTableRowHeaderWidth()` Returns the width used to calculate the preferred size of all tree table row headers currently in use by the Gantt chart.
    `abstract TreeTable[]` | `getTreeTables()` Returns all tree tables managed by the Gantt chart container.
    `abstract TreeTableScrollPane[]` | `getTreeTableScrollPanes()` Returns all tree table scrollpanes managed by the Gantt chart container.
    `boolean` | `isCalendarVisible()` Returns TRUE if the layer that is responsible for displaying calendar information is currently visible.
    `boolean` | `isCrosshairVisible()` Returns TRUE if the layer that is responsible for displaying the crosshair is currently visible.
    `boolean` | `isLabelsVisible()` Returns TRUE if the layer that is responsible for displaying object labels is currently visible.
    `boolean` | `isPopupVisible()` Returns TRUE if the layer that is responsible for displaying the popup is currently visible.
    `boolean` | `isRelationsVisible()` Returns TRUE if the layer that is responsible for displaying object relationships (lines with arrows between timeline objects) is currently visible.
    `boolean` | `isRowLayerVisible()` Returns TRUE if the layer that is responsible for displaying the row renderers is currently visible.
    `boolean` | `isShowingCommandExceptions()` Returns TRUE if the exceptions thrown during the execution of a command will be shown in the console.
    `boolean` | `isTimeNowScrolling()` Determines whether automatic time now scrolling is turned on or off.
    `boolean` | `isTimeNowVisible()` Returns TRUE if the vertical line that indicates time now is currently visible.
    `boolean` | `isVerticalLinesOnTop()` Returns TRUE if the vertical lines (the major and/or minor grid) will be drawn on top of the timeline objects (the default is below).
    `void` | `keyPressed(KeyEvent e)`
    `void` | `keyReleased(KeyEvent e)`
    `void` | `keyTyped(KeyEvent e)`
    `void` | `optimizeColumnWidth()` Optimizes the column width of all columns without taking the cell editors into account.
    `void` | `optimizeColumnWidth(boolean includeEditors)` Optimizes the column width of all columns with or without taking the cell editors into account.
    `void` | `optimizeColumnWidth(int index)` Optimizes the column width of all columns without taking the cell editors into account.
    `void` | `optimizeColumnWidth(int index, boolean includeEditors)` Optimizes the column width of all columns with or without taking the cell editors into account.
    `void` | `optimizeColumnWidth(TreeTableColumn column)` Optimizes the column width of the given column without taking the cell editors into account.
    `void` | `optimizeColumnWidth(TreeTableColumn column, boolean includeEditors)` Optimizes the column width of the given column with or without taking the cell editors into account.
    `void` | `pageChanged(PagingEvent evt)` Listener callback method that will be invoked after the page model was changed.
    `void` | `pageWillChange(PagingEvent evt)` Listener callback method that will be invoked before the page model gets changed.
    `void` | `paint(Graphics g)`
    `protected void` | `paintRowResizePosition(Graphics g)` Renders the visual feedback when the user resizes a row.
    `void` | `print(boolean preview)` Prints the Gantt chart.
    `abstract void` | `print(boolean preview, ITimeSpan span)` Prints the Gantt chart.
    `void` | `propertyChange(PropertyChangeEvent evt)`
    `void` | `removeAvailableColumn(TreeTableColumn column)` Removes a column from the list of available columns.
    `void` | `removeMessage(IMessage msg)` Removes a message from the Gantt chart.
    `void` | `removeMessageListener(IMessageListener l)` Removes a message listener from the Gantt chart.
    `void` | `removeSortingListener(ISortingListener l)` Removes a tree table sorting listener from the table.
    `void` | `removeToolBarAction(Action action)` Removes a toolbar action from the Gantt chart.
    `abstract void` | `resetToPreferredSizes()` Causes the Gantt chart to lay out its left- and right-hand side in such a way that the tree table on the left becomes fully visible.
    `void` | `setActiveSpreadsheet(ISpreadsheet activeSpreadsheet)` Sets the currently active spreadsheet, which will be used by the `SpreadsheetLayer` to visualize spreadsheet-style information.
    `void` | `setAvailableColumns(Collection<TreeTableColumn<?>> columns)` Sets serveral columns as "available" columns, which means that these columns will not be initially shown by the tree table.
    `void` | `setCalendarModel(ICalendarModel model)` Sets the Gantt chart's calendarModel.
    `void` | `setCalendarVisible(boolean visible)` Specifies whether the layer that is showing the calendar information will be visible or not.
    `void` | `setColumnModel(IColumnModel model)` Assigns a column model to the Gantt chart and attaches listeners to the model itself, to the model's key column and to each of the model's regular columns.
    `void` | `setCommandInterceptor(Class<? extends ICommand> cl, ICommandInterceptor interceptor)` Registers a command interceptor implementation for the given command type.
    `void` | `setCommandStack(ICommandStack stack)` Specifies a new command stack for the Gantt chart.
    `void` | `setControlsBackground(Color color)` Changes the color used for the background of those controls that 'surround' the actual Gantt chart content (column header, row header, dateline).
    `void` | `setControlsForeground(Color color)` Changes the color used for the foreground of those controls that 'surround' the actual Gantt chart content (column header, row header, dateline).
    `void` | `setCrosshairVisible(boolean visible)` Specifies whether the layer that is showing the crosshair will be visible or not.
    `void` | `setEnabled(boolean enabled)` Overrides the default implementation to automatically also enable or disable the dateline, the eventline, the timeline, the tree table header, the tree tables, the layer containers.
    `void` | `setGranularity(IGranularity granularity)` Sets a new granularity.
    `void` | `setGridLineMode(GridLineMode mode)` Sets a new grid mode to be used for rendering the vertical lines inside the layer containers.
    `void` | `setKeyColumnPosition(int position)` Specifies at which position the key column will be placed inside the tree table.
    `void` | `setLabelsVisible(boolean visible)` Specifies whether the layer that is showing the timeline object labels will be visible or not.
    `void` | `setLayerContainerRowHeaderWidth(int width)` Sets the width used to calculate the preferred size of all layer container row headers currently in use by the Gantt chart.
    `void` | `setModel(IGanttChartModel model)` Specifies a model to be used by the Gantt chart as a data source.
    `void` | `setPagingModel(IPagingModel model)` Sets the (optional) paging model.
    `void` | `setPolicyProvider(IPolicyProvider provider)` Sets the policy provider used by the Gantt chart to lookup policy implementations.
    `void` | `setPopupVisible(boolean visible)` Specifies whether the layer that is showing the popups will be visible or not.
    `void` | `setPrintSetup(PrintSetup ps)` Specifies a new print setup object, which is used to configure the decorative elements of a printout (header and footer).
    `void` | `setProgressMonitorFactory(IProgressMonitorFactory factory)` Sets a new factory for progress monitors on the Gantt chart.
    `void` | `setRelationsVisible(boolean visible)` Specifies whether the layer that is showing the relationships between timeline objects will be visible or not.
    `void` | `setRowLayerVisible(boolean visible)` Specifies whether the layer that is showing the rows will be visible or not.
    `void` | `setRowResizePosition(int position)` Sets the new position where the row resize operation takes place.
    `void` | `setShowingCommandExceptions(boolean show)` Controls whether the stacktrace of an exception thrown by a command will be displayed in the console.
    `void` | `setTimeNowScrolling(boolean scrolling)` Enables / disables automatic time now scrolling, which ensures that layer containers will scroll by themselves so that the time now location is always visible.
    `void` | `setTimeNowVisible(boolean visible)` If set to 'true' then a line will be drawn from the top of the panel to the bottom indicating where the time 'now' is.
    `void` | `setTimeSpan(ITimeSpan span)` Sets a new time span.
    `void` | `setTreeTableRowHeaderWidth(int width)` Sets the width used to calculate the preferred size of all tree table row headers currently in use by the Gantt chart.
    `void` | `setVerticalLinesOnTop(boolean top)` Determines whether or not the limit lines are drawn above the diagram entries or below them.
    `void` | `showAllObjects()` Scrolls and zooms the `Dateline` in such a way that all timeline objects (stored on the currently visible rows) become visible.
    `void` | `showEarliestObjects()` Scrolls the `Dateline` in such a way that the earliest timeline objects (stored on the currently visible rows) become visible.
    `void` | `showLatestObjects()` Scrolls the `Dateline` in such a way that the latest timeline objects (stored on the currently visible rows) become visible.
    `void` | `showMessage(String msg)` Shows a message in a dialog to the user.
    `void` | `showMessage(String msg, MessageTypeId id)` Shows a message in a dialog to the user.
    `void` | `showMessage(String msg, MessageTypeId id, Object details)` Shows a message in a dialog to the user.
    `void` | `showMessageContext(IMessage msg)` Shows the context of the given message.
    `void` | `showMessages()` Brings up a dialog, which displays the user messages that are currently attached to the Gantt chart.
    `void` | `showTime(long time, boolean center)` Requests that the given time will be shown by the Gantt chart.
    `void` | `showTimeNow(boolean center)` Requests that the time now will be shown by the Gantt chart.
    `void` | `sortTables(int[] modelIndices, boolean[] sortDirections)` Invokes multi-column sorting on the tree tables in the Gantt chart.
    `void` | `tearDown()` Tears down the Gantt chart by calling `Eventline.tearDown()` and `LayerContainer.tearDown()` on all layer containers used within the Gantt chart (e.g. the `DualGanttChart` will call `tearDown()` on two layer containers.

    - ### Methods inherited from class javax.swing.JPanel

      `getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### PROPERTY_MODEL

          public static final String PROPERTY_MODEL

      Constant used for those property change events that get fired when the Gantt chart model changes.
      Since:
        1.0
      See Also:
        `setModel(IGanttChartModel)`, Constant Field Values

    - #### PROPERTY_COLUMN_MODEL

          public static final String PROPERTY_COLUMN_MODEL

      Constant used for those property change events that get fired when the column model changes.
      Since:
        1.0
      See Also:
        `setColumnModel(IColumnModel)`, Constant Field Values

    - #### PROPERTY_CALENDAR_MODEL

          public static final String PROPERTY_CALENDAR_MODEL

      Constant used for those property change events that get fired when the calendar model changes.
      Since:
        1.0
      See Also:
        `setCalendarModel(ICalendarModel)`, Constant Field Values

    - #### PROPERTY_POLICY_PROVIDER

          public static final String PROPERTY_POLICY_PROVIDER

      Constant used for those property change events that get fired when the policy provider gets replaced.
      Since:
        1.0
      See Also:
        `setPolicyProvider(IPolicyProvider)`, Constant Field Values

    - #### PROPERTY_COMMAND_STACK

          public static final String PROPERTY_COMMAND_STACK

      Constant used for those property change events that get fired when the command stack of the gantt chart gets set.
      Since:
        1.0
      See Also:
        `setCommandStack(ICommandStack)`, Constant Field Values

    - #### PROPERTY_TREE_TABLE_ROW_HEADER_WIDTH

          public static final String PROPERTY_TREE_TABLE_ROW_HEADER_WIDTH

      Constant used for those property change events that get fired when the width of the tree table row header gets changed.
      Since:
        1.1
      See Also:
        `setTreeTableRowHeaderWidth(int)`, Constant Field Values

    - #### PROPERTY_LAYER_CONTAINER_ROW_HEADER_WIDTH

          public static final String PROPERTY_LAYER_CONTAINER_ROW_HEADER_WIDTH

      Constant used for those property change events that get fired when the width of the layer container row header gets changed.
      Since:
        1.1
      See Also:
        `setLayerContainerRowHeaderWidth(int)`, Constant Field Values

    - #### PROPERTY_GRID_LINE_MODE

          public static final String PROPERTY_GRID_LINE_MODE

      Constant used for those property change events that get fired when the grid mode changes ( `GridLineMode` ).
      Since:
        1.0
      See Also:
        `setGridLineMode(GridLineMode)`, Constant Field Values

    - #### PROPERTY_CONTROLS_BG_COLOR

          public static final String PROPERTY_CONTROLS_BG_COLOR

      Constant used for those property change events that get fired when the controls background color changes.
      Since:
        1.0
      See Also:
        `setControlsBackground(Color)`, Constant Field Values

    - #### PROPERTY_CONTROLS_FG_COLOR

          public static final String PROPERTY_CONTROLS_FG_COLOR

      Constant used for those property change events that get fired when the controls foreground color changes.
      Since:
        1.0
      See Also:
        `setControlsForeground(Color)`, Constant Field Values

    - #### PROPERTY_CALENDAR_VISIBLE

          public static final String PROPERTY_CALENDAR_VISIBLE

      Constant used for those property change events that get fired when the calendar layer gets set to be visible/invisible.
      Since:
        1.0
      See Also:
        `setCalendarVisible(boolean)`, Constant Field Values

    - #### PROPERTY_CROSSHAIR_VISIBLE

          public static final String PROPERTY_CROSSHAIR_VISIBLE

      Constant used for those property change events that get fired when the crosshair layer gets set to be visible/invisible.
      Since:
        1.0
      See Also:
        `setCrosshairVisible(boolean)`, Constant Field Values

    - #### PROPERTY_KEY_COLUMN_POSITION

          public static final String PROPERTY_KEY_COLUMN_POSITION

      Constant used for those property change events that get fired when the Gantt chart's key column position changes.
      Since:
        1.0
      See Also:
        `setKeyColumnPosition(int)`, Constant Field Values

    - #### PROPERTY_LABELS_VISIBLE

          public static final String PROPERTY_LABELS_VISIBLE

      Constant used for those property change events that get fired when the relationship layer gets set to be visible/invisible.
      Since:
        1.0
      See Also:
        `setLabelsVisible(boolean)`, Constant Field Values

    - #### PROPERTY_POPUP_VISIBLE

          public static final String PROPERTY_POPUP_VISIBLE

      Constant used for those property change events that get fired when the popup (popup layer) gets set to be visible/invisible.
      Since:
        1.0
      See Also:
        `setPopupVisible(boolean)`, Constant Field Values

    - #### PROPERTY_RELATIONS_VISIBLE

          public static final String PROPERTY_RELATIONS_VISIBLE

      Constant used for those property change events that get fired when the relationship layer gets set to be visible/invisible.
      Since:
        1.0
      See Also:
        `setRelationsVisible(boolean)`, Constant Field Values

    - #### PROPERTY_ROW_LAYER_VISIBLE

          public static final String PROPERTY_ROW_LAYER_VISIBLE

      Constant used for those property change events that get fired when the row layer gets set to be visible/invisible.
      Since:
        1.0
      See Also:
        `setRowLayerVisible(boolean)`, Constant Field Values

    - #### PROPERTY_TIME_NOW_VISIBLE

          public static final String PROPERTY_TIME_NOW_VISIBLE

      Constant used for those property change events that get fired when the vertical time now line gets set to be visible/invisible.
      Since:
        1.0
      See Also:
        `setTimeNowVisible(boolean)`, Constant Field Values

    - #### PROPERTY_VERTICAL_LINES_ON_TOP

          public static final String PROPERTY_VERTICAL_LINES_ON_TOP

      Constant used for those property change events that get fired when the vertical lines get set to be on top or below the timeline objects.
      Since:
        1.0
      See Also:
        `setVerticalLinesOnTop(boolean)`, Constant Field Values

    - #### PROPERTY_TIME_NOW_SCROLLING

          public static final String PROPERTY_TIME_NOW_SCROLLING

      Constant used for those property change events that get fired when the automatic time now scrolling gets turned on / off.
      Since:
        1.0
      See Also:
        `setTimeNowScrolling(boolean)`, Constant Field Values

    - #### PROPERTY_PAGING_MODEL

          public static final String PROPERTY_PAGING_MODEL

      Constant used for those property change events that get fired when the paging information changes.
      Since:
        1.0
      See Also:
        `setPagingModel(IPagingModel)`, Constant Field Values

    - #### PROPERTY_ROW_RESIZE_POSITION

          public static final String PROPERTY_ROW_RESIZE_POSITION

      Constant used for those property change events that get fired when the position of the row resize changes.
      Since:
        1.0
      See Also:
        `setRowResizePosition(int)`, Constant Field Values

    - #### PROPERTY_ACTIVE_SPREADSHEET

          public static final String PROPERTY_ACTIVE_SPREADSHEET

      Constant used for those property change events that get fired when the currently active spreadsheet changes.
      Since:
        2.1
      See Also:
        `setActiveSpreadsheet(ISpreadsheet)`, Constant Field Values

  - ### Constructor Detail

    - #### AbstractGanttChart

          protected AbstractGanttChart(IGanttChartModel model,
                                       IColumnModel columnModel,
                                       IComponentFactory compFactory)

      Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header. These elements only exist once for each concrete Gantt chart implementation (while tree tables and layer containers can exist multiple times, see `DualGanttChart`).

      The Gantt chart uses a component factory to delegate the creation of these elements.
      Parameters:
        `model` - the data model used to populate the tree table, to query the timeline objects, to retrieve the list of timeline layers, etc...
        `columnModel` - the module used by the tree table's column header to query for a list of tree table columns and the key column
        `compFactory` - the factory used to create the elements of a Gantt chart (timeline, dateline, eventline, column header row header, tree table, layer container)
      Since:
        1.0

    - #### AbstractGanttChart

          protected AbstractGanttChart(IGanttChartModel model,
                                       IColumnModel columnModel)

      Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header. These elements only exist once for each concrete Gantt chart implementation (while tree tables and layer containers can exist multiple times, see `DualGanttChart`).

      The Gantt chart uses the default component factory implementation to delegate the creation of these elements.
      Parameters:
        `model` - the data model used to populate the tree table, to query the timeline objects, to retrieve the list of timeline layers, etc...
        `columnModel` - the module used by the tree table's column header to query for a list of tree table columns and the key column
      Since:
        1.0
      See Also:
        `DefaultComponentFactory`

    - #### AbstractGanttChart

          protected AbstractGanttChart(IColumnModel columnModel)

      Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header. These elements only exist once for each concrete Gantt chart implementation (while tree tables and layer containers can exist multiple times, see `DualGanttChart`).

      The Gantt chart uses the default component factory implementation to delegate the creation of these elements.
      Parameters:
        `columnModel` - the module used by the tree table's column header to query for a list of tree table columns and the key column
      Since:
        1.0
      See Also:
        `DefaultComponentFactory`

    - #### AbstractGanttChart

          protected AbstractGanttChart(IGanttChartModel model,
                                       IComponentFactory compFactory)

      Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header. These elements only exist once for each concrete Gantt chart implementation (while tree tables and layer containers can exist multiple times, see `DualGanttChart`).

      The Gantt chart uses the default column model implementation.
      Parameters:
        `model` - the data model used to populate the tree table, to query the timeline objects, to retrieve the list of timeline layers, etc...
        `compFactory` - the factory used to create the elements of a Gantt chart (timeline, dateline, eventline, column header row header, tree table, layer container)
      Since:
        1.0
      See Also:
        `DefaultColumnModel`

    - #### AbstractGanttChart

          protected AbstractGanttChart(IComponentFactory compFactory)

      Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header. These elements only exist once for each concrete Gantt chart implementation (while tree tables and layer containers can exist multiple times, see `DualGanttChart`).

      The Gantt chart uses the default column model implementation.
      Parameters:
        `compFactory` - the factory used to create the elements of a Gantt chart (timeline, dateline, eventline, column header row header, tree table, layer container)
      Since:
        1.0
      See Also:
        `DefaultColumnModel`

    - #### AbstractGanttChart

          protected AbstractGanttChart(IGanttChartModel model)

      Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header. These elements only exist once for each concrete Gantt chart implementation (while tree tables and layer containers can exist multiple times, see `DualGanttChart`).

      The Gantt chart uses the default implementations of a component factory and a column model.
      Parameters:
        `model` - the data model used to populate the tree table, to query the timeline objects, to retrieve the list of timeline layers, etc...
      Since:
        1.0
      See Also:
        `DefaultComponentFactory`, `DefaultColumnModel`

    - #### AbstractGanttChart

          protected AbstractGanttChart()

      Constructs a new Gantt chart with the two 'singleton' elements: a timeline (includes dateline and eventline) and a colum header. These elements only exist once for each concrete Gantt chart implementation (while tree tables and layer containers can exist multiple times, see `DualGanttChart`).

      The Gantt chart uses the default Gantt chart model implementation as a data source and the default component factory implementation to delegate the creation of the timeline and the column header. The column model gets provided by the default column model implementation. The time zone gets set to be the JVM's default time zone.
      Since:
        1.0
      See Also:
        `DefaultGanttChartModel`, `DefaultColumnModel`, `DefaultComponentFactory`, `TimeZone.getDefault()`

  - ### Method Detail

    - #### setModel

          public void setModel(IGanttChartModel model)

      Specifies a model to be used by the Gantt chart as a data source. Calling this method will cause a property change event if the new model is different than the current model. The event name will be equal to `PROPERTY_MODEL`.
      Parameters:
        `model` - the new Gantt chart model
      Since:
        1.0
      See Also:
        `getModel()`

    - #### getModel

          public IGanttChartModel getModel()

      Returns the Gantt chart's data model.
      Returns:
        the Gantt chart model
      Since:
        1.0
      See Also:
        `setModel(IGanttChartModel)`

    - #### setTimeSpan

          public void setTimeSpan(ITimeSpan span)

      Sets a new time span. This is a convenience method which delegates its call to `IDatelineModel.setTimeSpan(ITimeSpan)`. The dateline model might throw a `DatelineModelException` if the time span can not be used. A message will be shown to the user informing him of the problem.
      Parameters:
        `span` - the span requested by the application
      Since:
        1.0

    - #### setGranularity

          public void setGranularity(IGranularity granularity)

      Sets a new granularity. This is a convenience method which delegates its call to `IDatelineModel.setGranularity(IGranularity)`. The dateline model might throw a `DatelineModelException` if the granularity can not be used. A message will be shown to the user informing him of the problem.
      Parameters:
        `granularity` - the granularity requested by the application
      Since:
        1.0

    - #### getGranularity

          public IGranularity getGranularity()

      Returns the granularity used by the dateline. This is a convenience method, which delegates its call to `IDatelineModel.getGranularity()`.
      Returns:
        the granularity currently used by the dateline
      Since:
        1.1

    - #### getTimeSpan

          public ITimeSpan getTimeSpan()

      Convenience method, which returns the total time span covered by the Gantt chart. 'Covered' means the earliest and the latest time that will be displayed by the dateline and to which the user can scroll with the horizontal scrollbar underneath the layer container.
      Returns:
        the time span covered by the Gantt chart
      Since:
        1.0
      See Also:
        `IDatelineModel.getTimeSpan()`

    - #### setCommandStack

          public void setCommandStack(ICommandStack stack)

      Specifies a new command stack for the Gantt chart. Calling this method will cause a property change event if the new command stack is different than the current stack. The event name will be equal to `PROPERTY_COMMAND_STACK`.
      Parameters:
        `stack` - the command stack
      Since:
        1.0
      See Also:
        `DefaultCommandStack`, `getCommandStack()`

    - #### getCommandStack

          public ICommandStack getCommandStack()

      Returns the command stack that is being used by the Gantt chart to execute commands. By default every Gantt charts owns its own stack of type `DefaultCommandStack`.
      Returns:
        the command stack
      Since:
        1.0
      See Also:
        `setCommandStack(ICommandStack)`, `DefaultCommandStack`

    - #### setCommandInterceptor

          public void setCommandInterceptor(Class<? extends ICommand> cl,
                                            ICommandInterceptor interceptor)

      Registers a command interceptor implementation for the given command type. Interceptors are invoked just before a command gets passed on to the command stack. This allows the application to (for example) prompt the user for confirmation. NULL can be passed for the interceptor instance so that interceptors can be removed.
      Parameters:
        `cl` - the command type
        `interceptor` - the interceptor to use before actually executing the command
      Since:
        1.0
      See Also:
        `getCommandInterceptor(Class)`, `ICommandInterceptor.intercept(AbstractGanttChart, ICommand)`

    - #### getCommandInterceptor

          public ICommandInterceptor getCommandInterceptor(Class cl)

      Returns a command interceptor implementation for the given command type.
      Parameters:
        `cl` - the command type
      Returns:
        a command interceptor
      Since:
        1.0
      See Also:
        `setCommandInterceptor(Class, ICommandInterceptor)`, `ICommandInterceptor.intercept(AbstractGanttChart, ICommand)`

    - #### commandExecute

          public void commandExecute(ICommand cmd)

      Executes the given command via the command stack. Additionally a newly created progress monitor will be passed to the command stack. The command execution can be monitored by attaching listeners to the command stack.
      Parameters:
        `cmd` - the command to execute
      Since:
        1.0
      See Also:
        `ICommandStack`, `ICommandStackListener`, `IProgressMonitor`, `setProgressMonitorFactory(IProgressMonitorFactory)`

    - #### commandUndo

          public void commandUndo()

      Undoes the last command that was executed (if the command can be undone) by calling `ICommandStack.undo(IProgressMonitor)`. The monitor passed to the undo will be created by the Gantt chart's progress monitor factory.
      Since:
        1.0
      See Also:
        `ICommandStack.undo(IProgressMonitor)`, `ICommandStack.isUndoable()`, `IProgressMonitor`

    - #### commandRedo

          public void commandRedo()

      Redoes the last command that was executed (if the command can be redone) by calling `ICommandStack.redo(IProgressMonitor)`. The monitor passed to the redo will be created by the Gantt chart's progress monitor factory.
      Since:
        1.0
      See Also:
        `ICommandStack.redo(IProgressMonitor)`, `ICommandStack.isRedoable()`, `IProgressMonitor`

    - #### setColumnModel

          public void setColumnModel(IColumnModel model)

      Assigns a column model to the Gantt chart and attaches listeners to the model itself, to the model's key column and to each of the model's regular columns. A call to this method will cause a property change event to be fired. The event's name will be `PROPERTY_COLUMN_MODEL`.
      Parameters:
        `model` - the column model
      Since:
        1.0
      See Also:
        `getColumnModel()`, `DefaultColumnModel`, `getKeyColumn()`, `getColumn(int)`

    - #### getColumnModel

          public IColumnModel getColumnModel()

      Returns the Gantt chart's column model. A Gantt chart has only one column model because it also only has one column header, which gets shared by all tree tables.
      Returns:
        the column model
      Since:
        1.0
      See Also:
        `setColumnModel(IColumnModel)`, `getKeyColumn()`, `getColumn(int)`

    - #### getColumn

          public TreeTableColumn getColumn(int index)

      Returns the column at the given index. This is a convenience method, which delegates to the column model. Note: the key column can not be queried this way. Use `getKeyColumn()` instead.
      Parameters:
        `index` - the index of the column to return
      Returns:
        the column at the given index
      Since:
        1.0
      See Also:
        `getKeyColumn()`

    - #### getColumnCount

          public int getColumnCount()

      Returns the number of columns in the column model. This method delegates its call to `IColumnModel.getColumnCount()`.
      Returns:
        the column count
      Since:
        1.0
      See Also:
        `getColumn(int)`

    - #### columnModelChanged

          public void columnModelChanged(ColumnModelEvent e)

      Description copied from interface: `IColumnModelListener`
      The listener's callback method that will be invoked when columns get added, removed, inserted.
      Specified by:
        `columnModelChanged` in interface `IColumnModelListener`
      Parameters:
        `e` - the event description

    - #### getTreeTableHeader

          public TreeTableHeader getTreeTableHeader()

      Returns the tree table header component.
      Returns:
        the Gantt chart's tree table header
      Since:
        1.0
      See Also:
        `IComponentFactory.createTreeTableHeader(AbstractGanttChart)`

    - #### getTimeline

          public Timeline getTimeline()

      Returns the Timeline component, which consists of the Dateline and the Eventline.
      Returns:
        the Gantt chart's timeline
      Since:
        1.0
      See Also:
        `IComponentFactory.createTimeline(AbstractGanttChart)`

    - #### getDateline

          public Dateline getDateline()

      Returns the dateline component, which is responsible for rendering the time (days, minutes, seconds, ...).
      Returns:
        the Gantt chart's dateline
      Since:
        1.0
      See Also:
        `IComponentFactory.createDateline(Timeline)`

    - #### getDatelineModel

          public IDatelineModel getDatelineModel()

      Returns the dateline model. This is a convenience method and ultimately calls `Dateline.getModel()`.
      Returns:
        the dateline model
      Since:
        1.0

    - #### getEventline

          public Eventline getEventline()

      Returns the Eventline component, which is responsible for rendering events and activities that have a global character.
      Returns:
        Eventline the Gantt chart's eventline
      Since:
        1.0
      See Also:
        `IComponentFactory.createEventline(Timeline, Dateline)`

    - #### addMessage

          public void addMessage(IMessage msg)

      Adds a message for the user to the Gantt chart. Adding a message will trigger an event to be sent to all `IMessageListener` that are currently attached to the Gantt chart.
      Parameters:
        `msg` - the message that will be added
      Since:
        1.0
      See Also:
        `removeMessage(IMessage)`, `addMessageListener(IMessageListener)`, `Message`, `TreePathMessage`, `TimelineObjectPathMessage`

    - #### removeMessage

          public void removeMessage(IMessage msg)

      Removes a message from the Gantt chart. Removing a message will trigger an event to be sent to all `IMessageListener` that are currently attached to the Gantt chart.
      Parameters:
        `msg` - the message that will be added
      Since:
        1.0
      See Also:
        `addMessage(IMessage)`, `clearMessages()`, `addMessageListener(IMessageListener)`, `Message`, `TreePathMessage`, `TimelineObjectPathMessage`

    - #### clearMessages

          public void clearMessages()

      Removes all messages from the Gantt chart. Clearing the messages will trigger an event to be sent to all `IMessageListener` that are currently attached to the Gantt chart.
      Since:
        1.0
      See Also:
        `addMessage(IMessage)`, `removeMessage(IMessage)`, `addMessageListener(IMessageListener)`, `Message`, `TreePathMessage`, `TimelineObjectPathMessage`

    - #### getMessages

          public Collection<IMessage> getMessages()

      Returns a list of all messages that are currently attached to the Gantt chart.
      Returns:
        the list of messages that can be presented to the user
      Since:
        1.0
      See Also:
        `addMessage(IMessage)`, `addMessageListener(IMessageListener)`

    - #### addMessageListener

          public void addMessageListener(IMessageListener l)

      Adds a message listener to the Gantt chart. The listener will be informed whenever messages are being added to or removed from the Gantt chart.
      Parameters:
        `l` - the message listener
      Since:
        1.0

    - #### removeMessageListener

          public void removeMessageListener(IMessageListener l)

      Removes a message listener from the Gantt chart.
      Parameters:
        `l` - the message listener
      Since:
        1.0

    - #### fireMessageAdded

          protected void fireMessageAdded(IMessage msg)

      Iterates over all message listeners that are currently attached to the Gantt chart and calls the `messageAdded()` event method.
      Parameters:
        `msg` - the message that was added
      Since:
        1.0
      See Also:
        `addMessage(IMessage)`, `addMessageListener(IMessageListener)`

    - #### fireMessageRemoved

          protected void fireMessageRemoved(IMessage msg)

      Iterates over all message listeners that are currently attached to the Gantt chart and calls the `messageRemoved()` event method.
      Parameters:
        `msg` - the message that was removed
      Since:
        1.0
      See Also:
        `removeMessage(IMessage)`, `addMessageListener(IMessageListener)`

    - #### fireMessagesCleared

          protected void fireMessagesCleared()

      Iterates over all message listeners that are currently attached to the Gantt chart and calls the `messagesCleared()` event method.
      Since:
        1.0
      See Also:
        `clearMessages()`, `addMessageListener(IMessageListener)`

    - #### showMessages

          public void showMessages()

      Brings up a dialog, which displays the user messages that are currently attached to the Gantt chart. The user can then use the dialog to navigate to the sources of those events (example: a timeline object that violates scheduling constraints).
      Since:
        1.0
      See Also:
        `addMessage(IMessage)`, `MessageDialog`

    - #### paint

          public void paint(Graphics g)

      Overrides:
        `paint` in class `JComponent`

    - #### paintRowResizePosition

          protected void paintRowResizePosition(Graphics g)

      Renders the visual feedback when the user resizes a row. The default implementation will simply draw a thick black line acoss the entire Gantt chart.
      Parameters:
        `g` - the graphics context into which to draw
      Since:
        1.0

    - #### print

          public void print(boolean preview)

      Prints the Gantt chart.
      Parameters:
        `preview` - if TRUE a preview dialog will be shown first before printing
      Since:
        1.0
      See Also:
        `print(boolean, ITimeSpan)`

    - #### print

          public abstract void print(boolean preview,
                                     ITimeSpan span)

      Prints the Gantt chart.
      Parameters:
        `preview` - if TRUE a preview dialog will be shown first before printing
        `span` - the time span that needs to be printed
      Since:
        1.0

    - #### createPrintableGanttChart

          public PrintGanttChart createPrintableGanttChart(PrintContext context)

      Returns a printable Gantt Chart for the given print context. The print context defines the original tree table, layer container, dateline, and so on.
      Parameters:
        `context` - the print context for which to create an instance of `PrintGanttChart`
      Returns:
        a printable Gantt Chart
      Since:
        1.1

    - #### propertyChange

          public void propertyChange(PropertyChangeEvent evt)

      Specified by:
        `propertyChange` in interface `PropertyChangeListener`

    - #### showMessage

          public void showMessage(String msg)

      Shows a message in a dialog to the user.
      Parameters:
        `msg` - the message to show
      Since:
        1.0

    - #### showMessage

          public void showMessage(String msg,
                                  MessageTypeId id)

      Shows a message in a dialog to the user. The message can be an INFORMATION message, a WARNING message, or an ERROR message, depending on the given message type.
      Parameters:
        `msg` - the message to show to the user
        `id` - the message type (INFORMATION, WARNING, ERROR)
      Since:
        1.0

    - #### showMessage

          public void showMessage(String msg,
                                  MessageTypeId id,
                                  Object details)

      Shows a message in a dialog to the user. The message can be an INFORMATION message, a WARNING message, or an ERROR message, depending on the given message type. An additional object can provide additional information about the cause of the message.
      Parameters:
        `msg` - the message to show to the user
        `id` - the message type (INFORMATION, WARNING, ERROR)
        `details` - some additional information about the cause of the message (for example an `Exception`)
      Since:
        1.0

    - #### showMessageContext

          public void showMessageContext(IMessage msg)

      Shows the context of the given message. If the message type is equal to `TreePathMessage` then the tree path will be opened. If the message is a `TimelineObjectPathMessage` then the matching timeline object will be shown.
      Parameters:
        `msg` - the message for which to show the context
      Since:
        1.0

    - #### showAllObjects

          public void showAllObjects()

      Scrolls and zooms the `Dateline` in such a way that all timeline objects (stored on the currently visible rows) become visible.
      Since:
        1.0

    - #### showEarliestObjects

          public void showEarliestObjects()

      Scrolls the `Dateline` in such a way that the earliest timeline objects (stored on the currently visible rows) become visible.
      Since:
        1.0

    - #### showLatestObjects

          public void showLatestObjects()

      Scrolls the `Dateline` in such a way that the latest timeline objects (stored on the currently visible rows) become visible.
      Since:
        1.0

    - #### showTimeNow

          public void showTimeNow(boolean center)

      Requests that the time now will be shown by the Gantt chart.
      Parameters:
        `center` - if TRUE the time now will be shown in the center / middle of the layer container, otherwise it will be on the left edge of the layer container
      Since:
        1.0
      See Also:
        `showTime(long, boolean)`

    - #### showTime

          public void showTime(long time,
                               boolean center)

      Requests that the given time will be shown by the Gantt chart.
      Parameters:
        `time` - the time to make visible
        `center` - if TRUE the time now will be shown in the center / middle of the layer container, otherwise it will be on the left edge of the layer container
      Since:
        1.0
      See Also:
        `showTimeNow(boolean)`

    - #### getPrintContexts

          public abstract PrintContext[] getPrintContexts()

      Returns all print context supported by the Gantt chart. A standard Gantt chart will only return a single print context, a dual Gantt chart will return two contexts, ...
      Returns:
        all print contexts supported by the Gantt chart
      Since:
        1.0

    - #### getLayerContainerScrollPanes

          public abstract LayerContainerScrollPane[] getLayerContainerScrollPanes()

      Returns all layer container scrollpanes managed by the Gantt chart container.
      Returns:
        all layer container scrollpanes
      Since:
        1.0

    - #### getLayerContainers

          public abstract LayerContainer[] getLayerContainers()

      Returns all layer containers managed by the Gantt chart container.
      Returns:
        all layer containers
      Since:
        1.0

    - #### getTreeTableScrollPanes

          public abstract TreeTableScrollPane[] getTreeTableScrollPanes()

      Returns all tree table scrollpanes managed by the Gantt chart container.
      Returns:
        all tree table scrollpanes
      Since:
        1.0

    - #### getTreeTables

          public abstract TreeTable[] getTreeTables()

      Returns all tree tables managed by the Gantt chart container.
      Returns:
        all tree tables
      Since:
        1.0

    - #### getGridComponents

          public abstract IGridComponent[] getGridComponents()

      Returns all grid components managed by the Gantt chart container. Layer containers and eventlines implement the grid component interface and can be controlled via `GridControl` instances.
      Returns:
        all grid components
      Since:
        1.0

    - #### collapseAll

          public void collapseAll()

      Collapses all tree nodes in all tree tables.
      Since:
        1.0

    - #### expandAll

          public void expandAll()

      Expands all tree nodes in all tree tables.
      Since:
        1.0

    - #### alignStartTimes

          public void alignStartTimes()

      Adjusts the start times of all currently selected and visible timeline objects so that they are all the same.
      Since:
        1.0
      See Also:
        `alignEndTimes()`

    - #### alignEndTimes

          public void alignEndTimes()

      Adjusts the end times of all currently selected and visible timeline objects so that they are all the same.
      Since:
        1.0
      See Also:
        `alignStartTimes()`

    - #### addSortingListener

          public void addSortingListener(ISortingListener l)

      Adds a tree table sorting listener to the table. The listener will be informed when the sorting inside the table changes.
      Parameters:
        `l` - the tree table sorting listener
      Since:
        1.0
      See Also:
        `removeSortingListener(ISortingListener)`

    - #### removeSortingListener

          public void removeSortingListener(ISortingListener l)

      Removes a tree table sorting listener from the table.
      Parameters:
        `l` - the listener to remove
      Since:
        1.0
      See Also:
        `addSortingListener(ISortingListener)`

    - #### fireSortingEvent

          protected void fireSortingEvent(SortingEvent evt)

      Fires a sorting event when the user performed a sort on the Gantt chart.
      Parameters:
        `evt` - the event that will be issued
      Since:
        1.0
      See Also:
        `SortingEvent`

    - #### sortTables

          public void sortTables(int[] modelIndices,
                                 boolean[] sortDirections)

      Invokes multi-column sorting on the tree tables in the Gantt chart. Each column can be sorted in ascending or descending order. The lengths of the two parameters arrays need to be equal. A call to this method will cause instances of `SortingEvent` to be sent to all observers, which implement the `ISortingListener` interface.
      Parameters:
        `modelIndices` - the model indices that are used to determine which column values to compare for sorting (use `KeyColumn.MODEL_INDEX` to specify a sort based on the key column
        `sortDirections` - if TRUE the sort direction will be ascending
      Since:
        1.0

    - #### resetToPreferredSizes

          public abstract void resetToPreferredSizes()

      Causes the Gantt chart to lay out its left- and right-hand side in such a way that the tree table on the left becomes fully visible.
      Since:
        1.0

    - #### setProgressMonitorFactory

          public void setProgressMonitorFactory(IProgressMonitorFactory factory)

      Sets a new factory for progress monitors on the Gantt chart.
      Parameters:
        `factory` - the new progress monitor factory
      Since:
        1.0

    - #### getProgressMonitorFactory

          public IProgressMonitorFactory getProgressMonitorFactory()

      Returns the progress monitor factory used by the Gantt chart to create new instances of `IProgressMonitor`.
      Returns:
        the Gantt chart's progress monitor factory
      Since:
        1.0

    - #### getComponentFactory

          public IComponentFactory getComponentFactory()

      Returns the component factory used by the Gantt chart to create components such as `Timeline`, `TreeTableHeader`, `TreeTable`, `LayerContainer`, `TreeTableRowHeader`.
      Returns:
        the Gantt chart's component factory
      Since:
        1.0

    - #### getCalendarModel

          public ICalendarModel getCalendarModel()

      Returns the calendar model associated with the Gantt chart.
      Returns:
        the Gantt chart's calendar model
      Since:
        1.0
      See Also:
        `TimeGranularityCalendarModel`

    - #### setCalendarModel

          public void setCalendarModel(ICalendarModel model)

      Sets the Gantt chart's calendarModel.
      Parameters:
        `model` - the new calendar model
      Since:
        1.0
      See Also:
        `TimeGranularityCalendarModel`

    - #### getPolicyProvider

          public IPolicyProvider getPolicyProvider()

      Returns the policy provider used by the Gantt chart to lookup policy implementations.
      Returns:
        the Gantt chart's policy provider
      Since:
        1.0
      See Also:
        `setPolicyProvider(IPolicyProvider)`

    - #### setPolicyProvider

          public void setPolicyProvider(IPolicyProvider provider)

      Sets the policy provider used by the Gantt chart to lookup policy implementations.
      Parameters:
        `provider` - the Gantt chart's policy provider
      Since:
        1.0

    - #### getTreeTableRowHeaderWidth

          public int getTreeTableRowHeaderWidth()

      Returns the width used to calculate the preferred size of all tree table row headers currently in use by the Gantt chart. Usually a component's preferred size is stored on the component itself, but in a Gantt chart we have dependencies between multiple row headers and their width needs to stay in sync.
      Returns:
        the preferred width of all row headers in the Gantt chart
      Since:
        1.1

    - #### setTreeTableRowHeaderWidth

          public void setTreeTableRowHeaderWidth(int width)

      Sets the width used to calculate the preferred size of all tree table row headers currently in use by the Gantt chart. Usually a component's preferred size is stored on the component itself, but in a Gantt chart we have dependencies between multiple row headers and their width needs to stay in sync. Calling this method will trigger a property change event where the property name is equal to `PROPERTY_TREE_TABLE_ROW_HEADER_WIDTH`.
      Parameters:
        `width` - the width used for calculating the row headers preferred size
      Since:
        1.1

    - #### getLayerContainerRowHeaderWidth

          public int getLayerContainerRowHeaderWidth()

      Returns the width used to calculate the preferred size of all layer container row headers currently in use by the Gantt chart. Usually a component's preferred size is stored on the component itself, but in a Gantt chart we have dependencies between multiple row headers and their width needs to stay in sync.
      Returns:
        the preferred width of all layer container row headers in the Gantt chart
      Since:
        1.1
      See Also:
        `getTreeTableRowHeaderWidth()`

    - #### setLayerContainerRowHeaderWidth

          public void setLayerContainerRowHeaderWidth(int width)

      Sets the width used to calculate the preferred size of all layer container row headers currently in use by the Gantt chart. Usually a component's preferred size is stored on the component itself, but in a Gantt chart we have dependencies between multiple row headers and their width needs to stay in sync. Calling this method will trigger a property change event where the property name is equal to `PROPERTY_LAYER_CONTAINER_ROW_HEADER_WIDTH`.
      Parameters:
        `width` - the width used for calculating the preferred size of all layer container row headers
      Since:
        1.1
      See Also:
        `setTreeTableRowHeaderWidth(int)`

    - #### setGridLineMode

          public void setGridLineMode(GridLineMode mode)

      Sets a new grid mode to be used for rendering the vertical lines inside the layer containers. Setting a new grid mode will trigger a property change event with the name/id set to `PROPERTY_GRID_LINE_MODE`.
      Parameters:
        `mode` - the grid mode
      Since:
        1.0

    - #### getGridLineMode

          public GridLineMode getGridLineMode()

      Returns the grid mode used by the Gantt chart. Depending on the grid mode the layer containers will draw more or less vertical lines.
      Returns:
        the active grid mode
      Since:
        1.0
      See Also:
        `setGridLineMode(GridLineMode)`

    - #### setControlsBackground

          public void setControlsBackground(Color color)

      Changes the color used for the background of those controls that 'surround' the actual Gantt chart content (column header, row header, dateline). Setting a new color will trigger a property change event with the name/id set to the constant `PROPERTY_CONTROLS_BG_COLOR`.
      Parameters:
        `color` - the controls color
      Since:
        1.0
      See Also:
        `getControlsBackground()`

    - #### getControlsBackground

          public Color getControlsBackground()

      Returns the color used to paint the background of those controls that 'surround' the actual Gantt chart content (column header, row header, dateline).
      Returns:
        Color the color used for drawing the background of various controls such as the column header, the row header, the dateline
      Since:
        1.0
      See Also:
        `setControlsBackground(Color)`

    - #### setControlsForeground

          public void setControlsForeground(Color color)

      Changes the color used for the foreground of those controls that 'surround' the actual Gantt chart content (column header, row header, dateline). Setting a new color will trigger a property change event with the name/id set to the constant `PROPERTY_CONTROLS_FG_COLOR`.
      Parameters:
        `color` - the controls color
      Since:
        1.0
      See Also:
        `getControlsBackground()`

    - #### getControlsForeground

          public Color getControlsForeground()

      Returns the color used to paint the foreground of those controls that 'surround' the actual Gantt chart content (column header, row header, dateline).
      Returns:
        Color the color used for drawing the foreground of various controls such as the column header, the row header, the dateline
      Since:
        1.0
      See Also:
        `setControlsForeground(Color)`

    - #### isCalendarVisible

          public boolean isCalendarVisible()

      Returns TRUE if the layer that is responsible for displaying calendar information is currently visible.
      Returns:
        TRUE if the calendar information is visible
      Since:
        1.0
      See Also:
        `setCalendarVisible(boolean)`, `CalendarLayer`

    - #### setCalendarVisible

          public void setCalendarVisible(boolean visible)

      Specifies whether the layer that is showing the calendar information will be visible or not. Changing the visibility will trigger a property change event with its name equal to `PROPERTY_CALENDAR_VISIBLE`.
      Parameters:
        `visible` - if TRUE the layer will become visible
      Since:
        1.0
      See Also:
        `CalendarLayer`, `isCalendarVisible()`

    - #### getKeyColumnPosition

          public int getKeyColumnPosition()

      Returns the key column position, which specifies how many regular columns will be placed to the left of the key column. The value of the position is always larger than or equal to 0. It can be larger than the total number of columns. In this case the key column will simply be placed last. This approach is implemented in the `ColumnModelIterator`.
      Returns:
        the position of the key columnb
      Since:
        1.0

    - #### isCrosshairVisible

          public boolean isCrosshairVisible()

      Returns TRUE if the layer that is responsible for displaying the crosshair is currently visible.
      Returns:
        TRUE if the crosshair (layer) is visible
      Since:
        1.0
      See Also:
        `setCrosshairVisible(boolean)`, `CrosshairLayer`

    - #### isLabelsVisible

          public boolean isLabelsVisible()

      Returns TRUE if the layer that is responsible for displaying object labels is currently visible.
      Returns:
        TRUE if the labels (layer) is visible
      Since:
        1.0
      See Also:
        `setLabelsVisible(boolean)`, `LabelLayer`

    - #### isPopupVisible

          public boolean isPopupVisible()

      Returns TRUE if the layer that is responsible for displaying the popup is currently visible.
      Returns:
        TRUE if the popup (layer) is visible
      Since:
        1.0
      See Also:
        `setPopupVisible(boolean)`, `PopupLayer`

    - #### isRelationsVisible

          public boolean isRelationsVisible()

      Returns TRUE if the layer that is responsible for displaying object relationships (lines with arrows between timeline objects) is currently visible.
      Returns:
        TRUE if the relationships (layer) is visible
      Since:
        1.0
      See Also:
        `setRelationsVisible(boolean)`, `RelationshipLayer`

    - #### isRowLayerVisible

          public boolean isRowLayerVisible()

      Returns TRUE if the layer that is responsible for displaying the row renderers is currently visible.
      Returns:
        TRUE if the row layer is visible
      Since:
        1.0
      See Also:
        `setRowLayerVisible(boolean)`, `RowLayer`

    - #### isTimeNowVisible

          public boolean isTimeNowVisible()

      Returns TRUE if the vertical line that indicates time now is currently visible.
      Returns:
        TRUE if the time now line is visible
      Since:
        1.0
      See Also:
        `setTimeNowVisible(boolean)`

    - #### isVerticalLinesOnTop

          public boolean isVerticalLinesOnTop()

      Returns TRUE if the vertical lines (the major and/or minor grid) will be drawn on top of the timeline objects (the default is below).
      Returns:
        TRUE if the vertical lines are drawn on top of timeline objects
      Since:
        1.0
      See Also:
        `setVerticalLinesOnTop(boolean)`

    - #### setCrosshairVisible

          public void setCrosshairVisible(boolean visible)

      Specifies whether the layer that is showing the crosshair will be visible or not. Changing the visibility will trigger a property change event with the name/id set to the constant `PROPERTY_CROSSHAIR_VISIBLE`.
      Parameters:
        `visible` - if TRUE the layer will become visible
      Since:
        1.0
      See Also:
        `CrosshairLayer`, `isCrosshairVisible()`

    - #### setKeyColumnPosition

          public void setKeyColumnPosition(int position)

      Specifies at which position the key column will be placed inside the tree table. The default value is 0. A value of N indicates that N columns of the column model will be placed to the left of the key column. The value of the position must be larger than or equal to 0. The position can be larger than the total number of columns returned by the column model. In this case the key column will simply be placed last. This approach is implemented in the `ColumnModelIterator`. Calling this method will trigger a property change event where the property name equals `PROPERTY_KEY_COLUMN_POSITION`.b
      Parameters:
        `position` - the new position for the key column (must be larger than 0).
      Since:
        1.0

    - #### setLabelsVisible

          public void setLabelsVisible(boolean visible)

      Specifies whether the layer that is showing the timeline object labels will be visible or not. Changing the visibility will trigger a property change event with its name equal to `PROPERTY_LABELS_VISIBLE`.
      Parameters:
        `visible` - if TRUE the layer will become visible
      Since:
        1.0
      See Also:
        `LabelLayer`, `isLabelsVisible()`

    - #### setPopupVisible

          public void setPopupVisible(boolean visible)

      Specifies whether the layer that is showing the popups will be visible or not. Changing the visibility will trigger a property change event with the name/id set to the constant `PROPERTY_POPUP_VISIBLE`.
      Parameters:
        `visible` - if TRUE the layer will become visible
      Since:
        1.0
      See Also:
        `PopupLayer`, `isPopupVisible()`

    - #### setRelationsVisible

          public void setRelationsVisible(boolean visible)

      Specifies whether the layer that is showing the relationships between timeline objects will be visible or not. Changing the visibility will trigger a property change event with the name/id set to the constant `PROPERTY_RELATIONS_VISIBLE`.
      Parameters:
        `visible` - if TRUE the layer will become visible
      Since:
        1.0
      See Also:
        `RelationshipLayer`, `isRelationsVisible()`

    - #### setRowLayerVisible

          public void setRowLayerVisible(boolean visible)

      Specifies whether the layer that is showing the rows will be visible or not. Changing the visibility will trigger a property change event with the name/id set to the constant `PROPERTY_ROW_LAYER_VISIBLE`.
      Parameters:
        `visible` - if TRUE the layer will become visible
      Since:
        1.0
      See Also:
        `RowLayer`, `isRowLayerVisible()`

    - #### setTimeNowVisible

          public void setTimeNowVisible(boolean visible)

      If set to 'true' then a line will be drawn from the top of the panel to the bottom indicating where the time 'now' is.
      Parameters:
        `visible` - if TRUE the 'time now' cursor (line) will be visible
      See Also:
        `isTimeNowVisible()`, `TimeNowLayer`

    - #### setVerticalLinesOnTop

          public void setVerticalLinesOnTop(boolean top)

      Determines whether or not the limit lines are drawn above the diagram entries or below them. Applications with many entries per diagram might require the limits to be drawn above the entries because otherwise they may not be visible at all. The default is to draw the limits below the entries.
      Parameters:
        `top` - if TRUE the vertical (minor, major) grid lines will be drawn on top of the timeline objects
      Since:
        1.0
      See Also:
        `isVerticalLinesOnTop()`

    - #### isTimeNowScrolling

          public boolean isTimeNowScrolling()

      Determines whether automatic time now scrolling is turned on or off.
      Returns:
        TRUE if time now scrolling is turned on
      Since:
        1.0
      See Also:
        `setTimeNowScrolling(boolean)`

    - #### setTimeNowScrolling

          public void setTimeNowScrolling(boolean scrolling)

      Enables / disables automatic time now scrolling, which ensures that layer containers will scroll by themselves so that the time now location is always visible. The horizontal scrollbar used for scrolling the layer container will be disabled as long as time now scrolling is turned on.
      Parameters:
        `scrolling` - if TRUE the time now will always remain visible
      Since:
        1.0

    - #### getPagingModel

          public IPagingModel getPagingModel()

      Returns the (optional) paging model. A paging control will be added to the Gantt chart if a paging model is specified.
      Returns:
        the (optional) paging model
      Since:
        1.0
      See Also:
        `PagingControlPanel`

    - #### setPagingModel

          public void setPagingModel(IPagingModel model)

      Sets the (optional) paging model. A paging control will be added to the Gantt chart if a paging model is specified.
      Parameters:
        `model` - the paging model
      Since:
        1.0
      See Also:
        `PagingControlPanel`

    - #### pageWillChange

          public void pageWillChange(PagingEvent evt)

      Description copied from interface: `IPagingModelListener`
      Listener callback method that will be invoked before the page model gets changed. Listeners are free to observe the change and to throw a veto exception if they can not permit the change to the model to continue.
      Specified by:
        `pageWillChange` in interface `IPagingModelListener`
      Parameters:
        `evt` - an event object that informs the listeners about the change that is about to happen

    - #### pageChanged

          public void pageChanged(PagingEvent evt)

      Description copied from interface: `IPagingModelListener`
      Listener callback method that will be invoked after the page model was changed.
      Specified by:
        `pageChanged` in interface `IPagingModelListener`
      Parameters:
        `evt` - an event object that informs the listeners about the change that has happened

    - #### setAvailableColumns

          public void setAvailableColumns(Collection<TreeTableColumn<?>> columns)

      Sets serveral columns as "available" columns, which means that these columns will not be initially shown by the tree table. However, the user can choose to add them to the column model of the table, hence making them visible.
      Parameters:
        `columns` - the columns to set as the "available" columns
      Since:
        1.1

    - #### addAvailableColumn

          public void addAvailableColumn(TreeTableColumn column)

      Adds a column to the Gantt chart that can be added to the column model interactively by the user.
      Parameters:
        `column` - the column that will be added to the list of available columns
      Since:
        1.0
      See Also:
        `ColumnChooser`, `ColumnChooserSelector`

    - #### removeAvailableColumn

          public void removeAvailableColumn(TreeTableColumn column)

      Removes a column from the list of available columns. The user will no longer be able to add this column to the column model.
      Parameters:
        `column` - the column that will be removed
      Since:
        1.0

    - #### getAvailableColumns

          public List<TreeTableColumn> getAvailableColumns()

      Returns the list of available columns. Any column listed in this data structure can be added to the column model by the user.
      Returns:
        the list of available table columns
      Since:
        1.0
      See Also:
        `ColumnChooser`, `ColumnChooserSelector`

    - #### getKeyColumn

          public KeyColumn getKeyColumn()

      Returns the key column used by the Gantt chart. This method will first try to retrieve the key column from the column model. If the model does not have a key column then the list of available columns will be searched for one. If no column can be found then an illegal argument exception will be thrown.
      Returns:
        the Gantt chart's key column
      Since:
        1.0

    - #### getRowResizePosition

          public int getRowResizePosition()

      Gets the position where the row resizing takes place. This position is used to draw a horizontal line indicating where the resized row will end.
      Returns:
        the position where the row resize operation takes place
      Since:
        1.0

    - #### setRowResizePosition

          public void setRowResizePosition(int position)

      Sets the new position where the row resize operation takes place. This is the position where the resized row will end once the user finishes the resizing operation. A glass pane can pick up this location and draw a horizontal line at its place.
      Parameters:
        `position` - the new position where the row resize operation takes place
      Since:
        1.0

    - #### addToolBarAction

          public void addToolBarAction(Action action)

      Adds an action to the Gantt chart, which will automatically be picked up and shown by the toolbar. The actions will only be shown if added before the toolbar gets created or (when using a multi Gantt chart container) when the user switches between Gantt charts.
      Parameters:
        `action` - the action to add
      Since:
        1.0
      See Also:
        `GanttChartToolBar`, `removeToolBarAction(Action)`, `clearToolBarActions()`, `getToolBarActions()`

    - #### removeToolBarAction

          public void removeToolBarAction(Action action)

      Removes a toolbar action from the Gantt chart.
      Parameters:
        `action` - the action to add
      Since:
        1.0
      See Also:
        `GanttChartToolBar`, `addToolBarAction(Action)`, `clearToolBarActions()`, `getToolBarActions()`

    - #### clearToolBarActions

          public void clearToolBarActions()

      Removes all toolbar actions from the Gantt chart.
      Since:
        1.0
      See Also:
        `GanttChartToolBar`, `addToolBarAction(Action)`, `removeToolBarAction(Action)`, `getToolBarActions()`

    - #### getToolBarActions

          public Action[] getToolBarActions()

      Returns all toolbar actions currently associated with the Gantt chart. The actions will only be shown if added before the toolbar gets created or (when using a multi Gantt chart container) when the user switches between Gantt charts.
      Returns:
        the actions defined for use in the toolbar
      Since:
        1.0
      See Also:
        `GanttChartToolBar`, `addToolBarAction(Action)`, `removeToolBarAction(Action)`, `clearToolBarActions()`

    - #### keyTyped

          public void keyTyped(KeyEvent e)

      Specified by:
        `keyTyped` in interface `KeyListener`

    - #### keyReleased

          public void keyReleased(KeyEvent e)

      Specified by:
        `keyReleased` in interface `KeyListener`

    - #### keyPressed

          public void keyPressed(KeyEvent e)

      Specified by:
        `keyPressed` in interface `KeyListener`

    - #### tearDown

          public void tearDown()

      Tears down the Gantt chart by calling `Eventline.tearDown()` and `LayerContainer.tearDown()` on all layer containers used within the Gantt chart (e.g. the `DualGanttChart` will call `tearDown()` on two layer containers. The layer container will then tear down all layers
      Since:
        1.1
      See Also:
        `Eventline.tearDown()`, `LayerContainer.tearDown()`, `AbstractLayer.tearDown()`

    - #### getSelectorFactory

          public ISelectorFactory getSelectorFactory()

      Returns the selector factory used by the Gantt chart for creating selectors in various places. Subclasses are free to override this method at their desire. The default implementation returns a `TimeGranularitySelectorFactory` singleton instance.
      Returns:
        the Gantt chart's selector factory
      Since:
        1.1
      See Also:
        `TimeGranularitySelectorFactory.getInstance()`

    - #### optimizeColumnWidth

          public void optimizeColumnWidth()

      Optimizes the column width of all columns without taking the cell editors into account. The width of the column will be the maximum width of the preferred widths of all cells in each column.
      Since:
        1.1
      See Also:
        `optimizeColumnWidth(boolean)`

    - #### optimizeColumnWidth

          public void optimizeColumnWidth(boolean includeEditors)

      Optimizes the column width of all columns with or without taking the cell editors into account. The width of the column will be the maximum width of the preferred widths of all cells in each column.
      Parameters:
        `includeEditors` - if TRUE the algorithm will take the preferred width of the cell editor for each cell into account
      Since:
        1.1

    - #### optimizeColumnWidth

          public void optimizeColumnWidth(int index)

      Optimizes the column width of all columns without taking the cell editors into account. The width of the column will be the maximum width of the preferred widths of all cells in each column.
      Parameters:
        `index` - the width of the column with the given index will be optimized
      Since:
        1.1
      See Also:
        `optimizeColumnWidth(TreeTableColumn, boolean)`

    - #### optimizeColumnWidth

          public void optimizeColumnWidth(int index,
                                          boolean includeEditors)

      Optimizes the column width of all columns with or without taking the cell editors into account. The width of the column will be the maximum width of the preferred widths of all cells in each column.
      Parameters:
        `includeEditors` - if TRUE the algorithm will take the preferred width of the cell editor for each cell into account
        `index` - the width of the column with the given index will be optimized
      Since:
        1.1

    - #### optimizeColumnWidth

          public void optimizeColumnWidth(TreeTableColumn column)

      Optimizes the column width of the given column without taking the cell editors into account. The width of the column will be the maximum width of the preferred widths of all cells in each column.
      Parameters:
        `column` - the column to optimize
      Since:
        1.1

    - #### optimizeColumnWidth

          public void optimizeColumnWidth(TreeTableColumn column,
                                          boolean includeEditors)

      Optimizes the column width of the given column with or without taking the cell editors into account. The width of the column will be the maximum width of the preferred widths of all cells in each column.
      Parameters:
        `includeEditors` - if TRUE the algorithm will take the preferred width of the cell editor for each cell into account
        `column` - the column to optimize
      Since:
        1.1

    - #### setEnabled

          public void setEnabled(boolean enabled)

      Overrides the default implementation to automatically also enable or disable the dateline, the eventline, the timeline, the tree table header, the tree tables, the layer containers. Scrolling is still possible and also adjusting the split panel.
      Overrides:
        `setEnabled` in class `JComponent`
      Since:
        1.1

    - #### setShowingCommandExceptions

          public void setShowingCommandExceptions(boolean show)

      Controls whether the stacktrace of an exception thrown by a command will be displayed in the console.
      Parameters:
        `show` - if TRUE the exception will be shown
      Since:
        2.0

    - #### isShowingCommandExceptions

          public boolean isShowingCommandExceptions()

      Returns TRUE if the exceptions thrown during the execution of a command will be shown in the console.
      Returns:
        a flag indicating whether exceptions will be shown or not (default is TRUE)
      Since:
        2.0

    - #### commandStackChanged

          public void commandStackChanged(CommandStackEvent e)

      Description copied from interface: `ICommandStackListener`
      Gets called whenever the command stack changed. The event object that is passed to this method contains information about the type of event and a reference to the command that caused the event.
      Specified by:
        `commandStackChanged` in interface `ICommandStackListener`
      Parameters:
        `e` - the event issued by the command stack

    - #### setPrintSetup

          public void setPrintSetup(PrintSetup ps)

      Specifies a new print setup object, which is used to configure the decorative elements of a printout (header and footer).
      Parameters:
        `ps` - the new print setup to use
      Since:
        2.1

    - #### getPrintSetup

          public PrintSetup getPrintSetup()

      Returns the print setup object, which is used to configure the decorative elements of a printout (header and footer).
      Returns:
        the print setup to use
      Since:
        2.1

    - #### setActiveSpreadsheet

          public void setActiveSpreadsheet(ISpreadsheet activeSpreadsheet)

      Sets the currently active spreadsheet, which will be used by the `SpreadsheetLayer` to visualize spreadsheet-style information.
      Parameters:
        `activeSpreadsheet` - the currently active spreadsheet
      Since:
        2.1

    - #### getActiveSpreadsheet

          public ISpreadsheet getActiveSpreadsheet()

      Returns the currently active spreadsheet (see `SpreadsheetLayer`.
      Returns:
        the currently active spreadsheet
      Since:
        2.1

Copyright © 2006–2020 Dirk Lemmermann Software & Consulting. All rights reserved.