如何在Renderer中設置屬性

ClassFactory的properties妙用

[javascript] 
1)UITextField與label,使用label顯不出來 

[javascript] 
package com.citigroup.presentation.csa 

    import flash.events.MouseEvent; 
     
    import mx.controls.Label; 
    import mx.controls.advancedDataGridClasses.AdvancedDataGridHeaderRenderer; 
    import mx.core.UITextField; 
    import mx.events.FlexEvent; 
     
    public class GroupHeaderRenderer extends AdvancedDataGridHeaderRenderer 
    { 
        public var children:Array=[]; 
        public var expand:Boolean=true; 
        private var l:UITextField; 
        public function GroupHeaderRenderer() 
        { 
            super(); 
            l=new UITextField(); 
            l.text="[-]"; 
            l.addEventListener(MouseEvent.CLICK,toggle); 
                    addChild(l); 
            this.addEventListener(FlexEvent.CREATION_COMPLETE,init); 
             
        } 
        private function init(event:FlexEvent):void{ 
            if(expand){ 
                l.text="[-]"; 
            }else{ 
                l.text="[+]"; 
                toggleChildren(false); 
            } 
            this.removeEventListener(FlexEvent.CREATION_COMPLETE,init); 
        } 
        override public function set data(value:Object):void{ 
            super.data = value; 
            this.setStyle("color","0xF9F088"); 
            this.setStyle("fontWeight","bold"); 
            this.setStyle("textAlign","left"); 
        } 
        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{ 
                    super.updateDisplayList(unscaledWidth,unscaledHeight); 
            label.x=0; 
            l.x=label.x+label.width; 
                    l.y=label.y; 
        } 
         
        private function toggle(event:MouseEvent):void{ 
            if(l.text=="[+]"){ 
                l.text="[-]"; 
                toggleChildren(true); 
            }else{ 
                l.text="[+]"; 
                toggleChildren(false); 
            } 
        } 
        private function toggleChildren(visible:Boolean):void{ 
            if(children.length<=1) return; 
            for(var i:int=1;i<children.length;i++){ 
                children[i].visible=visible; 
            } 
        } 
    } 

 
<pre name="code" class="javascript">                       public function genAdgColumn(headerText:String,dataField:String,width:Number=100):AdvancedDataGridColumn{ 
                var col:AdvancedDataGridColumn=new AdvancedDataGridColumn(); 
                col.headerText=headerText; 
                col.dataField=dataField; 
                col.width=width; 
                return col; 
            } 
            public function genAdgColumnGroup(headerText:String,dataField:String,children:Array,expand:Boolean=true):AdvancedDataGridColumnGroup{ 
                var group:AdvancedDataGridColumnGroup=new AdvancedDataGridColumnGroup(); 
                group.headerText=headerText; 
                group.dataField=dataField; 
                <span style="color:#ff0000;">var cf:ClassFactory=new ClassFactory(GroupHeaderRenderer); 
                cf.properties ={'children':children,'expand':expand}; 
                group.headerRenderer=cf;                </span> 
                group.children=children; 
                return group; 
            } 

作者:rubyzhudragon

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *