     }
     
     /**
-     * 
+     *  This method is called when the Application's hardware back key is pressed
+     *  by the user.
+     *   
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 2.5

    
    /**
     *  @private
     *  This flag indicates when a user has called preventDefault on the
     *  KeyboardEvent dispatched when the menu key is pressed.
     */
    private var menuKeyEventPreventDefaulted:Boolean = false;
    
    private var currentViewMenu:ViewMenu; 
    private var lastFocus:InteractiveObject;
    
    //----------------------------------
    //  activeView
    //----------------------------------
    
    /**
     *  @private
     */ 
    mx_internal function get activeView():View
    {
        return null;
    }
    
    //--------------------------------------------------------------------------
    //
    //  Properties
    //
    //--------------------------------------------------------------------------
    
    private var _viewMenuOpen:Boolean = false;
    
    /**
     *  Opens the view menu if set to true and closes it if set to false. 
     * 
     *  @default false
     */
    public function get viewMenuOpen():Boolean
    {
        return _viewMenuOpen;
    }
    
    public function set viewMenuOpen(value:Boolean):void
    {
        if (value == _viewMenuOpen)
            return;
        
        if (!viewMenu || !activeView.viewMenuItems || activeView.viewMenuItems.length == 0)
            return;
        
        _viewMenuOpen = value;
        
        if (_viewMenuOpen)
            openViewMenu();
        else
            closeViewMenu();
    }
    
    //----------------------------------
    //  persistenceManager

    private var _persistenceManager:IPersistenceManager;
    
    /**
     *  The persistenceManager for the application.  The persistence
     *  manager is automatically created on demand when accessed for the
     *  first time.  Override the <code>createPersistenceManager()</code>
     *  method to change the type of persistence manager that is created.
     * 
     *  <p>The persistence manager will automatically save and restore
     *  the main navigator's persistence stack if the
     *  <code>sessionCachingEnabled</code> flag is set to true. Data stored 
     *  in the persistence manager will automatically be flushed to disk 
     *  when the application is suspended or exited.</p>
     *  
     *  <p>The default implementation of the persistence manager uses
     *  a shared object as it's backing data store.  All information that is
     *  saved to this object must adhere to flash AMF rules for object encoding.
     *  This means that custom classes will need to be registered through the use
     *  of <code>flash.net.registerClassAlias</code></p>
     * 
     *  @default Instance of a spark.core.managers.PersistenceManager
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    public function get persistenceManager():IPersistenceManager
    {
        if (!_persistenceManager)
