/*
* @(#)ItemEvent.java 1.28 03/12/19
*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package java.awt.event;
import java.awt.Component;
import java.awt.AWTEvent;
import java.awt.Event;
import java.awt.ItemSelectable;
/**
* A semantic event which indicates that an item was selected or deselected.
* This high-level event is generated by an ItemSelectable object (such as a
* List) when an item is selected or deselected by the user.
* The event is passed to every ItemListener
object which
* registered to receive such events using the component's
* addItemListener
method.
*
* The object that implements the ItemListener
interface gets
* this ItemEvent
when the event occurs. The listener is
* spared the details of processing individual mouse movements and mouse
* clicks, and can instead process a "meaningful" (semantic) event like
* "item selected" or "item deselected".
*
* @version 1.28 12/19/03
* @author Carl Quinn
*
* @see java.awt.ItemSelectable
* @see ItemListener
* @see Tutorial: Writing an Item Listener
* @see Reference: The Java Class Libraries (update file)
*
* @since 1.1
*/
public class ItemEvent extends AWTEvent {
/**
* The first number in the range of ids used for item events.
*/
public static final int ITEM_FIRST = 701;
/**
* The last number in the range of ids used for item events.
*/
public static final int ITEM_LAST = 701;
/**
* This event id indicates that an item's state changed.
*/
public static final int ITEM_STATE_CHANGED = ITEM_FIRST; //Event.LIST_SELECT
/**
* This state-change value indicates that an item was selected.
*/
public static final int SELECTED = 1;
/**
* This state-change-value indicates that a selected item was deselected.
*/
public static final int DESELECTED = 2;
/**
* The item whose selection state has changed.
*
* @serial
* @see #getItem()
*/
Object item;
/**
* stateChange
indicates whether the item
* was selected or deselected.
*
* @serial
* @see #getStateChange()
*/
int stateChange;
/*
* JDK 1.1 serialVersionUID
*/
private static final long serialVersionUID = -608708132447206933L;
/**
* Constructs an ItemEvent
object.
*
Note that passing in an invalid id
results in
* unspecified behavior. This method throws an
* IllegalArgumentException
if source
* is null
.
*
* @param source the ItemSelectable
object
* that originated the event
* @param id an integer that identifies the event type
* @param item an object -- the item affected by the event
* @param stateChange
* an integer that indicates whether the item was
* selected or deselected
* @throws IllegalArgumentException if source
is null
*/
public ItemEvent(ItemSelectable source, int id, Object item, int stateChange) {
super(source, id);
this.item = item;
this.stateChange = stateChange;
}
/**
* Returns the originator of the event.
*
* @return the ItemSelectable object that originated the event.
*/
public ItemSelectable getItemSelectable() {
return (ItemSelectable)source;
}
/**
* Returns the item affected by the event.
*
* @return the item (object) that was affected by the event
*/
public Object getItem() {
return item;
}
/**
* Returns the type of state change (selected or deselected).
*
* @return an integer that indicates whether the item was selected
* or deselected
*
* @see #SELECTED
* @see #DESELECTED
*/
public int getStateChange() {
return stateChange;
}
/**
* Returns a parameter string identifying this item event.
* This method is useful for event-logging and for debugging.
*
* @return a string identifying the event and its attributes
*/
public String paramString() {
String typeStr;
switch(id) {
case ITEM_STATE_CHANGED:
typeStr = "ITEM_STATE_CHANGED";
break;
default:
typeStr = "unknown type";
}
String stateStr;
switch(stateChange) {
case SELECTED:
stateStr = "SELECTED";
break;
case DESELECTED:
stateStr = "DESELECTED";
break;
default:
stateStr = "unknown type";
}
return typeStr + ",item="+item + ",stateChange="+stateStr;
}
}