Running DataGridColumn label function on one label

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Running DataGridColumn label function on one label

rmccleave559
This post has NOT been accepted by the mailing list yet.
I have a datagrid column object that is written completely in actionscript, I assign to it a label function that changes the format for a date the problem is that it sets all of the labels in the panel, I want to just set one.

Is there a way to control which labels have the function is applied to?

private function buildTargetDataDG(xmlStageDataList:XMLListCollection, bgColor:Boolean):void
{
                               
        //returns a normal array of objects that specify DataGridColumn properties
        var aColumnDef:Array=getColumnDefArray();
        var oColumnDef:Object;
                               
        //instantiate a new DataGrid
        var dg:DataGrid=new DataGrid;
        var dgc:DataGridColumn;
        var aColumnsNew:Array=dg.columns
        var iTotalDGWidth:int=0;
                               

        //loop over the column definition array
        for (var i:int=0; i < aColumnDef.length; i++)
        {
                oColumnDef=aColumnDef[i];
                //instantiate a new DataGridColumn
                dgc=new DataGridColumn();
                dgc.labelFunction. = convertDateData;
                //start setting the properties from the column def array
                dgc.dataField=oColumnDef.dataField;
                dgc.width=oColumnDef.width;
                //add up the column widths
                iTotalDGWidth+=dgc.width;
                dgc.editable=oColumnDef.editable;
                dgc.sortable=oColumnDef.sortable
                dgc.visible=oColumnDef.visible;
                dgc.wordWrap=oColumnDef.wordWrap;
                // datagrid columns text alignment
                dgc.setStyle("textAlign", oColumnDef.textAlign);
                dgc.resizable=true;
               
                if(dgc.dataField == "PLOT")
                {
                        dgc.rendererIsEditor= oColumnDef.rendererIsEditor;// true;
                        dgc.itemRenderer=new ClassFactory(CBRenderer);
                }
                                       
                //push the new dataGridColumn onto the array
                aColumnsNew.push(dgc);
        }
                       
        dg.columns=aColumnsNew;
        dg.editable = true;
                               
        //dg.addEventListener(ListEvent.ITEM_CLICK, dgRowItemClickEvent);
        dg.addEventListener(MouseEvent.CLICK, setSelectedData);
        //set the dataProvider
        if((xmlStageDataList != null)&&(xmlStageDataList.length > 0))
        {
                dg.dataProvider=xmlStageDataList;
        }
        else
        {
                dg.height=20;
                dg.enabled= false;
                dg.setStyle("backgroundDisabledColor","0xFF0000");
        }

        // resizing the datagrid size to accomodate 3 rows + header..
        dg.height = 92; //
        dg.width = iTotalDGWidth;
                               
        pnlTarget.addChild(dg);
}

private function convertDateData(item:Object, column:DataGridColumn):String
{
        var xml:XML = item as XML;
                               
        if(xml == null)
        {
                var temp:String = xml.child("PDATETIME").text();
                var day: int = parseInt(temp.substr(0,20));
                var month: int = parseInt(temp.substr(3,2))-1;
                var year:int = parseInt(temp.substr(6,4));
                var hour:int = parseInt(temp.substr(11,2));
                var min:int = parseInt(temp.substr(14,2));
                var sec:int = parseInt(temp.substr(17,2));
                var tempDate:Date = new Date(year, month, day, hour, min, sec);
                               
                var formatter:DateFormatter = new DateFormatter();
                formatter.formatString = "DD-MMM-YY HH:NN:SS";
                temp = formatter.format(tempDate);
                return temp;
        }
        else
        {
                return null;
        }
                               
}