From: William Victor Mote Date: Mon, 14 Jul 2003 00:41:35 +0000 (+0000) Subject: extract methods computeXOffset() and computeYOffset() from getInlineArea() X-Git-Tag: Root_Temp_KnuthStylePageBreaking~1290 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e463f0fad310b021fcbd4d2e805e64cb55733d12;p=xmlgraphics-fop.git extract methods computeXOffset() and computeYOffset() from getInlineArea() git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196695 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/java/org/apache/fop/fo/flow/InstreamForeignObject.java b/src/java/org/apache/fop/fo/flow/InstreamForeignObject.java index 5f71404fd..fd164146a 100644 --- a/src/java/org/apache/fop/fo/flow/InstreamForeignObject.java +++ b/src/java/org/apache/fop/fo/flow/InstreamForeignObject.java @@ -3,34 +3,34 @@ * ============================================================================ * The Apache Software License, Version 1.1 * ============================================================================ - * + * * Copyright (C) 1999-2003 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 @@ -42,12 +42,12 @@ * (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 . - */ + */ package org.apache.fop.fo.flow; // FOP @@ -254,37 +254,9 @@ public class InstreamForeignObject extends FObj { } } - int xoffset = 0; - int yoffset = 0; - int da = properties.get("display-align").getEnum(); - switch (da) { - case DisplayAlign.BEFORE: - break; - case DisplayAlign.AFTER: - yoffset = bpd - cheight; - break; - case DisplayAlign.CENTER: - yoffset = (bpd - cheight) / 2; - break; - case DisplayAlign.AUTO: - default: - break; - } + int xoffset = computeXOffset(ipd, cwidth); + int yoffset = computeYOffset(bpd, cheight); - int ta = properties.get("text-align").getEnum(); - switch (ta) { - case TextAlign.CENTER: - xoffset = (ipd - cwidth) / 2; - break; - case TextAlign.END: - xoffset = ipd - cwidth; - break; - case TextAlign.START: - break; - case TextAlign.JUSTIFY: - default: - break; - } Rectangle2D placement = new Rectangle2D.Float(xoffset, yoffset, cwidth, cheight); Document doc = child.getDocument(); @@ -303,6 +275,44 @@ public class InstreamForeignObject extends FObj { return areaCurrent; } + private int computeXOffset (int ipd, int cwidth) { + int xoffset = 0; + int ta = properties.get("text-align").getEnum(); + switch (ta) { + case TextAlign.CENTER: + xoffset = (ipd - cwidth) / 2; + break; + case TextAlign.END: + xoffset = ipd - cwidth; + break; + case TextAlign.START: + break; + case TextAlign.JUSTIFY: + default: + break; + } + return xoffset; + } + + private int computeYOffset(int bpd, int cheight) { + int yoffset = 0; + int da = properties.get("display-align").getEnum(); + switch (da) { + case DisplayAlign.BEFORE: + break; + case DisplayAlign.AFTER: + yoffset = bpd - cheight; + break; + case DisplayAlign.CENTER: + yoffset = (bpd - cheight) / 2; + break; + case DisplayAlign.AUTO: + default: + break; + } + return yoffset; + } + /** * This flow object generates inline areas. * @see org.apache.fop.fo.FObj#generatesInlineAreas()