mx.collections

# AsyncListView - AS3 Flex

Package | mx.collections
Class | public class AsyncListView
Inheritance | AsyncListView OnDemandEventDispatcher Object
Implements | IList

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The AsyncListView class is an implementation of the IList interface that handles ItemPendingErrors errors thrown by the `getItemAt()`, `removeItemAt()`, and `toArray()` methods.

The `getItemAt()` method handles ItemPendingErrors by returning a provisional "pending" item until the underlying request succeeds or fails. The provisional item is produced by calling the function specified by the `createPendingItemFunction` property. . If the request succeeds, the actual item replaces the provisional one. If it fails, the provisional item is replaced with the item returned by calling the function specified by the `createFailedItemFunction` property.

This class delegates the IList methods and properties to its `list`. If a list isn't specified, methods that mutate the collection are no-ops, and methods that query the collection return an empty value, such as null or zero as appropriate.

This class is intended to be used with Spark components based on DataGroup, such as List and ComboBox. The Spark classes do not provide intrinsic support for ItemPendingError handling.

AsyncListView does not support re-insertion of pending or failed items. Once a failed or pending item is removed, its connection to a pending request for data is lost. Using drag and drop to move a pending item in an ASyncListView, or sorting an ASyncListView that contains pending or failed items, is not supported because these operations remove and then re-insert list items.

MXML Syntax Show MXML Syntax
Hide MXML Syntax

The `<mx:AsyncListView>` tag inherits all the attributes of its superclass, and adds the following attributes:

      <mx:AsyncListView
      Properties
        createFailedItemFunction="null"
        createPendingItemFunction="null"
        list="null"
      />

Public Properties
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | constructor : Object A reference to the class object or constructor function for a given object instance. | Object
|  | createFailedItemFunction : Function A callback function used to create a substitute item when a request which had caused an ItemPendingError to be thrown, subsequently fails. | AsyncListView
|  | createPendingItemFunction : Function A callback function used to create a provisional item when the initial request causes an ItemPendingError to be thrown. | AsyncListView
|  | length : int [read-only] The number of items in this collection. | AsyncListView
|  | list : IList The IList object that this collection wraps. | AsyncListView

Public Methods
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | AsyncListView(list:IList = null) Constructor. | AsyncListView
|  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event. | OnDemandEventDispatcher
|  | addItem(item:Object):void Adds the specified item to the end of the list. | AsyncListView
|  | addItemAt(item:Object, index:int):void Adds the item at the specified index. | AsyncListView
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | OnDemandEventDispatcher
|  | getItemAt(index:int, prefetch:int = 0):Object Returns the value of list.getItemAt(index). | AsyncListView
|  | getItemIndex(item:Object):int Returns the index of the item if it is in the list such that getItemAt(index) == item. | AsyncListView
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | OnDemandEventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void Notifies the view that an item has been updated. | AsyncListView
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | removeAll():void Removes all items from the list. | AsyncListView
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | OnDemandEventDispatcher
|  | removeItemAt(index:int):Object Removes the actual or pending item at the specified index and returns it. | AsyncListView
|  | setItemAt(item:Object, index:int):Object Places the item at the specified index. | AsyncListView
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | toArray():Array Returns an array with the same elements as this AsyncListView. | AsyncListView
|  | toLocaleString():String Returns the string representation of this object, formatted according to locale-specific conventions. | Object
|  | toString():String Returns a string that contains the list's length and the number of pending item requests. | AsyncListView
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | OnDemandEventDispatcher

Events
Click for more information on events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | collectionChange | Dispatched when the list's length has changed or when a list element is replaced. | AsyncListView

Property Detail

### createFailedItemFunction

property

`createFailedItemFunction:Function`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

A callback function used to create a substitute item when a request which had caused an `ItemPendingError` to be thrown, subsequently fails. The existing item, typically a pending item created by the callback function specified by the `createPendingItemFunction()` property, is replaced with the failed item.

