001 /*
002 * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved.
003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004 *
005 * This code is free software; you can redistribute it and/or modify it
006 * under the terms of the GNU General Public License version 2 only, as
007 * published by the Free Software Foundation. Sun designates this
008 * particular file as subject to the "Classpath" exception as provided
009 * by Sun in the LICENSE file that accompanied this code.
010 *
011 * This code is distributed in the hope that it will be useful, but WITHOUT
012 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
014 * version 2 for more details (a copy is included in the LICENSE file that
015 * accompanied this code).
016 *
017 * You should have received a copy of the GNU General Public License version
018 * 2 along with this work; if not, write to the Free Software Foundation,
019 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020 *
021 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022 * CA 95054 USA or visit www.sun.com if you need additional information or
023 * have any questions.
024 */
025
026 package java.awt.event;
027
028 import java.awt.Component;
029 import java.awt.Rectangle;
030
031 /**
032 * The component-level paint event.
033 * This event is a special type which is used to ensure that
034 * paint/update method calls are serialized along with the other
035 * events delivered from the event queue. This event is not
036 * designed to be used with the Event Listener model; programs
037 * should continue to override paint/update methods in order
038 * render themselves properly.
039 *
040 * @author Amy Fowler
041 * @version 1.29, 06/05/07
042 * @since 1.1
043 */
044 public class PaintEvent extends ComponentEvent {
045
046 /**
047 * Marks the first integer id for the range of paint event ids.
048 */
049 public static final int PAINT_FIRST = 800;
050
051 /**
052 * Marks the last integer id for the range of paint event ids.
053 */
054 public static final int PAINT_LAST = 801;
055
056 /**
057 * The paint event type.
058 */
059 public static final int PAINT = PAINT_FIRST;
060
061 /**
062 * The update event type.
063 */
064 public static final int UPDATE = PAINT_FIRST + 1; //801
065
066 /**
067 * This is the rectangle that represents the area on the source
068 * component that requires a repaint.
069 * This rectangle should be non null.
070 *
071 * @serial
072 * @see java.awt.Rectangle
073 * @see #setUpdateRect(Rectangle)
074 * @see #getUpdateRect()
075 */
076 Rectangle updateRect;
077
078 /*
079 * JDK 1.1 serialVersionUID
080 */
081 private static final long serialVersionUID = 1267492026433337593L;
082
083 /**
084 * Constructs a <code>PaintEvent</code> object with the specified
085 * source component and type.
086 * <p>Note that passing in an invalid <code>id</code> results in
087 * unspecified behavior. This method throws an
088 * <code>IllegalArgumentException</code> if <code>source</code>
089 * is <code>null</code>.
090 *
091 * @param source the object where the event originated
092 * @param id the event type
093 * @param updateRect the rectangle area which needs to be repainted
094 * @throws IllegalArgumentException if <code>source</code> is null
095 */
096 public PaintEvent(Component source, int id, Rectangle updateRect) {
097 super (source, id);
098 this .updateRect = updateRect;
099 }
100
101 /**
102 * Returns the rectangle representing the area which needs to be
103 * repainted in response to this event.
104 */
105 public Rectangle getUpdateRect() {
106 return updateRect;
107 }
108
109 /**
110 * Sets the rectangle representing the area which needs to be
111 * repainted in response to this event.
112 * @param updateRect the rectangle area which needs to be repainted
113 */
114 public void setUpdateRect(Rectangle updateRect) {
115 this .updateRect = updateRect;
116 }
117
118 public String paramString() {
119 String typeStr;
120 switch (id) {
121 case PAINT:
122 typeStr = "PAINT";
123 break;
124 case UPDATE:
125 typeStr = "UPDATE";
126 break;
127 default:
128 typeStr = "unknown type";
129 }
130 return typeStr + ",updateRect="
131 + (updateRect != null ? updateRect.toString() : "null");
132 }
133 }
|