# Release Notes - FlexGantt - Version 8.0

- Code cleanup / new project structure. - Compatibility with Java 8 - New deployment vehicle: ZIP instead of install4j installer

# Release Notes - FlexGantt - Version 2.1

## New Features

    - Added spreadsheet feature (see: ISpreadsheet, SpreadsheetLayer, etc...)

    - Enhanced the printing routine. Print outs can now be decorated with a title, a logo,
    and three different footer texts (left, center, right). Printing also supports several variables
    for adding page numbers, page count, the date, the username. Please take a look at the PrintSetup
    class for more information.

    - Added a new system layer called ActionLayer, which is used to display a timeline object-specific
    toolbar with action buttons. Please take a look at the IActionProvider, DefaultActionProvider,
    and ActionLayer classes.

    - Brought back the "old" cursors for dragging and resizing timeline objects. They are disabled
    by default but can be activated via DragLayer.setShowingDefaultCursors(false).

    - Made the number of clicks needed to trigger a zoom operation inside the dateline configurable.
    Dateline.setZoomClicks(int);

    - Added packages for scheduling logic support. Introduced a constraint concept, which can cause
    violations. Violations can be automatically resolved.

    - Extended IRelationship with method setType(RelationshipType t);

    - LassoLayer can now be completely disabled by calling setVisible(false);

    - Added a method to time granularities to return the standard duration of one unit of the granularity.
    See: IGranularity.getStandardDuration();

    - Made ITimeSpan serializable

    - Added a MultiGanttChartSynchController class to synchronize scrolling in several Gantt charts at the
    same time.

## Bug Fixes

    - Fixed a bug that threw an exception when the user used the mouse wheel over an empty gantt chart.
    - Fixed a bug that painted the alternating background / row color in the wrong row when the gantt chart was empty.
    - Fixed printing for Java 7

# Release Notes - FlexGantt - Version 2.0

    - Disabled the focus background color change in various places of the UI
    - Zooming into a timespan now requires a double click on a cell grid in the timeline (used to be single click)
    - Fixed flickering in the row header components.
    - Removed the drag cursors for "moving", "linking", "change start/end time". Now
      using the default Java cursors.
    - The "percentage complete" value of activity timeline objects can now be edited
      without pressing the SHIFT key. The "change start time" option on the left-hand
      side of the object has been disabled. However, this behaviour can still be configured
      via the help of the IEditModeController class.
    - Introduced support for different relationship types (E-S, S-E, S-S, E-E). Added
      enumerator RelationshipType.
    - Introduced a PathCalculator object used to calculate paths based on the
      relationship type.
    - Added a new system layer called "LinkLayer" used to nicely visualize the creation
      process of creating relationships between timeline objects. Linking used to
      be supported by the DragLayer.
    - Contains the INodeFilter support introduced in 1.1.4 BETA
    - Relationships are now "objects"
       - They can be selected
       - They show focus
       - Added several methods to IRelationship / DefaultRelationship
       - Changed the IRelationshipRenderer interface (now returns bounds of relationship)
       - Changed the ILayerContainerMenuProvider interface (now passes relationships at popup trigger location)
       - Changed the RelationshipLayer: added method getRelationshipsAt(int x, int y)
       - Changed the IRelationshipPolicy to support deletion of relationships
       - Added new commands: DefaultDelete(Multiple)RelationshipsCommand
    - Added labels to IRelationship
       - Timeline objects and relationships can have the same set of labels (tooltip, statusbar, name, ...),
         hence refactored the set/getLabel() methods of timeline object and moved it into a separate class
         called LabelTypeSupport.
    - Added more icon maps: Gif16EclipseIconMap, Png16XPIconMap, Png24XPIconMap, Png16VistaIconMap, Png24IconMap
    - Introduced IRenderer interface for all renderers in FlexGantt
    - Extended the component factory
    - Changed the look of the layer container row header
    - Removed the indentation policy and the indentation commands (using the node
      edit policy and the reassign nodes command instead).
      see: INodeEditPolicy.isReassignable()
           INodeEditPolicy.getReassingNodesCommand()
           ITreeTableNode.isReassignable()
           DefaultReassignNodesCommand
    - Added isEmpty() method to ITimelineObjectLayerSelectionModel
    - Contains support for more Mac-style Gantt charts
      see package com.dlsc.flexgantt.swing.mac
    - Expanding and collapsing nodes is now animated if the user triggered the expand/collapse.
      see: TreeTable.expandNodeAnimated()
           TreeTable.collapseNodeAnimated()
           TreeTable.setNodeAnimationSettings()
    - Renamed ITimelineObjectLayerSelectionModel to ITimelineObjectSelectionModel. The "layer" fragment was
      not really necessary. As a result also renamed other related classes and methods.
    - Added a Macintosh support package: com.dlsc.flexgantt.swing.mac containing a couple of classes useful
      for creating a more Mac-like user experience.
    - TreeTableColumn now supports column-specific renderers