Packagemx.collections
Interfacepublic interface ICollectionView extends flash.events.IEventDispatcher
ImplementorsListCollectionView

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

mx.collections.IViewCursor
mx.collections.errors.ItemPendingError
mx.collections.IList


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
  
contains(item:Object):Boolean
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
  
Enables auto-updating.
ICollectionView
  
itemUpdated(item:Object, property:Object = null, oldValue:Object = null, newValue:Object = null):void
Notifies the view that an item has been updated.
ICollectionView
  
refresh():Boolean
Applies the sort and filter to the view.
ICollectionView
Events
 EventSummaryDefined by
   Dispatched when the ICollectionView has been updated in some way.ICollectionView
Property detail
filterFunctionproperty
filterFunction:Function  [read-write]

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

lengthproperty 
length:int  [read-only]

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
sortproperty 
sort:Sort  [read-write]

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

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

Creates a new IViewCursor that works with this view.

Returns
IViewCursor — A new IViewCursor implementation.
disableAutoUpdate()method 
public function disableAutoUpdate():void

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

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

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

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
collectionChangeevent 
Event object type: mx.events.CollectionEvent
CollectionEvent.type property = mx.events.CollectionEvent.COLLECTION_CHANGE

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