VCard updates:

VCard updates:

- getVCard now requires a jid:
The contact param has been removed.
Using an UnescapedJID instead of a RosterItemVO allows for vCard requests on chat room participants that aren't necessarily in the user's roster.
To request the vCard of the current user, pass the user's jid just like any other request. Passing null will no longer request the current user's vCard.

- Made cache a dictionary instead of generic object.

- Added clearCache() method to immediately remove all cached vCard references.

--- src/org/igniterealtime/xiff/vcard/VCard.as
+++ src/org/igniterealtime/xiff/vcard/VCard.as
@@ -35,7 +35,6 @@
 	import org.igniterealtime.xiff.core.XMPPConnection;
 	import org.igniterealtime.xiff.data.IQ;
 	import org.igniterealtime.xiff.data.XMPPStanza;
-	import org.igniterealtime.xiff.data.im.RosterItemVO;
 	import org.igniterealtime.xiff.data.vcard.VCardExtension;
 	import org.igniterealtime.xiff.events.VCardEvent;
 	import org.igniterealtime.xiff.util.DateTimeParser;
@@ -73,9 +72,9 @@
 		public static var cacheFlushInterval:Number = ( 6 * 60 * 60 * 1000 );

 		/**
-		 * VCard cache indexed by the UnescapedJID.bareJID of the contact or current user.
-		 */
-		private static var cache:Object = {};
+		 * VCard cache indexed by the UnescapedJID.bareJID of the user.
+		 */
+		private static var cache:Dictionary = new Dictionary();

 		/**
 		 * Flush the vCard cache every 6 hours by default.
@@ -242,11 +241,6 @@
 		 * Work telephone number.
 		 */
 		public var workTelephone:VCardTelephone;
-
-		/**
-		 * @private
-		 */
-		private var contact:RosterItemVO;

 		/**
 		 * @private
@@ -272,13 +266,13 @@

 		/**
 		 * The way a vCard is requested and then later referred to.
-		 * var vCard:VCard = VCard.getVCard( connection );

+		 * var vCard:VCard = VCard.getVCard( connection, jid );

 		 * vCard.addEventListener( VCardEvent.LOADED, onVCardLoaded );
 		 * @param connection
-		 * @param contact (if null, will get current user's vCard)
+		 * @param jid
 		 * @return Reference to the vCard which will be filled once the loaded event occurs.
 		 */
-		public static function getVCard( connection:XMPPConnection, contact:RosterItemVO=null ):VCard
+		public static function getVCard( connection:XMPPConnection, jid:UnescapedJID ):VCard
 		{
 			if ( !cacheFlushTimer.running )
 			{
@@ -291,25 +285,20 @@
 					{
 						pushRequest( connection, card );
 					}
-					cache = {};
+					clearCache();
 				} );
 			}

-			var bareJID:String = contact ? contact.jid.bareJID : connection.jid.bareJID;
-
-			var cachedCard:VCard = cache[ bareJID ] as VCard;
+			var cachedCard:VCard = cache[ jid.bareJID ] as VCard;
 			if ( cachedCard )
 			{
 				return cachedCard;
 			}

 			var vCard:VCard = new VCard();
-			if( contact )
-			{
-				vCard.contact = contact;
-				vCard.jid = contact.jid;
-			}
-			cache[ bareJID ] = vCard;
+			vCard.jid = jid;
+
+			cache[ jid.bareJID ] = vCard;

 			pushRequest( connection, vCard );

@@ -325,6 +314,14 @@
 			{
 				cacheFlushTimer.stop();
 			}
+		}
+
+		/**
+		 * Immediately clears the vCard cache.
+		 */
+		public static function clearCache():void
+		{
+			cache = new Dictionary();
 		}

 		/**
@@ -357,11 +354,10 @@
 			var req:Object = requestQueue.pop();
 			var connection:XMPPConnection = req.connection;
 			var vCard:VCard = req.card;
-			var contact:RosterItemVO = vCard.contact;
-
-			var recipient:EscapedJID = contact ? contact.jid.escaped : null;
+			var jid:UnescapedJID = vCard.jid;
+
+			var recipient:EscapedJID = jid.equals( connection.jid, true ) ? null : jid.escaped;
 			var iq:IQ = new IQ( recipient, IQ.TYPE_GET );
-			vCard.jid = contact ? contact.jid : connection.jid;

 			iq.callback = vCard.handleVCard;
 			iq.addExtension( new VCardExtension() );
@@ -715,7 +711,7 @@
 			if ( photo && ( ( photo.type && photo.binaryValue ) || photo.externalValue ) )
 			{
 				var photoNode:XML = <PHOTO/>;
-
+
 				if ( photo.binaryValue )
 				{
 					try
@@ -728,7 +724,7 @@
 					{
 						throw new Error( "VCard:saveVCard Error converting bytes to string " + error.message );
 					}
-
+
 					var photoTypeNode:XML = <TYPE/>;
 					photoTypeNode.appendChild( photo.type );
 					photoNode.appendChild( photoTypeNode );
@@ -739,7 +735,7 @@
 					photoExtNode.appendChild( photo.externalValue );
 					photoNode.appendChild( photoExtNode );
 				}
-
+
 				vcardExtNode.appendChild( photoNode );
 			}

@@ -754,85 +750,85 @@
 			{
 				var workAddressNode:XML = <ADR/>;
 				workAddressNode.appendChild( <WORK/> );
-
+
 				if ( workAddress.poBox )
 				{
 					workAddressNode.POBOX = workAddress.poBox;
 				}
-
+
 				if ( workAddress.extendedAddress )
 				{
 					workAddressNode.EXTADD = workAddress.extendedAddress;
 				}
-
+
 				if ( workAddress.street )
 				{
 					workAddressNode.STREET = workAddress.street;
 				}
-
+
 				if ( workAddress.locality )
 				{
 					workAddressNode.LOCALITY = workAddress.locality;
 				}
-
+
 				if ( workAddress.region )
 				{
 					workAddressNode.REGION = workAddress.region;
 				}
-
+
 				if ( workAddress.postalCode )
 				{
 					workAddressNode.PCODE = workAddress.postalCode;
 				}
-
+
 				if ( workAddress.country )
 				{
 					workAddressNode.CTRY = workAddress.country;
 				}
-
+
 				vcardExtNode.appendChild( workAddressNode );
 			}
-
+
 			if ( homeAddress )
 			{
 				var homeAddressNode:XML = <ADR/>;
 				homeAddressNode.appendChild( <HOME/> );
-
+
 				if ( homeAddress.poBox )
 				{
 					homeAddressNode.POBOX = homeAddress.poBox;
 				}
-
+
 				if ( homeAddress.extendedAddress )
 				{
 					homeAddressNode.EXTADD = homeAddress.extendedAddress;
 				}
-
+
 				if ( homeAddress.street )
 				{
 					homeAddressNode.STREET = homeAddress.street;
 				}
-
+
 				if ( homeAddress.locality )
 				{
 					homeAddressNode.LOCALITY = homeAddress.locality;
 				}
-
+
 				if ( homeAddress.region )
 				{
 					homeAddressNode.REGION = homeAddress.region;
 				}
-
+
 				if ( homeAddress.postalCode )
 				{
 					homeAddressNode.PCODE = homeAddress.postalCode;
 				}
-
+
 				if ( homeAddress.country )
 				{
 					homeAddressNode.CTRY = homeAddress.country;
 				}
-
+
 				vcardExtNode.appendChild( homeAddressNode );
 			}

@@ -844,7 +840,7 @@
 				workAddressLabelNode.LINE = workAddressLabel;
 				vcardExtNode.appendChild( workAddressLabelNode );
 			}
-
+
 			if ( homeAddressLabel )
 			{
 				var homeAddressLabelNode:XML = ;
@@ -858,7 +854,7 @@
 			if ( workTelephone )
 			{
 				phoneNode.setChildren( <WORK/> );
-
+
 				if ( workTelephone.voice )
 				{
 					var workVoiceNode:XML = phoneNode.copy();
@@ -866,7 +862,7 @@
 					workVoiceNode.NUMBER = workTelephone.voice;
 					vcardExtNode.appendChild( workVoiceNode );
 				}
-
+
 				if ( workTelephone.fax )
 				{
 					var workFaxNode:XML = phoneNode.copy();
@@ -874,7 +870,7 @@
 					workFaxNode.NUMBER = workTelephone.fax;
 					vcardExtNode.appendChild( workFaxNode );
 				}
-
+
 				if ( workTelephone.pager )
 				{
 					var workPagerNode:XML = phoneNode.copy();
@@ -882,7 +878,7 @@
 					workPagerNode.NUMBER = workTelephone.pager;
 					vcardExtNode.appendChild( workPagerNode );
 				}
-
+
 				if ( workTelephone.msg )
 				{
 					var workMsgNode:XML = phoneNode.copy();
@@ -890,7 +886,7 @@
 					workMsgNode.NUMBER = workTelephone.msg;
 					vcardExtNode.appendChild( workMsgNode );
 				}
-
+
 				if ( workTelephone.cell )
 				{
 					var workCellNode:XML = phoneNode.copy();
@@ -898,7 +894,7 @@
 					workCellNode.NUMBER = workTelephone.cell;
 					vcardExtNode.appendChild( workCellNode );
 				}
-
+
 				if ( workTelephone.video )
 				{
 					var workVideoNode:XML = phoneNode.copy();
@@ -987,22 +983,22 @@
 			{
 				vcardExtNode.TZ = DateTimeParser.date2string( timezone );
 			}
-
+
 			//GEO
 			if( geographicalPosition )
 			{
 				var geoNode:XML = <GEO/>;
-
+
 				if ( geographicalPosition.latitude )
 				{
 					geoNode.LAT = geographicalPosition.latitude;
 				}
-
+
 				if ( geographicalPosition.longitude )
 				{
 					geoNode.LON = geographicalPosition.longitude;
 				}
-
+
 				vcardExtNode.appendChild( geoNode );
 			}


fixed null pointer error reading crs

fixed null pointer error reading crs

Change-Id: If97cf03ec8639f5f7f670cbe47577ecc462b5286

--- WeaveData/src/weave/data/DataSources/GeoJSONDataSource.as
+++ WeaveData/src/weave/data/DataSources/GeoJSONDataSource.as
@@ -405,7 +405,7 @@
 		// get projection
 		var crs:Object = obj[GeoJSON.P_CRS];
 		if (crs && crs[GeoJSON.P_TYPE] == GeoJSON.CRS_T_NAME)
-			projection = ProjectionManager.getProjectionFromURN(crs[GeoJSON.CRS_N_P_NAME]);
+			projection = ProjectionManager.getProjectionFromURN(crs[GeoJSON.CRS_P_PROPERTIES][GeoJSON.CRS_N_P_NAME]);

 		// get features
 		var featureCollection:Object = GeoJSON.asFeatureCollection(obj);


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

--- frameworks/projects/mobilecomponents/src/spark/transitions/CrossFadeViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/CrossFadeViewTransition.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 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.transitions
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/framework/src/mx/graphics/GradientStroke.as
+++ frameworks/projects/framework/src/mx/graphics/GradientStroke.as
@@ -151,8 +151,7 @@
         {
             _caps = value;

-            mx_internal::dispatchGradientChangedEvent(
-                                "caps", oldValue, value);
+            dispatchGradientChangedEvent("caps", oldValue, value);
         }
     }

@@ -200,8 +199,7 @@
         {
             _joints = value;

-            mx_internal::dispatchGradientChangedEvent(
-                                "joints", oldValue, value);
+            dispatchGradientChangedEvent("joints", oldValue, value);
         }
     }

@@ -256,8 +254,7 @@
         {
             _miterLimit = value;

-            mx_internal::dispatchGradientChangedEvent(
-                                "miterLimit", oldValue, value);
+            dispatchGradientChangedEvent("miterLimit", oldValue, value);
         }
     }

@@ -307,8 +304,7 @@
         {
             _pixelHinting = value;

-            mx_internal::dispatchGradientChangedEvent(
-                                "pixelHinting", oldValue, value);
+            dispatchGradientChangedEvent("pixelHinting", oldValue, value);
         }
     }

@@ -373,8 +369,7 @@
         {
             _scaleMode = value;

-            mx_internal::dispatchGradientChangedEvent(
-                                "scaleMode", oldValue, value);
+            dispatchGradientChangedEvent("scaleMode", oldValue, value);
         }
     }

@@ -414,8 +409,7 @@
         {
             _weight = value;

-            mx_internal::dispatchGradientChangedEvent(
-                                "weight", oldValue, value);
+            dispatchGradientChangedEvent("weight", oldValue, value);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

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

--- frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
+++ frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
@@ -565,7 +565,7 @@
      *  Retrieve all style declarations applicable to this subject. The subject
      *  is the right most simple type selector in a selector chain.
      *
-     *  @param subject The subject of the style declarations.
+     *  @param subject The subject of the style declaration's selector.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -577,15 +577,15 @@
         // For Flex 3 and earlier, if we were passed a subject with a package
         // name, such as "mx.controls.Button", strip off the package name
         // leaving just "Button" and look for that subject.
-        //if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-        //{
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        {
             if (subject.charAt(0) != ".")
             {
                 var index:int = subject.lastIndexOf(".");
                 if (index != -1)
                     subject = subject.substr(index + 1);
             }
-        //}
+        }

         return _subjects[subject] as Array;
     }
@@ -622,14 +622,17 @@
      */
     public function getStyleDeclaration(selector:String):CSSStyleDeclaration
     {
-        // If we were passed a type selector with a package name,
-        // such as "mx.controls.Button", strip off the package name
-        // leaving just "Button" and look for that selector.
-        if (selector.charAt(0) != ".")
+        // For Flex 3 and earlier, if we were passed a selector with a package
+        // name, such as "mx.controls.Button", strip off the package name
+        // leaving just "Button" and look for that type selector.
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
-            var index:int = selector.lastIndexOf(".");
-            if (index != -1)
-                selector = selector.substr(index + 1);
+            if (selector.charAt(0) != ".")
+            {
+                var index:int = selector.lastIndexOf(".");
+                if (index != -1)
+                    selector = selector.substr(index + 1);
+            }
         }

         return _selectors[selector];


