Transferred from the Adobe Open Source Subversion Repository

Revision: 17031
Author:   chiedozi@adobe.com
Date:     2010-07-23T05:55:48.651706Z

Log Message:
-----------
Renamed FlexEvent.DEACTIVATE (deactivate) to FlexEvent.VIEW_DEACTIVATE (viewDeactivate) to fix an event name collision with EventDispatcher.

QE notes:
Doc notes:
Bugs: SDK-27067
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/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>

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

--- frameworks/projects/framework/src/mx/events/FlexEvent.as
+++ frameworks/projects/framework/src/mx/events/FlexEvent.as
@@ -34,38 +34,6 @@
     //--------------------------------------------------------------------------

     /**
-     *  The FlexEvent.ACTIVATE constant defines the value of the
-     *  type property of the event object for an activate
-     *  event.  This event is dispatched when a component is activated.
-     *
-     *
The properties of the event object have the following values:

-     *
-     *

-     *
Property	Value

-     *
bubbles	false

-     *
cancelable	false

-     *
returnValue	null

-     *
currentTarget	The Object that defines the
-     *       event listener that handles the event. For example, if you use
-     *       myButton.addEventListener() to register an event listener,
-     *       myButton is the value of the currentTarget.

-     *
target	The Object that dispatched the event;
-     *       it is not always the Object listening for the event.
-     *       Use the currentTarget property to always access the
-     *       Object listening for the event.

-     *
Type	FlexEvent.ACTIVATE

-     *

-     *
-     *  @eventType activate
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public static const VIEW_ACTIVATE:String = "viewActivate";
-
-    /**
      *  The FlexEvent.ADD constant defines the value of the
      *  type property of the event object for an add event.
      *
@@ -378,38 +346,6 @@
      *  @productversion Flex 3
      */
     public static const DATA_CHANGE:String = "dataChange";
-
-    /**
-     *  The FlexEvent.DEACTIVATE constant defines the value of the
-     *  type property of the event object for an deactivate
-     *  event.  This event is dispatched when a component is deactivated.
-     *
-     *
The properties of the event object have the following values:

-     *
-     *

-     *
Property	Value

-     *
bubbles	false

-     *
cancelable	false

-     *
returnValue	null

-     *
currentTarget	The Object that defines the
-     *       event listener that handles the event. For example, if you use
-     *       myButton.addEventListener() to register an event listener,
-     *       myButton is the value of the currentTarget.

-     *
target	The Object that dispatched the event;
-     *       it is not always the Object listening for the event.
-     *       Use the currentTarget property to always access the
-     *       Object listening for the event.

-     *
Type	FlexEvent.DEACTIVATE

-     *

-     *
-     *  @eventType deactivate
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public static const DEACTIVATE:String = "deactivate";

     /**
      *  The FlexEvent.ENTER constant defines the value of the
@@ -1282,7 +1218,70 @@
      *  @productversion Flex 3
      */
     public static const VALUE_COMMIT:String = "valueCommit";
-
+
+	/**
+	 *  The FlexEvent.VIEW_ACTIVATE constant defines the value of the
+	 *  type property of the event object for an viewActivate
+	 *  event.  This event is dispatched when a component is activated.
+	 *
+	 *
The properties of the event object have the following values:

+	 *
+	 *

+	 *
Property	Value

+	 *
bubbles	false

+	 *
cancelable	false

+	 *
returnValue	null

+	 *
currentTarget	The Object that defines the
+	 *       event listener that handles the event. For example, if you use
+	 *       myButton.addEventListener() to register an event listener,
+	 *       myButton is the value of the currentTarget.

+	 *
target	The Object that dispatched the event;
+	 *       it is not always the Object listening for the event.
+	 *       Use the currentTarget property to always access the
+	 *       Object listening for the event.

+	 *
Type	FlexEvent.VIEW_ACTIVATE

+	 *

+	 *
+	 *  @eventType activate
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public static const VIEW_ACTIVATE:String = "viewActivate";
+
+	/**
+	 *  The FlexEvent.VIEW_DEACTIVATE constant defines the value of the
+	 *  type property of the event object for an viewDeactivate
+	 *  event.  This event is dispatched when a component is deactivated.
+	 *
+	 *
The properties of the event object have the following values:

+	 *
+	 *

+	 *
Property	Value

+	 *
bubbles	false

+	 *
cancelable	false

+	 *
returnValue	null

+	 *
currentTarget	The Object that defines the
+	 *       event listener that handles the event. For example, if you use
+	 *       myButton.addEventListener() to register an event listener,
+	 *       myButton is the value of the currentTarget.

+	 *
target	The Object that dispatched the event;
+	 *       it is not always the Object listening for the event.
+	 *       Use the currentTarget property to always access the
+	 *       Object listening for the event.

+	 *
Type	FlexEvent.VIEW_DEACTIVATE

+	 *

+	 *
+	 *  @eventType deactivate
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public static const VIEW_DEACTIVATE:String = "viewDeactivate";

     //--------------------------------------------------------------------------
     //


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

--- frameworks/projects/framework/src/mx/graphics/IStroke.as
+++ frameworks/projects/framework/src/mx/graphics/IStroke.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.graphics
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 14878
Author:   matamel@adobe.com
Date:     2010-03-19T13:34:54.578308Z

Log Message:
-----------
Bug: BLZ-501 - Login-after-disconnect flag does not work after session timeout
QA: Yes
Doc: No

Details: MessageAgent#reAuthorize method was calling MessageAgent#disconnect method with the assumption that this fully disconnected the Channel and internalSend triggers a reauthentication (login) with Channel#interalConnect and cached credentials. This was a wrong assumption in cases where multiple MessageAgents use the Channel. Now, instead, ChannelSet#disconnectAll is called to make sure Channel is fully disconnected which in turn makes sure Channel#internalConnect is called with cached credentials.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as

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

--- frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
+++ frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
@@ -1310,12 +1310,12 @@
     }

     /**
-     * This function should be overriden by sublasses to implement re-authorization due to
-     * server session time-out behavior specific to them.  In general it should
-     * follow disconnect, connect, re-send message pattern
+     * This function should be overriden by sublasses to implement reauthentication due to
+     * server session time-out behavior specific to them. In general, it should follow disconnect,
+     * connect, resend message pattern.
      *
      *  @param msg The message that caused the fault and should be resent once we have
-     *  disconnected/connected causing re-authentication.
+     *  disconnected/connected causing reauthentication.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -1325,7 +1325,11 @@
      */
     protected function reAuthorize(msg:IMessage):void
     {
-        disconnect();
+        // Disconnect all message agents from the Channel to make sure the Channel
+        // is fully disconnected and Channel#internalConnect gets called which
+        // sends the login command to reauthenticate the Channel.
+        if (channelSet != null)
+            channelSet.disconnectAll();
         internalSend(msg);
     }


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

