如何在Renderer中设置属性 Renderer中设置属性的方法实例
如何在Renderer中设置属性 Renderer中设置属性的方法实例
发布时间:2016-12-29 来源:查字典编辑
摘要:ClassFactory的properties妙用1)UITextField与label,使用label显不出来复制代码代码如下:packa...

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>var cf:ClassFactory=new ClassFactory(GroupHeaderRenderer);

cf.properties ={'children':children,'expand':expand};

group.headerRenderer=cf;

group.children=children;

return group;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Flex学习
热门Flex学习
编程开发子分类