Transferred from the Adobe Open Source Subversion Repository

Revision: 7274
Author:   chaase@adobe.com
Date:     2009-05-26T17:35:32.210331Z

Log Message:
-----------
Fixed several feature-complete effects bugs, plus one ScrollBar bug.

QE Notes: None
Doc Notes: None
Bugs: sdk-21093, sdk-21130, sdk-21243, sdk-21128, sdk-20698, sdk-20125, sdk-21138
Reviewer: Jason
tests: checkintests mustella effects cyclone

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/AnimationTarget.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/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/AnimateTransform.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransform.as
@@ -16,8 +16,11 @@

 import mx.core.IUIComponent;
 import mx.core.mx_internal;
+import mx.effects.CompositeEffect;
 import mx.effects.Effect;
 import mx.effects.IEffectInstance;
+import mx.effects.Parallel;
+import mx.effects.Sequence;
 import mx.events.EffectEvent;
 import mx.geom.TransformOffsets;
 import mx.styles.IStyleClient;
@@ -247,6 +250,10 @@
     // end values
     // TODO (chaase): More correct approach might be to animate the
     // transform center between start and end
+    // TODO (chaase): If we do keep some mechanism of caching the values,
+    // need to make sure to delete the map entries when effect is stopped.
+    // Current approach clears it at applyEndValues() time, but that won't
+    // catch the stop() case.
     private var transformCenterPerTarget:Dictionary = new Dictionary(true);

     /**
@@ -277,7 +284,8 @@

     /**
      *  Specifies whether the transform effect occurs
-     *  around the center of the target, (width/2, height/2).
+     *  around the center of the target, (width/2, height/2)
+     *  when the effect begins playing.
      *  If the flag is not set, the transform center is determined by
      *  the transform center of the object (transformX, transformY,
      *  transformZ) and the transformX, transformY,
@@ -1194,9 +1202,11 @@
      * and the transform center.
      */
     override mx_internal function captureValues(propChanges:Array,
-                                       setStartValues:Boolean):Array
-    {
-        propChanges = super.captureValues(propChanges,setStartValues);
+                                       setStartValues:Boolean,
+                                       targetsToCapture:Array = null):Array
+    {
+        propChanges = super.captureValues(propChanges, setStartValues,
+            targetsToCapture);
         var valueMap:Object;
         var i:int;
         var n:int;
@@ -1206,83 +1216,87 @@
         for (i = 0; i < n; i++)
         {
             target = propChanges[i].target;
-            // TODO (chaase): should only capture values for targets of this effect.
-            // currently no easy way to determine this, since if we are
-            // running in a composite effect, that effect will create
-            // propertyChange targets for all effect children.
-            // Might want to change API of captureValues to specify the
-            // targets to iterate through
-            // For now, just make sure that we can transform the current target
-            // then go ahead and capture values for it
-            if (!(target is IUIComponent) && !(target is IGraphicElement))
-                continue;
-
-            // cache transform center at captureStartValues time; this will
-            // force captureEndValues to use the transform center
-            var computedTransformCenter:Vector3D;
-            if (!setStartValues && transformCenterPerTarget[target] !== undefined)
+            if (targetsToCapture == null || targetsToCapture.length == 0 ||
+                targetsToCapture.indexOf(target) >= 0)
             {
-                computedTransformCenter = transformCenterPerTarget[target];
-            }
-            else
-            {
-                computedTransformCenter = computeTransformCenterForTarget(target);
-                if (setStartValues)
-                    transformCenterPerTarget[target] = computedTransformCenter;
-            }
-
-            valueMap = setStartValues ? propChanges[i].start : propChanges[i].end;
-            if (valueMap.translationX === undefined ||
-                valueMap.translationY === undefined ||
-                valueMap.translationZ === undefined)
-            {
-                // TODO (chaase): do we really need this?
-                propChanges[i].stripUnchangedValues = false;
-
-                target.transformPointToParent(computedTransformCenter, xformPosition,
-                    null);
-                valueMap.translationX = xformPosition.x;
-                valueMap.translationY = xformPosition.y;
-                valueMap.translationZ = xformPosition.z;
-            }
-
-
-            // if someone has asked for the motionpaths to affect offsets,
-            // they might not have explcitly defined any offsets.  If that's the case,
-            // we still need to capture default start values, so let's initialize the offsets
-            // to a default set anyway.
-            if(postLayoutTransformPropertiesSet && target.offsets == null)
-            {
-                target.offsets = new TransformOffsets();
-            }
-
-            // if the target doesn't have any offsets, there's no need to capture
-            // offset values.
-            if(target.offsets != null)
-            {
-                var offsets:TransformOffsets = target.offsets;
-                valueMap.postLayoutRotationX = offsets.rotationX;
-                valueMap.postLayoutRotationY = offsets.rotationY;
-                valueMap.postLayoutRotationZ = offsets.rotationZ;
-
-                valueMap.postLayoutScaleX = offsets.scaleX;
-                valueMap.postLayoutScaleY = offsets.scaleY;
-                valueMap.postLayoutScaleZ = offsets.scaleZ;
-
-                if (valueMap.postLayoutTranslationX === undefined ||
-                    valueMap.postLayoutTranslationY === undefined ||
-                    valueMap.postLayoutTranslationZ === undefined)
+                // TODO (chaase): should only capture values for targets of this effect.
+                // currently no easy way to determine this, since if we are
+                // running in a composite effect, that effect will create
+                // propertyChange targets for all effect children.
+                // Might want to change API of captureValues to specify the
+                // targets to iterate through
+                // For now, just make sure that we can transform the current target
+                // then go ahead and capture values for it
+                if (!(target is IUIComponent) && !(target is IGraphicElement))
+                    continue;
+
+                // cache transform center at captureStartValues time; this will
+                // force captureEndValues to use the transform center
+                var computedTransformCenter:Vector3D;
+                if (!setStartValues && transformCenterPerTarget[target] !== undefined)
+                {
+                    computedTransformCenter = transformCenterPerTarget[target];
+                }
+                else
+                {
+                    computedTransformCenter = computeTransformCenterForTarget(target);
+                    if (setStartValues)
+                        transformCenterPerTarget[target] = computedTransformCenter;
+                }
+
+                valueMap = setStartValues ? propChanges[i].start : propChanges[i].end;
+                if (valueMap.translationX === undefined ||
+                    valueMap.translationY === undefined ||
+                    valueMap.translationZ === undefined)
                 {
                     // TODO (chaase): do we really need this?
                     propChanges[i].stripUnchangedValues = false;
-
-                    computedTransformCenter =
-                        computeTransformCenterForTarget(target);
-                    target.transformPointToParent(computedTransformCenter, null,
-                        postLayoutPosition);
-                    valueMap.postLayoutTranslationX = postLayoutPosition.x;
-                    valueMap.postLayoutTranslationY = postLayoutPosition.y;
-                    valueMap.postLayoutTranslationZ = postLayoutPosition.z;
+
+                    target.transformPointToParent(computedTransformCenter, xformPosition,
+                        null);
+                    valueMap.translationX = xformPosition.x;
+                    valueMap.translationY = xformPosition.y;
+                    valueMap.translationZ = xformPosition.z;
+                }
+
+
+                // if someone has asked for the motionpaths to affect offsets,
+                // they might not have explcitly defined any offsets.  If that's the case,
+                // we still need to capture default start values, so let's initialize the offsets
+                // to a default set anyway.
+                if(postLayoutTransformPropertiesSet && target.offsets == null)
+                {
+                    target.offsets = new TransformOffsets();
+                }
+
+                // if the target doesn't have any offsets, there's no need to capture
+                // offset values.
+                if(target.offsets != null)
+                {
+                    var offsets:TransformOffsets = target.offsets;
+                    valueMap.postLayoutRotationX = offsets.rotationX;
+                    valueMap.postLayoutRotationY = offsets.rotationY;
+                    valueMap.postLayoutRotationZ = offsets.rotationZ;
+
+                    valueMap.postLayoutScaleX = offsets.scaleX;
+                    valueMap.postLayoutScaleY = offsets.scaleY;
+                    valueMap.postLayoutScaleZ = offsets.scaleZ;
+
+                    if (valueMap.postLayoutTranslationX === undefined ||
+                        valueMap.postLayoutTranslationY === undefined ||
+                        valueMap.postLayoutTranslationZ === undefined)
+                    {
+                        // TODO (chaase): do we really need this?
+                        propChanges[i].stripUnchangedValues = false;
+
+                        computedTransformCenter =
+                            computeTransformCenterForTarget(target);
+                        target.transformPointToParent(computedTransformCenter, null,
+                            postLayoutPosition);
+                        valueMap.postLayoutTranslationX = postLayoutPosition.x;
+                        valueMap.postLayoutTranslationY = postLayoutPosition.y;
+                        valueMap.postLayoutTranslationZ = postLayoutPosition.z;
+                    }
                 }
             }
         }
@@ -1535,6 +1549,10 @@
             applyValues(propChanges, targets, false);
             super.mx_internal::applyEndValues(propChanges, targets);
         }
