//////////////////////////////////////////////////////////////////////////////// // // 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.controls.advancedDataGridClasses { import mx.controls.listClasses.IListItemRenderer; /** * The AdvancedDataGridHeaderInfo class contains information that describes the * hierarchy of the columns of the AdvancedDataGrid control. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public class AdvancedDataGridHeaderInfo { include "../../core/Version.as"; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- /** * Constructor. * * @param column A reference to the AdvancedDataGridColumn instance * that this AdvancedDataGridHeaderInfo instance corresponds to. * * @param parent The parent AdvancedDataGridHeaderInfo instance * of this AdvancedDataGridHeaderInfo instance. * * @param index The index of this AdvancedDataGridHeaderInfo instance * in the AdvancedDataGrid control. * * @param depth The depth of this AdvancedDataGridHeaderInfo instance * in the columns hierarchy of the AdvancedDataGrid control. * * @param children An Array of all of the child AdvancedDataGridHeaderInfo instances * of this AdvancedDataGridHeaderInfo instance. * * @param internalLabelFunction A function that gets created if the column grouping * requires extracting data from nested objects. * * @param headerItem A reference to IListItemRenderer instance used to * render the column header. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public function AdvancedDataGridHeaderInfo(column:AdvancedDataGridColumn, parent:AdvancedDataGridHeaderInfo, index:int, depth:int, children:Array = null, internalLabelFunction:Function = null, headerItem:IListItemRenderer = null) { this.column = column; this.parent = parent; this.index = index; this.depth = depth; this.children = children; this.internalLabelFunction = internalLabelFunction; this.headerItem = headerItem; } //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- //---------------------------------- // column //---------------------------------- /** * A reference to the AdvancedDataGridColumn instance * corresponding to this AdvancedDataGridHeaderInfo instance. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var column:AdvancedDataGridColumn; //---------------------------------- // parent //---------------------------------- /** * The parent AdvancedDataGridHeaderInfo instance * of this AdvancedDataGridHeaderInfo instance * if this column is part of a column group. * * @default null * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var parent:AdvancedDataGridHeaderInfo; //---------------------------------- // index //---------------------------------- /** * The index of this AdvancedDataGridHeaderInfo instance * in the AdvancedDataGrid control. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var index:int; //---------------------------------- // depth //---------------------------------- /** * The depth of this AdvancedDataGridHeaderInfo instance * in the columns hierarchy of the AdvancedDataGrid control, * if this column is part of a column group. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var depth:int; //---------------------------------- // children //---------------------------------- /** * An Array of all of the child AdvancedDataGridHeaderInfo instances * of this AdvancedDataGridHeaderInfo instance, * if this column is part of a column group. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var children:Array; //---------------------------------- // headerItem //---------------------------------- /** * A reference to IListItemRenderer instance used to render the column header. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var headerItem:IListItemRenderer; //---------------------------------- // internalLabelFunction //---------------------------------- /** * A function that gets created if the * column grouping requires extracting data from nested objects. * *

For example, if each data row appears as:

*
row = {.., .., Q1: { y2005: 241, y2006:353}};
* *

and you define a column group as:

*
     <mx:AdvancedDataGridColumnGroup dataField="Q1">
    *     <mx:AdvancedDataGridColumn dataField="y2005">
    *     <mx:AdvancedDataGridColumn dataField="y2006">
    *  </mx:AdvancedDataGridColumnGroup>
* *

The function for the column corresponding to y2005 is defined as:

*
     function foo():String
    *  {
    *     return row["Q1"]["2005"];
    *  }
* *

The function also handles the case when any of the column or column groups * uses a label function instead of a data field.

* * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var internalLabelFunction:Function; //---------------------------------- // columnSpan //---------------------------------- /** * Number of actual columns spanned by the column header when using column groups. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var columnSpan:int; //---------------------------------- // actualColNum //---------------------------------- /** * The actual column index at which the header starts, * relative to the currently displayed columns. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var actualColNum:int; //---------------------------------- // visible //---------------------------------- /** * Contains true if the column is currently visible. * * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var visible:Boolean; //---------------------------------- // visibleChildren //---------------------------------- /** * An Array of the currently visible child AdvancedDataGridHeaderInfo instances. * if this column is part of a column group. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var visibleChildren:Array; //---------------------------------- // visibleIndex //---------------------------------- /** * The index of this column in the list of visible children of its parent * AdvancedDataGridHeaderInfo instance, * if this column is part of a column group. * * @langversion 3.0 * @playerversion Flash 9 * @playerversion AIR 1.1 * @productversion Flex 3 */ public var visibleIndex:int; } }