KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gnu > kawa > models > DrawImage


1 package gnu.kawa.models;
2 import java.awt.*;
3 import java.awt.geom.*;
4 import java.awt.image.*;
5 import gnu.mapping.WrappedException;
6 import java.net.URL JavaDoc;
7 import gnu.text.URI_utils;
8
9 public class DrawImage extends Model
10   implements Paintable, java.io.Serializable JavaDoc
11 {
12   BufferedImage image;
13   /* #ifdef use:java.net.URI */
14   java.net.URI JavaDoc src;
15   /* #else */
16   // String src;
17
/* #endif */
18   String JavaDoc description;
19
20   public DrawImage ()
21   {
22   }
23
24   public void makeView (Display display, Object JavaDoc where)
25   {
26     display.addImage(this, where);
27   }
28
29   void loadImage ()
30   {
31     if (image == null)
32       {
33         try
34           {
35             image = javax.imageio.ImageIO.read(URI_utils.getInputStream(src));
36           }
37         catch (Throwable JavaDoc ex)
38           {
39             throw WrappedException.wrapIfNeeded(ex);
40           }
41       }
42   }
43
44   public DrawImage (BufferedImage image)
45   {
46     this.image = image;
47   }
48
49   public void paint (Graphics2D graphics)
50   {
51     loadImage();
52     graphics.drawImage(image, null, null);
53   }
54
55   public Rectangle2D getBounds2D()
56   {
57     loadImage();
58     int w = image.getWidth();
59     int h = image.getHeight();
60     return new Rectangle2D.Float(0, 0, w, h);
61   }
62
63   public Paintable transform (AffineTransform tr)
64   {
65     return new WithTransform(this, tr);
66   }
67
68   public Image getImage ()
69   {
70     loadImage();
71     return image;
72   }
73
74   public
75   /* #ifdef use:java.net.URI */
76   java.net.URI JavaDoc
77   /* #else */
78   // String
79
/* #endif */
80   getSrc () { return src; }
81
82   public void setSrc (Object JavaDoc src)
83   /* #ifdef use:java.net.URI */
84     throws java.net.URISyntaxException JavaDoc
85   /* #endif */
86   {
87     this.src = URI_utils.toURI(src);
88   }
89 }
90
Popular Tags