{ "type": "class",
  "qname": "mx.controls.listClasses.ListBase",
  "baseClassname": "mx.core.ScrollControlBase"
  ,
    "description": "",
  "tags": [
  {  "tagName": "playerversion",
         "values": ["Flash 10.2", "AIR 2.6"]},
      {  "tagName": "productversion",
         "values": ["Royale 0.0"]},
      {  "tagName": "langversion",
         "values": ["3.0"]},
      {  "tagName": "royalesuppresspublicvarwarning",
         "values": []}  ],
  "members": [
  { "type": "accessor",
        "access": "read-only",
        "return": "Object",
        "qname": "value",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "dragEnabled",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether you can drag items out of this control and drop them on other controls. If <code>true</code>, dragging is enabled for the control. If the <code>dropEnabled</code> property is also <code>true</code>, you can drag items and drop them within this control to reorder the items.",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "dragMoveEnabled",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether items can be moved instead of just copied from the control as part of a drag-and-drop operation. If <code>true</code>, and the <code>dragEnabled</code> property is <code>true</code>, items can be moved. Often the data provider cannot or should not have items removed from it, so a MOVE operation should not be allowed during drag-and-drop.",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "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": "dataProvider",
        "namespace": "public",
        "bindable": ["collectionChange"],
        "details": [],
        "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"]},
            {  "tagName": "see",
               "values": ["mx.collections.ICollectionView"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ISelectionModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "dropEnabled",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether dragged items can be dropped onto the control.  <p>If you set this property to <code>true</code>, the control accepts all data formats, and assumes that the dragged data matches the format of the data in the data provider. If you want to explicitly check the data format of the data being dragged, you must handle one or more of the drag events, such as <code>dragOver</code>, and call the DragEvent's <code>preventDefault()</code> method to customize the way the list class accepts dropped data.</p>  <p>When you set <code>dropEnabled</code> to <code>true</code>, Flex automatically calls the <code>showDropFeedback()</code> and <code>hideDropFeedback()</code> methods to display the drop indicator.</p>",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "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": "labelField",
        "namespace": "public",
        "bindable": ["labelFieldChanged"],
        "details": [],
        "deprecated": {},
          "description": "The name of the field in the data provider items to display as the label. By default the list looks for a property named <code>label</code> on each item and displays it. However, if the data objects do not contain a <code>label</code> property, you can set the <code>labelField</code> property to use a different property in the data object. An example would be &quot;FullName&quot; when viewing a set of people names fetched from a database.",
        "tags": [
        {  "tagName": "default",
               "values": [""label""]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ISelectionModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Function",
        "qname": "labelFunction",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The name of the field in the data provider items to display as the label. By default the list looks for a property named <code>label</code> on each item and displays it. However, if the data objects do not contain a <code>label</code> property, you can set the <code>labelField</code> property to use a different property in the data object. An example would be &quot;FullName&quot; when viewing a set of people names fetched from a database.",
        "tags": [
        {  "tagName": "default",
               "values": [""label""]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ISelectionModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "selectedIndex",
        "namespace": "public",
        "bindable": ["change","valueCommit"],
        "details": [],
        "deprecated": {},
          "description": "The index in the data provider of the selected item.  <p>The default value is -1 (no selected item).</p>",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ISelectionModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Array",
        "qname": "selectedIndices",
        "namespace": "public",
        "bindable": ["change","valueCommit"],
        "details": [],
        "deprecated": {},
          "description": "An array of indices in the data provider of the selected items. The items are in the reverse order that the user selected the items.",
        "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": "selectedItem",
        "namespace": "public",
        "bindable": ["change","valueCommit"],
        "details": [],
        "deprecated": {},
          "description": "The selected item in the data provider.",
        "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": "Array",
        "qname": "selectedItems",
        "namespace": "public",
        "bindable": ["change","valueCommit"],
        "details": [],
        "deprecated": {},
          "description": "An array of references to the selected items in the data provider. The items are in the reverse order that the user selected the items.",
        "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": "Boolean",
        "qname": "variableRowHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether the individual rows can have different height. This property is ignored by TileList and HorizontalList. If <code>true</code>, individual rows can have different height values.",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "allowMultipleSelection",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether you can allow more than one item to be selected at the same time. If <code>true</code>, users can select multiple items. There is no option to disallow discontiguous selection. Standard complex selection options are always in effect (Shift-click, Ctrl-click).",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "showDataTips",
        "namespace": "public",
        "bindable": ["showDataTipsChanged"],
        "details": [],
        "deprecated": {},
          "description": "A flag that indicates whether dataTips are displayed for text in the rows. If <code>true</code>, dataTips are displayed. DataTips are tooltips designed to show the text that is too long for the row. If you set a dataTipFunction, dataTips are shown regardless of whether the text is too long for the row.",
        "tags": [
        {  "tagName": "default",
               "values": ["false"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "rowCount",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Number of rows to be displayed. If the height of the component has been explicitly set, this property might not have any effect.  <p>For a DataGrid control, the <code>rowCount</code> property does not include the header row. </p>",
        "tags": [
        {  "tagName": "default",
               "values": ["4"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "setRowCount",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Sets the <code>rowCount</code> property without causing invalidation or setting the <code>explicitRowCount</code> property, which permanently locks in the number of rows.",
        "tags": [
        {  "tagName": "param",
               "values": ["v The row count."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "void",
          "params": [{ "name": "v", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "mx.controls.listClasses.ListBase",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.0"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "org.apache.royale.core.IFactory",
        "qname": "itemRenderer",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The class or factory used to display each item.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.0"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.core.IParent",
        "qname": "strandChildren",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "private",
               "values": []}  ]},
      { "type": "method",
        "qname": "scrollToIndex",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "return": "Boolean",
          "params": [{ "name": "index", "type": "int"}]}
      ,
      { "type": "method",
        "qname": "getLayoutHost",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the ILayoutHost which is its view. From ILayoutParent.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.8"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ILayoutHost"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "org.apache.royale.core.ILayoutHost",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.core.IBead",
        "qname": "presentationModel",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "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.IListPresentationModel", "org.apache.royale.core.IBead"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "int",
        "qname": "$numElements",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Support strandChildren.",
        "tags": [
        {  "tagName": "private",
               "values": []},
            {  "tagName": "suppress",
               "values": ["{undefinedNames}"]}  ]},
      { "type": "field",
        "qname": "explicitColumnCount",
        "return": "int",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The column count requested by explicitly setting the <code>columnCount</code> property.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "explicitColumnWidth",
        "return": "Number",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The column width requested by explicitly setting the <code>columnWidth</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "explicitRowHeight",
        "return": "Number",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The row height requested by explicitly setting <code>rowHeight</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "explicitRowCount",
        "return": "int",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The row count requested by explicitly setting <code>rowCount</code>.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "defaultColumnCount",
        "return": "int",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The default number of columns to display.  This value is used if the calculation for the number of columns results in a value less than 1 when trying to calculate the columnCount based on size or content.",
        "tags": [
        {  "tagName": "default",
               "values": ["4"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "defaultRowCount",
        "return": "int",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The default number of rows to display.  This value is used  if the calculation for the number of columns results in a value less than 1 when trying to calculate the rowCount based on size or content.",
        "tags": [
        {  "tagName": "default",
               "values": ["4"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "rowHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "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"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "columnWidth",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The width of the control's columns. This property is used by TileList and HorizontalList controls; It has no effect on DataGrid controls, where you set the individual DataGridColumn widths.",
        "tags": [
        {  "tagName": "default",
               "values": ["50"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "measure",
        "namespace": "protected",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "",
        "tags": [
        {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ILayoutChild"]}  ],
          "return": "void",
          "params": []}
      ,
      { "type": "method",
        "qname": "itemToUID",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Determines the UID for a data provider item.  All items in a data provider must either have a unique ID (UID) or one will be generated and associated with it.  This means that you cannot have an object or scalar value appear twice in a data provider.  <p>For example, the following data provider is not supported because the value &quot;foo&quot; appears twice and the UID for a string is the string itself:</p>  <pre>var sampleDP:Array = [&quot;foo&quot;, &quot;bar&quot;, &quot;foo&quot;]</pre>  <p>Simple dynamic objects can appear twice if they are two separate instances. The following is supported because each of the instances will be given a different UID because they are different objects:</p>  <pre>var sampleDP:Array = [{label: &quot;foo&quot;}, {label: &quot;foo&quot;}]</pre>  <p>Note that the following is not supported because the same instance appears twice.</p>  <pre>\\n var foo:Object = {label: &quot;foo&quot;};\\n sampleDP:Array = [foo, foo];</pre>",
        "tags": [
        {  "tagName": "param",
               "values": ["data The data provider item."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The UID as a string."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": [{ "name": "data", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "itemToLabel",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns the string the renderer would display for the given data object based on the labelField and labelFunction properties. If the method cannot convert the parameter to a string, it returns a single space.",
        "tags": [
        {  "tagName": "param",
               "values": ["data Object to be rendered."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The string to be displayed based on the data."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": [{ "name": "data", "type": "Object"}]}
      ]
  ,
  "events": [
  { "qname": "itemClick",
        "type": "mx.events.ListEvent"
      ,
          "description": "Dispatched when the user clicks on an item in the control.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.ListEvent.ITEM_CLICK"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "itemDoubleClick",
        "type": "mx.events.ListEvent"
      ,
          "description": "Dispatched when the user double-clicks on an item in the control.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "eventType",
               "values": ["mx.events.ListEvent.ITEM_DOUBLE_CLICK"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  }
