Transferred from the Adobe Open Source Subversion Repository

Revision: 1098
Author:   jimurphy@adobe.com
Date:     2008-04-03T21:50:39.896200Z

Log Message:
-----------
Merge 3.0.x -- 362:394, 427:429, 603:608, 644:645, 651:663, 672:676, 755:756, 763:766, 785:790, 812:814, 854:861, 862:866, 866:933,971:1009, 1050:1056 --> trunk

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/treeClasses/DefaultDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IRepeaterClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/Locale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/SOAPMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IBrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ComponentDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IViewCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.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/managers/DragManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/IMenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.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/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ILayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Spacer.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/rpc/src/mx/rpc/Fault.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/XMLListCollection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SliderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ScrollEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/CuePointManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/NumericStepperEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/events/ChannelFaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/CursorBookmark.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.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/rpc/src/mx/rpc/soap/LoadEvent.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/rpc/src/mx/messaging/FlexClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/SubscriptionInfo.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/frameworks/projects/framework/src/mx/logging/LogLogger.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/HeaderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/build.xml</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/controls/dataGridClasses/DataGridDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/ITreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>

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

--- frameworks/projects/framework/src/mx/resources/Locale.as
+++ frameworks/projects/framework/src/mx/resources/Locale.as
@@ -62,6 +62,8 @@
      *  resources.

      *
      *  @param sm The current SystemManager.
