ok i have improved it so that i can apply itemsChangeEffects when filtering is 
happening. It works but the problem i have is that when the app starts up 
nothing shows up in the tilelist. its only when i start typing in the textinput 
that data appears in the tilelist.

What i would like to see is on startup, data appears in the tilelist. below is 
the improve code. Please advise.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
                                layout="vertical"
                                creationComplete="init()">

        <mx:Script>
                <![CDATA[
                        import mx.rpc.events.ResultEvent;
                        import mx.controls.Alert;
                        import mx.managers.CursorManager;
                        import mx.collections.ArrayCollection;
                        
                        private function init():void
                        {
                                
                                archiveSvc.getDocs();                           
                        
                        }
                        
                        /******************* code to get Archives 
*****************************/
                        [Bindable]
                        private var archiveAr:ArrayCollection=new 
ArrayCollection();
                        
                        [Bindable]
                        private var filteredAr:ArrayCollection=new 
ArrayCollection();
                        
                        private function archiveResult(event:ResultEvent):void
                        {
                                
                                archiveAr=event.result as ArrayCollection;
                        
                        }
                        
                        /******************* Start Filter Functions 
***************************/
                        
                        private var keywordText:String="keywords";
                        private var titleText:String="title";
                        private var subjectText:String="subject";
                        
                        private function filterGrid():void
                        {
                                
                                archiveAr.filterFunction=myFilterFunction;
                                archiveAr.refresh();
                                
                                for (var i:int=archiveAr.length - 1; i >= 0; 
i--)
                                {
                                        if (!filteredAr.contains(archiveAr[i]))
                                        {
                                                
filteredAr.addItem(archiveAr[i]);
                                        }
                                }
                                for (i=filteredAr.length - 1; i >= 0; i--)
                                {
                                        if (!archiveAr.contains(filteredAr[i]))
                                        {
                                                filteredAr.removeItemAt(i);
                                        }
                                }
                        
                        }
                        
                        private function filterReset():void
                        {
                                
                                archiveAr.filterFunction=null;
                                archiveAr.refresh();
                        
                        }
                        
                        private function myFilterFunction(item:Object):Boolean
                        {
                                
                                return (item[keywordText].match(new 
RegExp(generalSearch.text, 'i')) && item[titleText].match(new 
RegExp(titleSearch.text, 'i')) && item[subjectText].match(new 
RegExp(subjectSearch.text, 'i')));
                        
                        }
                        
                        private function keywordChangeHandler(event:Event):void
                        {
                                
                                if (generalSearch.text != '')
                                {
                                        filterGrid();
                                }
                        
                        }
                        
                        private function titleChangeHandler(event:Event):void
                        {
                                
                                if (titleSearch.text != '')
                                {
                                        filterGrid();
                                }
                        
                        }
                        
                        private function subjectChangeHandler(event:Event):void
                        {
                                
                                if (subjectSearch.text != '')
                                {
                                        filterGrid();
                                }
                        
                        }
                ]]>
        </mx:Script>

        <mx:RemoteObject id="archiveSvc"
                                         destination="ColdFusion"
                                         source="tilelistFilter.src.cfcs.crud"
                                         showBusyCursor="true"
                                         
fault="CursorManager.removeBusyCursor();Alert.show(event.fault.message)">

                <mx:method name="getDocs"
                                   result="archiveResult(event)"/>

        </mx:RemoteObject>

        <mx:DefaultTileListEffect id="dtle0"
                                                          fadeOutDuration="500"
                                                          fadeInDuration="500"
                                                          moveDuration="500"
                                                          color="0x3060AA"/>

        <mx:HBox>

                <mx:VBox horizontalAlign="center">
                        <mx:Label text="Keyword Search:"/>
                        <mx:TextInput id="generalSearch"
                                                  
change="keywordChangeHandler(event)"/>
                </mx:VBox>

                <mx:VBox horizontalAlign="center">
                        <mx:Label text="Search By Title:"/>
                        <mx:TextInput id="titleSearch"
                                                  
change="titleChangeHandler(event)"/>
                </mx:VBox>

                <mx:VBox horizontalAlign="center">
                        <mx:Label text="Search By Subject:"/>
                        <mx:TextInput id="subjectSearch"
                                                  
change="subjectChangeHandler(event)"/>
                </mx:VBox>

        </mx:HBox>

        <mx:TileList width="800"
                                 height="100%"
                                 dataProvider="{filteredAr}"
                                 itemRenderer="renderers.archiveRenders" 
                                 itemsChangeEffect="{dtle0}"/>

</mx:Application>


Reply via email to