updated Bounds2DIndex

updated Bounds2DIndex

--- WeaveData/src/weave/primitives/Bounds2DIndex.as
+++ WeaveData/src/weave/primitives/Bounds2DIndex.as
@@ -51,7 +51,9 @@
 		private const maxKDKey:Array = [NaN, NaN, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY];

 		// provides a reverse lookup for probe()
-		private var objectToBounds:Dictionary = new Dictionary(true);
+		private var objectToCoords:Dictionary = new Dictionary(true);
+
+		private var _tempBounds:Bounds2D = new Bounds2D();

 		/**
 		 * Removes all entries from the index.
@@ -59,7 +61,7 @@
 		 */
 		public function clear():void
 		{
-			objectToBounds = new Dictionary(true);
+			objectToCoords = new Dictionary(true);
 			_kdTree.clear();
 		}

@@ -71,8 +73,9 @@
 		 */
 		public function insert(bounds:IBounds2D, object:Object):void
 		{
-			objectToBounds[object] = bounds;
-			_kdTree.insert([bounds.getXNumericMin(), bounds.getYNumericMin(), bounds.getXNumericMax(), bounds.getYNumericMax()], object);
+			var coords:Array = [bounds.getXNumericMin(), bounds.getYNumericMin(), bounds.getXNumericMax(), bounds.getYNumericMax()];
+			objectToCoords[object] = coords;
+			_kdTree.insert(coords, object);
 		}

 		/**
@@ -113,7 +116,6 @@
 			var xDistance:Number;
 			var yDistance:Number;
 			var distanceSq:Number;
-			var recordBounds:IBounds2D;
 			var xQueryCenter:Number = queryBounds.getXCenter();
 			var yQueryCenter:Number = queryBounds.getYCenter();
 			var foundQueryCenterOverlap:Boolean = false; // true when we found a key that overlaps the center of the given bounds
@@ -125,43 +127,53 @@
 				var object:Object = selectedObjects[i];
 				var overlapsQueryCenter:Boolean = false;

-				// if the plotter wasn't an IPlotterWithGeometries or if the user wants the old probing
-				for each (recordBounds in objectToBounds[object])
+				// get the bounds associated with the selected object
+				_tempBounds.setBounds.apply(null, objectToCoords[object] as Array);
+
+				// find the distance squared from the query center point to the center of the object's bounds
+				xDistance = _tempBounds.getXCenter() - xQueryCenter;
+				yDistance = _tempBounds.getYCenter() - yQueryCenter;
+				distanceSq = xDistance * xDistance + yDistance * yDistance;
+
+				overlapsQueryCenter = _tempBounds.contains(xQueryCenter, yQueryCenter);
+
+				// Consider all keys until we have found one that overlaps the query center.
+				// After that, only consider keys that overlap query center.
+				if (!foundQueryCenterOverlap || overlapsQueryCenter)
 				{
-					// find the distance squared from the query point to the center of the shape
-					xDistance = recordBounds.getXCenter() - xQueryCenter;
-					yDistance = recordBounds.getYCenter() - yQueryCenter;
-					distanceSq = xDistance * xDistance + yDistance * yDistance;
-
-					overlapsQueryCenter = recordBounds.contains(xQueryCenter, yQueryCenter);
-
-					// Consider all keys until we have found one that overlaps the query center.
-					// After that, only consider keys that overlap query center.
-					if (!foundQueryCenterOverlap || overlapsQueryCenter)
+					// if this is the first record that overlaps the query center, reset the result
+					if (!foundQueryCenterOverlap && overlapsQueryCenter)
 					{
-						// if this is the first record that overlaps the query center, reset the list of keys
-						if (!foundQueryCenterOverlap && overlapsQueryCenter)
-						{
-							resultCount = 0;
-							closestDistanceSq = Infinity;
-							foundQueryCenterOverlap = true;
-						}
-						// if this distance is closer than any previous distance, clear all previous keys
-						if (distanceSq < closestDistanceSq)
-						{
-							// clear previous result and update closest distance
-							resultCount = 0;
-							closestDistanceSq = distanceSq;
-						}
-						// add keys to the result if they are the closest so far
-						if (distanceSq == closestDistanceSq && (resultCount == 0 || result[resultCount - 1] != object))
-							result[resultCount++] = object;
+						foundQueryCenterOverlap = true;
+						resultCount = 0;
+						closestDistanceSq = Infinity;
 					}
+					// if this distance is closer than any previous distance, clear all previous keys
+					if (distanceSq < closestDistanceSq)
+					{
+						// clear previous result and update closest distance
+						resultCount = 0;
+						closestDistanceSq = distanceSq;
+					}
+					// add keys to the result if they are the closest so far
+					if (distanceSq == closestDistanceSq && (resultCount == 0 || result[resultCount - 1] != object))
+						result[resultCount++] = object;
 				}
 			}

 			result.length = resultCount;
 			return result;
 		}
+
+		public static function test():void
+		{
+			var a:Bounds2D = new Bounds2D(69, 110, 121, 129);
+			var b:Bounds2D = new Bounds2D(92, 120, 117, 139);
+			var i:Bounds2DIndex = new Bounds2DIndex();
+			i.insert(a, 'a');
+			i.insert(b, 'b');
+			var p:Bounds2D = new Bounds2D(108, 120, 110, 122);
+			trace(i.probe(p)); // returns b because b's center is closest to the query bounds center
+		}
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19226
Author:   harishs@adobe.com
Date:     2010-12-09T18:33:35.483731Z

Log Message:
-----------
QE notes:
Doc notes: Updated asdocs for spark validators/sort/sortfield
Bugs:
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/MatchingCollatorExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/SortingCollatorExample.mxml</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/SortingCollatorExample.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/StringToolsExample.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/StringToolsExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/MatchingCollatorExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>

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

--- frameworks/projects/spark/src/spark/validators/NumberValidator.as
+++ frameworks/projects/spark/src/spark/validators/NumberValidator.as
@@ -92,7 +92,7 @@
  *  />
  *  </pre>
  *
- *  @includeExample examples/NumberValidatorExample.mxml
+ *  @includeExample examples/NumberValidatorExample1.mxml
  *
  *  @see flash.globalization.NumberFormatter
  *


added verifier function to min,max visible scale values

Change-Id: I06127fb91e19f1c662519532116599a86113c31e

--- WeaveUI/src/weave/visualization/layers/PlotLayer.as
+++ WeaveUI/src/weave/visualization/layers/PlotLayer.as
@@ -188,12 +188,20 @@
 		/**
 		 * Sets the minimum scale at which the layer should be rendered. Scale is defined by pixels per data unit.
 		 */
-		public const minVisibleScale:LinkableNumber = registerLinkableChild(this, new LinkableNumber(0));
+		public const minVisibleScale:LinkableNumber = registerLinkableChild(this, new LinkableNumber(0, verifyVisibleScaleValue));

 		/**
 		 * Sets the maximum scale at which the layer should be rendered. Scale is defined by pixels per data unit.
 		 */
