Transferred from the Adobe Open Source Subversion Repository

Revision: 14908
Author:   sramaswa@adobe.com
Date:     2010-03-22T13:21:15.947214Z

Log Message:
-----------
Merging revision 14898 from 4.x branch
QE notes: The AsyncResponder.fault signature has changed to use FaultEvent instead of ErrorMessage.
Doc notes: The AsyncResponder.fault signature has changed to use FaultEvent instead of ErrorMessage. We need to update the docs to reflect this in the samples.
Bugs: FLEXDMV-1900
Reviewer: Sameer
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/bundles/en_US/olap.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/olap/OLAPCube.as</path>

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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as
@@ -27,10 +27,11 @@
 import mx.collections.Sort;
 import mx.core.mx_internal;
 import mx.events.CubeEvent;
-import mx.messaging.messages.ErrorMessage;
 import mx.resources.ResourceManager;
 import mx.rpc.AsyncToken;
+import mx.rpc.Fault;
 import mx.rpc.IResponder;
+import mx.rpc.events.FaultEvent;

 use namespace mx_internal;

@@ -1033,7 +1034,7 @@
     	if (queryAxis.tuples.length == 0)
     	{
                 var message:String = ResourceManager.getInstance().getString(
-                    "olap", "zeroElementsOnAxis", [index]);
+                   "olap", "zeroElementsOnAxis", [index]);
                 throw new QueryError(message);
     	}
     }
@@ -1052,6 +1053,9 @@
             var result:OLAPResult;
             var q:IOLAPQuery = _queriesPending[0];
             var deleteEntry:Boolean = true;
