{ "type": "class",
  "qname": "org.apache.royale.jewel.List",
  "baseClassname": "org.apache.royale.jewel.DataContainer"
  ,
    "description": "The List class is a component that displays multiple data items. The List uses the following bead types:  org.apache.royale.core.IBeadModel: the data model, which includes the dataProvider, selectedItem, and so forth. org.apache.royale.core.IBeadView:  the bead that constructs the visual parts of the list. org.apache.royale.core.IBeadController: the bead that handles input and output. org.apache.royale.core.IBeadLayout: the bead responsible for the size and position of the itemRenderers. org.apache.royale.core.IDataProviderItemRendererMapper: the bead responsible for creating the itemRenders. org.apache.royale.core.IItemRenderer: the class or factory used to display an item in the list. org.apache.royale.core.IItemRendererClassFactory: the factory for the itemrenders. org.apache.royale.core.ISelectableItemRenderer: handles selection and hover states for item renderers. org.apache.royale.core.IItemRendererInitializer: the class that initialize the renderer and provide additional configuration. org.apache.royale.core.IViewport: the class that defines the area that display content org.apache.royale.core.IBeadKeyController: add keyboard support to the list.",
  "tags": [
  {  "tagName": "playerversion",
         "values": ["Flash 10.2", "AIR 2.6"]},
      {  "tagName": "productversion",
         "values": ["Royale 0.9.4"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "org.apache.royale.jewel.List",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "constructor.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": []}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "selectedIndex",
        "namespace": "public",
        "bindable": ["selectionChanged"],
        "details": [],
        "deprecated": {},
          "description": "The index of the currently selected item. Changing this value also changes the selectedItem property.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ISelectionModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "int",
        "qname": "rollOverIndex",
        "namespace": "public",
        "bindable": ["rollOverIndexChanged"],
        "details": [],
        "deprecated": {},
          "description": "The index of the item currently below the pointer.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.IRollOverModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Number",
        "qname": "rowHeight",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The default height of each cell in every column",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.IListPresentationModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "selectedItem",
        "namespace": "public",
        "bindable": ["selectionChanged"],
        "details": [],
        "deprecated": {},
          "description": "The item currently selected. Changing this value also changes the selectedIndex property.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.ISelectionModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "field",
        "qname": "_variableRowHeight",
        "return": "Boolean",
        "namespace": "protected",
        "bindable": [],
        "details": [],
        "deprecated": {}},
      { "type": "accessor",
        "access": "read-write",
        "return": "Boolean",
        "qname": "variableRowHeight",
        "namespace": "public",
        "bindable": ["variableRowHeightChanged"],
        "details": [],
        "deprecated": {},
          "description": "Specifies whether layout elements are allocated their preferred height. Setting this property to false specifies fixed height rows.  If false, the actual height of each layout element is the value of rowHeight. The default value is true.  Note: From Flex but we should see what to do in Royale -> Setting this property to false causes the layout to ignore the layout elements' percentHeight property.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.7"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "scrollToIndex",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Ensures that the data provider item at the given index is visible.",
        "tags": [
        {  "tagName": "param",
               "values": ["index The index of the item in the data provider."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.7"]},
            {  "tagName": "return",
               "values": ["<code>true</code> if the scroll changed."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "Boolean",
          "params": [{ "name": "index", "type": "int"}]}
      ]
  ,
  "events": [
  { "qname": "initComplete",
        "type": "org.apache.royale.events.Event"
      ,
          "description": "Indicates that the initialization of the list is complete.",
        "tags": [
        {  "tagName": "toplevel",
               "values": []},
            {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "qname": "change",
        "type": "org.apache.royale.events.Event"
      ,
          "description": "The change event is dispatched whenever the list's selection changes by user.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9.4"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  }