The value of this property must be a function with two parameters: the index of the requested item, and the failure "info" object, which is passed along from the IResponder `fault()` method. In most cases you can ignore the second parameter. Shown below is an example implementation of the callback function:

         function createFailedItem(index:int, info:Object):Object
         {
             return "[" + index + "request failed]";
         }

Setting this property does not affect failed items that were already created. Setting this property to null prevents failed items from being created.

The default value is `A function that unconditionally returns null..`

Implementation
`public function get createFailedItemFunction():Function`
`public function set createFailedItemFunction(value:Function):void`

Related API Elements

getItemAt()
createPendingItemFunction
mx.rpc.IResponder.fault

### createPendingItemFunction

property

`createPendingItemFunction:Function`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

A callback function used to create a provisional item when the initial request causes an `ItemPendingError` to be thrown. If the request eventually succeeds, the provisional item is automatically replaced by the actual item. If the request fails, then the item is replaced with one created with the callback function specified by the `createFailedItemFunction` property.

The value of this property must be a function with two parameters: the index of the requested data provider item, and the ItemPendingError itself. In most cases, the second parameter can be ignored. The following example shows an implementation of the callback function:

         function createPendingItem(index:int, ipe:ItemPendingError):Object
         {
             return "[" + index + "request is pending...]";
         }

Setting this property does not affect provisional pending items that were already created. Setting this property to null prevents provisional pending items from being created.

The default value is `A function that unconditionally returns null..`

Implementation
`public function get createPendingItemFunction():Function`
`public function set createPendingItemFunction(value:Function):void`

Related API Elements

getItemAt()
createFailedItemFunction
mx.collections.errors.ItemPendingError

### length

property

`length:int` [read-only]

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The number of items in this collection. 0 means no items while -1 means the length is unknown.

This property can be used as the source for data binding. When this property is modified, it dispatches the `collectionChange` event.

Implementation
`public function get length():int`

### list

property

`list:IList`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

The IList object that this collection wraps. That means the object to which all of the IList methods are delegated.

If this property is null, the IList mutation methods, such as `setItemAt()`, are no-ops. The IList query methods, such `getItemAt()`, return null or zero (-1 for `getItemIndex()`), as appropriate.

The default value is `null.`

This property can be used as the source for data binding. When this property is modified, it dispatches the `listChanged` event.

Implementation
`public function get list():IList`
`public function set list(value:IList):void`
Constructor Detail

### AsyncListView

()
Constructor

`public function AsyncListView(list:IList = null)`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Constructor.

Parameters

| `list:IList` (default = `null`)`` — Initial value of the list property, the IList we're delegating to.

Method Detail

### addItem

()
method

`public function addItem(item:Object):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Adds the specified item to the end of the list. Equivalent to `addItemAt(item, length)`.

Parameters

| `item:Object` — The item to add.

### addItemAt

()
method

`public function addItemAt(item:Object, index:int):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Adds the item at the specified index. The index of any item greater than the index of the added item is increased by one. If the the specified index is less than zero or greater than the length of the list, a RangeError is thrown.

Parameters

| `item:Object` — The item to place at the index.
| `index:int` — The index at which to place the item.

### getItemAt

()
method

`public function getItemAt(index:int, prefetch:int = 0):Object`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the value of `list.getItemAt(index)`.

This method catches ItemPendingErrors (IPEs) generated as a consequence of calling `getItemAt()`. If an IPE is thrown, an `IResponder` is added to the IPE and a provisional "pending" item, created with the `createPendingItemFunction` is returned. If the underlying request eventually succeeds, the pending item is replaced with the real item. If it fails, the pending item is replaced with a value produced by calling `createFailedItemFunction`.

Parameters

| `index:int` — The list index from which to retrieve the item.
| `prefetch:int` (default = `0`)`` — An `int` indicating both the direction and number of items to fetch during the request if the item is not local.

Returns

| `Object` — The list item at the specified index.

Throws

| `RangeError` — if `index < 0` or `index >= length`.

Related API Elements

createPendingItemFunction
createFailedItemFunction
mx.collections.errors.ItemPendingError
mx.rpc.IResponder