+        if (targets != null)
+            for (var i:int = 0; i < targets.length; ++i)
+                if (transformCenterPerTarget[targets[i]] !== undefined)
+                    delete transformCenterPerTarget[targets[i]];
     }

     /**
@@ -1816,10 +1834,22 @@
         transformInstance.projectionX = projectionX;
         transformInstance.projectionY = projectionY;

-
-
-        transformInstance.transformCenter =
-            computeTransformCenterForTarget(instance.target);
+        // If we're in a transition and we've captured the center already, use it.
+        // Otherwise, calculate it.
+        // TODO (chaase): double-check that calling play() directly on an effect
+        // that was previously used in a Transition won't mistakenly think that it's
+        // now being run in a transition.
+        if (propertyChangesArray != null &&
+            transformCenterPerTarget[instance.target] !== undefined)
+        {
+            transformInstance.transformCenter =
+                transformCenterPerTarget[instance.target];
+        }
+        else
+        {
+            transformInstance.transformCenter =
+                computeTransformCenterForTarget(instance.target);
+        }

         // Need to hide these properties from the superclass, as they are
         // already handled in our single instance. But restore them afterwards
@@ -1853,6 +1883,22 @@
         while (parent)
         {
             globalStartTime += parent.startDelay;
+            if (parent is Sequence)
+            {
+                var sequence:Sequence = Sequence(parent);
+                for (var i:int = 0; i < sequence.children.length; ++i)
+                {
+                    var child:Effect = sequence.children[i];
+                    if (child == this)
+                        break;
+                    if (child is CompositeEffect)
+                        globalStartTime += CompositeEffect(child).compositeDuration;
+                    else
+                        globalStartTime += child.startDelay +
+                            (child.duration * child.repeatCount) +
+                            (child.repeatDelay + (child.repeatCount - 1));
+                }
+            }
             parent = parent.mx_internal::parentCompositeEffect;
         }
         return globalStartTime;


Cleanup.

Cleanup.

--- driver/src/main/flex/org/postgresql/codec/encode/TextIn.as
+++ driver/src/main/flex/org/postgresql/codec/encode/TextIn.as
@@ -3,9 +3,6 @@
     import org.postgresql.codec.IPGTypeEncoder;
     import org.postgresql.io.ICDataOutput;

-    /**
-     * @author maciek
-     */
     public class TextIn implements IPGTypeEncoder {
         public function encode(bytes:ICDataOutput, value:Object, format:int, serverParams:Object):void {
         }


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 4170
Author:   egeorgie@adobe.com
Date:     2008-11-23T21:12:27.092823Z

Log Message:
-----------
1.	mx.layout.ILayoutItem gets renamed to mx.layout.ILayoutElement
2.	get actualPosition() -> getLayoutPositionX(postTransform:Boolean=true):Number, getLayoutPositionY(postTransform:Boolean=true):Number
3.	get actualSize() -> getLayoutWidth(postTransform:Boolean=true):Number, getLayoutHeight(postTransform:Boolean=true):Number
4.	get preferredSize() -> getPreferredWidth(postTransform:Boolean=true):Number, getPreferredHeight(postTransform:Boolean=true):Number
5.	get minSize() -> getMinWidth(postTransform:Boolean=true):Number, getMinHeight(postTransform:Boolean=true):Number
6.	get maxSize() -> getMaxWidth(postTransform:Boolean=true):Number, getMaxHeight(postTransform:Boolean=true):Number
7.	setActualSize() -> setlayoutSize(width:Number=NaN, height:Number=NaN, postTransform:Boolean=true):void
8.	setActualPosition() -> setLayoutPosition(width:Number=NaN, height:Number=NaN, postTransform:Boolean=true):void
10.     Add support for custom 3D layouts by exposing access to transform matrices through the ILayoutElement interface.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Hans
tests: checkintests, mustella (gumbo/components)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout_tester.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutItem.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/graphics/GraphicTags_checkintests.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFactory.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFactory.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFDO.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/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementUIC.as</path>

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

--- frameworks/projects/spark/src/spark/components/HSlider.as
+++ frameworks/projects/spark/src/spark/components/HSlider.as
@@ -16,8 +16,8 @@
 import flash.geom.Point;

 import mx.components.baseClasses.FxSlider;
-import mx.layout.ILayoutItem;
-import mx.layout.LayoutItemFactory;
+import mx.layout.ILayoutElement;
+import mx.layout.LayoutElementFactory;

 [IconFile("FxHSlider.png")]

@@ -55,14 +55,7 @@
      */
     override protected function get trackSize():Number
     {
-        if (track)
-        {
-            var trackLItem:ILayoutItem =
-                LayoutItemFactory.getLayoutItemFor(track);
-            return trackLItem.actualSize.x;
-        }
-        else
-           return 0;
+        return track ? LayoutElementFactory.getLayoutElementFor(track).getLayoutWidth() : 0;
     }

     /**
@@ -70,9 +63,7 @@
      */
     override protected function calculateThumbSize():Number
     {
-        var thumbLItem:ILayoutItem =
-            LayoutItemFactory.getLayoutItemFor(thumb);
-        return thumbLItem.actualSize.x;
+        return LayoutElementFactory.getLayoutElementFor(thumb).getLayoutWidth();
     }

     //--------------------------------------------------------------------------
@@ -93,15 +84,15 @@
     {
         if (thumb)
         {
-            var thumbLItem:ILayoutItem =
-                LayoutItemFactory.getLayoutItemFor(thumb);
+            var thumbLElement:ILayoutElement =
+                LayoutElementFactory.getLayoutElementFor(thumb);

-            var trackLItem:ILayoutItem =
-                LayoutItemFactory.getLayoutItemFor(track);
-            var trackPos:Number = trackLItem.actualPosition.x;
+            var trackLElement:ILayoutElement =
+                LayoutElementFactory.getLayoutElementFor(track);
+            var trackPos:Number = trackLElement.getLayoutPositionX();

-            thumbLItem.setActualPosition(Math.round(trackPos + thumbPos),
-                                         thumbLItem.actualPosition.y);
+            thumbLElement.setLayoutPosition(Math.round(trackPos + thumbPos),
+                                            thumbLElement.getLayoutPositionY());
         }
     }

@@ -128,9 +119,9 @@
     override protected function pointClickToPosition(localX:Number,
                                                      localY:Number):Number
     {
-        var thumbLItem:ILayoutItem =
-            LayoutItemFactory.getLayoutItemFor(thumb);
-        return pointToPosition(localX, localY) - thumbLItem.actualSize.x / 2;
+        var thumbLElement:ILayoutElement =
+            LayoutElementFactory.getLayoutElementFor(thumb);
+        return pointToPosition(localX, localY) - thumbLElement.getLayoutWidth() / 2;
     }

     /**
@@ -147,7 +138,7 @@
 	        var r:Point = localToGlobal(o);
 			r = tipAsDisplayObject.parent.globalToLocal(r);

-			// TODO (jszeto) Change to use ILayoutItem.setActualPosition?
+			// TODO (jszeto) Change to use ILayoutElement.setLayoutPosition?
         	tipAsDisplayObject.x = Math.floor(r.x < 0 ? 0 : r.x);
         	tipAsDisplayObject.y = Math.floor(r.y < 0 ? 0 : r.y);
     	}


avoiding WeavePromise unhandled error logging

--- WeaveJS/src/weavejs/net/WeaveAdminService.as
+++ WeaveJS/src/weavejs/net/WeaveAdminService.as
@@ -241,7 +241,6 @@
 		{
 			var query:WeavePromise/*/<any>/*/ = service.invokeAsyncMethod(methodName, parameters);
 			var castedQuery:WeavePromise;
-			query.then(null, interceptFault.bind(this, query)); /* query? */

 			if (queued)
 				queue.addToQueue(query, service);
@@ -257,7 +256,7 @@
 				castedQuery = query;
 			}

