The magical properties of ClassFactory
1 Uitextfield and label, using label does not appear
Copy Code code as follows:
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;
}