Class LayoutContext


  • public final class LayoutContext
    extends java.lang.Object
    This class is used to pass information to the getNextKnuthElements() method. It is set up by higher level LM and used by lower level LM.
    • Field Detail

      • NEW_AREA

        public static final int NEW_AREA
        Generated break possibility is first in a new area
        See Also:
        Constant Field Values
      • SUPPRESS_BREAK_BEFORE

        public static final int SUPPRESS_BREAK_BEFORE
        If this flag is set, it indicates that any break-before values other than "auto" should not cause a mandatory break as this break was already handled by a parent layout manager.
        See Also:
        Constant Field Values
      • flags

        private int flags
      • stackLimitBP

        private MinOptMax stackLimitBP
        Total available stacking dimension for a "galley-level" layout manager in block-progression-direction. It is passed by the parent LM. These LM may wish to pass this information down to lower level LM to allow them to optimize returned break possibilities.
      • currentSpan

        private int currentSpan
        to keep track of spanning in multi-column layout
      • nextSpan

        private int nextSpan
      • refIPD

        private int refIPD
        inline-progression-dimension of nearest ancestor reference area
      • writingMode

        private WritingMode writingMode
        the writing mode established by the nearest ancestor reference area
      • trailingSpace

        private SpaceSpecifier trailingSpace
        Current pending space-after or space-end from preceding area
      • leadingSpace

        private SpaceSpecifier leadingSpace
        Current pending space-before or space-start from ancestor areas
      • pendingAfterMarks

        private java.util.List pendingAfterMarks
        A list of pending marks (border and padding) on the after edge when a page break occurs. May be null.
      • pendingBeforeMarks

        private java.util.List pendingBeforeMarks
        A list of pending marks (border and padding) on the before edge when a page break occurs. May be null.
      • hyphContext

        private HyphContext hyphContext
        Current hyphenation context. May be null.
      • bpAlignment

        private int bpAlignment
        Alignment in BP direction
      • ipdAdjust

        private double ipdAdjust
        Stretch or shrink value when making areas.
      • dSpaceAdjust

        private double dSpaceAdjust
        Stretch or shrink value when adding spaces.
      • spaceBefore

        private int spaceBefore
        Amount of space before / start
      • spaceAfter

        private int spaceAfter
        Amount of space after / end
      • lineStartBorderAndPaddingWidth

        private int lineStartBorderAndPaddingWidth
        Amount of space to reserve at the beginning of each line
      • lineEndBorderAndPaddingWidth

        private int lineEndBorderAndPaddingWidth
        Amount of space to reserve at the end of each line
      • breakBefore

        private int breakBefore
      • breakAfter

        private int breakAfter
      • pendingKeepWithNext

        private Keep pendingKeepWithNext
      • pendingKeepWithPrevious

        private Keep pendingKeepWithPrevious
      • disableColumnBalancing

        private int disableColumnBalancing
    • Constructor Detail

      • LayoutContext

        private LayoutContext​(LayoutContext parentLC)
      • LayoutContext

        private LayoutContext​(int flags)
    • Method Detail

      • offspringOf

        public static LayoutContext offspringOf​(LayoutContext parent)
        Returns a descendant of the given layout context. The new context is the same as what would have been created by newInstance(), except for inheritable properties that are passed on by the parent. At the moment, the only inheritable property is the value returned by treatAsArtifact().
      • copyPendingMarksFrom

        public void copyPendingMarksFrom​(LayoutContext source)
        Parameters:
        source - from which pending marks are copied
      • setFlags

        public void setFlags​(int flags)
        Parameters:
        flags - to set
      • setFlags

        public void setFlags​(int flags,
                             boolean bSet)
        Parameters:
        flags - to set or clear
        bSet - true to set, false to clear
      • unsetFlags

        public void unsetFlags​(int flags)
        Parameters:
        flags - to clear
      • isStart

        public boolean isStart()
        Returns:
        true if new area is set
      • startsNewArea

        public boolean startsNewArea()
        Returns:
        true if new area is set and leading space is non-null
      • isFirstArea

        public boolean isFirstArea()
        Returns:
        true if first area is set
      • isLastArea

        public boolean isLastArea()
        Returns:
        true if last area is set
      • suppressBreakBefore

        public boolean suppressBreakBefore()
        Returns:
        true if suppress break before is set
      • getKeepWithNextPending

        public Keep getKeepWithNextPending()
        Returns the strength of a keep-with-next currently pending.
        Returns:
        the keep-with-next strength
      • getKeepWithPreviousPending

        public Keep getKeepWithPreviousPending()
        Returns the strength of a keep-with-previous currently pending.
        Returns:
        the keep-with-previous strength
      • clearKeepWithNextPending

        public void clearKeepWithNextPending()
        Clears any pending keep-with-next strength.
      • clearKeepWithPreviousPending

        public void clearKeepWithPreviousPending()
        Clears any pending keep-with-previous strength.
      • clearKeepsPending

        public void clearKeepsPending()
        Clears both keep-with-previous and keep-with-next strengths.
      • updateKeepWithNextPending

        public void updateKeepWithNextPending​(Keep keep)
        Updates the currently pending keep-with-next strength.
        Parameters:
        keep - the new strength to consider
      • updateKeepWithPreviousPending

        public void updateKeepWithPreviousPending​(Keep keep)
        Updates the currently pending keep-with-previous strength.
        Parameters:
        keep - the new strength to consider
      • isKeepWithNextPending

        public boolean isKeepWithNextPending()
        Indicates whether a keep-with-next constraint is pending.
        Returns:
        true if a keep-with-next constraint is pending
      • isKeepWithPreviousPending

        public boolean isKeepWithPreviousPending()
        Indicates whether a keep-with-previous constraint is pending.
        Returns:
        true if a keep-with-previous constraint is pending
      • setLeadingSpace

        public void setLeadingSpace​(SpaceSpecifier space)
        Parameters:
        space - leading space
      • getLeadingSpace

        public SpaceSpecifier getLeadingSpace()
        Returns:
        leading space
      • resolveLeadingSpace

        public boolean resolveLeadingSpace()
        Returns:
        true if resolve leading space is set
      • setTrailingSpace

        public void setTrailingSpace​(SpaceSpecifier space)
        Parameters:
        space - trailing space
      • getTrailingSpace

        public SpaceSpecifier getTrailingSpace()
        Returns:
        trailing space
      • addPendingAfterMark

        public void addPendingAfterMark​(UnresolvedListElementWithLength element)
        Adds a border or padding element to the pending list which will be used to generate the right element list for break possibilities. Conditionality resolution will be done elsewhere.
        Parameters:
        element - the border, padding or space element
      • clearPendingMarks

        public void clearPendingMarks()
        Clears all pending marks on the LayoutContext.
      • addPendingBeforeMark

        public void addPendingBeforeMark​(UnresolvedListElementWithLength element)
        Adds a border or padding element to the pending list which will be used to generate the right element list for break possibilities. Conditionality resolution will be done elsewhere.
        Parameters:
        element - the border, padding or space element
      • setStackLimitBP

        public void setStackLimitBP​(MinOptMax limit)
        Sets the stack limit in block-progression-dimension.
        Parameters:
        limit - the stack limit
      • getStackLimitBP

        public MinOptMax getStackLimitBP()
        Returns the stack limit in block-progression-dimension.
        Returns:
        the stack limit
      • setRefIPD

        public void setRefIPD​(int ipd)
        Sets the inline-progression-dimension of the nearest ancestor reference area.
        Parameters:
        ipd - of nearest ancestor reference area
      • getRefIPD

        public int getRefIPD()
        Returns the inline-progression-dimension of the nearest ancestor reference area.
        Returns:
        the inline-progression-dimension of the nearest ancestor reference area
      • setHyphContext

        public void setHyphContext​(HyphContext hyph)
        Parameters:
        hyph - a hyphenation context
      • getHyphContext

        public HyphContext getHyphContext()
        Returns:
        hyphenation context
      • setBPAlignment

        public void setBPAlignment​(int alignment)
        Sets the currently applicable alignment in BP direction.
        Parameters:
        alignment - one of EN_START, EN_JUSTIFY etc.
      • getBPAlignment

        public int getBPAlignment()
        Returns:
        the currently applicable alignment in BP direction (EN_START, EN_JUSTIFY...)
      • setSpaceAdjust

        public void setSpaceAdjust​(double adjust)
        Parameters:
        adjust - space adjustment
      • getSpaceAdjust

        public double getSpaceAdjust()
        Returns:
        space adjustment
      • setIPDAdjust

        public void setIPDAdjust​(double ipdA)
        Parameters:
        ipdA - ipd adjustment
      • getIPDAdjust

        public double getIPDAdjust()
        Returns:
        ipd adjustment
      • setAlignmentContext

        public void setAlignmentContext​(AlignmentContext alignmentContext)
        Parameters:
        alignmentContext - alignment context
      • getAlignmentContext

        public AlignmentContext getAlignmentContext()
        Returns:
        alignment context
      • resetAlignmentContext

        public void resetAlignmentContext()
        Reset alignment context.
      • getLineStartBorderAndPaddingWidth

        public int getLineStartBorderAndPaddingWidth()
        Get the width to be reserved for border and padding at the start of the line.
        Returns:
        the width to be reserved
      • setLineStartBorderAndPaddingWidth

        public void setLineStartBorderAndPaddingWidth​(int lineStartBorderAndPaddingWidth)
        Set the width to be reserved for border and padding at the start of the line.
        Parameters:
        lineStartBorderAndPaddingWidth - the width to be reserved
      • getLineEndBorderAndPaddingWidth

        public int getLineEndBorderAndPaddingWidth()
        Get the width to be reserved for border and padding at the end of the line.
        Returns:
        the width to be reserved
      • setLineEndBorderAndPaddingWidth

        public void setLineEndBorderAndPaddingWidth​(int lineEndBorderAndPaddingWidth)
        Set the width to be reserved for border and padding at the end of the line.
        Parameters:
        lineEndBorderAndPaddingWidth - the width to be reserved
      • signalSpanChange

        public void signalSpanChange​(int span)
        Used to signal the PSLM that the element list ends early because of a span change in multi-column layout.
        Parameters:
        span - the new span value (legal values: NOT_SET, EN_NONE, EN_ALL)
      • getWritingMode

        public WritingMode getWritingMode()
        Get the writing mode of the relevant reference area.
        Returns:
        the applicable writing mode
      • setWritingMode

        public void setWritingMode​(WritingMode writingMode)
        Set the writing mode.
        Parameters:
        writingMode - the writing mode
      • getSpaceBefore

        public int getSpaceBefore()
        Get the current amount of space before / start
        Returns:
        the space before / start amount
      • setSpaceBefore

        public void setSpaceBefore​(int spaceBefore)
        Set the amount of space before / start
        Parameters:
        spaceBefore - the amount of space before / start
      • getSpaceAfter

        public int getSpaceAfter()
        Get the current amount of space after / end
        Returns:
        the space after / end amount
      • setSpaceAfter

        public void setSpaceAfter​(int spaceAfter)
        Set the amount of space after / end
        Parameters:
        spaceAfter - the amount of space after / end
      • setBreakBefore

        public void setBreakBefore​(int breakBefore)
        Sets the value of the break before the current element.
        Parameters:
        breakBefore - the value of the break-before
        See Also:
        getBreakBefore()
      • setBreakAfter

        public void setBreakAfter​(int breakAfter)
        Sets the value of the break after the current element.
        Parameters:
        breakAfter - the value of the break-after
        See Also:
        getBreakAfter()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getDisableColumnBalancing

        public int getDisableColumnBalancing()
        Returns whether the column balancer should be disabled before a spanning block
        Returns:
        one of Constants.EN_TRUE, Constants.EN_FALSE
      • setDisableColumnBalancing

        public void setDisableColumnBalancing​(int disableColumnBalancing)
        Sets whether the column balancer should be disabled before a spanning block
        Parameters:
        disableColumnBalancing - the value of the fox:disable-column-balancing property
        See Also:
        getDisableColumnBalancing()
      • treatAsArtifact

        public boolean treatAsArtifact()
      • setTreatAsArtifact

        public void setTreatAsArtifact​(boolean treatAsArtifact)