{ "type": "class",
  "qname": "spark.components.gridClasses.GridColumn",
  "baseClassname": "org.apache.royale.events.EventDispatcher"
  ,
    "description": "The GridColumn class defines a column of a Spark grid control, such as the Spark DataGrid or Grid control. Each data provider item for the control corresponds to one row of the grid. The GridColumn class specifies the field of the data provider item whose value is to be displayed in the column. It also specifies the item renderer used to display that value, the item editor used to change the value, and other properties of the column.  attributes of its superclass and adds the following tag attributes:</p>  <pre>\\n &lt;s:GridColumn\\n <strong>Properties</strong>\\n dataField=&quot;null&quot;\\n dataTipField=&quot;null&quot;\\n dataTipFormatter=&quot;null&quot;\\n dataTipFunction=&quot;null&quot;\\n editable=&quot;true&quot;\\n formatter=&quot;null&quot;\\n headerRenderer=&quot;null&quot;\\n headerText=&quot;<i>value of dataField</i>&quot;\\n imeMode=&quot;null&quot;\\n itemEditor=&quot;null&quot;\\n itemRenderer=&quot;null&quot;\\n itemRendererFunction=&quot;null&quot;\\n labelFunction=&quot;null&quot;\\n maxWidth=&quot;NaN&quot;\\n minWidth=&quot;20&quot;\\n rendererIsEditable=&quot;false&quot;\\n resizeable=&quot;true&quot;\\n showDataTips=&quot;undefined&quot;\\n sortable=&quot;true&quot;\\n sortCompareFunction=&quot;null&quot;\\n sortDescending=&quot;false&quot;\\n visible=&quot;true&quot;\\n width=&quot;NaN&quot;\\n /&gt;\\n </pre>",
  "tags": [
  {  "tagName": "includeExample",
         "values": ["examples/GridColumnExample.mxml", "examples/GridColumnVisibilityExample.mxml"]},
      {  "tagName": "see",
         "values": ["spark.components.Grid", "spark.components.DataGrid"]},
      {  "tagName": "mxml",
         "values": ["<p>The <code>&lt;s:GridColumn&gt;</code> tag inherits all of the tag"]},
      {  "tagName": "playerversion",
         "values": ["Flash 10", "AIR 2.5"]},
      {  "tagName": "productversion",
         "values": ["Flex 4.5"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "field",
        "qname": "ERROR_TEXT",
        "return": "String",
        "namespace": "public",
        "bindable": [],
        "details": ["static"],
        "deprecated": {},
          "description": "The return value for the <code>itemToLabel()</code> or <code>itemToDataTip()</code> method  if resolving the corresponding property name (path) fails. The value of this constant is a single space String: <code>&quot; &quot;</code>.",
        "tags": [
        {  "tagName": "see",
               "values": ["#itemToLabel", "#itemToDataTip"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "spark.components.gridClasses.GridColumn",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.  <code>headerText</code> properties.",
        "tags": [
        {  "tagName": "param",
               "values": ["columnName Initial value for the <code>dataField</code> and"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "columnName", "type": "String"}]}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "spark.components.Grid",
        "qname": "grid",
        "namespace": "public",
        "bindable": ["gridChanged"],
        "details": [],
        "deprecated": {},
          "description": "The Grid object associated with this column.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "columnIndex",
        "namespace": "public",
        "bindable": ["columnIndexChanged"],
        "details": [],
        "deprecated": {},
          "description": "The position of this column in the grid's column list, or -1 if this column's grid is null.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "dataFieldPath",
        "return": "Array",
        "namespace": "mx_internal",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "dataField",
        "namespace": "public",
        "bindable": ["dataFieldChanged"],
        "details": [],
        "deprecated": {},
          "description": "The name of the field or property in the data provider item associated with the column. Each GridColumn requires this property or the <code>labelFunction</code> property to be set to calculate the displayable text for the item renderer. If the <code>dataField</code> and <code>labelFunction</code> properties are set, the data is displayed using the <code>labelFunction</code> and sorted using the <code>dataField</code>.  <p>This value of this property is not necessarily the String that is displayed in the column header.  This property is used only to access the data in the data provider. For more information, see the <code>headerText</code> property.</p>  <p>If the column or its grid specifies a <code>labelFunction</code>, then the dataField is not used.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["#itemToLabel", "#labelFunction"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "dataTipField",
        "namespace": "public",
        "bindable": ["dataTipFieldChanged"],
        "details": [],
        "deprecated": {},
          "description": "The name of the field in the data provider to display as the datatip. By default, if <code>showDataTips</code> is <code>true</code>, the associated grid control looks for a property named <code>label</code> on each data provider item and displays it. However, if the data provider does not contain a <code>label</code> property, you can set the <code>dataTipField</code> property to specify a different property name. For example, you could set the value to &quot;FullName&quot; when a user views a set of people's names included from a database.  <p><code>GridColumn.dataTipField</code> takes precedence over this property.</p>  <p>If this column or its grid specifies a value for the <code>dataTipFunction</code> property, then the <code>dataTipField</code> property is ignored.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["#dataTipFunction", "#itemToDataTip"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.formatters.IFormatter",
        "qname": "dataTipFormatter",
        "namespace": "public",
        "bindable": ["dataTipFormatterChanged"],
        "details": [],
        "deprecated": {},
          "description": "Specifies the formatter used by the column's <code>itemToDataTip()</code> method to convert data provider items to Strings.  <p>If the formatter's <code>styleParent</code> was not specified, it's set to the column's grid, so that the formatter inherits the grid's <code>locale</code> style.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null", "null"]},
            {  "tagName": "see",
               "values": ["#itemToDataTip", "#formatter"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Function",
        "qname": "dataTipFunction",
        "namespace": "public",
        "bindable": ["dataTipFunctionChanged"],
        "details": [],
        "deprecated": {},
          "description": "Specifies a callback function to run on each item of the data provider to determine its data tip. This property is used by the <code>itemToDataTip</code> method.  <p>By default, if <code>showDataTips</code> is <code>true</code>, the column looks for a property named <code>label</code> on each data provider item and displays it as its data tip. However, some data providers do not have a <code>label</code> property nor do they have another property that you can use for displaying data in the rows.</p>  <p>For example, you have a data provider that contains a lastName and firstName fields, but you want to display full names as the data tip. You can specify a function to the <code>dataTipFunction</code> property that returns a single String containing the value of both fields. You can also use the <code>dataTipFunction</code> property for handling formatting and localization.</p>  <p>The signature of the <code>dataTipFunction</code> function must match the following:  <pre>dataTipFunction(item:Object, column:GridColumn):String</pre>  The <code>item</code> parameter is the data provider item for an entire row. The second parameter is this column object.</p>  <p>A typical function might concatenate an item's firstName and lastName properties, or do some custom formatting on a Date value property.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["#itemToDataTip", "#dataTipField"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "editable",
        "namespace": "public",
        "bindable": ["editableChanged"],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether the items in the column are editable. If <code>true</code>, and the associated grid's <code>editable</code> property is also <code>true</code>, the items in a column are editable and can be individually edited by clicking on a selected item, or by navigating to the item and pressing the F2 key.",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "see",
               "values": ["spark.components.DataGrid#editable"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "editorActivationMouseEvent",
        "namespace": "public",
        "bindable": ["editorActivationMouseEventChanged"],
        "details": [],
        "deprecated": {},
          "description": "The type of mouse event that starts an editor session. Must be one of values in <code>GridItemEditorMouseEvent</code>. Each grid column may use a different value for cell activation. If no value is specified the DataGrid's <code>editorActivationMouseEvent </code> will be used.",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["spark.components.DataGrid"]},
            {  "tagName": "playerversion",
               "values": ["Flash 11", "AIR 3.0"]},
            {  "tagName": "productversion",
               "values": ["Flex 5.0"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.formatters.IFormatter",
        "qname": "formatter",
        "namespace": "public",
        "bindable": ["formatterChanged"],
        "details": [],
        "deprecated": {},
          "description": "Specifies the formatter used by the column's <code>itemToLabel()</code> method to convert data provider items to strings.  <p>If the formatter's <code>styleParent</code> was not specified, it's set to the column's grid, so that the formatter inherits the grid's <code>locale</code> style.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["#itemToLabel", "#dataTipFormatter"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.core.IFactory",
        "qname": "headerRenderer",
        "namespace": "public",
        "bindable": ["headerRendererChanged"],
        "details": [],
        "deprecated": {},
          "description": "The class factory for the IGridItemRenderer class used as the header for this column. If unspecified, the DataGrid controls's <code>columnHeaderGroup</code> skin part defines the default header renderer.",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["#headerText", "IGridItemRenderer"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "headerText",
        "namespace": "public",
        "bindable": ["headerTextChanged"],
        "details": [],
        "deprecated": {},
          "description": "Text for the header of this column. By default, the associated grid control uses the value of the <code>dataField</code> property  as the header text.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "imeMode",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "see",
               "values": ["flash.system.IMEConversionMode"]},
            {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "copy",
               "values": ["spark.components.gridClasses.GridItemEditor#imeMode"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.core.IFactory",
        "qname": "itemEditor",
        "namespace": "public",
        "bindable": ["itemEditorChanged"],
        "details": [],
        "deprecated": {},
          "description": "A class factory for IGridItemEditor class used to edit individual grid cells in this column. If this property is null, and the column grid's owner is a DataGrid control, then the value of the DataGrid control's <code>itemEditor</code> property is used. If no item editor is specified by the DataGrid control, then use the DefaultGridItemEditor class.  <p>The default item editor is the DefaultGridItemEditor class, which lets you edit a simple text field. You can create custom item renderers by creating a subclass of the GridItemEditor class. Your custom item editor can write data to the entire row of the grid to define more complex editor. </p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["spark.components.gridClasses.DefaultGridItemEditor", "spark.components.gridClasses.GridItemEditor"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "mx.core.IFactory",
        "qname": "itemRenderer",
        "namespace": "public",
        "bindable": ["itemRendererChanged"],
        "details": [],
        "deprecated": {},
          "description": "The class factory for the IGridItemRenderer class used to render individual grid cells. If not specified, use the value of the <code>itemRenderer</code> property from the associated grid control.  <p>The default item renderer is the DefaultGridItemRenderer class, which displays the data item as text. You can create custom item renderers by creating a subclass of the GridItemRenderer class. Your custom item renderer can access the data from the entire row of the grid to define more complex visual representation of the cell. </p>  <p>The default value is the value of the <code>itemRenderer</code> property from the associated grid control, or null.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["#dataField", "spark.skins.spark.DefaultGridItemRenderer", "spark.components.gridClasses.GridItemRenderer"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Function",
        "qname": "itemRendererFunction",
        "namespace": "public",
        "bindable": ["itemRendererFunctionChanged"],
        "details": [],
        "deprecated": {},
          "description": "If specified, the value of this property must be an idempotent function that returns an item renderer IFactory based on its data provider item and column parameters. Specifying a value to the <code>itemRendererFunction</code> property makes it possible to use more than one item renderer in this column.  <p>The function specified to the <code>itemRendererFunction</code> property must have the following signature:</p>  <pre>itemRendererFunction(item:Object, column:GridColumn):IFactory</pre>  <p>The <code>item</code> parameter is the data provider item for an entire row. The second parameter is this column object.</p>  <p>Shown below is an example of an item renderer function:</p> <pre>\\n function myItemRendererFunction(item:Object, column:GridColumn):IFactory\\n {\\n return (item is Array) ? myArrayItemRenderer : myItemRenderer;\\n }\\n </pre>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Function",
        "qname": "labelFunction",
        "namespace": "public",
        "bindable": ["labelFunctionChanged"],
        "details": [],
        "deprecated": {},
          "description": "An idempotent function that converts a data provider item into a column-specific string that's used to initialize the item renderer's <code>label</code> property.  <p>You can use a label function to combine the values of several data provider items into a single string. If specified, this property is used by the <code>itemToLabel()</code> method, which computes the value of each item renderer's <code>label</code> property in this column.</p>  <p>The function specified to the <code>labelFunction</code> property must have the following signature:</p>  <pre>labelFunction(item:Object, column:GridColumn):String</pre>  <p>The <code>item</code> parameter is the data provider item for an entire row. The second parameter is this column object.</p>  <p>A typical label function could concatenate the firstName and lastName properties of the data provider item , or do some custom formatting on a Date value property.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "see",
               "values": ["#itemToLabel", "#dataField"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "width",
        "namespace": "public",
        "bindable": ["widthChanged"],
        "details": [],
        "deprecated": {},
          "description": "The width of this column in pixels. If specified, the grid's layout ignores its <code>typicalItem</code> property and this column's <code>minWidth</code> and <code>maxWidth</code> properties.",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "minWidth",
        "namespace": "public",
        "bindable": ["minWidthChanged"],
        "details": [],
        "deprecated": {},
          "description": "The minimum width of this column in pixels. If specified, the grid's layout makes the column's layout width the larger of the width of the <code>typicalItem</code> and the <code>minWidth</code>. If this column is resizable, this property limits how small the user can make this column. Setting this property does not change the <code>width</code> or <code>maxWidth</code> properties.",
        "tags": [
        {  "tagName": "default",
               "values": ["20"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "maxWidth",
        "namespace": "public",
        "bindable": ["maxWidthChanged"],
        "details": [],
        "deprecated": {},
          "description": "The maximum width of this column in pixels. If specified, the grid's layout makes the column's layout width the smaller of the width of the <code>typicalItem</code> and the <code>maxWidth</code>. If this column is resizable, this property limits how wide the user can make this column. Setting this property does not change the <code>width</code> or <code>minWidth</code> properties.",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "percentWidth",
        "namespace": "public",
        "bindable": ["widthChanged"],
        "details": [],
        "deprecated": {},
          "description": "The width of this column as a percentage of DataGrid width. Setting this property does not change the <code>width</code> or <code>minWidth</code> properties.",
        "tags": [
        {  "tagName": "default",
               "values": ["NaN"]},
            {  "tagName": "playerversion",
               "values": ["Flash 13", "AIR 13.0"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.12.2"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "rendererIsEditable",
        "namespace": "public",
        "bindable": ["rendererIsEditableChanged"],
        "details": [],
        "deprecated": {},
          "description": "Determines whether any of the item renderer's controls are editable. If the column is editable, the focusable controls in the item renderer are given keyboard focus when the user starts editing the item renderer.  <p>When you set this property to <code>true</code>, the cell becomes editable when the user clicks inside of it. Because the cell is editable, the DataGrid displays the <code>editorIndicator</code> skin part, which appears on top of the <code>selectionIndicator</code> skin part. Therefore, the user does not see an indicator for cell selection until the edit session is complete. You can create a custom skin to remove or modify the <code>editorIndicator</code> skin part so that the <code>selectionIndicator</code> skin part appears. For example, you can set <code>alpha</code> property of the <code>editorIndicator</code> to allow the <code>selectionIndicator</code> to show through, or change the size of the editorIndicator so that it is smaller than the cell.</p>  <p>By setting this property to <code>true</code>, you take responsibility for validating and saving input collected by the item renderer. If the item renderer contains an override of the <code>IGridItemRenderer.prepare()</code> method, then you must ensure that unsaved input field changes are not overwritten. For example, <code>rendererIsEditable</code> is <code>true</code> and the renderer contains a single TextInput element that displays the value of <code>data.myDataField</code>. If the renderer's <code>prepare()</code> method sets the TextInput control's <code>text</code> property, then the <code>prepare()</code> method must not set the <code>text</code> property when there are pending changes.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "resizable",
        "namespace": "public",
        "bindable": ["resizableChanged"],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether the user is allowed to resize the width of the column. If <code>true</code>, and the <code>resizableColumns</code> property of the associated grid is also <code>true</code>, the user can drag the grid lines between the column headers to resize the column.",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "*",
        "qname": "showDataTips",
        "namespace": "public",
        "bindable": ["showDataTipsChanged"],
        "details": [],
        "deprecated": {},
          "description": "Indicates whether the datatips are shown in the column. If <code>true</code>, datatips are displayed for text in the rows. Datatips are tooltips designed to show the text that is too long for the row.  <p>If this property's value is undefined, the default, then the associated grid's <code>showDataTips</code> property determines if datatips are shown. If this property is set, the grid's <code>showDataTips</code> property is ignored.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["undefined"]},
            {  "tagName": "see",
               "values": ["#getShowDataTips"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "sortable",
        "namespace": "public",
        "bindable": ["sortableChanged"],
        "details": [],
        "deprecated": {},
          "description": "If <code>true</code>, and if the grid's data provider is an ICollectionView, and if the associated grid's <code>sortableColumns</code> property is <code>true</code>, then this column supports interactive sorting. Typically the column's header handles mouse clicks by setting the data provider's <code>sort</code> property to a Sort object whose SortField is this column's <code>dataField</code>.  <p>If the data provider is not an ICollectionView, then this property has no effect.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Function",
        "qname": "sortCompareFunction",
        "namespace": "public",
        "bindable": ["sortCompareFunctionChanged"],
        "details": [],
        "deprecated": {},
          "description": "The function that compares two elements during a sort of on the data elements of this column. If you specify a value of the <code>labelFunction</code> property, you typically also provide a <code>sortCompareFunction</code>.  <p>The sortCompareFunction's signature must match the following:</p>  <pre>sortCompareFunction(obj1:Object, obj2:Object, column:GridColumn):int</pre>  <p>The function should return a value based on the comparison of the objects: </p> <ul> <li>-1 if obj1 should appear before obj2 in ascending order. </li> <li>0 if obj1 = obj2. </li> <li>1 if obj1 should appear after obj2 in ascending order.</li> </ul>  <p>The function may use the column parameter to write generic compare functions.</p>  <p><strong>Note:</strong> The <code>obj1</code> and <code>obj2</code> parameters are entire data provider elements and not just the data for the item.</p>  <p>If the dataProvider is not an ICollectionView, then this property has no effect.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["null"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "String",
        "qname": "sortCompareType",
        "namespace": "public",
        "bindable": ["sortCompareTypeChanged"],
        "details": [],
        "deprecated": {},
          "description": "The sortCompareType defines the valid constant values for the <code>sortCompareType</code> property of the <code>SortField</code> and <code>GridColumn</code>.  <p>Use the constants in ActionsScript, as the following example shows:</p> <pre>\\n column.sortCompareType = SortFieldCompareTypes.NUMERIC;\\n </pre>  <p>In MXML, use the String value of the constants, as the following example shows:</p> <pre>\\n &lt;s:GridColumn sortCompareType=&quot;numeric&quot; /&gt;\\n </pre>",
        "tags": [
        {  "tagName": "see",
               "values": ["spark.collections.SortFieldCompareTypes"]},
            {  "tagName": "playerversion",
               "values": ["Flash 11.8", "AIR 3.8"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.11"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "sortDescending",
        "namespace": "public",
        "bindable": ["sortDescendingChanged"],
        "details": [],
        "deprecated": {},
          "description": "If <code>true</code>, this column is sorted in descending order. For example, if the column's <code>dataField</code> contains a numeric value, then the first row would be the one with the largest value for this column.  <p>Setting this property does not start a sort; it only sets the sort direction. When the <code>dataProvider.refresh()</code> method is called, the sort is performed.</p>  <p>If the data provider is not an ICollectionView, then this property has no effect.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "mx.collections.ISortField",
        "qname": "sortField",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns a SortField that can be used to sort a collection by this column's <code>dataField</code>.  <p>If the <code>sortCompareFunction</code> property is defined, then the SortField's <code>compareFunction</code> is automatically set.</p>  <p>If the <code>sortCompareFunction</code> property is not defined and the <code>dataField</code> is complex, then the SortField's compare function is assigned to a closure around a default compare function that handles the complex <code>dataField</code>.</p>  <p>If the <code>sortCompareFunction</code> and <code>dataField</code> properties are not defined, but the <code>labelFunction</code> property is defined, then it assigns the <code>compareFunction</code> to a closure that does a basic string compare on the <code>labelFunction</code> applied to the data objects.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["spark.collections.SortField"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "visible",
        "namespace": "public",
        "bindable": ["visibleChanged"],
        "details": [],
        "deprecated": {},
          "description": "If <code>true</code>, then display this column. If <code>false</code>, no space will be allocated for this column; it will not be included in the layout.",
        "tags": [
        {  "tagName": "default",
               "values": ["true"]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "itemToLabel",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Convert the specified data provider item to a column-specific String. This method is used to initialize item renderers' <code>label</code> property.  <p>If <code>labelFunction</code> is null, and <code>dataField</code> is a string that does not contain &quot;.&quot; field name separator characters, and formatter is null, then this method is equivalent to:</p>  <pre>item[dataField].toString()</pre>  <p>If the formatter was specified, then this method's value is:</p>  <pre>formatter.format(item[dataField])</pre>  <p>If <code>dataField</code> is a &quot;.&quot; separated path, then this method looks up each successive path element. For example if <code>=&quot;foo.bar.baz&quot;</code>, then this method returns a string based on the value of <code>item.foo.bar.baz</code>. If resolving the item's <code>dataField</code> causes an error to be thrown, ERROR_TEXT is returned.</p>  <p>If <code>item</code> and <code>labelFunction</code> are not null, then this method returns <code>labelFunction(item, this)</code>, where the second argument is this GridColumn.</p>",
        "tags": [
        {  "tagName": "param",
               "values": ["item The value of <code>grid.dataProvider.getItemAt(rowIndex)</code>."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "return",
               "values": ["A column-specific string for the specified dataProvider item or ERROR_TEXT."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": [{ "name": "item", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "itemToDataTip",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Convert the specified data provider item to a column-specific datatip String.  <p>This method uses the values <code>dataTipField</code> and <code>dataTipFunction</code>. If those properties are null, it uses the corresponding properties from the associated grid control. If <code>dataTipField</code> properties is also null in the grid control, then use the <code>dataField</code> property.</p>  <p>If <code>dataTipFunction</code> and <code>dataTipFormatter</code> are null, then this method's value is the same as: <code>item[dataTipField].toString()</code>.   If <code>dataTipFormatter</code> is specified then this method's value is the same as: <code>dataTipFormatter.format(item[dataTipField])</code> If resolving the item's <code>dataField</code> causes an error to be thrown, <code>ERROR_TEXT</code> is returned.</p>  <p>If <code>item</code> and <code>dataTipFunction</code> are not null,  then this method returns <code>dataTipFunction(item, this)</code>, where the second argument is this GridColumn.</p>   or <code>ERROR_TEXT</code>.",
        "tags": [
        {  "tagName": "param",
               "values": ["item The value of <code>grid.dataProvider.getItemAt(rowIndex)</code>."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "return",
               "values": ["A column-specific string for the specified data provider item"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": [{ "name": "item", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "itemToRenderer",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Convert the specified data provider item to a column-specific item renderer factory. By default this method calls the <code>itemRendererFunction</code> if it's non-null, otherwise it just returns the value of the column's <code>itemRenderer</code> property.",
        "tags": [
        {  "tagName": "param",
               "values": ["item The value of <code>grid.dataProvider.getItemAt(rowIndex)</code>."]},
            {  "tagName": "playerversion",
               "values": ["Flash 10", "AIR 2.5"]},
            {  "tagName": "productversion",
               "values": ["Flex 4.5"]},
            {  "tagName": "return",
               "values": ["A column-specific item renderer factory for the specified dataProvider item."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "mx.core.IFactory",
          "params": [{ "name": "item", "type": "Object"}]}
      ]
  }
