     //----------------------------------
 
     private var _itemRenderer:IFactory = null;
+    private var rendererClassFactory:GridItemRendererClassFactory = null;
     
     [Bindable("itemRendererChanged")]
     

        const itemRendererFunction:Function = itemRendererFunction;
        var factory:IFactory = (itemRendererFunction != null) ? itemRendererFunction(item, this) : itemRenderer;
        
        return factory;
    }
    
    /**

    }
    
    /**
     *  @private
     *  The static embeddedFonts property is initialized lazily. 
     */
    private static var  _embeddedFontRegistryExists:Boolean = false;
    private static var embeddedFontRegistryExistsInitialized:Boolean = false;
    
    /**
     *  @private
     *  True if an embedded font registry singleton exists.
     */
    private static function get embeddedFontRegistryExists():Boolean
    {
        if (!embeddedFontRegistryExistsInitialized)
        {
            embeddedFontRegistryExistsInitialized = true;
            try
            {
                _embeddedFontRegistryExists = Singleton.getInstance("mx.core::IEmbeddedFontRegistry") != null;
            }
            catch (e:Error)
            {
                _embeddedFontRegistryExists = false;
            }
        }
        
        return _embeddedFontRegistryExists;
    }
    
    /**
     *  Convert the specified dataProvider item to a column-specific item renderer factory.
     *  By default this method calls the <code>itemRendererFunction</code> if it's 
     *  non-null, otherwise it just returns the value of the column's <code>itemRenderer</code> 