--- frameworks/projects/rpc/src/mx/rpc/events/InvokeEvent.as
+++ frameworks/projects/rpc/src/mx/rpc/events/InvokeEvent.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.rpc.events
 {


fix manifest load retry counter not being reset properly after successfull loading related to #308

--- src/org/mangui/hls/loader/LevelLoader.as
+++ src/org/mangui/hls/loader/LevelLoader.as
@@ -175,6 +175,9 @@
         /** parse a playlist **/
         private function _parseLevelPlaylist(string : String, url : String, level : int, metrics : HLSLoadMetrics) : void {
             if (string != null && string.length != 0) {
+                // successful loading, reset retry counter
+                _retryTimeout = 1000;
+                _retryCount = 0;
                 CONFIG::LOGGING {
                     Log.debug("level " + level + " playlist:\n" + string);
                 }


added support for object literal syntax

added support for object literal syntax

--- WeaveCore/src/weave/compiler/Compiler.as
+++ WeaveCore/src/weave/compiler/Compiler.as
@@ -423,6 +423,14 @@

 			// impure operators
 			operators["["] = function(...args):* { return args; }; // array creation
+			operators["{"] = function(...args):Object // object creation
+			{
+				var o:Object = {};
+				var end:int = args.length - 1;
+				for (var i:int = 0; i < end; i += 2)
+					o[args[i]] = args[i + 1];
+				return o;
+			}
 			operators[OPERATOR_NEW] = function(classOrQName:Object, ...params):Object
 			{
 				var classDef:Class = classOrQName as Class;
@@ -446,6 +454,7 @@
 			};
 			operators[FUNCTION] = function(..._):*{};
 			operators['=>'] = function(..._):*{};
+			operators[':'] = function(key:String, value:*):* { this[key] = value; };
 			// property access should not be optimized to constants
 			operators["."] = function(object:*, ...chain):* {
 				var iHost:int = chain.length - 2;
@@ -933,7 +942,7 @@
 				tokens.splice(left - 1, end - left + 1, compileOperator('?:', [condition, trueBranch, falseBranch]));
 			}
 			// stop if any branch operators remain
-			if (Math.max(tokens.indexOf('?'), tokens.indexOf(':')) >= 0)
+			if (Math.max(tokens.indexOf('?')) >= 0)
 				throw new Error('Invalid conditional branch');

 			// next step: inline functions, right to left
@@ -967,6 +976,27 @@
 					throw new Error("Misplaced '" + tokens[i] + "'");
 				tokens.splice(i - 1, 3, compileVariableAssignment(tokens[i - 1], tokens[i], tokens[i + 1]));
 			}
+
+			//next step: object literal property declarations: [variable, ":", expr]
+			for (i = 0; i < tokens.length; i++)
+			{
+				if (tokens[i + 1] == ':' && tokens[i + 2] is ICompiledObject)
+				{
+					var constant:CompiledConstant = tokens[i] as CompiledConstant;
+					if (constant && !(constant.value is String) && constants.hasOwnProperty(constant.name) && isValidSymbolName(constant.name))
+						constant = new CompiledConstant(constant.name, constant.name);
+
+					call = tokens[i] as CompiledFunctionCall;
+					if (isVariableLookup(call))
+						constant = call.compiledMethod as CompiledConstant;
+
+					if (constant && constant.value is String)
+						tokens.splice(i, 3, compileOperator(":", [constant, tokens[i + 2]]));
+				}
+			}
+			// stop if any ":" remain
+			if (tokens.indexOf(':') >= 0)
+				throw new Error('Misplaced ":"');

 			// next step: commas
 			compileInfixOperators(tokens, [',']);
@@ -1302,9 +1332,39 @@

 				if (leftBracket == '{')
 				{
+					var block:ICompiledObject = compileTokens(subArray, true);
+					var blockCall:CompiledFunctionCall = block as CompiledFunctionCall;
+					if (blockCall)
+					{
+						var blockItems:Array;
+						if (blockCall.evaluatedMethod == operators[';'] && blockCall.compiledParams.length == 0)
+							blockItems = [];
+						if (blockCall.evaluatedMethod == operators[','])
+							blockItems = blockCall.compiledParams;
+						if (blockCall.evaluatedMethod == operators[':'])
+							blockItems = [blockCall];
+						if (blockItems && (blockItems.length == 0 || StandardLib.getArrayType(blockItems) == CompiledFunctionCall))
+						{
+							var params:Array = [];
+							for each (var item:CompiledFunctionCall in blockItems)
+							{
+								if (item.evaluatedMethod != operators[':'])
+								{
+									params = null;
+									break;
+								}
+								params.push(item.compiledParams[0], item.compiledParams[1]);
+							}
+							if (params != null)
+							{
+								tokens.splice(open, 2, compileOperator('{', params));
+								continue;
+							}
+						}
+					}
 					// It's ok if it creates an extra {} wrapper because finalize() will take care of that.
 					// It's important to remember that the brackets existed for statement processing.
-					tokens.splice(open, 2, compileOperator(';', [compileTokens(subArray, true)]));
+					tokens.splice(open, 2, compileOperator(';', [block]));
 					continue;
 				}

@@ -1758,7 +1818,7 @@
 						}

 						// if there is only a single variable, wrap it in an operator ',' call
-						if (!call.compiledParams || call.evaluatedMethod == operators['='])
+						if (isVariableLookup(call) || call.evaluatedMethod == operators['='])
 							tokens[startIndex + iPattern] = token = call = compileOperator(',', [call]);

 						// special case for "for (var x in y) { }"
@@ -1766,7 +1826,7 @@
 						{
 							// check the variable
 							call = call.compiledParams[0] as CompiledFunctionCall;
-							if (!call || call.compiledParams) // not a variable?
+							if (!isVariableLookup(call))
 								throwInvalidSyntax(stmt);
 							// save single variable name
 							varNames = [call.evaluatedMethod];
@@ -1783,7 +1843,7 @@
 							if (!variable)
 								throwInvalidSyntax(stmt);

-							if (!variable.compiledParams) // local initialization
+							if (isVariableLookup(variable)) // local initialization
 							{
 								// variable initialization only -- remove from ',' params
 								call.compiledParams.splice(iParam--, 1);
@@ -2056,6 +2116,9 @@

 			var method:Object = call.evaluatedMethod;

+			if (method == operators[':'])
+				throw new Error("Invalid object literal syntax");
+
 			// remove var declarations from their current locations
 			if (method == operators[ST_VAR])
 			{
@@ -2160,7 +2223,7 @@
 			}

 			// special case for variable lookup
-			if (!call.compiledParams)
+			if (isVariableLookup(call))
 				return decompileObject(call.compiledMethod);

 			var cMethod:CompiledConstant = call.compiledMethod as CompiledConstant
@@ -2194,7 +2257,7 @@
 						var variable:CompiledFunctionCall = null;
 						try {
 							variable = compileToObject(constant.value) as CompiledFunctionCall;
-							if (variable.compiledParams)
+							if (!isVariableLookup(variable))
 								variable = null;
 						} catch (e:Error) { }

@@ -2270,9 +2333,10 @@
 		 * @param useThisScope If this is set to true, properties of 'this' can be accessed as if they were local variables.
 		 * @param paramNames This specifies local variable names to be associated with the arguments passed in as parameters to the compiled function.
 		 * @param paramDefaults This specifies default values corresponding to the parameter names.  This must be the same length as the paramNames array.
+		 * @param flattenFunctionDefinition If set to true and the compiledObject represents a function definition, that function definition will be evaluated and returned.
 		 * @return A Function that takes any number of parameters and returns the result of evaluating the ICompiledObject.
 		 */
-		public function compileObjectToFunction(compiledObject:ICompiledObject, symbolTable:Object, errorHandler:Function, useThisScope:Boolean, paramNames:Array = null, paramDefaults:Array = null):Function
+		public function compileObjectToFunction(compiledObject:ICompiledObject, symbolTable:Object, errorHandler:Function, useThisScope:Boolean, paramNames:Array = null, paramDefaults:Array = null, flattenFunctionDefinition:Boolean = true):Function
 		{
 			if (compiledObject == null)
 				return null;
@@ -2551,7 +2615,7 @@
 								if (method === Object)
 								{
 									var params:Array = call.evaluatedParams;
-									result = {}
+									result = {};
 									for (i = 0; i < params.length - 1; i += 2)
 										result[params[i]] = params[i + 1];
 								}
@@ -2588,7 +2652,8 @@
 								errorHandler,
 								cascadeThisScope,
 								funcParams[FUNCTION_PARAM_NAMES],
-								funcParams[FUNCTION_PARAM_VALUES]
+								funcParams[FUNCTION_PARAM_VALUES],
+								false
 							);
 						}
 						else if (call.evaluatedHost is Proxy)
@@ -2670,13 +2735,22 @@
 			};

 			// if the compiled object is a function definition, return that function definition instead of the wrapper.
-			if (compiledObjectIsFunctionDefinition(compiledObject))
+			if (flattenFunctionDefinition && compiledObjectIsFunctionDefinition(compiledObject))
 			{
 				cascadeThisScope = useThisScope;
 				return wrapperFunction() as Function;
 			}

 			return wrapperFunction;
+		}
+
+		/**
+		 * Tests if a token is a variable lookup.
+		 */
+		private function isVariableLookup(token:Object):Boolean
+		{
+			var cfc:CompiledFunctionCall = token as CompiledFunctionCall;
+			return cfc && !cfc.compiledParams;
 		}

 		/**


Added check for null column

Added check for null column

Change-Id: I0df4dcd73525b94a04b48d1cf0633bdb41691d6a

--- WeaveData/src/weave/utils/ColumnUtils.as
+++ WeaveData/src/weave/utils/ColumnUtils.as
@@ -377,6 +377,8 @@
 				for (i = 0; i < n; i++)
 				{
 					column = columns[i] as IAttributeColumn;
+					if (!column)
+						continue;
 					result = ObjectUtil.compare(column.getValueFromKey(key1, Number), column.getValueFromKey(key2, Number));
 					if (result != 0)
 					{


Update HLSManifestEncryptionKey.as

Update HLSManifestEncryptionKey.as

--- HLSPlugin/src/com/kaltura/hls/manifest/HLSManifestEncryptionKey.as
+++ HLSPlugin/src/com/kaltura/hls/manifest/HLSManifestEncryptionKey.as
@@ -178,23 +178,22 @@
 			}

 			const paddingValue:int = bytesToUnpad[bytesToUnpad.length - 1];
-			trace("paddingValue: " + paddingValue);
 			var doUnpad:Boolean = true;
 			for (var i:int = 0; i<paddingValue; i++) {
 				var readValue:int = bytesToUnpad[bytesToUnpad.length - (1 + i)];
-				trace("readvalue " + i + ": " + readValue);
 				if (paddingValue != readValue)
 				{
 					//throw new Error("PKCS#5:unpad: Invalid padding value. expected [" + paddingValue + "], found [" + readValue + "]");
 					//break;
 					doUnpad = false;
+					//Break to make sure we don't underrun the byte array with a byte value bigger than 16
 					break;
 				}
 			}

 			if(doUnpad)
 			{
-				trace("Unpadding decrypted byteArray");
+				//subtract paddingValue + 1 since the value is one less than the number of padded bytes
 				bytesToUnpad.length -= paddingValue + 1;
 			}

@@ -311,4 +310,4 @@

 		return result;
 	}
-}+}


Fix an off-by-one error due to the way flex deals with dates. Thanks to Bill Bailey for pointing this out :)

git-svn-id: c197267f952b24206666de142881703007ca05d5@8984 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/jivesoftware/xiff/data/Message.as
+++ src/org/jivesoftware/xiff/data/Message.as
@@ -246,7 +246,7 @@
 			//CCYYMMDDThh:mm:ss
 			//20020910T23:41:07
 			t.setUTCFullYear(stamp.slice(0, 4)); //2002
-			t.setUTCMonth(stamp.slice(4, 6)); //09
+			t.setUTCMonth(Number(stamp.slice(4, 6)) - 1); //09
 			t.setUTCDate(stamp.slice(6, 8)); //10
 											 //T
 			t.setUTCHours(stamp.slice(9, 11)); //23


Fixed Matrix4x4.interpolateTo scale

Fixed Matrix4x4.interpolateTo scale

--- src/aerys/minko/type/math/Matrix4x4.as
+++ src/aerys/minko/type/math/Matrix4x4.as
@@ -604,7 +604,7 @@
                 sz += (scale.z - sz) * ratio;

 				_matrix.interpolateTo(target._matrix, ratio);
-                _matrix.appendScale(sx, sy, sz);
+                _matrix.prependScale(sx, sy, sz);

                 if (interpolateW)
                 {


We need our array to be filled with zeros, not undefineds.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5429 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/util/Throttle.as
+++ src/as/com/threerings/util/Throttle.as
@@ -62,7 +62,7 @@
      */
     public function Throttle (operations :int, period :int)
     {
-        _ops = new Array(operations);
+        _ops = makeArray(operations);
         _period = period;
     }