-			castedQuery.then(hookHandler.bind(this, methodName, parameters));
+			castedQuery.then(hookHandler.bind(this, methodName, parameters), interceptFault);

 			if (!queued)
 				service.invokeDeferred(query);
@@ -282,7 +281,7 @@
 			PREVENT_FAULT_ALERT.set(query, true);
 		}

-		private function interceptFault(query:WeavePromise/*/<any>/*/, error:*):void
+		private function interceptFault(error:*):void
 		{
 			// if user has been signed out, clear the queue immediately
 			//JS.error(error);


Transferred from the Adobe Open Source Subversion Repository

Revision: 20821
Author:   dloverin@adobe.com
Date:     2011-03-11T20:53:58.779880Z

Log Message:
-----------
Merging r20792 through r20795 from hero_private.

Fix for GridItemEditor.save().
ASDoc change for DataGrid.startItemEditorSession().

QE notes: None.
Doc notes: None.
Bugs:
Reviewer:
Tests run:
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -3668,7 +3668,9 @@
     //--------------------------------------------------------------------------

     /**
-     *  Starts an editor session on a selected cell in the grid.
+     *  Starts an editor session on a selected cell in the grid. This method
+     *  by-passes checks of the editable property on the DataGrid and GridColumn
+     *  that prevent the user interface from starting an editor session.
      *
      *  A startItemEditorSession event is dispatched before
      *  an item editor is created. This allows a listener dynamically change
@@ -3683,7 +3685,9 @@
      *  @param columnIndex The zero-based column index of the cell to edit.
      *
      *  @return true if the editor session was started.
-     *  Returns false if the editor session was cancelled.
+     *  Returns false if the editor session was cancelled or was
+     *  otherwise unable to be started. Note that an editor session cannot be
+     *  started in a column that is not visible.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 17217
Author:   hmuller@adobe.com
Date:     2010-08-06T17:47:28.904096Z

Log Message:
-----------
The following bindable, read-only DataGrid and Grid properties are now writable: selectedIndex, selectedIndices, selectedCell, selectedCells, selectedItem, and selectedItems.  The property set methods are intended to enable developers to initialize the selection declaratively, they're not intended for programatic use.

DefaultGridItemRenderer uses createInFontContext() to create its text field to enable embedded fonts, RSLs.

QE notes: DataGrid
Doc notes:
Bugs: SDK-26988, SDK-27252
Reviewer: Carol, Alex
Tests run: DataGrid mustella,checkintests cyclone
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.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/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -236,7 +236,16 @@
     //
     //  Skin Part Property Internals
     //
-    //--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  A list of functions to be applied to the grid skin part at partAdded() time.
+     *  This list is used to defer making grid selection updates per the set methods for
+     *  the selectedIndex, selectedIndices, selectedItem, selectedItems, selectedCell
+     *  and selectedCells properties.
+     */
+    private const deferredGridOperations:Vector.<Function> = new Vector.<Function>();

     /**
      *  @private
@@ -946,6 +955,12 @@
             grid.addEventListener(FlexEvent.VALUE_COMMIT, grid_valueCommitHandler);
             grid.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, grid_changeEventHandler);
             grid.addEventListener("columnsChanged", grid_columnsChangedEventHandler);
+
+            // Deferred operations (grid selection updates)
+
+            for each (var deferredGridOperation:Function in deferredGridOperations)
+                deferredGridOperation(grid);
+            deferredGridOperations.length = 0;
         }

         if (instance == columnHeaderBar)
@@ -1026,6 +1041,25 @@
         return selectedCells.length ? selectedCells[0] : null;
     }

+    /**
+     *  @private
+     */
+    public function set selectedCell(value:CellPosition):void
+    {
+        if (grid)
+            grid.selectedCell = value;
+        else
+        {
+            const valueCopy:CellPosition = (value) ? new CellPosition(value.rowIndex, value.columnIndex) : null;
+
+            var f:Function = function(g:Grid):void
+            {
+                g.selectedCell = valueCopy;
+            }
+            deferredGridOperations.push(f);
+        }
+    }
+
     //----------------------------------
     //  selectedCells
     //----------------------------------
@@ -1046,6 +1080,24 @@
         return grid ? grid.selectedCells : gridSelection.allCells();
     }

+    /**
+     *  @private
+     */
+    public function set selectedCells(value:Vector.<CellPosition>):void
+    {
+        if (grid)
+            grid.selectedCells = value;
+        else
+        {
+            const valueCopy:Vector.<CellPosition> = (value) ? value.concat() : null;
+            var f:Function = function(g:Grid):void
+            {
+                g.selectedCells = valueCopy;
+            }
+            deferredGridOperations.push(f);
+        }
+    }
+
     //----------------------------------
     //  selectedIndex
     //----------------------------------
@@ -1066,9 +1118,26 @@
         if (grid)
             return grid.selectedIndex;

-        return selectedIndices.length ? selectedIndices[0] : -1;
-    }
-
+        return (selectedIndices.length > 0) ? selectedIndices[0] : -1;
+    }
+
+    /**
+     *  @private
+     */
+    public function set selectedIndex(value:int):void
+    {
+        if (grid)
+            grid.selectedIndex = value;
+        else
+        {
+            var f:Function = function(g:Grid):void
+            {
+                g.selectedIndex = value;
+            }
+            deferredGridOperations.push(f);
+        }
+    }
+
     //----------------------------------
     //  selectedIndices
     //----------------------------------
@@ -1089,6 +1158,24 @@
         return grid ? grid.selectedIndices : gridSelection.allRows();
     }

+    /**
+     *  @private
+     */
+    public function set selectedIndices(value:Vector.<int>):void
+    {
+        if (grid)
+            grid.selectedIndices = value;
+        else
+        {
+            const valueCopy:Vector.<int> = (value) ? value.concat() : null;
+            var f:Function = function(g:Grid):void
+            {
+                g.selectedIndices = valueCopy;
+            }
+            deferredGridOperations.push(f);
+        }
+    }
+
     //----------------------------------
     //  selectedItem
     //----------------------------------
