{ "type": "class",
  "qname": "org.apache.royale.jewel.DataContainer",
  "baseClassname": "org.apache.royale.jewel.supportClasses.container.DataContainerBase"
  ,
    "description": "The Jewel DataContainer class is a component that displays multiple data items.  This component gets the data through its `dataProvider` property that receives an `ArrayList` of data objects. To represent each item the component use an [ItemRenderer](/features/item-renderers) class that can be configured and customized.  The component generate dynamically as many instances of ItemRenderer as items in the data provider array and fill each instance with the appropiate data. By default it uses `StringItemRenderer` as the item renderer.  By default items are layout vertically using Jewel `VerticalLayout`. This component has a `Viewport` that clip generated items.  The DataContainer uses the following bead types:  org.apache.royale.core.IBeadModel: the data model, which includes the dataProvider. org.apache.royale.core.IBeadView:  the bead that constructs the visual parts of the list. 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.IItemRendererClassFactory: the factory for the itemrenders. org.apache.royale.core.IItemRenderer: the class that describes the each piece of data. 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",
  "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.DataContainer",
        "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": "String",
        "qname": "labelField",
        "namespace": "public",
        "bindable": ["labelFieldChanged"],
        "details": [],
        "deprecated": {},
          "description": "The name of field within the data used for display. Each item of the data should have a property with this name.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.IDataProviderModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-write",
        "return": "Object",
        "qname": "dataProvider",
        "namespace": "public",
        "bindable": ["dataProviderChanged"],
        "details": [],
        "deprecated": {},
          "description": "The data being display by the List.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.core.IDataProviderModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "accessor",
        "access": "read-only",
        "return": "org.apache.royale.core.IBead",
        "qname": "presentationModel",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "The presentation model for the list.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 10.2", "AIR 2.6"]},
            {  "tagName": "productversion",
               "values": ["Royale 0.9"]},
            {  "tagName": "royaleignorecoercion",
               "values": ["org.apache.royale.jewel.supportClasses.list.IListPresentationModel"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]}]
  }