+     *
+     *  @return Returns a Locale object.
      */
     public static function getCurrent(sm:ISystemManager):Locale
     {
@@ -146,7 +148,6 @@
     /**
      *  The language code of this Locale instance. [Read-Only]
      *
-     *  @example
      *

      *  var locale:Locale = new Locale("en_US_MAC");
      *  trace(locale.language); // outputs "en"
@@ -172,7 +173,6 @@
     /**
      *  The country code of this Locale instance. [Read-Only]
      *
-     *  @example
      *

      *  var locale:Locale = new Locale("en_US_MAC");
      *  trace(locale.country); // outputs "US"
@@ -198,7 +198,6 @@
     /**
      *  The variant part of this Locale instance. [Read-Only]
      *
-     *  @example
      *

      *  var locale:Locale = new Locale("en_US_MAC");
      *  trace(locale.variant); // outputs "MAC"
@@ -223,6 +222,9 @@
      *  var locale:Locale = new Locale("en_US_MAC");
      *  trace(locale.toString()); // outputs "en_US_MAC"
      *

+     *
+     *  @return Returns the locale String that was used to
+     *  construct this Locale instance.
      */
     public function toString():String
     {


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@1262959 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/utils/ObjectUtil.as
+++ frameworks/projects/framework/src/mx/utils/ObjectUtil.as
@@ -0,0 +1,1206 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-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.utils
+{
+
+import flash.utils.ByteArray;
+import flash.utils.Dictionary;
+import flash.utils.getQualifiedClassName;
+import flash.xml.XMLNode;
+
+import mx.collections.IList;
+
+/**
+ *  The ObjectUtil class is an all-static class with methods for
+ *  working with Objects within Flex.
+ *  You do not create instances of ObjectUtil;
+ *  instead you simply call static methods such as the
+ *  ObjectUtil.isSimple() method.
+ */
+public class ObjectUtil
+{
+    include "../core/Version.as";
+
+    /**
+    *  Array of properties to exclude from debugging output.
+    */
+    private static var defaultToStringExcludes:Array = ["password", "credentials"];
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Compares the Objects and returns an integer value
+     *  indicating if the first item is less than greater than or equal to
+     *  the second item.
+     *  This method will recursively compare properties on nested objects and
+     *  will return as soon as a non-zero result is found.
+     *  By default this method will recurse to the deepest level of any property.
+     *  To change the depth for comparison specify a non-negative value for
+     *  the depth parameter.
+     *
+     *  @param a Object.
+     *
+     *  @param b Object.
+     *
+     *  @param depth Indicates how many levels should be
+     *  recursed when performing the comparison.
+     *  Set this value to 0 for a shallow comparison of only the primitive
+     *  representation of each property.
+     *  For example:

+     *  var a:Object = {name:"Bob", info:[1,2,3]};
+     *  var b:Object = {name:"Alice", info:[5,6,7]};
+     *  var c:int = ObjectUtil.compare(a, b, 0);

+     *
+     *
In the above example the complex properties of a and
+     *  b will be flattened by a call to toString()
+     *  when doing the comparison.
+     *  In this case the info property will be turned into a string
+     *  when performing the comparison.

+     *
+     *  @return Return 0 if a and b are null, NaN, or equal.
+     *  Return 1 if a is null or greater than b.
+     *  Return -1 if b is null or greater than a.
+     */
+    public static function compare(a:Object, b:Object, depth:int = -1):int
+    {
+        return internalCompare(a, b, 0, depth, new Dictionary(true));
+    }
+
+    /**
+     *  Copies the specified Object and returns a reference to the copy.
+     *  The copy is made using a native serialization technique.
+     *  This means that custom serialization will be respected during the copy.
+     *
+     *
This method is designed for copying data objects,
+     *  such as elements of a collection. It is not intended for copying
+     *  a UIComponent object, such as a TextInput control. If you want to create copies
+     *  of specific UIComponent objects, you can create a subclass of the component and implement
+     *  a clone() method, or other method to perform the copy.

+     *
+     *  @param value Object that should be copied.
+     *
+     *  @return Copy of the specified Object.
+     */
+    public static function copy(value:Object):Object
+    {
+        var buffer:ByteArray = new ByteArray();
+        buffer.writeObject(value);
+        buffer.position = 0;
+        var result:Object = buffer.readObject();
+        return result;
+    }
+
+    /**
+     *  Returns true if the object reference specified
+     *  is a simple data type. The simple data types include the following:
+     *

+     *
String

+     *
Number

+     *
uint

+     *
int

+     *
Boolean

+     *
Date

+     *
Array

+     *

+     *
+     *  @param value Object inspected.
+     *
+     *  @return true if the object specified
+     *  is one of the types above; false otherwise.
+     */
+    public static function isSimple(value:Object):Boolean
+    {
+        var type:String = typeof(value);
+        switch (type)
+        {
+            case "number":
+            case "string":
+            case "boolean":
+            {
+                return true;
+            }
+
+            case "object":
+            {
+                return (value is Date) || (value is Array);
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     *  Compares two numeric values.
+     *
+     *  @param a First number.
+     *
+     *  @param b Second number.
+     *
+     *  @return 0 is both numbers are NaN.
+     *  1 if only a is a NaN.
+     *  -1 if only b is a NaN.
+     *  -1 if a is less than b.
+     *  1 if a is greater than b.
+     */
+    public static function numericCompare(a:Number, b:Number):int
+    {
+        if (isNaN(a) && isNaN(b))
+            return 0;
+
+        if (isNaN(a))
+            return 1;
+
+        if (isNaN(b))
+           return -1;
+
+        if (a  b)
+            return 1;
+
+        return 0;
+    }
+
+    /**
+     *  Compares two String values.
+     *
+     *  @param a First String value.
+     *
+     *  @param b Second String value.
+     *
+     *  @param caseInsensitive Specifies to perform a case insensitive compare,
+     *  true, or not, false.
+     *
+     *  @return 0 is both Strings are null.
+     *  1 if only a is null.
+     *  -1 if only b is null.
+     *  -1 if a precedes b.
+     *  1 if b precedes a.
+     */
+    public static function stringCompare(a:String, b:String,
+                                         caseInsensitive:Boolean = false):int
+    {
+        if (a == null && b == null)
+            return 0;
+
+        if (a == null)
+          return 1;
+
+        if (b == null)
+           return -1;
+
+        // Convert to lowercase if we are case insensitive.
+        if (caseInsensitive)
+        {
+            a = a.toLocaleLowerCase();
+            b = b.toLocaleLowerCase();
+        }
+
+        var result:int = a.localeCompare(b);
+
+        if (result < -1)
+            result = -1;
+        else if (result > 1)
+            result = 1;
+
+        return result;
+    }
+
+    /**
+     *  Compares the two Date objects and returns an integer value
+     *  indicating if the first Date object is before, equal to,
+     *  or after the second item.
+     *
+     *  @param a Date object.
+     *
+     *  @param b Date object.
+     *
+     *  @return 0 if a and b
+     *  are null or equal;
+     *  1 if a is null
+     *  or before b;
+     *  -1 if b is null
+     *  or before a.
+     */
+    public static function dateCompare(a:Date, b:Date):int
+    {
+        if (a == null && b == null)
+            return 0;
+
+        if (a == null)
+          return 1;
+
+        if (b == null)
+           return -1;
+
+        var na:Number = a.getTime();
+        var nb:Number = b.getTime();
+
+        if (na < nb)
+            return -1;
+
+        if (na > nb)
+            return 1;
+
+        return 0;
+    }
+
+    /**
+     *  Pretty-prints the specified Object into a String.
+     *  All properties will be in alpha ordering.
+     *  Each object will be assigned an id during printing;
+     *  this value will be displayed next to the object type token
+     *  preceded by a '#', for example:
+     *
+     *

+     *  (mx.messaging.messages::AsyncMessage)#2.

+     *
+     *
This id is used to indicate when a circular reference occurs.
+     *  Properties of an object that are of the Class type will
+     *  appear only as the assigned type.
+     *  For example a custom definition like the following:

+     *
+     *

+     *    public class MyCustomClass {
+     *      public var clazz:Class;
+     *    }

+     *
+     *
With the clazz property assigned to Date
+     *  will display as shown below:

+     *
+     *

+     *   (somepackage::MyCustomClass)#0
+     *      clazz = (Date)

+     *
+     *  @param obj Object to be pretty printed.
+     *
+     *  @param namespaceURIs Array of namespace URIs for properties
+     *  that should be included in the output.
+     *  By default only properties in the public namespace will be included in
+     *  the output.
+     *  To get all properties regardless of namespace pass an array with a
+     *  single element of "*".
+     *
+     *  @param exclude Array of the property names that should be
+     *  excluded from the output.
+     *  Use this to remove data from the formatted string.
+     *
+     *  @return String containing the formatted version
+     *  of the specified object.
+     *
+     *  @example
+     *

+     *  // example 1
+     *  var obj:AsyncMessage = new AsyncMessage();
+     *  obj.body = [];
+     *  obj.body.push(new AsyncMessage());
+     *  obj.headers["1"] = { name: "myName", num: 15.3};
+     *  obj.headers["2"] = { name: "myName", num: 15.3};
+     *  obj.headers["10"] = { name: "myName", num: 15.3};
+     *  obj.headers["11"] = { name: "myName", num: 15.3};
+     *  trace(ObjectUtil.toString(obj));
+     *
+     *  // will output to flashlog.txt
+     *  (mx.messaging.messages::AsyncMessage)#0
+     *    body = (Array)#1
+     *      [0] (mx.messaging.messages::AsyncMessage)#2
+     *        body = (Object)#3
+     *        clientId = (Null)
+     *        correlationId = ""
+     *        destination = ""
+     *        headers = (Object)#4
+     *        messageId = "378CE96A-68DB-BC1B-BCF7FFFFFFFFB525"
+     *        sequenceId = (Null)
+     *        sequencePosition = 0
+     *        sequenceSize = 0
+     *        timeToLive = 0
+     *        timestamp = 0
+     *    clientId = (Null)
+     *    correlationId = ""
+     *    destination = ""
+     *    headers = (Object)#5
+     *      1 = (Object)#6
+     *        name = "myName"
+     *        num = 15.3
+     *      10 = (Object)#7
+     *        name = "myName"
+     *        num = 15.3
+     *      11 = (Object)#8
+     *        name = "myName"
+     *        num = 15.3
+     *      2 = (Object)#9
+     *        name = "myName"
+     *        num = 15.3
+     *    messageId = "1D3E6E96-AC2D-BD11-6A39FFFFFFFF517E"
+     *    sequenceId = (Null)
+     *    sequencePosition = 0
+     *    sequenceSize = 0
+     *    timeToLive = 0
+     *    timestamp = 0
+     *
+     *  // example 2 with circular references
+     *  obj = {};
+     *  obj.prop1 = new Date();
+     *  obj.prop2 = [];
+     *  obj.prop2.push(15.2);
+     *  obj.prop2.push("testing");
+     *  obj.prop2.push(true);
+     *  obj.prop3 = {};
+     *  obj.prop3.circular = obj;
+     *  obj.prop3.deeper = new ErrorMessage();
+     *  obj.prop3.deeper.rootCause = obj.prop3.deeper;
+     *  obj.prop3.deeper2 = {};
+     *  obj.prop3.deeper2.deeperStill = {};
+     *  obj.prop3.deeper2.deeperStill.yetDeeper = obj;
+     *  trace(ObjectUtil.toString(obj));
+     *
+     *  // will output to flashlog.txt
+     *  (Object)#0
+     *    prop1 = Tue Apr 26 13:59:17 GMT-0700 2005
+     *    prop2 = (Array)#1
+     *      [0] 15.2
+     *      [1] "testing"
+     *      [2] true
+     *    prop3 = (Object)#2
+     *      circular = (Object)#0
+     *      deeper = (mx.messaging.messages::ErrorMessage)#3
+     *        body = (Object)#4
+     *        clientId = (Null)
+     *        code = (Null)
+     *        correlationId = ""
+     *        destination = ""
+     *        details = (Null)
+     *        headers = (Object)#5
+     *        level = (Null)
+     *        message = (Null)
+     *        messageId = "14039376-2BBA-0D0E-22A3FFFFFFFF140A"
+     *        rootCause = (mx.messaging.messages::ErrorMessage)#3
+     *        sequenceId = (Null)
+     *        sequencePosition = 0
+     *        sequenceSize = 0
+     *        timeToLive = 0
+     *        timestamp = 0
+     *      deeper2 = (Object)#6
+     *        deeperStill = (Object)#7
+     *          yetDeeper = (Object)#0
+     *

+     *
+     */
+    public static function toString(value:Object,
+                                    namespaceURIs:Array = null,
+                                    exclude:Array = null):String
+    {
+        if (exclude == null)
+        {
+            exclude = defaultToStringExcludes;
+        }
+
+        refCount = 0;
+        return internalToString(value, 0, null, namespaceURIs, exclude);
+    }
+
+    /**
+     *  This method cleans up all of the additional parameters that show up in AsDoc
+     *  code hinting tools that developers shouldn't ever see.
+     *  @private
+     */
+    private static function internalToString(value:Object,
+                                             indent:int = 0,
+                                             refs:Dictionary= null,
+                                             namespaceURIs:Array = null,
+                                             exclude:Array = null):String
+    {
+        var str:String;
+        var type:String = value == null ? "null" : typeof(value);
+        switch (type)
+        {
+            case "boolean":
+            case "number":
+            {
+                return value.toString();
+            }
+
+            case "string":
+            {
+                return "\"" + value.toString() + "\"";
+            }
+
+            case "object":
+            {
+                if (value is Date)
+                {
+                    return value.toString();
+                }
+                else if (value is XMLNode)
+                {
+                    return value.toString();
+                }
+                else if (value is Class)
+                {
+                    return "(" + getQualifiedClassName(value) + ")";
+                }
+                else
+                {
+                    var classInfo:Object = getClassInfo(value, exclude,
+                        { includeReadOnly: true, uris: namespaceURIs });
+
+                    var properties:Array = classInfo.properties;
+
+                    str = "(" + classInfo.name + ")";
+
+                    // refs help us avoid circular reference infinite recursion.
+                    // Each time an object is encoumtered it is pushed onto the
+                    // refs stack so that we can determine if we have visited
+                    // this object already.
+                    if (refs == null)
+                        refs = new Dictionary(true);
+
+                    // Check to be sure we haven't processed this object before
+                    var id:Object = refs[value];
+                    if (id != null)
+                    {
+                        str += "#" + int(id);
+                        return str;
+                    }
+
+                    if (value != null)
+                    {
+                        str += "#" + refCount.toString();
+                        refs[value] = refCount;
+                        refCount++;
+                    }
+
+                    var isArray:Boolean = value is Array;
+                    var prop:*;
+                    indent += 2;
+
+                    // Print all of the variable values.
+                    for (var j:int = 0; j < properties.length; j++)
+                    {
+                        str = newline(str, indent);
+                        prop = properties[j];
+                        if (isArray)
+                            str += "[";
+                        str += prop.toString();
+                        if (isArray)
+                            str += "] ";
+                        else
+                            str += " = ";
+                        try
+                        {
+                            str += internalToString(
+                                        value[prop], indent, refs, namespaceURIs,
+                                        exclude);
+                        }
+                        catch(e:Error)
+                        {
+                            // value[prop] can cause an RTE
+                            // for certain properties of certain objects.
+                            // For example, accessing the properties
+                            //   actionScriptVersion
+                            //   childAllowsParent
+                            //   frameRate
+                            //   height
+                            //   loader
+                            //   parentAllowsChild
+                            //   sameDomain
+                            //   swfVersion
+                            //   width
+                            // of a Stage's loaderInfo causes
+                            //   Error #2099: The loading object is not
+                            //   sufficiently loaded to provide this information
+                            // In this case, we simply output ? for the value.
+                            str += "?";
+                        }
+                    }
+                    indent -= 2;
+                    return str;
+                }
+                break;
+            }
+
+            case "xml":
+            {
+                return value.toString();
+            }
+
+            default:
+            {
+                return "(" + type + ")";
+            }
+        }
+
+        return "(unknown)";
+    }
+
+    /**
+     *  @private
+     *  This method will append a newline and the specified number of spaces
+     *  to the given string.
+     */
+    private static function newline(str:String, n:int = 0):String
+    {
+        var result:String = str;
+        result += "\n";
+
+        for (var i:int = 0; i < n; i++)
+        {
+            result += " ";
+        }
+        return result;
+    }
+
+    private static function internalCompare(a:Object, b:Object,
+                                            currentDepth:int, desiredDepth:int,
+                                            refs:Dictionary):int
+    {
+        if (a == null && b == null)
+            return 0;
+
+        if (a == null)
+            return 1;
+
+        if (b == null)
+            return -1;
+
+        if (a is ObjectProxy)
+            a = ObjectProxy(a).object_proxy::object;
+
+        if (b is ObjectProxy)
+            b = ObjectProxy(b).object_proxy::object;
+
+        var typeOfA:String = typeof(a);
+        var typeOfB:String = typeof(b);
+
+        var result:int = 0;
+
+        if (typeOfA == typeOfB)
+        {
+            switch(typeOfA)
+            {
+                case "boolean":
+                {
+                    result = numericCompare(Number(a), Number(b));
+                    break;
+                }
+
+                case "number":
+                {
+                    result = numericCompare(a as Number, b as Number);
+                    break;
+                }
+
+                case "string":
+                {
+                    result = stringCompare(a as String, b as String);
+                    break;
+                }
+
+                case "object":
+                {
+                    var newDepth:int = desiredDepth > 0 ? desiredDepth -1 : desiredDepth;
+                    // refs help us avoid circular reference infinite recursion.
+                    // Each time an object is encoumtered it is pushed onto the
+                    // refs stack so that we can determine if we have visited
+                    // this object already.
+                    // Here since we are comparing two objects we can short
+                    // circuit at the first encounter but have to exhaust all
+                    // references found.  A visited reference makes an object
+                    // "greater" than another object, only if both objects
+                    // have a visited reference will the result be 0
+                    var aRef:Boolean = refs[a];
+                    var bRef:Boolean = refs[b];
+
+                    if (aRef && !bRef)
+                        return 1;
+                    else if (bRef && !aRef)
+                        return -1;
+                    else if (bRef && aRef)
+                        return 0;
+
+                    refs[a] = true;
+                    refs[b] = true;
+
+                    if (desiredDepth != -1 && (currentDepth > desiredDepth))
+                    {
+                        // once we try to go beyond the desired depth we should
+                        // toString() our way out
+                        result = stringCompare(a.toString(), b.toString());
+                    }
+                    else if ((a is Array) && (b is Array))
+                    {
+                        result = arrayCompare(a as Array, b as Array, currentDepth, desiredDepth, refs);
+                    }
+                    else if ((a is Date) && (b is Date))
+                    {
+                        result = dateCompare(a as Date, b as Date);
+                    }
+                    else if ((a is IList) && (b is IList))
+                    {
+                        result = listCompare(a as IList, b as IList, currentDepth, desiredDepth, refs);
+                    }
+                    else if ((a is ByteArray) && (b is ByteArray))
+                    {
+                        result = byteArrayCompare(a as ByteArray, b as ByteArray);
+                    }
+                    else if (getQualifiedClassName(a) == getQualifiedClassName(b))
+                    {
+                        var aProps:Array = getClassInfo(a).properties;
+                        var bProps:Array;
+
+                        // if the objects are anonymous they could have different
+                        // # of properties and should be treated on that basis first
+                        if (getQualifiedClassName(a) == "Object")
+                        {
+                            bProps = getClassInfo(b).properties;
+                            result = arrayCompare(aProps, bProps, currentDepth, newDepth, refs);
+                        }
+
+                        if (result != 0)
+                        {
+                            return result;
+                        }
+
+                        // loop through all of the properties and compare
+                        var propName:QName;
+                        var aProp:Object;
+                        var bProp:Object;
+                        for (var i:int = 0; i < aProps.length; i++)
+                        {
+                            propName = aProps[i];
+                            aProp = a[propName];
+                            bProp = b[propName];
+                            result = internalCompare(aProp, bProp, currentDepth+1, newDepth, refs);
+                            if (result != 0)
+                            {
+                                i = aProps.length;
+                            }
+                        }
+                    }
+                    else
+                    {
+                        // We must be inequal, so return 1
+                        return 1;
+                    }
+                    break;
+                }
+            }
+        }
+        else // be consistent with the order we return here
+        {
+            return stringCompare(typeOfA, typeOfB);
+        }
+
+        return result;
+    }
+
+    /**
+     *  Returns information about the class, and properties of the class, for
+     *  the specified Object.
+     *
+     *  @param obj The Object to inspect.
+     *
+     *  @param exclude Array of Strings specifying the property names that should be
+     *  excluded from the returned result. For example, you could specify
+     *  ["currentTarget", "target"] for an Event object since these properties
+     *  can cause the returned result to become large.
+     *
+     *  @param options An Object containing one or more properties
+     *  that control the information returned by this method.
+     *  The properties include the following:
+     *
+     *

+     *
includeReadOnly: If false,
+     *      exclude Object properties that are read-only.
+     *      The default value is true.

+     *
includeTransient: If false,
+     *      exclude Object properties and variables that have [Transient] metadata.
+     *      The default value is true.

+     *
uris: Array of Strings of all namespaces that should be included in the output.
+     *      It does allow for a wildcard of "~~".
+     *      By default, it is null, meaning no namespaces should be included.
+     *      For example, you could specify ["mx_internal", "mx_object"]
+     *      or ["~~"].

+     *

+     *
+     *  @return An Object containing the following properties:
+     *

+     *
name: String containing the name of the class;

+     *
properties: Sorted list of the property names of the specified object.

+     *

+    */
+    public static function getClassInfo(obj:Object,
+                                        excludes:Array = null,
+                                        options:Object = null):Object
+    {
+        var n:int;
+        var i:int;
+
+        if (obj is ObjectProxy)
+            obj = ObjectProxy(obj).object_proxy::object;
+
+        if (options == null)
+            options = { includeReadOnly: true, uris: null, includeTransient: true };
+
+        var result:Object;
+        var propertyNames:Array = [];
+        var cacheKey:String;
+
+        var className:String;
+        var classAlias:String;
+        var properties:XMLList;
+        var prop:XML;
+        var dynamic:Boolean = false;
+        var metadataInfo:Object;
+
+        if (typeof(obj) == "xml")
+        {
+            className = "XML";
+            properties = obj.text();
+            if (properties.length())
+                propertyNames.push("*");
+            properties = obj.attributes();
+        }
+        else
+        {
+            var classInfo:XML = DescribeTypeCache.describeType(obj).typeDescription;
+            className = classInfo.@name.toString();
+            classAlias = classInfo.@alias.toString();
+            dynamic = (classInfo.@isDynamic.toString() == "true");
+
+            if (options.includeReadOnly)
+                properties = classInfo..accessor.(@access != "writeonly") + classInfo..variable;
+            else
+                properties = classInfo..accessor.(@access == "readwrite") + classInfo..variable;
+
+            var numericIndex:Boolean = false;
+        }
+
+        // If type is not dynamic, check our cache for class info...
+        if (!dynamic)
+        {
+            cacheKey = getCacheKey(obj, excludes, options);
+            result = CLASS_INFO_CACHE[cacheKey];
+            if (result != null)
+                return result;
+        }
+
+        result = {};
+        result["name"] = className;
+        result["alias"] = classAlias;
+        result["properties"] = propertyNames;
+        result["dynamic"] = dynamic;
+        result["metadata"] = metadataInfo = recordMetadata(properties);
+
+        var excludeObject:Object = {};
+        if (excludes)
+        {
+            n = excludes.length;
+            for (i = 0; i < n; i++)
+            {
+                excludeObject[excludes[i]] = 1;
+            }
+        }
+
+        var isArray:Boolean = className == "Array";
+        if (dynamic)
+        {
+            for (var p:String in obj)
+            {
+                if (excludeObject[p] != 1)
+                {
+                    if (isArray)
+                    {
+                         var pi:Number = parseInt(p);
+                         if (isNaN(pi))
+                             propertyNames.push(new QName("", p));
+                         else
+                            propertyNames.push(pi);
+                    }
+                    else
+                    {
+                        propertyNames.push(new QName("", p));
+                    }
+                }
+            }
+            numericIndex = isArray && !isNaN(Number(p));
+        }
+
+        if (className == "Object" || isArray)
+        {
+            // Do nothing since we've already got the dynamic members
+        }
+        else if (className == "XML")
+        {
+            n = properties.length();
+            for (i = 0; i < n; i++)
+            {
+                p = properties[i].name();
+                if (excludeObject[p] != 1)
+                    propertyNames.push(new QName("", "@" + p));
+            }
+        }
+        else
+        {
+            n = properties.length();
+            var uris:Array = options.uris;
+            var uri:String;
+            var qName:QName;
+            for (i = 0; i < n; i++)
+            {
+                prop = properties[i];
+                p = prop.@name.toString();
+                uri = prop.@uri.toString();
+
+                if (excludeObject[p] == 1)
+                    continue;
+
+                if (!options.includeTransient && internalHasMetadata(metadataInfo, p, "Transient"))
+                    continue;
+
+                if (uris != null)
+                {
+                    if (uris.length == 1 && uris[0] == "*")
+                    {
+                        qName = new QName(uri, p);
+                        try
+                        {
+                            obj[qName]; // access the property to ensure it is supported
+                            propertyNames.push();
+                        }
+                        catch(e:Error)
+                        {
+                            // don't keep property name
+                        }
+                    }
+                    else
+                    {
+                        for (var j:int = 0; j < uris.length; j++)
+                        {
+                            uri = uris[j];
+                            if (prop.@uri.toString() == uri)
+                            {
+                                qName = new QName(uri, p);
+                                try
+                                {
+                                    obj[qName];
+                                    propertyNames.push(qName);
+                                }
+                                catch(e:Error)
+                                {
+                                    // don't keep property name
+                                }
+                            }
+                        }
+                    }
+                }
+                else if (uri.length == 0)
+                {
+                    qName = new QName(uri, p);
+                    try
+                    {
+                        obj[qName];
+                        propertyNames.push(qName);
+                    }
+                    catch(e:Error)
+                    {
+                        // don't keep property name
+                    }
+                }
+            }
+        }
+
+        propertyNames.sort(Array.CASEINSENSITIVE |
+                           (numericIndex ? Array.NUMERIC : 0));
+        // remove any duplicates, i.e. any items that can't be distingushed by toString()
+        for (i = 0; i < propertyNames.length - 1; i++)
+        {
+            // the list is sorted so any duplicates should be adjacent
+            // two properties are only equal if both the uri and local name are identical
+            if (propertyNames[i].toString() == propertyNames[i + 1].toString())
+            {
+                propertyNames.splice(i, 1);
+                i--; // back up
+            }
+        }
+
+        // For normal, non-dynamic classes we cache the class info
+        if (!dynamic)
+        {
+            cacheKey = getCacheKey(obj, excludes, options);
+            CLASS_INFO_CACHE[cacheKey] = result;
+        }
+
+        return result;
+    }
+
+    /**
+     * Uses getClassInfo and examines the metadata information to
+     * determine whether a property on a given object has the specified
+     * metadata.
+     *
+     * @param obj The object holding the property.
+     * @param propName The property to check for metadata.
+     * @param metadataName The name of the metadata to check on the property.
+     * @param excludes If any properties need to be excluded when generating class info. (Optional)
+     * @param options If any options flags need to changed when generating class info. (Optional)
+     * @return true if the property has the specified metadata.
+     */
+    public static function hasMetadata(obj:Object,
+                propName:String,
+                metadataName:String,
+                excludes:Array = null,
+                options:Object = null):Boolean
+    {
+        var classInfo:Object = getClassInfo(obj, excludes, options);
+        var metadataInfo:Object = classInfo["metadata"];
+        return internalHasMetadata(metadataInfo, propName, metadataName);
+    }
+
+    /**
+     *  @private
+     */
+    private static function internalHasMetadata(metadataInfo:Object, propName:String, metadataName:String):Boolean
+    {
+        if (metadataInfo != null)
+        {
+            var metadata:Object = metadataInfo[propName];
+            if (metadata != null)
+            {
+                if (metadata[metadataName] != null)
+                    return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     *  @private
+     */
+    private static function recordMetadata(properties:XMLList):Object
+    {
+        var result:Object = null;
+
+        try
+        {
+            for each (var prop:XML in properties)
+            {
+                var propName:String = prop.attribute("name").toString();
+                var metadataList:XMLList = prop.metadata;
+
+                if (metadataList.length() > 0)
+                {
+                    if (result == null)
+                        result = {};
+
+                    var metadata:Object = {};
+                    result[propName] = metadata;
+
+                    for each (var md:XML in metadataList)
+                    {
+                        var mdName:String = md.attribute("name").toString();
+
+                        var argsList:XMLList = md.arg;
+                        var value:Object = {};
+
+                        for each (var arg:XML in argsList)
+                        {
+                            var argKey:String = arg.attribute("key").toString();
+                            if (argKey != null)
+                            {
+                                var argValue:String = arg.attribute("value").toString();
+                                value[argKey] = argValue;
+                            }
+                        }
+
+                        var existing:Object = metadata[mdName];
+                        if (existing != null)
+                        {
+                            var existingArray:Array;
+                            if (existing is Array)
+                                existingArray = existing as Array;
+                            else
+                                existingArray = [];
+                            existingArray.push(value);
+                            existing = existingArray;
+                        }
+                        else
+                        {
+                            existing = value;
+                        }
+                        metadata[mdName] = existing;
+                    }
+                }
+            }
+        }
+        catch(e:Error)
+        {
+        }
+
+        return result;
+    }
+
+
+    /**
+     *  @private
+     */
+    private static function getCacheKey(o:Object, excludes:Array = null, options:Object = null):String
+    {
+        var key:String = getQualifiedClassName(o);
+
+        if (excludes != null)
+        {
+            for (var i:uint = 0; i < excludes.length; i++)
+            {
+                var excl:String = excludes[i] as String;
+                if (excl != null)
+                    key += excl;
+            }
+        }
+
+        if (options != null)
+        {
+            for (var flag:String in options)
+            {
+                key += flag;
+                var value:String = options[flag] as String;
+                if (value != null)
+                    key += value;
+            }
+        }
+        return key;
+    }
+
+    /**
+     *  @private
+     */
+    private static function arrayCompare(a:Array, b:Array,
+                                         currentDepth:int, desiredDepth:int,
+                                         refs:Dictionary):int
+    {
+        var result:int = 0;
+
+        if (a.length != b.length)
+        {
+            if (a.length < b.length)
+                result = -1;
+            else
+                result = 1;
+        }
+        else
+        {
+            var key:Object;
+            for (key in a)
+            {
+                if (b.hasOwnProperty(key))
+                {
+                    result = internalCompare(a[key], b[key], currentDepth,
+                                         desiredDepth, refs);
+
+                    if (result != 0)
+                        return result;
+                }
+                else
+                {
+                    return -1;
+                }
+            }
+
+            for (key in b)
+            {
+                if (!a.hasOwnProperty(key))
+                {
+                    return 1;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     * @private
+     */
+    private static function byteArrayCompare(a:ByteArray, b:ByteArray):int
+    {
+        var result:int = 0;
+        if (a.length != b.length)
+        {
+            if (a.length < b.length)
+                result = -1;
+            else
+                result = 1;
+        }
+        else
+        {
+            a.position = 0;
+            b.position = 0;
+            for (var i:int = 0; i < a.length; i++)
+            {
+                result = numericCompare(a.readByte(), b.readByte());
+                if (result != 0)
+                {
+                    i = a.length;
+                }
+            }
+        }
+        return result;
+    }
+
+    /**
+     *  @private
+     */
+    private static function listCompare(a:IList, b:IList, currentDepth:int,
+                                        desiredDepth:int, refs:Dictionary):int
+    {
+        var result:int = 0;
+
+        if (a.length != b.length)
+        {
+            if (a.length < b.length)
+                result = -1;
+            else
+                result = 1;
+        }
+        else
+        {
+            for (var i:int = 0; i < a.length; i++)
+            {
+                result = internalCompare(a.getItemAt(i), b.getItemAt(i),
+                                         currentDepth+1, desiredDepth, refs);
+                if (result != 0)
+                {
+                    i = a.length;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     * @private
+     */
+    private static var refCount:int = 0;
+
+    /**
+     * @private
+     */
+    private static var CLASS_INFO_CACHE:Object = {};
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 1326
Author:   jimurphy@adobe.com
Date:     2008-04-21T17:53:00.157931Z

Log Message:
-----------
Merge 3.0.x[1303,1305] -> trunk

3.0.x Logs:
........
  r1303 | genovese@adobe.com | 2008-04-18 16:17:36 -0400 (Fri, 18 Apr 2008) | 1 line

  Minor ASDoc update - fixed typo
........
  r1305 | esolovey@adobe.com | 2008-04-18 18:55:42 -0400 (Fri, 18 Apr 2008) | 8 lines

  Avoid NPE's on the client when record-message-times or record-message-sizes and tracing are enabled and the message received by the client is not stamped with performance information.

  [ private comments below ]

  Bug: LCDS-224
  Checkintests: Pass

  The case that discovered this issue is a Connect message for a DataService using RTMP which does not get stamped as it is processed completely within the RTMP endpoint and does not make it all the way to the MessageBroker.
........

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/NetConnectionChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/MessagePerformanceUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
+++ frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
@@ -640,8 +640,15 @@
         if (Log.isDebug() && channelSet != null && channelSet.currentChannel != null &&
                 channelSet.currentChannel.mpiEnabled)
         {
-            var mpiutil:MessagePerformanceUtils = new MessagePerformanceUtils(ackMsg);
-            _log.debug(mpiutil.prettyPrint());
+            try
+            {
+                var mpiutil:MessagePerformanceUtils = new MessagePerformanceUtils(ackMsg);
+                _log.debug(mpiutil.prettyPrint());
+            }
+            catch (e:Error)
+            {
+                _log.debug("Could not get message performance information for: " + msg.toString());
+            }
         }

         // Remove error hint. ErrorMessages returned by the server are


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@1274366 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/rpc/src/mx/rpc/soap/SOAPConstants.as
+++ frameworks/projects/rpc/src/mx/rpc/soap/SOAPConstants.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2007 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

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

--- frameworks/projects/spark/src/spark/utils/FTETextUtil.as
+++ frameworks/projects/spark/src/spark/utils/FTETextUtil.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.utils
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19577
Author:   smgilson@adobe.com
Date:     2011-01-04T17:54:37.426568Z

Log Message:
-----------
Fix for ASDoc typo

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISortField.as

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

--- frameworks/projects/framework/src/mx/collections/ISortField.as
+++ frameworks/projects/framework/src/mx/collections/ISortField.as
@@ -14,7 +14,7 @@
 /**
  *  The ISortField interface defines the interface for classes that
  *  are used with ISort classes, to provide the sorting information
- *  required to sort the specific fields or property a collection view.
+ *  required to sort the specific fields or property in a collection view.
  *
  *  @langversion 3.0
  *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 17385
Author:   clucier@adobe.com
Date:     2010-08-19T16:09:47.511750Z

Log Message:
-----------
Our snapshotting methods no longer RTE when a target has no visual bounds.

QE notes: None
Doc notes: None
Bugs: SDK-26308
Reviewer: Darrell
Tests run: Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/graphics/ImageSnapshot.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/ImageSnapshot.as
+++ frameworks/projects/framework/src/mx/graphics/ImageSnapshot.as
@@ -127,7 +127,8 @@
      *  @param smoothing A Boolean value that determines whether a
      *  BitmapData object is smoothed when scaled.
      *
-     *  @return A BitmapData object representing the captured snapshot.
+     *  @return A BitmapData object representing the captured snapshot or null if
+     *  the source has no visible bounds.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -207,6 +208,10 @@
             data.draw(source, matrix, colorTransform,
                       blendMode, clipRect, smoothing);
         }
+        catch(e:Error)
+        {
+            data = null;
+        }
         finally
         {
             if (source is IUIComponent)


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

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

--- frameworks/projects/framework/src/mx/styles/StyleProtoChain.as
+++ frameworks/projects/framework/src/mx/styles/StyleProtoChain.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2004-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.styles
 {


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@1258489 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/binding/Binding.as
+++ frameworks/projects/framework/src/mx/binding/Binding.as
@@ -0,0 +1,337 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.binding
+{
+
+import mx.collections.errors.ItemPendingError;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+[ExcludeClass]
+
+/**
+ *  @private
+ */
+public class Binding
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Create a Binding object
+	 *
+     *  @param document The document that is the target of all of this work.
+	 *
+     *  @param srcFunc The function that returns us the value
+	 *  to use in this Binding.
+	 *
+     *  @param destFunc The function that will take a value
+	 *  and assign it to the destination.
+	 *
+     *  @param destString The destination represented as a String.
+	 *  We can then tell the ValidationManager to validate this field.
+     */
+    public function Binding(document:Object, srcFunc:Function,
+						    destFunc:Function, destString:String)
+    {
+		super();
+
+        this.document = document;
+        this.srcFunc = srcFunc;
+        this.destFunc = destFunc;
+        this.destString = destString;
+
+        isEnabled = true;
+        isExecuting = false;
+        isHandlingEvent = false;
+        hasHadValue = false;
+        uiComponentWatcher = -1;
+
+        BindingManager.addBinding(document, destString, this);
+    }
+
+ 	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Indicates that a Binding is enabled.
+     *  Used to disable bindings.
+     */
+    mx_internal var isEnabled:Boolean;
+
+	/**
+ 	 *  @private
+     *  Indicates that a Binding is executing.
+	 *  Used to prevent circular bindings from causing infinite loops.
+     */
+    mx_internal var isExecuting:Boolean;
+
+	/**
+ 	 *  @private
+     *  Indicates that the binding is currently handling an event.
+     *  Used to prevent us from infinitely causing an event
+	 *  that re-executes the the binding.
+     */
+    mx_internal var isHandlingEvent:Boolean;
+
+	/**
+ 	 *  @private
+     *  True as soon as a non-null or non-empty-string value has been used.
+     *  We don't auto-validate until this is true
+     */
+    private var hasHadValue:Boolean;
+
+	/**
+ 	 *  @private
+     *  This is no longer used in Flex 3.0, but it is required to load
+     *  Flex 2.0.0 and Flex 2.0.1 modules.
+     */
+    public var uiComponentWatcher:int;
+
+	/**
+ 	 *  @private
+     *  It's possible that there is a two-way binding set up, in which case
+     *  we'll do a rudimentary optimization by not executing ourselves
+     *  if our counterpart is already executing.
+     */
+    public var twoWayCounterpart:Binding;
+
+    /**
+     *  @private
+     *  True if a wrapped function call does not throw an error.  This is used by
+     *  innerExecute() to tell if the srcFunc completed successfully.
+     */
+    private var wrappedFunctionSuccessful:Boolean;
+
+ 	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  All Bindings hang off of a document for now,
+	 *  but really it's just the root of where these functions live.
+     */
+    mx_internal var document:Object;
+
+	/**
+     *  The function that will return us the value.
+     */
+    mx_internal var srcFunc:Function;
+
+	/**
+     *  The function that takes the value and assigns it.
+     */
+    mx_internal var destFunc:Function;
+
+	/**
+     *  The destination represented as a String.
+	 *  This will be used so we can signal validation on a field.
+     */
+    mx_internal var destString:String;
+
+	/**
+	 * 	@private
+	 *  Used to suppress calls to destFunc when incoming value is either
+	 *	a) an XML node identical to the previously assigned XML node, or
+	 *  b) an XMLList containing the identical node sequence as the previously assigned XMLList
+	 */
+	private var lastValue:Object;
+
+
+ 	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Execute the binding.
+	 *  Call the source function and get the value we'll use.
+	 *  Then call the destination function passing the value as an argument.
+	 *  Finally try to validate the destination.
+     */
+    public function execute(o:Object = null):void
+    {
+        if (!isEnabled)
+        {
+            return;
+        }
+
+        if (isExecuting || (twoWayCounterpart && twoWayCounterpart.isExecuting))
+        {
+            // If there is a twoWayCounterpart already executing, that means that it is
+            // assigning something of value so even though we won't execute we should be
+            // sure to mark ourselves as having had a value so that future executions will
+            // be correct.  If isExecuting is true but we re-entered, that means we
+            // clearly had a value so setting hasHadValue is safe.
+            hasHadValue = true;
+            return;
+        }
+
+		try
+		{
+			isExecuting = true;
+			wrapFunctionCall(this, innerExecute, o);
+		}
+        finally
+        {
+        	isExecuting = false;
+        }
+    }
+
+    /**
+	 *  @private
+	 *  Note: use of this wrapper needs to be reexamined. Currently there's at least one situation where a
+	 *	wrapped function invokes another wrapped function, which is unnecessary (i.e., only the inner function
+	 *  will throw), and also risks future errors due to the 'wrappedFunctionSuccessful' member variable
+	 *  being stepped on. Leaving alone for now to minimize pre-GMC volatility, but should be revisited for
+	 *  an early dot release.
+	 *  Also note that the set of suppressed error codes below is repeated verbatim in Watcher.wrapUpdate.
+	 *  These need to be consolidated and the motivations for each need to be documented.
+     */
+    protected function wrapFunctionCall(thisArg:Object, wrappedFunction:Function, object:Object = null, ...args):Object
+    {
+        wrappedFunctionSuccessful = false;
+
+        try
+        {
+            var result:Object = wrappedFunction.apply(thisArg, args);
+            wrappedFunctionSuccessful = true;
+            return result;
+        }
+        catch(itemPendingError:ItemPendingError)
+        {
+            itemPendingError.addResponder(new EvalBindingResponder(this, object));
+            if (BindingManager.debugDestinationStrings[destString])
+            {
+                trace("Binding: destString = " + destString + ", error = " + itemPendingError);
+            }
+        }
+        catch(rangeError:RangeError)
+        {
+            if (BindingManager.debugDestinationStrings[destString])
+            {
+                trace("Binding: destString = " + destString + ", error = " + rangeError);
+            }
+        }
+        catch(error:Error)
+        {
+            // Certain errors are normal when executing a srcFunc or destFunc,
+            // so we swallow them:
+            //   Error #1006: Call attempted on an object that is not a function.
+            //   Error #1009: null has no properties.
+            //   Error #1010: undefined has no properties.
+            //   Error #1055: - has no properties.
+            //   Error #1069: Property - not found on - and there is no default value
+            // We allow any other errors to be thrown.
+            if ((error.errorID != 1006) &&
+                (error.errorID != 1009) &&
+                (error.errorID != 1010) &&
+                (error.errorID != 1055) &&
+                (error.errorID != 1069))
+            {
+                throw error;
+            }
+            else
+            {
+                if (BindingManager.debugDestinationStrings[destString])
+                {
+                    trace("Binding: destString = " + destString + ", error = " + error);
+                }
+            }
+        }
+
+        return null;
+    }
+
+	/**
+	 *	@private
+	 *  true iff XMLLists x and y contain the same node sequence.
+	 */
+	private function nodeSeqEqual(x:XMLList, y:XMLList):Boolean
+	{
+		var n:uint = x.length();
+		if (n == y.length())
+		{
+			for (var i:uint = 0; i < n && x[i] === y[i]; i++);
+			return i == n;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+    /**
+	 *  @private
+     */
+    private function innerExecute():void
+    {
+        var value:Object = wrapFunctionCall(document, srcFunc);
+
+        if (BindingManager.debugDestinationStrings[destString])
+        {
+            trace("Binding: destString = " + destString + ", srcFunc result = " + value);
+        }
+
+        if (hasHadValue || wrappedFunctionSuccessful)
+        {
+        	//	Suppress binding assignments on non-simple XML: identical single nodes, or
+        	//	lists over identical node sequences.
+			//	Note: outer tests are inline for efficiency
+        	if (!(lastValue is XML && lastValue.hasComplexContent() && lastValue === value) &&
+        		!(lastValue is XMLList && lastValue.hasComplexContent() && value is XMLList &&
+        			nodeSeqEqual(lastValue as XMLList, value as XMLList)))
+        	{
+	            destFunc.call(document, value);
+
+	            //	Note: state is not updated if destFunc throws
+	            lastValue = value;
+	            hasHadValue = true;
+	        }
+        }
+    }
+
+    /**
+	 *  This function is called when one of this binding's watchers
+	 *  detects a property change.
+	 */
+    public function watcherFired(commitEvent:Boolean, cloneIndex:int):void
+    {
+        if (isHandlingEvent)
+            return;
+
+        try
+        {
+	        isHandlingEvent = true;
+			execute(cloneIndex);
+		}
+		finally
+		{
+        	isHandlingEvent = false;
+        }
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
663 paths were modified

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

--- frameworks/projects/framework/src/mx/core/IContainer.as
+++ frameworks/projects/framework/src/mx/core/IContainer.as
@@ -19,6 +19,11 @@
  *  extends or mimics mx.core.Container
  *
  *  @see mx.core.Container
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface IContainer extends IUIComponent
 {
@@ -29,35 +34,65 @@

     /**
      *  @copy mx.core.Container#defaultButton
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function get defaultButton():IFlexDisplayObject;
     function set defaultButton(value:IFlexDisplayObject):void;

     /**
      *  @copy mx.core.Container#creatingContentPane
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function get creatingContentPane():Boolean;
     function set creatingContentPane(value:Boolean):void;

     /**
      *  @copy mx.core.Container#viewMetrics
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function get viewMetrics():EdgeMetrics;

     /**
      *  @copy mx.core.Container#horizontalScrollPosition
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function get horizontalScrollPosition():Number;
     function set horizontalScrollPosition(value:Number):void;

     /**
      *  @copy mx.core.Container#verticalScrollPosition
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function get verticalScrollPosition():Number;
     function set verticalScrollPosition(value:Number):void;

     /**
      *  @copy mx.core.UIComponent#focusManager
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function get focusManager():IFocusManager;
 }


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@1259318 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/IFlexAsset.as
+++ frameworks/projects/framework/src/mx/core/IFlexAsset.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-2007 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 2462
Author:   jimurphy@adobe.com
Date:     2008-07-14T19:13:06.620116Z

Log Message:
-----------
gumbo push to trunk

Modified Paths:
--------------
214 paths were modified

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

--- frameworks/projects/framework/src/mx/states/AddChild.as
+++ frameworks/projects/framework/src/mx/states/AddChild.as
@@ -13,14 +13,15 @@
 {

 import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
 import mx.containers.ApplicationControlBar;
 import mx.containers.ControlBar;
 import mx.containers.Panel;
 import mx.core.Application;
 import mx.core.ContainerCreationPolicy;
 import mx.core.IDeferredInstance;
+import mx.core.mx_internal;
 import mx.core.UIComponent;
-import mx.core.mx_internal;
 import mx.resources.IResourceManager;
 import mx.resources.ResourceManager;

@@ -79,7 +80,7 @@
  *
  *  @includeExample examples/StatesExample.mxml
  */
- public class AddChild implements IOverride
+ public class AddChild extends OverrideBase implements IOverride
 {
     include "../core/Version.as";

@@ -221,7 +222,7 @@
      *  property, or <mx:states>tag that specifies the State
      *  object.
      */
-    public var relativeTo:UIComponent;
+    public var relativeTo:Object;

     //------------------------------------
     //  target
@@ -352,12 +353,12 @@
      */
     public function apply(parent:UIComponent):void
     {
-        var obj:UIComponent = relativeTo ? relativeTo : parent;
+        var obj:* = relativeTo = getOverrideContext(relativeTo, parent);

         added = false;

-        // Early exit if child is null
-        if (!target)
+        // Early exit if child is null or not a valid container.
+        if (!target || !(obj is DisplayObjectContainer))
             return;

         // Can't reparent. Must remove before adding.
@@ -421,9 +422,9 @@
      */
     public function remove(parent:UIComponent):void
     {
-        var obj:UIComponent = relativeTo ? relativeTo : parent;
-
-        if (!added)
+        var obj:* = getOverrideContext(relativeTo, parent);
+
+        if (!added || !(obj is DisplayObjectContainer))
             return;

         switch (position)


Transferred from the Adobe Open Source Subversion Repository

Revision: 5119
Author:   smgilson@adobe.com
Date:     2009-03-01T15:19:39.936226Z

Log Message:
-----------
Clean up some ASDoc tags from the addition of the @productversion/@playerversion tags

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/ResultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.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/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.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/core/UITextField.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/halo/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/NCManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/Base64Encoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/StringValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SchemaMarshaller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IInteractiveObjectInterface.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/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ContainerRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.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/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.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/videoClasses/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/Schema.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/utils/HexEncoder.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/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectContainerInterface.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/framework/src/mx/effects/effectClasses/SoundEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISpriteInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/src/haloclassic/HaloRectBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/Operation.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as
+++ frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as
@@ -197,11 +197,6 @@

     /*
      * Have the token apply the fault.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
      */
     override mx_internal function callTokenResponders():void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19635
Author:   aharui@adobe.com
Date:     2011-01-07T00:25:18.039632Z

Log Message:
-----------
revert the layout changes from svn 18635.  Management feels that there isn't enough time to thoroughly test the changes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -1576,7 +1576,6 @@
                 element.dispatchEvent(new FlexEvent(FlexEvent.ADD));
         }

-        invalidateEstimatedSizesOfChildren();
         invalidateSize();
         invalidateDisplayList();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11686
Author:   klin@adobe.com
Date:     2009-11-12T07:50:52.727818Z

Log Message:
-----------
https://bugs.adobe.com/jira/browse/SDK-24088 - Panel's updateDisplayList needs null check for TitleDisplay.

QE notes: No
Doc notes: No
Bugs: SDK-24088
Reviewer: Jason
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as

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

--- frameworks/projects/spark/src/spark/components/Panel.as
+++ frameworks/projects/spark/src/spark/components/Panel.as
@@ -464,26 +464,29 @@
     {
         // fixme (gosmith): this is not working to extend the height of the the titleDisplay
         super.updateDisplayList(unscaledWidth, unscaledHeight);
-        var g:Graphics = titleDisplay.graphics;
-        g.clear();
-        // Also draw an invisible unfilled rect whose height
-        // is the height of the entire Panel, not just the headerHeight.
-        // This is for accessibility; the titlebar of the Panel
-        // has an AccessibilityImplementation (see PanelAccImpl)
-        // which makes it act like a grouping (ROLE_SYSTEM_GROUPING)
-        // for the controls inside the panel.
-        // Drawing this rect makes the accLocation rect of the grouping
-        // enclose the controls inside the grouping,
-        // even though it is a sibling of them, not their parent.
-        // (This is because the Player doesn't support Sprites
-        // with AccessibilityImplementations inside other Sprites
-        // with AccessibilityImplementations; the accessible objects
-        // in a Flash SWF are a flat list, not a hierarchy.)
-        // This rectangle must be unfilled because the titleBar is
-        // actually on top of the content area and would otherwise
-        // block mouse events to the controls in the Panel.
-        g.lineStyle(0, 0x000000, 0);
-        g.drawRect(0, 0, unscaledWidth, unscaledHeight);
+        if (titleDisplay)
+        {
+            var g:Graphics = titleDisplay.graphics;
+            g.clear();
+            // Also draw an invisible unfilled rect whose height
+            // is the height of the entire Panel, not just the headerHeight.
+            // This is for accessibility; the titlebar of the Panel
+            // has an AccessibilityImplementation (see PanelAccImpl)
+            // which makes it act like a grouping (ROLE_SYSTEM_GROUPING)
+            // for the controls inside the panel.
+            // Drawing this rect makes the accLocation rect of the grouping
+            // enclose the controls inside the grouping,
+            // even though it is a sibling of them, not their parent.
+            // (This is because the Player doesn't support Sprites
+            // with AccessibilityImplementations inside other Sprites
+            // with AccessibilityImplementations; the accessible objects
+            // in a Flash SWF are a flat list, not a hierarchy.)
+            // This rectangle must be unfilled because the titleBar is
+            // actually on top of the content area and would otherwise
+            // block mouse events to the controls in the Panel.
+            g.lineStyle(0, 0x000000, 0);
+            g.drawRect(0, 0, unscaledWidth, unscaledHeight);
+        }
     }

     /**