Packagemx.collections
Classpublic class GroupingCollection2
InheritanceGroupingCollection2 Inheritance HierarchicalData Inheritance flash.events.EventDispatcher
Implements IGroupingCollection2

Language Version : ActionScript 3.0
Product Version : Flex 4
Runtime Versions : Flash Player 10, AIR 1.5

The GroupingCollection2 class lets you create grouped data from flat data for display in the AdvancedDataGrid control. When you create the instance of the GroupingCollection2 from your flat data, you specify the field or fields of the data used to create the hierarchy.

Note: In the previous release of Flex, you used the GroupingCollection class with the AdvancedDataGrid control. The GroupingCollection2 class is new for Flex 4 and provides better performance than GroupingCollection.

To populate the AdvancedDataGrid control with grouped data, you create an instance of the GroupingCollection2 class from your flat data, and then pass that GroupingCollection2 instance to the data provider of the AdvancedDataGrid control. To specify the grouping fields of your flat data, you pass a Grouping instance to the GroupingCollection2.grouping property. The Grouping instance contains an Array of GroupingField instances, one per grouping field.

The following example uses the GroupingCollection2 class to define two grouping fields: Region and Territory.

  <mx:AdvancedDataGrid id="myADG"    
    <mx:dataProvider> 
      <mx:GroupingCollection2 id="gc" source="{dpFlat}"> 
        <mx:grouping> 
          <mx:Grouping> 
            <mx:GroupingField name="Region"/> 
            <mx:GroupingField name="Territory"/> 
          </mx:Grouping> 
        </mx:grouping> 
      </mx:GroupingCollection2> 
    </mx:dataProvider>  
     
    <mx:columns> 
      <mx:AdvancedDataGridColumn dataField="Region"/> 
      <mx:AdvancedDataGridColumn dataField="Territory"/> 
      <mx:AdvancedDataGridColumn dataField="Territory_Rep"/> 
      <mx:AdvancedDataGridColumn dataField="Actual"/> 
      <mx:AdvancedDataGridColumn dataField="Estimate"/> 
    </mx:columns> 
  </mx:AdvancedDataGrid>
  

MXML SyntaxexpandedHide MXML Syntax
The <mx.GroupingCollection2> inherits all the tag attributes of its superclass, and defines the following tag attributes:

  <mx:GroupingCollection2
  Properties 
    grouping="No default"
    source="No default"
    summaries="No default"
  />
  

Default MXML Propertygrouping

See also

mx.controls.AdvancedDataGrid
mx.collections.Grouping
mx.collections.GroupingField


Public Properties
 PropertyDefined By
 InheritedchildrenField : String
Indicates the field name to be used to detect children objects in a data item.
HierarchicalData
  grouping : Grouping
Specifies the Grouping instance applied to the source data.
GroupingCollection2
  source : Object
[override] The source collection containing the flat data to be grouped.
GroupingCollection2
  summaries : Array
Array of SummaryRow instances that define any root-level data summaries.
GroupingCollection2
Protected Properties
 PropertyDefined By
  timer : Timer
The timer which is associated with an asynchronous refresh operation.
GroupingCollection2
Public Methods
 MethodDefined By
  
Constructor.
GroupingCollection2
  
If the refresh is performed asynchronously, cancels the refresh operation and stops the building of the groups.
GroupingCollection2
 Inherited
canHaveChildren(node:Object):Boolean
Returns true if the node can contain children.
HierarchicalData
 Inherited
getChildren(node:Object):Object
Returns an Object representing the node's children.
HierarchicalData
 Inherited
getData(node:Object):Object
Returns data from a node.
HierarchicalData
  
getRoot():Object
[override] Return super.source, if the grouping property is set, and an ICollectionView instance that refers to super.source if not.
GroupingCollection2
 Inherited
hasChildren(node:Object):Boolean
Returns true if the node has children.
HierarchicalData
  
refresh(async:Boolean = false, dispatchCollectionEvents:Boolean = false):Boolean
Applies the grouping to the collection.
GroupingCollection2
Protected Methods
 MethodDefined By
  
getParent(node:Object):*
Returns the parent of a node.
GroupingCollection2
Property Detail
groupingproperty
grouping:Grouping

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

Specifies the Grouping instance applied to the source data. Setting the grouping property does not automatically refresh the view, so you must call the refresh() method after setting this property.


Implementation
    public function get grouping():Grouping
    public function set grouping(value:Grouping):void

See also

sourceproperty 
source:Object[override]

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

The source collection containing the flat data to be grouped. If the source is not a collection, it will be auto-wrapped into a collection.


