org.jfree.report.flow.layoutprocessor

## Class SectionLayoutController

- java.lang.Object
- - org.jfree.report.flow.layoutprocessor.ElementLayoutController
  - - org.jfree.report.flow.layoutprocessor.SectionLayoutController

- All Implemented Interfaces:
    java.lang.Cloneable, LayoutController
  Direct Known Subclasses:
    ReportLayoutController, SubReportLayoutController

      public class SectionLayoutController
      extends ElementLayoutController

  Creation-Date: 24.11.2006, 13:56:10
  Author:
    Thomas Morgner

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.jfree.report.flow.layoutprocessor.ElementLayoutController

      `ElementLayoutController.ElementPrecomputeKey`

  - ### Field Summary

    - ### Fields inherited from class org.jfree.report.flow.layoutprocessor.ElementLayoutController

      `FINISHED, FINISHING, NOT_STARTED, OPENED, WAITING_FOR_JOIN`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SectionLayoutController()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected FlowController` | `finishData(ReportTarget target, FlowController fc)`
    `protected LayoutController` | `finishElement(ReportTarget target)` Finishes the processing of this element.
    `int` | `getIndex()`
    `Node[]` | `getNodes()`
    `protected boolean` | `isDisplayable(Node node)`
    `LayoutController` | `join(FlowController flowController)` Joins with a delegated process flow.
    `protected LayoutController` | `processChild(SectionLayoutController derived, Node node, FlowController flowController)`
    `protected LayoutController` | `processContent(ReportTarget target)` Processes any content in this element.
    `protected void` | `resetSectionForRepeat()`
    `void` | `setIndex(int index)`
    `protected FlowController` | `startData(ReportTarget target, FlowController fc)`

    - ### Methods inherited from class org.jfree.report.flow.layoutprocessor.ElementLayoutController

      `advance, clone, computeAttributes, createPrecomputeInstance, getAttributeMap, getElement, getExpressionsCount, getFlowController, getIterationCount, getNode, getParent, getProcessingState, handleDefaultEndElement, initialize, isAdvanceable, isPrecomputing, performElementPrecomputation, setFlowController, setParent, setProcessingState, startElement, toString, tryRepeatingCommit`

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

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

- - ### Constructor Detail

    - #### SectionLayoutController

          public SectionLayoutController()

  - ### Method Detail

    - #### startData

          protected FlowController startData(ReportTarget target,
                                             FlowController fc)
                                      throws DataSourceException,
                                             ReportProcessingException,
                                             ReportDataFactoryException

      Overrides:
        `startData` in class `ElementLayoutController`
      Throws:
        `DataSourceException`
        `ReportProcessingException`
        `ReportDataFactoryException`

    - #### processContent

          protected LayoutController processContent(ReportTarget target)
                                             throws DataSourceException,
                                                    ReportProcessingException,
                                                    ReportDataFactoryException

      Description copied from class: `ElementLayoutController`
      Processes any content in this element. This method is called when the processing state is 'OPENED'. The returned layout controller will retain the 'OPENED' state as long as there is more content available. Once all content has been processed, the returned layout controller should carry a 'FINISHED' state.
      Specified by:
        `processContent` in class `ElementLayoutController`
      Parameters:
        `target` - the report target that receives generated events.
      Returns:
        the new layout controller instance representing the new state.
      Throws:
        `DataSourceException` - if there was a problem reading data from the datasource.
        `ReportProcessingException` - if there was a general problem during the report processing.
        `ReportDataFactoryException` - if a query failed.

    - #### processChild

          protected LayoutController processChild(SectionLayoutController derived,
                                                  Node node,
                                                  FlowController flowController)
                                           throws DataSourceException,
                                                  ReportProcessingException,
                                                  ReportDataFactoryException

      Throws:
        `DataSourceException`
        `ReportProcessingException`
        `ReportDataFactoryException`

    - #### isDisplayable

          protected boolean isDisplayable(Node node)
                                   throws DataSourceException

      Throws:
        `DataSourceException`

    - #### finishElement

          protected LayoutController finishElement(ReportTarget target)
                                            throws ReportProcessingException,
                                                   DataSourceException,
                                                   ReportDataFactoryException

      Finishes the processing of this element. This method is called when the processing state is 'FINISHING'. The element should be closed now and all privatly owned resources should be freed. If the element has a parent, it would be time to join up with the parent now, else the processing state should be set to 'FINISHED'.
      Overrides:
        `finishElement` in class `ElementLayoutController`
      Parameters:
        `target` - the report target that receives generated events.
      Returns:
        the new layout controller instance representing the new state.
      Throws:
        `DataSourceException` - if there was a problem reading data from the datasource.
        `ReportProcessingException` - if there was a general problem during the report processing.
        `ReportDataFactoryException` - if there was an error trying query data.

    - #### resetSectionForRepeat

          protected void resetSectionForRepeat()

    - #### finishData

          protected FlowController finishData(ReportTarget target,
                                              FlowController fc)
                                       throws DataSourceException,
                                              ReportProcessingException

      Throws:
        `DataSourceException`
        `ReportProcessingException`

    - #### join

          public LayoutController join(FlowController flowController)

      Joins with a delegated process flow. This is generally called from a child flow and should *not* (I mean it!) be called from outside. If you do, you'll suffer.
      Parameters:
        `flowController` - the flow controller of the parent.
      Returns:
        the joined layout controller that incorperates all changes from the delegate.

    - #### getNodes

          public Node[] getNodes()

    - #### getIndex

          public int getIndex()

    - #### setIndex

          public void setIndex(int index)