@@ -72,11 +72,11 @@
      * if the limit is decreased.
      *
      * @param operations the new maximum number of operations.
-     * @param period the new period.
+     * @param period the new period (in milliseconds).
      */
     public function reinit (operations :int, period :int) :void
     {
-        var ops :Array = new Array(operations);
+        var ops :Array = makeArray(operations);
         // copy up to 'operations' of our most recent operations into our new array
         for (var ii :int = 0; ii < operations; ii++) {
             ops[operations-ii-1] = _ops[(_oldestOp + _ops.length - ii - 1) % _ops.length];
@@ -125,8 +125,7 @@
     {
         // if the oldest operation was performed less than _period ago, we need to throttle
         var elapsed :int = timeStamp - _ops[_oldestOp];
-        // if negative time elapsed, we must be running on windows; let's just cope by not
-        // throttling
+        // cope with negative time elapsed (shouldn't happen) by not throttling
         return (elapsed >= 0 && elapsed < _period);
     }

@@ -161,6 +160,15 @@
         return _ops.length + " ops per " + _period + "ms (oldest " + oldest + ")";
     }

+    protected function makeArray (operations :int) :Array
+    {
+        var ops :Array = new Array(operations);
+        for (var ii :int =  0; ii < operations; ii++) {
+            ops[ii] = 0;
+        }
+        return ops;
+    }
+
     protected var _ops :Array;
     protected var _oldestOp :int;
     protected var _period :int;


Fixed bug where SecondaryKeyNumColumn was returning -Infinity instead
of NaN for missing data.

Change-Id: Ia18b40d9b5ba9fa68d4312e6fae039ad10f9ef7b

--- WeaveData/src/weave/data/AttributeColumns/SecondaryKeyNumColumn.as
+++ WeaveData/src/weave/data/AttributeColumns/SecondaryKeyNumColumn.as
@@ -330,7 +330,7 @@
 			if (_keyToNumericDataMapping[primaryQKey] && (_keyToNumericDataMapping[primaryQKey][secondaryKeyString] != null))
 				return (_keyToNumericDataMapping[primaryQKey][secondaryKeyString]);
 			else
-				return Number.NEGATIVE_INFINITY;
+				return NaN;
 		}
 		/**
 		 * get data from key value


fix for too many buffering events by tying it to the timer event

--- src/flash/htmlelements/AudioElement.as
+++ src/flash/htmlelements/AudioElement.as
@@ -38,6 +38,7 @@
 		private var _bytesLoaded:Number = 0;
 		private var _bytesTotal:Number = 0;
 		private var _bufferedTime:Number = 0;
+		private var _bufferingChanged:Boolean = false;

 		private var _currentUrl:String = "";
 		private var _autoplay:Boolean = true;
@@ -83,7 +84,11 @@
 			_bytesLoaded = e.bytesLoaded;
 			_bytesTotal = e.bytesTotal;

-			sendEvent(HtmlMediaEvent.PROGRESS);
+			// this happens too much to send every time
+			//sendEvent(HtmlMediaEvent.PROGRESS);
+
+			// so now we just trigger a flag and send with the timer
+			_bufferingChanged = true;
 		}

 		function id3Handler(e:Event):void {
@@ -118,6 +123,14 @@
 				_duration = duration;
 				sendEvent(HtmlMediaEvent.LOADEDMETADATA);
 			}
+
+			// check for progress
+			if (_bufferingChanged) {
+
+				sendEvent(HtmlMediaEvent.PROGRESS);
+
+				_bufferingChanged = false;
+			}

 			// send timeupdate
 			sendEvent(HtmlMediaEvent.TIMEUPDATE);


- handles pauses better and still sends progress updates

--- src/flash/htmlelements/VideoElement.as
+++ src/flash/htmlelements/VideoElement.as
@@ -103,7 +103,8 @@
 			_bytesLoaded = _stream.bytesLoaded;
 			_bytesTotal = _stream.bytesTotal;

-			sendEvent(HtmlMediaEvent.TIMEUPDATE);
+			if (!_isPaused)
+				sendEvent(HtmlMediaEvent.TIMEUPDATE);

 			trace("bytes", _bytesLoaded, _bytesTotal);

@@ -301,7 +302,10 @@

 			_stream.pause();
 			_isPaused = true;
-			_timer.stop();
+
+			if (_bytesLoaded == _bytesTotal) {
+				_timer.stop();
+			}

 			_isPaused = true;
 			sendEvent(HtmlMediaEvent.PAUSE);


Transferred from the Adobe Open Source Subversion Repository

Revision: 14354
Author:   jimurphy@adobe.com
Date:     2010-02-23T15:05:48.761194Z

Log Message:
-----------
resetting the build number in version.as
The build automated process checked it in as 4.5.0.13964 when it should have been 4.5.0.0

QE notes: no
Doc notes: no
Bugs: https://bugs.adobe.com/jira/browse/SDK-25489
Reviewer: no
Tests run: ran version test included in the bug
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_air/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_flashflexkit/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_dmv/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Version.as</path>

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

--- frameworks/projects/automation_flashflexkit/src/mx/core/Version.as
+++ frameworks/projects/automation_flashflexkit/src/mx/core/Version.as
@@ -16,4 +16,4 @@
  *  @private
  *  Version string for this class.
  */
-mx_internal static const VERSION:String = "4.5.0.13964";
+mx_internal static const VERSION:String = "4.5.0.0";


Transferred from the Adobe Open Source Subversion Repository

Revision: 9235
Author:   cframpto@adobe.com
Date:     2009-08-11T21:33:57.707988Z

Log Message:
-----------
Fix errors and improve RadioButton/RadioButtonGroup asdocs.

QE notes:
Doc notes:
Bugs: SDK-21183
Reviewer:
Tests run: checkintests RadioButton
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>

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

--- frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
+++ frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
@@ -35,7 +35,7 @@
 //--------------------------------------

 /**
- *  Dispatched when the value of the selected RadioButton control in
+ *  Dispatched when the value of the selected RadioButton component in
  *  this group changes.
  *
  *  @eventType flash.events.Event.CHANGE
@@ -48,8 +48,8 @@
 [Event(name="change", type="flash.events.Event")]

 /**
- *  Dispatched when a user selects a RadioButton control in the group.
- *  You can also set a handler for individual RadioButton controls.
+ *  Dispatched when a user selects a RadioButton component in the group.
+ *  You can also set a handler for individual RadioButton components.
  *
  *  This event is dispatched only when the
  *  user interacts with the radio buttons by using the mouse.
@@ -64,6 +64,30 @@
 [Event(name="itemClick", type="mx.events.ItemClickEvent")]

 //--------------------------------------
+//  Validation events
+//--------------------------------------
+
+/**
+ *  Dispatched when values are changed programmatically
+ *  or by user interaction.
+ *
+ *
Because a programmatic change triggers this event, make sure
+ *  that any valueCommit event handler does not change
+ *  a value that causes another valueCommit event.
+ *  For example, do not change theselectedValue
+ *  property or selection property in a valueCommit
+ *  event handler.

+ *
+ *  @eventType mx.events.FlexEvent.VALUE_COMMIT
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Event(name="valueCommit", type="mx.events.FlexEvent")]
+
+//--------------------------------------
 //  Other metadata
 //--------------------------------------

@@ -71,25 +95,20 @@
 [DefaultTriggerEvent("change")]

 /**
- *  The RadioButtonGroup control defines a group of RadioButton controls
- *  that act as a single mutually exclusive control; therefore,
- *  a user can select only one  control at a time.
+ *  The RadioButtonGroup component defines a group of RadioButton components
+ *  that act as a single mutually exclusive component; therefore,
+ *  a user can select only one RadioButton component at a time.
  *  The id property is required when you use the
- *  <s:RadioButtonGroup> tag to define the name
- *  of the group.
- *
- *
Notice that the RadioButtonGroup control is a subclass of EventDispatcher,
+ *  <s:RadioButtonGroup> tag to define the group name.  Any
+ *  <s:RadioButton> component added to this group will
+ *  have this group name.
+ *
+ *
Notice that the RadioButtonGroup component is a subclass of EventDispatcher,
  *  not UIComponent, and implements the IMXMLObject interface.
- *  All other Flex visual components are subclasses of UIComponent, which implements
- *  the IUIComponent interface.
- *  The RadioButtonGroup control has support built into the Flex compiler
- *  that allows you to use the RadioButtonGroup control as a child of a Flex
- *  container, even though it does not implement IUIComponent.
- *  All other container children must implement the IUIComponent interface.

- *
- *
Therefore, if you try to define a visual component as a subclass of
- *  EventDispatcher that implements the IMXMLObject interface,
- *  you will not be able to use it as the child of a container.

+ *  All other Flex visual components implement the IVisualElement interface.
+ *  The RadioButtonGroup component declaration must
+ *  be contained within the <Declarations> tag since it is
+ *  not assignable to IVisualElement.

  *
  *  @mxml
  *
@@ -191,7 +210,7 @@
      *  Determines whether selection is allowed.  Note that the value returned
      *  only reflects the value that was explicitly set on the
      *  RadioButtonGroup and does not reflect any values explicitly
-     *  set on the individual radio buttons.
+     *  set on the individual RadioButtons.
      *
      *  @default true
      *
@@ -251,15 +270,13 @@
     [Inspectable(category="General")]

     /**
-     *  The value of the value property of the selected
-     *  RadioButton control in the group, if this has been set
-     *  to be something other than null (the default value).
-     *  Otherwise, selectedValue is the value of the
-     *  label property of the selected RadioButton.
+     *  The value property of the selected
+     *  RadioButton component in the group, if it has been set,
+     *  otherwise, the label property of the selected RadioButton.
      *  If no RadioButton is selected, this property is null.
      *
      *
If you set selectedValue, Flex selects the
-     *  RadioButton control whose value or
+     *  first RadioButton component whose value or
      *  label property matches this value.

      *
      *  @default null
@@ -317,11 +334,11 @@

     /**
      *  Contains a reference to the currently selected
-     *  RadioButton control in the group.
-     *  You can access the property in ActionScript only;
+     *  RadioButton component in the group.
+     *  You can access this property in ActionScript only;
      *  it is not settable in MXML.
      *  Setting this property to null deselects the currently
-     *  selected RadioButton control.  A change event is not dispatched.
+     *  selected RadioButton component.  A change event is not dispatched.
      *
      *  @default null
      *
@@ -371,19 +388,22 @@
      */
     public function initialized(document:Object, id:String):void
     {
+        _name = id;
+
         this.document = document ?
                         IFlexDisplayObject(document) :
                         IFlexDisplayObject(FlexGlobals.topLevelApplication);
     }

     /**
-     *  Returns the  control at the specified index.
-     *
-     *  @param index The index of the  control in the
-     *  RadioButtonGroup control, where the index of the first control is 0.
-     *
-     *  @return The specified RadioButton control if index is between
-     *  0 and the value of numRadioButtons, otherwise, null.
+     *  Returns the RadioButton component at the specified index.
+     *
+     *  @param index The 0-based index of the RadioButton in the
+     *  RadioButtonGroup.
+     *
+     *  @return The specified RadioButton component if index is between
+     *  0 and numRadioButtons - 1.  Returns
+     *  null if the index is invalid.
      *
      *  @see numRadioButtons
      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 17101
Author:   rfrishbe@adobe.com
Date:     2010-07-28T18:31:06.934256Z

Log Message:
-----------
Cleaning up lots of code, fixing some bugs, tweaking the API for List/Scroller, and tweaking the kinetics for Scroller.

Major API changes are:

1) Got rid of scrollAxis on IViewport.  We now just use horizontalScrollPolicy/verticalScrollPolicy.
2) No more overlay for horizontalScrollPolicy/verticalScrollPolicy.  Instead, we just key off of inputMode="touch" to determine this
3) spark.events.TouchScrollEvent moved to mx.events.TouchScrollEvent
4) Added new API to help with testing: mx.utils.GetTimerUtil.mx_internal::getTimerFunction

We now use the distance scrolled as well as the velocity of that scroll to determine how far to throw the list

QE notes: Added new API for testing purposes
Doc notes: None
Bugs: SDK-27031, SDK-27021
Reviewer: None - will review with mobile list stuff later (very soon in fact)
Tests run: checkintests, mustella Scroller, List, and ListDND
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/GetTimerUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TouchScrollingEasing.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/TouchScrollEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<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/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IViewport.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ScrollPolicy.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/TouchScrollEvent.as" copyfrom-rev="17005" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchScrollEvent.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -1369,6 +1369,8 @@
         }
         else
         {
+            // TODO (rfrishbe): if the animation gets stopped() or ended() in
+            // the first update, then the animation never actually gets removed
             sendUpdateEvent();
             Animation.addAnimation(this);
             startTime = cycleStartTime;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5812
Author:   chaase@adobe.com
Date:     2009-03-31T18:34:56.901097Z

Log Message:
-----------
Fixed a bug where direct use of Animation failed because AnimationProperty was not setting up its internal keyframes with correct duration information, so the animation would skip immediately to the end.

Bugs: SDK-20356
QE Notes: spark/effects Mustella tests currently hosed, couldn't run test suite
Doc Notes: None
Reviewer: Jason
Testing: checkintests, Mustella effects tests could not be run (post-rename issues)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.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/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Rotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -171,7 +171,7 @@
     {
         this.duration = duration;
         if (startValue !== null || endValue !== null)
-            animationProperties = [new AnimationProperty("", startValue, endValue)];
+            animationProperties = [new AnimationProperty("", startValue, endValue, duration)];
     }


Removed a debug message from GraphMLDataSource

--- WeaveData/src/weave/data/DataSources/GraphMLDataSource.as
+++ WeaveData/src/weave/data/DataSources/GraphMLDataSource.as
@@ -265,7 +265,6 @@
                                     hasChildBranches: false,
                                     children: function ():Array {
                                         var groupProperties:Array = group == GraphMLConverter.NODE ? nodeProperties : edgeProperties;
-                                        weaveTrace(groupProperties);
                                         return groupProperties.map(
                                             function(field:String, ..._):* {
                                                 var metadata:Object = {};


Fixed bug in RadVizPlotter - wasn't recalculating for column stats.

Change-Id: Ifa6946dcd83e51babdbafc6e5cbdaf0013ce9fa1

--- WeaveUI/src/weave/visualization/plotters/RadVizPlotter.as
+++ WeaveUI/src/weave/visualization/plotters/RadVizPlotter.as
@@ -82,7 +82,7 @@
 			// This will be cleaned up automatically when the column is disposed.
 			var newColumn:IAttributeColumn = columns.childListCallbacks.lastObjectAdded as IAttributeColumn;
 			if (newColumn)
-				registerLinkableChild(this, WeaveAPI.StatisticsCache.getColumnStatistics(newColumn), handleColumnsChange);
+				registerSpatialProperty(WeaveAPI.StatisticsCache.getColumnStatistics(newColumn), handleColumnsChange);
 		}

 		public const columns:LinkableHashMap = registerSpatialProperty(new LinkableHashMap(IAttributeColumn), handleColumnsChange);


Transferred from the Adobe Open Source Subversion Repository

Revision: 19611
Author:   jasonsj@adobe.com
Date:     2011-01-05T22:45:41.935084Z

Log Message:
-----------
Enable TextArea scrolling in the mobile theme. Refactored HScrollBar and VScrollBar skins for use with TextArea.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaVScrollBarSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaVScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaHScrollBarSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaHScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorButtonBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/MobileThemeClasses.as
+++ frameworks/projects/mobiletheme/src/MobileThemeClasses.as
@@ -37,6 +37,8 @@
 import spark.skins.mobile.TabbedViewNavigatorApplicationSkin; TabbedViewNavigatorApplicationSkin;
 import spark.skins.mobile.TabbedViewNavigatorButtonBarSkin; TabbedViewNavigatorButtonBarSkin;
 import spark.skins.mobile.TextAreaSkin; TextAreaSkin;
+import spark.skins.mobile.supportClasses.TextAreaHScrollBarSkin; TextAreaHScrollBarSkin;
+import spark.skins.mobile.supportClasses.TextAreaVScrollBarSkin; TextAreaVScrollBarSkin;
 import spark.skins.mobile.TextInputSkin; TextInputSkin;
 import spark.skins.mobile.SkinnableContainerSkin; SkinnableContainerSkin;
 import spark.skins.mobile.ViewMenuItemSkin; ViewMenuItemSkin;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17333
Author:   chiedozi@adobe.com
Date:     2010-08-16T18:39:36.744462Z

Log Message:
-----------
Added TabbedMobileApplicationSkin to MobileThemeClasses.as

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as

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

--- frameworks/projects/mobiletheme/src/MobileThemeClasses.as
+++ frameworks/projects/mobiletheme/src/MobileThemeClasses.as
@@ -30,6 +30,7 @@
 import spark.skins.mobile.HScrollBarSkin; spark.skins.mobile.HScrollBarSkin;
 import spark.skins.mobile.ListSkin; spark.skins.mobile.ListSkin;
 import spark.skins.mobile.MobileApplicationSkin; MobileApplicationSkin;
+import spark.skins.mobile.TabbedMobileApplicationSkin; TabbedMobileApplicationSkin;
 import spark.skins.mobile.TextAreaSkin; TextAreaSkin;
 import spark.skins.mobile.TextInputSkin; TextInputSkin;
 import spark.skins.mobile.ViewNavigatorSkin; ViewNavigatorSkin;


StatisticsCache speed optimization

StatisticsCache speed optimization

Change-Id: Ic1c04f48e79f9a4c190d39e8ff1645b423763b29

--- WeaveData/src/weave/data/StatisticsCache.as
+++ WeaveData/src/weave/data/StatisticsCache.as
@@ -60,7 +60,8 @@
 				getSquareSum,
 				getVariance,
 				getStandardDeviation,
-				getRunningTotals
+				getRunningTotals,
+				validateCache
 			];
 			for each (var func:Function in functions)
 				cache[func] = new Dictionary(true);
@@ -182,7 +183,8 @@
 			if (column == null)
 				return NaN;

-			if (detectLinkableObjectChange(cache, column))
+			// the cache becomes invalid when the trigger counter has changed
+			if (uint(cache[validateCache][column]) != column.triggerCounter)
 			{
 				var min:Number = NaN;
 				var max:Number = NaN;
@@ -240,7 +242,9 @@
 				cache[getMean][column] = mean;
 				cache[getVariance][column] = variance;
 				cache[getStandardDeviation][column] = standardDeviation;
-				cache[getRunningTotals][column] = runningTotals;
+				cache[getRunningTotals][column] = runningTotals;
+				// remember the trigger counter so we can detect when the cache becomes invalid
+				cache[validateCache][column] = column.triggerCounter;
 			}

 			return cache[statsFunction][column];


added option to specify bounds in ColorRamp.draw()

Change-Id: I04244003d8ab52d5b4c705eac2d57d979a522b12

--- WeaveData/src/weave/primitives/ColorRamp.as
+++ WeaveData/src/weave/primitives/ColorRamp.as
@@ -221,33 +221,40 @@
 		}

 		/**
-		 * This will draw the color ramp onto a canvas using the full width and height.
-		 * @param canvas
-		 * @param vertical
+		 * This will draw the color ramp.
+		 * @param destination The sprite where the ramp should be drawn.
+		 * @param trueForVertical_falseForHorizontal Specifies vertical or horizontal direction
+		 * @param bounds Optional bounds for the ramp graphics.
 		 */
