com.dlsc.flexgantt.swing
Class DefaultComponentFactory

java.lang.Object
  extended by com.dlsc.flexgantt.swing.DefaultComponentFactory
All Implemented Interfaces:
IComponentFactory
Direct Known Subclasses:
SimpleComponentFactory

public class DefaultComponentFactory
extends java.lang.Object
implements IComponentFactory

The default component factory used by the Gantt charts. The factory implements (as it is common) the singleton pattern. Instances can be retrieved via the getInstance() method.

Since:
1.0
Author:
Dirk Lemmermann

Constructor Summary
protected DefaultComponentFactory()
          Constructs a component factory (protected due to singleton pattern).
 
Method Summary
 Dateline createDateline(Timeline timeline)
          Creates a new Dateline for the given Gantt chart and timeline.
 Eventline createEventline(Timeline timeline, Dateline dateline)
          Creates a new Eventline for the given Gantt chart and timeline.
 LayerContainer createLayerContainer(AbstractGanttChart gc, TreeTable table, IGanttChartModel model)
          Creates a LayerContainer for the given Gantt chart and tree table combination.
 javax.swing.JComponent createLayerContainerCorner(LayerContainer lc, java.lang.String corner)
          Creates a new component that will be placed in the specified corner of the layer container scrollpane.
 LayerContainerRowHeader createLayerContainerRowHeader(LayerContainer lc)
          Creates a new LayerContainerRowHeader that will be used for the given layer container.
 Timeline createTimeline(AbstractGanttChart gc)
          Creates a new Timeline for the given Gantt chart.
 TreeTable createTreeTable(AbstractGanttChart gc, ITreeTableModel model)
          Creates a TreeTable for the given Gantt chart.
 javax.swing.JComponent createTreeTableCorner(TreeTable table, java.lang.String corner)
          Creates a component that will be placed in the upper left corner of the scrollpane that contains the tree table.
 TreeTableHeader createTreeTableHeader(AbstractGanttChart gc)
          Creates a TreeTableHeader for the given Gantt chart.
 TreeTableRowHeader createTreeTableRowHeader(TreeTable table)
          Creates a new TreeTableRowHeader that will be used for the given tree table.
static IComponentFactory getInstance()
          Returns the singleton instance of the component factory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultComponentFactory

protected DefaultComponentFactory()
Constructs a component factory (protected due to singleton pattern).

Since:
1.0
Method Detail

getInstance

public static IComponentFactory getInstance()
Returns the singleton instance of the component factory.

Returns:
an instance of the component factory
Since:
1.0

createTimeline

public Timeline createTimeline(AbstractGanttChart gc)
Description copied from interface: IComponentFactory
Creates a new Timeline for the given Gantt chart. The timeline will forward the given time span and time zone to the dateline that it will also create via the same component factory.

Specified by:
createTimeline in interface IComponentFactory
Parameters:
gc - the owner Gantt chart
Returns:
a timeline that covers the given time span and time zone
See Also:
IComponentFactory.createDateline(Timeline), IComponentFactory.createEventline(Timeline, Dateline)

createDateline

public Dateline createDateline(Timeline timeline)
Description copied from interface: IComponentFactory
Creates a new Dateline for the given Gantt chart and timeline. The dateline will show times / dates for the given time zone and it will allow the user to scroll across the given time span.

Specified by:
createDateline in interface IComponentFactory
Parameters:
timeline - the parent timeline
Returns:
a dateline that covers the given time span and time zone
See Also:
IComponentFactory.createTimeline(AbstractGanttChart), IComponentFactory.createEventline(Timeline, Dateline)

createEventline

public Eventline createEventline(Timeline timeline,
                                 Dateline dateline)
Description copied from interface: IComponentFactory
Creates a new Eventline for the given Gantt chart and timeline. The eventline will show global events and activities.

Specified by:
createEventline in interface IComponentFactory
Parameters:
timeline - the parent timeline
dateline - the dateline that is used in the same timeline
Returns:
an eventline for displaying global events and activities
See Also:
IComponentFactory.createDateline(Timeline), IComponentFactory.createTimeline(AbstractGanttChart)