+            var fault:Fault;
+            var faultCode:String;
+            var faultEvent:FaultEvent;

             try
             {
@@ -1073,17 +1077,23 @@
             }
             catch(qe:QueryError)
             {
+                faultCode = ResourceManager.getInstance().getString("olap", "queryError");
+                fault = new Fault(faultCode, qe.message);
+                faultEvent = FaultEvent.createEvent(fault, token);
                 for each (responder in token.responders)
                 {
-                    responder.fault(qe.message);
+                    responder.fault(faultEvent);
                 }
                 result = null;
             }
             catch (e:Error)
             {
+                faultCode = ResourceManager.getInstance().getString("olap", "error");
+                fault = new Fault(faultCode, e.message);
+                faultEvent = FaultEvent.createEvent(fault, token);
                 for each (responder in token.responders)
                 {
-                    responder.fault(e.message);
+                    responder.fault(faultEvent);
                 }
                 result = null;
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12928
Author:   jszeto@adobe.com
Date:     2009-12-14T23:38:21.443908Z

Log Message:
-----------
Remove old "FIXME" comments

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

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

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

--- frameworks/projects/spark/src/spark/components/HSlider.as
+++ frameworks/projects/spark/src/spark/components/HSlider.as
@@ -151,7 +151,6 @@

     /**
      *  @private
-     *  FIXME (jszeto): Update this to also use the ILayoutElement API SDK-22045
      */
     override protected function updateDataTip(dataTipInstance:IDataRenderer, initialPosition:Point):void
     {
@@ -169,11 +168,11 @@
             // Get the tips bounds. We only care about the dimensions.
             var tipBounds:Rectangle = tipAsDisplayObject.getBounds(tipAsDisplayObject.parent);

-            // Make sure the tip doesn't exceed the bounds of the screen
-            r.x = Math.floor( Math.max(screenBounds.left,
-                                Math.min(screenBounds.right - tipBounds.width, r.x)));
-            r.y = Math.floor( Math.max(screenBounds.top,
-                                Math.min(screenBounds.bottom - tipBounds.height, r.y)));
+                // Make sure the tip doesn't exceed the bounds of the screen
+                r.x = Math.floor( Math.max(screenBounds.left,
+                                    Math.min(screenBounds.right - tipBounds.width, r.x)));
+                r.y = Math.floor( Math.max(screenBounds.top,
+                                    Math.min(screenBounds.bottom - tipBounds.height, r.y)));

             r = tipAsDisplayObject.parent.globalToLocal(r);


added more code for statement handling

added more code for statement handling

--- WeaveCore/src/weave/compiler/Compiler.as
+++ WeaveCore/src/weave/compiler/Compiler.as
@@ -58,28 +58,40 @@
 		private static const INDEX_TRUE:int = 1;
 		private static const INDEX_FALSE:int = 2;

-		private static const BRANCH_IF:String = 'if';
-		private static const BRANCH_ELSE:String = 'else';
-		private static const BRANCH_FOR:String = 'for';
-		private static const BRANCH_DO:String = 'do';
-		private static const BRANCH_WHILE:String = 'while';
-		private static const BRANCH_RETURN:String = 'return';
-		private static const BRANCH_BREAK:String = 'break';
-		private static const BRANCH_CONTINUE:String = 'continue';
-		private static const BRANCH_SWITCH:String = 'switch';
-		private static const BRANCH_CASE:String = 'case';
-		private static const BRANCH_DEFAULT:String = 'default';
-		private static const BRANCH_IN:String = 'in';
-		private static const BRANCH_THROW:String = 'throw';
-		private static const BRANCH_TRY:String = 'try';
-		private static const BRANCH_CATCH:String = 'catch';
-		private static const BRANCH_FINALLY:String = 'finally';
-
-		private static const BRANCHES_ALL:Array = [
-				BRANCH_IF, BRANCH_ELSE, BRANCH_FOR, BRANCH_DO, BRANCH_WHILE, BRANCH_RETURN, BRANCH_BREAK, BRANCH_CONTINUE,
-				BRANCH_SWITCH, BRANCH_CASE, BRANCH_DEFAULT, BRANCH_IN, BRANCH_THROW, BRANCH_TRY, BRANCH_CATCH, BRANCH_FINALLY
-			];
-		private static const BRANCHES_REQUIRING_PARENTHESES:Array = [BRANCH_IF, BRANCH_FOR, BRANCH_WHILE, BRANCH_SWITCH, BRANCH_CATCH];
+		private static const STATEMENT_IF:String = 'if';
+		private static const STATEMENT_ELSE:String = 'else';
+		private static const STATEMENT_FOR:String = 'for';
+		private static const STATEMENT_DO:String = 'do';
+		private static const STATEMENT_WHILE:String = 'while';
+		private static const STATEMENT_RETURN:String = 'return';
+		private static const STATEMENT_BREAK:String = 'break';
+		private static const STATEMENT_CONTINUE:String = 'continue';
+		private static const STATEMENT_SWITCH:String = 'switch';
+		private static const STATEMENT_CASE:String = 'case';
+		private static const STATEMENT_DEFAULT:String = 'default';
+		private static const STATEMENT_IN:String = 'in';
+		private static const STATEMENT_THROW:String = 'throw';
+		private static const STATEMENT_TRY:String = 'try';
+		private static const STATEMENT_CATCH:String = 'catch';
+		private static const STATEMENT_FINALLY:String = 'finally';
+
+		private static const _statementsWithoutParams:Array = [
+			STATEMENT_ELSE, STATEMENT_DO, STATEMENT_RETURN, STATEMENT_BREAK, STATEMENT_CONTINUE,
+			STATEMENT_CASE, STATEMENT_DEFAULT, STATEMENT_IN, STATEMENT_THROW, STATEMENT_TRY, STATEMENT_FINALLY
+		];
+		private static const _statementsWithParams:Array = [
+			STATEMENT_IF, STATEMENT_FOR, STATEMENT_WHILE, STATEMENT_SWITCH, STATEMENT_CATCH
+		];
+
+		/**
+		 * (statement name):String -> (true if requires parentheses):Boolean
+		 */
+		private static var statements:Object = null;
+
+		/**
+		 * String->Array.  Examples: "else"->["if"], "while"->["do"], "finally"->["try", "catch"], "catch"->["try"]
+		 */
+		private static var statementSiblingsLookup:Object = null;

 		/**
 		 * This is the prefix used for the function notation of infix operators.
@@ -209,7 +221,7 @@
 			return libraries.concat(); // make a copy
 		}

-		private const BRANCH_LOOKUP:Dictionary = new Dictionary(); // Function or String -> true
+		private const BRANCH_LOOKUP:Dictionary = new Dictionary(); // Function -> true
 		private const ASSIGN_OP_LOOKUP:Object = new Dictionary(); // Function -> true

 		/**
@@ -250,10 +262,27 @@
 		 * This function will initialize the operators and constants.
 		 */
 		private function initialize():void
-		{
-			constants = new Object();
-			operators = new Object();
-			assignmentOperators = new Object();
+		{
+			if (!statements)
+			{
+				statements = {};
+				var stmt:String;
+				for each (stmt in _statementsWithParams)
+					statements[stmt] = true;
+				for each (stmt in _statementsWithoutParams)
+					statements[stmt] = false;
+
+				statementSiblingsLookup = {};
+				statementSiblingsLookup[STATEMENT_CASE] = [STATEMENT_SWITCH, STATEMENT_CASE, STATEMENT_DEFAULT];
+				statementSiblingsLookup[STATEMENT_DEFAULT] = [STATEMENT_SWITCH, STATEMENT_CASE];
+				statementSiblingsLookup[STATEMENT_WHILE] = [STATEMENT_DO];
+				statementSiblingsLookup[STATEMENT_ELSE] = [STATEMENT_IF];
+				statementSiblingsLookup[STATEMENT_CATCH] = [STATEMENT_TRY];
+				statementSiblingsLookup[STATEMENT_FINALLY] = [STATEMENT_TRY, STATEMENT_CATCH];
+			}
+			constants = {};
+			operators = {};
+			assignmentOperators = {};

 			// add built-in functions
 			constants['new'] = function(classOrQName:Object, params:Array = null):Object
@@ -390,8 +419,6 @@
 					constants[OPERATOR_ESCAPE + op] = operators[op];

 			// fill branch reverse-lookup dictionary
-			for each (var branch:String in BRANCHES_ALL)
-				BRANCH_LOOKUP[branch] = true;
 			BRANCH_LOOKUP[constants[OPERATOR_ESCAPE + '?:']] = true;
 			BRANCH_LOOKUP[constants[OPERATOR_ESCAPE + '&&']] = true;
 			BRANCH_LOOKUP[constants[OPERATOR_ESCAPE + '||']] = false;
@@ -576,7 +603,7 @@
 			for each (token in tokens)
 				if (token is String && '..[](){}'.indexOf(token as String) >= 0)
 					throw new Error("Misplaced '" + token + "'");
-
+
 			// next step: compile constants and variable names
 			for (i = 0; i < tokens.length; i++)
 			{
@@ -592,7 +619,7 @@
 				}
 				// treat everything else as a variable name.
 				// make a copy of the variable name that is safe for the wrapper function to use
-				// compile the token as a call to variableGetter.
+				// compile the token as a call to variableGetter.
 				tokens[i] = compileVariable(token);
 			}

@@ -600,16 +627,19 @@
 			if (operators['#'])
 				compileUnaryOperators(tokens, ['#']);

-			// next step: compile infix '**' operators
+			// next step: compile statements
+			compileStatements(tokens);
+
+			// next step: compile infix '**' operators
 			compileInfixOperators(tokens, ['**']);
-
+
 			// next step: compile unary operators
-			compileUnaryOperators(tokens, unaryOperatorSymbols);
-
+			compileUnaryOperators(tokens, unaryOperatorSymbols);
+
 			// next step: compile remaining infix operators in order
 			for (i = 0; i < orderedOperators.length; i++)
-				compileInfixOperators(tokens, orderedOperators[i]);
-
+				compileInfixOperators(tokens, orderedOperators[i]);
+
 			// next step: compile conditional branches
 			conditionals: while (true)
 			{
@@ -701,7 +731,7 @@
 			// next step: handle multiple comma- or semicolon-separated expressions
 			if (tokens.indexOf(',') >= 0)
 				return compileOperator(',', compileArray(tokens, ','));
-
+
 			if (tokens.indexOf(';') >= 0)
 				return compileOperator(';', compileArray(tokens, ';'));

@@ -911,8 +941,8 @@
 					// The function token hasn't been compiled yet.
 					if (constants.hasOwnProperty(token))
 						compiledToken = new CompiledConstant(token as String, constants[token]);
-					else if (!BRANCH_LOOKUP.hasOwnProperty(token)) // branch will be handled below
-						compiledToken = compileVariable(token as String);
+					else
+						compiledToken = compileVariable(token as String) as ICompiledObject;
 				}

 				// handle access and descendants operators
@@ -933,7 +963,7 @@
 				var subArray:Array = tokens.splice(open + 1, close - open - 1);
 				if (debug)
 					trace("compiling tokens", leftBracket, subArray.join(' '), rightBracket);
-				var separator:String = (leftBracket == '{' || token == BRANCH_FOR) ? ';' : ',';
+				var separator:String = (leftBracket == '{' || token == STATEMENT_FOR) ? ';' : ',';
 				compiledParams = compileArray(subArray, separator);

 				if (leftBracket == '[') // this is either an array or a property access
@@ -972,16 +1002,15 @@
 				if (leftBracket == '(' && compiledParams.length == 0)
 					throw new Error("Missing expression inside parentheses");

-				// if appropriate, simplify
-				if (compiledParams.length == 1 && BRANCHES_REQUIRING_PARENTHESES.indexOf(token) < 0)
+				if (compiledParams.length != 1 || (statements.hasOwnProperty(token) && statements[token]))
+				{
+					// cannot be simplified -- multiple commands or statement params
+					tokens.splice(open, 2, compileOperator(separator, compiledParams));
+				}
+				else
 				{
 					// simplify to single expression
 					tokens.splice(open, 2, compiledParams[0]);
-				}
-				else
-				{
-					// multiple commands or branch construct
-					tokens.splice(open, 2, compileOperator(separator, compiledParams));
 				}
 			}
 		}
@@ -1050,16 +1079,102 @@
 			// if there are no CompiledFunctionCall objects in the compiled parameters, evaluate the compiled function call to a constant.
 			var callWrapper:Function = compileObjectToFunction(compiledFunctionCall, null, false, false, null, null); // no symbol table required for evaluating a constant
 			return new CompiledConstant(decompileObject(compiledFunctionCall), callWrapper());
+		}
+
+		/**
+		 * This function assumes there are none of the following contained in the top-level of tokens:
+		 *
+		 * @param tokens
+		 */
+		private function compileStatements(tokens:Array):void
+		{
+			var tokenIndex:int = tokens.length;
+			while (tokenIndex--) // right to left
+			{
+				var token:String = tokens[tokenIndex] as String;
+				if (!statements.hasOwnProperty(token))
+					continue;
+
+				var firstSiblingIndex:int = tokenIndex;
+				var siblings:Array = statementSiblingsLookup[token] as Array;
+				var i:int = tokenIndex;
+				while (siblings && i--)
+				{
+					var sibTok:String = tokens[i] as String
+					// skip non-statement tokens
+					if (!statements.hasOwnProperty(sibTok))
+						continue;
+					if (siblings.indexOf(sibTok) >= 0)
+					{
+						// found sibling
+						firstSiblingIndex = i;
+						// now check for siblings of this sibling
+						siblings = statementSiblingsLookup[sibTok] as Array;
+						break;
+					}
+					// stop if we found the same type of token and it's not a valid sibling
+					if (sibTok == token)
+						break;
+				}
+
+				assertValidStatementParams(tokens, firstSiblingIndex, tokenIndex);
+			}
+		}
+
+		private function assertValidStatementParams(tokens:Array, firstIndex:int, lastIndex:int):void
+		{
+			if (firstIndex != lastIndex)
+				for (var i:int = firstIndex; i <= lastIndex; i++)
+					if (statements.hasOwnProperty(tokens[i]))
+						assertValidStatementParams(tokens, i, i);
+
+			var statement:String = tokens[firstIndex] as String;
+			if (statements[statement]) // requires parameters?
+			{
+				var params:CompiledFunctionCall = tokens[firstIndex + 1] as CompiledFunctionCall;
+				if (!params)
+					throwInvalidSyntax(statement);
+
+				var separator:String = statement == STATEMENT_FOR ? ';' : ',';
+				if (params.evaluatedMethod == operators[separator])
+				{
+					var paramCount:int = statement == STATEMENT_FOR ? 3 : 1;
+					if (params.compiledParams.length != paramCount)
+						throwInvalidSyntax(statement);
+				}
+				else if (statement == STATEMENT_FOR && params.evaluatedMethod != STATEMENT_IN)
+				{
+					throwInvalidSyntax(statement);
+				}
+
+				if (firstIndex != lastIndex)
+				{
+					//TODO
+
+					var distance:int = statements[statement] ? 3 : 2; // 3 if requires params, 2 if not
+					if (lastIndex - firstIndex != distance)
+						throwInvalidSyntax(statement);
+				}
+			}
+		}
+
+		private function throwInvalidSyntax(statement:String):void
+		{
+			throw new Error("Invalid '" + statement + "' syntax");
 		}

 		/**
 		 * This function is for internal use only.
 		 * This function is necessary because variableName needs to be a new Flash variable each time a wrapper function is created.
 		 * @param variableName The name of the variable to get when the resulting wrapper function is evaluated.
-		 * @param A CompiledFunctionCall for getting the variable.
+		 * @param A CompiledFunctionCall for getting the variable.
+		 * @return If the variable name is valid, returns an ICompiledObject.  If not valid, the same variableName String is returned.
 		 */
