 
 package spark.components.supportClasses
 {
+import flash.utils.getDefinitionByName;
+import flash.utils.getQualifiedClassName;
+
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 

    }
    
    /**
     *  This method determines if a device's default back key handler can
     *  be canceled.  For example, by default, when the back key is pressed
     *  on android devices, the application exits.  By returning true, that
     *  action will be canceled and the navigator's backKeyHandler() method
     *  is called.
     * 
     *  <p>This method is only called if the navigator is the main navigator
     *  of a MobileApplication class</p>.
     * 
     *  @return Flag indicating the default behavior can be canceled.  By
     *  default, this method returns false.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */  
    public function canCancelDefaultBackKeyBehavior():Boolean
    {
        return false;
    }
    
    /**
     *  @private
     *  
     *  @langversion 3.0

        {
            _active = value;
            
            if (activeView)
                activeView.active = value;
            
            var eventName:String = _active ? FlexEvent.NAVIGATOR_ACTIVATE : 
                                             FlexEvent.NAVIGATOR_DEACTIVATE;
            if (hasEventListener(eventName))
                dispatchEvent(new FlexEvent(eventName));
        }
    }

    //----------------------------------
    //  activeView
    //----------------------------------
    
    /**
     *  The currently active view of the navigator.  Only one view can
     *  be active at a time.
     *
     *  @default null
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    public function get activeView():View
    {
        return null;
    }
    
    //----------------------------------
    //  canCancelBackKeyBehavior
    //----------------------------------
    /**
     *  This method determines if a device's default back key handler can
     *  be canceled.  For example, by default, when the back key is pressed
     *  on android devices, the application exits.  By returning true, that
     *  action will be canceled and the navigator's backKeyHandler() method
     *  is called.
     * 
     *  <p>This method is only called if the navigator is the main navigator
     *  of a MobileApplication class</p>.
     * 
     *  @return Flag indicating the default behavior can be canceled.  By
     *  default, this method returns false.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    // TODO (chiedozi): PARB? exitOnBack?
    public function get canCancelBackKeyBehavior():Boolean
    {
        return false;
    }
    
    //----------------------------------
    //  icon
    //----------------------------------
    
    private var _icon:Class;
    
    /**
     *  Returns the icon that should be used when this navigator is represented
     *  by a visual component.
     * 
     *  @default null
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    public function get icon():Class
    {
        return _icon;    
    }
    /**
     *  @private
     */
    public function set icon(value:Class):void
    {
        _icon = value;
    }
    
    //----------------------------------
    //  label
    //----------------------------------
    
    private var _label:String;
    
    [Bindable]
    /**
     *  The label to be used when this stack is represented by a visual component.
     * 
     *  @default null
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    public function get label():String
    {
        return _label;
    }
    
    /**
     *  @private
     */
    public function set label(value:String):void
    {    
        if (_label != value)
        {
            _label = value;
        }
    }
    
