From 006e7df9a1007f531e701d072f1fb50217f6d029 Mon Sep 17 00:00:00 2001 From: arved Date: Tue, 24 Jul 2001 00:57:57 +0000 Subject: [PATCH] AHS: adding support for 'returned-by' git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194366 13f79535-47bb-0310-9956-ffa450edef68 --- src/org/apache/fop/fo/flow/ListBlock.java | 72 ++++++------------- src/org/apache/fop/fo/flow/ListItem.java | 87 +++++++---------------- 2 files changed, 47 insertions(+), 112 deletions(-) diff --git a/src/org/apache/fop/fo/flow/ListBlock.java b/src/org/apache/fop/fo/flow/ListBlock.java index e7fbd4ed1..f805deef1 100644 --- a/src/org/apache/fop/fo/flow/ListBlock.java +++ b/src/org/apache/fop/fo/flow/ListBlock.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 . For more information on the Apache - Software Foundation, please see . - +/*-- $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; @@ -136,9 +91,21 @@ public class ListBlock extends FObj { } BlockArea blockArea = new BlockArea(propMgr.getFontState(area.getFontInfo()), - area.getAllocationWidth(), - area.spaceLeft(), startIndent, endIndent, 0, align, - alignLast, lineHeight); + area.getAllocationWidth(), + area.spaceLeft(), startIndent, endIndent, 0, align, + alignLast, lineHeight); + blockArea.generatedBy = this; + this.areasGenerated++; + if (this.areasGenerated == 1) + blockArea.isFirst = true; + // for normal areas this should be the only pair + blockArea.addLineagePair(this, this.areasGenerated); + + // markers + if (this.hasMarkers()) + blockArea.addMarkers(this.getMarkers()); + + blockArea.setPage(area.getPage()); blockArea.setBackgroundColor(backgroundColor); blockArea.start(); @@ -180,6 +147,7 @@ public class ListBlock extends FObj { area.start(); } + blockArea.isLast = true; return new Status(Status.OK); } 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 . For more information on the Apache - Software Foundation, please see . - +/*-- $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); } -- 2.39.5