-		public const maxVisibleScale:LinkableNumber = registerLinkableChild(this, new LinkableNumber(Infinity));
+		public const maxVisibleScale:LinkableNumber = registerLinkableChild(this, new LinkableNumber(Infinity, verifyVisibleScaleValue));
+
+		/**
+		 * @private
+		 */
+		private function verifyVisibleScaleValue(value:Number):Boolean
+		{
+			return value >= 0;
+		}

 		/**
 		 * This returns true if the layer should be rendered and selectable/probeable


Preventing crash due to custom cursors when Capabilities.manufacturer == "Adobe Linux" and wmode is set to "transparent".

--- WeaveUISpark/src/weave/utils/CustomCursorManager.as
+++ WeaveUISpark/src/weave/utils/CustomCursorManager.as
@@ -19,7 +19,9 @@
 package weave.utils
 {
 	import flash.display.BitmapData;
+	import flash.external.ExternalInterface;
 	import flash.geom.Point;
+	import flash.system.Capabilities;
 	import flash.ui.Mouse;
 	import flash.ui.MouseCursor;
 	import flash.ui.MouseCursorData;
@@ -35,6 +37,28 @@
 	public class CustomCursorManager
 	{
 		public static var debug:Boolean = false;
+
+		private static var _initialized:Boolean = false;
+		private static var _customCursorsSupported:Boolean = true;
+		public static function get customCursorsSupported():Boolean
+		{
+			if (!_initialized)
+			{
+				if (Capabilities.manufacturer == "Adobe Linux" && ExternalInterface.available)
+				{
+					_customCursorsSupported = ExternalInterface.call("function(id) {\
+						try {\
+							var weave = objectID ? document.getElementById(objectID) : document.body.firstChild;\
+							return weave.children.wmode.value != 'transparent';\
+						} catch (e) {\
+							return true;\
+						}\
+					}", ExternalInterface.objectID);
+				}
+				_initialized = true;
+			}
+			return _customCursorsSupported;
+		}

 		/**
 		 * This will register an embedded cursor.
@@ -162,13 +186,19 @@
 		}
 	}
 }
+import flash.ui.MouseCursor;
+
+import weave.utils.CustomCursorManager;

 internal class CursorEntry
 {
 	public function CursorEntry(id:int, name:String)
 	{
 		this.id = id;
-		this.name = name;
+		if (CustomCursorManager.customCursorsSupported)
+			this.name = name;
+		else
+			this.name = MouseCursor.BUTTON;
 	}

 	public var id:Number;


Enable scaling of output assets.

Enable scaling of output assets.

--- src/swf2png.as
+++ src/swf2png.as
@@ -37,6 +37,7 @@
 		private var outputDirPath:String;
 		private var offsetMatrix:Matrix;
 		private var bBox:Rectangle;
+		private var scaleFactor:Number;

@@ -130,10 +131,11 @@

 			log("Bounding box: " + bBox)

-			outputWidth = bBox.width;
-			outputHeight = bBox.height;
+			outputWidth = bBox.width * scaleFactor;
+			outputHeight = bBox.height * scaleFactor;
 			offsetMatrix = new Matrix();
 			offsetMatrix.translate(bBox.x * -1, bBox.y * -1);
+			offsetMatrix.scale(scaleFactor, scaleFactor);

 			return;
 		}
@@ -268,6 +270,13 @@
 				return "";
 			}
 		}
+		private function getScaleFactor(ev:InvokeEvent):Number {
+			if(ev.arguments.length > 2) {
+				log("scale factor set to " + parseFloat(ev.arguments[2]));
+				return parseFloat(ev.arguments[2]);
+			}
+			return 1;
+		}

 		private function log(message:String="", add_new_line:Boolean=true):void {
 			outfield.appendText((add_new_line ? "\n" : "") + message);
@@ -278,6 +287,7 @@

 			inputFilePath = getInputFile(ev);
 			outputDirPath = getOutputDir(ev);
+			scaleFactor = getScaleFactor(ev);

 			log("Input file: " + inputFilePath);
 			log("Output directory: " + outputDirPath);


Transferred from the Adobe Open Source Subversion Repository

Revision: 7163
Author:   aharui@adobe.com
Date:     2009-05-21T02:19:55.813792Z

Log Message:
-----------
Initial checkin of frame 1 cleanup.  In an RSL linkage, more classes will now come from the RSL because they are no longer needed in frame 1, and the size of the application SWF will be smaller.

QE Notes: None
Doc Notes: Maybe.  All new classes should be undocumented, but it might be worth checking that and any changes to interfaces
Bugs:
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses</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/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFont.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ResourceModuleRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IMarshalSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/MustellaResultsParser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.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/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.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/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/DragManagerMarshalMixin.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/MenuBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/PopUpManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManagerChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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


FLEX-33835 Speed up sortLocalesByPreference

--- frameworks/projects/framework/src/mx/resources/LocaleSorter.as
+++ frameworks/projects/framework/src/mx/resources/LocaleSorter.as
@@ -66,17 +66,17 @@

 		var i:int;
         var j:int;
-        var k:int;
-        var l:int;
-		var locale:String;

 		var locales:Array = trimAndNormalize(appLocales);
 		var preferenceLocales:Array	= trimAndNormalize(systemPreferences);

 		addUltimateFallbackLocale(preferenceLocales, ultimateFallbackLocale);

+		var noLocales:int = locales.length;
+		var noPreferenceLocales:int = preferenceLocales.length;
+
 		// For better performance, save the locales in a lookup table.
-		for (j = 0; j < locales.length; j++)
+		for (j = 0; j < noLocales; j++)
         {
 			hasLocale[locales[j]] = j;
 		}
@@ -90,9 +90,21 @@
 			}
 		}

-		for (i = 0, l = preferenceLocales.length; i < l; i++)
-        {
-			var plocale:LocaleID = LocaleID.fromString(preferenceLocales[i]);
+		var preferenceLocalesID:Vector.<LocaleID> = new Vector.<LocaleID>(noPreferenceLocales);
+		for (i = 0; i < noPreferenceLocales; i++)
+        {
+        	preferenceLocalesID[i] = LocaleID.fromString(preferenceLocales[i]);
+        }
+
+		var localesID:Vector.<LocaleID> = new Vector.<LocaleID>(noLocales);
+		for (i = 0; i < noLocales; i++)
+        {
+        	localesID[i] = LocaleID.fromString(locales[i]);
+        }
+
+		for (i = 0; i < noPreferenceLocales; i++)
+        {
+			var plocale:LocaleID = preferenceLocalesID[i].clone();

 			// Step 1: Promote the perfect match.
 			promote(preferenceLocales[i]);
@@ -106,25 +118,23 @@
 			}

 			// Parse it again.
-			plocale = LocaleID.fromString(preferenceLocales[i]);
+			plocale = preferenceLocalesID[i].clone();

             // Step 3: Promote the order of siblings from preferenceLocales.
-			for (j = 0; j < l; j++)
-            {
-				locale = preferenceLocales[j];
-				if (plocale.isSiblingOf(LocaleID.fromString(locale)))
-					promote(locale);
+			for (j = 0; j < noPreferenceLocales; j++)
+            {
+				if (plocale.isSiblingOf(preferenceLocalesID[j]))
+					promote(preferenceLocales[j]);
 			}

 			// Step 4: Promote all remaining siblings
             // (aka not in preferenceLocales)
 			// eg. push en_UK after en_US and en if the user
             // doesn't have en_UK in the preference list
-			for (j = 0, k = locales.length; j < k; j++)
-            {
-				locale = locales[j];
-				if (plocale.isSiblingOf(LocaleID.fromString(locale)))
-					promote(locale);
+			for (j = 0; j < noLocales; j++)
+            {
+				if (plocale.isSiblingOf(localesID[j]))
+					promote(locales[j]);
 			}
 		}

@@ -132,7 +142,7 @@
         {
 			// Check what locales are not already loaded
             // and push them preserving the order.
-			for (j = 0, k = locales.length; j < k; j++)
+			for (j = 0; j < noLocales; j++)
             {
 				promote(locales[j]);
 			}
@@ -443,6 +453,32 @@
 	//  Methods
 	//
 	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    public function clone():LocaleID {
+
+       var copy:LocaleID = new LocaleID();
+       copy.lang = lang;
+       copy.script = script;
+       copy.region = region;
+       copy.extended_langs = extended_langs.concat();
+       copy.variants = variants.concat();
+       copy.extensions = {};
+       for (var i:String in extensions)
+       {
+           if (extensions.hasOwnProperty(i))
+           {
+           	    copy.extensions[i] = extensions[i].concat();
+           }
+       }
+
+        copy.privates = privates.concat();
+        copy.privateLangs = privateLangs;
+
+        return copy;
+    }

 	/**
      *  @private


Transferred from the Adobe Open Source Subversion Repository

Revision: 19797
Author:   klin@adobe.com
Date:     2011-01-19T00:06:54.932970Z

Log Message:
-----------
Initial checkin of override default density mapping feature. Application and other classes delegate calculating runtimeDPI to a RuntimeDPIProvider class. Developers that wish to override how the runtimeDPI is calculated should subclass RuntimeDPIProvider and set it to the runtimeDPIProvider property on Application. Application actually calls DensityUtil.getRuntimeDPI() which creates the instance of the runtimeDPIProvider class and caches the runtimeDPI. I've also modified the compiler so that runtimeDPIProvider is recognized as a special attribute on Application. This checkin includes the PARB updates for changing DPI related properties and variables from ints to Numbers.

QE notes: Update tests
Doc notes: N/A
Bugs: SDK-28731
Reviewer: Evtim
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/mxml/builder/DocumentBuilder.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/DensityUtil.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/modules/compiler/src/java/flex2/compiler_en.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DPIClassification.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/BusyIndicator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MediaQueryParser.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/RuntimeDPIProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/MultiDPIBitmapSource.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/framework/src/mx/utils/MediaQueryParser.as
+++ frameworks/projects/framework/src/mx/utils/MediaQueryParser.as
@@ -100,8 +100,7 @@
      */
     public function MediaQueryParser(moduleFactory:IFlexModuleFactory = null)
     {
-        var resolution:int = Capabilities.screenDPI;
-        applicationDpi = DensityUtil.classifyDPI(resolution);
+        applicationDpi = DensityUtil.getRuntimeDPI();
         if (moduleFactory)
         {
             if (moduleFactory.info()["applicationDPI"] != null)
@@ -410,7 +409,7 @@
     public var type:String = "screen";

     // the resolution of the media
-    public var applicationDpi:int;
+    public var applicationDpi:Number;

     // the platform of the media
     public var osPlatform:String;


Transferred from the Adobe Open Source Subversion Repository

Revision: 3478
Author:   gruehle@adobe.com
Date:     2008-10-03T20:34:49.967693Z

Log Message:
-----------
Remove prototype Gumbo Panel component. This will be reinstated in a future build.

Remove the "selected" property from SkinnableComponent. "selected" is only on ToggleButton (including CheckBox/RadioButton), and ItemRenderer.

Bugs: SDK-16349 SkinnableComponent shouldn't define "selected"
      SDK-16799 Gumbo Panel needs to be removed from build
QA: Tests using Panel need to be updated
Reviewer: Chet

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/flex4/flex4test.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/MXMLComponent.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ComplexPanelSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/ToggleButton.as
+++ frameworks/projects/spark/src/spark/components/ToggleButton.as
@@ -69,12 +69,12 @@

     [Bindable]

-	override public function get selected():Boolean
+	public function get selected():Boolean
     {
         return flags.isSet(selectedFlag);
     }

-	override public function set selected(value:Boolean):void
+	public function set selected(value:Boolean):void
     {
         if (!flags.update(selectedFlag, value))
             return;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10250
Author:   gosmith@adobe.com
Date:     2009-09-15T00:08:09.295408Z

Log Message:
-----------
Added 'direction' and 'locale' styles to TextStyles.as (the same place that defines 'textFieldClass') so that an MX component using UITLFTextField as its textFieldClass can also specify the direction and locale of the text.

UITLFTextField uses getStyle() on these styles to set its 'direction' and 'locale' properties.

UITextFormat needs to have new fields to store these properties, just like for 'sharpness', 'thickness'. The determineTextFormatFromStyle() method of UIComponent fills these out based on the styles. The measure() method of UITextFormat then transfers them to the offscreen TLFTextField used for measurement.

Also UIComponent's createInFontContext() method now sets the textLineCreator of the TLFTextField so that it knows which module should create its TextLines (so that they can use a font embedded in that module).

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/mx/core/UIFTETextField.as
+++ frameworks/projects/spark/src/mx/core/UIFTETextField.as
@@ -2085,6 +2085,9 @@
                 sharpness = getStyle("fontSharpness");
                 thickness = getStyle("fontThickness");
             }
+
+            direction = getStyle("direction")
+            locale = getStyle("locale");

             if (!styleSheet)
             {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6391
Author:   smgilson@adobe.com
Date:     2009-04-29T20:04:20.789717Z

Log Message:
-----------
ASDoc updates

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<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/events/TextOperationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/VideoEvent.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/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/RendererExistenceEvent.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/events/ElementExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -115,9 +115,9 @@
  *    blendMode="normal"
  *    mxmlContent="null"
  *    scaleGridBottom="null"
- *    scaleGridLeft"null"
+ *    scaleGridLeft="null"
  *    scaleGridRight="null"
- *    scaleGridTop"null"
+ *    scaleGridTop="null"
  *
  *    Events
  *    elementAdd="No default"


Transferred from the Adobe Open Source Subversion Repository

Revision: 4163
Author:   gosmith@adobe.com
Date:     2008-11-21T23:05:07.953326Z

Log Message:
-----------
Coding conventions: All [SkinPart] metadata now explicitly states required="true" or required="false".

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.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/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Panel.as
+++ frameworks/projects/spark/src/spark/components/Panel.as
@@ -49,7 +49,8 @@
     //  middleButton
     //----------------------------------

-    [SkinPart]
+    [SkinPart(required="true")]
+
     /**
      * A skin part that defines the middle button(s).
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 6182
Author:   jimurphy@adobe.com
Date:     2009-04-21T17:17:58.392301Z

Log Message:
-----------
Merge 3.x revisions 5830,5880,5891,5992,6136 -> trunk

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>

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

--- frameworks/projects/framework/src/mx/controls/SWFLoader.as
+++ frameworks/projects/framework/src/mx/controls/SWFLoader.as
@@ -1803,11 +1803,7 @@
                     rootURL = LoaderUtil.normalizeURL(DisplayObject(systemManager).loaderInfo);

                 if (rootURL)
-                {
-                    var lastIndex:int = Math.max(rootURL.lastIndexOf("\\"), rootURL.lastIndexOf("/"));
-                    if (lastIndex != -1)
-                        url = rootURL.substr(0, lastIndex + 1) + url;
-                }
+                    url = LoaderUtil.createAbsoluteURL(rootURL, url);
             }

             requestedURL = new URLRequest(url);
@@ -1825,19 +1821,18 @@
                 // an application domain free of framework classes.
                 if (loadForCompatibility)
                 {
-                        // the AD.currentDomain.parentDomain could be null,
-                        // the domain of the top-level system manager, or
-                        // the bootstrap loader. The bootstrap loader will always be topmost
-                        // if it is present.
-                                var currentDomain:ApplicationDomain = ApplicationDomain.currentDomain.parentDomain;
-                                var topmostDomain:ApplicationDomain = null;
-                                while (currentDomain)
-                                {
-                                                topmostDomain = currentDomain;
-                                                currentDomain = currentDomain.parentDomain;
-                                }
-                        lc.applicationDomain = new ApplicationDomain(topmostDomain);
-
+                    // the AD.currentDomain.parentDomain could be null,
+                    // the domain of the top-level system manager, or
+                    // the bootstrap loader. The bootstrap loader will always be topmost
+                    // if it is present.
+                    var currentDomain:ApplicationDomain = ApplicationDomain.currentDomain.parentDomain;
+                    var topmostDomain:ApplicationDomain = null;
+                    while (currentDomain)
+                    {
+                        topmostDomain = currentDomain;
+                        currentDomain = currentDomain.parentDomain;
+                    }
+                    lc.applicationDomain = new ApplicationDomain(topmostDomain);
                 }

                 if (trustContent)


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

--- frameworks/projects/mx/src/mx/accessibility/TreeAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/TreeAccImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2006 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: 19755
Author:   hmuller@adobe.com
Date:     2011-01-13T23:55:09.380036Z

Log Message:
-----------
Defend DataGrid/keyDownHandler() against "bubble back" from events redispatched to the scroller.

Cancel control-A events after they've been handled.

QE notes:
Doc notes:
Bugs: SDK-29090, SDK-29023
Reviewer: Carol
Tests run: checkin, mustella
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -2071,6 +2071,7 @@
         g.drawRect(0, 0, 1, 1);
         g.endFill();
         $addChild(focusOwner);
+        focusOwner.tabEnabled = true;
         focusOwner.$visible = true;
     }

@@ -2163,6 +2164,13 @@

     /**
      *  @private
+     *  Used to prevent keyboard events that have been redispatched to the Scroller from being
+     *  redispatched a second time when the bubble back up.
+     */
+    private var scrollerEvent:KeyboardEvent = null;
+
+    /**
+     *  @private
      *  Build in basic keyboard navigation support in Grid. The focus is on
      *  the DataGrid which means the Scroller doesn't see the Keyboard events
      *  unless the event is dispatched to it.
@@ -2171,6 +2179,14 @@
     {
         if (!grid || event.isDefaultPrevented())
             return;
+
+        // We've seen this event already and dispatched it to the Scroller
+        if (event == scrollerEvent)
+        {
+            scrollerEvent = null;
+            event.preventDefault();
+            return;
+        }

         // Ctrl-A only comes thru on Mac.  On Windows it is a SELECT_ALL
         // event.
@@ -2190,8 +2206,12 @@
                 (grid.caretColumnIndex < 0 ||
                     grid.caretColumnIndex >= getColumnsLength())))
         {
-            if (scroller)
-                scroller.dispatchEvent(event);
+            // We're not going to handle this event, so give the scroller a chance.
+            if (scroller && (scrollerEvent != event))
+            {
+                scrollerEvent = event.clone() as KeyboardEvent;
+                scroller.dispatchEvent(scrollerEvent);
+            }
             return;
         }

@@ -2537,7 +2557,6 @@
             columnHeaderGroup.removeEventListener(GridEvent.SEPARATOR_MOUSE_DRAG, separator_mouseDragHandler);
             columnHeaderGroup.removeEventListener(GridEvent.SEPARATOR_MOUSE_UP, separator_mouseUpHandler);
         }
-
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 8509
Author:   smgilson@adobe.com
Date:     2009-07-10T17:58:51.724217Z

Log Message:
-----------
- Explicitly list the default skins for Spark components as part of the fix for SDK-18639
- Fix some bad @see links

QE Notes: None
Doc Notes: None
Bugs: - SDK-18639
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.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/spark/src/spark/components/mediaClasses/StreamItem.as</path>
<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/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.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/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -121,6 +121,10 @@
  *

  *           Maximum size
  *           10000 pixels wide and 10000 pixels high
+ *

+ *

+ *           Default skin class
+ *           spark.skins.spark.TextAreaSkin
  *

  *

  *


Fix scaling particle preview

Fix scaling particle preview

--- bin/Data/Scripts/Editor/EditorParticleEffect.as
+++ bin/Data/Scripts/Editor/EditorParticleEffect.as
@@ -1327,8 +1327,8 @@
         }
         else
         {
-            particleEffectPreviewNode.Translate(Vector3(0, 0, 1) * dx * 1.5 * time.timeStep);
-            particleEffectPreviewNode.Translate(Vector3(0, 0, 1) * dy * 1.5 * time.timeStep);
+            particleEffectPreviewNode.Translate(Vector3(0, 0, 1) * dx * 1.5 * time.timeStep, TS_WORLD);
+            particleEffectPreviewNode.Translate(Vector3(0, 0, 1) * dy * 1.5 * time.timeStep, TS_WORLD);
         }
         particleEffectPreview.QueueUpdate();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10464
Author:   rfrishbe@adobe.com
Date:     2009-09-21T17:40:30.663638Z

Log Message:
-----------
Removing support in Flex framework for compatibility version < 3.  We won't support compatibility-version 2 or 2.01 anymore.  We only keep compatibility-version for one full release, so for Flex 4, we only support compatibility-version = 3.x.

This should reduce our code-size some as we no longer need this old code.  I didn't clean up the compiler's support for compatibility-versioning as it didn't seem worth the effort.

QE notes: -
Doc notes: -
Bugs: SDK-15360
Reviewer: Kevin
Tests run: checkintests, Joan ran all mustella tests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/accordionClasses/AccordionHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/utilityClasses/CanvasLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.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/framework/src/mx/skins/halo/ScrollArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/AccordionHeaderSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.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/controls/NavBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeaderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.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/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CheckBox.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/skins/halo/DateChooserYearArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuBarItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PanelSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/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/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.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/skins/halo/ScrollTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>

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

--- frameworks/projects/mx/src/mx/skins/halo/PanelSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/PanelSkin.as
@@ -18,7 +18,6 @@
 import flash.utils.describeType;
 import mx.core.IContainer;
 import mx.core.EdgeMetrics;
-import mx.core.FlexVersion;
 import mx.core.IUIComponent;
 import mx.core.mx_internal;

@@ -74,9 +73,6 @@
      */
     override public function get borderMetrics():EdgeMetrics
     {
-        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
-            return super.borderMetrics;
-
         var hasPanelParent:Boolean = isPanel(parent);
         var controlBar:IUIComponent = hasPanelParent ? Object(parent)._controlBar : null;
         var hHeight:Number = hasPanelParent ? Object(parent).getHeaderHeightProxy() : NaN;
@@ -163,8 +159,6 @@
     override mx_internal function drawBorder(w:Number, h:Number):void
     {
         super.drawBorder(w,h);
-        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
-            return;

         var borderStyle:String = getStyle("borderStyle");


Transferred from the Adobe Open Source Subversion Repository

Revision: 15039
Author:   aharui@adobe.com
Date:     2010-03-25T22:43:17.832170Z

Log Message:
-----------
Merge SVN 15024 to trunk

QE Notes: none
Doc Notes:
Bugs: SDK-25792
Reviewer: Carol
Tests run: Checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>

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

--- frameworks/projects/spark/src/mx/core/FTETextField.as
+++ frameworks/projects/spark/src/mx/core/FTETextField.as
@@ -2762,7 +2762,11 @@
 		// produces a "TextField ascent" of 12 + 3 or 15 for Arial 12
 		// (Flex's default font) on Windows, exactly matching a real
 		// TextField's ascent in this most-common case.
-		var emBox:Rectangle = elementFormat.getFontMetrics().emBox;
+		var emBox:Rectangle;
+        if (fontContext)
+            emBox = fontContext.callInContext(elementFormat.getFontMetrics, elementFormat, []).emBox;
+        else
+            emBox = elementFormat.getFontMetrics().emBox;
 		var ascent:int = Math.round(-emBox.top) + Math.round(emBox.bottom);
 		var descent:int = Math.round(emBox.bottom);
 		var leading:Number = Math.round(Number(_defaultTextFormat.leading));
@@ -2993,7 +2997,11 @@
 				// You can't draw in a TextLine but it can have children,
 				// so we create a child Shape to draw them in.

-				var fontMetrics:FontMetrics = elementFormat.getFontMetrics();
+                var fontMetrics:FontMetrics;
+                if (fontContext)
+                    fontMetrics = fontContext.callInContext(elementFormat.getFontMetrics, elementFormat, []);
+                else
+                    fontMetrics = elementFormat.getFontMetrics();

 				var shape:Shape = new Shape();
 				var g:Graphics = shape.graphics;


note requirements working!

note requirements working!

--- flexEditor/src/org/arisgames/editor/util/AppConstants.as
+++ flexEditor/src/org/arisgames/editor/util/AppConstants.as
@@ -173,7 +173,7 @@
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_DATABASE:String = "PLAYER_HAS_NOTE";
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_HUMAN:String = "Has A Note";
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_LIKES_DATABASE:String = "PLAYER_HAS_NOTE_WITH_LIKES";
-	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_LIKES_HUMAN:String = "Has A Note With (x) LIKES";
+	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_LIKES_HUMAN:String = "Has A Note With (x) Likes";
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_COMMENTS_DATABASE:String = "PLAYER_HAS_NOTE_WITH_COMMENTS";
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_COMMENTS_HUMAN:String = "Has A Note With (x) Comments";
 	public static const REQUIREMENT_PLAYER_HAS_GIVEN_NOTE_COMMENTS_DATABASE:String = "PLAYER_HAS_GIVEN_NOTE_COMMENTS";


Transferred from the Adobe Open Source Subversion Repository

Revision: 3557
Author:   egreenfi@adobe.com
Date:     2008-10-10T05:09:09.099228Z

Log Message:
-----------
UIComponent and GraphicElement now trigger update complete events when any transform property is changed.

QE: Should re-enable some tests.
Reviewer: Deepa.

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

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -1550,14 +1550,16 @@
             return;

         if(_layoutFeatures == null)
+        {
 	        super.x  = value;
-	   	else
+	        invalidateProperties();
+        }
+        else
 	   	{
 	   		_layoutFeatures.layoutX = value;
 	   		invalidateTransform();
 	   	}

-        invalidateProperties();

         dispatchEvent(new Event("xChanged"));
     }
@@ -1767,14 +1769,16 @@
             return;

         if(_layoutFeatures == null)
+        {
+	        invalidateProperties();
 	        super.y  = value;
+       	}
 	   	else
 	   	{
 	   		_layoutFeatures.layoutY = value;
 	   		invalidateTransform();
 	   	}

-        invalidateProperties();

         dispatchEvent(new Event("yChanged"));
     }
@@ -1984,7 +1988,6 @@
 		   		_layoutFeatures.layoutScaleX = value;
 		   	}
 	   		invalidateTransform();
-	   		invalidateProperties();

 	        // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
 	        // and scaleX is changing we need to invalidate parent size and display list
@@ -2065,7 +2068,6 @@
 		   		_layoutFeatures.layoutScaleY = value;
 		   	}
 	   		invalidateTransform();
-	   		invalidateProperties();

             // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
             // and scaleX is changing we need to invalidate parent size and display list
@@ -5865,7 +5867,7 @@
         }
     }