@@ -1113,6 +1200,23 @@
             dataProvider.getItemAt(selectedIndex) : undefined;
     }

+    /**
+     *  @private
+     */
+    public function set selectedItem(value:Object):void
+    {
+        if (grid)
+            grid.selectedItem = value;
+        else
+        {
+            var f:Function = function(g:Grid):void
+            {
+                g.selectedItem = value;
+            }
+            deferredGridOperations.push(f);
+        }
+    }
+
     //----------------------------------
     //  selectedItems
     //----------------------------------
@@ -1140,6 +1244,24 @@

         return items;
     }
+
+    /**
+     *  @private
+     */
+    public function set selectedItems(value:Vector.<Object>):void
+    {
+        if (grid)
+            grid.selectedItems = value;
+        else
+        {
+            const valueCopy:Vector.<Object> = value.concat();
+            var f:Function = function(g:Grid):void
+            {
+                g.selectedItems = valueCopy;
+            }
+            deferredGridOperations.push(f);
+        }
+    }

     //----------------------------------
     //  selectionLength


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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:
--------------
151 paths were modified

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -75,6 +75,11 @@
  *  @see mx.graphics.TextBox
  *
  *  @includeExample examples/TextGraphicExample.mxml
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class TextGraphic extends TextGraphicElement
 {
@@ -108,6 +113,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function TextGraphic()
     {
@@ -271,6 +281,11 @@
      *    </tr>
      *  </table>
      *  </p>
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get content():Object
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20118
Author:   cframpto@adobe.com
Date:     2011-02-04T01:16:08.985955Z

Log Message:
-----------
Remove [Inspectable(environment="none")] metadata which I added recently to the content property of RichEditableText, RichText, and TextArea.  Apparently Catalyst generates code to these and design model needs them to be resolvable in code model.  As a bonus got a few ASdoc changes in TextArea that I've been working on for mobile text.

QE notes:
Doc notes:
Bugs:
Reviewer: Kevin
Tests run: spark compiles
Is noteworthy for integration:

Modified Paths:
--------------
<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/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TextArea.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -518,8 +518,6 @@
      */
     private var contentChanged:Boolean = false;

-    [Inspectable(environment="none")]
-
     /**
      *  @private
      *  This metadata tells the MXML compiler to disable some of its default


Transferred from the Adobe Open Source Subversion Repository

Revision: 19830
Author:   smgilson@adobe.com
Date:     2011-01-20T17:49:51.514869Z

Log Message:
-----------
Minor ASDoc edits

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/InteractionMode.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -317,13 +317,13 @@
  *  the Scroller specifies to clip the child to the boundaries and display scroll bars.

  *
  *
Not all Spark containers implement the IViewPort interface.
- *  Therefore, those containers, such as the Border and SkinnableContainer containers,
+ *  Therefore, those containers, such as the BorderContainer and SkinnableContainer containers,
  *  cannot be used as the direct child of the Scroller component.
  *  However, all Spark containers can have a Scroller component as a child component.
- *  For example, to use scroll bars on a child of the Spark Border container,
+ *  For example, to use scroll bars on a child of the Spark BorderContainer,
  *  wrap the child in a Scroller component.

  *
- *
To make the entire Border container scrollable, wrap it in a Group container.
+ *
To make the entire BorderContainer scrollable, wrap it in a Group container.
  *  Then, make the Group container the child of the Scroller component,
  *  For skinnable Spark containers that do not implement the IViewport interface,
  *  you can also create a custom skin for the container that
@@ -1397,7 +1397,7 @@
     //  Touch scrolling methods
     //
     //--------------------------------------------------------------------------
-
+
     /**
      *  @private
      *  Add touch listeners
@@ -2178,7 +2178,7 @@

         touchScrollHelper.startScrollWatch(event);
     }
-
+
     /**
      *  @private
      */
@@ -2186,7 +2186,7 @@
     {
         var xMove:int = 0;
         var yMove:int = 0;
-
+
         if (scrollerLayout && scrollerLayout.canScrollHorizontally)
             xMove = dragX;

@@ -2222,7 +2222,7 @@
         // clamp the values here
         newHSP = Math.min(Math.max(newHSP, -viewportWidth), maxWidth+viewportWidth);
         newVSP = Math.min(Math.max(newVSP, -viewportHeight), maxHeight+viewportHeight);
-
+
         viewport.horizontalScrollPosition = newHSP;
         viewport.verticalScrollPosition = newVSP;
     }
@@ -2291,141 +2291,141 @@
         // scrollbars in overlay mode
         skin.invalidateDisplayList();
     }
-
-	//--------------------------------------------------------------------------
-	//
-	//  Text selection auto scroll
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 *  When true, use the text selection scroll behavior instead of the
-	 *  typical "throw" behavior. This is only used when interactionMode="touch"
-	 */
-	mx_internal var textSelectionAutoScrollEnabled:Boolean = false;
-	private var textSelectionAutoScrollTimer:Timer;
-	private var minTextSelectionVScrollPos:int = 0;
-	private var maxTextSelectionVScrollPos:int = -1;
-	private var minTextSelectionHScrollPos:int = 0;
-	private var maxTextSelectionHScrollPos:int = -1;
-	private static const TEXT_SELECTION_AUTO_SCROLL_FPS:int = 10;
-
-	/**
-	 *  @private
-	 *  Change scroll behavior when selecting text.
-	 */
-	mx_internal function enableTextSelectionAutoScroll(enable:Boolean,
-					   minHScrollPosition:int = 0, maxHScrollPosition:int = -1,
-					   minVScrollPosition:int = 0, maxVScrollPosition:int = -1):void
-	{
-		if (getStyle("interactionMode") == InteractionMode.TOUCH)
-		{
-			this.textSelectionAutoScrollEnabled = enable;
-			this.minTextSelectionHScrollPos = minHScrollPosition;
-			this.maxTextSelectionHScrollPos = maxHScrollPosition;
-			this.minTextSelectionVScrollPos = minVScrollPosition;
-			this.maxTextSelectionVScrollPos = maxVScrollPosition;
-		}
-	}
-
-	/**
-	 *  @private
-	 */
-	mx_internal function setUpTextSelectionAutoScroll():void
-	{
-		if (!textSelectionAutoScrollTimer)
-		{
-			textSelectionAutoScrollTimer = new Timer(1000 / TEXT_SELECTION_AUTO_SCROLL_FPS);
-			textSelectionAutoScrollTimer.addEventListener(TimerEvent.TIMER,
-				textSelectionAutoScrollTimerHandler);
-
-			textSelectionAutoScrollTimer.start();
-		}
-	}
-
-	/**
-	 *  @private
-	 */
-	mx_internal function stopTextSelectionAutoScroll():void
-	{
-		if (textSelectionAutoScrollTimer)
-		{
-			textSelectionAutoScrollTimer.stop();
-			textSelectionAutoScrollTimer.removeEventListener(TimerEvent.TIMER,
-				textSelectionAutoScrollTimerHandler);
-			textSelectionAutoScrollTimer = null;
-		}
-	}
-
-	/**
-	 *  @private
-	 */
-	private function textSelectionAutoScrollTimerHandler(event:TimerEvent):void
-	{
-		const SLOW_SCROLL_THRESHOLD:int = 12;		// Distance from edge to trigger a slow scroll
-		const SLOW_SCROLL_SPEED:int = 20;			// Pixels per timer callback to scroll
-		const FAST_SCROLL_THRESHOLD:int = 3;		// Distance from edge to trigger a fast scroll
-		const FAST_SCROLL_DELTA:int = 30; 			// Added to SLOW_SCROLL_SPEED to determine fast speed
-
-		var newVSP:Number = viewport.verticalScrollPosition;
-		var newHSP:Number = viewport.horizontalScrollPosition;
-
-		if (scrollerLayout.canScrollHorizontally)
-		{
-			if (mouseX > width - SLOW_SCROLL_THRESHOLD)
-			{
-				newHSP += SLOW_SCROLL_SPEED;
-
-				if (mouseX > width - FAST_SCROLL_THRESHOLD)
-					newHSP += FAST_SCROLL_DELTA;
-
-				if (maxTextSelectionHScrollPos != -1 && newHSP > maxTextSelectionHScrollPos)
-					newHSP = maxTextSelectionHScrollPos;
-			}
-
-			if (mouseX < SLOW_SCROLL_THRESHOLD)
-			{
-				newHSP -= SLOW_SCROLL_SPEED;
-
-				if (mouseX < FAST_SCROLL_THRESHOLD)
-					newHSP -= FAST_SCROLL_DELTA;
-
-				if (newHSP < minTextSelectionHScrollPos)
-					newHSP = minTextSelectionHScrollPos;
-    		}
-		}
-
-		if (scrollerLayout.canScrollVertically)
-		{
-			if (mouseY > height - SLOW_SCROLL_THRESHOLD)
-			{
-				newVSP += SLOW_SCROLL_SPEED;
-
-				if (mouseY > height - FAST_SCROLL_THRESHOLD)
-					newVSP += FAST_SCROLL_DELTA;
-
-				if (maxTextSelectionVScrollPos != -1 && newVSP > maxTextSelectionVScrollPos)
-					newVSP = maxTextSelectionVScrollPos;
-			}
-
-			if (mouseY < SLOW_SCROLL_THRESHOLD)
-			{
-				newVSP -= SLOW_SCROLL_SPEED;
-
-				if (mouseY < FAST_SCROLL_THRESHOLD)
-					newVSP -= FAST_SCROLL_DELTA;
-
-				if (newVSP < minTextSelectionVScrollPos)
-					newVSP = minTextSelectionVScrollPos;
-			}
-		}
-
-		if (newHSP != viewport.horizontalScrollPosition)
-			viewport.horizontalScrollPosition = newHSP;
-		if (newVSP != viewport.verticalScrollPosition)
-			viewport.verticalScrollPosition = newVSP;
-	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Text selection auto scroll
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  When true, use the text selection scroll behavior instead of the
+     *  typical "throw" behavior. This is only used when interactionMode="touch"
+     */
+    mx_internal var textSelectionAutoScrollEnabled:Boolean = false;
+    private var textSelectionAutoScrollTimer:Timer;
+    private var minTextSelectionVScrollPos:int = 0;
+    private var maxTextSelectionVScrollPos:int = -1;
+    private var minTextSelectionHScrollPos:int = 0;
+    private var maxTextSelectionHScrollPos:int = -1;
+    private static const TEXT_SELECTION_AUTO_SCROLL_FPS:int = 10;
+
+    /**
+     *  @private
+     *  Change scroll behavior when selecting text.
+     */
+    mx_internal function enableTextSelectionAutoScroll(enable:Boolean,
+                       minHScrollPosition:int = 0, maxHScrollPosition:int = -1,
+                       minVScrollPosition:int = 0, maxVScrollPosition:int = -1):void
+    {
+        if (getStyle("interactionMode") == InteractionMode.TOUCH)
+        {
+            this.textSelectionAutoScrollEnabled = enable;
+            this.minTextSelectionHScrollPos = minHScrollPosition;
+            this.maxTextSelectionHScrollPos = maxHScrollPosition;
+            this.minTextSelectionVScrollPos = minVScrollPosition;
+            this.maxTextSelectionVScrollPos = maxVScrollPosition;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function setUpTextSelectionAutoScroll():void
+    {
+        if (!textSelectionAutoScrollTimer)
+        {
+            textSelectionAutoScrollTimer = new Timer(1000 / TEXT_SELECTION_AUTO_SCROLL_FPS);
+            textSelectionAutoScrollTimer.addEventListener(TimerEvent.TIMER,
+                textSelectionAutoScrollTimerHandler);
+
+            textSelectionAutoScrollTimer.start();
+        }
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function stopTextSelectionAutoScroll():void
+    {
+        if (textSelectionAutoScrollTimer)
+        {
+            textSelectionAutoScrollTimer.stop();
+            textSelectionAutoScrollTimer.removeEventListener(TimerEvent.TIMER,
+                textSelectionAutoScrollTimerHandler);
+            textSelectionAutoScrollTimer = null;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function textSelectionAutoScrollTimerHandler(event:TimerEvent):void
+    {
+        const SLOW_SCROLL_THRESHOLD:int = 12;       // Distance from edge to trigger a slow scroll
+        const SLOW_SCROLL_SPEED:int = 20;           // Pixels per timer callback to scroll
+        const FAST_SCROLL_THRESHOLD:int = 3;        // Distance from edge to trigger a fast scroll
+        const FAST_SCROLL_DELTA:int = 30;           // Added to SLOW_SCROLL_SPEED to determine fast speed
+
+        var newVSP:Number = viewport.verticalScrollPosition;
+        var newHSP:Number = viewport.horizontalScrollPosition;
+
+        if (scrollerLayout.canScrollHorizontally)
+        {
+            if (mouseX > width - SLOW_SCROLL_THRESHOLD)
+            {
+                newHSP += SLOW_SCROLL_SPEED;
+
+                if (mouseX > width - FAST_SCROLL_THRESHOLD)
+                    newHSP += FAST_SCROLL_DELTA;
+
+                if (maxTextSelectionHScrollPos != -1 && newHSP > maxTextSelectionHScrollPos)
+                    newHSP = maxTextSelectionHScrollPos;
+            }
+
+            if (mouseX < SLOW_SCROLL_THRESHOLD)
+            {
+                newHSP -= SLOW_SCROLL_SPEED;
+
+                if (mouseX < FAST_SCROLL_THRESHOLD)
+                    newHSP -= FAST_SCROLL_DELTA;
+
+                if (newHSP < minTextSelectionHScrollPos)
+                    newHSP = minTextSelectionHScrollPos;
+            }
+        }
+
+        if (scrollerLayout.canScrollVertically)
+        {
+            if (mouseY > height - SLOW_SCROLL_THRESHOLD)
+            {
+                newVSP += SLOW_SCROLL_SPEED;
+
+                if (mouseY > height - FAST_SCROLL_THRESHOLD)
+                    newVSP += FAST_SCROLL_DELTA;
+
+                if (maxTextSelectionVScrollPos != -1 && newVSP > maxTextSelectionVScrollPos)
+                    newVSP = maxTextSelectionVScrollPos;
+            }
+
+            if (mouseY < SLOW_SCROLL_THRESHOLD)
+            {
+                newVSP -= SLOW_SCROLL_SPEED;
+
+                if (mouseY < FAST_SCROLL_THRESHOLD)
+                    newVSP -= FAST_SCROLL_DELTA;
+
+                if (newVSP < minTextSelectionVScrollPos)
+                    newVSP = minTextSelectionVScrollPos;
+            }
+        }
+
+        if (newHSP != viewport.horizontalScrollPosition)
+            viewport.horizontalScrollPosition = newHSP;
+        if (newVSP != viewport.verticalScrollPosition)
+            viewport.verticalScrollPosition = newVSP;
+    }

     //--------------------------------------------------------------------------
     //
@@ -2911,7 +2911,7 @@
                 var scrollStartEvent:TouchInteractionEvent = new TouchInteractionEvent(TouchInteractionEvent.TOUCH_INTERACTION_START, true, true);
                 scrollStartEvent.relatedObject = scroller;
                 scrollStartEvent.reason = TouchInteractionReason.SCROLL;
-				dispatchBubblingEventOnMouseDownedDisplayObject(scrollStartEvent);
+                dispatchBubblingEventOnMouseDownedDisplayObject(scrollStartEvent);

                 isScrolling = true;

@@ -2968,11 +2968,11 @@
         // if we are scrolling (even if we just started scrolling)
         if (isScrolling)
         {
-			if (scroller.textSelectionAutoScrollEnabled)
-			{
-				scroller.setUpTextSelectionAutoScroll();
-				return;
-			}
+            if (scroller.textSelectionAutoScrollEnabled)
+            {
+                scroller.setUpTextSelectionAutoScroll();
+                return;
+            }

             // calculate the delta
             var dx:Number = event.stageX - scrollGestureAnchorPoint.x;
@@ -3058,14 +3058,14 @@
         if (!isScrolling)
             return;

-		// Don't throw if we're doing a text selection auto scroll
-		if (scroller.textSelectionAutoScrollEnabled)
-		{
-			scroller.stopTextSelectionAutoScroll();
-			endTouchScroll();
-			return;
-		}
-
+        // Don't throw if we're doing a text selection auto scroll
+        if (scroller.textSelectionAutoScrollEnabled)
+        {
+            scroller.stopTextSelectionAutoScroll();
+            endTouchScroll();
+            return;
+        }
+
         if (dragTimer)
         {
             if (dragScrollPending)
@@ -3123,13 +3123,13 @@
         }
         averageDt /= len-1;

-		// if off screen for some reason, let's end scrolling:
-		if (!scroller.stage)
-		{
+        // if off screen for some reason, let's end scrolling:
+        if (!scroller.stage)
+        {
             endTouchScroll();
-			return;
-		}
-
+            return;
+        }
+
         var lastMouseEventPoint:Point = mouseEventCoordinatesHistory[endIndex];

         // calculate the last velocity and make sure there was no pause that occurred
@@ -3225,40 +3225,40 @@

         return new Point(velX,velY);
     }
-
-	/**
-	 *  @private
-	 *  Helper method to dispatch bubbling events on mouseDownDisplayObject.  Since this
-	 *  object can be off the display list, this may be tricky.  Technically, we should
-	 *  grab all the live objects at the time of mouseDown and dispatch events to them
-	 *  manually, but instead, we just use this heuristic, which is dispatch it to
-	 *  mouseDownedDisplayObject.  If it's not inside of scroller and off the display list,
-	 *  then dispatch to scroller as well.
-	 *
-	 *
If you absolutely need to know the touch event ended, add event listeners
-	 *  to the mouseDownedDisplayObject directly and don't rely on event
-	 *  bubbling.

-	 */
-	private function dispatchBubblingEventOnMouseDownedDisplayObject(event:Event):Boolean
-	{
-		var eventAccepted:Boolean = true;
-		if (mouseDownedDisplayObject)
-		{
-			eventAccepted = eventAccepted && mouseDownedDisplayObject.dispatchEvent(event);
-			if (!mouseDownedDisplayObject.stage)
-			{
-				if (scroller && !scroller.contains(mouseDownedDisplayObject))
-					eventAccepted = eventAccepted && scroller.dispatchEvent(event);
-			}
-		}
-		else
-		{
-			eventAccepted = eventAccepted && scroller.dispatchEvent(event);
-		}
-
-		return eventAccepted;
-	}
-
+
+    /**
+     *  @private
+     *  Helper method to dispatch bubbling events on mouseDownDisplayObject.  Since this
+     *  object can be off the display list, this may be tricky.  Technically, we should
+     *  grab all the live objects at the time of mouseDown and dispatch events to them
+     *  manually, but instead, we just use this heuristic, which is dispatch it to
+     *  mouseDownedDisplayObject.  If it's not inside of scroller and off the display list,
+     *  then dispatch to scroller as well.
+     *
+     *
If you absolutely need to know the touch event ended, add event listeners
+     *  to the mouseDownedDisplayObject directly and don't rely on event
+     *  bubbling.

+     */
+    private function dispatchBubblingEventOnMouseDownedDisplayObject(event:Event):Boolean
+    {
+        var eventAccepted:Boolean = true;
+        if (mouseDownedDisplayObject)
+        {
+            eventAccepted = eventAccepted && mouseDownedDisplayObject.dispatchEvent(event);
+            if (!mouseDownedDisplayObject.stage)
+            {
+                if (scroller && !scroller.contains(mouseDownedDisplayObject))
+                    eventAccepted = eventAccepted && scroller.dispatchEvent(event);
+            }
+        }
+        else
+        {
+            eventAccepted = eventAccepted && scroller.dispatchEvent(event);
+        }
+
+        return eventAccepted;
+    }
+
     /**
      *  @private
      *  When the touchScrollThrow is over, we should dispatch a touchInteractionEnd.


Check autoReady_v1 in a backwards compatible way (old games won't have set it
at all).

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@338 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/ezgame/client/GameControlBackend.as
+++ src/as/com/threerings/ezgame/client/GameControlBackend.as
@@ -140,8 +140,12 @@
         evt.ezProps = new Object();
         populateProperties(evt.ezProps);

+        // determine whether to automatically start the game in a backwards compatible way
+        var autoReady :Boolean =
+            ("autoReady_v1" in evt.userProps) ? evt.userProps["autoReady_v1"] : true;
+
         // ok, we're now hooked-up with the game code
-        _ctrl.userCodeIsConnected(evt.userProps["autoReady_v1"]);
+        _ctrl.userCodeIsConnected(autoReady);
     }

     protected function setUserCodeProperties (o :Object) :void


fade broadcast lines

fade broadcast lines

--- src/battlecode/client/viewer/render/BroadcastAnimation.as
+++ src/battlecode/client/viewer/render/BroadcastAnimation.as
@@ -24,9 +24,9 @@
             this.graphics.clear();

             if (!RenderConfiguration.showBroadcast()) return;
-            this.graphics.lineStyle(.5 - (i / 12), (team == Team.A) ? BROADCAST_COLOR_A : BROADCAST_COLOR_B);
             for (var i:uint = 0; i < 24; i++) {
                 if (broadcasts & (1 << i)) {
+                    this.graphics.lineStyle(.5 - (i / 12), (team == Team.A) ? BROADCAST_COLOR_A : BROADCAST_COLOR_B, (24 - i) / 24);
                     this.graphics.drawCircle(0, 0, i * 4 * RenderConfiguration.getScalingFactor());
                 }
             }


use POST when interactive with signature endpoint

--- flex_src/src/com/nathancolgate/S3Signature.as
+++ flex_src/src/com/nathancolgate/S3Signature.as
@@ -52,9 +52,10 @@
 					variables[key] = file_params[key];
 			}

-			request			= new URLRequest(signature);
-			request.method	= URLRequestMethod.GET;
-			request.data	= variables;
+			request	= new URLRequest(signature);
+			request.method = URLRequestMethod.POST;
+			request.data = variables;
+			request.contentType = 'application/x-www-form-urlencoded';

 			signatureLoader	= new URLLoader();
 			signatureLoader.dataFormat = URLLoaderDataFormat.TEXT;


Refix conflicts.

Refix conflicts.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -2408,16 +2408,8 @@
 			if(tag.frameType != FLVTagVideo.FRAME_TYPE_KEYFRAME)
 				return false;

-<<<<<<< HEAD
-			// And config record.
-			if(tag.avcPacketType == 0)
-				return true;
-
-			return false;
-=======
 			// If config record, then it's an AVCC!
 			return tag.avcPacketType == 0;
->>>>>>> 5d34185cacedb32d372fe6dc410ff4e127295d27
 		}

@@ -2426,13 +2418,8 @@
 			if(!tag)
 				return false;

-<<<<<<< HEAD
-			// But not config record.
-			if(tag.avcPacketType == 0)
-=======
 			// Must be keyframe.
 			if(tag.frameType != FLVTagVideo.FRAME_TYPE_KEYFRAME)
->>>>>>> 5d34185cacedb32d372fe6dc410ff4e127295d27
 				return false;

 			// It's an I-frame if not a config record!


Transferred from the Adobe Open Source Subversion Repository

Revision: 1968
Author:   jimurphy@adobe.com
Date:     2008-06-05T15:31:56.961691Z

Log Message:
-----------
Merge 3.0.x revisions [1940,1954] -> trunk

Modified Paths:
--------------
<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/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.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/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</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/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as
+++ frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as
@@ -18,7 +18,7 @@
 /**
  *  The skin for the TitleBar of a WindowedApplication or Window.
  *
- *  @productversion Apollo 1.0
+ *  @playerversion AIR 1.1
  */
 public class ApplicationTitleBarBackgroundSkin extends ProgrammaticSkin
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20374
Author:   smgilson@adobe.com
Date:     2011-02-18T14:57:58.468559Z

Log Message:
-----------
ASdoc leanup - fix broken links, update for event name changes, remove FlashPlayer version tags.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers/PersistenceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewReturnObject.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/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/TextInputOperation.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers/IPersistenceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/StyleableTextFieldTextStyles.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/managers/IPersistenceManager.as
+++ frameworks/projects/mobilecomponents/src/spark/managers/IPersistenceManager.as
@@ -14,13 +14,13 @@

 /**
  *  IPersistenceManager defines the interface that all persistence
- *  managers must follow.  These objects are responsible for
+ *  managers must implement.
+ *  These objects are responsible for
  *  persisting data between application sessions.
  *
  *  @see spark.managers.PersistenceManager
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -37,7 +37,6 @@
      *  manager.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -45,12 +44,11 @@

     /**
      *  Flushes the data being managed by the persistence manager to
-     *  disk or another external storage file.
+     *  disk, or to another external storage file.
      *
      *  @return true if the operation is successful.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -62,7 +60,6 @@
      *  @return true if the operation is successful.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -70,13 +67,13 @@

     /**
      *  Returns the value of a property stored in the persistence manager.
+     *  Properties are saved as key:value pairs.
      *
      *  @param key The property key.
      *
      *  @return The value of a property stored in the persistence manager.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -84,13 +81,13 @@

     /**
      *  Stores a value in the persistence manager.
+     *  Properties are saved as key:value pairs.
      *
      *  @param key The key to use to store the value.
      *
      *  @param value The value object to store.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */


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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPAttribute.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPAttribute.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 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.olap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

--- frameworks/projects/framework/src/mx/accessibility/AccConst.as
+++ frameworks/projects/framework/src/mx/accessibility/AccConst.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2006 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.accessibility
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8309
Author:   aharui@adobe.com
Date:     2009-06-26T15:41:04.510261Z

Log Message:
-----------
Fix bugs in WindowedSystemManager related to drag-drop, off-screen mouse events, performance when lots of windows are up, and some cleanup

QE Notes: None
Doc Notes: None
Bugs: SDK-21507, SDK-20619, SDK-21453, SDK-21539
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<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/managers/systemClasses/MarshallingSupport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/StageEventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -58,6 +58,7 @@
 import mx.events.DynamicEvent;
 import mx.events.FlexEvent;
 import mx.events.ResizeEvent;
+import mx.events.SandboxMouseEvent;
 import mx.preloaders.Preloader;
 import mx.utils.LoaderUtil;

@@ -1359,6 +1360,24 @@
 											  priority:int = 0,
 											  useWeakReference:Boolean = false):void
 	{
+		if (type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN
+				|| type == Event.ACTIVATE || type == Event.DEACTIVATE)
+		{
+			// also listen to stage if allowed
+			try
+			{
+				if (stage)
+				{
+                    // Use weak listener because we don't always know when we
+                    // no longer need this listener
+					stage.addEventListener(type, stageEventHandler, false, 0, true);
+				}
+			}
+			catch (error:SecurityError)
+			{
+			}
+		}
+
         if (hasEventListener("addEventListener"))
         {
             var request:DynamicEvent = new DynamicEvent("addEventListener", false, true);
@@ -1369,6 +1388,28 @@
             request.useWeakReference = useWeakReference;
 		    if (!dispatchEvent(request))
 			    return;
+        }
+
+        if (type == SandboxMouseEvent.MOUSE_UP_SOMEWHERE)
+        {
+            // If someone wants this event, also listen for mouseLeave.
+            // Use weak listener because we don't always know when we
+            // no longer need this listener
+            try
+            {
+			    if (stage)
+			    {
+				    stage.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler, false, 0, true);
+                }
+                else
+                {
+					super.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler, false, 0, true);
+                }
+			}
+			catch (error:SecurityError)
+			{
+				super.addEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler, false, 0, true);
+			}
         }

 		// These two events will dispatched to applications in sandboxes.
@@ -1450,17 +1491,15 @@

 			try
 			{
-			    // Remove both listeners in case the system manager was added
-			    // or removed from the stage after the listener was added.
 				if (stage)
 					stage.removeEventListener(type, listener, useCapture);
-
-					super.removeEventListener(type, listener, useCapture);
 			}
 			catch (error:SecurityError)
 			{
-				super.removeEventListener(type, listener, useCapture);
 			}
+			// Remove both listeners in case the system manager was added
+			// or removed from the stage after the listener was added.
+			super.removeEventListener(type, listener, useCapture);

 			return;
 		}
@@ -1484,7 +1523,47 @@
         {
             super.removeEventListener(type, listener, useCapture);
         }
-	}
+
+		if (type == MouseEvent.MOUSE_MOVE || type == MouseEvent.MOUSE_UP || type == MouseEvent.MOUSE_DOWN
+				|| type == Event.ACTIVATE || type == Event.DEACTIVATE)
+		{
+            if (!hasEventListener(type))
+            {
+			    // also listen to stage if allowed
+			    try
+			    {
+				    if (stage)
+				    {
+					    stage.removeEventListener(type, stageEventHandler, false);
+				    }
+			    }
+			    catch (error:SecurityError)
+			    {
+			    }
+            }
+		}
+
+        if (type == SandboxMouseEvent.MOUSE_UP_SOMEWHERE)
+        {
+            if (!hasEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE))
+            {
+                // nobody wants this event any more for now
+                try
+                {
+			        if (stage)
+			        {
+				        stage.removeEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler);
+                    }
+			    }
+			    catch (error:SecurityError)
+			    {
+			    }
+			    // Remove both listeners in case the system manager was added
+			    // or removed from the stage after the listener was added.
+			    super.removeEventListener(Event.MOUSE_LEAVE, mouseLeaveHandler);
+            }
+        }
+    }

 	//--------------------------------------------------------------------------
 	//
