| Package | mx.collections | 
| Class | public class GroupingCollection2 | 
| Inheritance | GroupingCollection2    HierarchicalData   EventDispatcher   Object | 
| Implements | IGroupingCollection2 | 
| Language Version: | ActionScript 3.0 | 
| Product Version: | Flex 4 | 
| Runtime Versions: | Flash Player 10, AIR 1.5 | 
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 Syntax
Hide MXML Syntax<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
More examples
Using synchronous or asynchronous refresh with the AdvancedDataGrid control
Using the default MXML property of the GroupingCollection2 class
Creating summary rows
Related API Elements
| Property | Defined By | ||
|---|---|---|---|
![]()  | childrenField : String 
      Indicates the field name to be used to detect children objects in
      a data item.  | HierarchicalData | |
![]()  | constructor : Object 
	 A reference to the class object or constructor function for a given object instance.  | Object | |
| 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 | ||
| Property | Defined By | ||
|---|---|---|---|
| timer : flash.utils:Timer 
      The timer which is associated with an asynchronous refresh operation.  | GroupingCollection2 | ||
| Method | Defined By | ||
|---|---|---|---|
      Constructor.  | GroupingCollection2 | ||
![]()  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 
	Registers an event listener object with an EventDispatcher object so that the listener 
	receives notification of an event.  | EventDispatcher | |
      
      If the refresh is performed asynchronously,
      cancels the refresh operation and stops the building of the groups.  | GroupingCollection2 | ||
![]()  | 
     
      Returns true if the node can contain children.  | HierarchicalData | |
![]()  | 
	Dispatches an event into the event flow.  | EventDispatcher | |
![]()  | 
      
      Returns an Object representing the node's children.  | HierarchicalData | |
![]()  | 
      
      Returns data from a node.  | HierarchicalData | |
[override] 
      Return super.source, if the grouping property is set, 
      and an ICollectionView instance that refers to super.source if not.  | GroupingCollection2 | ||
![]()  | 
      
      Returns true if the node has children.  | HierarchicalData | |
![]()  | 
	Checks whether the EventDispatcher object has any listeners registered for a specific type 
	of event.  | EventDispatcher | |
![]()  | 
	 Indicates whether an object has a specified property defined.  | Object | |
![]()  | 
	 Indicates whether an instance of the Object class is in the prototype chain of the object specified 
	 as the parameter.  | Object | |
![]()  | 
	 Indicates whether the specified property exists and is enumerable.  | Object | |
      
      Applies the grouping to the collection.  | GroupingCollection2 | ||
![]()  | 
	Removes a listener from the EventDispatcher object.  | EventDispatcher | |
![]()  | 
     Sets the availability of a dynamic property for loop operations.  | Object | |
![]()  | 
	 Returns the string representation of this object, formatted according to locale-specific conventions.  | Object | |
![]()  | 
	 Returns the string representation of the specified object.  | Object | |
![]()  | 
	 Returns the primitive value of the specified object.  | Object | |
![]()  | 
	Checks whether an event listener is registered with this EventDispatcher object or any of 
	its ancestors for the specified event type.  | EventDispatcher | |
| Method | Defined By | ||
|---|---|---|---|
      Returns the parent of a node.  | GroupingCollection2 | ||
| Event | Summary | Defined By | ||
|---|---|---|---|---|
![]()  | [broadcast event] Dispatched when the Flash Player or AIR application gains operating system focus and becomes active. | EventDispatcher | ||
![]()  | [broadcast event] Dispatched when the Flash Player or AIR application operating loses system focus and is becoming inactive. | EventDispatcher | ||
grouping | property | 
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):voidRelated API Elements
source | property | 
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
    override public function get source():Object    override public function set source(value:Object):voidsummaries | property | 
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>
Related API Elements
timer | property | 
protected var timer:flash.utils: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.
     
      
      
GroupingCollection2 | () | Constructor | 
public function GroupingCollection2()| Language Version: | ActionScript 3.0 | 
| Product Version: | Flex 3 | 
| Runtime Versions: | Flash Player 10, AIR 1.5 | 
Constructor.
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.
     
       | 
* — 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.
      
      
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.
      
       | 
Boolean — true if the refresh() method completed,
      and false if the refresh is incomplete, 
      which can mean that items are still pending.
      
       | 
Thu Dec 4 2014, 05:50 PM -08:00
 
Show MXML Syntax