-	private function invalidateTransform():void
+	private function invalidateTransform(triggerPropertyInvalidation:Boolean = true):void
 	{
 		if(_layoutFeatures && _layoutFeatures.updatePending == false)
 		{
@@ -5876,11 +5878,13 @@
 				UIComponentGlobals.layoutManager.invalidateDisplayList(this);
 			}
 		}
+		if(triggerPropertyInvalidation)
+			invalidateProperties();
 	}

     private function transformOffsetsChangedHandler(e:Event):void
     {
-    	invalidateTransform();
+    	invalidateTransform(false);
     }

     private function isOnDisplayList():Boolean
@@ -7005,7 +7009,7 @@

         if (changed)
         {
-      	    invalidateTransform();
+      	    invalidateTransform(false);
             dispatchMoveEvent();
         }
     }
@@ -9473,7 +9477,7 @@
 		features.layoutY = y;
 		features.layoutZ = z;
 		_layoutFeatures = features;
-		invalidateTransform();
+		invalidateTransform(false);
 	}


LinkableDynamicDisplayObject callbacks now only trigger when path changes or a new target object is seen.

--- WeaveCore/src/weave/core/LinkableDynamicDisplayObject.as
+++ WeaveCore/src/weave/core/LinkableDynamicDisplayObject.as
@@ -19,45 +19,71 @@
 	import flash.display.DisplayObjectContainer;
 	import flash.utils.Dictionary;

