      */
     private function dataGroup_itemAddHandler(event:ItemExistenceChangedEvent):void
     {
-        var renderer:Object = event.renderer;
+        var renderer:IEventDispatcher = IEventDispatcher(event.renderer);
         var index:int = event.index;
         
         if (renderer)
+		{
             renderer.addEventListener("click", item_clickHandler);
+			if (renderer is IFocusManagerComponent)
+				IFocusManagerComponent(renderer).focusEnabled = false;
+			if (renderer is ISelectableRenderer)
+			{
+				ISelectableRenderer(renderer).allowDeselection = !requiresSelection;
+				ISelectableRenderer(renderer).enabled = enabled;
+			}
+		}
             
         if (isItemIndexSelected(index))
             itemSelected(index, true);

 *
 *  @includeExample examples/FxButtonBarExample.mxml
 */
public class FxButtonBar extends FxListBase
{
    include "../core/Version.as";


    //  Overridden Methods
    //
    //--------------------------------------------------------------------------

	private var requiresSelectionChanging:Boolean;

    /**
     *  @private
     */
    override public function set requiresSelection(value:Boolean):void
	{
		super.requiresSelection = value;
		requiresSelectionChanging = true;
	}

	private var enabledChanging:Boolean;

    /**
     *  @private
     */
    override public function set enabled(value:Boolean):void
	{
		super.enabled = value;
		enabledChanging = true;
	}

    /**
     *  @private
     */
    override protected function commitProperties():void
    {
		super.commitProperties();

        if (requiresSelectionChanging)
		{
			requiresSelectionChanging = false;
			var n:int = dataProvider.length;
			for (var i:int = 0; i < n; i++)
			{
				var renderer:ISelectableRenderer = 
					dataGroup.getRendererForItemAt(i) as ISelectableRenderer;
				if (renderer)
					renderer.allowDeselection = !requiresSelection;
			}
		}
    }

    /**
     *  @private
     */
    override protected function updateDisplayList(w:Number, h:Number):void
    {
		super.updateDisplayList(w, h);

        if (enabledChanging)
		{
			enabledChanging = false;
			if (dataProvider)
			{
				var n:int = dataProvider.length;
				for (var i:int = 0; i < n; i++)
				{
					var renderer:ISelectableRenderer = 
						dataGroup.getRendererForItemAt(i) as ISelectableRenderer;
					if (renderer)
						renderer.enabled = enabled;
				}
			}
		}
    }

    /**
     *  @private
     */
    override public function drawFocus(isFocused:Boolean):void
    {
        drawButtonFocus(focusedIndex, isFocused);
    }

    /**
     *  @private
     */
