This fixes the ImageView class to also consider the base URL of the
document for relative image locations.

2006-11-02  Roman Kennke  <[EMAIL PROTECTED]>

        * javax/swing/text/html/ImageView.java
        (getImageURL): Fetch attribute from element. Consider the
        base URL for relative image locations.

/Roman

Index: javax/swing/text/html/ImageView.java
===================================================================
RCS file: /cvsroot/classpath/classpath/javax/swing/text/html/ImageView.java,v
retrieving revision 1.1
diff -u -1 -5 -r1.1 ImageView.java
--- javax/swing/text/html/ImageView.java	5 Jun 2006 12:38:30 -0000	1.1
+++ javax/swing/text/html/ImageView.java	2 Nov 2006 14:03:49 -0000
@@ -163,43 +163,46 @@
       return null;
     else
       return imageIcon.getImage();
   }
   
   /**
    * Get the URL location of the image to render. If this method returns null,
    * the "no image" icon is rendered instead. By defaul, url must be present as
    * the "src" property of the IMG tag. If it is missing, null is returned and
    * the "no image" icon is rendered.
    * 
    * @return the URL location of the image to render.
    */
   public URL getImageURL()
   {
-    Object url = getAttributes().getAttribute(Attribute.SRC);
-    if (url == null)
-      return null;
-
-    try
-      {
-        return new URL(url.toString());
-      }
-    catch (MalformedURLException e)
+    Element el = getElement();
+    String src = (String) el.getAttributes().getAttribute(Attribute.SRC);
+    URL url = null;
+    if (src != null)
       {
-        // The URL is malformed - no image.
-        return null;
+        URL base = ((HTMLDocument) getDocument()).getBase();
+        try
+          {
+            url = new URL(base, src);
+          }
+        catch (MalformedURLException ex)
+          {
+            // Return null.
+          }
       }
+    return url;
   }
 
   /**
    * Get the icon that should be displayed while the image is loading and hence
    * not yet available.
    * 
    * @return an icon, showing a non broken sheet of paper with image.
    */
   public Icon getLoadingImageIcon()
   {
     return ImageViewIconFactory.getLoadingImageIcon();
   }
   
   /**
    * Get the image loading strategy.

Reply via email to