org.jfree.layouting.renderer.model
Class BlockRenderBox

java.lang.Object
  extended by org.jfree.layouting.renderer.model.RenderNode
      extended by org.jfree.layouting.renderer.model.RenderBox
          extended by org.jfree.layouting.renderer.model.BlockRenderBox
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
LogicalPageBox, MarkerRenderBox, NormalFlowRenderBox, PageAreaRenderBox, ParagraphRenderBox, TableCellRenderBox, TableRenderBox, TableRowRenderBox, TableSectionRenderBox

public class BlockRenderBox
extends RenderBox

A block box behaves according to the 'display:block' layouting rules. In the simplest case, all childs will consume the complete width and get stacked below each other.

Live would be boring if everything was simple: Floats and absolutly positioned elements enrich and complicate the layout schema. Absolute elements do not affect the normal flow, but inject an invisible placeholder to keep track of their assumed normal-flow position.

(Using Mozilla's behaviour as reference, I assume that absolutly positioned elements are controled from outside the normal-flow (ie. parallel to the normal flow, but positioned relative to their computed placeholder position inside the normal flow. Weird? yes!)

Float-elements are positioned inside the block context and reduce the size of the linebox. Float-elements are positioned once when they are defined and will not alter any previously defined content.

As floats from previous boxes may overlap with later boxes, all floats must be placed on a global storage. The only difference between absolutely positioned and floating elements is *where* they can be placed, and whether they influence the content under them. (Floats do, abs-pos dont).

Author:
Thomas Morgner

Field Summary
 
Fields inherited from class org.jfree.layouting.renderer.model.RenderBox
LOG_PRUNE
 
Fields inherited from class org.jfree.layouting.renderer.model.RenderNode
HORIZONTAL_AXIS, VERTICAL_AXIS
 
Constructor Summary
BlockRenderBox(BoxDefinition boxDefinition)
           
 
Method Summary
 
Methods inherited from class org.jfree.layouting.renderer.model.RenderBox
addChild, addChilds, addGeneratedChild, appyStyle, clear, clone, close, derive, deriveFrozen, findNodeById, freeze, getBaselineInfo, getBorder, getBoxDefinition, getBoxLayoutProperties, getContentAreaX1, getContentAreaX2, getDominantBaseline, getEffectiveMarginBottom, getEffectiveMarginTop, getFirstChild, getInsertationPoint, getLastChild, getLineCount, getNominalBaselineInfo, getOrphans, getOrphansSize, getPageContext, getStaticBoxLayoutProperties, getVisibleFirst, getVisibleLast, getWidows, getWidowsSize, hibernate, insertAfter, insertBefore, isAppendable, isAvoidPagebreakInside, isDiscardable, isEmpty, isOpen, isPreserveSpace, remove, replaceChild, replaceChilds, setBaselineInfo, setContentAreaX1, setContentAreaX2, setFirstChild, setLastChild, setLineCount, setOrphansSize, setPageContext, setWidowsSize, split
 
Methods inherited from class org.jfree.layouting.renderer.model.RenderNode
getAlignmentAdjust, getAlignmentAdjustResolved, getAlignmentBaseline, getBaselineShift, getBaselineShiftResolved, getChangeTracker, getComputedLayoutProperties, getDimension, getHeight, getInstanceId, getLayoutContext, getLogicalPage, getMajorAxis, getMaximumBoxWidth, getMinimumChunkWidth, getMinorAxis, getNamespace, getNext, getNodeLayoutProperties, getNormalFlow, getParent, getParentBlockContext, getPosition, getPrev, getStickyMarker, getTagName, getVerticalAlignment, getVisibleNext, getVisiblePrev, getWidth, getX, getY, isDirectionLTR, isDirty, isFrozen, isHibernated, isIcmMetricsFinished, isIgnorableForRendering, normalizeAlignment, setComputedLayoutProperties, setDimension, setDirty, setHeight, setHibernated, setIcmMetricsFinished, setMajorAxis, setMaximumBoxWidth, setMinimumChunkWidth, setMinorAxis, setNext, setParent, setPosition, setPrev, setStickyMarker, setWidth, setX, setY, updateChangeTracker
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlockRenderBox

public BlockRenderBox(BoxDefinition boxDefinition)