deweese     02/04/27 15:41:58

  Modified:    resources/org/apache/batik/bridge/resources
                        Messages.properties
               sources/org/apache/batik/bridge
                        AbstractSVGGradientElementBridge.java
                        ErrorConstants.java
                        SVGColorProfileElementBridge.java SVGGVTFont.java
                        SVGImageElementBridge.java
                        SVGPatternElementBridge.java
                        SVGTextElementBridge.java SVGUtilities.java
                        URIResolver.java
               sources/org/apache/batik/gvt/text GlyphLayout.java
  Log:
  1) Fixed a bug that prevented circular refernce errors from being printed.
     (resource id had a ':' in it).
  2) Changed a bunch of code from URL to ParsedURL.
  3) Fixed a bug with empty text in flows.
  4) Fixed how lineMetrics are generated in SVGGVTFont.
  
  Revision  Changes    Path
  1.8       +1 -1      
xml-batik/resources/org/apache/batik/bridge/resources/Messages.properties
  
  Index: Messages.properties
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/resources/org/apache/batik/bridge/resources/Messages.properties,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Messages.properties       7 Mar 2002 10:47:49 -0000       1.7
  +++ Messages.properties       27 Apr 2002 22:41:57 -0000      1.8
  @@ -26,7 +26,7 @@
   {0}:{1}\n\
   The URI ''{3}'' for a CSS property found on the element <{2}> is invalid
   
  -xlink:href.circularDependencies = \
  +xlink.href.circularDependencies = \
   {0}:{1}\n\
   A circular dependency has been detected on the element <{2}> for the URI ''{3}''
   
  
  
  
  1.9       +8 -14     
xml-batik/sources/org/apache/batik/bridge/AbstractSVGGradientElementBridge.java
  
  Index: AbstractSVGGradientElementBridge.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/bridge/AbstractSVGGradientElementBridge.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractSVGGradientElementBridge.java     20 Mar 2002 16:34:43 -0000      1.8
  +++ AbstractSVGGradientElementBridge.java     27 Apr 2002 22:41:57 -0000      1.9
  @@ -11,8 +11,6 @@
   import java.awt.Color;
   import java.awt.Paint;
   import java.awt.geom.AffineTransform;
  -import java.net.MalformedURLException;
  -import java.net.URL;
   import java.util.Iterator;
   import java.util.LinkedList;
   import java.util.List;
  @@ -21,6 +19,7 @@
   import org.apache.batik.dom.util.XLinkSupport;
   import org.apache.batik.ext.awt.MultipleGradientPaint;
   import org.apache.batik.gvt.GraphicsNode;
  +import org.apache.batik.util.ParsedURL;
   
   import org.w3c.dom.Element;
   import org.w3c.dom.Node;
  @@ -33,7 +32,7 @@
    * Bridge class for vending gradients.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Thierry Kormann</a>
  - * @version $Id: AbstractSVGGradientElementBridge.java,v 1.8 2002/03/20 16:34:43 
tkormann Exp $
  + * @version $Id: AbstractSVGGradientElementBridge.java,v 1.9 2002/04/27 22:41:57 
