首页 > 开发 > Flex > 正文

如何在Renderer中设置属性 Renderer中设置属性的方法实例

2024-09-08 18:17:18
字体:
来源:转载
供稿:网友

ClassFactory的properties妙用

1)UITextField与label,使用label显不出来

复制代码 代码如下:

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;
            }
        }
    }


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;                 
                group.children=children;
                return group;
            }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表