@@ -3190,9 +3269,26 @@
 		    dispatchEvent(dynamicEvent);
         }
     }
+
+    /**
+     *  @private
+     *  dispatch certain stage events from sandbox root
+     */
+    private function stageEventHandler(event:Event):void
+    {
+        if (event.target is Stage)
+            dispatchEvent(event);
+    }
+
+    /**
+     *  @private
+     *  convert MOUSE_LEAVE to MOUSE_UP_SOMEWHERE
+     */
+    private function mouseLeaveHandler(event:Event):void
+    {
+        dispatchEvent(new SandboxMouseEvent(SandboxMouseEvent.MOUSE_UP_SOMEWHERE));
+    }
+
 }

 }
-
-
-


Transferred from the Adobe Open Source Subversion Repository

Revision: 4790
Author:   jimurphy@adobe.com
Date:     2009-02-02T18:13:13.580538Z

Log Message:
-----------
Merged 3.x revisions 4710-4711,4741,4746-4747,4755,4777,4787 -> trunk

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/dataGridClasses/DataGridColumn.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/modules/compiler/src/java/flex2/tools_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</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/framework/src/mx/formatters/NumberBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloFocusRect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -70,6 +70,7 @@
 import mx.styles.IStyleClient;
 import mx.styles.StyleManager;
 import mx.events.EventListenerRequest;
