|
fop 0.92beta | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.fop.layoutmgr.BreakingAlgorithm
The set of nodes is sorted into lines indexed into activeLines. The nodes in each line are linked together in a single linked list by the KnuthNode.next field. The activeLines array contains a link to the head of the linked list in index 'line*2' and a link to the tail at index 'line*2+1'.
The set of active nodes can be traversed by
for (int line = startLine; line < endLine; line++) { for (KnuthNode node = getNode(line); node != null; node = node.next) { // Do something with 'node' } }
Nested Class Summary | |
protected class |
BreakingAlgorithm.BestRecords
|
class |
BreakingAlgorithm.KnuthNode
|
Field Summary | |
protected BreakingAlgorithm.KnuthNode[] |
activeLines
The set of active nodes. |
protected int |
activeNodeCount
The number of active nodes. |
protected int |
alignment
|
protected int |
alignmentLast
|
static int |
ALL_BREAKS
|
protected BreakingAlgorithm.BestRecords |
best
|
protected boolean |
bFirst
|
protected boolean |
considerTooShort
If set to true, doesn't ignore break possibilities which are definitely too short. |
protected int |
endLine
The highest + 1 available line in the set of active nodes. |
protected int |
incompatibleFitnessDemerit
|
protected static int |
INFINITE_RATIO
|
protected BreakingAlgorithm.KnuthNode |
lastDeactivatedNode
|
protected int |
lineWidth
The width of a line (or height of a column in page-breaking mode) |
protected static org.apache.commons.logging.Log |
log
the logger |
protected int |
maxFlaggedPenaltiesCount
|
static int |
NO_FLAGGED_PENALTIES
|
static int |
ONLY_FORCED_BREAKS
|
protected KnuthSequence |
par
The paragraph of KnuthElements. |
protected int |
repeatedFlaggedDemerit
|
protected int |
startLine
The lowest available line in the set of active nodes. |
protected int |
totalShrink
The total shrink of all elements handled so far. |
protected int |
totalStretch
The total stretch of all elements handled so far. |
protected int |
totalWidth
The total width of all elements handled so far. |
Constructor Summary | |
BreakingAlgorithm(int align,
int alignLast,
boolean first,
boolean partOverflowRecovery,
int maxFlagCount)
|
Method Summary | |
protected void |
addNode(int line,
BreakingAlgorithm.KnuthNode node)
Add a KnuthNode at the end of line 'line'. |
protected BreakingAlgorithm.KnuthNode |
compareNodes(BreakingAlgorithm.KnuthNode node1,
BreakingAlgorithm.KnuthNode node2)
Compare two KnuthNodes and return the node with the least demerit. |
protected double |
computeAdjustmentRatio(BreakingAlgorithm.KnuthNode activeNode,
int difference)
Return the adjust ration needed to make up for the difference. |
protected double |
computeDemerits(BreakingAlgorithm.KnuthNode activeNode,
KnuthElement element,
int fitnessClass,
double r)
|
protected int |
computeDifference(BreakingAlgorithm.KnuthNode activeNode,
KnuthElement element,
int elementIndex)
Return the difference between the line width and the width of the break that ends in 'element'. |
protected void |
considerLegalBreak(KnuthElement element,
int elementIdx)
|
protected BreakingAlgorithm.KnuthNode |
createNode(int position,
int line,
int fitness,
int totalWidth,
int totalStretch,
int totalShrink)
|
protected BreakingAlgorithm.KnuthNode |
createNode(int position,
int line,
int fitness,
int totalWidth,
int totalStretch,
int totalShrink,
double adjustRatio,
int availableShrink,
int availableStretch,
int difference,
double totalDemerits,
BreakingAlgorithm.KnuthNode previous)
|
protected abstract int |
filterActiveNodes()
|
int |
findBreakingPoints(KnuthSequence par,
double threshold,
boolean force,
int allowedBreaks)
|
int |
findBreakingPoints(KnuthSequence par,
int startIndex,
double threshold,
boolean force,
int allowedBreaks)
|
protected void |
finish()
|
double |
getAdjustRatio(int line)
|
int |
getAlignment()
|
int |
getAlignmentLast()
|
int |
getDifference(int line)
|
protected KnuthElement |
getElement(int idx)
Return the element at index idx in the paragraph. |
int |
getEnd(int line)
|
protected int |
getLineWidth()
|
protected int |
getLineWidth(int line)
|
protected int |
getMaxRecoveryAttempts()
|
protected BreakingAlgorithm.KnuthNode |
getNode(int line)
|
int |
getStart(int line)
|
protected void |
handleBox(KnuthBox box)
|
protected void |
initialize()
|
protected boolean |
isPartOverflowRecoveryActivated()
Controls the behaviour of the algorithm in cases where the first element of a part overflows a line/page. |
protected void |
removeNode(int line,
BreakingAlgorithm.KnuthNode node)
Remove the first node in line 'line'. |
protected int |
restartFrom(BreakingAlgorithm.KnuthNode restartingNode,
int currentIndex)
|
void |
setConstantLineWidth(int lineWidth)
|
java.lang.String |
toString(java.lang.String prepend)
|
abstract void |
updateData1(int total,
double demerits)
|
abstract void |
updateData2(BreakingAlgorithm.KnuthNode bestActiveNode,
KnuthSequence sequence,
int total)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected static org.apache.commons.logging.Log log
protected static final int INFINITE_RATIO
public static final int ALL_BREAKS
public static final int NO_FLAGGED_PENALTIES
public static final int ONLY_FORCED_BREAKS
protected int repeatedFlaggedDemerit
protected int incompatibleFitnessDemerit
protected int maxFlaggedPenaltiesCount
protected KnuthSequence par
protected int lineWidth
protected boolean considerTooShort
protected BreakingAlgorithm.KnuthNode lastDeactivatedNode
protected int alignment
protected int alignmentLast
protected boolean bFirst
protected BreakingAlgorithm.KnuthNode[] activeLines
protected int activeNodeCount
protected int startLine
protected int endLine
protected int totalWidth
protected int totalStretch
protected int totalShrink
protected BreakingAlgorithm.BestRecords best
Constructor Detail |
public BreakingAlgorithm(int align, int alignLast, boolean first, boolean partOverflowRecovery, int maxFlagCount)
Method Detail |
protected int getMaxRecoveryAttempts()
protected boolean isPartOverflowRecoveryActivated()
public abstract void updateData1(int total, double demerits)
public abstract void updateData2(BreakingAlgorithm.KnuthNode bestActiveNode, KnuthSequence sequence, int total)
public void setConstantLineWidth(int lineWidth)
public int findBreakingPoints(KnuthSequence par, double threshold, boolean force, int allowedBreaks)
public int findBreakingPoints(KnuthSequence par, int startIndex, double threshold, boolean force, int allowedBreaks)
protected void initialize()
protected BreakingAlgorithm.KnuthNode createNode(int position, int line, int fitness, int totalWidth, int totalStretch, int totalShrink, double adjustRatio, int availableShrink, int availableStretch, int difference, double totalDemerits, BreakingAlgorithm.KnuthNode previous)
protected BreakingAlgorithm.KnuthNode createNode(int position, int line, int fitness, int totalWidth, int totalStretch, int totalShrink)
protected void handleBox(KnuthBox box)
protected int restartFrom(BreakingAlgorithm.KnuthNode restartingNode, int currentIndex)
protected void considerLegalBreak(KnuthElement element, int elementIdx)
protected int computeDifference(BreakingAlgorithm.KnuthNode activeNode, KnuthElement element, int elementIndex)
activeNode
- element
-
protected double computeAdjustmentRatio(BreakingAlgorithm.KnuthNode activeNode, int difference)
activeNode
- difference
-
protected double computeDemerits(BreakingAlgorithm.KnuthNode activeNode, KnuthElement element, int fitnessClass, double r)
protected void finish()
protected KnuthElement getElement(int idx)
idx
- index of the element.
protected BreakingAlgorithm.KnuthNode compareNodes(BreakingAlgorithm.KnuthNode node1, BreakingAlgorithm.KnuthNode node2)
node1
- The first knuth node.node2
- The other knuth node.
protected void addNode(int line, BreakingAlgorithm.KnuthNode node)
line
- node
- protected void removeNode(int line, BreakingAlgorithm.KnuthNode node)
line
- node
- protected BreakingAlgorithm.KnuthNode getNode(int line)
public int getDifference(int line)
public double getAdjustRatio(int line)
public int getStart(int line)
public int getEnd(int line)
protected int getLineWidth(int line)
protected int getLineWidth()
public java.lang.String toString(java.lang.String prepend)
protected abstract int filterActiveNodes()
public int getAlignment()
public int getAlignmentLast()
|
fop 0.92beta | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |