Package org.jfree.layouting.renderer.process

## Class ComputeICMMetricsStep

- java.lang.Object
- - org.jfree.layouting.renderer.process.IterateVisualProcessStep
  - - org.jfree.layouting.renderer.process.ComputeICMMetricsStep

-     public class ComputeICMMetricsStep
      extends IterateVisualProcessStep

  This step performs the first layouting step. The ICM-step computes the preferred size of all elements (that is the minimum size the element would consume if there were infinite space available) and the minimum chunk size (that is the biggest unbreakable content in an element).

  The preferred size is based on the box size (that means: No margins included!).

  That step produces the preferred size for the nodes.

  As long as paragraphs can be nested, we cannot assume anything here. A nested paragraph can have linebreaks all the time and thus it is dangerous to skip the ICM-Computation on such nodes. Maybe we can tweak something with a change counter or so.
  Author:
    Thomas Morgner

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ComputeICMMetricsStep​()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `compute​(LogicalPageBox root)` |
    `protected void` | `finishBlockLevelBox​(RenderBox box)` |
    `protected void` | `finishInlineLevelBox​(RenderBox box)` |
    `protected void` | `processBlockLevelNode​(RenderNode node)` |
    `protected void` | `processInlineLevelNode​(RenderNode node)` |
    `protected void` | `processParagraphChilds​(ParagraphRenderBox box)` |
    `protected boolean` | `startBlockLevelBox​(RenderBox box)` |
    `protected boolean` | `startInlineLevelBox​(RenderBox box)` |

    - ### Methods inherited from class org.jfree.layouting.renderer.process.IterateVisualProcessStep

      `processBlockLevelChild, processBoxChilds, processFlow, processInlineLevelChild, processOtherLevelChild, startProcessing`

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

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

- - ### Constructor Detail

    - #### ComputeICMMetricsStep

          public ComputeICMMetricsStep​()

  - ### Method Detail

    - #### compute

          public void compute​(LogicalPageBox root)

    - #### processParagraphChilds

          protected void processParagraphChilds​(ParagraphRenderBox box)

      Specified by:
        `processParagraphChilds` in class `IterateVisualProcessStep`

    - #### startBlockLevelBox

          protected boolean startBlockLevelBox​(RenderBox box)

      Overrides:
        `startBlockLevelBox` in class `IterateVisualProcessStep`

    - #### startInlineLevelBox

          protected boolean startInlineLevelBox​(RenderBox box)

      Overrides:
        `startInlineLevelBox` in class `IterateVisualProcessStep`

    - #### finishInlineLevelBox

          protected void finishInlineLevelBox​(RenderBox box)

      Overrides:
        `finishInlineLevelBox` in class `IterateVisualProcessStep`

    - #### finishBlockLevelBox

          protected void finishBlockLevelBox​(RenderBox box)

      Overrides:
        `finishBlockLevelBox` in class `IterateVisualProcessStep`

    - #### processInlineLevelNode

          protected void processInlineLevelNode​(RenderNode node)

      Overrides:
        `processInlineLevelNode` in class `IterateVisualProcessStep`

    - #### processBlockLevelNode

          protected void processBlockLevelNode​(RenderNode node)

      Overrides:
        `processBlockLevelNode` in class `IterateVisualProcessStep`