KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > laures > cewolf > taglib > tags > SerializableTexturePaint


1 /* ================================================================
2  * Cewolf : Chart enabling Web Objects Framework
3  * ================================================================
4  *
5  * Project Info: http://cewolf.sourceforge.net
6  * Project Lead: Guido Laures (guido@laures.de);
7  *
8  * (C) Copyright 2002, by Guido Laures
9  *
10  * This library is free software; you can redistribute it and/or modify it under the terms
11  * of the GNU Lesser General Public License as published by the Free Software Foundation;
12  * either version 2.1 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
15  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16  * See the GNU Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License along with this
19  * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */

22
23 package de.laures.cewolf.taglib.tags;
24
25 import java.awt.Paint JavaDoc;
26 import java.awt.Rectangle JavaDoc;
27 import java.awt.RenderingHints JavaDoc;
28 import java.awt.TexturePaint JavaDoc;
29 import java.awt.geom.AffineTransform JavaDoc;
30 import java.awt.geom.Rectangle2D JavaDoc;
31 import java.awt.image.BufferedImage JavaDoc;
32 import java.awt.image.ColorModel JavaDoc;
33 import java.io.Serializable JavaDoc;
34
35 import de.laures.cewolf.util.ImageHelper;
36
37 /**
38  * Special texture paint which can be serialized.
39  * @see TexturePaint
40  * @author Guido Laures
41  */

42 public class SerializableTexturePaint implements Paint JavaDoc, Serializable JavaDoc {
43
44     private String JavaDoc image;
45     private int width;
46     private int height;
47     private transient Paint JavaDoc paint = null;
48
49     public SerializableTexturePaint() {
50     }
51
52     /** Creates a new instance of SerializableGradientPaint */
53     public SerializableTexturePaint(String JavaDoc image, int width, int height) {
54         this.image = image;
55         this.width = width;
56         this.height = height;
57     }
58
59     private Paint JavaDoc getPaint() {
60         if (paint == null) {
61             createPaint();
62         }
63         return paint;
64     }
65
66     private void createPaint() {
67         BufferedImage JavaDoc bim = ImageHelper.loadBufferedImage(image);
68         Rectangle JavaDoc rect = new Rectangle JavaDoc(width, height);
69         paint = new TexturePaint JavaDoc(bim, rect);
70     }
71
72     public java.awt.PaintContext JavaDoc createContext(ColorModel JavaDoc colorModel, Rectangle JavaDoc rectangle, Rectangle2D JavaDoc rectangle2D,
73     AffineTransform JavaDoc affineTransform, RenderingHints JavaDoc renderingHints) {
74         return getPaint().createContext(colorModel, rectangle, rectangle2D, affineTransform, renderingHints);
75     }
76
77     public int getTransparency() {
78         return getPaint().getTransparency();
79     }
80
81 }
82
Popular Tags