001    package org.util.xml.renderer.html;
002    
003    import org.util.xml.parse.policy.*;
004    import org.util.xml.parse.*;
005    import org.util.xml.element.*;
006    import java.awt.*;
007    import java.awt.event.*;
008    import java.awt.geom.*;
009    import javax.swing.*;
010    import javax.swing.event.*;
011    import java.util.*;
012    import java.awt.font.*;
013    import java.awt.image.*;
014    import java.net.*;
015    
016    public class HTMLImage extends HTMLObject {
017    
018            BufferedImage image_;
019    
020            public HTMLImage(TagElement tag) {
021                    String url_text = tag.getAttributeValue("src");
022                    URI uri = tag.getDocumentBase().resolve(url_text);
023    //              alert("img :"+url_text);
024                    try{
025                            image_ = javax.imageio.ImageIO.read(uri.toURL());
026                            setPreferredSize(image_.getWidth(), image_.getHeight());
027                            setPreferredLocation(0,0);
028                    }catch(Exception e){
029                            image_ = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);
030                            Graphics g = image_.getGraphics();
031                            g.drawLine(0,99,99,0);
032                            g.drawLine(0,0,99,99);
033                            e.printStackTrace();
034                    }
035            }
036    
037            public void paint(Graphics g) {
038                    debug("draw start");
039                    debug(preferred_width_+"");
040                    g.drawImage(image_, (int)x_, (int)y_, null);
041                    debug("draw end");
042            }
043            
044            public Element allowElement(Element element) {
045                    if(element.isTagElement()) {
046                            TagElement tag = (TagElement)element;
047                            if(tag.getKey().equals("img")) {
048                                    write(new HTMLImage(tag));
049                            } else {
050                                    System.out.println("tag["+tag+"]");
051                            }
052                    } else {
053                            TextElement text_element = (TextElement)element;
054    //                      System.out.println("text["+element+"]");
055                            html_text = text_element.getValue();
056                    }
057                    return element;
058            }
059    
060    }