blob: 89e51ca7efe4acfdbc164f8a9dc44b963941cbb9 [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.collections
{
/**
* The IHierarchicalCollectionView interface defines an interface
* for hierarchical or grouped data.
* Typically, you use this data with the AdvancedDataGrid control.
*
* @see mx.controls.AdvancedDataGrid
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
public interface IHierarchicalCollectionView extends ICollectionView
{
//--------------------------------------------------------------------------
//
// Properties
//
//--------------------------------------------------------------------------
//----------------------------------
// openNodes
//----------------------------------
/**
* An Array of Objects containing the data provider element
* for all the open branch nodes of the data.
*
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get openNodes():Object;
/**
* @private
*/
function set openNodes(value:Object):void
//----------------------------------
// hasRoot
//----------------------------------
/**
* A flag that, if <code>true</code>, indicates that the current data provider has a root node;
* for example, a single top-level node in a hierarchical structure.
* XML and Object are examples of data types that have a root node,
* while Lists and Arrays do not.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get hasRoot():Boolean;
//----------------------------------
// showRoot
//----------------------------------
/**
* A Boolean flag that specifies whether to display the data provider's root node.
* If the source data has a root node, and this property is set to
* <code>false</code>, the collection will not include the root item.
* Only the descendants of the root item will be included in the collection.
*
* <p>This property has no effect on a source with no root node,
* such as List and Array objects.</p>
*
* @default true
* @see #hasRoot
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get showRoot():Boolean;
/**
* @private
*/
function set showRoot(value:Boolean):void;
//----------------------------------
// source
//----------------------------------
/**
* The source data of the IHierarchicalCollectionView.
*
* @return the IHierarchicalData instance representing the source
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function get source():IHierarchicalData;
/**
* @private
*/
function set source(value:IHierarchicalData):void;
//--------------------------------------------------------------------------
//
// Methods
//
//--------------------------------------------------------------------------
/**
* Opens a node to display its children.
*
* @param node The Object that defines the node.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function openNode(node:Object):void
/**
* Closes a node to hide its children.
*
* @param node The Object that defines the node.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function closeNode(node:Object):void
/**
* Returns a collection of children, if they exist.
*
* @param node The Object that defines the node.
* If <code>null</code>, return a collection of top level nodes.
*
* @return ICollectionView instance containing the child nodes.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function getChildren(node:Object):ICollectionView;
/**
* Adds a child node to a node of the data.
*
* @param node The Object that defines the parent node.
*
* @param child The Object that defines the new node.
*
* @return <code>true</code> if the node is added successfully.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function addChild(parent:Object, newChild:Object):Boolean;
/**
* Removes the child node from the parent node.
*
* @param node The Object that defines the parent node,
* and <code>null</code> for top-level nodes.
*
* @param child The Object that defines the child node to be removed.
*
* @return <code>true</code> if the node is removed successfully.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function removeChild(parent:Object, child:Object):Boolean;
/**
* Adds a child node to a node of the data at a specific index in the data.
*
* @param node The Object that defines the parent node.
*
* @param child The Object that defines the new node.
*
* @param index The zero-based index of where to insert the child node.
*
* @return <code>true</code> if the node is added successfully.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function addChildAt(parent:Object, newChild:Object,
index:int):Boolean;
/**
* Removes the child node from a node at the specified index.
*
* @param parent The node object that currently parents the child node.
* Set <code>parent</code> to <code>null</code> for top-level nodes.
*
* @param index The zero-based index of the child node to remove relative to the parent.
*
* @return <code>true</code> if successful, and <code>false</code> if not.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function removeChildAt(parent:Object, index:int):Boolean;
/**
* Returns the depth of the node in the collection.
*
* @param node The Object that defines the node.
*
* @return The depth of the node.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function getNodeDepth(node:Object):int;
/**
* Returns the parent of a node.
* The parent of a top-level node is <code>null</code>.
*
* @param node The Object that defines the node.
*
* @return The parent node containing the node as child,
* <code>null</code> for a top-level node,
* and <code>undefined</code> if the parent cannot be determined.
*
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
* @productversion Flex 3
*/
function getParentItem(node:Object):*;
}
}