Adobe® Flex® 4 Language Reference
Show Packages and Classes List |  Packages  |  Classes  |  Index  |  Appendixes
mx.collections 
ICollectionView 
Packagemx.collections
Interfacepublic interface ICollectionView extends IEventDispatcher
Implementors ListCollectionView

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

An ICollectionView is a view onto a collection of data. The view can be modified to show the data sorted according to various criteria or reduced by filters without modifying the underlying data. An IViewCursor provides to access items within a collection. You can modify the collection by using the IViewCursor interface insert() and remove() methods.

An ICollectionView may be a view onto data that has been retrieved from a remote location. When Implementing this interface for data that may be remote it is important to handle the case where data may not yet be available, which is indicated by the ItemPendingError.

The IList interface is an alternative to the ICollectionView interface.

See also



Public Properties
 PropertyDefined By
  filterFunction : Function
A function that the view will use to eliminate items that do not match the function's criteria.
ICollectionView
  length : int
[read-only] The number of items in this view.
ICollectionView
  sort : Sort
The Sort that will be applied to the ICollectionView.
ICollectionView
Public Methods
 MethodDefined By
 Inherited
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.
IEventDispatcher
  
Returns whether the view contains the specified object.
ICollectionView
  
Creates a new IViewCursor that works with this view.
ICollectionView
  
Prevents changes to the collection itself and items within the collection from being dispatched by the view.
ICollectionView
 Inherited
Dispatches an event into the event flow.
IEventDispatcher
  
Enables auto-updating.
ICollectionView
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
IEventDispatcher
  
itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void
Notifies the view that an item has been updated.
ICollectionView
  
Applies the sort and filter to the view.
ICollectionView
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
IEventDispatcher
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
IEventDispatcher
Events
 Event Summary Defined By
  Dispatched when the ICollectionView has been updated in some way.ICollectionView
Property Detail

filterFunction

property
filterFunction:Function

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

A function that the view will use to eliminate items that do not match the function's criteria. A filterFunction is expected to have the following signature:

f(item:Object):Boolean
where the return value is true if the specified item should remain in the view.

If a filter is unsupported, Flex throws an error when accessing this property. You must call refresh() after setting the filterFunction property for the view to update.

Note: The Flex implementations of ICollectionView retrieve all items from a remote location before executing the filter function. If you use paging, apply the filter to the remote collection before you retrieve the data.



Implementation
    public function get filterFunction():Function
    public function set filterFunction(value:Function):void

See also

length

property 
length:int  [read-only]

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

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



Implementation
    public function get length():int

sort

property 
sort:Sort

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

The Sort that will be applied to the ICollectionView. Setting the sort does not automatically refresh the view, so you must call the refresh() method after setting this property. If sort is unsupported an error will be thrown when accessing this property.

Note: The Flex implementations of ICollectionView retrieve all items from a remote location before executing a sort. If you use paging with a sorted list, apply the sort to the remote collection before you retrieve the data.



Implementation
    public function get sort():Sort
    public function set sort(value:Sort):void

See also

Method Detail

contains

()method
public function contains(item:Object):Boolean

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Returns whether the view contains the specified object. Unlike the IViewCursor.findxxx methods, this search is succesful only if it finds an item that exactly matches the parameter. If the view has a filter applied to it this method may return false even if the underlying collection does contain the item.

Parameters

item:Object — The object to look for.

Returns
Boolean — true if the ICollectionView, after applying any filter, contains the item; false otherwise.

createCursor

()method 
public function createCursor():IViewCursor

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Creates a new IViewCursor that works with this view.

Returns
IViewCursor — A new IViewCursor implementation.

disableAutoUpdate

()method 
public function disableAutoUpdate():void

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Prevents changes to the collection itself and items within the collection from being dispatched by the view. Also prevents the view from updating the positions of items if the positions change in the collection. The changes will be queued and dispatched appropriately after enableAutoUpdate is called. If more events than updates to a single item occur, the view may end up resetting. The disableAutoUpdate method acts cumulatively; the same number of calls to enableAutoUpdate are required for the view to dispatch events and refresh. Note that disableAutoUpdate only affects the individual view; edits may be detected on an individual basis by other views.

enableAutoUpdate

()method 
public function enableAutoUpdate():void

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Enables auto-updating. See disableAutoUpdate for more information.

See also

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 3
Runtime Versions: Flash Player 9, AIR 1.1

Notifies the view that an item has been updated. This method is useful if the contents of the view do not implement IPropertyChangeNotifier. If the call to this method includes a property parameter, 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.)

See also

refresh

()method 
public function refresh():Boolean

Language Version: ActionScript 3.0
Product Version: Flex 3
Runtime Versions: Flash Player 9, AIR 1.1

Applies the sort and filter to the view. The ICollectionView does not detect changes to a sort or filter automatically, so you must call the refresh() method to update the view after setting the sort or filterFunction property. If your ICollectionView implementation also implements the IMXMLObject interface, you should to call the refresh() method from your initialized() method.

Returns true if the refresh was successful and false if the sort is not yet complete (e.g., items are still pending). A client of the view should wait for a CollectionEvent event with the CollectionEventKind.REFRESH kind property to ensure that the refresh() operation is complete.

Returns
Booleantrue if the refresh() was complete, false if the refresh() is incomplete.
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 ICollectionView has been updated in some way.

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