-		public function draw(canvas:Sprite, vertical:Boolean):void
-		{
-			validate();
-
-			var g:Graphics = canvas.graphics;
+		public function draw(destination:Sprite, trueForVertical_falseForHorizontal:Boolean, bounds:Bounds2D = null):void
+		{
+			validate();
+
+			var g:Graphics = destination.graphics;
+			var vertical:Boolean = trueForVertical_falseForHorizontal;
+			var x:Number = bounds ? bounds.getXMin() : 0;
+			var y:Number = bounds ? bounds.getYMin() : 0;
+			var w:Number = bounds ? bounds.getWidth() : destination.width;
+			var h:Number = bounds ? bounds.getHeight() : destination.height;
+			var offset:Number = bounds ? (vertical ? bounds.getXDirection() : bounds.getYDirection()) : 1;
+
 			g.clear();
-			var n:int = vertical ? canvas.height : canvas.width;
-			var max:int = n - 1;
+			var n:int = Math.abs(vertical ? h : w);
 			for (var i:int = 0; i < n; i++)
 			{
-				var color:Number = getColorFromNorm(i / max);
+				var color:Number = getColorFromNorm(i / (n - 1));
 				if (isNaN(color))
 					continue;
 				g.lineStyle(1, color, 1, true);
 				if (vertical)
 				{
-					g.moveTo(0, i);
-					g.lineTo(canvas.width - 1, i);
+					g.moveTo(x, y + i);
+					g.lineTo(x + w - offset, y + i);
 				}
 				else
 				{
-					g.moveTo(i, 0);
-					g.lineTo(i, canvas.height - 1);
+					g.moveTo(x + i, y);
+					g.lineTo(x + i, y + h - offset);
 				}
 			}
 		}


embeded captions support

embeded captions support

--- KalturaHLSPlugin/src/com/kaltura/kdpfl/plugin/KalturaHLSMediator.as
+++ KalturaHLSPlugin/src/com/kaltura/kdpfl/plugin/KalturaHLSMediator.as
@@ -1,18 +1,24 @@
 package com.kaltura.kdpfl.plugin
 {
-	import org.puremvc.as3.patterns.mediator.Mediator;
+	import com.kaltura.hls.SubtitleTrait;
 	import com.kaltura.kdpfl.model.MediaProxy;
 	import com.kaltura.kdpfl.model.type.NotificationType;
+	import com.kaltura.kdpfl.view.controls.KTrace;
+
+	import org.osmf.events.MediaElementEvent;
+	import org.osmf.traits.DVRTrait;
+	import org.osmf.traits.MediaTraitType;
 	import org.puremvc.as3.interfaces.INotification;
-	import org.osmf.traits.MediaTraitType;
-	import org.osmf.traits.DVRTrait;
+	import org.puremvc.as3.patterns.mediator.Mediator;

 	public class KalturaHLSMediator extends Mediator
 	{
 		public static const NAME:String = "KalturaHLSMediator";
 		public static const HLS_END_LIST:String = "hlsEndList";
+		public static const HLS_TRACK_SWITCH:String = "doTextTrackSwitch";

 		private var _mediaProxy:MediaProxy;
+		private var _subtitleTrait:SubtitleTrait;

 		public function KalturaHLSMediator( viewComponent:Object=null)
 		{
@@ -28,7 +34,9 @@
 		override public function listNotificationInterests():Array
 		{
 			return [
-				NotificationType.DURATION_CHANGE
+				NotificationType.DURATION_CHANGE,
+				NotificationType.MEDIA_ELEMENT_READY,
+				HLS_TRACK_SWITCH
 			];
 		}

@@ -45,6 +53,36 @@
 				}
 			}

+			if ( notification.getName() == NotificationType.MEDIA_ELEMENT_READY ) {
+				_mediaProxy.vo.media.addEventListener(MediaElementEvent.TRAIT_ADD, getSubtitleTrait);
+			}
+
+			if ( notification.getName() == HLS_TRACK_SWITCH ) {
+				if ( _subtitleTrait && notification.getBody() && notification.getBody().hasOwnProperty("textIndex"))
+					_subtitleTrait.language = _subtitleTrait.languages[ notification.getBody().textIndex ];
+				else
+					KTrace.getInstance().log("KalturaHLSMediator :: doTextTrackSwitch >> subtitleTrait or textIndex error.");
+			}
+
 		}
+
+		protected function getSubtitleTrait(event:MediaElementEvent):void
+		{
+			if(event.traitType == SubtitleTrait.TYPE){
+				_mediaProxy.vo.media.removeEventListener(MediaElementEvent.TRAIT_ADD, getSubtitleTrait);
+				_subtitleTrait = _mediaProxy.vo.media.getTrait( SubtitleTrait.TYPE ) as SubtitleTrait;
+				if ( _subtitleTrait && _subtitleTrait.languages.length > 0 )
+				{
+					var langArray:Array = new Array();
+					var i:int = 0;
+					while (i < _subtitleTrait.languages.length){
+						langArray.push({"label":_subtitleTrait.languages[0], "index": i++});
+					}
+
+					sendNotification("textTracksReceived", {languages:langArray});
+				}
+			}
+		}
+
 	}
 }


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 20843
Author:   mhorn@adobe.com
Date:     2011-03-14T14:36:04.836183Z

Log Message:
-----------
merge

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>

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

--- frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as
+++ frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as
@@ -1095,7 +1095,8 @@
     }

     /**
-     *  Lists all of the locale ID names supported by this class.
+     *  Lists all of the locale ID names supported by this class. This is a list of locales supported by
+     *  the operating system, not a list of locales that the ResourceManager has resources for.
      *
      *  @return A vector of strings containing all of the locale ID names
      *         supported by this class and operating system.


Minor cleanup.

Minor cleanup.

git-svn-id: 02605e11d3a461bc7e12f3f3880edf4b0c8dcfd0@4413 3e7533ad-8678-4d30-8e38-00a379d3f0d0

--- src/laml/display/SelectableIconButton.as
+++ src/laml/display/SelectableIconButton.as
@@ -132,7 +132,6 @@
 			label.selectable = newValue;
 		}

-
 		public function set embedFonts(embedFonts:Boolean):void {
 			model.embedFonts = embedFonts;
 		}


Switch arguments in callbacks of the cloned signal

--- src/aerys/minko/scene/node/Mesh.as
+++ src/aerys/minko/scene/node/Mesh.as
@@ -284,7 +284,7 @@
 			transform.copyFrom(source.transform);
 			material = source._material;

-			source.cloned.execute(this, source);
+			source.cloned.execute(source, this);
 		}
 	}
 }


made compositecommand fool-proof for marco

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@623 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/commands/CompositeCommand.as
+++ src/reprise/commands/CompositeCommand.as
@@ -232,7 +232,7 @@
 		*/
 		protected function executeNext() : void
 		{
-			if (m_pendingCommands.length == 0 && m_currentCommands.length == 0)
+			if (!m_pendingCommands || m_pendingCommands.length == 0 && m_currentCommands.length == 0)
 			{
 				m_isExecuting = false;
 				// we only dispatch a event if we're executing asynchronously


New constants added for error code

New constants added for error code

SVN-Revision: 8719

--- flexclient/dag/Components/DAGConstants.as
+++ flexclient/dag/Components/DAGConstants.as
@@ -13,6 +13,16 @@
 		public static  var RESULT_VIEW:String="Result";

+		//Error Codes
+		public static  var SUCCESS:int=0;
+		public static  var EMPTY_DAG:int=1;
+		public static  var MULTIPLE_ROOT:int=2;
+		public static  var CYCLIC_GRAPH:int=3;
+		public static  var SQL_EXCEPTION:int=4;
+		public static  var DAO_EXCEPTION:int=5;
+		public static  var DYNAMIC_EXTENSION_EXCEPTION:int=6;
+		public static  var NO_PATHS_PRESENT:int=7;
+

 	}
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3509
Author:   jimurphy@adobe.com
Date:     2008-10-07T18:19:17.646255Z

Log Message:
-----------
Rename of flex -> mx.

For compatibility reasons it was decided that the new functionality remain integrated with the old framework, although we will continue to build two separate SWCs, one with primarily existing framework classes, and one with new Flex 4 classes. This change removes duplicate names from the Flex 4 framework to avoid class name overlapping with the old framework code.  The naming overlap consists of two major areas:  New Components, and New Effects

Modified Paths:
--------------
386 paths were modified

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

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -9,15 +9,16 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package flex.component
+package mx.components
 {

-import flex.core.Group;
-import flex.core.IDeferredContentOwner;
-import flex.core.SkinnableComponent;
-import flex.events.FlexEvent;
-import flex.events.ItemExistenceChangedEvent;
-import flex.layout.LayoutBase;
+import mx.components.Group;
+import mx.core.IDeferredContentOwner;
+import mx.components.baseClasses.FxComponent;
+import mx.components.baseClasses.FxContainerBase;
+import mx.events.FlexEvent;
+import mx.events.ItemExistenceChangedEvent;
+import mx.layout.LayoutBase;

 import mx.collections.IList;
 import mx.core.ContainerCreationPolicy;
@@ -30,19 +31,19 @@
  *  instantiation, the content for a component may be created long after the
  *  component is created.
  */
-[Event(name="contentCreationComplete", type="flex.events.FlexEvent")]
+[Event(name="contentCreationComplete", type="mx.events.FlexEvent")]

 /**
  *  Dispatched when an item is added to the component.
  *  event.relatedObject is the visual item that was added.
  */
-[Event(name="itemAdd", type="flex.events.ItemExistenceChangedEvent")]
+[Event(name="itemAdd", type="mx.events.ItemExistenceChangedEvent")]

 /**
  *  Dispatched when an item is removed from the component.
  *  event.relatedObject is the visual item that was removed.
  */
-[Event(name="itemRemove", type="flex.events.ItemExistenceChangedEvent")]
+[Event(name="itemRemove", type="mx.events.ItemExistenceChangedEvent")]

 [DefaultProperty("contentFactory")]

@@ -51,7 +52,7 @@
  * visual content. This class is not typically instantiated in MXML. It is primarily
  * used as a base class, or as a SkinPart.
  */
-public class ItemsComponent extends ContainerBase
+public class FxItemsComponent extends FxContainerBase
 	   implements IDeferredContentOwner
 {
     include "../core/Version.as";
@@ -65,7 +66,7 @@
     /**
      *  Constructor.
      */
-    public function ItemsComponent()
+    public function FxItemsComponent()
     {
         super();

@@ -185,7 +186,7 @@
     private var _content:Object;

     /**
-     *  @copy flex.core.Group#content
+     *  @copy mx.components.Group#content
      */
     [Bindable]
     public function get content():Object
@@ -221,7 +222,7 @@
     private var _layout:LayoutBase = null;

     /**
-     *  @copy flex.core.Group#layout
+     *  @copy mx.components.Group#layout
      */
     public function get layout():LayoutBase
     {
@@ -246,7 +247,7 @@
     //--------------------------------------------------------------------------

     /**
-     *  @copy flex.core.Group#numItems
+     *  @copy mx.components.Group#numItems
      */
     public function get numItems():int
     {
@@ -254,7 +255,7 @@
     }

     /**
-     *  @copy flex.core.Group#getItemAt()
+     *  @copy mx.components.Group#getItemAt()
      */
     public function getItemAt(index:int):*
     {
@@ -262,7 +263,7 @@
     }

     /**
-     *  @copy flex.core.Group#addItem()
+     *  @copy mx.components.Group#addItem()
      */
     public function addItem(item:*):*
     {
@@ -270,7 +271,7 @@
     }

     /**
-     *  @copy flex.core.Group#addItemAt()
+     *  @copy mx.components.Group#addItemAt()
      */
     public function addItemAt(item:*, index:int):*
     {
@@ -278,7 +279,7 @@
     }

     /**
-     *  @copy flex.core.Group#removeItem()
+     *  @copy mx.components.Group#removeItem()
      */
     public function removeItem(item:*):*
     {
@@ -286,7 +287,7 @@
     }

     /**
-     *  @copy flex.core.Group#removeItemAt()
+     *  @copy mx.components.Group#removeItemAt()
      */
     public function removeItemAt(index:int):*
     {
@@ -294,7 +295,7 @@
     }

     /**
-     *  @copy flex.core.Group#getItemIndex()
+     *  @copy mx.components.Group#getItemIndex()
      */
     public function getItemIndex(item:*):int
     {
@@ -302,7 +303,7 @@
     }

     /**
-     *  @copy flex.core.Group#setItemIndex()
+     *  @copy mx.components.Group#setItemIndex()
      */
     public function setItemIndex(item:*, index:int):void
     {
@@ -310,7 +311,7 @@
     }

     /**
-     *  @copy flex.core.Group#swapItems()
+     *  @copy mx.components.Group#swapItems()
      */
     public function swapItems(item1:*, item2:*):void
     {
@@ -318,7 +319,7 @@
     }

     /**
-     *  @copy flex.core.Group#swapItemsAt()
+     *  @copy mx.components.Group#swapItemsAt()
      */
     public function swapItemsAt(index1:*, index2:*):void
     {


Now using ByteArray in CSVParser.createCSV() for 2x speedup.

--- WeaveData/src/weave/data/CSVParser.as
+++ WeaveData/src/weave/data/CSVParser.as
@@ -19,6 +19,7 @@

 package weave.data
 {
+	import flash.utils.ByteArray;
 	import flash.utils.getTimer;

 	import mx.utils.ObjectUtil;
@@ -216,17 +217,28 @@
 		 */
 		public function createCSV(rows:Array):String
 		{
-			var lines:Array = new Array(rows.length);
-			for (var i:int = rows.length; i--;)
-			{
-				var tokens:Array = new Array(rows[i].length);
-				for (var j:int = tokens.length; j--;)
-					tokens[j] = createCSVToken(rows[i][j]);
+			var firstRow:Boolean = true;
+			var out:ByteArray = new ByteArray();
+			for each (var row:Array in rows)
+			{
+				if (firstRow)
+					firstRow = false;
+				else
+					out.writeUTFBytes(LF);

-				lines[i] = tokens.join(delimiter);
-			}
-			var csvData:String = lines.join(LF);
-			return csvData;
+				var firstItem:Boolean = true;
+				for each (var item:String in row)
+				{
+					if (firstItem)
+						firstItem = false;
+					else
+						out.writeUTFBytes(delimiter);
+
+					out.writeUTFBytes(createCSVToken(item));
+				}
+			}
+			out.position = 0;
+			return out.readUTFBytes(out.length);
 		}

 		/**


added dashboard mode toggle to window menu

--- WeaveUI/src/weave/menus/WindowMenu.as
+++ WeaveUI/src/weave/menus/WindowMenu.as
@@ -74,6 +74,8 @@
 				label: lang("Preferences"),
 				click: function():void { DraggablePanel.openStaticInstance(WeavePropertiesEditor); }
 			},
+			TYPE_SEPARATOR,
+			ToolsMenu.dashboardItem,
 			TYPE_SEPARATOR,
 			{
 				shown: Weave.properties.enableFullScreen,


commented out unnecessary error message

commented out unnecessary error message

--- WeaveJS/src/weavejs/net/URLRequestUtils.as
+++ WeaveJS/src/weavejs/net/URLRequestUtils.as
@@ -146,7 +146,8 @@
 		{
 			var url:String = LOCAL_FILE_URL_SCHEME + name;
 			var promise:WeavePromise = get_d2d_context_url_promise(weaveRoot, url);
-			promise.setError(Weave.lang('File removed: {0}', url));
+			promise.setResult(null);
+			//promise.setError(Weave.lang('File removed: {0}', url));
 		}

 		public function getLocalFileNames(weaveRoot:ILinkableHashMap):Array


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/states/RemoveChild.as
+++ frameworks/projects/framework/src/mx/states/RemoveChild.as
@@ -42,6 +42,11 @@
  *  @see mx.effects.RemoveChildAction
  *
  *  @includeExample examples/StatesExample.mxml
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class RemoveChild extends OverrideBase implements IOverride
 {
@@ -57,6 +62,11 @@
      *  Constructor.
      *
      *  @param target The child to remove from the view.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function RemoveChild(target:DisplayObject = null)
     {
@@ -102,6 +112,11 @@

     /**
      *  The child to remove from the view.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var target:Object;

@@ -115,6 +130,11 @@
      *  IOverride interface method; this class implements it as an empty method.
      *
      *  @copy IOverride#initialize()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function initialize():void
     {
@@ -122,6 +142,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function apply(parent:UIComponent):void
     {
@@ -140,6 +165,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function remove(parent:UIComponent):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11995
Author:   doug.lee@ssbbartgroup.com
Date:     2009-11-19T18:50:30.831767Z

Log Message:
-----------
Updated all AccImpls that use MSAA constants (except TextLayout) to
use the new AccConst references instead of hard-coding hex numbers and
local copies of the constants.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LabelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TextInputAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/accessibility/WindowedApplicationAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SpinnerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TextBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/PanelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/DropDownListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/RichEditableTextAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/RadioButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ButtonBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/NumericStepperAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SkinnableTextBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ComboBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TitleWindowAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LinkButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/RadioButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ToggleButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/accessibility/WindowAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/VideoPlayerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TitleWindowAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/ListAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/ListAccImpl.as
@@ -12,6 +12,7 @@
 package mx.accessibility
 {

+import mx.accessibility.AccConst;
 import mx.controls.List;
 import mx.core.UIComponent;
 import mx.core.mx_internal;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/mx/src/mx/effects/RemoveChildAction.as
+++ frameworks/projects/mx/src/mx/effects/RemoveChildAction.as
@@ -0,0 +1,153 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-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.effects
+{
+
+import mx.core.mx_internal;
+import mx.effects.effectClasses.PropertyChanges;
+import mx.effects.effectClasses.RemoveChildActionInstance;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="duration", kind="property")]
+
+/**
+ *  The RemoveChildAction class defines an action effect that corresponds
+ *  to the RemoveChild property of a view state definition.
+ *  You use a RemoveChildAction effect within a transition definition
+ *  to control when the view state change defined by a RemoveChild property
+ *  occurs during the transition.
+ *
+ *  @mxml
+ *
+ *
The <mx:RemoveChildAction> tag
+ *  inherits all of the tag attributes of its superclass,
+ *  and adds the following tag attributes:

+
+ *

+ *  <mx:RemoveChildAction
+ *    Properties
+ *    id="ID"
+ *  />
+ *

+ *
+ *  @see mx.effects.effectClasses.RemoveChildActionInstance
+ *  @see mx.states.RemoveChild
+ *
+ *  @includeExample ../states/examples/TransitionExample.mxml
+ */
+public class RemoveChildAction extends Effect
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private static var AFFECTED_PROPERTIES:Array = [ "parent", "index" ];
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param target The Object to animate with this effect.
+	 */
+	public function RemoveChildAction(target:Object = null)
+	{
+		super(target);
+
+		instanceClass = RemoveChildActionInstance;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function getAffectedProperties():Array /* of String */
+	{
+		return AFFECTED_PROPERTIES;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function propChangesSortHandler(
+					first:PropertyChanges,
+					second:PropertyChanges):Number
+	{
+		if (first.start.index > second.start.index)
+			return 1;
+		else if (first.start.index < second.start.index)
+			return -1;
+
+		return 0;
+	}
+
+	/**
+	 *  @private
+	 */
+	override mx_internal function applyStartValues(propChanges:Array,
+									 		  targets:Array):void
+	{
+		if (propChanges)
+			propChanges.sort(propChangesSortHandler);
+
+		super.applyStartValues(propChanges, targets);
+	}
+
+	/**
+	 *  @private
+	 */
+	override protected function getValueFromTarget(target:Object,
+												   property:String):*
+	{
+		if (property == "index")
+			return target.parent ? target.parent.getChildIndex(target) : 0;
+
+		return super.getValueFromTarget(target, property);
+	}
+
+	/**
+	 *  @private
+	 */
+	override protected function applyValueToTarget(target:Object,
+												   property:String,
+												   value:*,
+												   props:Object):void
+	{
+		if (property == "parent" && target.parent == null && value)
+			value.addChildAt(target, Math.min(props.index, value.numChildren));
+
+		// Ignore index - it's applied along with parent
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 3892
Author:   egeorgie@adobe.com
Date:     2008-10-24T23:33:52.238868Z

Log Message:
-----------
Add constraint properties and unify IVisualItem, UIComponent, GraphicElement, change percentSize to percentWidth, percentHeight in ILayoutItem. Remove IGraphicElementHost and GraphicElementHostImpl. Change GraphicElement constraint properties to take in Object instead of Number to enable advanced constraints later on.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Ryan
tests: checkintests, Mustella (canvas, gumbo layout)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as</path>
<path kind="file" action="M">/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/graphics/BitmapGraphic.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/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="M">/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/graphics/StrokedElement.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElementHostImpl.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/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualItem.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/IGraphicElementHost.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/IGraphicElement.as</path>
<path kind="file" action="M">/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" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/BasicLayout.as
+++ frameworks/projects/spark/src/spark/layouts/BasicLayout.as
@@ -34,16 +34,16 @@

     private static function constraintsDetermineWidth(layoutItem:ILayoutItem):Boolean
     {
-        return !isNaN(layoutItem.percentSize.x) ||
-               !isNaN(LayoutItemHelper.getConstraint(layoutItem, "left")) &&
-               !isNaN(LayoutItemHelper.getConstraint(layoutItem, "right"));
+        return !isNaN(layoutItem.percentWidth) ||
+               !isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.left)) &&
+               !isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.right));
     }

     private static function constraintsDetermineHeight(layoutItem:ILayoutItem):Boolean
     {
-        return !isNaN(layoutItem.percentSize.y) ||
-               !isNaN(LayoutItemHelper.getConstraint(layoutItem, "top")) &&
-               !isNaN(LayoutItemHelper.getConstraint(layoutItem, "bottom"));
+        return !isNaN(layoutItem.percentHeight) ||
+               !isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.top)) &&
+               !isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.bottom));
     }

     //--------------------------------------------------------------------------
@@ -84,16 +84,16 @@
             if (!layoutItem || !layoutItem.includeInLayout)
                 continue;

-            var left:Number      = LayoutItemHelper.getConstraint(layoutItem, "left");
-            var right:Number     = LayoutItemHelper.getConstraint(layoutItem, "right");
-            var top:Number       = LayoutItemHelper.getConstraint(layoutItem, "top");
-            var bottom:Number    = LayoutItemHelper.getConstraint(layoutItem, "bottom");
+            var left:Number      = LayoutItemHelper.parseConstraintValue(layoutItem.left);
+            var right:Number     = LayoutItemHelper.parseConstraintValue(layoutItem.right);
+            var top:Number       = LayoutItemHelper.parseConstraintValue(layoutItem.top);
+            var bottom:Number    = LayoutItemHelper.parseConstraintValue(layoutItem.bottom);

             var extX:Number = 0;
             var extY:Number = 0;

             if (isNaN(left) && isNaN(right) &&
-                isNaN(LayoutItemHelper.getConstraint(layoutItem, "horizontalCenter")))
+                isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.horizontalCenter)))
             {
                 extX += layoutItem.actualPosition.x;
             }
