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