+import mx.events.FlexChangeEvent;
 import mx.events.InvalidateRequestData;
 import mx.events.InterManagerRequest;
 import mx.events.ResizeEvent;
@@ -482,16 +483,6 @@
 	 */
 	private var lastFrame:int;

-    /**
-     *  @private
-     *  Map a bridge to a FocusManager.
-     *  This is only for Focus Managers that are
-     *  not the focus manager for document. Because the bridges are not in document
-     *  they are bridges inside of pop ups.
-     *  The returned object is an object of type IFocusManager.
-     */
-     private var bridgeToFocusManager:Dictionary;
-
 	//--------------------------------------------------------------------------
 	//
 	//  Overridden properties: DisplayObject
@@ -653,6 +644,48 @@
 		_applicationIndex = value;
 	}

+    //----------------------------------
+    //  bridgeToFocusManager
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Map a bridge to a FocusManager.
+     *  This dictionary contains both the focus managers for this document as
+     *  well as focus managers that are in documents contained inside of pop
+     *  ups, if the system manager in that pop up requires a bridge to
+     *  communicate with this system manager.
+     *
+     *  The returned object is an object of type IFocusManager.
+     */
+    private var _bridgeToFocusManager:Dictionary;
+
+    /**
+     *   @private
+     *
+     *   System Managers in child application domains use their parent's
+     *   bridgeToFocusManager's Dictionary. The swfBridgeGroup property
+     *   is maintained in the same way.
+     */
+    mx_internal function get bridgeToFocusManager():Dictionary
+    {
+        if (topLevel)
+            return _bridgeToFocusManager;
+        else if (topLevelSystemManager)
+            return SystemManager(topLevelSystemManager).bridgeToFocusManager;
+
+        return null;
+    }
+
+    mx_internal function set bridgeToFocusManager(bridgeToFMDictionary:Dictionary):void
+    {
+        if (topLevel)
+            _bridgeToFocusManager = bridgeToFMDictionary;
+        else if (topLevelSystemManager)
+            SystemManager(topLevelSystemManager).bridgeToFocusManager = bridgeToFMDictionary;
+
+    }
+
 	//----------------------------------
 	//  cursorChildren
 	//----------------------------------
