com.dlsc.flexgantt.swing

## Interface IComponentFactory

- All Known Implementing Classes:
    DefaultComponentFactory, MacComponentFactory, SimpleComponentFactory

      public interface IComponentFactory

  An interface used for factories that are capable of creating the various components that constitute a Gantt chart (timeline, tree table, layer container, row header, column header, ...).
  Since:
    1.0
  Author:
    Dirk Lemmermann

- - ### Method Summary

    All Methods Instance Methods Abstract 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.

- - ### Method Detail

    - #### createTimeline

          Timeline createTimeline(AbstractGanttChart gc)

      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.
      Parameters:
        `gc` - the owner Gantt chart
      Returns:
        a timeline that covers the given time span and time zone
      Since:
        1.0
      See Also:
        `createDateline(Timeline)`, `createEventline(Timeline, Dateline)`

    - #### createDateline

          Dateline createDateline(Timeline timeline)

      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.
      Parameters:
        `timeline` - the parent timeline
      Returns:
        a dateline that covers the given time span and time zone
      Since:
        1.0
      See Also:
        `createTimeline(AbstractGanttChart)`, `createEventline(Timeline, Dateline)`

    - #### createEventline

          Eventline createEventline(Timeline timeline,
                                    Dateline dateline)

      Creates a new `Eventline` for the given Gantt chart and timeline. The eventline will show global events and activities.
      Parameters:
        `timeline` - the parent timeline
        `dateline` - the dateline that is used in the same timeline
      Returns:
        an eventline for displaying global events and activities
      Since:
        1.0
      See Also:
        `createDateline(Timeline)`, `createTimeline(AbstractGanttChart)`

    - #### createTreeTable

          TreeTable createTreeTable(AbstractGanttChart gc,
                                    ITreeTableModel model)

      Creates a `TreeTable` for the given Gantt chart. The table can use the given model to populate itself with date.
      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
      Since:
        1.0

    - #### createTreeTableHeader

          TreeTableHeader createTreeTableHeader(AbstractGanttChart gc)

      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.
      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)
      Since:
        1.0
      See Also:
        `AbstractGanttChart.getTreeTableHeader()`

    - #### createTreeTableRowHeader

          TreeTableRowHeader createTreeTableRowHeader(TreeTable table)

      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.
      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
      Since:
        1.0

    - #### createTreeTableCorner

          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.
      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
      Since:
        1.0
      See Also:
        `TreeTableScrollPane`, `JScrollPane.setCorner(String, java.awt.Component)`

    - #### createTreeTableScrollPane

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

      Creates the scrollpane used for scrolling the given tree table.
      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
      Since:
        2.0

    - #### createLayerContainer

          LayerContainer createLayerContainer(AbstractGanttChart gc,
                                              TreeTable table,
                                              IGanttChartModel model)

      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.
      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)
      Since:
        1.0

    - #### createLayerContainerRowHeader

          LayerContainerRowHeader createLayerContainerRowHeader(LayerContainer lc)

      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.
      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
      Since:
        1.0

    - #### createLayerContainerCorner

          JComponent createLayerContainerCorner(LayerContainer lc,
                                                String corner)

      Creates a new component that will be placed in the specified corner of the layer container scrollpane.
      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
      Since:
        1.0
      See Also:
        `NavigationControlPanel`

    - #### createLayerContainerScrollPane

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

      Returns the scrollpane used for the given layer container.
      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
      Since:
        2.0

    - #### createSplitPane

          JSplitPane createSplitPane()

      Creates the splitpane used by the Gantt chart for changing the sizes of the left-hand side and the right-hand side.
      Returns:
        a splitpane for dividing the Gantt chart into its left and right side
      Since:
        2.0

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