deweese Exp $
    */
   public abstract class AbstractSVGGradientElementBridge extends AbstractSVGBridge
       implements PaintBridge, ErrorConstants {
  @@ -189,21 +188,18 @@
               }
               // check if there is circular dependencies
               SVGOMDocument doc = (SVGOMDocument)paintElement.getOwnerDocument();
  -            URL url;
  -            try {
  -                url = new URL(doc.getURLObject(), uri);
  -            } catch (MalformedURLException ex) {
  +            ParsedURL purl = new ParsedURL(doc.getURL(), uri);
  +            if (!purl.complete())
                   throw new BridgeException(paintElement,
                                             ERR_URI_MALFORMED,
                                             new Object[] {uri});
   
  -            }
  -            if (contains(refs, url)) {
  +            if (contains(refs, purl)) {
                   throw new BridgeException(paintElement,
                                             ERR_XLINK_HREF_CIRCULAR_DEPENDENCIES,
                                             new Object[] {uri});
               }
  -            refs.add(url);
  +            refs.add(purl);
               paintElement = ctx.getReferencedElement(paintElement, uri);
           }
       }
  @@ -256,13 +252,11 @@
        * @param urls the list of URLs
        * @param key the url to search for
        */
  -    private static boolean contains(List urls, URL key) {
  +    private static boolean contains(List urls, ParsedURL key) {
           Iterator iter = urls.iterator();
           while (iter.hasNext()) {
  -            URL url = (URL)iter.next();
  -            if (url.sameFile(key) && url.getRef().equals(key.getRef())) {
  +            if (key.equals(iter.next()))
                   return true;
  -            }
           }
           return false;
       }
  
  
  
  1.4       +2 -2      xml-batik/sources/org/apache/batik/bridge/ErrorConstants.java
  
  Index: ErrorConstants.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/ErrorConstants.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ErrorConstants.java       19 Sep 2001 12:11:50 -0000      1.3
  +++ ErrorConstants.java       27 Apr 2002 22:41:57 -0000      1.4
  @@ -12,7 +12,7 @@
    * The error code.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Thierry Kormann</a>
  - * @version $Id: ErrorConstants.java,v 1.3 2001/09/19 12:11:50 deweese Exp $
  + * @version $Id: ErrorConstants.java,v 1.4 2002/04/27 22:41:57 deweese Exp $
    */
   public interface ErrorConstants {
   
  @@ -66,7 +66,7 @@
        * {0} = the uri
        */
       public static final String ERR_XLINK_HREF_CIRCULAR_DEPENDENCIES
  -        = "xlink:href.circularDependencies";
  +        = "xlink.href.circularDependencies";
   
       /**
        * The error code when the bridge try to load a URI
  
  
  
  1.9       +8 -8      
xml-batik/sources/org/apache/batik/bridge/SVGColorProfileElementBridge.java
  
  Index: SVGColorProfileElementBridge.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGColorProfileElementBridge.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SVGColorProfileElementBridge.java 2 May 2001 15:50:02 -0000       1.8
  +++ SVGColorProfileElementBridge.java 27 Apr 2002 22:41:57 -0000      1.9
  @@ -12,14 +12,14 @@
   import java.awt.color.ICC_ColorSpace;
   import java.awt.color.ICC_Profile;
   import java.io.IOException;
  -import java.net.MalformedURLException;
  -import java.net.URL;
   
   import org.apache.batik.dom.svg.SVGOMDocument;
   import org.apache.batik.dom.util.XLinkSupport;
   import org.apache.batik.ext.awt.color.ICCColorSpaceExt;
   import org.apache.batik.ext.awt.color.NamedProfileCache;
  +
   import org.apache.batik.util.SVGConstants;
  +import org.apache.batik.util.ParsedURL;
   
   import org.w3c.dom.Document;
   import org.w3c.dom.Element;
  @@ -31,7 +31,7 @@
    * <tt>ICC_ColorSpace</tt> object.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Hardy</a>
  - * @version $Id: SVGColorProfileElementBridge.java,v 1.8 2001/05/02 15:50:02 
tkormann Exp $ */
  + * @version $Id: SVGColorProfileElementBridge.java,v 1.9 2002/04/27 22:41:57 
deweese Exp $ */
   public class SVGColorProfileElementBridge extends AbstractSVGBridge
       implements ErrorConstants {
   
  @@ -94,13 +94,13 @@
           String href = XLinkSupport.getXLinkHref(profile);
           ICC_Profile p = null;
           if (href != null) {
  -            try{
  -                URL baseURL = ((SVGOMDocument)doc).getURLObject();
  -                URL url = new URL(baseURL, href);
  -                p = ICC_Profile.getInstance(url.openStream());
  -            } catch(MalformedURLException e) {
  +            String baseURI= ((SVGOMDocument)doc).getURL();
  +            ParsedURL purl = new ParsedURL(baseURI, href);
  +            if (!purl.complete()) 
                   throw new BridgeException(paintedElement, ERR_URI_MALFORMED,
                                             new Object[] {href});
  +            try{
  +                p = ICC_Profile.getInstance(purl.openStream());
               } catch(IOException e) {
                   throw new BridgeException(paintedElement, ERR_URI_IO,
                                             new Object[] {href});
  
  
  
  1.9       +12 -32    xml-batik/sources/org/apache/batik/bridge/SVGGVTFont.java
  
  Index: SVGGVTFont.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGGVTFont.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SVGGVTFont.java   18 Mar 2002 10:28:19 -0000      1.8
  +++ SVGGVTFont.java   27 Apr 2002 22:41:57 -0000      1.9
  @@ -42,7 +42,7 @@
    * Represents an SVG font.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Bella Robinson</a>
  - * @version $Id: SVGGVTFont.java,v 1.8 2002/03/18 10:28:19 hillion Exp $
  + * @version $Id: SVGGVTFont.java,v 1.9 2002/04/27 22:41:57 deweese Exp $
    */
   public final class SVGGVTFont implements GVTFont, SVGConstants {
   
  @@ -767,53 +767,33 @@
        */
       public GVTLineMetrics getLineMetrics(CharacterIterator ci, int beginIndex,
                                            int limit, FontRenderContext frc) {
  -
  -        // first create the character iterator that represents the subset
  -        // from beginIndex to limit
  -        String s = "";
  -        char c = ci.setIndex(beginIndex);
  -        int currentIndex = beginIndex;
  -
  -        while (c != ci.DONE && currentIndex < limit) {
  -            s += c;
  -            currentIndex++;
  -            c = ci.next();
  -        }
  -
  -        StringCharacterIterator sci = new StringCharacterIterator(s);
  -        GVTGlyphVector gv = createGlyphVector(frc, sci);
  -
           float fontHeight = fontFace.getUnitsPerEm();
           float scale = fontSize/fontHeight;
   
           float ascent = fontFace.getAscent() * scale;
           float descent = fontFace.getDescent() * scale;
   
  -        int numGlyphs = gv.getNumGlyphs();
  -
  -        float[] baselineOffsets = new float[numGlyphs];
  -        for (int i = 0; i < numGlyphs; i++) {
  -            baselineOffsets[i] =
  -                (float)( gv.getGlyphMetrics(i).getBounds2D().getMaxY()
  -                         - gv.getGlyphPosition(i).getY());
  -        }
  +        float[] baselineOffsets = new float[3];
  +        baselineOffsets[Font.ROMAN_BASELINE]   = 0;
  +        baselineOffsets[Font.CENTER_BASELINE]  = (ascent+descent)/2-ascent;
  +        baselineOffsets[Font.HANGING_BASELINE] = -ascent;
   
           float strikethroughOffset = fontFace.getStrikethroughPosition() *
               -scale;
           float strikethroughThickness = fontFace.getStrikethroughThickness() *
               scale;
  -        float underlineOffset = fontFace.getUnderlinePosition() * scale;
  +        float underlineOffset    = fontFace.getUnderlinePosition()  * scale;
           float underlineThickness = fontFace.getUnderlineThickness() * scale;
  -        float overlineOffset = fontFace.getOverlinePosition() * -scale;
  -        float overlineThickness = fontFace.getOverlineThickness() * scale;
  +        float overlineOffset     = fontFace.getOverlinePosition()   * -scale;
  +        float overlineThickness  = fontFace.getOverlineThickness()  * scale;
   
   
           return new GVTLineMetrics(ascent, Font.ROMAN_BASELINE,
                                     baselineOffsets, descent, fontHeight,
  -                                  fontHeight, numGlyphs, strikethroughOffset,
  -                                  strikethroughThickness, underlineOffset,
  -                                  underlineThickness, overlineOffset,
  -                                  overlineThickness);
  +                                  fontHeight, limit-beginIndex, 
  +                                  strikethroughOffset, strikethroughThickness,
  +                                  underlineOffset, underlineThickness, 
  +                                  overlineOffset, overlineThickness);
       }
   
       /**
  
  
  
  1.44      +1 -3      
xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java
  
  Index: SVGImageElementBridge.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGImageElementBridge.java,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- SVGImageElementBridge.java        21 Mar 2002 10:59:34 -0000      1.43
  +++ SVGImageElementBridge.java        27 Apr 2002 22:41:57 -0000      1.44
  @@ -16,8 +16,6 @@
   import java.awt.geom.Rectangle2D;
   import java.awt.geom.Rectangle2D;
   import java.io.IOException;
  -import java.net.MalformedURLException;
  -import java.net.URL;
   import java.util.Map;
   
   import org.apache.batik.css.engine.SVGCSSEngine;
  @@ -57,7 +55,7 @@
    * Bridge class for the &lt;image> element.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Thierry Kormann</a>
  - * @version $Id: SVGImageElementBridge.java,v 1.43 2002/03/21 10:59:34 hillion Exp $
  + * @version $Id: SVGImageElementBridge.java,v 1.44 2002/04/27 22:41:57 deweese Exp $
    */
   public class SVGImageElementBridge extends AbstractGraphicsNodeBridge {
   
  
  
  
  1.22      +13 -18    
xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java
  
  Index: SVGPatternElementBridge.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- SVGPatternElementBridge.java      23 Jan 2002 14:14:07 -0000      1.21
  +++ SVGPatternElementBridge.java      27 Apr 2002 22:41:57 -0000      1.22
  @@ -11,8 +11,6 @@
   import java.awt.Paint;
   import java.awt.geom.AffineTransform;
   import java.awt.geom.Rectangle2D;
  -import java.net.MalformedURLException;
  -import java.net.URL;
   import java.util.Iterator;
   import java.util.LinkedList;
   import java.util.List;
  @@ -29,6 +27,8 @@
   import org.apache.batik.gvt.GraphicsNode;
   import org.apache.batik.gvt.PatternPaint;
   
  +import org.apache.batik.util.ParsedURL;
  +
   import org.w3c.dom.Element;
   import org.w3c.dom.Node;
   
  @@ -36,7 +36,7 @@
    * Bridge class for the &lt;pattern> element.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Thierry Kormann</a>
  - * @version $Id: SVGPatternElementBridge.java,v 1.21 2002/01/23 14:14:07 deweese 
Exp $
  + * @version $Id: SVGPatternElementBridge.java,v 1.22 2002/04/27 22:41:57 deweese 
Exp $
    */
   public class SVGPatternElementBridge extends AbstractSVGBridge
       implements PaintBridge, ErrorConstants {
  @@ -233,21 +233,18 @@
               // check if there is circular dependencies
               SVGOMDocument doc =
                   (SVGOMDocument)patternElement.getOwnerDocument();
  -            URL url;
  -            try {
  -                url = new URL(doc.getURLObject(), uri);
  -            } catch (MalformedURLException ex) {
  +            ParsedURL purl = new ParsedURL(doc.getURL(), uri);
  +            if (!purl.complete())
                   throw new BridgeException(patternElement,
                                             ERR_URI_MALFORMED,
                                             new Object[] {uri});
   
  -            }
  -            if (contains(refs, url)) {
  +            if (contains(refs, purl)) {
                   throw new BridgeException(patternElement,
                                             ERR_XLINK_HREF_CIRCULAR_DEPENDENCIES,
                                             new Object[] {uri});
               }
  -            refs.add(url);
  +            refs.add(purl);
               patternElement = ctx.getReferencedElement(patternElement, uri);
           }
       }
  @@ -284,18 +281,16 @@
       }
   
       /**
  -     * Returns true if the specified list of URLs contains the specified url.
  +     * Returns true if the specified list of ParsedURLs contains the
  +     * specified url.
        *
  -     * @param urls the list of URLs
  -     * @param key the url to search for
  -     */
  -    private static boolean contains(List urls, URL key) {
  +     * @param urls the list of ParsedURLs
  +     * @param key the url to search for */
  +    private static boolean contains(List urls, ParsedURL key) {
           Iterator iter = urls.iterator();
           while (iter.hasNext()) {
  -            URL url = (URL)iter.next();
  -            if (url.sameFile(key) && url.getRef().equals(key.getRef())) {
  +            if (key.equals(iter.next()))
                   return true;
  -            }
           }
           return false;
       }
  
  
  
  1.64      +2 -3      
xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java
  
  Index: SVGTextElementBridge.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGTextElementBridge.java,v
  retrieving revision 1.63
  retrieving revision 1.64
  diff -u -r1.63 -r1.64
  --- SVGTextElementBridge.java 26 Apr 2002 08:48:53 -0000      1.63
  +++ SVGTextElementBridge.java 27 Apr 2002 22:41:57 -0000      1.64
  @@ -19,8 +19,7 @@
   import java.awt.geom.AffineTransform;
   import java.awt.geom.Point2D;
   import java.io.StringReader;
  -import java.net.MalformedURLException;
  -import java.net.URL;
  +
   import java.text.AttributedCharacterIterator;
   import java.text.AttributedCharacterIterator.Attribute;
   import java.text.AttributedString;
  @@ -69,7 +68,7 @@
    *
    * @author <a href="[EMAIL PROTECTED]">Stephane Hillion</a>
    * @author <a href="[EMAIL PROTECTED]">Bill Haneman</a>
  - * @version $Id: SVGTextElementBridge.java,v 1.63 2002/04/26 08:48:53 vhardy Exp $
  + * @version $Id: SVGTextElementBridge.java,v 1.64 2002/04/27 22:41:57 deweese Exp $
    */
   public class SVGTextElementBridge extends AbstractGraphicsNodeBridge {
   
  
  
  
  1.20      +19 -18    xml-batik/sources/org/apache/batik/bridge/SVGUtilities.java
  
  Index: SVGUtilities.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGUtilities.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- SVGUtilities.java 18 Mar 2002 10:28:20 -0000      1.19
  +++ SVGUtilities.java 27 Apr 2002 22:41:57 -0000      1.20
  @@ -37,6 +37,7 @@
   import org.apache.batik.parser.PreserveAspectRatioParser;
   
   import org.apache.batik.util.SVGConstants;
  +import org.apache.batik.util.ParsedURL;
   
   import org.w3c.dom.Element;
   import org.w3c.dom.Node;
  @@ -52,7 +53,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Thierry Kormann</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: SVGUtilities.java,v 1.19 2002/03/18 10:28:20 hillion Exp $
  + * @version $Id: SVGUtilities.java,v 1.20 2002/04/27 22:41:57 deweese Exp $
    */
   public abstract class SVGUtilities implements SVGConstants, ErrorConstants {
   
  @@ -259,25 +260,25 @@
                   return "";
               }
               SVGDocument svgDoc = (SVGDocument)e.getOwnerDocument();
  -            URL baseURL = ((SVGOMDocument)svgDoc).getURLObject();
  -            try {
  -                URL url = new URL(baseURL, uriStr);
  -                Iterator iter = refs.iterator();
  -                while (iter.hasNext()) {
  -                    URL urlTmp = (URL)iter.next();
  -                    if (urlTmp.sameFile(url) &&
  -                        urlTmp.getRef().equals(url.getRef())) {
  -                        throw new BridgeException
  -                            (e, ERR_XLINK_HREF_CIRCULAR_DEPENDENCIES,
  -                             new Object[] {uriStr});
  -                    }
  -                }
  -                URIResolver resolver = new URIResolver(svgDoc, loader);
  -                e = resolver.getElement(url.toString(), e);
  -                refs.add(url);
  -            } catch(MalformedURLException ex) {
  +            String baseURI = ((SVGOMDocument)svgDoc).getURL();
  +
  +            ParsedURL purl = new ParsedURL(baseURI, uriStr);
  +            if (!purl.complete()) 
                   throw new BridgeException(e, ERR_URI_MALFORMED,
                                             new Object[] {uriStr});
  +
  +            Iterator iter = refs.iterator();
  +            while (iter.hasNext()) {
  +                if (purl.equals(iter.next())) 
  +                    throw new BridgeException
  +                        (e, ERR_XLINK_HREF_CIRCULAR_DEPENDENCIES,
  +                         new Object[] {uriStr});
  +            }
  +
  +            try {
  +                URIResolver resolver = new URIResolver(svgDoc, loader);
  +                e = resolver.getElement(purl.toString(), e);
  +                refs.add(purl);
               } catch(IOException ex) {
                   throw new BridgeException(e, ERR_URI_IO,
                                             new Object[] {uriStr});
  
  
  
  1.16      +1 -2      xml-batik/sources/org/apache/batik/bridge/URIResolver.java
  
  Index: URIResolver.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/URIResolver.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- URIResolver.java  18 Mar 2002 10:28:20 -0000      1.15
  +++ URIResolver.java  27 Apr 2002 22:41:57 -0000      1.16
  @@ -10,7 +10,6 @@
   
   import java.io.IOException;
   import java.net.MalformedURLException;
  -import java.net.URL;
   import org.apache.batik.dom.svg.SVGOMDocument;
   import org.apache.batik.dom.svg.XMLBaseSupport;
   import org.apache.batik.dom.util.XLinkSupport;
  @@ -25,7 +24,7 @@
    * This class is used to resolve the URI that can be found in a SVG document.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: URIResolver.java,v 1.15 2002/03/18 10:28:20 hillion Exp $
  + * @version $Id: URIResolver.java,v 1.16 2002/04/27 22:41:57 deweese Exp $
    */
   public class URIResolver {
       /**
  
  
  
  1.40      +7 -3      xml-batik/sources/org/apache/batik/gvt/text/GlyphLayout.java
  
  Index: GlyphLayout.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/text/GlyphLayout.java,v
  retrieving revision 1.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- GlyphLayout.java  12 Apr 2002 14:36:48 -0000      1.39
  +++ GlyphLayout.java  27 Apr 2002 22:41:57 -0000      1.40
  @@ -47,7 +47,7 @@
    * @see org.apache.batik.gvt.text.TextSpanLayout
    *
    * @author <a href="[EMAIL PROTECTED]>Bill Haneman</a>
  - * @version $Id: GlyphLayout.java,v 1.39 2002/04/12 14:36:48 deweese Exp $
  + * @version $Id: GlyphLayout.java,v 1.40 2002/04/27 22:41:57 deweese Exp $
    */
   public class GlyphLayout implements TextSpanLayout {
   
  @@ -2214,8 +2214,12 @@
               gv.setGlyphPosition(i, new Point2D.Float(x, y));
           }
   
  -        float x = lineLoc.x + (gp[2*i]  -xOrig)*xScale+xAdj;
  -        float y = lineLoc.y + (gp[2*i+1]-yOrig);
  +        float x = xOrig;
  +        float y = yOrig;
  +        if (lineLoc != null) {
  +            x = lineLoc.x + (gp[2*i]  -xOrig)*xScale+xAdj;
  +            y = lineLoc.y + (gp[2*i+1]-yOrig);
  +        }
           gv.setGlyphPosition(i, new Point2D.Float(x, y));
       }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to