Transferred from the Adobe Open Source Subversion Repository

Revision: 17108
Author:   chiedozi@adobe.com
Date:     2010-07-28T23:12:04.976302Z

Log Message:
-----------
Renamed rootView and initalData properties on MobileApplication, ViewNavigator and ViewNavigatorSection to firstView and firstViewData due to PARB requests.
Renamed ViewData to ViewHistoryData due to PARB request.
Updated performance tests to match api changes

QE notes:
Doc notes:
Bugs:
Reviewer:
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchMXMLLabel.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchVirtualizedASTextField.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchVirtualizedMXMLLabel.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchASLabel.mxml</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewData.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewData.as" copyfrom-rev="17103" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewHistoryData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchMXMLTextField.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchVirtualizedASLabel.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ComponentCatalog.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchVirtualizedMXMLTextField.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/TwitterSearch/src/TwitterSearchASTextField.mxml</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1264406 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as
@@ -11,257 +11,260 @@

 package spark.components.supportClasses
 {
-import flash.utils.IDataInput;
-import flash.utils.IDataOutput;
-import flash.utils.IExternalizable;
-import flash.utils.getDefinitionByName;
-import flash.utils.getQualifiedClassName;
-
-import spark.components.supportClasses.ViewData;
-
-/**
- *  ViewNavigatorSection is a data structure that represents a stack
- *  of Screens used by navigators.  This object consists of a vector
- *  of ScreenData objects that contain initialization properties
- *  for a screen.
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
-public class ViewNavigatorSection implements IExternalizable
-{
+    import flash.utils.IDataInput;
+    import flash.utils.IDataOutput;
+    import flash.utils.IExternalizable;
+    import flash.utils.getDefinitionByName;
+    import flash.utils.getQualifiedClassName;

-    //--------------------------------------------------------------------------
-    //
-    //  Constructor
-    //
-    //--------------------------------------------------------------------------
+    import spark.components.supportClasses.ViewHistoryData;
+
+    import mx.core.mx_internal;
+    use namespace mx_internal;

     /**
-     *  Constructor.
+     *  ViewNavigatorSection is a data structure that represents a stack
+     *  of Screens used by navigators.  This object consists of a vector
+     *  of ScreenData objects that contain initialization properties
+     *  for a screen.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function ViewNavigatorSection()
+    public class ViewNavigatorSection implements IExternalizable
     {
-        super();
-
-        _source = new Vector.<ViewData>();
+
+        //--------------------------------------------------------------------------
+        //
+        //  Constructor
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 1.5
+         *  @productversion Flex 4
+         */
+        public function ViewNavigatorSection()
+        {
+            super();
+
+            _source = new Vector.<ViewHistoryData>();
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        // Variables
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  @private
+         */
+        private var _source:Vector.<ViewHistoryData>;
+
+        //--------------------------------------------------------------------------
+        //
+        // Properties
+        //
+        //--------------------------------------------------------------------------
+
+        //----------------------------------
+        //  icon
+        //----------------------------------
+        /**
+         *  @private
+         */
+        private var _icon:Class;
+
+        /**
+         *  Returns the icon that should be used when this stack is represented
+         *  by a visual component.
+         */
+        public function get icon():Class
+        {
+            return _icon;
+        }
+        /**
+         *  @private
+         */
+        public function set icon(value:Class):void
+        {
+            _icon = value;
+        }
+
+        //----------------------------------
+        //  firstViewData
+        //----------------------------------
+        /**
+         * @private
+         */
+        private var _firstViewData:Object;
+
+        /**
+         * This is the initialization data to pass to the
+         * root screen when it is created.
+         */
+        public function get firstViewData():Object
+        {
+            return _firstViewData;
+        }
+
+        /**
+         * @private
+         */
+        public function set firstViewData(value:Object):void
+        {
+            _firstViewData = value;
+        }
+
+        //----------------------------------
+        //  label
+        //----------------------------------
+        /**
+         *  @private
+         */
+        private var _label:String;
+
+        /**
+         *  The label to be used when this stack is represented by
+         *  a visual component.
+         */
+        public function get label():String
+        {
+            return _label;
+        }
+
+        /**
+         *  @private
+         */
+        public function set label(value:String):void
+        {
+            _label = value;
+        }
+
+        //----------------------------------
+        //  length
+        //----------------------------------
+
+        /**
+         *  Returns the length of the stack
+         */
+        public function get length():int
+        {
+            return _source.length;
+        }
+
+        //----------------------------------
+        //  firstView
+        //----------------------------------
+        /**
+         *  @private
+         *  The backing variable for the firstView property.
+         */
+        private var _firstView:Class;
+
+        /**
+         *  This property is the object to use to initialize the root screen
+         *  of the stack.  This can be a Class, instance or Factory that creates
+         *  an object that extends Screen.
+         */
+        public function get firstView():Class
+        {
+            return _firstView;
+        }
+
+        /**
+         * @private
+         */
+        public function set firstView(value:Class):void
+        {
+            _firstView = value;
+        }
+
+        //----------------------------------
+        //  top
+        //----------------------------------
+
+        /**
+         *  Returns the object at the top of the stack.  If the
+         *  stack is empty, this propety is null.
+         */
+        mx_internal function get topView():ViewHistoryData
+        {
+            return _source.length == 0 ? null : _source[_source.length - 1];
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        // Methods
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Clears the entire stack.
+         */
+        public function clear():void
+        {
+            _source.length = 0;
+        }
+
+        /**
+         *  Pushes a data on the top of the stack.
+         */
+        public function push(factory:Class, data:Object):void
+        {
+            _source.push(new ViewHistoryData(factory, data));
+        }
+
+        /**
+         *  Removes the top item off the stack.
+         */
+        public function pop():void
+        {
+            _source.pop();
+        }
+
+        /**
+         *  Removes all but the root object from the screen stack.
+         */
+        public function popToRoot():void
+        {
+            if (_source.length > 1)
+                _source.length = 1;
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        // Methods: IExternalizable
+        //
+        //--------------------------------------------------------------------------
+
+        public function writeExternal(output:IDataOutput):void
+        {
+            output.writeObject(firstViewData);
+            output.writeObject(label);
+            output.writeObject(_source);
+            output.writeObject(getQualifiedClassName(icon));
+            output.writeObject(getQualifiedClassName(firstView));
+        }
+
+        public function readExternal(input:IDataInput):void
+        {
+            firstViewData = input.readObject();
+            label = input.readObject();
+            _source = input.readObject() as Vector.<ViewHistoryData>;
+
+            var className:String = input.readObject();
+            icon = (className == "null") ? null : getDefinitionByName(className) as Class;
+
+            className = input.readObject();
+            firstView = (className == "null") ? null : getDefinitionByName(className) as Class;
+        }
     }
-
-    //--------------------------------------------------------------------------
-    //
-    // Variables
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     */
-    private var _source:Vector.<ViewData>;
-
-    //--------------------------------------------------------------------------
-    //
-    // Properties
-    //
-    //--------------------------------------------------------------------------
-
-    //----------------------------------
-    //  icon
-    //----------------------------------
-    /**
-     *  @private
-     */
-    private var _icon:Class;
-
-    /**
-     *  Returns the icon that should be used when this stack is represented
-     *  by a visual component.
-     */
-    public function get icon():Class
-    {
-        return _icon;
-    }
-    /**
-     *  @private
-     */
-    public function set icon(value:Class):void
-    {
-        _icon = value;
-    }
-
-    //----------------------------------
-    //  initialData
-    //----------------------------------
-    /**
-     * @private
-     */
-    private var _initialData:Object;
-
-    /**
-     * This is the initialization data to pass to the
-     * root screen when it is created.
-     */
-    public function get initialData():Object
-    {
-        return _initialData;
-    }
-
-    /**
-     * @private
-     */
-    public function set initialData(value:Object):void
-    {
-        _initialData = value;
-    }
-
-    //----------------------------------
-    //  label
-    //----------------------------------
-    /**
-     *  @private
-     */
-    private var _label:String;
-
-    /**
-     *  The label to be used when this stack is represented by
-     *  a visual component.
-     */
-    public function get label():String
-    {
-        return _label;
-    }
-
-    /**
-     *  @private
-     */
-    public function set label(value:String):void
-    {
-        _label = value;
-    }
-
-    //----------------------------------
-    //  length
-    //----------------------------------
-
-    /**
-     *  Returns the length of the stack
-     */
-    public function get length():int
-    {
-        return _source.length;
-    }
-
-    //----------------------------------
-    //  rootView
-    //----------------------------------
-    /**
-     *  @private
-     *  The backing variable for the rootView property.
-     */
-    private var _rootView:Class;
-
-    /**
-     *  This property is the object to use to initialize the root screen
-     *  of the stack.  This can be a Class, instance or Factory that creates
-     *  an object that extends Screen.
-     */
-    public function get rootView():Class
-    {
-        return _rootView;
-    }
-
-    /**
-     * @private
-     */
-    public function set rootView(value:Class):void
-    {
-        _rootView = value;
-    }
-
-    //----------------------------------
-    //  top
-    //----------------------------------
-
-    /**
-     *  Returns the object at the top of the stack.  If the
-     *  stack is empty, this propety is null.
-     */
-    public function get top():ViewData
-    {
-        return _source.length == 0 ? null : _source[_source.length - 1];
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    // Methods
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  Clears the entire stack.
-     */
-    public function clear():void
-    {
-        _source.length = 0;
-    }
-
-    /**
-     *  Pushes a data on the top of the stack.
-     */
-    public function push(data:ViewData):void
-    {
-        _source.push(data);
-    }
-
-    /**
-     *  Removes the top item off the stack.
-     */
-    public function pop():void
-    {
-        _source.pop();
-    }
-
-    /**
-     *  Removes all but the root object from the screen stack.
-     */
-    public function popToRoot():void
-    {
-        if (_source.length > 1)
-            _source.length = 1;
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    // Methods: IExternalizable
-    //
-    //--------------------------------------------------------------------------
-
-    public function writeExternal(output:IDataOutput):void
-    {
-        output.writeObject(initialData);
-        output.writeObject(label);
-        output.writeObject(_source);
-        output.writeObject(getQualifiedClassName(icon));
-        output.writeObject(getQualifiedClassName(rootView));
-    }
-
-    public function readExternal(input:IDataInput):void
-    {
-        initialData = input.readObject();
-        label = input.readObject();
-        _source = input.readObject() as Vector.<ViewData>;
-
-        var className:String = input.readObject();
-        icon = (className == "null") ? null : getDefinitionByName(className) as Class;
-
-        className = input.readObject();
-        rootView = (className == "null") ? null : getDefinitionByName(className) as Class;
-    }
-}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10606
Author:   egeorgie@adobe.com
Date:     2009-09-25T23:01:50.455888Z

Log Message:
-----------
White space cleanup.

Doc notes: None
Bugs: None
Reviewer: Evtim
Tests run: build
Is noteworthy for integration: Nope

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/testWheel.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1282027 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as
@@ -357,7 +357,7 @@

             _isOpen = true;
             // Force the button to stay in the down state
-            if(openButton)
+            if (openButton)
                 openButton.keepDown(true, !isProgrammatic);

             dispatchEvent(new DropDownEvent(DropDownEvent.OPEN));
@@ -380,7 +380,7 @@
         if (isOpen)
         {
             _isOpen = false;
-            if(openButton)
+            if (openButton)
                 openButton.keepDown(false);

             var dde:DropDownEvent = new DropDownEvent(DropDownEvent.CLOSE, false, true);
@@ -489,11 +489,11 @@
              || (dropDown is DisplayObjectContainer &&
                  !DisplayObjectContainer(dropDown).contains(DisplayObject(event.target))))))
         {
-            if(hitAreaAdditions != null)
-            {
-                for(var i:int = 0;i<hitAreaAdditions.length;i++)
+            if (hitAreaAdditions != null)
+            {
+                for (var i:int = 0;i<hitAreaAdditions.length;i++)
                 {
-                    if(hitAreaAdditions[i] == event.target ||
+                    if (hitAreaAdditions[i] == event.target ||
                         ((hitAreaAdditions[i] is DisplayObjectContainer) && DisplayObjectContainer(hitAreaAdditions[i]).contains(event.target as DisplayObject)))
                         return;
                 }
@@ -529,11 +529,11 @@
             // check if the target is the openButton or contained within the openButton
             if (openButton.contains(target))
                 return;
-            if(hitAreaAdditions != null)
-            {
-                for(var i:int = 0;i<hitAreaAdditions.length;i++)
+            if (hitAreaAdditions != null)
+            {
+                for (var i:int = 0;i<hitAreaAdditions.length;i++)
                 {
-                    if(hitAreaAdditions[i] == target ||
+                    if (hitAreaAdditions[i] == target ||
                         ((hitAreaAdditions[i] is DisplayObjectContainer) && DisplayObjectContainer(hitAreaAdditions[i]).contains(target as DisplayObject)))
                         return;
                 }


Fixed typo in IHookProcessor.

Fixed typo in IHookProcessor.

--- src/org/robotlegs/v2/extensions/guardsAndHooks/api/IHooksProcessor.as
+++ src/org/robotlegs/v2/extensions/guardsAndHooks/api/IHooksProcessor.as
@@ -12,6 +12,6 @@
 	public interface IHooksProcessor
 	{

-		function runHooks(useInjector:Injector, guardClasses:Vector.<Class>):void;
+		function runHooks(useInjector:Injector, hookClasses:Vector.<Class>):void;
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 152
Author:   proberts@adobe.com
Date:     2008-01-10T20:10:08.980954Z

Log Message:
-----------
Severity: ignore
Description: docs update -- added @mxml sections to class descriptions for Flex AIR UI controls that didn't already have one

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1249669 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as
+++ frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as
@@ -224,6 +224,37 @@
  *  Therefore the actual file system icons displayed in the operating system
  *  are not displayed in a FileSystemDataGrid, even though they are
  *  accessible in AIR via the icon property of a File.

+ *
+ *  @mxml
+ *
+ *
The <mx:FileSystemDataGrid> tag inherits all of the tag
+ *  attributes of its superclass and adds the following tag attributes:

+ *
+ *

+ *  <mx:FileSystemDataGrid
+ *    Properties
+ *    dateFormatString=""
+ *    directory="null"
+ *    enumerationMode="directoriesFirst"
+ *    extensions="null"
+ *    filterFunction="null"
+ *    nameCompareFunction="null"
+ *    selectedPath="null"
+ *    selectedPaths="null"
+ *    showExtensions="true"
+ *    showHidden="false"
+ *    showIcons="true"
+ *
+ *    Styles
+ *    directoryIcon="TreeNodeIcon"
+ *    fileIcon="TreeNodeIcon"
+ *
+ *    Events
+ *    directoryChange="No default"
+ *    directoryChanging="No default"
+ *    fileChoose="No default"
+ *  />
+ *

  *
  *  @see flash.filesystem.File
  */
@@ -555,6 +586,10 @@

     /**
      *  @copy mx.controls.FileSystemList#enumerationMode
+     *
+     *  @default FileSystemEnumerationMode.DIRECTORIES_FIRST
+     *
+     *  @see mx.controls.FileSystemEnumerationMode
      */
     public function get enumerationMode():String
     {
@@ -575,6 +610,8 @@

     /**
      *  @copy mx.controls.FileSystemList#extensions
+     *
+     *  @default null
      */
     public function get extensions():Array /* of String */
     {
@@ -595,6 +632,8 @@

     /**
      *  @copy mx.controls.FileSystemList#filterFunction
+     *
+     *  @default null
      */
     public function get filterFunction():Function
     {
@@ -686,6 +725,8 @@

     /**
      *  @copy mx.controls.FileSystemList#nameCompareFunction
+     *
+     *  @default null
      */
     public function get nameCompareFunction():Function
     {
@@ -709,6 +750,11 @@

     /**
      *  @copy mx.controls.FileSystemList#selectedPath
+     *
+     *  @default null
+     *
+     *  @see mx.controls.listClasses.ListBase#selectedIndex
+     *  @see mx.controls.listClasses.ListBase#selectedItem
      */
     public function get selectedPath():String
     {
@@ -732,6 +778,11 @@

     /**
      *  @copy mx.controls.FileSystemList#selectedPaths
+     *
+     *  @default []
+     *
+     *  @see mx.controls.listClasses.ListBase#selectedIndex
+     *  @see mx.controls.listClasses.ListBase#selectedItem
      */
     public function get selectedPaths():Array /* of String */
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5152
Author:   gruehle@adobe.com
Date:     2009-03-03T21:18:45.837259Z

Log Message:
-----------
First pass of bug fixes for the Spark skins for Halo components.

Bugs:
SDK-19963 - themeColor should not affect rollOverColor or selectionColor in flex 4
SDK-19654 - Spark skin for the Halo ComboBox dropdown needs a drop shadow
SDK-19637 - Halo HScrollBar/VScrollBar controls dont render correctly when specifying includeIn states
SDK-19634 - Halo ProgressBar default size is very different when using Halo vs Gumbo theme
SDK-19626 - Flicker when toggling enabled property on Halo TabBar control with Gumbo skin
SDK-19556 - selected Halo CheckBox and RadioButton icons briefly flicker when you roll over them
SDK-19658 - Halo ComboBox with Gumbo skin has an odd flicker

Doc/QA Notes: The fix for SDK-19963 includes a compatibility-version check. When compatibility-version < 4, setting themeColor implicitly sets rollOverColor and selectionColor, if they have not been set. When compatibility-version >= 4, you must explicitly set rollOverColor and selectionColor, even when using the Halo theme.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/BorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ProgressBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RectangularDropShadow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1261170 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/graphics/RectangularDropShadow.as
+++ frameworks/projects/framework/src/mx/graphics/RectangularDropShadow.as
@@ -430,6 +430,82 @@
 		}
     }

+    //----------------------------------
+    //  blurX
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the brRadius property.
+     */
+    private var _blurX:Number = 4;
+
+	[Inspectable]
+
+    /**
+     *  The amount of horizontal blur.
+     *  @default 4
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    public function get blurX():Number
+    {
+        return _blurX;
+    }
+
+    /**
+     *  @private
+     */
+    public function set blurX(value:Number):void
+    {
+    	if (_blurX != value)
+    	{
+			_blurX = value;
+			changed = true;
+		}
+    }
+
+    //----------------------------------
+    //  blurY
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the brRadius property.
+     */
+    private var _blurY:Number = 4;
+
+	[Inspectable]
+
+    /**
+     *  The amount of vertical blur.
+     *  @default 4
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    public function get blurY():Number
+    {
+        return _blurY;
+    }
+
+    /**
+     *  @private
+     */
+    public function set blurY(value:Number):void
+    {
+    	if (_blurY != value)
+    	{
+			_blurY = value;
+			changed = true;
+		}
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Methods
@@ -649,7 +725,7 @@
 		// Get the size of the drop shadow that will be cast by this
 		// rounded rectangle.
 		var filter:DropShadowFilter =
-			new DropShadowFilter(distance, angle, color, alpha);
+			new DropShadowFilter(distance, angle, color, alpha, blurX, blurY);
 		filter.knockout = true;
 		var inputRect:Rectangle = new Rectangle(0, 0,
 			roundRectWidth, roundRectHeight);


Transferred from the Adobe Open Source Subversion Repository

Revision: 9427
Author:   egeorgie@adobe.com
Date:     2009-08-20T20:04:22.377902Z

Log Message:
-----------
Update the DragManagerImpl.as to support scaled/transformed lists.

QE notes: Add a test for dragging from a scaled List.
Doc notes: None
Bugs: None
Reviewer: Glenn, Jason
Tests run: checkintests, mustella (managers/DragManager)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1261961 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as
+++ frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as
@@ -634,7 +634,7 @@
             var m:Move = new Move(this);
             m.addEventListener(EffectEvent.EFFECT_END, effectEndHandler);
             m.xFrom = x;
-            m.yFrom = this.y;
+            m.yFrom = y;
             m.xTo = parent.mouseX;
             m.yTo = parent.mouseY;
             m.duration = 200;


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262121 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as
+++ frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as
@@ -0,0 +1,1621 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.preloaders
+{
+
+import flash.display.DisplayObject;
+import flash.display.GradientType;
+import flash.display.Graphics;
+import flash.display.Loader;
+import flash.display.LoaderInfo;
+import flash.display.Sprite;
+import flash.events.Event;
+import flash.events.IOErrorEvent;
+import flash.events.ProgressEvent;
+import flash.events.TimerEvent;
+import flash.geom.Matrix;
+import flash.geom.Rectangle;
+import flash.net.URLRequest;
+import flash.system.ApplicationDomain;
+import flash.system.LoaderContext;
+import flash.text.TextField;
+import flash.text.TextFormat;
+import flash.utils.Timer;
+import flash.utils.getDefinitionByName;
+import flash.utils.getTimer;
+import mx.events.FlexEvent;
+import mx.events.RSLEvent;
+import mx.graphics.RectangularDropShadow;
+import mx.graphics.RoundedRectangle;
+
+/**
+ *  The DownloadProgressBar class displays download progress.
+ *  It is used by the Preloader control to provide user feedback
+ *  while the application is downloading and loading.
+ *
+ *
The download progress bar displays information about
+ *  two different phases of the application:
+ *  the download phase and the initialization phase.

+ *
+ *
In the <mx:Application> tag, use the
+ *  the preloader property to specify the name of your subclass.

+ *
+ *
You can implement a custom download progress bar component
+ *  by creating a subclass of the DownloadProgressBar class.
+ *  Do not implement a download progress bar as an MXML component
+ *  because it loads too slowly.

+ *
+ *  @see mx.core.Application
+ *  @see mx.preloaders.IPreloaderDisplay
+ *  @see mx.preloaders.Preloader
+ */
+public class DownloadProgressBar extends Sprite implements IPreloaderDisplay
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor
+	 */
+	public function DownloadProgressBar()
+	{
+		super();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  The minimum number of milliseconds
+	 *  that the display should appear visible.
+	 *  If the downloading and initialization of the application
+	 *  takes less time than this value, then Flex pauses for this amount
+	 *  of time before dispatching the complete event.
+	 *
+	 *  @default 0
+	 */
+	protected var MINIMUM_DISPLAY_TIME:uint = 0;
+
+	/**
+	 *  The percentage of the progress bar that the downloading phase
+	 *  fills when the SWF file is fully downloaded.
+	 *  The rest of the progress bar is filled during the initializing phase.
+	 *  This should be a value from 0 to 100.
+	 *
+	 *  @default 60
+	 */
+	protected var DOWNLOAD_PERCENTAGE:uint = 60;
+
+	/**
+	 *  @private
+	 */
+	private var _showProgressBar:Boolean = true;
+
+	/**
+	 *  @private
+	 *  Cached Rectangle returned by the labelRect getter.
+	 */
+	private var _labelRect:Rectangle = labelRect;
+
+	/**
+	 *  @private
+	 *  Cached Rectangle returned by the percentRect getter.
+	 */
+	private var _percentRect:Rectangle = percentRect;
+
+	/**
+	 *  @private
+	 *  Cached RoundedRectangle returned by the borderRect getter.
+	 */
+	private var _borderRect:RoundedRectangle = borderRect;
+
+	/**
+	 *  @private
+	 *  Cached RoundedRectangle returned by the barFrameRect getter.
+	 */
+	private var _barFrameRect:RoundedRectangle = barFrameRect;
+
+	/**
+	 *  @private
+	 *  Cached RoundedRectangle returned by the barRect getter.
+	 */
+	private var _barRect:RoundedRectangle = barRect;
+
+	/**
+	 *  @private
+	 */
+	private var _xOffset:Number = 20;
+
+	/**
+	 *  @private
+	 */
+	private var _yOffset:Number = 20;
+
+	/**
+	 *  @private
+	 */
+	private var	_maximum:Number = 0;
+
+	/**
+	 *  @private
+	 */
+	private var	_value:Number = 0;
+
+	/**
+	 *  @private
+	 */
+	private var _barSprite:Sprite;
+
+	/**
+	 *  @private
+	 */
+	private var _barFrameSprite:Sprite;
+
+	/**
+	 *  @private
+	 */
+	private var _labelObj:TextField;
+
+	/**
+	 *  @private
+	 */
+	private var _percentObj:TextField;
+
+	/**
+	 *  @private
+	 */
+	private var _startTime:int;
+
+	/**
+	 *  @private
+	 */
+	private var _displayTime:int;
+
+	/**
+	 *  @private
+	 */
+	private var _startedLoading:Boolean = false;
+
+	/**
+	 *  @private
+	 */
+	private var _startedInit:Boolean = false;
+
+	/**
+	 *  @private
+	 */
+	private var _showingDisplay:Boolean = false;
+
+	/**
+	 *  @private
+	 */
+	private var _displayStartCount:uint = 0;
+
+	/**
+	 *  @private
+	 */
+	private var _initProgressCount:uint = 0;
+
+	/**
+	 *  @private
+	 */
+	private var _initProgressTotal:uint = 12;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  visible
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the visible property.
+	 */
+	private var _visible:Boolean = false;
+
+	/**
+	 *  Specifies whether the download progress bar is visible.
+	 *
+	 *
When the Preloader control determines that the progress bar should be displayed,
+	 *  it sets this value to true. When the Preloader control determines that
+	 *  the progress bar should be hidden, it sets the value to false.

+	 *
+	 *
A subclass of the DownloadProgressBar class should never modify this property.
+	 *  Instead, you can override the setter method to recognize when
+	 *  the Preloader control modifies it, and perform any necessary actions.

+	 *
+	 *  @default false
+	 */
+	override public function get visible():Boolean
+	{
+		return _visible;
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function set visible(value:Boolean):void
+	{
+		if (!_visible && value)
+			show();
+
+		else if (_visible && !value )
+			hide();
+
+		_visible = value;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties: IPreloaderDisplay
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  backgroundAlpha
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the backgroundAlpha property.
+	 */
+	private var _backgroundAlpha:Number = 1;
+
+	/**
+     *  Alpha level of the SWF file or image defined by
+     *  the backgroundImage property, or the color defined by
+	 *  the backgroundColor property.
+	 *  Valid values range from 0 to 1.0.
+	 *
+	 *
You can specify either a backgroundColor
+	 *  or a backgroundImage, but not both.

+	 *
+	 *  @default 1.0
+	 *
+	 */
+	public function get backgroundAlpha():Number
+	{
+		if (!isNaN(_backgroundAlpha))
+			return _backgroundAlpha;
+		else
+			return 1;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set backgroundAlpha(value:Number):void
+	{
+		_backgroundAlpha = value;
+	}
+
+	//----------------------------------
+	//  backgroundColor
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the backgroundColor property.
+	 */
+	private var _backgroundColor:uint;
+
+	/**
+     *  Background color of a download progress bar.
+     *  You can have either a backgroundColor or a
+     *  backgroundImage, but not both.
+	 */
+	public function get backgroundColor():uint
+	{
+		return _backgroundColor;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set backgroundColor(value:uint):void
+	{
+		_backgroundColor = value;
+	}
+
+	//----------------------------------
+	//  backgroundImage
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the backgroundImage property.
+	 */
+	private var _backgroundImage:Object;
+
+	/**
+	 *  The background image of the application,
+	 *  which is passed in by the preloader.
+	 *  You can specify either a backgroundColor
+	 *  or a backgroundImage, but not both.
+	 *
+	 *
A value of null means "not set".
+	 *  If this style and the backgroundColor style are undefined,
+	 *  the component has a transparent background.

+	 *
+	 *
The preloader does not display embedded images.
+	 *  You can only use images loaded at runtime.

+	 *
+	 *  @default null
+	 */
+	public function get backgroundImage():Object
+	{
+		return _backgroundImage;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set backgroundImage(value:Object):void
+	{
+		_backgroundImage = value;
+	}
+
+	//----------------------------------
+	//  backgroundSize
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the backgroundSize property.
+	 */
+	private var _backgroundSize:String = "";
+
+	/**
+     *  Scales the image specified by backgroundImage
+     *  to different percentage sizes.
+     *  A value of "100%" stretches the image
+     *  to fit the entire component.
+     *  To specify a percentage value, you must include the percent sign (%).
+     *  A value of "auto", maintains
+     *  the original size of the image.
+	 *
+	 *  @default "auto"
+	 */
+	public function get backgroundSize():String
+	{
+		return _backgroundSize;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set backgroundSize(value:String):void
+	{
+		_backgroundSize = value;
+	}
+
+	//----------------------------------
+	//  preloader
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the preloader property.
+	 */
+	private var _preloader:Sprite;
+
+	/**
+	 *  The Preloader class passes in a reference to itself to the display class
+	 *  so that it can listen for events from the preloader.
+	 */
+	public function set preloader(value:Sprite):void
+	{
+		_preloader = value;
+
+		value.addEventListener(ProgressEvent.PROGRESS, progressHandler);
+		value.addEventListener(Event.COMPLETE, completeHandler);
+
+		value.addEventListener(RSLEvent.RSL_PROGRESS, rslProgressHandler);
+		value.addEventListener(RSLEvent.RSL_COMPLETE, rslCompleteHandler);
+		value.addEventListener(RSLEvent.RSL_ERROR, rslErrorHandler);
+
+		value.addEventListener(FlexEvent.INIT_PROGRESS, initProgressHandler);
+		value.addEventListener(FlexEvent.INIT_COMPLETE, initCompleteHandler);
+	}
+
+	//----------------------------------
+	//  stageHeight
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the stageHeight property.
+	 */
+	private var _stageHeight:Number = 375;
+
+	/**
+	 *  The height of the stage,
+	 *  which is passed in by the Preloader class.
+	 */
+	public function get stageHeight():Number
+	{
+		return _stageHeight;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set stageHeight(value:Number):void
+	{
+		_stageHeight = value;
+	}
+
+	//----------------------------------
+	//  stageWidth
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the stageHeight property.
+	 */
+	private var _stageWidth:Number = 500;
+
+	/**
+	 *  The width of the stage,
+	 *  which is passed in by the Preloader class.
+	 */
+	public function get stageWidth():Number
+	{
+		return _stageWidth;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set stageWidth(value:Number):void
+	{
+		_stageWidth = value;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  barFrameRect
+	//----------------------------------
+
+	/**
+	 *  The dimensions of the progress bar border.
+	 *  This is a read-only property which you must override
+	 *  if you need to change it.
+	 */
+	protected function get barFrameRect():RoundedRectangle
+	{
+		return new RoundedRectangle(14, 40, 154, 4);
+	}
+
+	//----------------------------------
+	//  barRect
+	//----------------------------------
+
+	/**
+	 *  The dimensions of the progress bar.
+	 *  This is a read-only property which you must override
+	 *  if you need to change it.
+	 */
+	protected function get barRect():RoundedRectangle
+	{
+		return new RoundedRectangle(14, 39, 154, 6, 0);
+	}
+
+	//----------------------------------
+	//  borderRect
+	//----------------------------------
+
+	/**
+	 *  The dimensions of the border of the display.
+	 *  This is a read-only property which you must override
+	 *  if you need to change it.
+	 */
+	protected function get borderRect():RoundedRectangle
+	{
+		return new RoundedRectangle(0, 0, 182, 60, 4);
+	}
+
+	//----------------------------------
+	//  downloadingLabel
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the downloadingLabel property.
+     */
+	private var _downloadingLabel:String = "Loading";
+
+	/**
+	 *  The string to display as the label while in the downloading phase.
+	 *
+	 *  @default "Loading"
+	 */
+	protected function get downloadingLabel():String
+	{
+		return _downloadingLabel;
+	}
+
+    /**
+	 *  @private
+     */
+	protected function set downloadingLabel(value:String):void
+	{
+		_downloadingLabel = value;
+	}
+
+	//----------------------------------
+  	//  initializingLabel
+  	//----------------------------------
+
+    /**
+  	 *  @private
+  	 *  Storage for the initializingLabel property.
+     */
+  	private static var _initializingLabel:String = "Initializing";
+
+  	/**
+  	 *  The string to display as the label while in the initializing phase.
+	 *
+	 *  @default "Initializing"
+  	 */
+  	public static function get initializingLabel():String
+  	{
+  		return _initializingLabel;
+  	}
+
+    /**
+  	 *  @private
+     */
+  	public static function set initializingLabel(value:String):void
+  	{
+  		_initializingLabel = value;
+  	}
+
+	//----------------------------------
+	//  label
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the label property.
+	 */
+	private var	_label:String = "";
+
+	/**
+	 *  Text to display when the progress bar is active.
+	 *  The Preloader class sets this value
+	 *  before displaying the progress bar.
+	 *  Implementing this property in a subclass is optional.
+	 *
+	 *  @default ""
+	 */
+	protected function get label():String
+	{
+		return _label;
+	}
+
+	/**
+	 *  @private
+	 */
+	protected function set label(value:String):void
+	{
+		if (!(value is Function))
+			_label = value;
+
+		draw();
+	}
+
+	//----------------------------------
+	//  labelFormat
+	//----------------------------------
+
+	/**
+	 *  The TextFormat object of the TextField component of the label.
+	 *  This is a read-only property which you must override
+	 *  if you need to change it.
+	 */
+	protected function get labelFormat():TextFormat
+	{
+		var tf:TextFormat = new TextFormat();
+		tf.color = 0x333333;
+		tf.font = "Verdana";
+		tf.size = 10;
+		return tf;
+	}
+
+	//----------------------------------
+	//  labelRect
+	//----------------------------------
+
+	/**
+	 *  The dimensions of the TextField component for the label.
+	 *  This is a read-only property which you must override
+	 *  if you need to change it.
+	 */
+	protected function get labelRect():Rectangle
+	{
+		return new Rectangle(14, 17, 100, 16);
+	}
+
+	//----------------------------------
+	//  percentFormat
+	//----------------------------------
+
+	/**
+	 *  The TextFormat of the TextField component for displaying the percent.
+	 *  This is a read-only property which you must override
+	 *  if you need to change it.
+	 */
+	protected function get percentFormat():TextFormat
+	{
+		var tf:TextFormat = new TextFormat();
+		tf.align = "right";
+		tf.color  = 0x000000;
+		tf.font = "Verdana";
+		tf.size = 10;
+		return tf;
+	}
+
+	//----------------------------------
+	//  percentRect
+	//----------------------------------
+
+	/**
+	 *  The dimensions of the TextField component for displaying the percent.
+	 *  This is a read-only property which you must override
+	 *  if you need to change it.
+	 */
+	protected function get percentRect():Rectangle
+	{
+		return new Rectangle(108, 4, 34, 16);
+	}
+
+	//----------------------------------
+	//  showLabel
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the showLabel property.
+	 */
+	private var _showLabel:Boolean = true;
+
+	/**
+	 *  Controls whether to display the label, true,
+	 *  or not, false.
+	 *
+	 *  @default true
+	 */
+	protected function get showLabel():Boolean
+	{
+		return _showLabel;
+	}
+
+	/**
+	 *  @private
+	 */
+	protected function set showLabel(value:Boolean):void
+	{
+		_showLabel = value;
+
+		draw();
+	}
+
+	//----------------------------------
+	//  showPercentage
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the showPercentage property.
+	 */
+	private var _showPercentage:Boolean = false;
+
+	/**
+	 *  Controls whether to display the percentage, true,
+	 *  or not, false.
+	 *
+	 *  @default true
+	 */
+	protected function get showPercentage():Boolean
+	{
+		return _showPercentage;
+	}
+
+	/**
+	 *  @private
+	 */
+	protected function set showPercentage(value:Boolean):void
+	{
+		_showPercentage = value;
+
+		draw();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods:IPreloaderDisplay
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Called by the Preloader after the download progress bar
+	 *  has been added as a child of the Preloader.
+	 *  This should be the starting point for configuring your download progress bar.
+	 */
+	public function initialize():void
+	{
+		_startTime = getTimer();
+
+		center(stageWidth, stageHeight);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Centers the download progress bar based on the passed in dimensions.
+	 *
+	 *  @param width The width of the area in which to center the download progress bar.
+	 *
+	 *  @param height The height of the area in which to center the download progress bar.
+	 */
+	protected function center(width:Number, height:Number):void
+	{
+		_xOffset = Math.floor((width - _borderRect.width) / 2);
+		_yOffset = Math.floor((height - _borderRect.height) / 2);
+	}
+
+	/**
+	 *  @private
+	 *  Updates the display.
+	 */
+	private function draw():void
+	{
+		var percentage:Number;
+
+		if (_startedLoading)
+		{
+			if (!_startedInit)
+			{
+				// 0 to MaxDL Percentage
+				percentage = Math.round(getPercentLoaded(_value, _maximum) *
+										DOWNLOAD_PERCENTAGE / 100);
+			}
+			else
+			{
+				// MaxDL percentage to 100
+				percentage = Math.round((getPercentLoaded(_value, _maximum) *
+										(100 - DOWNLOAD_PERCENTAGE) / 100) +
+										DOWNLOAD_PERCENTAGE);
+			}
+		}
+		else
+		{
+			percentage = getPercentLoaded(_value, _maximum);
+		}
+
+		if (_labelObj)
+			_labelObj.text = _label;
+
+		if (_percentObj)
+		{
+			if (!_showPercentage)
+			{
+				_percentObj.visible = false;
+				_percentObj.text = "";
+			}
+			else
+			{
+				_percentObj.text = String(percentage) + "%";
+			}
+		}
+
+		if (_barSprite && _barFrameSprite)
+		{
+			if (!_showProgressBar)
+			{
+				_barSprite.visible = false;
+				_barFrameSprite.visible = false;
+			}
+			else
+			{
+				drawProgressBar(percentage);
+			}
+		}
+	}
+
+	/**
+	 *  Creates the subcomponents of the display.
+	 */
+	protected function createChildren():void
+	{
+		var g:Graphics = graphics;
+
+		var labelObj:TextField;
+		var percentObj:TextField;
+
+		// Draw the background first
+		// Same value as StyleManager.NOT_A_COLOR. However, we don't want to bring in StyleManager at this point.
+		if (backgroundColor != 0xFFFFFFFF)
+		{
+			g.beginFill(backgroundColor, backgroundAlpha);
+			g.drawRect(0, 0, stageWidth, stageHeight);
+		}
+
+		if (backgroundImage != null)
+			loadBackgroundImage(backgroundImage);
+
+		_barFrameSprite = new Sprite();
+		_barSprite = new Sprite();
+
+		addChild(_barFrameSprite);
+		addChild(_barSprite);
+
+		// Draw the outside border and fill.
+		g.beginFill(0xCCCCCC, 0.4);
+		g.drawRoundRect(calcX(_borderRect.x),
+				 		calcY(_borderRect.y),
+				 		_borderRect.width,
+				 		_borderRect.height,
+				 		_borderRect.cornerRadius * 2,
+				 		_borderRect.cornerRadius * 2);
+		g.drawRoundRect(calcX(_borderRect.x + 1),
+					    calcY(_borderRect.y + 1),
+					 	_borderRect.width - 2,
+						_borderRect.height - 2,
+					 	_borderRect.cornerRadius - 1 * 2,
+					 	_borderRect.cornerRadius - 1 * 2);
+		g.endFill();
+
+		g.beginFill(0xCCCCCC,0.4);
+		g.drawRoundRect(calcX(_borderRect.x + 1),
+					 	calcY(_borderRect.y + 1),
+					 	_borderRect.width - 2,
+					 	_borderRect.height - 2,
+					 	_borderRect.cornerRadius - 1 * 2,
+					 	_borderRect.cornerRadius - 1 * 2);
+		g.endFill();
+
+		var frame_g:Graphics = _barFrameSprite.graphics;
+
+		// Draw the bar frame border and fill
+		var matrix:Matrix = new Matrix();
+		matrix.createGradientBox(_barFrameRect.width, _barFrameRect.height,
+								 Math.PI / 2, calcX(_barFrameRect.x), calcY(_barFrameRect.y));
+
+		frame_g.beginGradientFill(GradientType.LINEAR,
+								  [ 0x5C6266, 0xB5B8BA ],
+								  [ 1.0, 1.0 ],
+								  [ 0, 0xFF ],
+								  matrix);
+		frame_g.drawRoundRect(calcX(_barFrameRect.x),
+							  calcY(_barFrameRect.y),
+							  _barFrameRect.width,
+							  _barFrameRect.height,
+							  _barFrameRect.cornerRadius * 2,
+							  _barFrameRect.cornerRadius * 2);
+		frame_g.drawRoundRect(calcX(_barFrameRect.x + 1),
+							  calcY(_barFrameRect.y + 1),
+							  _barFrameRect.width - 2,
+							  _barFrameRect.height - 2,
+							  _barFrameRect.cornerRadius * 2,
+							  _barFrameRect.cornerRadius * 2);
+		frame_g.endFill();
+
+		// Attach the label TextField.
+		_labelObj = new TextField();
+		_labelObj.x = calcX(_labelRect.x);
+		_labelObj.y = calcY(_labelRect.y);
+		_labelObj.width = _labelRect.width;
+		_labelObj.height = _labelRect.height;
+		_labelObj.selectable = false;
+		_labelObj.defaultTextFormat = labelFormat;
+		addChild(_labelObj);
+
+		// Attach the percentage TextField.
+		_percentObj = new TextField();
+		_percentObj.x = calcX(_percentRect.x);
+		_percentObj.y = calcY(_percentRect.y);
+		_percentObj.width = _percentRect.width;
+		_percentObj.height = _percentRect.height;
+		_percentObj.selectable = false;
+		_percentObj.defaultTextFormat = percentFormat;
+		addChild(_percentObj);
+
+		// Create dropshadow
+		var ds:RectangularDropShadow = new RectangularDropShadow();
+		ds.color = 0x000000;
+		ds.angle = 90;
+		ds.alpha = .6;
+		ds.distance = 2;
+		ds.tlRadius = ds.trRadius = ds.blRadius = ds.brRadius = _borderRect.cornerRadius;
+		ds.drawShadow(g,
+					  calcX(_borderRect.x),
+				 	  calcY(_borderRect.y),
+					  _borderRect.width,
+					  _borderRect.height);
+
+		// Draw the top line
+		g.lineStyle(1,0xFFFFFF, .3);
+		g.moveTo(calcX(_borderRect.x) + _borderRect.cornerRadius, calcY(_borderRect.y));
+		g.lineTo(calcX(_borderRect.x) - _borderRect.cornerRadius + _borderRect.width, calcY(_borderRect.y));
+	}
+
+	/**
+	 *  @private
+	 *  Draws the progress bar.
+	 */
+	private function drawProgressBar(percentage:Number):void
+	{
+		var g:Graphics = _barSprite.graphics;
+		g.clear();
+
+		var colors:Array = [ 0xFFFFFF, 0xFFFFFF ];
+		var ratios:Array = [ 0, 0xFF ];
+		var matrix:Matrix = new Matrix();
+
+		// Middle
+		var barWidth:Number = _barRect.width * percentage / 100;
+		var barWidthSplit:Number = barWidth / 2;
+		var barHeight:Number = _barRect.height-4;
+		var barX:Number = calcX(_barRect.x);
+		var barY:Number = calcY(_barRect.y) + 2;
+		var barY2:Number;
+
+		matrix.createGradientBox(barWidthSplit, barHeight,
+								 0, barX, barY);
+		g.beginGradientFill(GradientType.LINEAR, colors, [ .39, .85],
+							ratios, matrix);
+
+		g.drawRect(barX, barY, barWidthSplit, barHeight);
+
+		matrix.createGradientBox(barWidthSplit, barHeight,
+								 0, barX + barWidthSplit, barY);
+		g.beginGradientFill(GradientType.LINEAR, colors, [.85, 1.0],
+							ratios, matrix);
+		g.drawRect(barX + barWidthSplit, barY, barWidthSplit, barHeight);
+
+		// Outer highlight
+		barWidthSplit = barWidth / 3;
+		barHeight = _barRect.height;
+		barY = calcY(_barRect.y);
+		barY2 = barY + barHeight - 1;
+
+		matrix.createGradientBox(barWidthSplit, barHeight,
+								 0, barX, barY);
+		g.beginGradientFill(GradientType.LINEAR, colors, [ .05, .15],
+							ratios, matrix);
+
+		g.drawRect(barX, barY, barWidthSplit, 1);
+		g.drawRect(barX, barY2, barWidthSplit, 1);
+
+		matrix.createGradientBox(barWidthSplit, barHeight,
+								 0, barX + barWidthSplit, barY);
+		g.beginGradientFill(GradientType.LINEAR, colors, [ .15, .25],
+							ratios, matrix);
+
+		g.drawRect(barX + barWidthSplit, barY, barWidthSplit, 1);
+		g.drawRect(barX + barWidthSplit, barY2, barWidthSplit, 1);
+
+		matrix.createGradientBox(barWidthSplit, barHeight,
+								 0, barX + barWidthSplit * 2, barY);
+		g.beginGradientFill(GradientType.LINEAR, colors, [ .25, .1],
+							ratios, matrix);
+
+		g.drawRect(barX + barWidthSplit * 2, barY, barWidthSplit, 1);
+		g.drawRect(barX + barWidthSplit * 2, barY2, barWidthSplit, 1);
+
+		// Inner highlight
+		barWidthSplit = barWidth / 3;
+		barHeight = _barRect.height;
+		barY = calcY(_barRect.y) + 1;
+		barY2 = calcY(_barRect.y) + barHeight - 2;
+
+		matrix.createGradientBox(barWidthSplit, barHeight,
+								 0, barX, barY);
+		g.beginGradientFill(GradientType.LINEAR, colors, [ .15, .30],
+							ratios, matrix);
+
+		g.drawRect(barX, barY, barWidthSplit, 1);
+		g.drawRect(barX, barY2, barWidthSplit, 1);
+
+		matrix.createGradientBox(barWidthSplit, barHeight,
+								 0, barX + barWidthSplit, barY);
+		g.beginGradientFill(GradientType.LINEAR, colors, [ .30, .40],
+							ratios, matrix);
+
+		g.drawRect(barX + barWidthSplit, barY, barWidthSplit, 1);
+		g.drawRect(barX + barWidthSplit, barY2, barWidthSplit, 1);
+
+		matrix.createGradientBox(barWidthSplit, barHeight,
+								 0, barX + barWidthSplit * 2, barY);
+		g.beginGradientFill(GradientType.LINEAR, colors, [ .40, .25],
+							ratios, matrix);
+
+		g.drawRect(barX + barWidthSplit * 2, barY, barWidthSplit, 1);
+		g.drawRect(barX + barWidthSplit * 2, barY2, barWidthSplit, 1);
+	}
+
+	/**
+	 *  Updates the display of the download progress bar
+	 *  with the current download information.
+	 *  A typical implementation divides the loaded value by the total value
+	 *  and displays a percentage.
+	 *  If you do not implement this method, you should create
+	 *  a progress bar that displays an animation to indicate to the user
+	 *  that a download is occurring.
+	 *
+	 *
The setProgress() method is only called
+     *  if the application is being downloaded from a remote server
+     *  and the application is not in the browser cache.

+     *
+	 *  @param completed Number of bytes of the application SWF file
+	 *  that have been downloaded.
+	 *
+	 *  @param total Size of the application SWF file in bytes.
+	 */
+	protected function setProgress(completed:Number, total:Number):void
+	{
+		if (!isNaN(completed) &&
+		   !isNaN(total) &&
+		   completed >= 0 &&
+		   total > 0)
+		{
+			_value = Number(completed);
+			_maximum = Number(total);
+			draw();
+		}
+	}
+
+	/**
+	 *  Returns the percentage value of the application loaded.
+     *
+	 *  @param loaded Number of bytes of the application SWF file
+	 *  that have been downloaded.
+	 *
+	 *  @param total Size of the application SWF file in bytes.
+	 *
+	 *  @return The percentage value of the loaded application.
+	 */
+	protected function getPercentLoaded(loaded:Number, total:Number):Number
+	{
+		var perc:Number;
+
+		if (loaded == 0 || total == 0 || isNaN(total) || isNaN(loaded))
+			return 0;
+		else
+		 	perc = 100 * loaded/total;
+
+		if (isNaN(perc) || perc <= 0)
+			return 0;
+		else if (perc > 99)
+			return 99;
+		else
+			return Math.round(perc);
+	}
+
+	/**
+	 *  @private
+	 *  Make the display class visible.
+	 */
+	private function show():void
+	{
+		_showingDisplay = true;
+		calcScale();
+		draw();
+		_displayTime = getTimer(); // Time when the display is shown.
+	}
+
+	/**
+	 *  @private
+	 */
+	private function hide():void
+	{
+	}
+
+	/**
+	 *  @private
+	 */
+	private function calcX(base:Number):Number
+	{
+		return base + _xOffset;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function calcY(base:Number):Number
+	{
+		return base + _yOffset;
+	}
+
+	/**
+	 *  @private
+	 *  Figure out the scale for the display class based on the stage size.
+	 *  Then creates the children subcomponents.
+	 */
+	private function calcScale():void
+	{
+		if (stageWidth < 160 || stageHeight < 120)
+		{
+			scaleX = 1.0;
+			scaleY = 1.0;
+		}
+		else if (stageWidth < 240 || stageHeight < 150)
+		{
+			// Scale to appropriate size
+			createChildren();
+			var scale:Number = Math.min(stageWidth / 240.0,
+										stageHeight / 150.0);
+			scaleX = scale;
+			scaleY = scale;
+		}
+		else
+		{
+			createChildren();
+		}
+	}
+
+	/**
+	 *  Defines the algorithm for determining whether to show
+	 *  the download progress bar while in the download phase.
+	 *
+	 *  @param elapsedTime number of milliseconds that have elapsed
+	 *  since the start of the download phase.
+	 *
+	 *  @param event The ProgressEvent object that contains
+	 *  the bytesLoaded and bytesTotal properties.
+	 *
+	 *  @return If the return value is true, then show the
+	 *  download progress bar.
+	 *  The default behavior is to show the download progress bar
+	 *  if more than 700 milliseconds have elapsed
+	 *  and if Flex has downloaded less than half of the bytes of the SWF file.
+	 */
+	protected function showDisplayForDownloading(elapsedTime:int,
+											  event:ProgressEvent):Boolean
+	{
+		return elapsedTime > 700 &&
+			event.bytesLoaded < event.bytesTotal / 2;
+	}
+
+	/**
+	 *  Defines the algorithm for determining whether to show the download progress bar
+	 *  while in the initialization phase, assuming that the display
+	 *  is not currently visible.
+	 *
+	 *  @param elapsedTime number of milliseconds that have elapsed
+	 *  since the start of the download phase.
+	 *
+	 *  @param count number of times that the initProgress event
+	 *  has been received from the application.
+	 *
+	 *  @return If true, then show the download progress bar.
+	 */
+	protected function showDisplayForInit(elapsedTime:int, count:int):Boolean
+	{
+		return elapsedTime > 300 && count == 2;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function loadBackgroundImage(classOrString:Object):void
+	{
+		var cls:Class;
+
+		// The "as" operator checks to see if classOrString
+		// can be coerced to a Class
+		if (classOrString && classOrString as Class)
+		{
+			// Load background image given a class pointer
+			cls = Class(classOrString);
+			initBackgroundImage(new cls());
+		}
+		else if (classOrString && classOrString is String)
+		{
+			try
+			{
+				cls = Class(getDefinitionByName(String(classOrString)));
+			}
+			catch(e:Error)
+			{
+				// ignore
+			}
+
+			if (cls)
+			{
+				var newStyleObj:DisplayObject = new cls();
+				initBackgroundImage(newStyleObj);
+			}
+			else
+			{
+				// Loading the image is slightly different
+				// than in Loader.loadContent()... is this on purpose?
+
+				// Load background image from external URL
+				var loader:Loader = new Loader();
+				loader.contentLoaderInfo.addEventListener(
+					Event.COMPLETE, loader_completeHandler);
+				loader.contentLoaderInfo.addEventListener(
+					IOErrorEvent.IO_ERROR, loader_ioErrorHandler);
+				var loaderContext:LoaderContext = new LoaderContext();
+				loaderContext.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain);
+				loader.load(new URLRequest(String(classOrString)), loaderContext);
+			}
+		}
+	}
+
+	/**
+	 *  @private
+	 */
+	private function initBackgroundImage(image:DisplayObject):void
+	{
+		addChildAt(image,0);
+
+		var backgroundImageWidth:Number = image.width;
+		var backgroundImageHeight:Number = image.height;
+
+		// Scale according to backgroundSize
+		var percentage:Number = calcBackgroundSize();
+		if (isNaN(percentage))
+		{
+			var sX:Number = 1.0;
+			var sY:Number = 1.0;
+		}
+		else
+		{
+			var scale:Number = percentage * 0.01;
+			sX = scale * stageWidth / backgroundImageWidth;
+			sY = scale * stageHeight / backgroundImageHeight;
+		}
+
+		image.scaleX = sX;
+		image.scaleY = sY;
+
+		// Center everything.
+		// Use a scrollRect to position and clip the image.
+		var offsetX:Number =
+			Math.round(0.5 * (stageWidth - backgroundImageWidth * sX));
+		var offsetY:Number =
+			Math.round(0.5 * (stageHeight - backgroundImageHeight * sY));
+
+		image.x = offsetX;
+		image.y = offsetY;
+
+		// Adjust alpha to match backgroundAlpha
+		if (!isNaN(backgroundAlpha))
+			image.alpha = backgroundAlpha;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function calcBackgroundSize():Number
+	{
+		var percentage:Number =	NaN;
+
+		if (backgroundSize)
+		{
+			var index:int = backgroundSize.indexOf("%");
+			if (index != -1)
+				percentage = Number(backgroundSize.substr(0, index));
+		}
+
+		return percentage;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event handlers
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Event listener for the ProgressEvent.PROGRESS event.
+	 *  This implementation updates the progress bar
+	 *  with the percentage of bytes downloaded.
+	 *
+	 *  @param event The event object.
+	 */
+	protected function progressHandler(event:ProgressEvent):void
+	{
+		var loaded:uint = event.bytesLoaded;
+		var total:uint = event.bytesTotal;
+
+		var elapsedTime:int = getTimer() - _startTime;
+
+		// Only show the Loading phase if it will appear for awhile.
+		if (_showingDisplay || showDisplayForDownloading(elapsedTime, event))
+		{
+			if (!_startedLoading)
+			{
+				show();
+				label = downloadingLabel;
+				_startedLoading = true;
+			}
+
+			setProgress(event.bytesLoaded, event.bytesTotal);
+		}
+	}
+
+	/**
+	 *  Event listener for the Event.COMPLETE event.
+	 *  The default implementation does nothing.
+	 *
+	 *  @param event The event object.
+	 */
+	protected function completeHandler(event:Event):void
+	{
+	}
+
+	/**
+	 *  Event listener for the RSLEvent.RSL_PROGRESS event.
+	 *  The default implementation does nothing.
+	 *
+	 *  @param event The event object.
+	 */
+	protected function rslProgressHandler(event:RSLEvent):void
+	{
+	}
+
+	/**
+	 *  Event listener for the RSLEvent.RSL_COMPLETE event.
+	 *
+	 *  @param event The event object.
+	 */
+	protected function rslCompleteHandler(event:RSLEvent):void
+	{
+		label = "Loaded library " + event.rslIndex + " of " + event.rslTotal;
+	}
+
+	/**
+	 *  Event listener for the RSLEvent.RSL_ERROR event.
+	 *  This event listner handles any errors detected when downloading an RSL.
+	 *
+	 *  @param event The event object.
+	 */
+	protected function rslErrorHandler(event:RSLEvent):void
+	{
+		_preloader.removeEventListener(ProgressEvent.PROGRESS,
+									   progressHandler);
+
+		_preloader.removeEventListener(Event.COMPLETE,
+									   completeHandler);
+
+		_preloader.removeEventListener(RSLEvent.RSL_PROGRESS,
+									   rslProgressHandler);
+
+		_preloader.removeEventListener(RSLEvent.RSL_COMPLETE,
+									   rslCompleteHandler);
+
+		_preloader.removeEventListener(RSLEvent.RSL_ERROR,
+									   rslErrorHandler);
+
+		_preloader.removeEventListener(FlexEvent.INIT_PROGRESS,
+									   initProgressHandler);
+
+		_preloader.removeEventListener(FlexEvent.INIT_COMPLETE,
+									   initCompleteHandler);
+
+		if (!_showingDisplay)
+		{
+			show();
+			_showingDisplay = true;
+		}
+
+		label = "RSL Error " + (event.rslIndex + 1) + " of " + event.rslTotal;
+
+		var errorField:ErrorField = new ErrorField(this.parent);
+		errorField.show(event.errorText);
+	}
+
+	/**
+	 *  @private
+	 *  Helper function that dispatches the Complete event to the preloader.
+	 *
+	 *  @param event The event object.
+	 */
+	private function timerHandler(event:Event = null):void
+	{
+		dispatchEvent(new Event(Event.COMPLETE));
+	}
+
+	/**
+	 *  Event listener for the FlexEvent.INIT_PROGRESS event.
+	 *  This implementation updates the progress bar
+	 *  each time the event is dispatched, and changes the text of the label.
+	 *
+	 *  @param event The event object.
+	 */
+	protected function initProgressHandler(event:Event):void
+	{
+		var elapsedTime:int = getTimer() - _startTime;
+		_initProgressCount++;
+
+		if (!_showingDisplay &&
+			showDisplayForInit(elapsedTime, _initProgressCount))
+		{
+			_displayStartCount = _initProgressCount;
+			show();
+		}
+		else if (_showingDisplay)
+		{
+			if (!_startedInit)
+			{
+				// First init progress event.
+				_startedInit = true;
+				label = initializingLabel;
+			}
+
+			var loaded:Number = 100 * _initProgressCount /
+								(_initProgressTotal - _displayStartCount);
+
+			setProgress(loaded, 100);
+		}
+	}
+
+	/**
+	 *  @private
+	 */
+	private function initCompleteHandler(event:Event):void
+	{
+		var elapsedTime:int = getTimer() - _displayTime;
+
+		if (_showingDisplay && elapsedTime < MINIMUM_DISPLAY_TIME)
+		{
+			var timer:Timer = new Timer(MINIMUM_DISPLAY_TIME - elapsedTime, 1);
+			timer.addEventListener(TimerEvent.TIMER, timerHandler);
+			timer.start();
+		}
+		else
+		{
+			timerHandler();
+		}
+	}
+
+	/**
+	 *  @private
+	 */
+	private function loader_completeHandler(event:Event):void
+	{
+		var target:DisplayObject = DisplayObject(LoaderInfo(event.target).loader);
+
+		initBackgroundImage(target);
+	}
+
+	private function loader_ioErrorHandler(event:IOErrorEvent):void
+	{
+		// Swallow the error
+	}
+
+}
+
+}
+
+import flash.display.DisplayObject;
+import flash.display.Sprite;
+import flash.text.TextField;
+import flash.text.TextFormat;
+import flash.system.Capabilities;
+import flash.text.TextFieldAutoSize;
+import flash.display.DisplayObjectContainer;
+import flash.display.Stage;
+
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+/**
+ * @private
+ *
+ * Area to display error messages to help debug startup problems.
+ *
+ */
+class ErrorField extends Sprite
+{
+    private var parentContainer:DisplayObjectContainer;
+    private const MIN_WIDTH_INCHES:int = 2;                    // min width of error message in inches
+    private const MAX_WIDTH_INCHES:int = 6;                    // max width of error message in inches
+    private const TEXT_MARGIN_PX:int = 10;
+
+
+ 	//----------------------------------
+	//  labelFormat
+	//----------------------------------
+
+	/**
+	 *  The TextFormat object of the TextField component of the label.
+	 *  This is a read-only property which you must override
+	 *  if you need to change it.
+	 */
+	protected function get labelFormat():TextFormat
+	{
+		var tf:TextFormat = new TextFormat();
+		tf.color = 0x000000;
+		tf.font = "Verdana";
+		tf.size = 10;
+		return tf;
+	}
+
+
+   /**
+   * @private
+   *
+   * @param - parent - parent of the error field.
+   */
+    public function ErrorField(parent:DisplayObjectContainer)
+    {
+    	super();
+        this.parentContainer = parent;
+    }
+
+
+    /**
+    * Create and show the error message.
+    *
+    * @param errorText - text for error message.
+    */
+    public function show(errorText:String):void
+    {
+    	if (errorText == null || errorText.length == 0)
+    		return;
+
+        var stage:Stage = parentContainer.stage;
+
+        // create the text field for the message and
+        // add it to the parent.
+        var textField:TextField = new TextField();
+
+        textField.autoSize = TextFieldAutoSize.LEFT;
+        textField.multiline = true;
+        textField.wordWrap = true;
+	    textField.background = true;
+     	textField.defaultTextFormat = labelFormat;
+        textField.text = errorText;
+
+        textField.width = Math.max(MIN_WIDTH_INCHES * Capabilities.screenDPI, stage.stageWidth - (TEXT_MARGIN_PX * 2));
+        textField.width = Math.min(MAX_WIDTH_INCHES * Capabilities.screenDPI, textField.width);
+        textField.y = Math.max(0, stage.stageHeight - TEXT_MARGIN_PX - textField.height);
+
+        // center field horizontally
+        textField.x = (stage.stageWidth - textField.width) / 2;
+
+        parentContainer.addChild(this);
+        this.addChild(textField);
+
+    }
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 11247
Author:   klin@adobe.com
Date:     2009-10-28T21:59:11.963883Z

Log Message:
-----------
Fix for https://bugs.adobe.com/jira/browse/SDK-23184.

Updated a bunch of Style metadata ASDocs to describe different defaults between the Halo and Spark themes. Also, fixed a few typos along the way.

defaults.css - rearranged a few styles to be in alphabetical order
Button.as - removed extra emphasizedSkin style metadata
Panel.as - added spark theme to borderAlpha metadata

QE notes: None
Doc notes: None
Bugs: SDK-23184
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/fl/video/NCManagerNative.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SkinStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PopUpMenuIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/PaddingStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/fl/video/NCManagerDynamicStream.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/FocusStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1268923 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as
@@ -58,7 +58,9 @@

 /**
  *  Text color of a component label.
- *  @default 0x0B333C
+ *
+ *  The default value for the Halo theme is 0x0B333C.
+ *  The default value for the Spark theme is 0x000000.
  *
  *  @langversion 3.0
  *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 9724
Author:   jszeto@adobe.com
Date:     2009-08-27T22:59:23.259654Z

Log Message:
-----------
Border checkin

The Border class provides a container class that can be styled with a border and a background fill or image. It has many of the same styles as HaloBorder and is used in a similar way to the Halo container classes such as Box and Canvas. Examples of styles that are supported are borderWeight, borderColor, backgroundColor, backgroundImage, cornerRadius and dropShadowVisible. The class also supports directly setting a fill or stroke instance.

Border consists of a component class and a skin class called BorderSkin. Border declares the available styles and the backgroundFill and borderStroke properties. It serves as a proxy for the styles and properties in BorderSkin. BorderSkin draws the border and background using these styles and properties. The Border class is not meant to be skinned by a different skin class. All of the style drawing logic is held in the BorderSkin class.

QE notes: None
Doc notes: ASDoc comments need review
Bugs: N/A
Reviewer: Glenn
Tests run: Added Border to checkintests
Is noteworthy for integration: Yes. Border is a new container.

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/tests/basicTests/spark/views/BorderTests.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Border.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/BorderSkin.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/BorderTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/BasicTests-config.xml</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1286123 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as
@@ -0,0 +1,270 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.skins.spark
+{
+
+import mx.graphics.BitmapFill;
+import mx.graphics.BitmapResizeMode;
+import mx.graphics.RectangularDropShadow;
+import mx.graphics.SolidColor;
+import mx.graphics.SolidColorStroke;
+import mx.states.SetProperty;
+import mx.states.State;
+
+import spark.components.Border;
+import spark.components.Group;
+import spark.components.supportClasses.Skin;
+import spark.primitives.Line;
+import spark.primitives.Path;
+import spark.primitives.Rect;
+
+[HostComponent("Border")]
+
+/**
+ *  The default skin class for a Spark Border container.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+public class BorderSkin extends Skin
+{
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+	public function BorderSkin()
+	{
+	    super();
+
+	    states = [
+            new State({name:"normal"}),
+            new State({name:"disabled",
+                overrides:[new SetProperty(this, "alpha", 0.5)]})
+        ];
+	}
+
+    /**
+     *  The required skin part for SkinnableContainer
+     */
+	[Bindable]
+	public var contentGroup:Group;
+
+	private var bgRect:Rect;
+    private var insetPath:Path;
+    private var rds:RectangularDropShadow;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+	override protected function createChildren():void
+	{
+	    super.createChildren();
+
+	    bgRect = new Rect();
+	    addElementAt(bgRect, 0);
+	    bgRect.left = bgRect.top = bgRect.right = bgRect.bottom = 0;
+
+        contentGroup = new Group();
+        addElement(contentGroup);
+
+        insetPath = new Path();
+        addElement(insetPath);
+	}
+
+
+    /**
+     *  @private
+     */
+	override protected function measure():void
+	{
+	    //super.measure();
+
+	    measuredWidth = contentGroup.measuredWidth;
+	    measuredHeight = contentGroup.measuredHeight;
+	    measuredMinWidth = contentGroup.measuredMinWidth;
+	    measuredMinHeight = contentGroup.measuredMinHeight;
+
+        var borderWeight:Number = getStyle("borderWeight");
+
+	    if (hostComponent && hostComponent.borderStroke)
+            borderWeight = hostComponent.borderStroke.weight;
+
+        if (borderWeight > 0)
+	    {
+	        var borderSize:int = borderWeight * 2;
+            measuredWidth += borderSize;
+            measuredHeight += borderSize;
+            measuredMinWidth += borderSize;
+            measuredMinHeight += borderSize;
+        }
+	}
+
+    /**
+     *  @private
+     */
+	override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void
+    {
+        graphics.clear();
+
+        var borderWeight:int = getStyle("borderWeight");
+        var borderStyle:String = getStyle("borderStyle");
+        var borderVisible:Boolean = getStyle("borderVisible");
+        var cornerRadius:Number = getStyle("cornerRadius");
+
+        if (hostComponent && hostComponent.borderStroke)
+        {
+            borderWeight = hostComponent.borderStroke.weight;
+        }
+
+        if (!borderVisible)
+            borderWeight = 0;
+
+        if (isNaN(borderWeight))
+            borderWeight = 1;
+
+
+        // position & size the content group
+        contentGroup.x = contentGroup.y = borderWeight;
+        contentGroup.width = unscaledWidth - borderWeight * 2;
+        contentGroup.height = unscaledHeight - borderWeight * 2;
+
+        // update the bgRect stroke/fill
+        if (hostComponent.borderStroke)
+        {
+            bgRect.stroke = hostComponent.borderStroke;
+        }
+        else if (!borderVisible)
+        {
+            bgRect.stroke = null;
+        }
+        else
+        {
+            var borderColor:Number = getStyle("borderColor");
+            var borderAlpha:Number = getStyle("borderAlpha");
+
+            if (!isNaN(borderColor))
+            {
+                if (isNaN(borderAlpha))
+                    borderAlpha = 1;
+                bgRect.stroke = new SolidColorStroke(borderColor, borderWeight, borderAlpha);
+            }
+        }
+
+        if (hostComponent.backgroundFill)
+        {
+            bgRect.fill = hostComponent.backgroundFill;
+        }
+        else
+        {
+            var bgImage:Object = getStyle("backgroundImage");
+
+            if (bgImage)
+            {
+                var bitmapFill:BitmapFill = new BitmapFill();
+
+                bitmapFill.source = bgImage;
+                bitmapFill.resizeMode = getStyle("backgroundImageResizeMode");
+
+                // Adjust the bitmap fill to account for the stroke thickness
+                //bitmapFill.x = contentGroup.x;
+                //bitmapFill.y = contentGroup.y;
+
+                bgRect.fill = bitmapFill;
+            }
+            else
+            {
+                var bkgdColor:Number = getStyle("backgroundColor");
+                var bkgdAlpha:Number = getStyle("backgroundAlpha");
+
+                if (isNaN(bkgdAlpha))
+                    bkgdAlpha = 1;
+
+                if (!isNaN(bkgdColor))
+                    bgRect.fill = new SolidColor(bkgdColor, bkgdAlpha);
+                else
+                    bgRect.fill = null;
+            }
+        }
+
+        // Draw the shadow for the inset style
+        if (borderStyle == "inset" && hostComponent.borderStroke == null)
+        {
+           /* insetLine.xFrom = borderWeight;
+            insetLine.xTo = unscaledWidth - borderWeight;
+            insetLine.y = borderWeight;
+            insetLine.stroke = new SolidColorStroke(0x000000, 1, .12);*/
+
+            // FIXME (jszeto) add special case for no corner radius
+
+            var bwcr:Number = borderWeight + cornerRadius;
+            var w_bt:Number = unscaledWidth - borderWeight;
+            var negCR:Number = -cornerRadius;
+            var path:String = "M " + borderWeight + " " + bwcr;
+            path += " q 0 " + negCR + " " + cornerRadius + " " + negCR;
+            path += " l " + (unscaledWidth - ((borderWeight + cornerRadius) * 2)) + " 0";
+            path += " q " + cornerRadius + " 0 " + cornerRadius + " " + cornerRadius;
+            insetPath.x = 0;
+            insetPath.y = 0;
+            insetPath.width = unscaledWidth - (borderWeight * 2);
+            insetPath.height = cornerRadius;
+            insetPath.data = path;
+            insetPath.stroke = new SolidColorStroke(0x000000, 1, .12);
+
+            //trace('path value',path);
+        }
+        else
+        {
+            insetPath.data = "";
+            insetPath.stroke = null;
+        }
+
+        bgRect.radiusX = bgRect.radiusY = cornerRadius;
+
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        if (getStyle("dropShadowVisible") == true)
+        {
+            if (!rds)
+                rds = new RectangularDropShadow();
+
+            rds.alpha = 0.4;
+            rds.angle = 90;
+            rds.color = 0x000000;
+            rds.distance = 5;
+            rds.tlRadius = rds.trRadius = rds.blRadius = rds.brRadius = cornerRadius + 1;
+
+            graphics.lineStyle();
+            rds.drawShadow(graphics, 0, 0, unscaledWidth, unscaledHeight);
+        }
+    }
+
+}
+}


added bitmap tooltip code to BitmapUtils

--- WeaveCore/src/weave/utils/BitmapUtils.as
+++ WeaveCore/src/weave/utils/BitmapUtils.as
@@ -18,14 +18,21 @@
 	import flash.display.BitmapData;
 	import flash.display.Graphics;
 	import flash.display.IBitmapDrawable;
+	import flash.display.Stage;
 	import flash.external.ExternalInterface;
 	import flash.geom.Matrix;
+	import flash.geom.Point;
 	import flash.utils.ByteArray;

+	import mx.core.BitmapAsset;
 	import mx.core.IFlexDisplayObject;
-	import mx.core.BitmapAsset;
+	import mx.core.UIComponent;
+	import mx.events.ToolTipEvent;
 	import mx.graphics.ImageSnapshot;
 	import mx.graphics.codec.PNGEncoder;
+
+	import spark.components.BorderContainer;
+	import spark.primitives.BitmapImage;

 	import weave.compiler.StandardLib;

@@ -238,5 +245,57 @@
 				base64data
 			);
 		}
+
+
+		public static function setBitmapDataToolTip(component:UIComponent, getBitmapData:Function):void
+		{
+			component.toolTip = ' ';
+			component.addEventListener(ToolTipEvent.TOOL_TIP_SHOWN, onToolTipShown);
+			component.addEventListener(ToolTipEvent.TOOL_TIP_HIDE, onToolTipHide);
+			function onToolTipShown(event:ToolTipEvent):void
+			{
+				var bitmapData:BitmapData = getBitmapData() as BitmapData;
+				if (bitmapData)
+				{
+					if (!staticBitmapBorder)
+					{
+						staticBitmapBorder = new BorderContainer();
+						staticBitmap = new BitmapImage();
+						staticBitmapBorder.addElement(staticBitmap);
+					}
+					staticBitmap.source = bitmapData;
+					staticBitmapBorder.x = 0;
+					staticBitmapBorder.y = 0;
+					staticBitmapBorder.width = bitmapData.width + 2;
+					staticBitmapBorder.height = bitmapData.height + 2;
+					(event.toolTip as UIComponent).addChild(staticBitmapBorder);
+
+					// reposition so it's on the screen
+					var p:Point = event.toolTip.localToGlobal(new Point(0, 0));
+					var stage:Stage = event.toolTip.stage as Stage;
+					var sw:Number = stage.stageWidth;
+					var sh:Number = stage.stageHeight;
+					if (p.x + bitmapData.width > sw)
+						p.x = stage.mouseX - bitmapData.width;
+					if (p.y + bitmapData.height > sh)
+						p.y = stage.mouseY - bitmapData.height;
+					p = event.toolTip.parent.globalToLocal(p);
+					event.toolTip.x = p.x;
+					event.toolTip.y = p.y;
+				}
+				else
+				{
+					event.toolTip.visible = false;
+				}
+			}
+			function onToolTipHide(event:ToolTipEvent):void
+			{
+				if ((event.toolTip as UIComponent).contains(staticBitmapBorder))
+					(event.toolTip as UIComponent).removeChild(staticBitmapBorder);
+			}
+		}
+
+		private static var staticBitmapBorder:BorderContainer;
+		private static var staticBitmap:BitmapImage;
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1251542 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/automation/src/mx/automation/delegates/core/UITextFieldAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/core/UITextFieldAutomationImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Fix internal version numbers

Fix internal version numbers

--- frameworks/projects/framework/src/mx/core/FlexVersion.as
+++ frameworks/projects/framework/src/mx/core/FlexVersion.as
@@ -56,7 +56,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public static const CURRENT_VERSION:uint = 0x04110000;
+    public static const CURRENT_VERSION:uint = 0x040B0000;

 	/**
 	 *  The compatibilityVersion value of Flex 4.11,
@@ -70,7 +70,7 @@
 	 *  @playerversion AIR 3
 	 *  @productversion Apache Flex 4.11
 	 */
-	public static const VERSION_4_11:uint = 0x04110000;
+	public static const VERSION_4_11:uint = 0x040B0000;

 	/**
 	 *  The compatibilityVersion value of Flex 4.10,
@@ -84,7 +84,7 @@
 	 *  @playerversion AIR 3
 	 *  @productversion Apache Flex 4.10
 	 */
-	public static const VERSION_4_10:uint = 0x04100000;
+	public static const VERSION_4_10:uint = 0x040A0000;

     /**
      *  The compatibilityVersion value of Flex 4.9,


Transferred from the Adobe Open Source Subversion Repository

Revision: 11482
Author:   dloverin@adobe.com
Date:     2009-11-05T23:53:32.642612Z

Log Message:
-----------
Fix RTE when UIComponent.getFocus() is called an the application is not on the stage.

projects/framework/src/mx/core/UIComponent.as
    Added null pointer check for sm.stage.

projects/framework/src/mx/controls/SWFLoader.as
    Prevent loading the same swf twice when loadCompatibility is set and then SWFLoader.load() was called.

QE notes: None.
Doc notes: None.
Bugs: SDK-24008
Reviewer: Alex
Tests run: checkintests, components/SWFLoader, MarshallPlan
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1259914 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -8945,8 +8945,11 @@

         if (UIComponentGlobals.nextFocusObject)
             return UIComponentGlobals.nextFocusObject;
-
-        return sm.stage.focus;
+
+        if (sm.stage)
+            return sm.stage.focus;
+
+        return null;
     }

     /**