//////////////////////////////////////////////////////////////////////////////// // // Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // //////////////////////////////////////////////////////////////////////////////// package mx.events { import flash.events.Event; /** * The mx.events.CollectionEvent class represents an event that is * dispatched when the associated collection changes. * * @see FlexEvent#CURSOR_UPDATE * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public class CollectionEvent extends Event { include "../core/Version.as"; //-------------------------------------------------------------------------- // // Class constants // //-------------------------------------------------------------------------- /** * The CollectionEvent.COLLECTION_CHANGE constant defines the value of the * type property of the event object for an event that is * dispatched when a collection has changed. * *

The properties of the event object have the following values. * Not all properties are meaningful for all kinds of events. * See the detailed property descriptions for more information.

* * * * * * * * * * * *
PropertyValue
bubblesfalse
cancelablefalse
currentTargetThe Object that defines the * event listener that handles the event. For example, if you use * myButton.addEventListener() to register an event listener, * myButton is the value of the currentTarget.
itemsAn Array of objects with * information about the items affected by the event. * The contents of this field depend on the event kind; * for details see the items property
kindThe kind of event. * The valid values are defined in the CollectionEventKind * class as constants.
locationLocation within the target collection * of the item(s) specified in the items property.
oldLocationthe previous location in the collection * of the item specified in the items property.
targetThe Object that dispatched the event; * it is not always the Object listening for the event. * Use the currentTarget property to always access the * Object listening for the event.
typeCollectionEvent.COLLECTION_CHANGE
* * @eventType collectionChange * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public static const COLLECTION_CHANGE:String = "collectionChange"; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor. * * @param type The event type; indicates the action that triggered the event. * * @param bubbles Specifies whether the event can bubble * up the display list hierarchy. * * @param cancelable Specifies whether the behavior * associated with the event can be prevented. * * @param kind Indicates the kind of event that occured. * The parameter value can be one of the values in the CollectionEventKind * class, or null, which indicates that the kind is unknown. * * @param location When the kind is * CollectionEventKind.ADD, * CollectionEventKind.MOVE, * CollectionEventKind.REMOVE, or * CollectionEventKind.REPLACE, * this value indicates at what location the item(s) specified * in the items property can be found * within the target collection. * * @param oldLocation When the kind is * CollectionEventKind.MOVE, this value indicates * the old location within the target collection * of the item(s) specified in the items property. * * @param items Array of objects with information about the items * affected by the event, as described in the items property. * When the kind is CollectionEventKind.REFRESH * or CollectionEventKind.RESET, this Array has zero length. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function CollectionEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, kind:String = null, location:int = -1, oldLocation:int = -1, items:Array = null) { super(type, bubbles, cancelable); this.kind = kind; this.location = location; this.oldLocation = oldLocation; this.items = items ? items : []; } //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // kind //---------------------------------- /** * Indicates the kind of event that occurred. * The property value can be one of the values in the * CollectionEventKind class, * or null, which indicates that the kind is unknown. * * @default null * * @see CollectionEventKind * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var kind:String; //---------------------------------- // items //---------------------------------- /** * When the kind is CollectionEventKind.ADD * or CollectionEventKind.REMOVE the items property * is an Array of added/removed items. * When the kind is CollectionEventKind.REPLACE * or CollectionEventKind.UPDATE the items property * is an Array of PropertyChangeEvent objects with information about the items * affected by the event. * When a value changes, query the newValue and * oldValue fields of the PropertyChangeEvent objects * to find out what the old and new values were. * When the kind is CollectionEventKind.REFRESH * or CollectionEventKind.RESET, this array has zero length. * * @default [ ] * * @see PropertyChangeEvent * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var items:Array; //---------------------------------- // location //---------------------------------- /** * When the kind value is CollectionEventKind.ADD, * CollectionEventKind.MOVE, * CollectionEventKind.REMOVE, or * CollectionEventKind.REPLACE, this property is the * zero-base index in the collection of the item(s) specified in the * items property. * * @see CollectionEventKind * * @default -1 * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var location:int; //---------------------------------- // oldLocation //---------------------------------- /** * When the kind value is CollectionEventKind.MOVE, * this property is the zero-based index in the target collection of the * previous location of the item(s) specified by the items property. * * @default -1 * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var oldLocation:int; //-------------------------------------------------------------------------- // // Overridden methods: Object // //-------------------------------------------------------------------------- /** * @private */ override public function toString():String { return formatToString("CollectionEvent", "kind", "location", "oldLocation", "type", "bubbles", "cancelable", "eventPhase"); } //-------------------------------------------------------------------------- // // Overridden methods: Event // //-------------------------------------------------------------------------- /** * @private */ override public function clone():Event { return new CollectionEvent(type, bubbles, cancelable, kind, location, oldLocation, items); } } }