-		private function compileVariable(variableName:String):CompiledFunctionCall
-		{
+		private function compileVariable(variableName:String):Object
+		{
+			// do not treat statement keywords as variable names
+			if (statements.hasOwnProperty(variableName))
+				return variableName;
 			return new CompiledFunctionCall(new CompiledConstant(variableName, variableName), null); // params are null as a special case
 		}


fixed bug where submenu would appear behind a control panel.

--- WeaveUI/src/weave/ui/SubMenu.as
+++ WeaveUI/src/weave/ui/SubMenu.as
@@ -169,7 +169,10 @@

 			// fixes a bug where super.show() may put SessionManager in an unusable state
 			if (mx_internal::parentDisplayObject)
+			{
 				PopUpManager.addPopUp(this, mx_internal::parentDisplayObject, false);
+				this.parent.setChildIndex(this, this.parent.numChildren - 1);
+			}

 			super.show(xShow, yShow);
 		}


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

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

 package mx.automation.tabularData
 {


?? URL ?????? com ? org ? net ????????????

--- as3/com/netease/protobuf/SimpleWebRPC.as
+++ as3/com/netease/protobuf/SimpleWebRPC.as
@@ -16,7 +16,9 @@
 		public function SimpleWebRPC(urlPrefix:String) {
 			this.urlPrefix = urlPrefix;
 		}
+
 		private static const REF:Dictionary = new Dictionary();
+
 		public function send(qualifiedMethodName:String,
 							 input:IExternalizable,
 							 rpcResult:Function,
@@ -39,12 +41,16 @@
 			loader.addEventListener(
 					SecurityErrorEvent.SECURITY_ERROR, errorEventHandler)
 			const request:URLRequest = new URLRequest(
-				urlPrefix + qualifiedMethodName.replace(/\./g, "/"))
-			request.method = URLRequestMethod.POST
+				urlPrefix + qualifiedMethodName.replace(/\./g, "/").
+					replace(/^((com|org|net)\/\w+\/\w+\/)?(.*)$/, "$3"))
 			const requestContent:ByteArray = new ByteArray
 			input.writeExternal(requestContent)
-			request.data = requestContent
+			if (requestContent.length != 0)
+			{
+				request.data = requestContent
+			}
 			request.contentType = "application/x-protobuf"
+			request.method = URLRequestMethod.POST
 			loader.load(request)
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/charts/src/mx/charts/effects/SeriesInterpolate.as
+++ frameworks/projects/charts/src/mx/charts/effects/SeriesInterpolate.as
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.effects
+{
+
+import mx.charts.effects.effectClasses.SeriesInterpolateInstance;
+
+/**
+ *  The SeriesInterpolate effect moves the graphics that represent
+ *  the existing data in a series to the new points.
+ *  Instead of clearing the chart and then repopulating it
+ *  as with SeriesZoom and SeriesSlide,
+ *  this effect keeps the data on the screen at all times.
+ *
+ *
You only use the SeriesInterpolate effect
+ *  with a showDataEffect effect trigger.
+ *  It has no effect if set with a hideDataEffect.

+ *
+ *  @includeExample examples/SeriesInterpolateExample.mxml
+ *
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class SeriesInterpolate extends SeriesEffect
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param target The target of the effect.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function SeriesInterpolate(target:Object = null)
+    {
+        super(target);
+
+        instanceClass = SeriesInterpolateInstance;
+    }
+}
+
+}


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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////
 package spark.components
 {
 import flash.display.StageOrientation;


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

--- frameworks/projects/mx/src/mx/accessibility/AccordionHeaderAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/AccordionHeaderAccImpl.as
@@ -0,0 +1,320 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.accessibility
+{
+
+import flash.accessibility.Accessibility;
+import flash.display.DisplayObject;
+import flash.events.Event;
+import mx.containers.Accordion;
+import mx.containers.accordionClasses.AccordionHeader;
+import mx.controls.Button;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ *  The AccordionHeaderAccImpl is the class
+ *  for enabling Accordion Accessibility.
+ *
+ *  @helpid
+ *  @tiptext This is the AccordionHeader Accessibility Class.
+ *  @review
+ */
+public class AccordionHeaderAccImpl extends AccImpl
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class initialization
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Static variable triggering the hookAccessibility() method.
+	 *  This is used for initializing AccordionHeaderAccImpl class to hook its
+	 *  createAccessibilityImplementation() method to AccordionHeader class
+	 *  before it gets called from UIComponent.
+	 */
+	private static var accessibilityHooked:Boolean = hookAccessibility();
+
+	/**
+	 *  @private
+	 *  Static method for swapping the createAccessibilityImplementation()
+	 *  method of AccordionHeader with the AccordionHeaderAccImpl class.
+	 */
+	private static function hookAccessibility():Boolean
+	{
+		AccordionHeader.createAccessibilityImplementation =
+			createAccessibilityImplementation;
+
+		return true;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_FOCUSED:uint = 0x00000004;
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_SELECTABLE:uint = 0x00200000;
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_SELECTED:uint = 0x00000002;
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_UNAVAILABLE:uint = 0x00000001;
+
+	/**
+	 *  @private
+	 */
+	private static const EVENT_OBJECT_FOCUS:uint = 0x8005;
+
+	/**
+	 *  @private
+	 */
+	private static const EVENT_OBJECT_SELECTION:uint = 0x8006;
+
+	/**
+	 *  @private
+	 */
+	private static const MAX_NUM:uint = 100000;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Method for creating the Accessibility class.
+	 *  This method is called from UIComponent.
+	 *  @review
+	 */
+	mx_internal static function createAccessibilityImplementation(
+								component:UIComponent):void
+	{
+		component.accessibilityImplementation =
+			new AccordionHeaderAccImpl(component);
+	}
+
+	/**
+	 *  Method call for enabling accessibility for a component.
+	 *  This method is required for the compiler to activate
+	 *  the accessibility classes for a component.
+	 */
+	public static function enableAccessibility():void
+	{
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param master The UIComponent instance that this AccImpl instance
+	 *  is making accessible.
+	 */
+	public function AccordionHeaderAccImpl(master:UIComponent)
+	{
+		super(master);
+
+		role = 0x25;
+
+		master.parent.addEventListener("change", eventHandler);
+		master.addEventListener("removed", removedHandler);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  eventsToHandle
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *	Array of events that we should listen for from the master component.
+	 */
+	override protected function get eventsToHandle():Array
+	{
+		return super.eventsToHandle.concat([ "focusDraw" ]);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: AccessibilityImplementation
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  IAccessible method for returning the state of Tab selected.
+	 *
+	 *  @param childID uint
+	 *
+	 *  @return State uint
+	 *  @review
+	 */
+	override public function get_accState(childID:uint):uint
+	{
+		var accState:uint = getState(childID);
+
+		var accordion:Accordion = Accordion(master.parent);
+
+		if (accordion.enabled)
+		{
+			accState |= STATE_SYSTEM_SELECTABLE;
+
+			if (Button(master).selected)
+				accState |= STATE_SYSTEM_SELECTED;
+
+			var index:int = accordion.focusedIndex;
+			if (index >= 0 && master == accordion.getHeaderAt(index))
+				accState |= STATE_SYSTEM_FOCUSED;
+		}
+		else
+			accState |= STATE_SYSTEM_UNAVAILABLE;
+
+		return accState;
+	}
+
+	/**
+	 *  @private
+	 *  IAccessible method for returning the Default Action.
+	 *
+	 *  @param childID uint
+	 *
+	 *  @return name of default action.
+	 */
+	override public function get_accDefaultAction(childID:uint):String
+	{
+		return "Switch";
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  method for returning the name of the Tab
+	 *  which is spoken out by the screen reader.
+	 *
+	 *  @param childID uint
+	 *
+	 *  @return Name String
+	 */
+	override protected function getName(childID:uint):String
+	{
+		var tab:Button = Button(master);
+
+		var parentAccordion:Accordion = Accordion(master.parent);
+
+		if (childID > 0)
+			tab = parentAccordion.getHeaderAt(parentAccordion.focusedIndex);
+
+		var name:String = tab.label + " Tab";
+
+		//if (tab.selected) // until 125587 is fixed.
+		if (tab == parentAccordion.getHeaderAt(parentAccordion.selectedIndex))
+			name += ", Active";
+
+		return name;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden event handlers: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Override the generic event handler.
+	 *  All AccImpl must implement this to listen for events
+	 *  from its master component.
+	 */
+	override protected function eventHandler(event:Event):void
+	{
+		var index:int;
+		switch (event.type)
+		{
+			case "focusDraw":
+			{
+				// sending + 10000 to ensure sending out different number
+				// than sent last time in change.
+
+				//event.currentTarget here is the AccordionHeader (a/k/a 'master')
+				index = Accordion(event.currentTarget.parent).focusedIndex;
+
+				if (index >= 0 && master == Accordion(event.currentTarget.parent).getHeaderAt(index))
+				{
+					Accessibility.sendEvent(DisplayObject(event.currentTarget), index + MAX_NUM + 1,
+											EVENT_OBJECT_FOCUS, true);
+					break;
+				}
+			}
+
+			case "change":
+			{
+				//event.currentTarget here is the Accordion (a/k/a 'master.parent')
+				index = Accordion(event.currentTarget).selectedIndex;
+				if (index >= 0 && master == Accordion(event.currentTarget).getHeaderAt(index))
+				{
+					Accessibility.sendEvent(master, index + 1,
+											EVENT_OBJECT_SELECTION, true);
+					break;
+				}
+			}
+		}
+	}
+
+	/**
+	 *  @private
+	 *  Remove the change handler on the accordion that was causing this to stick around in memory
+	 *  and cause RTE. Also remove self.
+	 */
+	protected function removedHandler(event:Event):void
+	{
+		master.parent.removeEventListener("change", eventHandler);
+		master.removeEventListener("removed", removedHandler);
+	}
+
+}
+
+}


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

--- frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as
+++ frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 22515
Author:   aaltman@adobe.com
Date:     2011-09-12T21:46:08.012727Z

Log Message:
-----------
Changed StyleableStageText event forwarding to create new bubbling events to forward. Necessary because runtime 448 stops StageText events from bubbling.

QE notes: None
Doc notes: None
Bugs: None
Reviewer: cframpto
Tests run: checkintests mustella mustella-air mustella-mobile
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
@@ -2104,7 +2104,12 @@
     private function stageText_focusInHandler(event:FocusEvent):void
     {
         focusedStageText = stageText;
-        dispatchEvent(event);
+
+        // Focus events are documented as bubbling. However, all events coming
+        // from StageText are set to not bubble. So we need to create an
+        // appropriate bubbling event here.
+        dispatchEvent(new FocusEvent(event.type, true, event.cancelable,
+            event.relatedObject, event.shiftKey, event.keyCode, event.direction));
     }

     private function stageText_focusOutHandler(event:FocusEvent):void
@@ -2112,26 +2117,40 @@
         if (focusedStageText == stageText)
             focusedStageText = null;

-        dispatchEvent(event);
+        // Focus events are documented as bubbling. However, all events coming
+        // from StageText are set to not bubble. So we need to create an
+        // appropriate bubbling event here.
+        dispatchEvent(new FocusEvent(event.type, true, event.cancelable,
+            event.relatedObject, event.shiftKey, event.keyCode, event.direction));
     }

     private function stageText_keyDownHandler(event:KeyboardEvent):void
     {
         if (event.keyCode == Keyboard.ENTER && !_multiline)
             dispatchEvent(new FlexEvent(FlexEvent.ENTER));
-
-        dispatchEvent(event);
+
+        // Keyboard events are documented as bubbling. However, all events
+        // coming from StageText are set to not bubble. So we need to create an
+        // appropriate bubbling event here.
+        dispatchEvent(new KeyboardEvent(event.type, true, event.cancelable,
+            event.charCode, event.keyCode, event.keyLocation, event.ctrlKey,
+            event.altKey, event.shiftKey, event.controlKey, event.commandKey));
     }

     private function stageText_keyUpHandler(event:KeyboardEvent):void
     {
-        dispatchEvent(event);
+        // Keyboard events are documented as bubbling. However, all events
+        // coming from StageText are set to not bubble. So we need to create an
+        // appropriate bubbling event here.
+        dispatchEvent(new KeyboardEvent(event.type, true, event.cancelable,
+            event.charCode, event.keyCode, event.keyLocation, event.ctrlKey,
+            event.altKey, event.shiftKey, event.controlKey, event.commandKey));
     }

     private function stageText_softKeyboardHandler(event:SoftKeyboardEvent):void
     {
         dispatchEvent(new SoftKeyboardEvent(event.type,
-            event.bubbles, event.cancelable, this, event.triggerType));
+            true, event.cancelable, this, event.triggerType));
     }

     private function eventTargetsAncestor(event:Event):Boolean


default mimetype

default mimetype

--- flex_src/src/com/adobe/net/MimeTypeMap.as
+++ flex_src/src/com/adobe/net/MimeTypeMap.as
@@ -162,7 +162,8 @@
 					}
 				}
 			}
