 	}
 
 
+    /**
+     *  @inheritDoc
+     */
 	override public function create(... params):Object
 	{
 		return IFlexModuleFactory(_systemManager).create.apply(this, params);
 	}
 
+    /**
+     *  @inheritDoc
+     */
 	override public function useBridge():Boolean
 	{
 		return false;		// proxy does not want to use the bridge
 	}	
 	
 
+    /**
+     *  Override to size mouse catcher to the size fo the system manager we
+     *  are the proxy for.
+     */
 	override mx_internal function resizeMouseCatcher():void
 	{
 		if (mouseCatcher)

		}
	}

	override public function deactivate(f:IFocusManagerContainer):void
	{
		// trace("SM Proxy: deactivate " + f );

		var sm:ISystemManager2 = ISystemManager2(_systemManager);
		var bridge:IEventDispatcher = sm.sandboxBridgeGroup ? sm.sandboxBridgeGroup.parentBridge : null;
		if (bridge)

		}
	}

    //--------------------------------------------------------------------------
    //
    //  Methods
    //
    //--------------------------------------------------------------------------

    /**
     *  Activates the FocusManager in an IFocusManagerContainer for the 
     *  pop up window parented by this proxy.
     * 
     *  @param f IFocusManagerContainer the top-level window
     *  whose FocusManager should be activated.
     */
	public function activateProxy(f:IFocusManagerContainer):void
	{
		super.activate(f);	
	}

    /**
     *  Deactivates the focus manager for the pop up window parented by this 
     *  proxy.
     * 
     *  @param f IFocusManagerContainer the top-level window
     *  whose FocusManager should be deactivated.
     */
	public function deactivateProxy(f:IFocusManagerContainer):void
	{
		if (f)
            f.focusManager.deactivate();
	}

    //--------------------------------------------------------------------------
    //
    //  Event handlers
    //
    //--------------------------------------------------------------------------

    /**
     *  @private
     * 
     *  Handle mouse downs on the pop up window.
     */
    private function proxyMouseDownHandler(event:MouseEvent):void
    {
        // Tell our parent system manager we are active.
        SystemManager(_systemManager).fireActivatedWindowEvent(this);
    }
    
    /**
     *  Listen to when our popup has started dragging. Expand the mouse catcher to catch
     *  all the mouse moves when dragging.
     */
    private function startDraggingHandler(event:Event):void
    {
        // trace("startDraggingHandler");
        // Add the mouseCatcher as child 0.
        if (!mouseCatcher)
        {
            mouseCatcher = new FlexSprite();
            mouseCatcher.name = "mouseCatcher";
            // Must use addChildAt because a creationComplete handler can create a
            // dialog and insert it at 0.
            noTopMostIndex++;
            $addChildAt(mouseCatcher, 0);   
            resizeMouseCatcher();
            if (!topLevel)
            {
                mouseCatcher.visible = false;
                mask = mouseCatcher;
            }
        }

        var screen:Rectangle = SystemManager(_systemManager).screen;
        setActualSize(screen.width, screen.height);
    }
    
    /**
     *  Called when dragging has stopped. We not reduce the size of the mouse
     *  catcher so client area may be clicked on.
     */
    private function stopDraggingHandler(event:Event):void
    {
        // trace("stopDraggingHandler");
        if (mouseCatcher)
        {
            $removeChildAt(0);
            noTopMostIndex--;
            mouseCatcher = null;
        }
    }

}

}