yup it should work...I did this & it worked fine :)

/***********************************************************************\
********
  * Filter Manager
 
************************************************************************\
******/
package custom {

     import flash.events.Event;

     import mx.containers.Form;
     import mx.containers.FormItem;
     import mx.controls.Alert;
     import mx.controls.DataGrid;
     import mx.controls.dataGridClasses.DataGridColumn;
     import mx.utils.ObjectUtil;


    
/***********************************************************************\
****
     * Class definition for a class to manage the various search filters
    
************************************************************************\
***/
     public class FilterManager extends Form {

         [Bindable]
         public var datagrid:DataGrid;

         private var _test:String;

         private var filterSettings:Array;

        
/***********************************************************************
         * FilterManager (Constructor)
         *
         * Creates an instance of the filter manager class
        
***********************************************************************/
         public function FilterManager():void
         {
             super();
             datagrid = new DataGrid();
             datagrid.columns = createDGCols();
             this.initFilters();
         }

         [Bindable]
         public function set test(value:String):void
         {
             _test = value;
             trace(value);
         }

     public function get test():String
     {
         return _test;
     }

        
/***********************************************************************
         * initFilters
         *
         * Builds an array to manage the different filters that may be
set
        
***********************************************************************/
         private function initFilters():void {
             this.filterSettings = new Array();

             for each (var col:* in this.datagrid.columns) {
                 var d:Object = new Object();

                 if (col['dataField'] != null) {
                     d.field   = col['dataField'];
                     d.enabled = false;
                     d.filter  = null;
                     this.filterSettings.push(d);
                 }
             }
         }


        private function createDGCols():Array
        {
         /* DATAGRID Col SETUP */
         var a:DataGridColumn             = new DataGridColumn('Title');
         a.dataField                        = 'FileName';
         a.width                            = 80;
         a.editable                        = true;

         var b:DataGridColumn             = new DataGridColumn('Types');

         b.width                            = 130;
         b.editable                        = false;

         var c:DataGridColumn             = new DataGridColumn('Icon');

         c.width                         = 20;
         c.editable                        = false;

         var dgCols:Array                = [a,b,c];
         return dgCols;

        }

        
/***********************************************************************
         * component overrides
        
***********************************************************************/
         override protected function createChildren():void {
             super.createChildren();
             for each (var item:Object in this.filterSettings) {
                 var f:FormItem = new FormItem();
                 f.label = item.field;
                 addChild(f);
             }
             Alert.show("createChilden()");
         }

         override protected function commitProperties():void {
             super.commitProperties();
         }

         override protected function measure():void {
             super.measure();
         }

         override protected function
updateDisplayList(unscaledWidth:Number,
                                                
unscaledHeight:Number):void {
             super.updateDisplayList(unscaledWidth,unscaledHeight);
         }

     }
}


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute"
     xmlns:custom="custom.*">

     <custom:FilterManager datagrid="{Application.application.dgResults}"
         test="I'm using FilterManager" width="100%" height="100%"
id="filManager"/>

     <mx:TextArea  width="200" height="200" x="200" y="200"
text="{filManager.test}"/>

</mx:Application>

cheers
erick



Reply via email to