+	import weave.api.getCallbackCollection;
 	import weave.api.objectWasDisposed;
+	import weave.api.registerDisposableChild;
+	import weave.api.core.ICallbackCollection;
 	import weave.api.core.IDisposableObject;
-	import weave.api.core.ILinkableDisplayObject;
+	import weave.api.core.ILinkableDisplayObject;
+	import weave.api.core.ILinkableVariable;
+	import weave.compiler.StandardLib;

 	/**
 	 * This is an generic wrapper for a dynamically created DisplayObject.
 	 *
 	 * @author adufilie
 	 */
-	public class LinkableDynamicDisplayObject extends LinkableDynamicObject implements ILinkableDisplayObject, IDisposableObject
+	public class LinkableDynamicDisplayObject implements ILinkableVariable, ILinkableDisplayObject, IDisposableObject
 	{
 		public function LinkableDynamicDisplayObject()
 		{
-			super(DisplayObject);
-
-			this.addImmediateCallback(this, firstCallback);
 		}

 		private static const objectToLDDO:Dictionary = new Dictionary(true);
 		private var _parent:DisplayObjectContainer = null;
 		private var _object:DisplayObject = null;
-
-		private function firstCallback():void
+		private const _watcher:LinkableWatcher = registerDisposableChild(this, new LinkableWatcher(DisplayObject, handleWatcher));
+
+		public function getSessionState():Object
+		{
+			return _watcher.targetPath;
+		}
+
+		public function setSessionState(state:Object):void
+		{
+			if (StandardLib.compare(state, _watcher.targetPath))
+			{
+				var cc:ICallbackCollection = getCallbackCollection(this);
+				cc.delayCallbacks();
+				_watcher.targetPath = state as Array;
+				cc.triggerCallbacks();
+				cc.resumeCallbacks();
+			}
+		}
+
+		private function handleWatcher():void
 		{
 			var oldObject:DisplayObject = _object;
-			var newObject:DisplayObject = target as DisplayObject;
+			var newObject:DisplayObject = _watcher.target as DisplayObject;
+
+			// make sure two instances don't try to take the same target
 			if (oldObject != newObject)
 			{
-				// make sure two instances don't try to take the same target
 				var lddo:LinkableDynamicDisplayObject = objectToLDDO[newObject];
 				if (lddo && !objectWasDisposed(lddo) && lddo != this)
 					newObject = null;
 				else
 					objectToLDDO[newObject] = this;
 				delete objectToLDDO[oldObject];
-
+			}
+
+			if (oldObject != newObject)
+			{
 				_object = newObject;
 				changeParent(oldObject, _parent, null);
 				updateParentLater();
+
+				getCallbackCollection(this).triggerCallbacks();
 			}
 		}

@@ -103,9 +129,8 @@
 		/**
 		 * @inheritDoc
 		 */
-		override public function dispose():void
+		public function dispose():void
 		{
-			super.dispose();
 			parent = null;
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 6182
Author:   jimurphy@adobe.com
Date:     2009-04-21T17:17:58.392301Z

Log Message:
-----------
Merge 3.x revisions 5830,5880,5891,5992,6136 -> trunk

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
+++ frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
@@ -651,12 +651,7 @@
             {
                 _log.debug("Could not get message performance information for: " + msg.toString());
             }
-        }
-
-        // Remove error hint. ErrorMessages returned by the server are
-        // acknowledged before being faulted.
-        if (ackMsg.headers[AcknowledgeMessage.ERROR_HINT_HEADER])
-            delete ackMsg.headers[AcknowledgeMessage.ERROR_HINT_HEADER];
+        }

         if (configRequested)
         {


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

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


FLEX-33885 improve memory performance

FLEX-33885 improve memory performance

--- frameworks/projects/framework/src/mx/binding/BindingManager.as
+++ frameworks/projects/framework/src/mx/binding/BindingManager.as
@@ -150,9 +150,11 @@

                 if (binding.charAt(0) == destStr.charAt(0))
                 {
-                    if (binding.indexOf(destStr + ".") == 0 ||
-                        binding.indexOf(destStr + "[") == 0 ||
-                        binding == destStr)
+                    var length:int = destStr.length;
+                    if (
+                    	//check if binding start with destStr+"." or destStr+"[" with a minimum number of string allocations
+                    	(length < binding.length && binding.indexOf(destStr) == 0 && (binding.charAt(length) == "." || binding.charAt(length) == "["))
+                        || binding == destStr)
                     {
                         // If this is a RepeatableBindings, execute it on just the
                         // specified object, not on all its repeated siblings.  For


Transferred from the Adobe Open Source Subversion Repository

Revision: 11027
Author:   dloverin@adobe.com
Date:     2009-10-20T15:50:09.018295Z

Log Message:
-----------
Changes to enable using multiple style managers.

Multiple style managers are not the default yet. Can be enabled by compiling with -create-style-manager.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex, Paul
Tests run: checkintests, all mustella
Is noteworthy for integration: Yes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/AbstractSyntaxTreeUtil.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/MxmlDocument.java</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/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/MxmlConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/InterfaceGenerator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexChangeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/BusyCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/DataBindingExtension.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSMergedStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.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/modules/compiler/src/java/flex2/compiler/css/StyleDef.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/BusyCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>

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

--- frameworks/projects/framework/src/mx/events/FlexChangeEvent.as
+++ frameworks/projects/framework/src/mx/events/FlexChangeEvent.as
@@ -98,6 +98,13 @@
     public static const REMOVE_CHILD_BRIDGE:String = "removeChildBridge";

+    /**
+     *  @private
+     *
+     *  Dispatched by a CSSStyleDeclaration when a style property is changed.
+     */
+    public static const STYLE_CHANGED:String = "styleChanged";
+
     //--------------------------------------------------------------------------
     //
     //  Constructor


FLEX-23486 propsedSeletedItemIndexes[uid] is undefined otherwise

--- frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as
+++ frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as
@@ -7395,7 +7395,7 @@
                     item = items[i];
                     if (compareFunction(data, item))
                     {
-                        uid = itemToUID(data);
+                        uid = itemToUID(item);

                         selectionDataArray[proposedSelectedItemIndexes[uid]] = new ListBaseSelectionData(data, index, false);


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

--- frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as
+++ frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as
@@ -0,0 +1,374 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+
+import flash.events.TimerEvent;
+import flash.utils.Timer;
+import mx.core.mx_internal;
+import mx.collections.ArrayCollection;
+import mx.events.PropertyChangeEvent;
+import mx.events.CollectionEvent;
+import mx.logging.ILogger;
+import mx.logging.Log;
+import mx.messaging.events.MessageEvent;
+import mx.messaging.errors.MessagingError;
+import mx.messaging.messages.AsyncMessage;
+import mx.messaging.messages.CommandMessage;
+import mx.messaging.messages.IMessage;
+
+use namespace mx_internal;
+
+/**
+ *  Dispatched when a message is received by the Consumer.
+ *
+ *  @eventType mx.messaging.events.MessageEvent.MESSAGE
+ */
+[Event(name="message", type="mx.messaging.events.MessageEvent")]
+
+/**
+ *  Like a Consumer, a MultiTopicConsumer subscribes to a destination with a single
+ *  clientId and delivers messages to a single event handler.  Unlike a Consumer
+ *  it lets you register subscriptions for a list of subtopics and selector expressions
+ *  at the same time from a single message handler.  Where Consumer has subtopic and selector properties,
+ *  this component has an addSubscription(subtopic, selector) method you use to
+ *  add a new subscription to the existing set of subscriptions.  Alternatively, you can
+ *  populate the subscriptions property with a list of SubscriptionInfo instances that
+ *  define the subscriptions for this destination.
+ *

+ *  Like the regular Consumer, the MultiTopicConsumer sends subscribe and unsubscribe
+ *  messages which generate a MessageAckEvent or MessageFaultEvent depending upon whether the
+ *  operation was successful or not.
+ *  Once subscribed, a MultiTopicConsumer dispatches a MessageEvent for each message it receives.

+ *  @mxml
+ *

+ *  The <mx:MultiTopicConsumer> tag has these properties:
+ *

+ *

+ *   <mx:Consumer
+ *    Properties
+ *    subscriptions=""an empty ArrayCollection of SubscriptionInfo objects"
+ *    resubscribeAttempts="5"
+ *    resubscribeInterval="5000"
+ *    timestamp="No default."
+ *  />
+ *

+ */
+public class MultiTopicConsumer extends AbstractConsumer
+{
+
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructs a MultiTopicConsumer.
+     *
+     *
+     *  @example
+     *  <listing version="3.0">
+     *   function initConsumer():void
+     *   {
+     *       var consumer:Consumer = new MultiTopicConsumer();
+     *       consumer.destination = "NASDAQ";
+     *       consumer.addEventListener(MessageEvent.MESSAGE, messageHandler);
+     *       consumer.addSubscription("myStock1", "operation IN ('BID', 'Ask')");
+     *       consumer.addSubscription("myStock2", "operation IN ('BID', 'Ask')");
+     *       consumer.subscribe();
+     *   }
+     *
+     *   function messageHandler(event:MessageEvent):void
+     *   {
+     *       var msg:IMessage = event.message;
+     *       var info:Object = msg.body;
+     *       trace("-App recieved message: " + msg.toString());
+     *   }
+     *   </listing>
+     */
+    public function MultiTopicConsumer()
+    {
+        super();
+
+        _subscriptions.addEventListener(CollectionEvent.COLLECTION_CHANGE, subscriptionsChangeHandler);
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var _subscriptions:ArrayCollection = new ArrayCollection();
+
+    /**
+     * This is a map where the keys are string names of the form subtopic + separator + selector
+     * registered with the boolean true.  When we generate a subscription message and
+     * send it to the server, we add/remove those subscriptions from this list.  Thus this
+     * list tracks the subscriptions we have sent to the server.
+     */
+    private var _currentSubscriptions:Object = {};
+
+    /**
+     * Used when the subscriptions property changes so we batch all changes made in one
+     * frame into a single multi-subscription message
+     */
+    private var _subchangeTimer:Timer = null;
+
+    [Bindable(event="propertyChange")]
+
+    [Inspectable(category="General", verbose="1")]
+    /**
+     *  Stores an Array of SubscriptionInfo objects.  Each subscription
+     *  contains a subtopic and a selector each of which can be null.
+     *  A subscription with a non-null subtopic restricts the subscription
+     *  to messages delivered with only that subtopic.
+     *  If a subtopic is null, it uses the selector with no subtopic.
+     *  If the selector and the subtopic is null, the subscription receives
+     *  any messages targeted at the destination with no subtopic.
+     *  The subtopic can contain a wildcard specification.
+     *
+     *
Before a call to the subscribe() method, this property
+     *  can be set with no side effects.
+     *  After the MultiTopicConsumer has subscribed to its destination, changing this
+     *  value has the side effect of updating the MultiTopicConsumer's subscription to
+     *  include any new subscriptions and remove any subscriptions you deleted from
+     *  the ArrayCollection.

+     *
+     *
The remote destination must understand the value of the selector
+     *  expression.

+     */
+    public function get subscriptions():ArrayCollection
+    {
+        return _subscriptions;
+    }
+
+    /**
+     * Provide a new subscriptions array collection.  This should be an ArrayCollection
+     * containing SubscriptionInfo instances which define message topics and selectors
+     * you want received by this consumer.
+     */
+    public function set subscriptions(value:ArrayCollection):void
+    {
+        if (_subscriptions !== value)
+        {
+            var event:PropertyChangeEvent = PropertyChangeEvent.createUpdateEvent(this, "subscriptions", _subscriptions, value);
+
+            if (subscribed)
+            {
+                unsubscribe();
+                _shouldBeSubscribed = true;
+            }
+
+            if (_subscriptions != null)
+                _subscriptions.removeEventListener(CollectionEvent.COLLECTION_CHANGE, subscriptionsChangeHandler);
+
+            _subscriptions = value;
+
+            if (_subscriptions != null)
+                _subscriptions.addEventListener(CollectionEvent.COLLECTION_CHANGE, subscriptionsChangeHandler);
+
+            // Update an existing subscription to use the new selector.
+            if (_shouldBeSubscribed)
+                subscribe(clientId);
+
+            dispatchEvent(event);
+        }
+    }
+
+    /**
+     * This is a convenience method for adding a new subscription.  It just creates
+     * a new SubscriptionInfo object and adds it to the subscriptions property.
+     * To call this method, you provide the
+     * subtopic and selector string for the new subscription.  If the subtopic is null,
+     * the subscription applies to messages which do not have a subtopic set in the
+     * producer.  If the selector string is null, all messages sent which match the
+     * subtopic string are received by this consumer.
+     */
+    public function addSubscription(subtopic:String = null, selector:String = null):void
+    {
+        subscriptions.addItem(new SubscriptionInfo(subtopic, selector));
+    }
+
+    /**
+     * This method removes the subscription specified by the subtopic and selector.
+     */
+    public function removeSubscription(subtopic:String = null, selector:String = null):void
+    {
+        for (var i:int = 0; i < subscriptions.length; i++)
+        {
+            var si:SubscriptionInfo = SubscriptionInfo(subscriptions.getItemAt(i));
+            if (si.subtopic == subtopic && si.selector == selector)
+            {
+                subscriptions.removeItemAt(i);
+                break;
+            }
+        }
+        if (i == subscriptions.length)
+            throw new MessagingError("Attempt to remove a subscription with subtopic: " +
+                subtopic + " and selector: " + selector + " that this consumer does not have");
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Protected Methods
+    //
+    //--------------------------------------------------------------------------
+
+    override protected function buildSubscribeMessage():CommandMessage
+    {
+        var msg:CommandMessage = super.buildSubscribeMessage();
+        msg.operation = CommandMessage.MULTI_SUBSCRIBE_OPERATION;
+
+        var subs:Object = getCurrentSubscriptions();
+        var toAdd:Array = [];
+        var toRemove:Array = [];
+
+        for (var s:String in subs)
+        {
+            if (_currentSubscriptions[s] == null)
+                toAdd.push(s);
+        }
+        for (s in _currentSubscriptions)
+        {
+            if (subs[s] == null)
+                toRemove.push(s);
+        }
+
+        if (toAdd.length > 0)
+            msg.headers[CommandMessage.ADD_SUBSCRIPTIONS] = toAdd;
+        if (toRemove.length > 0)
+            msg.headers[CommandMessage.REMOVE_SUBSCRIPTIONS] = toRemove;
+
+        _currentSubscriptions = subs;
+
+        // Tell the ack handler to mark this guy as unsubscribed after the request
+        if (_currentSubscriptions.length == 0)
+            msg.headers.DSlastUnsub = true;
+
+        return msg;
+    }
+
+    override protected function buildUnsubscribeMessage(preserveDurable:Boolean):CommandMessage
+    {
+        var msg:CommandMessage = super.buildUnsubscribeMessage(preserveDurable);
+        msg.operation = CommandMessage.MULTI_SUBSCRIBE_OPERATION;
+
+        var toRemove:Array = [];
+
+        for (var s:String in _currentSubscriptions)
+        {
+            toRemove.push(s);
+        }
+        _currentSubscriptions = {};
+
+        if (toRemove.length > 0)
+            msg.headers[CommandMessage.REMOVE_SUBSCRIPTIONS] = toRemove;
+
+        msg.headers.DSlastUnsub = true;
+
+        return msg;
+    }
+
+    override protected function internalSend(message:IMessage, waitForClientId:Boolean = true):void
+    {
+        // If there is nothing to do with this message, do not send it - instead throw
+        // an exception as this was an attempt to subscribe or unsubscribe with no
+        // subscriptions.
+        if (message.headers[CommandMessage.ADD_SUBSCRIPTIONS] != null ||
+            message.headers[CommandMessage.REMOVE_SUBSCRIPTIONS] != null)
+            super.internalSend(message, waitForClientId);
+        else
+        {
+            if (channelSet == null)
+                initChannelSet(message);
+            // If we are disconnected and are trying to subscribe, we still need
+            // to send the message to force a reconnect
+            if (channelSet != null && !channelSet.connected &&
+                message is CommandMessage &&
+                CommandMessage(message).operation == CommandMessage.MULTI_SUBSCRIBE_OPERATION)
+                super.internalSend(message, waitForClientId);
+            if (message.headers.DSlastUnsub != null)
+                setSubscribed(false);
+            // In this case, if we are not sending the message we can just say we are
+            // subscribed but only if we are connected
+            else if (channelSet != null && channelSet.connected)
+                setSubscribed(true);
+        }
+    }
+
+    override protected function setSubscribed(value:Boolean):void
+    {
+        /*
+         * Whenenver we get marked as being unsubscribed (i.e. the server is
+         * disconnected), we clear out the subscriptions on the server.  The
+         * client will then resubscribe and send all subscriptions on the next
+         * connect.
+         */
+        if (!value)
+            _currentSubscriptions = {};
+        super.setSubscribed(value);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Private Methods
+    //
+    //--------------------------------------------------------------------------
+
+    private function getCurrentSubscriptions():Object
+    {
+        var subs:Object = {};
+
+        for (var i:int = 0; i < subscriptions.length; i++)
+        {
+            var si:SubscriptionInfo = SubscriptionInfo(subscriptions.getItemAt(i));
+            subs[(si.subtopic == null ? "" : si.subtopic) +
+                  CommandMessage.SUBTOPIC_SEPARATOR +
+                  (si.selector == null ? "" : si.selector)] = true;
+        }
+        return subs;
+    }
+
+    private function subscriptionsChangeHandler(event:CollectionEvent):void
+    {
+        // process the changes on the next frame to be sure we are done with
+        // all subscriptions.  If we get a change event after we've subscribed
+        // but before we've gotten the ack, _shouldBeSubscribed is true but
+        // subscribed is only set when we have acked.
+        if ((_shouldBeSubscribed || subscribed) && _subchangeTimer == null)
+        {
+            _subchangeTimer = new Timer(0, 1);
+            _subchangeTimer.addEventListener("timer", doResubscribe);
+            _subchangeTimer.start();
+        }
+    }
+
+    private function doResubscribe(event:TimerEvent):void
+    {
+        _subchangeTimer = null;
+
+        if (subscribed)
+        {
+            internalSend(buildSubscribeMessage());
+        }
+    }
+
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/mx/src/mx/skins/halo/LinkSeparator.as
+++ frameworks/projects/mx/src/mx/skins/halo/LinkSeparator.as
@@ -84,9 +84,9 @@
 	/**
 	 *  We don't use 'is' to prevent dependency issues
 	 */
-	static private var boxes:Object = {};
+	private static var boxes:Object = {};

-	static private function isBox(parent:Object):Boolean
+	private static function isBox(parent:Object):Boolean
 	{
 		var s:String = getQualifiedClassName(parent);
 		if (boxes[s] == 1)


Transferred from the Adobe Open Source Subversion Repository

Revision: 8486
Author:   smgilson@adobe.com
Date:     2009-07-09T18:42:45.734868Z

Log Message:
-----------
Third checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HGroup.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/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VGroup.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/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<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/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.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/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Range.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/HSlider.as
+++ frameworks/projects/spark/src/spark/components/HSlider.as
@@ -63,7 +63,7 @@
  *
  *  @mxml
  *
- *
The <HSlider> tag inherits all of the tag
+ *
The <s:HSlider> tag inherits all of the tag
  *  attributes of its superclass and adds no tag attributes:

  *

  *  <s:HSlider/>


Fixed checking of null parameters

Fixed checking of null parameters

--- frameworks/projects/mx/src/mx/controls/DateField.as
+++ frameworks/projects/mx/src/mx/controls/DateField.as
@@ -465,7 +465,12 @@
 		var dateParts:Array = [];
 		var maskParts:Array = [];
         var part:int = 0;
-		var length:int = valueString.length;
+		var length:int;
+
+		if (valueString == null || inputFormat == null)
+			return null;
+
+		length = valueString.length;

 		dateParts[part] = "";
         for (var i:int = 0; i < length; i++)
@@ -572,16 +577,14 @@
     {
 		var maskChar:String;
 		var maskParts:Array = [];
-		var part:int = 0;
-		var length:int = outputFormat.length;
+		var part:int = -1;
+		var length:int;
+		var lastChar:String;

-		if (!value || isNaN(value.getTime()))
+		if (!value || isNaN(value.getTime()) || !outputFormat)
 			return "";

 		length = outputFormat.length;
-		part = -1;
-
-		var lastChar:String;

 		for (var i:int = 0; i < length; i++)
 		{