Class ValidateModelStep


  • public class ValidateModelStep
    extends IterateStructuralProcessStep
    This step checks, whether the model will be layoutable. Closed nodes are always layoutable. Nodes are non-layoutable, if they contain boxes with a width or margin of 'auto', tables with auto-width columns or if there is an open out-of-normal-flow element (floating or positioned element). if the preferred width is AUTO, then we have to check the whole thing. If (according to CSS3-Box) the width computes to the intrinsic width, then the layout is not computable yet. For now, we always assume that all elements have a horizontal flow. That simplifies all tests to whether the element is a flow root. For tables, the choice is a bit more complex. If the table uses the auto table-layout algorithm, the model is layoutable, if the table has no auto-width columns. If the table uses the fixed layout algorithm, the width of the table is auto but all columns have a non-auto-width, then the model will be layoutable at once. Columns with an auto-width in a fixed table model become layoutable as soon as the first row of data has been given.
    Author:
    Thomas Morgner