////////////////////////////////////////////////////////////////////////////////
//
// 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.collections
{
import flash.events.IEventDispatcher;
import mx.events.CollectionEvent;
/**
* Dispatched when the ICollectionView has been updated in some way.
*
* @eventType mx.events.CollectionEvent.COLLECTION_CHANGE
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
[Event(name="collectionChange", type="mx.events.CollectionEvent")]
/**
* 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.
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.
* * @see #refresh() * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get filterFunction():Function; /** * @private */ function set filterFunction(value:Function):void; //---------------------------------- // sort //---------------------------------- /** * The ISort that will be applied to the ICollectionView. * Setting the sort does not automatically refresh the view, * so you must call therefresh()
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.
* * @see #refresh() * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function get sort():ISort; /** * @private */ function set sort(value:ISort):void; //-------------------------------------------------------------------------- // // Methods // //-------------------------------------------------------------------------- /** * Creates a new IViewCursor that works with this view. * * @return A new IViewCursor implementation. * * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ function createCursor():IViewCursor; /** * Returns whether the view contains the specified object. * Unlike theIViewCursor.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.
*
* @param item The object to look for.
*
* @return true if the ICollectionView, after applying any filter,
* contains the item; false otherwise.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function contains(item:Object):Boolean;
/**
* 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.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function disableAutoUpdate():void;
/**
* Enables auto-updating.
* See disableAutoUpdate
for more information.
*
* @see #disableAutoUpdate()
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function enableAutoUpdate():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.
*
* @param item The item within the view that was updated.
*
* @param property The name of the property that was updated.
*
* @param oldValue The old value of that property. (If property
* was null, this can be the old value of the item.).
*
* @param newValue 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 mx.events.CollectionEvent
* @see mx.core.IPropertyChangeNotifier
* @see mx.events.PropertyChangeEvent
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function itemUpdated(item:Object, property:Object = null,
oldValue:Object = null, newValue:Object = null):void;
/**
* 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.
true
if the refresh() was complete,
* false
if the refresh() is incomplete.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function refresh():Boolean;
}
}