1 /* AdjustmentEvent.java -- an adjustable value was changed 2 Copyright (C) 1999, 2002, 2004, 2005 Free Software Foundation, Inc. 3 4 This file is part of GNU Classpath. 5 6 GNU Classpath is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2, or (at your option) 9 any later version. 10 11 GNU Classpath is distributed in the hope that it will be useful, but 12 WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with GNU Classpath; see the file COPYING. If not, write to the 18 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19 02110-1301 USA. 20 21 Linking this library statically or dynamically with other modules is 22 making a combined work based on this library. Thus, the terms and 23 conditions of the GNU General Public License cover the whole 24 combination. 25 26 As a special exception, the copyright holders of this library give you 27 permission to link this library with independent modules to produce an 28 executable, regardless of the license terms of these independent 29 modules, and to copy and distribute the resulting executable under 30 terms of your choice, provided that you also meet, for each linked 31 independent module, the terms and conditions of the license of that 32 module. An independent module is a module which is not derived from 33 or based on this library. If you modify this library, you may extend 34 this exception to your version of the library, but you are not 35 obligated to do so. If you do not wish to do so, delete this 36 exception statement from your version. */ 37 38 39 package java.awt.event; 40 41 import java.awt.AWTEvent; 42 import java.awt.Adjustable; 43 44 /** 45 * This class represents an event that is generated when an adjustable 46 * value is changed. 47 * 48 * @author Aaron M. Renn (arenn@urbanophile.com) 49 * @see Adjustable 50 * @see AdjustmentListener 51 * @since 1.1 52 * @status updated to 1.4 53 */ 54 public class AdjustmentEvent extends AWTEvent 55 { 56 /** 57 * Compatible with JDK 1.1+. 58 */ 59 private static final long serialVersionUID = 5700290645205279921L; 60 61 /** This is the first id in the range of ids used by adjustment events. */ 62 public static final int ADJUSTMENT_FIRST = 601; 63 64 /** This is the last id in the range of ids used by adjustment events. */ 65 public static final int ADJUSTMENT_LAST = 601; 66 67 /** This is the id indicating an adjustment value changed. */ 68 public static final int ADJUSTMENT_VALUE_CHANGED = 601; 69 70 /** Adjustment type for unit increments. */ 71 public static final int UNIT_INCREMENT = 1; 72 73 /** Adjustment type for unit decrements. */ 74 public static final int UNIT_DECREMENT = 2; 75 76 /** Adjustment type for block decrements. */ 77 public static final int BLOCK_DECREMENT = 3; 78 79 /** Adjustment type for block increments. */ 80 public static final int BLOCK_INCREMENT = 4; 81 82 /** Adjustment type for tracking adjustments. */ 83 public static final int TRACK = 5; 84 85 /** 86 * The adjustable object that caused the event. 87 * 88 * @see #getAdjustable() 89 * @serial the cause 90 */ 91 private final Adjustable adjustable; 92 93 /** 94 * The type of adjustment, one of {@link #UNIT_INCREMENT}, 95 * {@link #UNIT_DECREMENT}, {@link #BLOCK_INCREMENT}, 96 * {@link #BLOCK_DECREMENT}, or {@link #TRACK}. 97 * 98 * @see #getAdjustmentType() 99 * @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 */ AdjustmentEvent(Adjustable source, int id, int type, int value)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 */ AdjustmentEvent(Adjustable source, int id, int type, int value, boolean isAdjusting)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 */ getAdjustable()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 */ getValue()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 */ getAdjustmentType()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 */ getValueIsAdjusting()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 */ paramString()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 223