blob: a6002771ebd564fbb69935221574c9b2c6e27c37 [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// 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.core
{
/**
* The IRepeater interface defines the
* public APIs of the Repeater object.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public interface IRepeater
{
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
//----------------------------------
// container
//----------------------------------
/**
* The container that contains this Repeater,
* and in which it will create its children.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get container():IContainer;
//----------------------------------
// count
//----------------------------------
/**
* The number of times this Repeater should execute.
*
* <p>If the Repeater reaches the end of the data provider while
* executing, the number of times it actually executes will be less
* that the requested count.</p>
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get count():int;
/**
* @private
*/
function set count(value:int):void;
//----------------------------------
// currentIndex
//----------------------------------
/**
* The index of the item in the <code>dataProvider</code> currently
* being processed while this Repeater is executing.
*
* <p>After the Repeater has finished executing,
* this property is <code>-1</code>.
* However, the <code>repeaterIndex</code> property of a repeated
* component instance remembers the index of the
* <code>dataProvider</code> item from which it was created.
* In the case of nested Repeaters, you can use the
* <code>repeaterIndices</code> array.</p>
*
* @see mx.core.UIComponent#repeaterIndex
* @see mx.core.UIComponent#repeaterIndices
* @see mx.core.UIComponent#instanceIndex
* @see mx.core.UIComponent#instanceIndices
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get currentIndex():int;
//----------------------------------
// currentItem
//----------------------------------
/**
* The item in the <code>dataProvider</code> currently being processed
* while this Repeater is executing.
*
* <p>After the Repeater has finished executing,
* this property is <code>null</code>.
* However, in this case you can call the <code>getRepeaterItem()</code>
* method of the repeated component instance to get the
* <code>dataProvider</code> item from which it was created.</p>
*
* @see mx.core.UIComponent#getRepeaterItem()
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get currentItem():Object;
//----------------------------------
// dataProvider
//----------------------------------
/**
* The data provider used by this Repeater to create repeated instances
* of its children.
*
* <p>If you read the <code>dataProvider</code> property, you always get
* an ICollectionView object or <code>null</code>.
* If you set the <code>dataProvider</code> property to anything other than
* <code>null</code>, it is converted into an ICollectionView object,
* according the following rules:</p>
*
* <ul>
* <li>If you set it to an Array, it is converted into an ArrayCollection.</li>
* <li>If you set it to an ICollectionView, no conversion is performed.</li>
* <li>If you set it to an IList, it is converted into a ListCollectionView.</li>
* <li>If you set it to an XML or XMLList, it is converted
* into an XMLListCollection.</li>
* <li>Otherwise, it is converted to a single-element ArrayCollection.</li>
* </ul>
*
* <p>You must specify a value for the <code>dataProvider</code> property
* or the Repeater component will not execute.</p>
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get dataProvider():Object;
/**
* @private
*/
function set dataProvider(value:Object):void;
//----------------------------------
// recycleChildren
//----------------------------------
/**
* A Boolean flag indicating whether this Repeater should re-use
* previously created children, or create new ones.
*
* <p>If <code>true</code>, when this Repeater's
* <code>dataProvider</code>, <code>startingIndex</code>,
* or <code>count</code> changes, it will recycle the existing
* children by binding the new data into them.
* If more children are required, they are created and added.
* If fewer children are required, the extra ones are removed
* and garbage collected.</p>
*
* <p>If <code>false</code>, when this Repeater's
* <code>dataProvider</code>, <code>startingIndex</code>,
* or <code>count</code> changes, it will remove any previous
* children that it created and then create and
* add new children from the new data items.</p>
*
* <p>This property is <code>false</code> by default.
* Setting it to <code>true</code> can increase performance,
* but is not appropriate in all situations.
* For example, if the previously created children have state
* information such as text typed in by a user, then this
* state will not get reset when the children are recycled.</p>
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get recycleChildren():Boolean;
/**
* @private
*/
function set recycleChildren(value:Boolean):void;
//----------------------------------
// startingIndex
//----------------------------------
/**
* The index into the <code>dataProvider</code> at which this Repeater
* starts creating children.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get startingIndex():int;
/**
* @private
*/
function set startingIndex(value:int):void;
//--------------------------------------------------------------------------
//
// Methods
//
//--------------------------------------------------------------------------
/**
* Initializes a new Repeater object.
*
* <p>This method is called by the Flex framework.
* Developers should not need to call it.</p>
*
* @param container The Container that contains this Repeater,
* and in which this Repeater will create its children.
*
* @param recurse A Boolean flag indicating whether this Repeater
* should create all descendants of its children.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function initializeRepeater(container:IContainer, recurse:Boolean):void;
/**
* Executes the bindings into all the UIComponents created
* by this Repeater.
*
* <p>This method is called by the Flex framework.
* Developers should not need to call it.</p>
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function executeChildBindings():void;
}
}