@@ -104,7 +104,7 @@
             }

             if (isNaN(top) && isNaN(bottom) &&
-                isNaN(LayoutItemHelper.getConstraint(layoutItem, "verticalCenter")))
+                isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.verticalCenter)))
             {
                 extY += layoutItem.actualPosition.y;
             }
@@ -197,12 +197,12 @@
             if (!layoutItem || !layoutItem.includeInLayout)
                 continue;

-            var hCenter:Number = LayoutItemHelper.getConstraint(layoutItem, "horizontalCenter");
-            var vCenter:Number = LayoutItemHelper.getConstraint(layoutItem, "verticalCenter");
-            var left:Number    = LayoutItemHelper.getConstraint(layoutItem, "left");
-            var right:Number   = LayoutItemHelper.getConstraint(layoutItem, "right");
-            var top:Number     = LayoutItemHelper.getConstraint(layoutItem, "top");
-            var bottom:Number  = LayoutItemHelper.getConstraint(layoutItem, "bottom");
+            var hCenter:Number = LayoutItemHelper.parseConstraintValue(layoutItem.horizontalCenter);
+            var vCenter:Number = LayoutItemHelper.parseConstraintValue(layoutItem.verticalCenter);
+            var left:Number    = LayoutItemHelper.parseConstraintValue(layoutItem.left);
+            var right:Number   = LayoutItemHelper.parseConstraintValue(layoutItem.right);
+            var top:Number     = LayoutItemHelper.parseConstraintValue(layoutItem.top);
+            var bottom:Number  = LayoutItemHelper.parseConstraintValue(layoutItem.bottom);
             var itemMinSize:Point = layoutItem.minSize;
             var itemMaxSize:Point = layoutItem.maxSize.clone(); // Since we may update it below

