You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ar...@locus.apache.org on 2000/06/14 03:57:56 UTC
cvs commit: xml-fop/src/org/apache/fop/layout Area.java
arved 00/06/13 18:57:54
Modified: src/org/apache/fop/layout Area.java
Log:
NEW: Simple link mods
Revision Changes Path
1.10 +291 -255 xml-fop/src/org/apache/fop/layout/Area.java
Index: Area.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/layout/Area.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Area.java 2000/03/07 09:47:34 1.9
+++ Area.java 2000/06/14 01:57:54 1.10
@@ -1,255 +1,291 @@
-/*-- $Id: Area.java,v 1.9 2000/03/07 09:47:34 fotis Exp $ --
-
- ============================================================================
- 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 <jt...@jtauber.com>. For more information on the Apache
- Software Foundation, please see <http://www.apache.org/>.
-
- */
-
-package org.apache.fop.layout;
-
-// FOP
-import org.apache.fop.datatypes.*;
-
-// Java
-import java.util.Vector;
-
-abstract public class Area extends Box {
-
- /* nominal font size and nominal font family incorporated in
- fontState */
- protected FontState fontState;
-
- protected Vector children = new Vector();
-
- /* max size in line-progression-direction */
- protected int maxHeight;
-
- protected int currentHeight = 0;
-
- protected int contentRectangleWidth;
-
- protected int allocationWidth;
-
- /* the page this area is on */
- protected Page page;
-
- protected ColorType backgroundColor;
-
- protected int paddingTop;
- protected int paddingLeft;
- protected int paddingBottom;
- protected int paddingRight;
-
- public int borderWidthTop;
- public int borderWidthLeft;
- public int borderWidthRight;
- public int borderWidthBottom;
- public int borderStyleTop;
- public int borderStyleLeft;
- public int borderStyleRight;
- public int borderStyleBottom;
- public ColorType borderColorTop;
- public ColorType borderColorLeft;
- public ColorType borderColorRight;
- public ColorType borderColorBottom;
-
- public Area (FontState fontState) {
- this.fontState = fontState;
- }
-
- public Area (FontState fontState, int allocationWidth, int maxHeight) {
- this.fontState = fontState;
- this.allocationWidth = allocationWidth;
- this.contentRectangleWidth = allocationWidth;
- this.maxHeight = maxHeight;
- }
-
- public void addChild(Box child) {
- this.children.addElement(child);
- child.parent = this;
- }
-
- public void addChildAtStart(Box child) {
- this.children.insertElementAt(child,0);
- child.parent = this;
- }
-
- public void addDisplaySpace(int size) {
- this.addChild(new DisplaySpace(size));
- this.currentHeight += size;
- }
-
- public FontInfo getFontInfo() {
- return this.page.getFontInfo();
- }
-
- public void end() {
- }
-
- public int getAllocationWidth() {
- return this.allocationWidth - paddingLeft - paddingRight - borderWidthLeft - borderWidthRight;
- }
-
- public Vector getChildren() {
- return this.children;
- }
-
- public int getContentWidth() {
- return contentRectangleWidth - paddingLeft - paddingRight - borderWidthLeft - borderWidthRight;
- }
-
- public FontState getFontState() {
- return this.fontState;
- }
-
- public int getContentHeight() {
- return this.currentHeight;
- }
-
- public int getHeight() {
- return this.currentHeight + paddingTop + paddingBottom + borderWidthTop + borderWidthBottom;
- }
-
- public int getMaxHeight() {
- return this.maxHeight - paddingTop - paddingBottom - borderWidthTop - borderWidthBottom;
- }
-
- public Page getPage() {
- return this.page;
- }
-
- public ColorType getBackgroundColor() {
- return this.backgroundColor;
- }
-
- public int getPaddingTop() {
- return this.paddingTop;
- }
-
- public int getPaddingLeft() {
- return this.paddingLeft;
- }
-
- public int getPaddingBottom() {
- return this.paddingBottom;
- }
-
- public int getPaddingRight() {
- return this.paddingRight;
- }
-
- public void increaseHeight(int amount) {
- this.currentHeight += amount;
- }
-
- protected void removeChild(Area area) {
- this.currentHeight -= area.getHeight();
- this.children.removeElement(area);
- }
-
- public void remove() {
- this.parent.removeChild(this);
- }
-
- public void setPage(Page page) {
- this.page = page;
- }
-
- public void setBackgroundColor(ColorType bgColor) {
- this.backgroundColor = bgColor;
- }
-
- public void setPadding(int top, int left, int bottom, int right) {
- this.paddingTop = top;
- this.paddingLeft = left;
- this.paddingBottom = bottom;
- this.paddingRight = right;
- }
-
- public void setBorderWidth(int top, int left, int bottom, int right) {
- this.borderWidthTop = top;
- this.borderWidthLeft = left;
- this.borderWidthBottom = bottom;
- this.borderWidthRight = right;
- }
-
- public void setBorderStyle(int top, int left, int bottom, int right) {
- this.borderStyleTop = top;
- this.borderStyleLeft = left;
- this.borderStyleBottom = bottom;
- this.borderStyleRight = right;
- }
-
- public void setBorderColor(ColorType top, ColorType left, ColorType bottom, ColorType right) {
- this.borderColorTop = top;
- this.borderColorLeft = left;
- this.borderColorBottom = bottom;
- this.borderColorRight = right;
- }
-
- public int spaceLeft() {
- return maxHeight - currentHeight;
- }
-
- public void start() {
- }
-
- public void setHeight(int height) {
- if (height > currentHeight)
- currentHeight = height;
- if (currentHeight > getMaxHeight())
- currentHeight = getMaxHeight();
- }
-
- public void setMaxHeight(int height) {
- this.maxHeight = height;
- }
-
- public Area getParent() {
- return this.parent;
- }
-}
+/*-- $Id: Area.java,v 1.10 2000/06/14 01:57:54 arved Exp $ --
+
+ ============================================================================
+ 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 <jt...@jtauber.com>. For more information on the Apache
+ Software Foundation, please see <http://www.apache.org/>.
+
+ */
+
+package org.apache.fop.layout;
+
+// FOP
+import org.apache.fop.datatypes.*;
+
+// Java
+import java.util.Vector;
+
+abstract public class Area extends Box {
+
+ /* nominal font size and nominal font family incorporated in
+ fontState */
+ protected FontState fontState;
+
+ protected Vector children = new Vector();
+
+ /* max size in line-progression-direction */
+ protected int maxHeight;
+
+ protected int currentHeight = 0;
+
+ // used to keep track of the current x position within a table. Required for drawing rectangle links.
+ protected int tableCellXOffset = 0;
+
+ // used to keep track of the absolute height on the page. Required for drawing rectangle links.
+ private int absoluteHeight = 0;
+
+ protected int contentRectangleWidth;
+
+ protected int allocationWidth;
+
+ /* the page this area is on */
+ protected Page page;
+
+ protected ColorType backgroundColor;
+
+ protected int paddingTop;
+ protected int paddingLeft;
+ protected int paddingBottom;
+ protected int paddingRight;
+
+ public int borderWidthTop;
+ public int borderWidthLeft;
+ public int borderWidthRight;
+ public int borderWidthBottom;
+ public int borderStyleTop;
+ public int borderStyleLeft;
+ public int borderStyleRight;
+ public int borderStyleBottom;
+ public ColorType borderColorTop;
+ public ColorType borderColorLeft;
+ public ColorType borderColorRight;
+ public ColorType borderColorBottom;
+
+ public Area (FontState fontState) {
+ this.fontState = fontState;
+ }
+
+ public Area (FontState fontState, int allocationWidth, int maxHeight) {
+ this.fontState = fontState;
+ this.allocationWidth = allocationWidth;
+ this.contentRectangleWidth = allocationWidth;
+ this.maxHeight = maxHeight;
+ }
+
+ public void addChild(Box child) {
+ this.children.addElement(child);
+ child.parent = this;
+ }
+
+ public void addChildAtStart(Box child) {
+ this.children.insertElementAt(child,0);
+ child.parent = this;
+ }
+
+ public void addDisplaySpace(int size) {
+ this.addChild(new DisplaySpace(size));
+ this.absoluteHeight += size;
+ this.currentHeight += size;
+ }
+
+ public FontInfo getFontInfo() {
+ return this.page.getFontInfo();
+ }
+
+ public void end() {
+ }
+
+ public int getAllocationWidth() {
+ return this.allocationWidth - paddingLeft - paddingRight - borderWidthLeft - borderWidthRight;
+ }
+
+ public Vector getChildren() {
+ return this.children;
+ }
+
+ public int getContentWidth() {
+ return contentRectangleWidth - paddingLeft - paddingRight - borderWidthLeft - borderWidthRight;
+ }
+
+ public FontState getFontState() {
+ return this.fontState;
+ }
+
+ public int getContentHeight() {
+ return this.currentHeight;
+ }
+
+ public int getHeight() {
+ return this.currentHeight + paddingTop + paddingBottom + borderWidthTop + borderWidthBottom;
+ }
+
+ public int getMaxHeight() {
+ return this.maxHeight - paddingTop - paddingBottom - borderWidthTop - borderWidthBottom;
+ }
+
+ public Page getPage() {
+ return this.page;
+ }
+
+ public ColorType getBackgroundColor() {
+ return this.backgroundColor;
+ }
+
+ public int getPaddingTop() {
+ return this.paddingTop;
+ }
+
+ public int getPaddingLeft() {
+ return this.paddingLeft;
+ }
+
+ public int getPaddingBottom() {
+ return this.paddingBottom;
+ }
+
+ public int getPaddingRight() {
+ return this.paddingRight;
+ }
+
+ public int getTableCellXOffset()
+ {
+ return tableCellXOffset;
+ }
+
+ public void setTableCellXOffset(int offset)
+ {
+ tableCellXOffset=offset;
+ }
+
+ public int getAbsoluteHeight()
+ {
+ return absoluteHeight;
+ }
+
+ public void setAbsoluteHeight(int value)
+ {
+ absoluteHeight=value;
+ }
+
+ public void increaseAbsoluteHeight(int value)
+ {
+ absoluteHeight+=value;
+ }
+
+ public void increaseHeight(int amount) {
+ this.currentHeight += amount;
+ this.absoluteHeight += amount;
+ }
+
+ protected void removeChild(Area area) {
+ this.currentHeight -= area.getHeight();
+ this.absoluteHeight -= area.getHeight();
+ this.children.removeElement(area);
+ }
+
+ public void remove() {
+ this.parent.removeChild(this);
+ }
+
+ public void setPage(Page page) {
+ this.page = page;
+ }
+
+ public void setBackgroundColor(ColorType bgColor) {
+ this.backgroundColor = bgColor;
+ }
+
+ public void setPadding(int top, int left, int bottom, int right) {
+ this.paddingTop = top;
+ this.paddingLeft = left;
+ this.paddingBottom = bottom;
+ this.paddingRight = right;
+ }
+
+ public void setBorderWidth(int top, int left, int bottom, int right) {
+ this.borderWidthTop = top;
+ this.borderWidthLeft = left;
+ this.borderWidthBottom = bottom;
+ this.borderWidthRight = right;
+ }
+
+ public void setBorderStyle(int top, int left, int bottom, int right) {
+ this.borderStyleTop = top;
+ this.borderStyleLeft = left;
+ this.borderStyleBottom = bottom;
+ this.borderStyleRight = right;
+ }
+
+ public void setBorderColor(ColorType top, ColorType left, ColorType bottom, ColorType right) {
+ this.borderColorTop = top;
+ this.borderColorLeft = left;
+ this.borderColorBottom = bottom;
+ this.borderColorRight = right;
+ }
+
+ public int spaceLeft() {
+ return maxHeight - currentHeight;
+ }
+
+ public void start() {
+ }
+
+ public void setHeight(int height) {
+ if (height > currentHeight)
+ currentHeight = height;
+ absoluteHeight = height;
+ if (currentHeight > getMaxHeight())
+ currentHeight = getMaxHeight();
+ absoluteHeight = getMaxHeight();
+ }
+
+ public void setMaxHeight(int height) {
+ this.maxHeight = height;
+ }
+
+ public Area getParent() {
+ return this.parent;
+ }
+}