  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Event(name="rendererRemove", type="mx.events.RendererExistenceEvent")]
+[Event(name="rendererRemove", type="spark.events.RendererExistenceEvent")]
 
 include "../styles/metadata/BasicTextLayoutFormatStyles.as"
 

//
////////////////////////////////////////////////////////////////////////////////

package mx.components
{

import mx.collections.IList;
import mx.components.DataGroup;
import mx.components.baseClasses.FxContainerBase;
import mx.core.IFactory;
import mx.core.IViewport;
import mx.events.FlexEvent;
import mx.events.PropertyChangeEvent;
import mx.events.RendererExistenceEvent;
import mx.layout.LayoutBase;
import mx.managers.IFocusManagerContainer;
import mx.utils.BitFlagUtil;


    /**
     *  @private
     *  Several properties are proxied to dataGroup.  However, when dataGroup
     *  is not around, we need to store values set on SkinnableDataContainer.  This object 
     *  stores those values.  If dataGroup is around, the values are stored 
     *  on the dataGroup directly.  However, we need to know what values 
     *  have been set by the developer on the SkinnableDataContainer (versus set on 
     *  the dataGroup or defaults of the dataGroup) as those are values 
     *  we want to carry around if the dataGroup changes (via a new skin). 
     *  In order to store this info effeciently, dataGroupProperties becomes 
     *  a uint to store a series of BitFlags.  These bits represent whether a 
     *  property has been explicitely set on this SkinnableDataContainer.  When the 
     *  dataGroup is not around, dataGroupProperties is a typeless 
     *  object to store these proxied properties.  When dataGroup is around,
     *  dataGroupProperties stores booleans as to whether these properties 