@@ -219,9 +219,9 @@
             {
                 childWidth = unscaledWidth - right - left;
             }
-            else if (!isNaN(layoutItem.percentSize.x))
-            {
-                childWidth = unscaledWidth * Math.min(layoutItem.percentSize.x * 0.01, 1);
+            else if (!isNaN(layoutItem.percentWidth))
+            {
+                childWidth = unscaledWidth * Math.min(layoutItem.percentWidth * 0.01, 1);
                 itemMaxSize.x = Math.min(itemMaxSize.x,
                     maxSizeToFitIn(unscaledWidth, hCenter, left, right, childX));
             }
@@ -230,9 +230,9 @@
             {
                 childHeight = unscaledHeight - bottom - top;
             }
-            else if (!isNaN(layoutItem.percentSize.y))
-            {
-                childHeight = unscaledHeight * Math.min(layoutItem.percentSize.y * 0.01, 1);
+            else if (!isNaN(layoutItem.percentHeight))
+            {
+                childHeight = unscaledHeight * Math.min(layoutItem.percentHeight * 0.01, 1);
                 itemMaxSize.y = Math.min(itemMaxSize.y,
                     maxSizeToFitIn(unscaledHeight, vCenter, top, bottom, childY));
             }


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

--- frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as
+++ frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.messaging
 {


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

--- frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.messaging.channels
 {


422 Adding a CSS-like font fallback picker to TextUtil

--- raw/src/org/yellcorp/lib/text/TextUtil.as
+++ raw/src/org/yellcorp/lib/text/TextUtil.as
@@ -1,5 +1,6 @@
 package org.yellcorp.lib.text
 {
+import flash.text.Font;
 import flash.text.TextField;
 import flash.text.TextFormat;

@@ -89,6 +90,66 @@
         }
     }

+    /**
+     * Chooses a font from an ordered list in a similar way to CSS.
+     * That is, chooses the first available font. If no fonts are available,
+     * returns the last one. Note that the CSS values of sans-serif, serif,
+     * and monospace map to Flash's builtin font names of _sans, _serif, and
+     * _typewriter respectively. Also, mono maps to _typewriter for
+     * compatibility with flash.text.StyleSheet.
+     *
+     * @param fontNameList  A list of fonts. The first available one of
+     *                      these will be returned. If none are available,
+     *                      the last one will be returned. If null or an
+     *                      empty list, will return null.
+     *
+     * @param includeDevice Whether to consider device fonts in addition to
+     *                      embedded fonts. If true, will consider both
+     *                      device and embedded fonts. If false, will
+     *                      consider embedded fonts only. _sans, _serif, and
+     *                      _typewriter are always considered available.
+     */
+    public static function pickFont(fontNameList:Array, includeDevice:Boolean = true):String
+    {
+        var fontSet:Object = {};
+        var font:Font;
+        var fontName:String;
+        var ifontName:String;
+
+        if (!fontNameList || fontNameList.length == 0)
+        {
+            return null;
+        }
+
+        for each (font in Font.enumerateFonts(includeDevice))
+        {
+            fontSet[font.fontName.toLowerCase()] = true;
+        }
+        for each (fontName in fontNameList)
+        {
+            ifontName = fontName.toLowerCase();
+            switch (ifontName)
+            {
+            case "_sans":
+            case "sans-serif":
+                return "_sans";
+            case "_serif":
+            case "serif":
+                return "_serif";
+            case "_typewriter":
+            case "monospace":
+            case "mono":
+                return "_typewriter";
+            default:
+                if (fontSet[ifontName])
+                {
+                    return fontName;
+                }
+            }
+        }
+        return fontNameList[fontNameList.length - 1];
+    }
+
     public static function mergeTextFormat(base:TextFormat, ... formatList):TextFormat
     {
         return _mergeTextFormat(base, formatList);


Added GlobalLib.describeTypeJSON

Added GlobalLib.describeTypeJSON

--- WeaveCore/src/weave/compiler/GlobalLib.as
+++ WeaveCore/src/weave/compiler/GlobalLib.as
@@ -19,6 +19,8 @@

 package weave.compiler
 {
+	import avmplus.DescribeType;
+
 	import flash.debugger.enterDebugger;
 	import flash.net.getClassByAlias;
 	import flash.net.navigateToURL;
@@ -58,6 +60,8 @@
 	 */
 	public class GlobalLib
 	{
+		public static const describeTypeJSON:Function = avmplus.DescribeType.getInfo;
+
 		public static const enterDebugger:Function = flash.debugger.enterDebugger;

 		public static const getClassByAlias:Function = flash.net.getClassByAlias;


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

--- frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as
+++ frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.controls
 {


From whiteboard/cframpton/adobe.next.  Fix ListCollectionView bug.  RTE happens because addAllAt() wasn't taking into account that some of the added items could be filtered out. Now, it checks the length as it is adding items. If the insertion index goes out of bounds because of filtering, it adds the rest of the items at the end.

git-svn-id: 7d913817b0a978d84de757191e4bce372605a781@1414948 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/collections/ListCollectionView.as
+++ frameworks/projects/framework/src/mx/collections/ListCollectionView.as
@@ -25,6 +25,7 @@
 import flash.utils.Proxy;
 import flash.utils.flash_proxy;
 import flash.utils.getQualifiedClassName;
+
 import mx.collections.errors.CollectionViewError;
 import mx.collections.errors.CursorError;
 import mx.collections.errors.ItemPendingError;
@@ -636,10 +637,25 @@
      */
     public function addAllAt(addList:IList, index:int):void
     {
+        if (index < 0 || index > this.length)
+        {
+            var message:String = resourceManager.getString(
+                "collections", "outOfBounds", [ index ]);
+            throw new RangeError(message);
+        }
+
         var length:int = addList.length;
         for (var i:int=0; i < length; i++)
         {
-            this.addItemAt(addList.getItemAt(i), i+index);
+            var insertIndex:int = i + index;
+
+            // incremental index may be out of bounds because of filtering,
+            // so add this item to the end.
+            var currentLength:int = this.length;
+            if (insertIndex > currentLength)
+                insertIndex = currentLength;
+
+            this.addItemAt(addList.getItemAt(i), insertIndex);
         }
     }


ping timer relates to keepalive

ping timer relates to keepalive

--- MQTTClient_AS3/src/com/godpaper/mqtt/as3/impl/MQTTSocket.as
+++ MQTTClient_AS3/src/com/godpaper/mqtt/as3/impl/MQTTSocket.as
@@ -169,7 +169,7 @@
 			socket.addEventListener(ProgressEvent.SOCKET_DATA, onSocketData); //dispatched when socket can be read
 			socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecError); //dispatched when security gets in the way
 			//Timer for ping function.
-			timer = new Timer(5000);
+			timer = new Timer(keepalive / 2 * 1000);
 			timer.addEventListener(TimerEvent.TIMER, onPing);

 //			this.publishMessage.writeUTFBytes("HELLO"); // (0x48, 0x45 , 0x4c , 0x4c, 0x4f); //HELLO is the message


Removed comment block

Removed comment block

--- as3/src/asunit4/framework/TestIterator.as
+++ as3/src/asunit4/framework/TestIterator.as
@@ -152,7 +152,7 @@
             return getTestMethods(test).length;
         }

-        // Let's move this out of static - only used by SuiteIterator...
+        // Let's move this out of static - it's only used by SuiteIterator...
         // maybe we can defer the check until after we already create
         // a test iterator.
         public static function isTest(TestClass:Class):Boolean {
@@ -161,8 +161,6 @@
             return (iterator.length > 0);
         }

-        ////////////////////////////////////////////////////////////////////////////
-
         public function hasNext():Boolean {
             if (!testMethods) return false;