0

Maybe this is really simple, but I can't figure out how to set 'textAlign' property for default itemRenderer in AS3 (not mxml). I need to adjust it based on type's properties, 'int' or 'Number' aligned right, 'String' aligned left and so on.

I'm using spark DataGrid and listening FlexEvent.CREATION_COMPLETE event; I can't cast itemRenderer to DefaultGridItemRenderer, and ClassFactory doesn't provide setStyle method.

public function adjustGrid (e:Event):void
{
    for (var i:int=0; i<grd.columns.length; i++)
    {
        var gridColumn:GridColumn = GridColumn(grd.columns.getItemAt(i));
        DefaultGridItemRenderer(gridColumn.itemRenderer).setStyle("textAlign", "right");
    //ClassFactory(gridColumn.itemRenderer).setStyle("textAlign", "right");
    }
}

Any help I will appreciate. Thanks.

zero323
  • 322,348
  • 103
  • 959
  • 935
vladiastudillo
  • 407
  • 1
  • 10
  • 23

2 Answers2

0

extends DefaultGridItemRenderer.......

override public function getTextStyles():TextFormat{
  var tf:TextFormat = super.getTextStyles();
  tf.align = "right";
  return tf;
}
ktuou
  • 16
0

extends DefaultGridItemRenderer and add method:

public function set styles(obj:Object):void
{
    for (var styleProp:String in obj) 
    {
        setStyle(styleProp,obj[styleProp]);
    }
}

Then You may put any styles like that:

    var itemRenderer:ClassFactory = new ClassFactory(DefaultGridItemRenderer);
    itemRenderer.properties = {
        styles:{textAlign:"right", fontWeight:"bold"},
        someOtherProp:"Hello"};
    rightList.itemRenderer = itemRenderer;
orakull
  • 811
  • 6
  • 6