-			return null;
+
+			return "application/octet-stream";
 		}

 		/**


added StageUtils.addPointClickListener().

--- WeaveCore/src/weave/core/StageUtils.as
+++ WeaveCore/src/weave/core/StageUtils.as
@@ -21,6 +21,7 @@
 {
 	import flash.display.Stage;
 	import flash.events.Event;
+	import flash.events.EventDispatcher;
 	import flash.events.KeyboardEvent;
 	import flash.events.MouseEvent;
 	import flash.events.TimerEvent;
@@ -85,6 +86,23 @@
 		 * Callbacks added to this event will only trigger when the mouse was clicked and released at the same screen location.
 		 */
 		public static function get POINT_CLICK_EVENT():String { return EventCallbackCollection.POINT_CLICK_EVENT; }
+
+		/**
+		 * Adds event listeners to handle clicking on a single pixel.
+		 */
+		public static function addPointClickListener(target:EventDispatcher, listener:Function):void
+		{
+			var p:Point = new Point();
+			function handleEvent(event:MouseEvent):void
+			{
+				if (event.type == MouseEvent.MOUSE_DOWN)
+					p.x = event.stageX, p.y = event.stageY;
+				else if (p.x == event.stageX && p.y == event.stageY)
+					listener(event);
+			}
+			target.addEventListener(MouseEvent.MOUSE_DOWN, handleEvent);
+			target.addEventListener(MouseEvent.CLICK, handleEvent);
+		}

 		/**
 		 * This is a special pseudo-event type supported by StageUtils.


added testSortOn()

added testSortOn()

--- WeaveCore/src/weave/utils/AsyncSort.as
+++ WeaveCore/src/weave/utils/AsyncSort.as
@@ -303,30 +303,41 @@
 			Merge Sort 50000 numbers; 1.284 seconds
 		*/
 		private static var _testArrays:Array;
