001 /* AdjustmentEvent.java -- an adjustable value was changed
002 Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc.
003
004 This file is part of GNU Classpath.
005
006 GNU Classpath is free software; you can redistribute it and/or modify
007 it under the terms of the GNU General Public License as published by
008 the Free Software Foundation; either version 2, or (at your option)
009 any later version.
010
011 GNU Classpath is distributed in the hope that it will be useful, but
012 WITHOUT ANY WARRANTY; without even the implied warranty of
013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014 General Public License for more details.
015
016 You should have received a copy of the GNU General Public License
017 along with GNU Classpath; see the file COPYING. If not, write to the
018 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
019 02110-1301 USA.
020
021 Linking this library statically or dynamically with other modules is
022 making a combined work based on this library. Thus, the terms and
023 conditions of the GNU General Public License cover the whole
024 combination.
025
026 As a special exception, the copyright holders of this library give you
027 permission to link this library with independent modules to produce an
028 executable, regardless of the license terms of these independent
029 modules, and to copy and distribute the resulting executable under
030 terms of your choice, provided that you also meet, for each linked
031 independent module, the terms and conditions of the license of that
032 module. An independent module is a module which is not derived from
033 or based on this library. If you modify this library, you may extend
034 this exception to your version of the library, but you are not
035 obligated to do so. If you do not wish to do so, delete this
036 exception statement from your version. */
037
038
039 package java.awt.event;
040
041 import java.awt.AWTEvent;
042 import java.awt.Adjustable;
043
044 /**
045 * This class represents an event that is generated when an adjustable
046 * value is changed.
047 *
048 * @author Aaron M. Renn (arenn@urbanophile.com)
049 * @see Adjustable
050 * @see AdjustmentListener
051 * @since 1.1
052 * @status updated to 1.4
053 */
054 public class AdjustmentEvent extends AWTEvent
055 {
056 /**
057 * Compatible with JDK 1.1+.
058 */
059 private static final long serialVersionUID = 5700290645205279921L;
060
061 /** This is the first id in the range of ids used by adjustment events. */
062 public static final int ADJUSTMENT_FIRST = 601;
063
064 /** This is the last id in the range of ids used by adjustment events. */
065 public static final int ADJUSTMENT_LAST = 601;
066
067 /** This is the id indicating an adjustment value changed. */
068 public static final int ADJUSTMENT_VALUE_CHANGED = 601;
069
070 /** Adjustment type for unit increments. */
071 public static final int UNIT_INCREMENT = 1;
072
073 /** Adjustment type for unit decrements. */
074 public static final int UNIT_DECREMENT = 2;
075
076 /** Adjustment type for block decrements. */
077 public static final int BLOCK_DECREMENT = 3;
078
079 /** Adjustment type for block increments. */
080 public static final int BLOCK_INCREMENT = 4;
081
082 /** Adjustment type for tracking adjustments. */
083 public static final int TRACK = 5;
084
085 /**
086 * The adjustable object that caused the event.
087 *
088 * @see #getAdjustable()
089 * @serial the cause
090 */
091 private final Adjustable adjustable;
092
093 /**
094 * The type of adjustment, one of {@link #UNIT_INCREMENT},
095 * {@link #UNIT_DECREMENT}, {@link #BLOCK_INCREMENT},
096 * {@link #BLOCK_DECREMENT}, or {@link #TRACK}.
097 *
098 * @see #getAdjustmentType()
099 * @serial the adjustment type
100 */
101 private final int adjustmentType;
102
103 /**
104 * The new value of the adjustable; it should be in the range of the
105 * adjustable cause.
106 *
107 * @see #getValue()
108 * @serial the adjustment value
109 */
110 private final int value;
111
112 /**
113 * True if this is in a series of multiple adjustment events.
114 *
115 * @see #getValueIsAdjusting()
116 * @serial true if this is not the last adjustment
117 * @since 1.4
118 */
119 private final boolean isAdjusting;
120
121 /**
122 * Initializes an instance of <code>AdjustmentEvent</code> with the
123 * specified source, id, type, and value. Note that an invalid id leads to
124 * unspecified results.
125 *
126 * @param source the source of the event
127 * @param id the event id
128 * @param type the event type, one of the constants of this class
129 * @param value the value of the adjustment
130 * @throws IllegalArgumentException if source is null
131 */
132 public AdjustmentEvent(Adjustable source, int id, int type, int value)
133 {
134 this(source, id, type, value, false);
135 }
136
137 /**
138 * Initializes an instance of <code>AdjustmentEvent</code> with the
139 * specified source, id, type, and value. Note that an invalid id leads to
140 * unspecified results.
141 *
142 * @param source the source of the event
143 * @param id the event id
144 * @param type the event type, one of the constants of this class
145 * @param value the value of the adjustment
146 * @param isAdjusting if this event is in a chain of adjustments
147 * @throws IllegalArgumentException if source is null
148 * @since 1.4
149 */
150 public AdjustmentEvent(Adjustable source, int id, int type, int value,
151 boolean isAdjusting)
152 {
153 super(source, id);
154 this.adjustmentType = type;
155 this.value = value;
156 adjustable = source;
157 this.isAdjusting = isAdjusting;
158 }
159
160 /**
161 * This method returns the source of the event as an <code>Adjustable</code>.
162 *
163 * @return the <code>Adjustable</code> source of the event
164 */
165 public Adjustable getAdjustable()
166 {
167 return adjustable;
168 }
169
170 /**
171 * Returns the new value of the adjustable object.
172 *
173 * @return the value of the event
174 */
175 public int getValue()
176 {
177 return value;
178 }
179
180 /**
181 * Returns the type of the event, which will be one of
182 * {@link #UNIT_INCREMENT}, {@link #UNIT_DECREMENT},
183 * {@link #BLOCK_INCREMENT}, {@link #BLOCK_DECREMENT}, or {@link #TRACK}.
184 *
185 * @return the type of the event
186 */
187 public int getAdjustmentType()
188 {
189 return adjustmentType;
190 }
191
192 /**
193 * Test if this event is part of a sequence of multiple adjustements.
194 *
195 * @return true if this is not the last adjustment
196 * @since 1.4
197 */
198 public boolean getValueIsAdjusting()
199 {
200 return isAdjusting;
201 }
202
203 /**
204 * Returns a string that describes the event. This is in the format
205 * <code>"ADJUSTMENT_VALUE_CHANGED,adjType=" + <type> + ",value="
206 * + getValue() + ",isAdjusting=" + getValueIsAdjusting()</code>, where
207 * type is the name of the constant returned by getAdjustmentType().
208 *
209 * @return a string that describes the event
210 */
211 public String paramString()
212 {
213 return (id == ADJUSTMENT_VALUE_CHANGED
214 ? "ADJUSTMENT_VALUE_CHANGED,adjType=" : "unknown type,adjType=")
215 + (adjustmentType == UNIT_INCREMENT ? "UNIT_INCREMENT,value="
216 : adjustmentType == UNIT_DECREMENT ? "UNIT_DECREMENT,value="
217 : adjustmentType == BLOCK_INCREMENT ? "BLOCK_INCREMENT,value="
218 : adjustmentType == BLOCK_DECREMENT ? "BLOCK_DECREMENT,value="
219 : adjustmentType == TRACK ? "TRACK,value=" : "unknown type,value=")
220 + value + ",isAdjusting=" + isAdjusting;
221 }
222 } // class AdjustmentEvent