<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" viewSourceURL="srcview/index.html">
<mx:Script>
    <![CDATA[
        [Bindable] protected var dataModel:DataModelExample = new DataModelExample();
        [Bindable] protected var example1:AdapterExample = new AdapterExample( dataModel, true ,true);
        [Bindable] protected var example2:AdapterExample = new AdapterExample( dataModel, false, true );
        [Bindable] protected var example3:AdapterExample = new AdapterExample( dataModel, true, false );
        [Bindable] protected var example4:AdapterExample = new AdapterExample( dataModel, false, false );
        
        protected function addItem():void
        {
            var item:DataItemExample = new DataItemExample();
            item.active = active.selected;
            item.name = itemName.text;
            item.amount = value.value;
            dataModel.myDataItems.addItem(item);
        }
        
        protected function init():void
        {
            var item:DataItemExample;
            
            item = new DataItemExample();
            item.active = true;
            item.name = "Active item #1";
            item.amount = 10;            
            dataModel.myDataItems.addItem(item);

            item = new DataItemExample();
            item.active = true;
            item.name = "Z Active item #2";
            item.amount = 10;            
            dataModel.myDataItems.addItem(item);


            item = new DataItemExample();
            item.active = true;
            item.name = "Active item #3";
            item.amount = 20;            
            dataModel.myDataItems.addItem(item);

            item = new DataItemExample();
            item.active = false;
            item.name = "Inactive item #1";
            item.amount = 30;            
            dataModel.myDataItems.addItem(item);
        }
    ]]>
</mx:Script>
    <mx:Panel x="10" y="218" width="250" height="200" layout="absolute" title="Filtered, Sorted">
        <mx:Label x="10" y="132" text="Total:"/>
        <mx:Label x="56" y="132" text="{example1.total}"/>
        <mx:List x="10" y="4" width="210" height="120" dataProvider="{example1.dataItems}" labelField="name"></mx:List>
    </mx:Panel>
    
    <mx:Panel x="268" y="218" width="250" height="200" layout="absolute" title="Not Filtered, Sorted">
        <mx:Label x="10" y="132" text="Total:"/>
        <mx:Label x="56" y="132" text="{example2.total}"/>
        <mx:List x="10" y="4" width="210" height="120" dataProvider="{example2.dataItems}" labelField="name"></mx:List>
    </mx:Panel>
    
    <mx:Panel x="10" y="443" width="250" height="200" layout="absolute" title="Filtered, Not Sorted">
        
        <mx:Label x="10" y="132" text="Total:"/>
        <mx:Label x="56" y="132" text="{example3.total}"/>
        <mx:List x="10" y="4" width="210" height="120" dataProvider="{example3.dataItems}" labelField="name"></mx:List>
    </mx:Panel>
    
    <mx:Panel x="268" y="443" width="250" height="200" layout="absolute" title="Not Filtered, Not Sorted">
        <mx:Label x="10" y="132" text="Total:"/>
        <mx:Label x="56" y="132" text="{example4.total}"/>
        <mx:List x="10" y="4" width="210" height="120" dataProvider="{example4.dataItems}" labelField="name"></mx:List>
    </mx:Panel>
    
    
    <mx:Panel x="10" y="10" width="250" height="200" layout="absolute" title="New Item">
        <mx:Button x="155" y="128" label="Add" click="addItem()"/>
        <mx:Form x="0" y="10" width="100%">
            <mx:FormItem label="Name:">
                <mx:TextInput width="133" id="itemName"/>
            </mx:FormItem>
            <mx:FormItem label="Value:">
                <mx:NumericStepper id="value"/>
            </mx:FormItem>
            <mx:FormItem>
                <mx:CheckBox label="Active" id="active"/>
            </mx:FormItem>
        </mx:Form>
    </mx:Panel>
    
</mx:Application>