DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
Improvements over the new line breaking algorithm
------- Additional Comments From [EMAIL PROTECTED] 2004-09-19 18:34 -------
I have a few remarks:
1. InlineStackingLM implements InlineLM. LineLM extends
InlineStackingLM and thus implements InlineLM. IMHO it should
not. Implementing InlineLM should be equivalent to
generatesInlineAreas returning true.
2. TextLM now extends LeafNodeLM instead of AbstractLM. What is the
gain? I see no related changes in TextLM.
3. In LineLM:
// this constant is used to create elements when text-align is center:
// every TextLM descendant of LineLM must use the same value,
// otherwise the line breaking algorithm does not find the right
// break point
public static final int DEFAULT_SPACE_WIDTH = 3336;
private static final int INFINITE_RATIO = 1000;
If these are static final, they might be better placed in
InlineLM. Alternatively, they might be attributes of the LineLM
object, which allows changing them per paragraph, e.g. depending on
the font. But then the problem arises how to propagate them to the
4. The textheight of the large font is rather large. The property
lineheight is not followed (reproduce existing behaviour).
5. LineLayoutManager:675: line is always 3, so that firstElementIndex
= 1 for the first line, and the first box is skipped in the line
I attach a test fo that illustrates the text and line height issues.