+		private static var _testArraysSortOn:Array;
 		private static var _testType:int = -1;
-		public static function test(compare:Object, testType:int = 0):void
+		private static function initTestArrays(testType:int):void
 		{
 			if (testType != _testType)
 			{
 				_testType = testType;
 				_testArrays = [];
+				_testArraysSortOn = [];
 				for each (var n:uint in [0,1,2,3,4,5,50,3000,6000,12000,25000,50000])
 				{
 					var array:Array = [];
+					var arraySortOn:Array = [];
 					for (var i:int = 0; i < n; i++)
 					{
+						var value:*;
 						if (testType == 0)
-							array.push(uint(Math.random()*100));
+							value = uint(Math.random()*100);
 						else if (testType == 1)
-							array.push(Math.random() < .5 ? NaN : uint(Math.random()*100));
+							value = Math.random() < .5 ? NaN : uint(Math.random()*100);
 						else if (testType == 2)
-							array.push('a' + Math.random());
+							value = 'a' + Math.random();
+
+						array.push(value);
+						arraySortOn.push({'value': value});
 					}
 					_testArrays.push(array);
+					_testArraysSortOn.push(arraySortOn);
 				}
 			}
 			trace("testType =", testType);
-
+		}
+		public static function test(compare:Object, testType:int = 0):void
+		{
+			initTestArrays(testType);
 			_debugCompareFunction = compare as Function;
 			for each (var _array:Array in _testArrays)
 			{
@@ -353,6 +364,36 @@
 				verifyNumbersSorted(array2);
 			}
 		}
+		public static function testSortOn(compare:Object, testType:int = 0):void
+		{
+			initTestArrays(testType);
+			_debugCompareFunction = new SortOn('value', compare as Function || primitiveCompare).compare as Function;
+			for each (var _array:Array in _testArraysSortOn)
+			{
+				var array1:Array = _array.concat();
+				var array2:Array = _array.concat();
+
+				var start:int = getTimer();
+				_debugCompareCount = 0;
+				if (compare === null)
+					array1.sortOn('value', 0);
+				else
+					array1.sortOn('value', _debugCompareCounter);
+				trace('Array.sort', array1.length, 'numbers;', (getTimer() - start) / 1000, 'seconds;', _debugCompareCount ? (_debugCompareCount+' comparisons') : '');
+
+				start = getTimer();
+				_debugCompareCount = 0;
+				sortImmediately(array2, _debugCompareFunction);
+				//trace('Merge Sort', n, 'numbers;', _immediateSorter.elapsed / 1000, 'seconds;',_debugCompareCount,'comparisons');
+				trace('Merge Sort', array2.length, 'numbers;', (getTimer() - start) / 1000, 'seconds;', _debugCompareCount ? (_debugCompareCount+' comparisons') : '');
+
+				if (array2.length == 1 && ObjectUtil.compare(array1[0],array2[0]) != 0)
+					throw new Error("sort failed on array length 1");
+
+				verifyNumbersSorted(array2);
+			}
+
+		}
 		private static function verifyNumbersSorted(array:Array):void
 		{
 			for (var i:int = 1; i < array.length; i++)
@@ -372,3 +413,15 @@
 		}
 	}
 }
+
+internal class SortOn
+{
+	public function SortOn(prop:String, compare:Function)
+	{
+		this.prop = prop;
+		this._compare = compare;
+	}
+	private var prop:String;
+	private var _compare:Function;
+	public function compare(a:*, b:*):int { return _compare(a[prop], b[prop]); }
+}


FLEX-34101 likley fix for regression issue

--- frameworks/projects/framework/src/mx/collections/ListCollectionView.as
+++ frameworks/projects/framework/src/mx/collections/ListCollectionView.as
@@ -1173,6 +1173,7 @@
 					else
 					{
 						loc = -1;
+						addLocation = -1;
 					}
 				}
 				else if (sort)


Transferred from the Adobe Open Source Subversion Repository

Revision: 12612
Author:   jimurphy@adobe.com
Date:     2009-12-07T18:22:37.051018Z

Log Message:
-----------
Merged 3.x revisions 12301,12311,12366,12369,12371-12372,12434,12483,12547 -> trunk

........
  r12301 | dloverin@adobe.com | 2009-11-30 17:52:14 -0500 (Mon, 30 Nov 2009) | 14 lines

  Bugs: SDK-18076
........
  r12311 | pfarland@adobe.com | 2009-11-30 21:33:06 -0500 (Mon, 30 Nov 2009) | 10 lines

  Bugs:
  SDK-24359 - soap response incorrectly decoded by XMLDecoder
........
  r12366 | clucier@adobe.com | 2009-12-02 11:25:44 -0500 (Wed, 02 Dec 2009) | 10 lines

  Bugs: SDK-23691
........
  r12369 | jon.avila@ssbbartgroup.com | 2009-12-02 11:46:06 -0500 (Wed, 02 Dec 2009) | 8 lines

  Bugs: n/a
........
  r12371 | jon.avila@ssbbartgroup.com | 2009-12-02 11:51:12 -0500 (Wed, 02 Dec 2009) | 8 lines

  Bugs: n/a
........
  r12372 | jon.avila@ssbbartgroup.com | 2009-12-02 11:54:42 -0500 (Wed, 02 Dec 2009) | 8 lines

  Bugs: n/a
........
  r12434 | jon.avila@ssbbartgroup.com | 2009-12-03 10:12:48 -0500 (Thu, 03 Dec 2009) | 7 lines

  Bugs: n/a
........
  r12483 | aharui@adobe.com | 2009-12-04 02:06:41 -0500 (Fri, 04 Dec 2009) | 10 lines
  Bugs: SDK-24340
........
  r12547 | gauravj@adobe.com | 2009-12-04 15:21:21 -0500 (Fri, 04 Dec 2009) | 7 lines

  Bugs: SDK-24278
