diff options
Diffstat (limited to 'src/org/apache/fop/fo/flow/ListItem.java')
-rw-r--r-- | src/org/apache/fop/fo/flow/ListItem.java | 87 |
1 files changed, 27 insertions, 60 deletions
diff --git a/src/org/apache/fop/fo/flow/ListItem.java b/src/org/apache/fop/fo/flow/ListItem.java index 8cd89b038..6f74a6099 100644 --- a/src/org/apache/fop/fo/flow/ListItem.java +++ b/src/org/apache/fop/fo/flow/ListItem.java @@ -1,52 +1,7 @@ -/*-- $Id$ -- - - ============================================================================ - The Apache Software License, Version 1.1 - ============================================================================ - - Copyright (C) 1999 The Apache Software Foundation. All rights reserved. - - Redistribution and use in source and binary forms, with or without modifica- - tion, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - - 3. The end-user documentation included with the redistribution, if any, must - include the following acknowledgment: "This product includes software - developed by the Apache Software Foundation (http://www.apache.org/)." - Alternately, this acknowledgment may appear in the software itself, if - and wherever such third-party acknowledgments normally appear. - - 4. The names "FOP" and "Apache Software Foundation" must not be used to - endorse or promote products derived from this software without prior - written permission. For written permission, please contact - apache@apache.org. - - 5. Products derived from this software may not be called "Apache", nor may - "Apache" appear in their name, without prior written permission of the - Apache Software Foundation. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- - DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - This software consists of voluntary contributions made by many individuals - on behalf of the Apache Software Foundation and was originally created by - James Tauber <jtauber@jtauber.com>. For more information on the Apache - Software Foundation, please see <http://www.apache.org/>. - +/*-- $Id$ + * Copyright (C) 2001 The Apache Software Foundation. All rights reserved. + * For details on use and redistribution please refer to the + * LICENSE file included with these sources. */ package org.apache.fop.fo.flow; @@ -125,15 +80,26 @@ public class ListItem extends FObj { new BlockArea(propMgr.getFontState(area.getFontInfo()), area.getAllocationWidth(), area.spaceLeft(), 0, 0, 0, align, alignLast, lineHeight); + this.blockArea.generatedBy = this; + this.areasGenerated++; + if (this.areasGenerated == 1) + this.blockArea.isFirst = true; + // for normal areas this should be the only pair + this.blockArea.addLineagePair(this, this.areasGenerated); + + // markers + if (this.hasMarkers()) + this.blockArea.addMarkers(this.getMarkers()); + blockArea.setPage(area.getPage()); blockArea.start(); - blockArea.setAbsoluteHeight(area.getAbsoluteHeight()); - blockArea.setIDReferences(area.getIDReferences()); + blockArea.setAbsoluteHeight(area.getAbsoluteHeight()); + blockArea.setIDReferences(area.getIDReferences()); int numChildren = this.children.size(); if (numChildren != 2) { - throw new FOPException("list-item must have exactly two children"); + throw new FOPException("list-item must have exactly two children"); } ListItemLabel label = (ListItemLabel) children.elementAt(0); ListItemBody body = (ListItemBody) children.elementAt(1); @@ -144,13 +110,13 @@ public class ListItem extends FObj { // body failed completely or only got some text in if (this.marker == 0) { - // configure id - area.getIDReferences().configureID(id,area); + // configure id + area.getIDReferences().configureID(id,area); - status = label.layout(blockArea); - if (status.isIncomplete()) { - return status; - } + status = label.layout(blockArea); + if (status.isIncomplete()) { + return status; + } } status = body.layout(blockArea); @@ -158,7 +124,7 @@ public class ListItem extends FObj { blockArea.end(); area.addChild(blockArea); area.increaseHeight(blockArea.getHeight()); - area.setAbsoluteHeight(blockArea.getAbsoluteHeight()); + area.setAbsoluteHeight(blockArea.getAbsoluteHeight()); this.marker = 1; return status; } @@ -166,7 +132,7 @@ public class ListItem extends FObj { blockArea.end(); area.addChild(blockArea); area.increaseHeight(blockArea.getHeight()); - area.setAbsoluteHeight(blockArea.getAbsoluteHeight()); + area.setAbsoluteHeight(blockArea.getAbsoluteHeight()); if (spaceAfter != 0) { area.addDisplaySpace(spaceAfter); @@ -176,6 +142,7 @@ public class ListItem extends FObj { if (area instanceof BlockArea) { area.start(); } + this.blockArea.isLast = true; return new Status(Status.OK); } |