createTreeTable

public TreeTable createTreeTable(AbstractGanttChart gc,
                                 ITreeTableModel model)
Description copied from interface: IComponentFactory
Creates a TreeTable for the given Gantt chart. The table can use the given model to populate itself with date.

Specified by:
createTreeTable in interface IComponentFactory
Parameters:
gc - the owner Gantt chart / parent container of the table
model - the date source for the table
Returns:
a tree table that visualizes the given data source

createTreeTableHeader

public TreeTableHeader createTreeTableHeader(AbstractGanttChart gc)
Description copied from interface: IComponentFactory
Creates a TreeTableHeader for the given Gantt chart. A Gantt chart only uses a single column header even if it displays more than one table at a time.

Specified by:
createTreeTableHeader in interface IComponentFactory
Parameters:
gc - the owner Gantt chart of the header
Returns:
a column header for the left-hand side of the Gantt chart (the table side)
See Also:
AbstractGanttChart.getTreeTableHeader()

createTreeTableRowHeader

public TreeTableRowHeader createTreeTableRowHeader(TreeTable table)
Description copied from interface: IComponentFactory
Creates a new TreeTableRowHeader that will be used for the given tree table. Row headers display toggles for expanding/collapsing tree nodes and also row numbers / outline numbers for each row.

Specified by:
createTreeTableRowHeader in interface IComponentFactory
Parameters:
table - the tree table that uses the row header for visualizing row numbers
Returns:
a row header that will be used in combination with the given table

createTreeTableCorner

public javax.swing.JComponent createTreeTableCorner(TreeTable table,
                                                    java.lang.String corner)
Description copied from interface: IComponentFactory
Creates a component that will be placed in the upper left corner of the scrollpane that contains the tree table.

Specified by:
createTreeTableCorner in interface IComponentFactory
Parameters:
table - the table that is wrapped by the scrollpane
corner - the corner where the component will be placed (UPPER_LEFT, UPPER_RIGHT, LOWER_LEFT, LOWER_RIGHT)
Returns:
a component that will be placed in the upper left corner of the tree table scrollpane
See Also:
TreeTableScrollPane, JScrollPane.setCorner(String, java.awt.Component)

createLayerContainer

public LayerContainer createLayerContainer(AbstractGanttChart gc,
                                           TreeTable table,
                                           IGanttChartModel model)
Description copied from interface: IComponentFactory
Creates a LayerContainer for the given Gantt chart and tree table combination. The layer container can utilize the given Gantt chart model to determine how many layers and spreadsheets it has to add to itself.

Specified by:
createLayerContainer in interface IComponentFactory
Parameters:
gc - the owner Gantt chart of the layer container
table - the table to the left of the layer container
model - the model represented by the layer container
Returns:
a layer container that visualizes the various types of layers supported by the framework (system, timeline, custom)

createLayerContainerCorner

public javax.swing.JComponent createLayerContainerCorner(LayerContainer lc,
                                                         java.lang.String corner)
Description copied from interface: IComponentFactory
Creates a new component that will be placed in the specified corner of the layer container scrollpane.

Specified by:
createLayerContainerCorner in interface IComponentFactory
Parameters:
lc - the layer container
corner - the corner in which to place the component (UPPER_LEFT, UPPER_RIGHT, LOWER_LEFT, LOWER_RIGHT)
Returns:
a user interface component for use in combination with the timeline
See Also:
NavigationControlPanel

createLayerContainerRowHeader

public LayerContainerRowHeader createLayerContainerRowHeader(LayerContainer lc)
Description copied from interface: IComponentFactory
Creates a new LayerContainerRowHeader that will be used for the given layer container. Layer container row headers can be used for things like the display of a scale for a resource capacity.

Specified by:
createLayerContainerRowHeader in interface IComponentFactory
Parameters:
lc - the layer container that uses the row header for things like capacity scales
Returns:
a row header that will be used in combination with the given layer container