@@ -1116,26 +1149,26 @@
 	private var _swfBridgeGroup:ISWFBridgeGroup;

-	public function get swfBridgeGroup():ISWFBridgeGroup
-	{
-		if (topLevel)
-			return _swfBridgeGroup;
-		else if (topLevelSystemManager)
-			return topLevelSystemManager.swfBridgeGroup;
-
-		return null;
-	}
-
-	public function set swfBridgeGroup(bridgeGroup:ISWFBridgeGroup):void
-	{
-		if (topLevel)
-			_swfBridgeGroup = bridgeGroup;
-		else if (topLevelSystemManager)
-			SystemManager(topLevelSystemManager).swfBridgeGroup = bridgeGroup;
-
-	}
-
-	//--------------------------------------------------------------------------
+    public function get swfBridgeGroup():ISWFBridgeGroup
+    {
+        if (topLevel)
+            return _swfBridgeGroup;
+        else if (topLevelSystemManager)
+            return topLevelSystemManager.swfBridgeGroup;
+
+        return null;
+    }
+
+    public function set swfBridgeGroup(bridgeGroup:ISWFBridgeGroup):void
+    {
+        if (topLevel)
+            _swfBridgeGroup = bridgeGroup;
+        else if (topLevelSystemManager)
+            SystemManager(topLevelSystemManager).swfBridgeGroup = bridgeGroup;
+
+    }
+
+ 	//--------------------------------------------------------------------------
 	//  screen
 	//--------------------------------------------------------------------------

@@ -4798,6 +4831,9 @@
         bridgeToFocusManager[bridge] = fm;

         addChildBridgeListeners(bridge);
+
+        // dispatch message that we are adding a bridge.
+        dispatchEvent(new FlexChangeEvent(FlexChangeEvent.ADD_CHILD_BRIDGE, false, false, bridge));
 	}

 	/**
@@ -4807,6 +4843,9 @@
 	 */
 	public function removeChildBridge(bridge:IEventDispatcher):void
 	{
+        // dispatch message that we are removing a bridge.
+        dispatchEvent(new FlexChangeEvent(FlexChangeEvent.REMOVE_CHILD_BRIDGE, false, false, bridge));
+
         var fm:IFocusManager = IFocusManager(bridgeToFocusManager[bridge]);
         fm.removeSWFBridge(bridge);
    		swfBridgeGroup.removeChildBridge(bridge);
@@ -4952,9 +4991,10 @@
 				parent = parent.parent;
 			}
 		}
-		catch (error:SecurityError)
-		{
-			// don't have access to parent
+		catch (error:Error)
+		{
+			// Either we don't have security access to a parent or
+			// the swf is unloaded and loaderInfo.childAllowsParent is throwing Error #2099.
 		}

 		return lastParent != null ? lastParent : DisplayObject(sm);


FLEX-24142 stopped RTE

FLEX-24142 stopped RTE

--- frameworks/projects/mx/src/mx/controls/sliderClasses/Slider.as
+++ frameworks/projects/mx/src/mx/controls/sliderClasses/Slider.as
@@ -2149,7 +2149,7 @@
             lowerBound = Math.max(lowerBound, tOff);
         }

-        if (thumbs.numChildren > 0)
+        if (thumbs && thumbs.numChildren > 0)
         {
             thumbY = (track.height - SliderThumb(thumbs.getChildAt(0)).getExplicitOrMeasuredHeight()) / 2 +
                      getStyle("thumbOffset");