{ "type": "class",
  "qname": "mx.controls.AdvancedDataGrid",
  "baseClassname": "mx.controls.listClasses.AdvancedListBase"
  ,
    "description": "The AdvancedDataGrid control expands on the functionality of the standard DataGrid control to add data visualization features to your Apache Flex application. These features provide greater control of data display, data aggregation, and data formatting.  The <code>AdvancedDataGrid</code> control is like a List control except that it can show more than one column of data, making it suited for showing objects with multiple properties. <p> The AdvancedDataGrid control provides the following features: <ul> <li>Columns of different widths or identical fixed widths.</li> <li>Columns that the user can resize at run time. </li> <li>Columns that the user can reorder at run time. </li> <li>Optional customizable column headers.</li> <li>Ability to use a custom item renderer for any column to display data other than text.</li> <li>Support for sorting the data by clicking on a column.</li> </ul> </p> The AdvancedDataGrid control is intended for viewing data, and not as a layout tool like an HTML table. The mx.containers package provides those layout tools.  <p> The <code>&lt;mx:AdvancedDataGrid&gt;</code> tag inherits all of the tag attributes of its superclass, except for <code>labelField</code>, <code>iconField</code>, and <code>iconFunction</code>, and adds the following tag attributes: </p> <pre>\\n &lt;mx:AdvancedDataGrid\\n <b>Properties</b>\\n displayDisclosureIcon=&quot;true|false&quot;\\n displayItemsExpanded=&quot;false|true&quot;\\n groupedColumns=&quot;[]&quot;\\n groupIconFunction=&quot;null&quot;\\n groupItemRenderer=&quot;AdvancedDataGridGroupItemRenderer&quot;\\n groupLabelFunction=&quot;null&quot;\\n groupRowHeight=&quot;-1&quot;\\n itemIcons=&quot;undefined&quot;\\n lockedColumnCount=&quot;0&quot;\\n lockedRowCount=&quot;0&quot;\\n rendererProviders=&quot;[]&quot;\\n selectedCells=&quot;null&quot;\\n treeColumn=&quot;null&quot;\\n \\n <b>Styles</b>\\n alternatingItemColors=&quot;undefined&quot;\\n defaultLeafIcon=&quot;TreeNodeIcon&quot;\\n depthColors=&quot;undefined&quot;\\n disclosureClosedIcon=&quot;TreeDisclosureClosed&quot;\\n disclosureOpenIcon=&quot;TreeDisclosureOpen&quot;\\n folderClosedIcon=&quot;TreeFolderClosed&quot;\\n folderOpenIcon=&quot;TreeFolderOpen&quot;\\n headerHorizontalSeparatorSkin=&quot;undefined&quot;\\n indentation=&quot;17&quot;\\n openDuration=&quot;250&quot;\\n openEasingFunction=&quot;undefined&quot;\\n paddingLeft=&quot;2&quot;\\n paddingRight=&quot;0&quot;\\n selectionDisabledColor=&quot;#DDDDDD&quot;\\n selectionEasingFunction=&quot;undefined&quot;\\n sortFontFamily=&quot;Verdana&quot;\\n sortFontSize=&quot;10&quot;\\n sortFontStyle=&quot;normal&quot;\\n sortFontWeight=&quot;normal&quot;\\n textRollOverColor=&quot;#2B333C&quot;\\n textSelectedColor=&quot;#2B333C&quot;\\n \\n <b>Events</b>\\n headerDragOutside=&quot;<i>No default</i>&quot;\\n headerDropOutside=&quot;<i>No default</i>&quot;\\n itemClose=&quot;<i>No default</i>&quot;\\n itemOpen=&quot;<i>No default</i>&quot;\\n itemOpening=&quot;<i>No default</i>&quot;\\n /&gt;\\n \\n <b><i>The following AdvancedDataGrid code sample specifies the column order:</i></b>\\n &lt;mx:AdvancedDataGrid&gt;\\n &lt;mx:dataProvider&gt;\\n &lt;mx:Object Artist=&quot;Pavement&quot; Price=&quot;11.99&quot;\\n Album=&quot;Slanted and Enchanted&quot;/&gt;\\n &lt;mx:Object Artist=&quot;Pavement&quot;\\n Album=&quot;Brighten the Corners&quot; Price=&quot;11.99&quot;/&gt;\\n &lt;/mx:dataProvider&gt;\\n &lt;mx:columns&gt;\\n &lt;mx:AdvancedDataGridColumn dataField=&quot;Album&quot;/&gt;\\n &lt;mx:AdvancedDataGridColumn dataField=&quot;Price&quot;/&gt;\\n &lt;/mx:columns&gt;\\n &lt;/mx:AdvancedDataGrid&gt;\\n </pre> </p>",
  "tags": [
  {  "tagName": "includeExample",
         "values": ["examples/AdvancedDataGridExample.mxml"]},
      {  "tagName": "see",
         "values": ["mx.controls.advancedDataGridClasses.AdvancedDataGridItemRenderer", "mx.controls.advancedDataGridClasses.AdvancedDataGridColumn", "mx.controls.advancedDataGridClasses.AdvancedDataGridDragProxy", "mx.events.AdvancedDataGridEvent", "mx.controls.DataGrid"]},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "mxml",
         "values": []},
      {  "tagName": "productversion",
         "values": ["Royale 0.9.4"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "field",
        "qname": "NONE",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Constant definition for the <code>selectionMode</code> property. No selection is allowed in the control, and the <code>selectedCells</code> property is null.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.controls.AdvancedDataGrid#selectedCells"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "SINGLE_ROW",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Constant definition for the <code>selectionMode</code> property to allow the selection of a single row. Click any cell in the row to select the row.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.controls.AdvancedDataGrid#selectedCells"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "MULTIPLE_ROWS",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Constant definition for the <code>selectionMode</code> property to allow the selection of multiple rows. Click any cell in the row to select the row. While holding down the Control key, click any cell in another row to select the row for discontiguous selection. While holding down the Shift key, click any cell in another row to select multiple, contiguous rows.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.controls.AdvancedDataGrid#selectedCells"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "SINGLE_CELL",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Constant definition for the <code>selectionMode</code> property to allow the selection of a single cell. Click any cell to select the cell.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.controls.AdvancedDataGrid#selectedCells"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "MULTIPLE_CELLS",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "Constant definition for the <code>selectionMode</code> property to allow the selection of multiple cells. Click any cell in the row to select the cell. While holding down the Control key, click any cell to select the cell for discontiguous selection. While holding down the Shift key, click any cell to select multiple, contiguous cells.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.controls.AdvancedDataGrid#selectedCells"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "mx.controls.AdvancedDataGrid",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": []}
      ,
      { "type": "field",
        "qname": "itemEditorInstance",
        "return": "mx.controls.listClasses.IListItemRenderer",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A reference to the currently active instance of the item editor, if it exists.  <p>To access the item editor instance and the new item value when an item is being edited, you use the <code>itemEditorInstance</code> property. The <code>itemEditorInstance</code> property is not valid until after the event listener for the <code>itemEditBegin</code> event executes. Therefore, you typically only access the <code>itemEditorInstance</code> property from within the event listener for the <code>itemEditEnd</code> event.</p>  <p>The <code>AdvancedDataGridColumn.itemEditor</code> property defines the class of the item editor, and therefore the data type of the item editor instance.</p>  <p>You do not set this property in MXML.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.controls.listClasses.IListItemRenderer",
        "qname": "editedItemRenderer",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A reference to the item renderer in the AdvancedDataGrid control whose item is currently being edited.  <p>From within an event listener for the <code>itemEditBegin</code> and <code>itemEditEnd</code> events, you can access the current value of the item being edited using the <code>editedItemRenderer.data</code> property.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "cellSelectionIndicators",
        "return": "Object",
        "namespace": "mx_internal",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A hash table of selection indicators.  This table allows the component to quickly find and remove the indicators when the set of selected items is cleared.  The table is indexed by the item's UID and column number.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "dataProvider",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Set of data to be viewed. This property lets you use most types of objects as data providers. If you set the <code>dataProvider</code> property to an Array, it will be converted to an ArrayCollection. If you set the property to an XML object, it will be converted into an XMLListCollection with only one item. If you set the property to an XMLList, it will be converted to an XMLListCollection. If you set the property to an object that implements the IList or ICollectionView interface, the object will be used directly.  <p>As a consequence of the conversions, when you get the <code>dataProvider</code> property, it will always be an ICollectionView, and therefore not necessarily be the type of object you used to  you set the property. This behavior is important to understand if you want to modify the data in the data provider: changes to the original data may not be detected, but changes to the ICollectionView object that you get back from the <code>dataProvider</code> property will be detected.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null", "null", "null"]},
            {  "tagName": "see",
               "values": ["mx.collections.ICollectionView", "mx.collections.ICollectionView", "mx.collections.ICollectionView"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3", "Flex 3", "Flex 3"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ISelectionModel", "org.apache.royale.core.ISelectionModel", "org.apache.royale.core.ISelectionModel"]},
            {  "tagName": "langversion",
               "values": ["3.0", "3.0", "3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "lockedColumnCount",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The index of the first column in the control that scrolls. Columns to the left of this one remain fixed in view.  <p>When using column groups, a column group is considered to be a single column. For example, if you set this property to 2, and the left-most two column groups contain two and three children, respectively, then you have effectively locked the first five columns of the control.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "groupedColumns",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "An Array that defines the hierarchy of AdvancedDataGridColumn instances when performing column grouping. If you specify both the <code>columns</code> and <code>groupedColumns</code> properties, the control uses the <code>groupedColumns</code> property and ignores the <code>columns</code> property.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "selectedCells",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Contains an Array of cell locations as row and column indices. Changing the value of the <code>selectionMode</code> property sets this property to <code>null</code>.  <p>Note that these row and column indices are absolute values, irrespective of the display. This is explained by a typical <code>selectedCells</code> property setting as follows:</p>  <pre>\\n selectedCells = [ { rowIndex : r1, columnIndex : c1 },\\n { rowIndex : r2, columnIndex : c2 },\\n ... ]</pre>  <p>Then, dataProvider[r1], columns[c1], dataProvider[r2], columns[c2], etc. will always be valid.</p>  <p>If you want to programmatically change the set of selected cells, you must get this Array, make modifications to the cells and order of cells in the Array, and then assign the new array to the <code>selectedCells</code> property. This is because the AdvancedDataGrid control returns a new copy of the Array of selectedCells and therefore does not notice the changes.</p>  <p>The value of the <code>selectionMode</code> property determines the data in the <code>rowIndex</code> and <code>columnIndex</code> properties, as the following table describes:</p>  <table class=&quot;innertable&quot;> <tr> <th><code>selectionMode</code></th> <th>Value of <code>rowIndex</code> and <code>columnIndex</code> properties</th> </tr> <tr> <td>none</td> <td>No selection allowed in the control, and <code>selectedCells</code> is null. </td> </tr> <tr> <td><code>singleRow</code>  </td> <td>Click any cell in the row to select the row. After the selection, <code>selectedCells</code> contains a single Object: <p>[{rowIndex:selectedRowIndex, columnIndex: -1}]</p></td> </tr> <tr> <td><code>multipleRows</code></td> <td>Click any cell in the row to select the row. While holding down the Control key, click any cell in another row to select the row for discontiguous selection. While holding down the Shift key, click any cell in another row to select multiple, contiguous rows. After the selection, <code>selectedCells</code> contains one Object for each selected row: <p>[   {rowIndex: selectedRowIndex1, columnIndex: -1}, {rowIndex: selectedRowIndex2, columnIndex: -1}, ... {rowIndex: selectedRowIndexN, columnIndex: -1} ] </p></td> </tr> <tr> <td><code>singleCell</code></td> <td>Click any cell to select the cell. After the selection, <code>selectedCells</code> contains a single Object: <p>[{rowIndex: selectedRowIndex, columnIndex:selectedColIndex}] </p></td> </tr> <tr> <td><code>multipleCells</code></td> <td>Click any cell to select the cell. While holding down the Control key, click any cell to select the cell multiple discontiguous selection. While holding down the Shift key, click any cell to select multiple, contiguous cells. After the selection, <code>selectedCells</code> contains one Object for each selected cell: <p>[   {rowIndex: selectedRowIndex1, columnIndex: selectedColIndex1}, {rowIndex: selectedRowIndex2, columnIndex: selectedColIndex2}, ... {rowIndex: selectedRowIndexN, columnIndex: selectedColIndexN} ] </p></td> </tr> </table>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "designViewDataType",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.collections.IHierarchicalCollectionView",
        "qname": "hierarchicalCollectionView",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The IHierarchicalCollectionView instance used by the control.  <p>The default value is an internal instance of the HierarchicalCollectionView class.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.collections.IHierarchicalCollectionView"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "treeColumnIndex",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The tree column number.",
        "tags": [
        {  "tagName": "default",
               "values": ["0"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "isItemOpen",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns <code>true</code> if the specified branch node is open.  This Object contains the data provider element for the branch node.",
        "tags": [
        {  "tagName": "param",
               "values": ["item Branch node to inspect."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "return",
               "values": ["<code>true</code> if open, and <code>false</code> if not."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Boolean",
          "params": [{ "name": "item", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "openNode",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Open a node",
        "tags": [
        {  "tagName": "param",
               "values": ["item Branch node to open."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "item", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "closeNode",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Open a node",
        "tags": [
        {  "tagName": "param",
               "values": ["item Branch node to open."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "item", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "removeCellSelectionData",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Removes cell selection information from the control.",
        "tags": [
        {  "tagName": "param",
               "values": ["uid The UID of the selected cell.", "columnIndex The column index of the selected cell."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "uid", "type": "String"},
        { "name": "columnIndex", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "clearIndicators",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "inheritDoc",
               "values": ["mx.controls.listClasses.ListBase#clearIndicators()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "columns",
        "namespace": "public",
        "bindable": ["columnsChanged"],
        "details": [],
        "deprecated": {},
          "description": "An array of DataGridColumn objects, one for each column that can be displayed.  If not explicitly set, the DataGrid control attempts to examine the first data provider item to determine the set of properties and display those properties in alphabetic order.  <p>If you want to change the set of columns, you must get this array, make modifications to the columns and order of columns in the array, and then assign the new array to the columns property.  This is because the DataGrid control returned a new copy of the array of columns and therefore did not notice the changes.</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "selectionMode",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The selection mode of the control. Possible values are: <code>MULTIPLE_CELLS</code>, <code>MULTIPLE_ROWS</code>, <code>NONE</code>, <code>SINGLE_CELL</code>, and <code>SINGLE_ROW</code>. Changing the value of this property sets the <code>selectedCells</code> property to null.  <p>You must set the <code>allowMultipleSelection</code> property to <code>true</code> to select more than one item in the control at the same time.</p>  <p>Information about the selected cells is written to the <code>selectedCells</code> property.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["SINGLE_ROW"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "sortableColumns",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether the user can sort the data provider items by clicking on a column header cell. If <code>true</code>, the user can sort the data provider items by clicking on a column header cell. The <code>AdvancedDataGridColumn.dataField</code> property of the column or the <code>AdvancedDataGridColumn.sortCompareFunction</code> property of the column is used as the sort field. If a column is clicked more than once, the sort alternates between ascending and descending order. If <code>true</code>, individual columns can be made to not respond to a click on a header by setting the column's <code>sortable</code> property to <code>false</code>.  <p>When a user releases the mouse button over a header cell, the AdvancedDataGrid control dispatches a <code>headerRelease</code> event if both this property and the column's sortable property are <code>true</code>. If no handler calls the <code>preventDefault()</code> method on the event, the AdvancedDataGrid sorts using that column's <code>AdvancedDataGridColumn.dataField</code> or <code>AdvancedDataGridColumn.sortCompareFunction</code> properties.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "see",
               "values": ["mx.controls.advancedDataGridClasses.AdvancedDataGridColumn#dataField", "mx.controls.advancedDataGridClasses.AdvancedDataGridColumn#sortCompareFunction"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "sortExpertMode",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "By default, the <code>sortExpertMode</code> property is set to <code>false</code>, which means you click in the header area of a column to sort the rows of the AdvancedDataGrid control by that column. You then click in the multiple-column sort area of the header to sort by additional columns. If you set the <code>sortExpertMode</code> property to <code>true</code>, you use the Control key to select every column after the first column to perform sort.",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "headerHeight",
        "namespace": "public",
        "bindable": ["resize"],
        "details": [],
        "deprecated": {},
          "description": "The height of the header cell of the column, in pixels. If set explicitly, that height will be used for all of the headers.  If not set explicitly, the height will based on style settings and the header renderer.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "headerWordWrap",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "If <code>true</code>, specifies that text in the header is wrapped if it does not fit on one line.  If the <code>headerWordWrap</code> property is set in AdvancedDataGridColumn, this property will not have any effect.",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "draggableColumns",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether you are allowed to reorder columns. If <code>true</code>, you can reorder the columns of the AdvancedDataGrid control by dragging the header cells.",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "HeaderStyleName",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "resizableColumns",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether the user can change the size of the columns. If <code>true</code>, the user can stretch or shrink the columns of the AdvancedDataGrid control by dragging the grid lines between the header cells. If <code>true</code>, individual columns must also have their <code>resizeable</code> properties set to <code>false</code> to prevent the user from resizing a particular column.",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.core.IBead",
        "qname": "presentationModel",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "The DataGrid's presentation model",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.IDataGridPresentationModel", "org.apache.royale.core.IBead"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "addedToParent",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "sortHandler",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "void",
          "params": [{ "name": "event", "type": "mx.events.AdvancedDataGridEvent"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "rowHeight",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "The height of the rows in pixels. Unless the <code>variableRowHeight</code> property is <code>true</code>, all rows are the same height. If not specified, the row height is based on the font size and other properties of the renderer.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1", "Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3", "Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0", "3.0"]}  ]},
      { "type": "method",
        "qname": "isRowSelectionMode",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Return <code>true</code> if <code>selectedMode</code> is <code>SINGLE_ROW</code> or <code>MULTIPLE_ROWS</code>.  <code>SINGLE_ROW</code> or <code>MULTIPLE_ROWS</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["<code>true</code> if <code>selectedMode</code> is"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Boolean",
          "params": []}
      ,
      { "type": "method",
        "qname": "isCellSelectionMode",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns <code>true</code> if <code>selectedMode</code> is <code>SINGLE_CELL</code> or <code>MULTIPLE_CELLS</code>.  <code>SINGLE_CELL</code> or <code>MULTIPLE_CELLS</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["<code>true</code> if <code>selectedMode</code> is"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Boolean",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "editable",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether or not the user can edit items in the data provider.  <p>If <code>&quot;item&quot;</code>, the item renderers in the control are editable. The user can click on an item renderer to open an editor.</p>  <p>If <code>&quot;item group&quot;</code>, the item renderers and grouping headers can be edited.</p>  <p>If <code>&quot;item summary&quot;</code>, the item renderers and summary cells can be edited.</p>  <p>You can combine these values. For example, <code>editable = &quot;item group summary&quot;</code>. Note that item editing has to be enabled if enabling group or summary editing.</p>  <p>If you specify an empty String, no editing is allowed.</p>  <p>The values <code>&quot;true&quot;</code> and <code>&quot;false&quot;</code> correspond to item editing and no editing.</p>  <p>A value of <code>&quot;all&quot;</code> means everything is editable.</p>  <p>You can turn off editing for individual columns of the AdvancedDataGrid control using the <code>AdvancedDataGridColumn.editable</code> property, or by handling the <code>itemEditBeginning</code> and <code>itemEditBegin</code> events.</p>",
        "tags": [
        {  "tagName": "default",
               "values": [""""]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "editedItemPosition",
        "namespace": "public",
        "bindable": ["itemFocusIn"],
        "details": [],
        "deprecated": {},
          "description": "The column and row index of the item renderer for the data provider item being edited, if any.  <p>This Object has two fields, <code>columnIndex</code> and <code>rowIndex</code>, the zero-based column and row indexes of the item. For example: {columnIndex:2, rowIndex:3}</p>  <p>Setting this property scrolls the item into view and dispatches the <code>itemEditBegin</code> event to open an item editor on the specified item renderer.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "createItemEditor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Creates the item editor for the item renderer at the <code>editedItemPosition</code> using the editor specified by the <code>itemEditor</code> property.  <p>This method sets the editor instance as the <code>itemEditorInstance</code> property.</p>  <p>You may only call this method from within the event listener for the <code>itemEditBegin</code> event. To create an editor at other times, set the <code>editedItemPosition</code> property to generate the <code>itemEditBegin</code> event.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["colIndex The column index in the data provider of the item to be edited.", "rowIndex The row index in the data provider of the item to be edited."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "colIndex", "type": "int"},
        { "name": "rowIndex", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "destroyItemEditor",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "This method closes an item editor currently open on an item renderer. You typically call this method only from within the event listener for the <code>itemEditEnd</code> event, after you have already called the <code>preventDefault()</code> method to prevent the default event listener from executing.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "absoluteToVisibleColumnIndex",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Converts an absolute column index to the corresponding index in the visible columns. Because users can reorder columns, the absolute column index may be different from the index of the visible column.   or -1 if <code>columnIndex</code> is not currently visible.",
        "tags": [
        {  "tagName": "param",
               "values": ["columnIndex Absolute index of the column."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The index of the column as it is currently visible,"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": [{ "name": "columnIndex", "type": "int"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.core.IUIBase",
        "qname": "listContent",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "field",
        "qname": "headerInfos",
        "return": "Array",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "An Array of AdvancedDataGridHeaderInfo instances for all columns in the control.",
        "tags": [
        {  "tagName": "see",
               "values": ["mx.controls.advancedDataGridClasses.AdvancedDataGridHeaderInfo"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "absoluteToVisibleIndices",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Convert an absolute row index and column index into the corresponding row index and column index of the item as it is currently displayed by the control.    that contain the row index and column index of the item as it is currently displayed by the control.",
        "tags": [
        {  "tagName": "param",
               "values": ["rowIndex An absolute row index.", "columnIndex An absolute column index."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["An Object containing two fields, <code>rowIndex</code> and <code>columnIndex</code>,"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Object",
          "params": [{ "name": "rowIndex", "type": "int"},
        { "name": "columnIndex", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "displayToAbsoluteColumnIndex",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Converts the current display column index of a column to its corresponding absolute index. Because users can reorder columns, the absolute column index may be different from the index of the displayed column.",
        "tags": [
        {  "tagName": "param",
               "values": ["columnIndex Index of the column as it is currently displayed by the control."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The absolute index of the column."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "int",
          "params": [{ "name": "columnIndex", "type": "int"}]}
      ]
  ,
  "events": [
  { "qname": "headerRelease",
        "type": "mx.events.AdvancedDataGridEvent"
      ,
          "description": "Dispatched when the user releases the mouse button on a column header to request the control to sort the grid contents based on the contents of the column. Only dispatched if the column is sortable and the data provider supports sorting. The AdvancedDataGrid control has a default handler for this event that implements a single-column sort.  Multiple-column sort can be implemented by calling the <code>preventDefault()</code> method to prevent the single column sort and setting the <code>sort</code> property of the data provider. <p> <b>Note</b>: The sort arrows are defined by the default event handler for the <code>headerRelease</code> event. If you call the <code>preventDefault()</code> method in your event handler, the arrows are not drawn. </p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.AdvancedDataGridEvent.HEADER_RELEASE"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "itemEditBeginning",
        "type": "mx.events.AdvancedDataGridEvent"
      ,
          "description": "Dispatched when the user releases the mouse button while over an item renderer, tabs to the AdvancedDataGrid control or within the AdvancedDataGrid control, or in any other way attempts to edit an item.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.AdvancedDataGridEvent.ITEM_EDIT_BEGINNING"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "itemEditEnd",
        "type": "mx.events.AdvancedDataGridEvent"
      ,
          "description": "Dispatched when an item editing session ends for any reason.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.AdvancedDataGridEvent.ITEM_EDIT_END"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "itemEditBegin",
        "type": "mx.events.AdvancedDataGridEvent"
      ,
          "description": "Dispatched when an item editing session ends for any reason.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.AdvancedDataGridEvent.ITEM_EDIT_BEGIN"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  }
