如何在Renderer中設置屬性

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;
				var cf:ClassFactory=new ClassFactory(GroupHeaderRenderer);
				cf.properties ={'children':children,'expand':expand};
				group.headerRenderer=cf;				
				group.children=children;
				return group;
			}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章