org.jfree.layouting.renderer.process

Class AbstractAlignmentProcessor

Implemented Interfaces:
TextAlignmentProcessor
Known Direct Subclasses:
CenterAlignmentProcessor, LeftAlignmentProcessor, RightAlignmentProcessor

public abstract class AbstractAlignmentProcessor
extends java.lang.Object
implements TextAlignmentProcessor

Todo: The whole horizontal alignment is not suitable for spanned page breaks.
Author:
Thomas Morgner

Constructor Summary

AbstractAlignmentProcessor()

Method Summary

protected void
computeInlineBlock(RenderBox box, long position, long itemElementWidth)
int
getBreakableIndex()
long[]
getElementDimensions()
long[]
getElementPositions()
long
getEndOfLine()
protected long
getPageBreak(int pageIndex)
PageGrid
getPageGrid()
protected InlineSequenceElement[]
getSequenceElements()
int
getSkipIndex()
long
getStartOfLine()
protected int
handleElement(int start, int count)
Handle the next input chunk.
protected abstract int
handleLayout(int start, int count, int contentIndex, long usedWidth)
boolean
hasNext()
void
initialize(InlineSequenceElement[] sequence, long start, long end, PageGrid breaks)
Initializes the alignment process.
int
iterate(InlineSequenceElement[] elements, int maxPos)
RenderNode
next()
void
setBreakableIndex(int breakableIndex)
void
setSkipIndex(int skipIndex)

Constructor Details

AbstractAlignmentProcessor

public AbstractAlignmentProcessor()

Method Details

computeInlineBlock

protected void computeInlineBlock(RenderBox box,
                                  long position,
                                  long itemElementWidth)

getBreakableIndex

public int getBreakableIndex()

getElementDimensions

public long[] getElementDimensions()

getElementPositions

public long[] getElementPositions()

getEndOfLine

public long getEndOfLine()

getPageBreak

protected long getPageBreak(int pageIndex)

getPageGrid

public PageGrid getPageGrid()

getSequenceElements

protected InlineSequenceElement[] getSequenceElements()

getSkipIndex

public int getSkipIndex()

getStartOfLine

public long getStartOfLine()

handleElement

protected int handleElement(int start,
                            int count)
Handle the next input chunk.
Parameters:
start - the start index
count - the number of elements in the sequence
Returns:
the processing position. Linebreaks will be inserted, if the returned value is equal or less the start index.

handleLayout

protected abstract int handleLayout(int start,
                                    int count,
                                    int contentIndex,
                                    long usedWidth)

hasNext

public boolean hasNext()
Specified by:
hasNext in interface TextAlignmentProcessor

initialize

public void initialize(InlineSequenceElement[] sequence,
                       long start,
                       long end,
                       PageGrid breaks)
Initializes the alignment process. The start and end parameters specify the line boundaries, and have been precomputed.
Specified by:
initialize in interface TextAlignmentProcessor
Parameters:
sequence -
start -
end -
breaks -

iterate

public int iterate(InlineSequenceElement[] elements,
                   int maxPos)

next

public RenderNode next()
Specified by:
next in interface TextAlignmentProcessor

setBreakableIndex

public void setBreakableIndex(int breakableIndex)

setSkipIndex

public void setSkipIndex(int skipIndex)