KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > editor2d > figures > ImageFigure


1 /**
2  * <p> Project: com.nightlabs.editor2d </p>
3  * <p> Copyright: Copyright (c) 2004 </p>
4  * <p> Company: NightLabs GmbH (Germany) </p>
5  * <p> Creation Date: 21.03.2005 </p>
6  * <p> Author: Daniel Mazurek </p>
7 **/

8 package com.nightlabs.editor2d.figures;
9
10 import java.awt.geom.AffineTransform JavaDoc;
11 import java.awt.image.BufferedImage JavaDoc;
12
13 import org.apache.log4j.Logger;
14 import org.eclipse.draw2d.Figure;
15 import org.eclipse.draw2d.Graphics;
16 import org.eclipse.draw2d.J2DGraphics;
17 import org.eclipse.draw2d.geometry.Rectangle;
18
19 public class ImageFigure
20 extends Figure
21 {
22   public static final Logger LOGGER = Logger.getLogger(ImageFigure.class);
23   
24   public ImageFigure(BufferedImage JavaDoc image)
25   {
26     super();
27     this.bufferedImage = image;
28   }
29   
30   protected AffineTransform JavaDoc at = new AffineTransform JavaDoc();
31   
32   protected BufferedImage JavaDoc bufferedImage;
33   public BufferedImage JavaDoc getBufferedImage() {
34     return bufferedImage;
35   }
36   public void setBufferedImage(BufferedImage JavaDoc image) {
37     this.bufferedImage = image;
38     bounds = null;
39   }
40     
41   protected J2DGraphics j2d;
42   protected void paintFigure(Graphics graphics)
43   {
44     if (graphics instanceof J2DGraphics)
45     {
46       j2d = (J2DGraphics) graphics;
47       if (bufferedImage != null) {
48 // j2d.drawImage(bufferedImage, getBounds().x, getBounds().y, bufferedImage.getWidth(), bufferedImage.getHeight(), null);
49
// j2d.drawImage(bufferedImage, getImageBounds().x, getImageBounds().y, bufferedImage.getWidth(), bufferedImage.getHeight(), null);
50
// j2d.drawImage(bufferedImage, at, null);
51
}
52       else {
53         // TODO: add noImage Image as default
54
j2d.drawString("NoImage", getBounds().getCenter());
55       }
56     }
57   }
58   
59   // TODO: Maybe rename rectangle bounds, because it overrides Figure.bounds
60
protected Rectangle bounds;
61   public Rectangle getBounds()
62   {
63     if (bounds == null)
64     {
65       if (bufferedImage != null)
66         bounds = new Rectangle(super.getBounds().x, super.getBounds().y, bufferedImage.getWidth(), bufferedImage.getHeight());
67       else
68         return super.getBounds();
69     }
70     return bounds;
71   }
72   
73   public void setBounds(Rectangle rect)
74   {
75     super.setBounds(rect);
76     bounds = null;
77   }
78     
79 // public void transform(AffineTransform at)
80
// {
81
// AffineTransformOp op = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
82
// bufferedImage = op.filter(bufferedImage, null);
83
// }
84
//
85
// public void performScale(double factor)
86
// {
87
// AffineTransform transform = new AffineTransform();
88
// transform.scale(factor, factor);
89
// transform(transform);
90
// }
91
//
92
// public void performTranslate(int dx, int dy)
93
// {
94
// AffineTransform transform = new AffineTransform();
95
// transform.translate(dx, dy);
96
// transform(transform);
97
// }
98
}
99
Popular Tags