Implementation
    public function get source():Object
    public function set source(value:Object):void
summariesproperty 
public var summaries:Array

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

Array of SummaryRow instances that define any root-level data summaries. Specify one or more SummaryRow instances to define the data summaries, as the following example shows:

      <mx:AdvancedDataGrid id="myADG" 
         width="100%" height="100%" 
         initialize="gc.refresh();">        
         <mx:dataProvider>
             <mx:GroupingCollection2 id="gc" source="{dpFlat}">
                 <mx:summaries>
                     <mx:SummaryRow summaryPlacement="last">
                         <mx:fields>
                             <mx:SummaryField2 dataField="Actual" 
                                 label="Min Actual" summaryOperation="MIN"/>
                             <mx:SummaryField2 dataField="Actual" 
                                 label="Max Actual" summaryOperation="MAX"/>
                         </mx:fields>
                       </mx:SummaryRow>
                     </mx:summaries>
                 <mx:Grouping>
                     <mx:GroupingField name="Region"/>
                     <mx:GroupingField name="Territory"/>
                 </mx:Grouping>
             </mx:GroupingCollection2>
         </mx:dataProvider>        
         
         <mx:columns>
             <mx:AdvancedDataGridColumn dataField="Region"/>
             <mx:AdvancedDataGridColumn dataField="Territory_Rep"
                 headerText="Territory Rep"/>
             <mx:AdvancedDataGridColumn dataField="Actual"/>
             <mx:AdvancedDataGridColumn dataField="Estimate"/>
             <mx:AdvancedDataGridColumn dataField="Min Actual"/>
             <mx:AdvancedDataGridColumn dataField="Max Actual"/>
         </mx:columns>
      </mx:AdvancedDataGrid>

See also

timerproperty 
protected var timer:Timer

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

The timer which is associated with an asynchronous refresh operation. You can use it to change the timing interval, pause the refresh, or perform other actions. The default value for the delay property of the Timer instance is 1, corresponding to 1 millisecond.

Constructor Detail
GroupingCollection2()Constructor
public function GroupingCollection2()

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

Constructor.

Method Detail
cancelRefresh()method
public function cancelRefresh():void

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

If the refresh is performed asynchronously, cancels the refresh operation and stops the building of the groups. This method only cancels the refresh if it is initiated by a call to the refresh() method with an asynch argument of true, corresponding to an asynchronous refresh.

getParent()method 
protected function getParent(node:Object):*

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

Returns the parent of a node. The parent of a top-level node is null.

Parameters

node:Object — The Object that defines the node.

Returns
* — The parent node containing the node as child, null for a top-level node, and undefined if the parent cannot be determined.
getRoot()method 
override public function getRoot():Object

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

Return super.source, if the grouping property is set, and an ICollectionView instance that refers to super.source if not.

Returns
Object — The object to return.
refresh()method 
public function refresh(async:Boolean = false, dispatchCollectionEvents:Boolean = false):Boolean

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 10, AIR 1.5

Applies the grouping to the collection. The collection does not detect changes to a group automatically, so you must call the refresh() method to update the collection after setting the grouping, source, or summaries properties. You also call the refresh() method when you modify a GroupingField of the collection, such as by changing the caseInsensitive, compareFunction, or groupingFunction properties.

The refresh() method can be applied synchronously or asynchronously.

When refresh() is called synchronously, all groups and summaries are updated together before the method returns. That means your application cannot perform other processing operations for the duration of the call. A client should wait for a CollectionEvent event with the value of the kind property set to CollectionEventKind.REFRESH to ensure that the refresh() method completed.

In asynchronous refresh, all groups and summaries are updated individually. The refresh() method returns before the groups and summaries are updated so that your application can continue execution. Also, the control is updated during the refresh so that the user can continue to interact with it.

The overhead of updating groups and summaries individually, rather than all at once, makes an asynchronous refresh take longer than a synchronous one. However, for large data sets, your application continues to operate during the refresh.

Parameters

async:Boolean (default = false) — If true, defines the refresh to be asynchronous. By default it is false denoting synchronous refresh.
 
dispatchCollectionEvents:Boolean (default = false) — If true, events are dispatched when groups are formed. For better performance, set it to false. If true, then events are dispatched as groups and summaries are calculated synchronously to update the control. Note: If async is true, the dispatchCollectionEvents is always set to true. By default it is false denoting no events will be dispatched.

Returns
Booleantrue if the refresh() method completed, and false if the refresh is incomplete, which can mean that items are still pending.