topical media & game development

talk show tell print

professional-flex-code-06-FilteringCollections.mx

professional-flex-code-06-FilteringCollections.mx [swf] flex


  <?xml version="1.0" encoding="utf-8"?>
  <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
  
          <mx:Script>
                  <![CDATA[
                  
                          import mx.collections.SortField;
                          import mx.collections.Sort;
                          import mx.collections.ArrayCollection;
                          
                          public function sortCollection():void
                          {
                                  var sort:Sort = new Sort();
                                  sort.fields = [new SortField("label", true, true)];
                                  myCollection.sort = sort;
                                  myCollection.refresh();
                          }
                          
                          public function filterCollection():void
                          {
                                  myCollection.filterFunction = stateFilterFunc;
                                  myCollection.refresh();
                          }
                          
                          private function stateFilterFunc(item:Object):Boolean
                          {
                                  return item.label >= "A" && item.label < "N";
                          }
                          
                          private function resetCollection():void
                          {
                                  myCollection.filterFunction = null;
                                  myCollection.sort = null;
                                  myCollection.refresh();
                          }
                          
                  ]]>
          </mx:Script>
          
          <mx:ArrayCollection id="myCollection">
                  <mx:Array>
                          <mx:Object label="LA" data="Baton Rouge" />
                          <mx:Object label="NH" data="Concord" />
                          <mx:Object label="TX" data="Austin" />
                          <mx:Object label="MA" data="Boston" />
                          <mx:Object label="AZ" data="Phoenix" />
                  </mx:Array>
          </mx:ArrayCollection>
          
          <mx:List dataProvider="{myCollection}" width="200" />
          <mx:Button label="Sort Collection" click="sortCollection()" />
          <mx:Button label="Filter Collection" click="filterCollection()" />
          <mx:Button label="Reset Collection" click="resetCollection()" />
          
  </mx:Application>
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.