On Tue, May 25, 2004 at 09:51:28AM +0100, Chris Bowditch wrote:
> Luca Furini wrote:
>
> >JThe method startParagraphs dereferences only knuthParagraphs and
> >textIndent, so maybe there is a missing line concerning their
> >initialization.
>
> I have proved that textIndent is definitely null when it is not specified
> on the block.
> > ...
> > bTextAlignmentLast = blockProps.textAlignLast;
> > textIndent = blockProps.firstIndent; /* here it is */
> > hyphProps = propMgr.getHyphenationProps();
> > ...
LineLayoutManager:
protected void initProperties(PropertyManager propMgr) {
BlockProps blockProps = propMgr.getBlockProps();
textIndent = blockProps.firstIndent;
}
blockProps is initialized in the constructor of LineLM.
PropertyManager:
public BlockProps getBlockProps() {
BlockProps props = new BlockProps();
props.firstIndent = this.propertyList.get(PR_TEXT_INDENT).getLength();
return props;
}
If this.propertyList is not null, then get(PR_TEXT_INDENT) always
returns a value; if it is not specified by the user, the default value
is returned. This is true for all properties.
LengthProperty:
public Length getLength() {
return this;
}
Property:
public Length getLength() {
return null;
}
getLength(), however, may return a null value. It only returns a
non-null value if the property returned by get(PR_TEXT_INDENT) is a
LengthProperty. This should be true; I do not know a reason why it is
not true in your code.
Regards, Simon
--
Simon Pepping
home page: http://www.leverkruid.nl