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 ; 7 import gnu.text.URI_utils; 8 9 public class DrawImage extends Model 10 implements Paintable, java.io.Serializable 11 { 12 BufferedImage image; 13 14 java.net.URI src; 15 16 18 String description; 19 20 public DrawImage () 21 { 22 } 23 24 public void makeView (Display display, Object 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 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 76 java.net.URI 77 78 80 getSrc () { return src; } 81 82 public void setSrc (Object src) 83 84 throws java.net.URISyntaxException 85 86 { 87 this.src = URI_utils.toURI(src); 88 } 89 } 90 | Popular Tags |