........

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/bundles/en_US/controls.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/antTasks/src/flex/ant/MxmlcTask.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridBase.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridBase.as
@@ -586,7 +586,7 @@
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void
     {
-        if (headerVisible && header)
+        if (header)
         {
             header.visibleColumns = visibleColumns;
             header.headerItemsChanged = true;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4155
Author:   jszeto@adobe.com
Date:     2008-11-21T02:04:53.722684Z

Log Message:
-----------
Flex SDK Slider Bug Fixes

SDK-17872 - Dragging Slider thumb has inconsistent behavior

Changed drag behavior. Possible drag values are multiples of valueInterval, not stepSize.

SDK-18082 - FxSlider cannot handle non-integer values

Copied over logic from Halo slider to handle floating point math errors

Other Changes: Using the keyboard to step the slider now uses valueInterval instead of stepSize to round off

QE Notes:
Doc Notes: None
Bugs: SDK-17872, SDK-18082
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxRange.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxSlider.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/Range.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/Range.as
@@ -12,10 +12,6 @@
 package mx.components.baseClasses
 {

-import flash.events.Event;
-
-import mx.components.baseClasses.FxComponent;
-
 import mx.events.FlexEvent;

 /**
@@ -331,7 +327,16 @@

         // Round value to closest multiple of valueInterval
         if (interval != 0)
+        {
             closest = Math.round(closest / interval) * interval;
+
+            if (interval != Math.round(interval))
+            {
+	            var parts:Array = (new String(1 + interval)).split(".");
+				var scale:Number = Math.pow(10, parts[1].length);
+            	closest = Math.round(closest * scale) / scale;
+            }
+        }

         if (closest >= maximum)
             return maximum;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12339
Author:   clucier@adobe.com
Date:     2009-12-01T22:28:31.107685Z

Log Message:
-----------
Reducing some of the event dispatching noise in the SDK.  Seeing pretty good results in our runtime performance tests and startup times... 5%-15% improvement over all.  This is about all we'll be able to commit to for Flex 4.0.  Added hasEventListener test before dispatching more of our lifecycle events.  Modified compiler binding code-gen to do the same.  Documented all public facing events where applicable to denote that they are no longer capturable by default.

QE notes: No
Doc notes: No
Bugs: SDK-24249
Reviewer: Alex
Tests run: Mustella, Checkin
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientEntry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/State.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableSecondPassEvaluator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableProperty.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as
@@ -274,4 +274,4 @@
     }

 }
-}+}


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

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

 package


Transferred from the Adobe Open Source Subversion Repository

Revision: 12863
Author:   sbreinbe@adobe.com
Date:     2009-12-11T21:18:02.442564Z

Log Message:
-----------
Fix class referenced in Alternative metadata.
Alternative metadata for Box, HBox, VBox, Canvas, and Tile still used the obsolete Border classname rather than BorderContainer.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Box.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Canvas.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Tile.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/VBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/HBox.as</path>

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

--- frameworks/projects/mx/src/mx/containers/Box.as
+++ frameworks/projects/mx/src/mx/containers/Box.as
@@ -73,7 +73,7 @@

 [Alternative(replacement="spark.components.HGroup", since="4.0")]
 [Alternative(replacement="spark.components.VGroup", since="4.0")]
-[Alternative(replacement="spark.components.Border", since="4.0")]
+[Alternative(replacement="spark.components.BorderContainer", since="4.0")]

 /**
  *  A Halo Box container lays out its children in a single vertical column


Transferred from the Adobe Open Source Subversion Repository

Revision: 8574
Author:   aharui@adobe.com
Date:     2009-07-15T05:33:44.225721Z

Log Message:
-----------
Bugs related to TLF and focus.  Also TLF Marshall Plan adjustments, and some IME fixes

QE Notes: None
Doc Notes: None
Bugs: SDK-21278, SDK-21686, SDK-21375, SDK-18516, SDK-15093, SDK-21335
Reviewer: darrell, carol
tests: checkintests mustella/gumbo mustella/components

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManagerComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IIMESupport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -481,8 +481,6 @@
     {
         super();

-        // By default, containers cannot receive focus but their children can.
-        tabChildren = true;
         tabEnabled = false;

         showInAutomationHierarchy = false;
@@ -5283,7 +5281,6 @@

         var newPane:Sprite = new FlexSprite();
         newPane.name = "contentPane";
-        newPane.tabChildren = true;

         // Place content pane above border and background image but below
         // all other chrome.


implement event dispatcher

implement event dispatcher

--- source/com/kemsky/Stream.as
+++ source/com/kemsky/Stream.as
@@ -3,6 +3,11 @@
     import com.kemsky.filters._;
     import com.kemsky.filters.defined;
     import com.kemsky.support.*;
+
+    import flash.events.Event;
+    import flash.events.EventDispatcher;
+
+    import flash.events.IEventDispatcher;

     import flash.utils.ByteArray;
     import flash.utils.Dictionary;
@@ -25,7 +30,7 @@
      * Inspired by Javascript and Ruby arrays and Scala collections.
      */
     [RemoteClass(alias="com.kemsky.Stream")]
-    public dynamic class Stream extends Proxy implements IExternalizable
+    public dynamic class Stream extends Proxy implements IExternalizable, IEventDispatcher
     {
         /**
          * Specifies case-insensitive sorting for the Stream class sorting methods.
@@ -56,6 +61,8 @@
          *  The source of data in the list.
          */
         stream_internal var source:Array;
+
+        stream_internal var dispatcher:EventDispatcher;

         /**
          *  Constructor.
@@ -67,9 +74,11 @@
          *     var s:Stream = new Stream();
          *     var s:Stream = new Stream([1, 2, 3]);
          * </pre>
+         * @internal mutable
          */
         public function Stream(source:Array = null)
         {
+            this.dispatcher = new EventDispatcher(this);
             this.source = source == null ? [] : source;
         }

@@ -1968,6 +1977,51 @@
         }

         /**
+         * @private
+         * @internal immutable
+         */
+        public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
+        {
+            dispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
+        {
+            dispatcher.removeEventListener(type, listener, useCapture);
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        public function dispatchEvent(event:Event):Boolean
+        {
+            return dispatcher.dispatchEvent(event);
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        public function hasEventListener(type:String):Boolean
+        {
+            return dispatcher.hasEventListener(type);
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        public function willTrigger(type:String):Boolean
+        {
+            return dispatcher.willTrigger(type);
+        }
+
+        /**
          * Creates Stream object from items
          * @param rest objects used as source for Stream
          * @return created Stream object


Revert mistaken change to 20_HugeObjectCount.as.

--- bin/Data/Scripts/20_HugeObjectCount.as
+++ bin/Data/Scripts/20_HugeObjectCount.as
@@ -56,25 +56,6 @@
     lightNode.direction = Vector3(-0.6f, -1.0f, -0.8f); // The direction vector does not need to be normalized
     Light@ light = lightNode.CreateComponent("Light");
     light.lightType = LIGHT_DIRECTIONAL;
-    light.castShadows = true;
-
-    {
-        // Create a floor object, 1000 x 1000 world units. Adjust position so that the ground is at zero Y
-        Node@ floorNode = scene_.CreateChild("Floor");
-        floorNode.position = Vector3(0.0f, -2.0f, 0.0f);
-        floorNode.scale = Vector3(100.0f, 1.0f, 100.0f);
-        StaticModel@ floorObject = floorNode.CreateComponent("StaticModel");
-        floorObject.model = cache.GetResource("Model", "Models/Box.mdl");
-
-        // Make the floor physical by adding RigidBody and CollisionShape components. The RigidBody's default
-        // parameters make the object static (zero mass.) Note that a CollisionShape by itself will not participate
-        // in the physics simulation
-        RigidBody@ body = floorNode.CreateComponent("RigidBody");
-        CollisionShape@ shape = floorNode.CreateComponent("CollisionShape");
-        // Set a box shape of size 1 x 1 x 1 for collision. The shape will be scaled with the scene node scale, so the
-        // rendering and physics representation sizes should match (the box model is also 1 x 1 x 1.)
-        shape.SetBox(Vector3(1.0f, 1.0f, 1.0f));
-    }

     if (!useGroups)
     {
@@ -89,9 +70,7 @@
                 boxNode.position = Vector3(x * 0.3f, 0.0f, y * 0.3f);
                 boxNode.SetScale(0.25f);
                 StaticModel@ boxObject = boxNode.CreateComponent("StaticModel");
-                boxObject.castShadows = true;
-                boxObject.model = cache.GetResource("Model", "Models/Plane.mdl");
-                boxObject.material = cache.GetResource("Material", "Materials/List.xml");
+                boxObject.model = cache.GetResource("Model", "Models/Box.mdl");
                 boxNodes.Push(boxNode);
             }
         }
@@ -115,9 +94,7 @@
                 {
                     Node@ boxGroupNode = scene_.CreateChild("BoxGroup");
                     lastGroup = boxGroupNode.CreateComponent("StaticModelGroup");
-                    lastGroup.model = cache.GetResource("Model", "Models/Plane.mdl");
-                    lastGroup.material = cache.GetResource("Material", "Materials/List.xml");
-                    lastGroup.castShadows = true;
+                    lastGroup.model = cache.GetResource("Model", "Models/Box.mdl");
                 }

                 Node@ boxNode = scene_.CreateChild("Box");


Transferred from the Adobe Open Source Subversion Repository

Revision: 17221
Author:   jasonsj@adobe.com
Date:     2010-08-06T22:57:04.234839Z

Log Message:
-----------
Implemented ActionBarSkin measure to provide default size.
Fixed ViewNavigatorSkin sizing in updateDisplayList.

QE notes: Test sizing in Application and MobileApplication
Doc notes:
Bugs:
SDK-27306 - ActionBar does not show up when used in a Mobile Application with <s:Application>
Reviewer: chiedoz, rfrishbe
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as
@@ -114,7 +114,7 @@
         if (tabBar.includeInLayout)
         {
             tabBar.alpha = .5;
-            componentHeight = tabBar.getExplicitOrMeasuredHeight();
+            componentHeight = tabBar.getPreferredBoundsHeight();
             tabBar.setLayoutBoundsSize(unscaledWidth, componentHeight);
             tabBar.setLayoutBoundsPosition(0, top);

@@ -124,7 +124,7 @@
         if (actionBar.includeInLayout)
         {
             actionBar.alpha = .5;
-            componentHeight = actionBar.getExplicitOrMeasuredHeight();
+            componentHeight = actionBar.getPreferredBoundsHeight();

             actionBar.setLayoutBoundsSize(unscaledWidth, componentHeight);
             actionBar.setLayoutBoundsPosition(0, top);
@@ -139,8 +139,8 @@

             if (contentGroup.includeInLayout)
             {
+                contentGroup.setLayoutBoundsSize(unscaledWidth, unscaledHeight);
                 contentGroup.setLayoutBoundsPosition(0, 0);
-                contentGroup.setLayoutBoundsSize(unscaledWidth, unscaledHeight);
             }
         }
         else
@@ -154,9 +154,9 @@

     			if (contentGroupHeight < contentGroup.minHeight)
     				contentGroupHeight = contentGroup.minHeight;
-
+
+                contentGroup.setLayoutBoundsSize(unscaledWidth, contentGroupHeight);
                 contentGroup.setLayoutBoundsPosition(0, top);
-                contentGroup.setLayoutBoundsSize(unscaledWidth, contentGroupHeight);
     		}
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17283
Author:   cframpto@adobe.com
Date:     2010-08-11T21:17:38.511905Z

Log Message:
-----------
Fix selection for columns collection change CollectionEventKind.REMOVE.

If removing the column(s) deletes the last selected cell, and requireSelection is true, cell 0, 0 will be selected and the caret will be set to 0,0.

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridSelection.as

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridSelection.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridSelection.as
@@ -1033,7 +1033,7 @@
     /**
      *  @private
      *  If requiredSelection, then there must always be at least one row/cell
-     *  selected.
+     *  selected.  If the selection is changed, the caret is changed to match.
      *
      *  @return true if the selection has changed.
      */
@@ -1054,7 +1054,7 @@
             if (!hasRowSelection())
                 selectionChanged = grid.setSelectedIndex(0);
         }
-            else if (isCellSelectionMode())
+        else if (isCellSelectionMode())
         {
             if (!hasCellSelection())
                 selectionChanged = grid.setSelectedCell(0, 0);
@@ -1336,6 +1336,36 @@

     /**
      *  @private
+     *  Move all the selected cells in column oldColumnIndex to newColumnIndex.
+     *  No other adjustments are made to the selection.
+     */
+    private function moveCellsInColumn(oldColumnIndex:int, newColumnIndex:int,
+                                       bounds:Rectangle=null):Boolean
+    {
+        var elementChanged:Boolean;
+
+        if (bounds == null)
+            bounds = getCellRegionsBounds();
+
+        const firstIndex:int = bounds.top;
+        const lastIndex:int = bounds.bottom;
+
+        for (var rowIndex:int = firstIndex; rowIndex < lastIndex; rowIndex++)
+        {
+            // ToDo: if group contigous cells together into a cell region.
+            if (containsCell(rowIndex, oldColumnIndex))
+            {
+                removeCellRegion(rowIndex, oldColumnIndex, 1, 1);
+                addCellRegion(rowIndex, newColumnIndex, 1, 1);
+                elementChanged = true;
+            }
+        }
+
+        return elementChanged;
+    }
+
+    /**
+     *  @private
      *  Remove all the selected cells in row rowIndex.  No other adjustments to
      *  the selection are made.
      */
@@ -1366,6 +1396,38 @@
         return elementChanged;
     }

+    /**
+     *  @private
+     *  Remove all the selected cells in column columnIndex.  No other
+     *  adjustments to the selection are made.
+     */
+    private function removeCellsInColumn(columnIndex:int,
+                                         bounds:Rectangle=null):Boolean
+    {
+        var elementChanged:Boolean;
+
+        if (bounds == null)
+            bounds = getCellRegionsBounds();
+
+        const firstIndex:int = bounds.top;
+        const lastIndex:int = bounds.bottom;
+
+        // Find first seleted cell in column so we know if the selection
+        // changes and then remove all the rest of the rows in the column,
+        // whether or not they are selected.
+        for (var rowIndex:int = firstIndex; rowIndex < lastIndex; rowIndex++)
+        {
+            if (containsCell(rowIndex, columnIndex))
+            {
+                removeCellRegion(rowIndex, columnIndex, lastIndex - rowIndex, 1, false);
+                elementChanged = true;
+                break;
+            }
+        }
+
+        return elementChanged;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Data Provider Collection methods
@@ -1731,24 +1793,8 @@
         else if (cellRegions.length)
             elementChanged = adjustCellsAfterRemove(firstRemoveIndex, lastRemoveIndex);

-        // If a selection is required and there isn't one after the deletion,
-        // select the item that took the place of the first item that was
-        // deleted, except if the last item was deleted, select the new last
-        // item.
-
-        if (elementChanged && requireSelection)
-        {
-            var dataProviderLength:int = getGridDataProviderLength();
-            if (dataProviderLength > 0)
-            {
-                const rowIndex:int = firstRemoveIndex <= dataProviderLength - 1 ?
-                                     firstRemoveIndex : dataProviderLength - 1;
-                if (isRowSelectionMode() && !hasRowSelection())
-                        setRow(rowIndex);
-                else if (isCellSelectionMode() && !hasCellSelection())
-                        setCell(rowIndex, 0);
-                }
-            }
+        if (elementChanged)
+            ensureRequiredSelection();

         return elementChanged;
     }
@@ -2083,38 +2129,29 @@

         var elementChanged:Boolean;

+        const bounds:Rectangle = this.getCellRegionsBounds();
+
         const firstRemoveIndex:int = event.location;
         const lastRemoveIndex:int = event.location + event.items.length - 1;

-        var bounds:Rectangle = getCellRegionsBounds();
-
-        const firstIndex:int = bounds.top;
-        const lastIndex:int = bounds.bottom;
-
-        for (var rowIndex:int = firstIndex; rowIndex < lastIndex; rowIndex++)
-        {
-            for (var columnIndex:int = firstRemoveIndex;
-                 columnIndex <= lastRemoveIndex; columnIndex++)
-            {
-                if (containsCell(rowIndex, columnIndex))
-                {
-                    removeCellRegion(rowIndex, columnIndex, 1, 1);
+        for (var columnIndex:int = firstRemoveIndex; columnIndex < bounds.right;
+            columnIndex++)
+        {
+            if (columnIndex <= lastRemoveIndex)
+            {
+                if (removeCellsInColumn(columnIndex, bounds))
                     elementChanged = true;
-                }
-            }
-        }
-
-        if (elementChanged && requireSelection)
-        {
-            var dataProviderLength:int = getGridDataProviderLength();
-            if (dataProviderLength > 0 && selectionLength == 0)
-            {
-                rowIndex = firstRemoveIndex <= dataProviderLength - 1 ?
-                           firstRemoveIndex : dataProviderLength - 1;
-                setCell(rowIndex, 0);
-            }
-        }
-
+            }
+            else
+            {
+                if (moveCellsInColumn(columnIndex, columnIndex - 1, bounds))
+                    elementChanged = true;
+            }
+        }
+
+        if (elementChanged)
+            ensureRequiredSelection();
+
         return elementChanged;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5573
Author:   jimurphy@adobe.com
Date:     2009-03-26T15:11:59.159776Z

Log Message:
-----------
-more updated package and class names that were missed in the first pass
-remove the mx folder

qa: probably
doc: this updated more asdoc comments so you may want to make sure that this pass made the correct updates
checkintests: pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/SetActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/IEaser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/DataGroupExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/pathSegments/PathSegment.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/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxToggleButtonExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/WipeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SetAction.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -28,7 +28,7 @@
 include "../../styles/metadata/BasicTextLayoutFormatStyles.as"

 /**
- *  @copy mx.components.baseClasses.GroupBase#focusColor
+ *  @copy spark.components.supportClasses.GroupBase#focusColor
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


Log cameras available in flash.

Log cameras available in flash.

--- src/as3/JpegCamera.as
+++ src/as3/JpegCamera.as
@@ -207,8 +207,13 @@
     //

     private function initCamera():void {
-      // Hack to auto-select iSight camera on Mac
       for (var i:uint = 0, len:uint = Camera.names.length; i < len; i++) {
+        debug("Found camera \"" + Camera.names[i] + "\"");
+      }
+
+      // XXX Hack to auto-select iSight camera on Mac
+      // Doesn't really seem to be needed.
+      for (i = 0, len = Camera.names.length; i < len; i++) {
         if (Camera.names[i] == "USB Video Class Video") {
           camera = Camera.getCamera(String(i));
           break;


Continue to test for cameraness, so Allow dialogs don't prevent the camera from turning on

--- src/CameraMan.as
+++ src/CameraMan.as
@@ -32,12 +32,15 @@
         private var nope:TextField;
         private var videoface:Video;
         private var cam:Camera;
+        private var camEnabled:Boolean;
         private var photo:Bitmap;
         private var cameraid:String;
         private var sendto:String;
         private var movieSize:Point;

         public function CameraMan() {
+            this.camEnabled = false;
+
             stage.scaleMode = StageScaleMode.NO_SCALE;
             stage.align = StageAlign.TOP_LEFT;
             stage.addEventListener(Event.RESIZE, configureCamera);
@@ -106,8 +109,6 @@
                 + '. size: ' + cam.width + ',' + cam.height + '. fps: '
                 + cam.currentFPS + '. max fps: ' + cam.fps + ' total cameras: ' + Camera.names.length);

-            // TODO: handle a missing camera
-            // TODO: handle a "dead" camera (fps = 0?)
             /* TODO: handle a muted camera? we'll only get an
              * unmuted camera to start with if they've chosen to
              * Remember Allow. If they haven't chosen Remember Deny,
@@ -131,9 +132,8 @@

             this.prepVideo();

-            var t:Timer = new Timer(250, 10);
+            var t:Timer = new Timer(1000, 0);
             t.addEventListener(TimerEvent.TIMER, checkCamera);
-            t.addEventListener(TimerEvent.TIMER_COMPLETE, checkCameraLast);
             t.start();
         }

@@ -141,17 +141,13 @@
             trace("whilst checking camera " + cam.name + ". muted: " + cam.muted
                 + '. size: ' + cam.width + ',' + cam.height + '. fps: '
                 + cam.currentFPS + '. max fps: ' + cam.fps + ' total cameras: ' + Camera.names.length);
-            if (cam.currentFPS > 0.0) {
-                event.target.stop();
+            var hasCam:Boolean = (cam.currentFPS > 0.0);
+            if (!this.camEnabled && hasCam) {
+                this.camEnabled = true;
                 this.callback('cameraReady');
             }
-        }
-
-        public function checkCameraLast(event:Event) : void {
-            trace("whilst checking camera for last " + cam.name + ". muted: " + cam.muted
-                + '. size: ' + cam.width + ',' + cam.height + '. fps: '
-                + cam.currentFPS + '. max fps: ' + cam.fps + ' total cameras: ' + Camera.names.length);
-            if (cam.currentFPS <= 0.0) {
+            else if (this.camEnabled && !hasCam) {
+                this.camEnabled = false;
                 this.callback('cameraNotReady');
             }
         }
@@ -202,6 +198,11 @@
         }

         public function takePhoto() : void {
+            if (cam.currentFPS <= 0.0) {
+                this.callback('errorSending', 'No camera is available');
+                return;
+            }
+
             // freeze image
             try {
                 var photobits:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, false);


Transferred from the Adobe Open Source Subversion Repository

Revision: 20485
Author:   chiedozi@adobe.com
Date:     2011-02-28T18:53:15.694422Z

Log Message:
-----------
Removed the focus skin from the mobile ButtonBar component.

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonBarButtonClassFactory.as

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonBarButtonClassFactory.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonBarButtonClassFactory.as
@@ -73,8 +73,11 @@
         }

         if (instance is SkinnableComponent && _skinClass)
+		{
             SkinnableComponent(instance).setStyle("skinClass", _skinClass);
-
+			SkinnableComponent(instance).setStyle("focusSkin", null);
+		}
+
         return instance;
     }
 }


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

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

 package mx.automation.delegates.charts
 {


doc update

doc update

--- src/org/puremvc/as3/multicore/utilities/pipes/plumbing/TeeMergeTest.as
+++ src/org/puremvc/as3/multicore/utilities/pipes/plumbing/TeeMergeTest.as
@@ -40,7 +40,7 @@
    		}

   		/**
-  		 * Test receiving a message from two pipes using a TeeMerge.
+  		 * Test receiving messages from two pipes using a TeeMerge.
   		 */
   		public function testReceiveMessagesFromTwoPipesViaTeeMerge():void
   		{
@@ -105,7 +105,7 @@
    		}

   		/**
-  		 * Test receiving a message from four pipes using a TeeMerge.
+  		 * Test receiving messages from four pipes using a TeeMerge.
   		 */
   		public function testReceiveMessagesFromFourPipesViaTeeMerge():void
   		{


Transferred from the Adobe Open Source Subversion Repository

Revision: 18173
Author:   jasonsj@adobe.com
Date:     2010-10-15T17:03:20.801634Z

Log Message:
-----------
Mobile Theme Initial check-in

* New light-look visuals from XD
* Changed airmobile-config.xml to use standalone Mobile theme instead of Spark overlay
* Added theme="spark, mobile" where spark was already white-listed and support is implemented and/or planned for Mobile/spark.css (see https://zerowing.corp.adobe.com/display/flexmobile/Mobile+Theme+Styles+Spec)
* MobileSkin has symbolColor and chromeColor support. Override beginChromeColorFill and drawChromeColor when defining custom chromeColor visuals.
* CheckBox and RadioButton now have chromeColor and symbolColor support
* Added textShadowColor and textShadowAlpha support to Button and ActionBar
* Added chromeColor support to HScrollBar and VScrollBar

QE notes: All mobile skins have been updaetd.
Doc notes: Update mobile skinning documentation for new APIs
Bugs:
SDK-28043 Investigate usage of "viewWidth", "viewHeight" for the Flex Mobile Skin Assets
SDK-27609 Mobile scroll bar skins should use chromeColor
SDK-27646 cornerradius has no effect on button in mobile application
Reviewer: gruehle
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/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.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/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_up.fxg</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/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TextInput_border.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_down.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</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/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_downSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/themes/Mobile/spark.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/airmobile-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_downSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as
@@ -40,6 +40,7 @@
     private static const VERTICAL_PADDING:int = 12;
     private static const TEXT_WIDTH_PADDING:int = 4;
     private static const TEXT_HEIGHT_PADDING:int = 2;
+    private static const CORNER_ELLIPSE_SIZE:uint = 16;

     //--------------------------------------------------------------------------
     //
@@ -133,7 +134,7 @@
         // Draw the contentBackgroundColor
         graphics.clear();
         graphics.beginFill(getStyle("contentBackgroundColor"), getStyle("contentBackgroundAlpha"));
-        graphics.drawRoundRect(2, 2, unscaledWidth - 4, unscaledHeight - 4, 4, 4);
+        graphics.drawRoundRect(1, 1, unscaledWidth - 2, unscaledHeight - 2, CORNER_ELLIPSE_SIZE, CORNER_ELLIPSE_SIZE);
         graphics.endFill();

         // position & size border