### getItemIndex

()
method

`public function getItemIndex(item:Object):int`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns the index of the item if it is in the list such that getItemAt(index) == item.

Note: unlike `IViewCursor.findxxx()` methods, The `getItemIndex()` method cannot take a parameter with only a subset of the fields in the item being serched for; this method always searches for an item that exactly matches the input parameter.

Parameters

| `item:Object` — The item to find.

Returns

| `int` — The index of the item, or -1 if the item is not in the list.

### itemUpdated

()
method

`public function itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Notifies the view that an item has been updated. This is useful if the contents of the view do not implement `IEventDispatcher` and dispatches a `PropertyChangeEvent`. If a property is specified the view may be able to optimize its notification mechanism. Otherwise it may choose to simply refresh the whole view.

Parameters

| `item:Object` — The item within the view that was updated.
| `property:Object` (default = `null`)`` — The name of the property that was updated.
| `oldValue:Object` (default = `null`)`` — The old value of that property. (If property was null, this can be the old value of the item.)
| `newValue:Object` (default = `null`)`` — The new value of that property. (If property was null, there's no need to specify this as the item is assumed to be the new value.)

### removeAll

()
method

`public function removeAll():void`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Removes all items from the list.

If any item is not local and an asynchronous operation must be performed, an `ItemPendingError` will be thrown.

See the ItemPendingError documentation as well as the collections documentation for more information on using the `ItemPendingError`.

### removeItemAt

()
method

`public function removeItemAt(index:int):Object`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Removes the actual or pending item at the specified index and returns it. All items whose index is greater than the specified index have their index reduced by 1.

If there is no actual or pending item at the specified index, for example because a call to `getItemAt(index)` hasn't caused the data to be paged in, then the underlying `list` may throw an ItemPendingError. The implementation ignores the ItemPendingError and returns null.

Parameters

| `index:int` — The list index from which to retrieve the item.

Returns

| `Object` — The item that was removed or null.

Throws

| `RangeError` — if `index < 0` or `index >= length`.

### setItemAt

()
method

`public function setItemAt(item:Object, index:int):Object`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Places the item at the specified index. If an item was already at that index the new item will replace it and it will be returned.

Parameters

| `item:Object` — The new item to be placed at the specified index.
| `index:int` — The index at which to place the item.

Returns

| `Object` — The item that was replaced, or `null` if none.

### toArray

()
method

`public function toArray():Array`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns an array with the same elements as this AsyncListView. The array is initialized by retrieving each item with `getItemAt()`, so pending items are substituted where actual values aren't available yet. The array will not be updated when the AsyncListView replaces the pending items with actual (or failed) values.

Returns

| `Array` — an array with the same elements as this AsyncListView.

### toString

()
method

`public function toString():String`

Language Version: | ActionScript 3.0

Product Version: | Flex 4

Runtime Versions: | Flash Player 10, AIR 1.5

Returns a string that contains the list's length and the number of pending item requests. It does not trigger pending requests.

Returns

| `String` — A brief description of the list.

Event Detail

### collectionChange

Event

Event Object Type: `mx.events.CollectionEvent`
property CollectionEvent.type = `mx.events.CollectionEvent.COLLECTION_CHANGE`

Language Version: | ActionScript 3.0

Product Version: | Flex 3

Runtime Versions: | Flash Player 9, AIR 1.1

Dispatched when the list's length has changed or when a list element is replaced.

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.

Property | Value
--- | ---
`bubbles` | false
`cancelable` | false
`currentTarget` | The 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`.
`items` | An 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
`kind` | The kind of event. The valid values are defined in the CollectionEventKind class as constants.
`location` | Location within the target collection of the item(s) specified in the `items` property.
`oldLocation` | the previous location in the collection of the item specified in the `items` property.
`target` | The 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.
`type` | CollectionEvent.COLLECTION_CHANGE

© 2015 Adobe Systems Incorporated. All rights reserved.
Mon Apr 10 2017, 12:28 PM -07:00