KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > htmlparser > lexerapplications > thumbelina > Picture


1 // HTMLParser Library $Name: v1_5_20050313 $ - A java-based parser for HTML
2
// http://sourceforge.org/projects/htmlparser
3
// Copyright (C) 2003 Derrick Oswald
4
//
5
// Revision Control Information
6
//
7
// $Source: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexerapplications/thumbelina/Picture.java,v $
8
// $Author: derrickoswald $
9
// $Date: 2003/12/16 02:29:56 $
10
// $Revision: 1.2 $
11
//
12
// This library is free software; you can redistribute it and/or
13
// modify it under the terms of the GNU Lesser General Public
14
// License as published by the Free Software Foundation; either
15
// version 2.1 of the License, or (at your option) any later version.
16
//
17
// This library is distributed in the hope that it will be useful,
18
// but WITHOUT ANY WARRANTY; without even the implied warranty of
19
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20
// Lesser General Public License for more details.
21
//
22
// You should have received a copy of the GNU Lesser General Public
23
// License along with this library; if not, write to the Free Software
24
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
//
26

27 package org.htmlparser.lexerapplications.thumbelina;
28
29 import java.awt.Image JavaDoc;
30 import java.awt.Point JavaDoc;
31 import java.awt.Rectangle JavaDoc;
32 import java.net.URL JavaDoc;
33
34 /**
35  * Class to track pictures within the frame.
36  * Maintains an image, an area and the URL for it.
37  */

38 public class Picture extends Rectangle JavaDoc
39 {
40     /**
41      * The origin for new points from the zero args constructor.
42      */

43     public static final Point JavaDoc ORIGIN = new Point JavaDoc (0, 0);
44
45     /**
46      * The URL for the picture.
47      */

48     protected URL JavaDoc mURL;
49
50     /**
51      * The image for the picture.
52      */

53     protected Image JavaDoc mImage;
54
55     /**
56      * The upper left hand corner of the image.
57      * This doesn't change, even if the image is cropped.
58      * For example, if the left half of the image is obscured by another,
59      * the <code>Rectangle</code> fields <code>x</code>, <code>y</code>,
60      * <code>width</code> and <code>height</code> will change, but the
61      * origin remains the same.
62      */

63     protected Point JavaDoc mOrigin;
64
65     /**
66      * Construct a Picture.
67      */

68     public Picture ()
69     {
70         setURL (null);
71         setImage (null);
72         setOrigin (ORIGIN);
73     }
74
75     /**
76      * Construct a Picture over the area given.
77      * @param x The x coordinate.
78      * @param y The y coordinate.
79      * @param width The width of the picture.
80      * @param height The height of the picture.
81      */

82     public Picture (final int x, final int y, final int width, final int height)
83     {
84         super (x, y, width, height);
85         setURL (null);
86         setImage (null);
87         setOrigin (new Point JavaDoc (x, y));
88     }
89
90     /**
91      * Construct a picture over the rectangle given.
92      * @param r The coordinates of the area.
93      */

94     public Picture (final Rectangle JavaDoc r)
95     {
96         super (r);
97         setURL (null);
98         setImage (null);
99         setOrigin (new Point JavaDoc (r.x, r.y));
100     }
101
102     /**
103      * Construct a picture from the one given.
104      * @param picture The picture to copy.
105      */

106     public Picture (final Picture picture)
107     {
108         super (picture);
109         setURL (picture.getURL ());
110         setImage (picture.getImage ());
111         setOrigin (picture.getOrigin ());
112     }
113
114     /**
115      * Getter for property URL.
116      * @return Value of property URL.
117      */

118     public URL JavaDoc getURL ()
119     {
120         return (mURL);
121     }
122
123     /**
124      * Setter for property URL.
125      * @param url New value of property URL.
126      */

127     public void setURL (final URL JavaDoc url)
128     {
129         mURL = url;
130     }
131
132     /** Getter for property image.
133      * @return Value of property image.
134      */

135     public Image JavaDoc getImage ()
136     {
137         return (mImage);
138     }
139
140     /** Setter for property image.
141      * @param image New value of property image.
142      */

143     public void setImage (final Image JavaDoc image)
144     {
145         mImage = image;
146         if (null != image)
147         {
148             width = image.getWidth (null);
149             height = image.getHeight (null);
150         }
151     }
152
153     /** Getter for property origin.
154      * @return Value of property origin.
155      */

156     public Point JavaDoc getOrigin ()
157     {
158         return (mOrigin);
159     }
160
161     /** Setter for property origin.
162      * @param origin New value of property origin.
163      */

164     public void setOrigin (final Point JavaDoc origin)
165     {
166         mOrigin = origin;
167     }
168
169     /**
170      * Return <code>true</code> if that picture is the same as this one.
171      * @param picture The picture to check.
172      * @return <code>true</code> if the images match.
173      */

174     public boolean same (final Picture picture)
175     {
176         return (mImage == picture.mImage);
177     }
178
179     /**
180      * Reset the picture to uncropped size.
181      */

182     public void reset ()
183     {
184         setBounds (mOrigin.x, mOrigin.y,
185             mImage.getWidth (null), mImage.getHeight (null));
186     }
187
188     /**
189      * Create a string representation of the picture.
190      * @return A string that shows this picture URL and size.
191      */

192     public String JavaDoc toString ()
193     {
194         StringBuffer JavaDoc ret;
195
196         ret = new StringBuffer JavaDoc ();
197         ret.append (getURL ().toString ());
198         ret.append ("[x=");
199         ret.append (Integer.toString (x));
200         ret.append (",y=");
201         ret.append (Integer.toString (y));
202         ret.append (",width=");
203         ret.append (Integer.toString (width));
204         ret.append (",height=");
205         ret.append (Integer.toString (height));
206         ret.append ("]");
207
208         return (ret.toString ());
209     }
210 }
211
212 /*
213  * Revision Control Modification History
214  *
215  * $Log: Picture.java,v $
216  * Revision 1.2 2003/12/16 02:29:56 derrickoswald
217  * Javadoc changes and additions. Stylesheet, overview, build instructions and todo list.
218  * Added HTMLTaglet, an inline Javadoc taglet for embedding HTML into javadocs.
219  *
220  * Revision 1.1 2003/09/21 18:20:56 derrickoswald
221  * Thumbelina
222  * Created a lexer GUI application to extract images behind thumbnails.
223  * Added a task in the ant build script - thumbelina - to create the jar file.
224  * You need JDK 1.4.x to build it. It can be run on JDK 1.3.x in crippled mode.
225  * Usage: java -Xmx256M thumbelina.jar [URL]
226  *
227  *
228  */

229
Popular Tags