com.dlsc.flexgantt.swing

## Class DefaultComponentFactory

- java.lang.Object
- - com.dlsc.flexgantt.swing.DefaultComponentFactory

- All Implemented Interfaces:
    IComponentFactory
  Direct Known Subclasses:
    MacComponentFactory, SimpleComponentFactory

      public class DefaultComponentFactory
      extends 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
  Version:
    $Revision: 1.6 $
  Author:
    Dirk Lemmermann

- - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `DefaultComponentFactory()` Constructs a component factory (protected due to singleton pattern).

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `JComponent` | `createLayerContainerCorner(LayerContainer lc, 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.
    `LayerContainerScrollPane` | `createLayerContainerScrollPane(LayerContainer lc, LayerContainerRowHeader rowHeader, Timeline timeline, boolean primary)` Returns the scrollpane used for the given layer container.
    `JSplitPane` | `createSplitPane()` Creates the splitpane used by the Gantt chart for changing the sizes of the left-hand side and the right-hand side.
    `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.
    `JComponent` | `createTreeTableCorner(TreeTable table, 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.
    `TreeTableScrollPane` | `createTreeTableScrollPane(TreeTable table, TreeTableRowHeader rowHeader, TreeTableHeader header, boolean primary)` Creates the scrollpane used for scrolling the given tree table.
    `static DefaultComponentFactory` | `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 DefaultComponentFactory 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 JComponent createTreeTableCorner(TreeTable table,
                                                  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 JComponent createLayerContainerCorner(LayerContainer lc,
                                                       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

    - #### createLayerContainerScrollPane

          public LayerContainerScrollPane createLayerContainerScrollPane(LayerContainer lc,
                                                                         LayerContainerRowHeader rowHeader,
                                                                         Timeline timeline,
                                                                         boolean primary)

      Description copied from interface: `IComponentFactory`
      Returns the scrollpane used for the given layer container.
      Specified by:
        `createLayerContainerScrollPane` in interface `IComponentFactory`
      Parameters:
        `lc` - the "view" of the scrollpane
        `rowHeader` - the row header component (e.g. for showing capacity numbers)
        `timeline` - the timeline component shown above the view
        `primary` - a flag used to signal the top-most layer container
      Returns:
        the scrollpane for the given layer container

    - #### createTreeTableScrollPane

          public TreeTableScrollPane createTreeTableScrollPane(TreeTable table,
                                                               TreeTableRowHeader rowHeader,
                                                               TreeTableHeader header,
                                                               boolean primary)

      Description copied from interface: `IComponentFactory`
      Creates the scrollpane used for scrolling the given tree table.
      Specified by:
        `createTreeTableScrollPane` in interface `IComponentFactory`
      Parameters:
        `table` - the "view" of the scrollpane
        `rowHeader` - the row header component (e.g. for showing row numbers)
        `header` - the tree table header (column names)
        `primary` - flag used for the top-most tree table
      Returns:
        the scrollpane for the given tree table

    - #### createSplitPane

          public JSplitPane createSplitPane()

      Description copied from interface: `IComponentFactory`
      Creates the splitpane used by the Gantt chart for changing the sizes of the left-hand side and the right-hand side.
      Specified by:
        `createSplitPane` in interface `IComponentFactory`
      Returns:
        a splitpane for dividing the Gantt chart into its left and right side

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