Transferred from the Adobe Open Source Subversion Repository

Revision: 13196
Author:   aharui@adobe.com
Date:     2009-12-23T17:50:38.356269Z

Log Message:
-----------
Re-submit with bug fix:  SystemManager was supposed to call ChildManager to finish initializing the top level window.  LoaderConfig was not getting initialized otherwise.

QE Notes: None
Doc Notes: None
Bugs: SDK-24832, SDK-24625
Reviewer: Corey
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/gumbo/layout, layout3d, spark/core, components/DataGrid

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -2778,64 +2778,36 @@
                 sandboxRoot.addEventListener(Event.RESIZE, Stage_resizeHandler, false, 0, true);
         }

-        var app:IUIComponent;
-        // Create a new instance of the toplevel class
-        document = app = topLevelWindow = IUIComponent(create());
-
-        if (document)
-        {
-            // Add listener for the creationComplete event
-            IEventDispatcher(app).addEventListener(FlexEvent.CREATION_COMPLETE,
-                                                   appCreationCompleteHandler);
-
-            if (isStageRoot && stage)
+        var w:Number;
+        var h:Number;
+
+        if (isStageRoot && stage)
+        {
+            // stageWidth/stageHeight may have changed between initialize() and now,
+            // so refresh our _width and _height here.
+            _width = stage.stageWidth;
+            _height = stage.stageHeight;
+
+            // Detect and account for special case where our stage in some
+            // contexts has not actually been initialized fully, as is the
+            // case with IE if the window is fully obscured upon loading.
+            if (_width == 0 && _height == 0 &&
+                loaderInfo.width != _width &&
+                loaderInfo.height != _height)
             {
-                // stageWidth/stageHeight may have changed between initialize() and now,
-                // so refresh our _width and _height here.
-                _width = stage.stageWidth;
-                _height = stage.stageHeight;
-
-                // Detect and account for special case where our stage in some
-                // contexts has not actually been initialized fully, as is the
-                // case with IE if the window is fully obscured upon loading.
-                if (_width == 0 && _height == 0 &&
-                    loaderInfo.width != _width &&
-                    loaderInfo.height != _height)
-                {
-                    _width = loaderInfo.width;
-                    _height = loaderInfo.height;
-                }
-
-                IFlexDisplayObject(app).setActualSize(_width, _height);
-            }
-            else
-                IFlexDisplayObject(app).setActualSize(loaderInfo.width, loaderInfo.height);
-
-            // Wait for the app to finish its initialization sequence
-            // before doing an addChild().
-            // Otherwise, the measurement/layout code will cause the
-            // player to do a bunch of unnecessary screen repaints,
-            // which slows application startup time.
-
-            // Pass the application instance to the preloader.
-            // Note: preloader can be null when the user chooses
-            // Control > Play in the standalone player.
-            if (preloader)
-                preloader.registerApplication(app);
-
-            // The Application doesn't get added to the SystemManager in the standard way.
-            // We want to recursively create the entire application subtree and process
-            // it with the LayoutManager before putting the Application on the display list.
-            // So here we what would normally happen inside an override of addChild().
-            // Leter, when we actually attach the Application instance,
-            // we call super.addChild(), which is the bare player method.
-            childManager.addingChild(DisplayObject(app));
-            childManager.childAdded(DisplayObject(app)); // calls app.createChildren()
-        }
+                _width = loaderInfo.width;
+                _height = loaderInfo.height;
+            }
+            w = _width;
+            h = _height;
+        }
         else
         {
-            document = this;
-        }
+            w = loaderInfo.width;
+            h = loaderInfo.height;
+        }
+
+        childManager.initializeTopLevelWindow(w, h);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 2366
Author:   gosmith@adobe.com
Date:     2008-07-03T23:16:15.834199Z

Log Message:
-----------
Minor Enhancement SDK-15573: Locale sorting.

Applied and modified the patch that was provided. Thank you, Romania team!

This enhancement affects the default localeChain at startup when you don't specify it in an HTML wrapper. The localeChain is now sorted based on the system's preferred locales, as determined from the Capabilities.languages and Capabilities.language APIs.

For example, suppose an app has been compiled with -locale=en_US,fr_FR,de_DE. Before this enhancement, the default localeChain would be [ "en_US", "fr_FR", "de_DE" ] regardless of the system you were running on. But now, if Capabilities.languages reports that the system's preferred locales are [ "fr-CA", "de" ], the localeChain will be [ "fr_FR", "de_DE", "en_US" ], with the result that the French resources are used rather than the English ones.

The module factory classes SystemManager and FlexModuleFactory, which initialize the localeChain if it hasn't been set by the HTML wrapper, used to simply set the localeChain to the list of compiled locales. They now use a new IResourceManager method, initializeLocaleChain() to set the localeChain in a more intelligent way, passing the list of compiled locales to this method. It in turn determines the list of the system's preferred locales and passes the two lists to a new utility method, LocaleSorter.sortLocalesByPreference(). This returns the first list sorted according to the second list, and the result gets assigned as the localeChain. (Note: The LocaleSorter class will not be documented.)

In addition, IResourceManager has a new getPreferredLocaleChain() method. It is similar to getLocales() but sorts the locale list based on the system's preferred localse. After loading resource modules or adding ResourceBundles into the ResourceManager, you can do

resourceManager.localeChain = resourceManager.getPreferredLocaleChain()

to set the localeChain to an intelligently-sorted list (the locales for which resources are available, sorted by what the user prefers to see).

Bugs: SDK-15573
QA: Yes!
Doc: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/branches/3.1.0/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.1.0/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.1.0/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.1.0/frameworks/projects/framework/src/mx/resources/IResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.1.0/frameworks/projects/framework/src/mx/resources/LocaleSorter.as</path>

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

--- frameworks/projects/framework/src/mx/resources/LocaleSorter.as
+++ frameworks/projects/framework/src/mx/resources/LocaleSorter.as
@@ -0,0 +1,1024 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.resources
+{
+
+[ExcludeClass]
+
+/**
+ *  @private
+ *  The APIs of the LocaleSorter class provides the sorting functionality
+ *  of application locales against system preferences.
+ */
+public class LocaleSorter
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+     *	Sorts a list of locales using the order specified
+     *  by the user preferences.
+	 *
+	 * 	@param appLocales An Array of locales supported by the application.
+     *
+	 * 	@param systemPreferences The locale chain of user-preferred locales.
+     *
+	 * 	@param ultimateFallbackLocale The ultimate fallback locale
+     *  that will be used when no locale from systemPreference matches
+	 * 	a locale from application supported locale list.
+     *
+	 * 	@param addAll When true, adds all the non-matching locales
+     *  at the end of the result list preserving the given order.
+	 *
+	 *	@return A locale chain that matches user preferences order.
+	 */
+	public static function sortLocalesByPreference(
+                                appLocales:Array, systemPreferences:Array,
+                                ultimateFallbackLocale:String = null,
+                                addAll:Boolean = false):Array
+    {
+		var result:Array = [];
+
+        var hasLocale:Object = {};
+
+		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);
+
+		// For better performance, save the locales in a lookup table.
+		for (j = 0; j < locales.length; j++)
+        {
+			hasLocale[locales[j]] = j;
+		}
+
+		function promote(locale:String):void
+        {
+			if (typeof hasLocale[locale] != "undefined")
+            {
+				result.push(appLocales[hasLocale[locale]]);
+				delete hasLocale[locale];
+			}
+		}
+
+		for (i = 0, l = preferenceLocales.length; i < l; i++)
+        {
+			var plocale:LocaleID = LocaleID.fromString(preferenceLocales[i]);
+
+			// Step 1: Promote the perfect match.
+			promote(preferenceLocales[i]);
+
+			promote(plocale.toString());
+
+			// Step 2: Promote the parent chain.
+			while (plocale.transformToParent())
+            {
+				promote(plocale.toString());
+			}
+
+			// Parse it again.
+			plocale = LocaleID.fromString(preferenceLocales[i]);
+
+            // 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);
+			}
+
+			// 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);
+			}
+		}
+
+		if (addAll)
+        {
+			// Check what locales are not already loaded
+            // and push them preserving the order.
+			for (j = 0, k = locales.length; j < k; j++)
+            {
+				promote(locales[j]);
+			}
+		}
+
+		return result;
+	}
+
+	/**
+     *  @private
+     */
+	private static function trimAndNormalize(list:Array):Array
+    {
+		var resultList:Array = [];
+
+		for (var i:int = 0; i < list.length; i++)
+        {
+			resultList.push(normalizeLocale(list[i]));
+		}
+
+        return resultList;
+	}
+
+	/**
+     *  @private
+     */
+    private static function normalizeLocale(locale:String):String
+    {
+		return locale.toLowerCase().replace(/-/g, "_");
+	}
+
+	/**
+     *  @private
+     */
+	private static function addUltimateFallbackLocale(
+                                preferenceLocales:Array,
+                                ultimateFallbackLocale:String):void
+    {
+		if (ultimateFallbackLocale != null && ultimateFallbackLocale != "")
+        {
+			var locale:String = normalizeLocale(ultimateFallbackLocale);
+
+			if (preferenceLocales.indexOf(locale) == -1)
+            {
+				// Add the locale to the end of the chain.
+				preferenceLocales.push(locale);
+			}
+		}
+	}
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Helper class: LocaleID
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  @private
+ *  The APIs of the internal LocaleID class parse a locale string
+ *  according to:
+ *  RFC 4646: http://www.ietf.org/rfc/rfc4646.txt
+ *  RFC 4647: http://www.ietf.org/rfc/rfc4647.txt
+ *  IANA Language Subtag Registry:
+ *  http://www.iana.org/assignments/language-subtag-registry
+ */
+class LocaleID
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+	public static const STATE_PRIMARY_LANGUAGE:int = 0;
+
+    /**
+     *  @private
+     */
+    public static const STATE_EXTENDED_LANGUAGES:int = 1;
+
+    /**
+     *  @private
+     */
+    public static const STATE_SCRIPT:int = 2;
+
+    /**
+     *  @private
+     */
+    public static const STATE_REGION:int = 3;
+
+    /**
+     *  @private
+     */
+    public static const STATE_VARIANTS:int = 4;
+
+    /**
+     *  @private
+     */
+    public static const STATE_EXTENSIONS:int = 5;
+
+    /**
+     *  @private
+     */
+    public static const STATE_PRIVATES:int = 6;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+     *  @private
+     */
+    public static function fromString(str:String):LocaleID
+    {
+		var localeID:LocaleID = new LocaleID();
+
+		var state:int = STATE_PRIMARY_LANGUAGE;
+		var subtags:Array = str.replace(/-/g, '_').split('_');
+
+		var last_extension:Array;
+
+		for (var i:int = 0, l:int = subtags.length; i < l; i++)
+        {
+			var subtag:String = subtags[i].toLowerCase();
+
+			if (state == STATE_PRIMARY_LANGUAGE)
+            {
+				if (subtag == "x")
+                {
+					localeID.privateLangs = true;
+                        // not used in our implementation,
+                        // but makes the tag private
+				}
+                else if (subtag == "i")
+                {
+					localeID.lang += "i-";
+                        // and wait the next subtag
+                        // to complete the language name
+				}
+                else
+                {
+					localeID.lang += subtag;
+					state = STATE_EXTENDED_LANGUAGES;
+				}
+			}
+            else
+            {
+				// looking for:
+                // an extended language - 3 chars
+				// a script - 4 chars
+				// a region - 2-3 chars
+				// a variant - alpha with at least 5 chars
+                //             or numeric with at least 4 chars
+				// an extension/private singleton - 1 char
+
+				var subtag_length:int = subtag.length;
+				if (subtag_length == 0)
+                    continue; // skip zero-lengthed subtags
+
+				var firstChar:String = subtag.charAt(0).toLowerCase();
+
+				if (state <= STATE_EXTENDED_LANGUAGES &&
+                    subtag_length == 3)
+                {
+					localeID.extended_langs.push(subtag);
+					if (localeID.extended_langs.length == 3)
+                    {
+                        // Allow a maximum of 3 extended langs.
+						state = STATE_SCRIPT;
+					}
+				}
+                else if (state <= STATE_SCRIPT &&
+                         subtag_length == 4)
+                {
+					localeID.script = subtag;
+					state = STATE_REGION;
+				}
+                else if (state <= STATE_REGION &&
+                         (subtag_length == 2 || subtag_length == 3))
+                {
+					localeID.region = subtag;
+					state = STATE_VARIANTS;
+				}
+                else if (state <= STATE_VARIANTS &&
+						 ((firstChar >= "a" && firstChar <= "z" &&
+                           subtag_length >= 5) ||
+						  (firstChar >= "0" && firstChar <= "9" &&
+                           subtag_length >= 4)))
+                {
+					// variant
+					localeID.variants.push(subtag);
+					state = STATE_VARIANTS;
+				}
+                else if (state < STATE_PRIVATES &&
+                         subtag_length == 1)
+                {
+                    // singleton
+					if (subtag == "x")
+                    {
+						state = STATE_PRIVATES;
+						last_extension = localeID.privates;
+					}
+                    else
+                    {
+						state = STATE_EXTENSIONS;
+						last_extension = localeID.extensions[subtag] || [];
+						localeID.extensions[subtag] = last_extension;
+					}
+				}
+                else if (state >= STATE_EXTENSIONS)
+                {
+					last_extension.push(subtag);
+				}
+			}
+		}
+
+        localeID.canonicalize();
+
+        return localeID;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+     *  Constructor.
+     */
+    public function LocaleID()
+	{
+        super();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+     *  @private
+     */
+	private var lang:String = "";
+
+	/**
+     *  @private
+     */
+    private var script:String = "";
+
+	/**
+     *  @private
+     */
+    private var region:String = "";
+
+ 	/**
+     *  @private
+     */
+   private var extended_langs:Array = [];
+
+ 	/**
+     *  @private
+     */
+   private var variants:Array = [];
+
+	/**
+     *  @private
+     */
+    private var extensions:Object = {};
+
+	/**
+     *  @private
+     */
+    private var privates:Array = [];
+
+	/**
+     *  @private
+     */
+    private var privateLangs:Boolean = false;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+     *  @private
+     */
+	public function canonicalize():void
+    {
+		for (var i:String in extensions)
+        {
+			if (extensions.hasOwnProperty(i))
+            {
+				// Also clear zero length extensions.
+				if (extensions[i].length == 0)
+                    delete extensions[i];
+				else
+                    extensions[i] = extensions[i].sort();
+			}
+		}
+
+		extended_langs = extended_langs.sort();
+		variants = variants.sort();
+		privates = privates.sort();
+
+        if (script == "")
+			script = LocaleRegistry.getScriptByLang(lang);
+
+        // Still no script, check the region.
+		if (script == "" && region != "")
+			script = LocaleRegistry.getScriptByLangAndRegion(lang, region);
+
+		if (region == "" && script != "")
+        {
+			region = LocaleRegistry.getDefaultRegionForLangAndScript(
+                                            lang, script);
+		}
+	}
+
+	/**
+     *  @private
+     */
+	public function toString():String
+    {
+		var stack:Array = [ lang ];
+
+        Array.prototype.push.apply(stack, extended_langs);
+
+        if (script != "")
+            stack.push(script);
+
+        if (region != "")
+            stack.push(region);
+
+        Array.prototype.push.apply(stack, variants);
+
+        for (var i:String in extensions)
+        {
+			if (extensions.hasOwnProperty(i))
+            {
+				stack.push(i);
+				Array.prototype.push.apply(stack, extensions[i]);
+			}
+		}
+
+        if (privates.length > 0)
+        {
+			stack.push("x");
+			Array.prototype.push.apply(stack, privates);
+		}
+
+		return stack.join("_");
+	}
+
+	/**
+     *  @private
+     */
+	public function equals(locale:LocaleID):Boolean
+    {
+		return toString() == locale.toString();
+	}
+
+	/**
+     *  @private
+     */
+	public function isSiblingOf(other:LocaleID):Boolean
+    {
+		return lang == other.lang && script == other.script;
+	}
+
+	/**
+     *  @private
+     */
+    public function transformToParent():Boolean
+    {
+		if (privates.length > 0)
+        {
+			privates.splice(privates.length - 1, 1);
+			return true;
+		}
+
+		var lastExtensionName:String = null;
+		for (var i:String in extensions)
+        {
+			if (extensions.hasOwnProperty(i))
+				lastExtensionName = i;
+		}
+
+		if (lastExtensionName)
+        {
+			var lastExtension:Array = extensions[lastExtensionName];
+			if (lastExtension.length == 1)
+            {
+				delete extensions[lastExtensionName];
+				return true;
+			}
+			lastExtension.splice(lastExtension.length - 1, 1);
+			return true;
+		}
+
+		if (variants.length > 0)
+        {
+			variants.splice(variants.length - 1, 1);
+			return true;
+		}
+
+		if (script != "")
+        {
+			// Check if we can suppress the script.
+			if (LocaleRegistry.getScriptByLang(lang) != "")
+            {
+				script = "";
+				return true;
+			}
+            else if (region == "")
+            {
+				// Maybe the default region can suppress the script.
+				var defaultRegion:String =
+                    LocaleRegistry.getDefaultRegionForLangAndScript(
+                                        lang, script);
+				if (defaultRegion != "")
+                {
+					region = defaultRegion;
+					script = "";
+					return true;
+				}
+			}
+		}
+
+		if (region != "")
+        {
+			if (!(script == "" && LocaleRegistry.getScriptByLang(lang) == ""))
+            {
+				region = "";
+				return true;
+			}
+		}
+
+		if (extended_langs.length > 0)
+        {
+			extended_langs.splice(extended_langs.length - 1, 1);
+			return true;
+		}
+
+		return false;
+	}
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Helper class: LocaleRegistry
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  @private
+ */
+class LocaleRegistry
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+     *  @private
+     *  A list of codes representing writing systems, in arbitrary order.
+     *  For example, "latn" represents the Latin alphabet, used for
+     *  writing languages such as English, French, Indonesian, and Swahili,
+     *  and "arab" represents the Arabic script, used for writing
+     *  Arabic, Persian, Pashto, and Urdu.
+     */
+	private static const SCRIPTS:Array =
+    [
+        "",     // 0
+        "latn", // 1    Latin
+        "ethi", // 2    Ethiopian
+        "arab", // 3    Arabic
+        "beng", // 4    Bengali
+        "cyrl", // 5    Cyrillic
+        "thaa", // 6    Thaana
+        "tibt", // 7    Tibetan
+        "grek", // 8    Greek
+        "gujr", // 9    Gujarati
+        "hebr", // 10   Hebrew
+        "deva", // 11   Devanagari
+        "armn", // 12   Armenian
+        "jpan", // 13   Japanese
+        "geor", // 14   Georgian
+        "khmr", // 15   Khmer
+        "knda", // 16   Kannada
+        "kore", // 17   Korean
+        "laoo", // 18   Lao
+        "mlym", // 19   Malayalam
+        "mymr", // 20   Burmese
+        "orya", // 21   Oriya
+        "guru", // 22   Punjabi
+        "sinh", // 23   Sinhalese
+        "taml", // 24   Tamil
+        "telu", // 25   Telugu
+        "thai", // 26   Thai
+        "nkoo", // 27   N'Ko
+        "blis", // 28   Bliss
+        "hans", // 29   Simplified Chinese
+        "hant", // 30   Traditional Chinese
+        "mong", // 31   Mongolian
+        "syrc"  // 32   Syriac
+    ];
+
+	/**
+     *  @private
+     *  The inverse of the SCRIPT Array.
+     *  Maps a script code (like "jpan" for Japanese)
+     *  to its index in the SCRIPT Array.
+     */
+    private static const SCRIPT_BY_ID:Object =
+    {
+        latn: 1,
+        ethi: 2,
+        arab: 3,
+        beng: 4,
+        cyrl: 5,
+        thaa: 6,
+        tibt: 7,
+        grek: 8,
+        gujr: 9,
+        hebr: 10,
+        deva: 11,
+        armn: 12,
+        jpan: 13,
+        geor: 14,
+        khmr: 15,
+        knda: 16,
+        kore: 17,
+        laoo: 18,
+        mlym: 19,
+        mymr: 20,
+        orya: 21,
+        guru: 22,
+        sinh: 23,
+        taml: 24,
+        telu: 25,
+        thai: 26,
+        nkoo: 27,
+        blis: 28,
+        hans: 29,
+        hant: 30,
+        mong: 31,
+        syrc: 32
+    };
+
+	/**
+     *  @private
+     *  This table maps a language and a script to the most
+     *  prominent region where that combination is used.
+     *
+     *  Note: "is" must be quoted because it is a reserved word.
+     */
+    private static const DEFAULT_REGION_BY_LANG_AND_SCRIPT:Object =
+    {
+        bg: { 5: "bg" },            // Bulgarian / Cyrillic -> Bulgaria
+        ca: { 1: "es" },            // Catalan / Latin -> Spain
+        zh: { 30: "tw", 29: "cn" }, // Chinese / Traditional Chinese -> Taiwan
+                                    // Chinese / Simplified Chinese -> China
+        cs: { 1: "cz" },            // Czech / Latin -> Czech Republic
+        da: { 1: "dk" },            // Danish / Latin -> Denmark
+        de: { 1: "de" },            // German / Latin -> Germany
+        el: { 8: "gr" },            // Greek / Greek -> Greece
+        en: { 1: "us" },            // English / Latin -> United States
+        es: { 1: "es" },            // Spanish / Latin -> Spain
+        fi: { 1: "fi" },            // Finnish / Latin -> Finland
+        fr: { 1: "fr" },            // French / Latin -> France
+        he: { 10: "il" },           // Hebrew / Hebrew -> Israel
+        hu: { 1: "hu" },            // Hungarian / Latin -> Hungary
+        "is": { 1: "is" },          // Icelandic / Latin -> Iceland
+        it: {  1: "it" },           // Italian / Latin -> Italy
+        ja: { 13: "jp" },           // Japanese / Japanese -> Japan
+        ko: { 17: "kr" },           // Korean / Korean -> Korea
+        nl: { 1: "nl" },            // Dutch / Latin -> Netherlands
+        nb: { 1: "no" },            // Norwegian Bokmaal / Latin -> Norway
+        pl: { 1: "pl" },            // Polish / Latin -> Poland
+        pt: { 1: "br" },            // Portuguese / Latin -> Brazil
+        ro: { 1: "ro" },            // Romanian / Latin -> Romania
+        ru: { 5: "ru" },            // Russian / Cyrillic -> Russia
+        hr: { 1: "hr" },            // Croatian / Latin -> Croatia
+        sk: { 1: "sk" },            // Slovak / Latin -> Slovakia
+        sq: { 1: "al" },            // Albanian / Latin -> Albania
+        sv: { 1: "se" },            // Swedish / Latin -> Sweden
+        th: { 26: "th" },           // Thai / Thai -> Thailand
+        tr: { 1: "tr" },            // Turkish / Latin -> Turkey
+        ur: { 3: "pk" },            // Urdu / Arabic -> Pakistan
+        id: { 1: "id" },            // Indonesian / Latin -> Indonesia
+        uk: { 5: "ua" },            // Ukrainian / Cyrillic -> Ukraine
+        be: { 5: "by" },            // Byelorussian / Cyrillic -> Belarus
+        sl: { 1: "si" },            // Slovenian / Latin -> Slovenia
+        et: { 1: "ee" },            // Estonian / Latin -> Estonia
+        lv: { 1: "lv" },            // Latvian / Latin -> Latvia
+        lt: { 1: "lt" },            // Lithuanian / Latin -> Lithuania
+        fa: { 3: "ir" },            // Persian / Arabic -> Iran
+        vi: { 1: "vn" },            // Vietnamese / Latin -> Vietnam
+        hy: { 12: "am"},            // Armenian / Armenian -> Armenia
+        az: { 1: "az", 5: "az" },   // Azerbaijani / Latin -> Azerbaijan
+                                    // Azerbaijani / Cyrillic -> Azerbaijan
+        eu: { 1: "es" },            // Basque / Latin -> Spain
+        mk: { 5: "mk" },            // Macedonian / Cyrillic -> Macedonia
+        af: { 1: "za" },            // Afrikaans / Latin -> South Africa
+        ka: { 14: "ge" },           // Georgian / Georgian -> Georgia
+        fo: { 1: "fo" },            // Faeroese / Latin -> Faroe Islands
+        hi: { 11: "in" },           // Hindi / Devanagari -> India
+        ms: { 1: "my" },            // Malay / Latin -> Malaysia
+        kk: { 5: "kz" },            // Kazakh / Cyrillic -> Kazakhstan
+        ky: { 5: "kg" },            // Kirghiz / Cyrillic -> Kyrgyzstan
+        sw: { 1: "ke" },            // Swahili / Latin -> Kenya
+        uz: { 1: "uz", 5: "uz" },   // Uzbek / Latin -> Uzbekistan
+                                    // Uzbek / Cyrillic -> Uzbekistan
+        tt: { 5: "ru" },            // Tatar / Cyrillic -> Russia
+        pa: { 22: "in" },           // Punjabi / Punjabi -> India
+        gu: { 9: "in" },            // Gujarati / Gujarati -> India
+        ta: { 24: "in" },           // Tamil / Tamil -> India
+        te: { 25: "in" },           // Telugu / Telugu -> India
+        kn: { 16: "in" },           // Kannada / Kannada -> India
+        mr: { 11: "in" },           // Marathi / Devanagari -> India
+        sa: { 11: "in" },           // Sanskrit / Devanagari -> India
+        mn: { 5: "mn" },            // Mongolian / Cyrillic -> Mongolia
+        gl: { 1: "es" },            // Galician / Latin -> Spain
+        kok: { 11: "in" },          // Konkani / Devanagari -> India
+        syr: { 32: "sy" },          // Syriac / Syriac -> Syria
+        dv: { 6: "mv" },            // Dhivehi / Thaana -> Maldives
+        nn: { 1: "no" },            // Norwegian Nynorsk / Latin -> Norway
+        sr: { 1: "cs", 5: "cs" },   // Serbian / Latin -> Serbia
+                                    // Serbian / Cyrillic -> Serbia
+        cy: { 1: "gb" },            // Welsh / Latin -> United Kingdom
+        mi: { 1: "nz" },            // Maori / Latin -> New Zealand
+        mt: { 1: "mt" },            // Maltese / Latin -> Malta
+        quz: { 1: "bo" },           // Quechua / Latin -> Bolivia
+        tn: { 1: "za" },            // Tswana / Latin -> South Africa
+        xh: { 1: "za" },            // Xhosa / Latin -> South Africa
+        zu: { 1: "za" },            // Zulu / Latin -> South Africa
+        nso: { 1: "za" },           // Northern Sotho / Latin -> South Africa
+        se: { 1: "no" },            // Northern Saami / Latin -> Norway
+        smj: { 1: "no" },           // Lule Saami / Latin -> Norway
+        sma: { 1: "no" },           // Southern Saami / Latin -> Norway
+        sms: { 1: "fi" },           // Skolt Saami / Latin -> Finland
+        smn: { 1: "fi" },           // Inari Saami / Latin -> Finland
+        bs: { 1: "ba" }             // Bosnia / Latin -> Bosnia
+    };
+
+	/**
+     *  @private
+     *  This table maps a language to a script.
+     *  It was derived from the entries at
+     *  http://www.iana.org/assignments/language-subtag-registry
+     *  which have a Suppress-Script property.
+     *
+     *  Note: "as", "in", and "is" must be quoted
+     *  because they are reserved words.
+     */
+    private static const SCRIPT_ID_BY_LANG:Object =
+    {
+        ab: 5,      // Abkhazian -> Cyrillic
+        af: 1,      // Afrikaans -> Latin
+        am: 2,      // Amharic -> Ethiopian
+        ar: 3,      // Arabic -> Arabic
+        "as": 4,    // Assamese -> Bengali
+        ay: 1,      // Aymara -> Latin
+        be: 5,      // Belarusian -> Cyrillic
+        bg: 5,      // Bulgarian -> Cyrillic
+        bn: 4,      // Bengali -> Bengali
+        bs: 1,      // Bosnian -> Latin
+        ca: 1,      // Catalan / Valencian -> Latin
+        ch: 1,      // Chamorro -> Latin
+        cs: 1,      // Czech -> Latin
+        cy: 1,      // Welsh -> Latin
+        da: 1,      // Danish -> Latin
+        de: 1,      // German -> Latin
+        dv: 6,      // Dhivehi / Maldivian -> Thaana
+        dz: 7,      // Dzongkha -> Tibetan
+        el: 8,      // Modern Greek -> Greek
+        en: 1,      // English -> Latin
+        eo: 1,      // Esperanto -> Latin
+        es: 1,      // Spanish / Castilian -> Latin
+        et: 1,      // Estonian -> Latin
+        eu: 1,      // Basque -> Latin
+        fa: 3,      // Persian -> Arabic
+        fi: 1,      // Finnish -> Latin
+        fj: 1,      // Fijian -> Latin
+        fo: 1,      // Faroese -> Latin
+        fr: 1,      // French -> Latin
+        frr: 1,     // Northern Frisian -> Latin
+        fy: 1,      // Western Frisian -> Latin
+        ga: 1,      // Irish -> Latin
+        gl: 1,      // Galician -> Latin
+        gn: 1,      // Guarani -> Latin
+        gu: 9,      // Gujarati -> Gujarati
+        gv: 1,      // Manx -> Latin
+        he: 10,     // Hebrew -> Hebrew
+        hi: 11,     // Hindi -> Devanagari
+        hr: 1,      // Croatian -> Latin
+        ht: 1,      // Haitian Creole -> Latin
+        hu: 1,      // Hungarian -> Latin
+        hy: 12,     // Armenian -> Armenian
+        id: 1,      // Indonesian -> Latin
+        "in": 1,    // Indonesian -> Latin
+        "is": 1,    // Icelandic -> Latin
+        it: 1,      // Italian -> Latin
+        iw: 10,     // Hebrew -> Hebrew
+        ja: 13,     // Japanese -> Japanese
+        ka: 14,     // Georgian -> Georgian
+        kk: 5,      // Kazakh -> Cyrillic
+        kl: 1,      // Kalaallisut / Greenlandic -> Latin
+        km: 15,     // Central Khmer -> Khmer
+        kn: 16,     // Kannada -> Kannada
+        ko: 17,     // Korean -> Korean
+        la: 1,      // Latin -> Latin
+        lb: 1,      // Luxembourgish -> Latin
+        ln: 1,      // Lingala -> Latin
+        lo: 18,     // Lao -> Lao
+        lt: 1,      // Lithuanian -> Latin
+        lv: 1,      // Latvian -> Latin
+        mg: 1,      // Malagasy -> Latin
+        mh: 1,      // Marshallese -> Latin
+        mk: 5,      // Macedonian -> Cyrillic
+        ml: 19,     // Malayalam -> Malayalam
+        mo: 1,      // Moldavian -> Latin
+        mr: 11,     // Marathi -> Devanagari
+        ms: 1,      // Malay -> Latin
+        mt: 1,      // Maltese -> Latin
+        my: 20,     // Burmese -> Burmese
+        na: 1,      // Nauru -> Latin
+        nb: 1,      // Norwegian Bokmaal -> Latin
+        nd: 1,      // North Ndebele -> Latin
+        ne: 11,     // Nepali -> Devanagari
+        nl: 1,      // Dutch / Flemish -> Latin
+        nn: 1,      // Norwegian Nynorsk -> Latin
+        no: 1,      // Norwegian -> Latin
+        nr: 1,      // South Ndebele -> Latin
+        ny: 1,      // Chichewa / Chewa / Nyanja -> Latin
+        om: 1,      // Oromo -> Latin
+        or: 21,     // Oriya -> Oriya
+        pa: 22,     // Punjabi -> Punjabi
+        pl: 1,      // Polish -> Latin
+        ps: 3,      // Pashto -> Arabic
+        pt: 1,      // Portuguese -> Latin
+        qu: 1,      // Quechua -> Latin
+        rn: 1,      // Rundi -> Latin
+        ro: 1,      // Romanian -> Latin
+        ru: 5,      // Russian -> Cyrillic
+        rw: 1,      // Kinyarwanda -> Latin
+        sg: 1,      // Sango -> Latin
+        si: 23,     // Sinhalese -> Sinhalese
+        sk: 1,      // Slovak -> Latin
+        sl: 1,      // Slovenian -> Latin
+        sm: 1,      // Samoan -> Latin
+        so: 1,      // Somali -> Latin
+        sq: 1,      // Albanian -> Latin
+        ss: 1,      // Swati -> Latin
+        st: 1,      // Southern Sotho -> Latin
+        sv: 1,      // Swedish -> Latin
+        sw: 1,      // Swahili -> Latin
+        ta: 24,     // Tamil -> Tamil
+        te: 25,     // Telugu -> Telugu
+        th: 26,     // Thai -> Thai
+        ti: 2,      // Tigrinya -> Ethiopian
+        tl: 1,      // Tagalog -> Latin
+        tn: 1,      // Tswana -> Latin
+        to: 1,      // Tonga -> Latin
+        tr: 1,      // Turkish -> Latin
+        ts: 1,      // Tsonga -> Latin
+        uk: 5,      // Ukrainian -> Cyrillic
+        ur: 3,      // Urdu -> Arabic
+        ve: 1,      // Venda -> Latin
+        vi: 1,      // Vietnamese -> Latin
+        wo: 1,      // Wolof -> Latin
+        xh: 1,      // Xhosa -> Latin
+        yi: 10,     // Yiddish -> Hebrew
+        zu: 1,      // Zulu -> Latin
+        cpe: 1,     // Creoles and pidgins -> Latin
+        dsb: 1,     // Lower Sorbian -> Latin
+        frs: 1,     // Eastern Frisian -> Latin
+        gsw: 1,     // Swiss German / Alemaanic / Alsatian -> Latin
+        hsb: 1,     // Upper Sorbian -> Latin
+        kok: 11,    // Konkana -> Devanagari
+        mai: 11,    // Maithili -> Devanagari
+        men: 1,     // Mende -> Latin
+        nds: 1,     // Low German -> Latin
+        niu: 1,     // Niuean -> Latin
+        nqo: 27,    // N'Ko -> N'Ko
+        nso: 1,     // Northern Sotho / Pedi / Sepedi -> Latin
+        son: 1,     // Songhai -> Latin
+        tem: 1,     // Timne -> Latin
+        tkl: 1,     // Tokelau -> Latin
+        tmh: 1,     // Tamashek -> Latin
+        tpi: 1,     // Tok Pisin -> Latin
+        tvl: 1,     // Tuvalu -> Latin
+        zbl: 28     // Bliss -> Bliss
+    };
+
+	/**
+     *  @private
+     *  This table maps a language-as-spoken-in-a-region
+     *  to the script used to write it.
+     *
+     *  Chinese in China -> Simplified Chinese
+     *  Chinese in Singapore -> Simplified Chinese
+     *  Chinese in Taiwan -> Traditional Chinese
+     *  Chinese in Hong Kong -> Traditional Chinese
+     *  Chinese in Macao -> Traditional Chinese
+     *  Mongolian in China -> Mongolian
+     *  Mongolian in Singapore -> Cyrillic
+     *  Punjabi in Pakistan -> Arabic
+     *  Punjabi in India -> Punjabi
+     *  Hausa in Ghana -> Latin
+     *  Hausa in Niger -> Latin
+     */
+    private static const SCRIPT_ID_BY_LANG_AND_REGION:Object =
+    {
+        zh: { cn: 29, sg: 29, tw: 30, hk: 30, mo: 30 },
+        mn: { cn: 31, sg: 5 },
+        pa: { pk: 3, "in": 22 }, // "in" is reserved word
+        ha: { gh: 1, ne: 1 }
+    };
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+     *  @private
+     *  Given a language and a region, returns the script system
+     *  used to write the language there.
+     *
+     *  Examples:
+     *  lang zh (Chinese), region cn (China) -> hans (Simplified Chinese)
+     *  lang zh (Chinese), region tw (Taiwan) -> hast (Traditional Chinese)
+     */
+    public static function getScriptByLangAndRegion(
+                                lang:String, region:String):String
+    {
+		var langRegions:Object = SCRIPT_ID_BY_LANG_AND_REGION[lang];
+		if (langRegions == null)
+            return "";
+
+        var scriptID:Object = langRegions[region];
+		if (scriptID == null)
+            return "";
+
+        return SCRIPTS[int(scriptID)].toLowerCase();
+	}
+
+	/**
+     *  @private
+     *  Given a language, returns the script generally used to write it.
+     *
+     *  Examples:
+     *  lang bg (Bulgarian) -> cyrl (Cyrillic)
+     */
+	public static function getScriptByLang(lang:String):String
+    {
+		var scriptID:Object = SCRIPT_ID_BY_LANG[lang];
+        if (scriptID == null)
+		    return "";
+
+		return SCRIPTS[int(scriptID)].toLowerCase();
+	}
+
+	/**
+     *  @private
+     *  Given a language and a script used for writing it,
+     *  returns the most prominent region where that combination is used.
+     *
+     *  Examples:
+     */
+	public static function getDefaultRegionForLangAndScript(
+                                lang:String, script:String):String
+    {
+		var langObj:Object = DEFAULT_REGION_BY_LANG_AND_SCRIPT[lang];
+		var scriptID:Object = SCRIPT_BY_ID[script];
+		if (langObj == null || scriptID == null)
+            return "";
+
+		return langObj[int(scriptID)] || "";
+	}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4460
Author:   gosmith@adobe.com
Date:     2009-01-09T01:53:33.590972Z

Log Message:
-----------
Renamed UIComponentAccImpl to UIComponentAccProps because it extends AccessibilityProperties, not AccessibilityImplementation.

Added comments with the identifier for each magic role constant, so that it is easier to understand what roles our components are using.

Moved two static methods from UIComponentAccProperties to AccImpl because they make more sense there.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: None (no functional changes)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LinkButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/RadioButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/PanelAccImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as" copyfrom-rev="4437" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/CheckBoxAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/CheckBoxAccImpl.as
@@ -113,7 +113,7 @@
 	{
 		super(master);

-		role = 0x2C;
+		role = 0x2C; // ROLE_SYSTEM_CHECKBUTTON
 	}

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 8679
Author:   jimurphy@adobe.com
Date:     2009-07-20T13:23:31.007823Z

Log Message:
-----------
These are Asdoc edit from 3.x rev 8623.  I somehow missed committing these when they were supposed to be committed during my previous merge.

bug: no
qa: no
doc: no
checkintests: pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/CallResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/XMLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/IResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Producer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as
+++ frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as
@@ -83,7 +83,7 @@
     //--------------------------------------------------------------------------

     /**
-     *  Constructs a MultiTopicConsumer.
+     *  Constructor.
      *
      *
      *  @example


added animation for opening browser

added animation for opening browser

--- src/AIR/ChildBrowser/src/blackberry/polarmobile/childbrowser/ChildBrowser.as
+++ src/AIR/ChildBrowser/src/blackberry/polarmobile/childbrowser/ChildBrowser.as
@@ -11,6 +11,10 @@
     import flash.events.MouseEvent;
     import flash.display.Sprite;
     import flash.events.StageOrientationEvent;
+    import flash.display.Bitmap;
+    import flash.utils.setTimeout;
+
+    import caurina.transitions.Tweener;

     // qnx
     import qnx.media.QNXStageWebView;
@@ -27,6 +31,7 @@
         private var closeButton:IconButton;
         private var refreshButton:IconButton;
         private var bgshape:Sprite;
+        private var loading_bg_shape:Sprite;
         private var browserHeight;
         private var isVisible:Boolean;

@@ -35,6 +40,8 @@
         public static var Close:Class;
         [Embed(source="assets/refresh.png")]
         public static var Refresh:Class;
+        [Embed(source="assets/ajax-spinner-black-bg.gif")]
+        public static var Spinner:Class;

         public function ChildBrowser()
         {
@@ -47,12 +54,20 @@
             return new Array ("blackberry.polarmobile.childbrowser");
         }

-        private function initBG()
+        private function initBG(callback)
         {
             bgshape = new Sprite();
             bgshape.graphics.beginFill(0x323232);
             bgshape.graphics.drawRect(0,0,webView.stage.stageWidth, webView.stage.stageHeight);
+            bgshape.y = webView.stage.stageHeight
             webView.stage.addChildAt(bgshape, 0);
+
+            Tweener.addTween(bgshape, {
+              y: 0,
+              time: 1,
+              transition: 'easeOutExpo',
+              onComplete: callback
+            });
         }

         public function clearCookies()
@@ -73,39 +88,45 @@

         public function loadURL(url:String)
         {
+            webView.zOrder = -1;
+            var self = this
             browserHeight = webView.stage.stageHeight - 50;
-            this.initBG();

             //only ever create one web view
-            if (childWebView == null)
-            {
-                childWebView = new QNXStageWebView("ChildBrowser");
-                childWebView.stage = webView.stage;
-                childWebView.viewPort = new Rectangle(0,50,webView.stage.stageWidth,browserHeight);
+            function createBrowser(){
+              if (childWebView == null)
+              {
+                  childWebView = new QNXStageWebView("ChildBrowser");
+                  childWebView.stage = webView.stage;
+                  childWebView.viewPort = new Rectangle(0,50,webView.stage.stageWidth,browserHeight);
+              }
+
+              //if its not visible.. i want to see it
+              if (!self.getVisible())
+              {
+                  self.setVisible(true)
+              }
+
+              //load this url
+              childWebView.loadURL(url);
+
+              //build buttons
+              self.initUI();
+
+              // events
+              webView.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, onOrientationChange);
             }

-            //if its not visible.. i want to see it
-            if (!this.getVisible())
-            {
-                this.setVisible(true)
-            }
-
-          //load this url
-          childWebView.loadURL(url);
-
-          //build buttons
-          this.initUI();
-
-          // events
-          webView.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, onOrientationChange);
-
+            this.initBG(createBrowser);
         }

         private function onOrientationChange(event:StageOrientationEvent)
         {
+            var self = this
             this.removeUI();
-            this.initBG();
-            this.initUI();
+            this.initBG(function(){
+              self.initUI()
+            });
             childWebView.viewPort = new Rectangle(0,50,webView.stage.stageWidth,browserHeight);
         }

@@ -209,6 +230,26 @@
           }
         }

+        private function addLoadingScreen()
+        {
+          childWebView.zOrder = -1;
+
+          loading_bg_shape = new Sprite();
+          //dark gray for now
+          loading_bg_shape.graphics.beginFill(0x323232);
+          //semi transparent
+          loading_bg_shape.alpha = 0.5;
+          loading_bg_shape.graphics.drawRect(0,0,webView.stage.stageWidth, webView.stage.stageHeight);
+          addChild(loading_bg_shape);
+
+          var loadingSpinner:Bitmap = new Spinner();
+          loadingSpinner.x = webView.stage.stageWidth / 2;
+          loadingSpinner.y = webView.stage.stageHeight / 2;
+
+          addChild(loadingSpinner);
+
+        }
+
         // our own addChild implementation
         // maps back to stage of WebWorkAppTemplate.as
         private function addChild(obj)


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package flex.layout
+package mx.layout
 {

 import flash.events.Event;
@@ -17,8 +17,8 @@
 import flash.geom.Point;
 import flash.ui.Keyboard;

-import flex.core.GroupBase;
-import flex.intf.ILayoutItem;
+import mx.components.baseClasses.GroupBase;
+import mx.layout.ILayoutItem;
 import flash.events.EventDispatcher;

@@ -301,8 +301,8 @@
      *  @see target
      *  @see flash.display.DisplayObject#scrollRect
      *  @see updateDisplayList
-     *  @see flex.core.GroupBase#contentWidth
-     *  @see flex.core.GroupBase#contentHeight
+     *  @see mx.components.GroupBase#contentWidth
+     *  @see mx.components.GroupBase#contentHeight
      */
     protected function updateScrollRect(w:Number, h:Number):void
     {


added effectDuration variable

added effectDuration variable

Change-Id: Ib866519d20c5ebb0f024ec44901cc17609f40c41

--- WeaveUISpark/src/com/adobe/devnet/managers/PodLayoutManager.as
+++ WeaveUISpark/src/com/adobe/devnet/managers/PodLayoutManager.as
@@ -34,6 +34,8 @@

 public class PodLayoutManager extends EventDispatcher
 {
+	public var effectDuration:int = 1000; // added for Weave
+
 	public var id:String;
 	public var items:Array = new Array();					// Stores the pods which are not minimized.
 	public var minimizedItems:Array = new Array();			// Stores the minimized pods.
@@ -154,7 +156,7 @@
 	{
 		var pod:Pod = Pod(e.currentTarget);
 		maximizeParallel = new Parallel();
-		maximizeParallel.duration = 1000;
+		maximizeParallel.duration = effectDuration;
 		addResizeAndMoveToParallel(pod, maximizeParallel, availablePodWidth, availableMaximizedPodHeight, 0, 0);
 		maximizeParallel.play();

@@ -299,7 +301,7 @@
 				parallel.pause();

 			parallel = new Parallel();
-			parallel.duration = 1000;
+			parallel.duration = effectDuration;

 			var a:Array = new Array(); // Used to re-order the items array.
 			a[dropIndex] = currentDragPod;
@@ -376,7 +378,7 @@
 		if (tween)
 		{
 			parallel = new Parallel();
-			parallel.duration = 1000;
+			parallel.duration = effectDuration;
 		}

 		// Layout the pods.


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollThumb.as
+++ frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollThumb.as
@@ -27,6 +27,11 @@
  *  @see mx.controls.scrollClasses.ScrollBar
  *  @see mx.controls.HScrollBar
  *  @see mx.controls.VScrollBar
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ScrollThumb extends Button
 {
@@ -40,6 +45,11 @@

 	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function ScrollThumb()
 	{


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 17401
Author:   dthakkar@adobe.com
Date:     2010-08-20T03:21:57.711520Z

Log Message:
-----------
Flex integration bug fixes

QE notes: No
Doc notes: No
Bugs: SDK-27420, SDK-26936, SDK-27452
Reviewer: Craig , Masa
Tests run: Checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/GlobalizationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/CollatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>

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

--- frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as
+++ frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as
@@ -198,7 +198,7 @@
         if (g11nWorkingInstance)
             return g11nWorkingInstance.actualLocaleIDName;

-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
@@ -307,7 +307,7 @@
         if (g11nWorkingInstance)
             return g11nWorkingInstance.getDateStyle();

-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
@@ -319,6 +319,8 @@

     public function set dateStyle(value:String):void
     {
+        if(dateStyleOverride != null && dateStyleOverride == value)
+            return;
         dateStyleOverride = value;

         if (g11nWorkingInstance)
@@ -385,7 +387,7 @@
         if (g11nWorkingInstance)
             return g11nWorkingInstance.getDateTimePattern();

-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
@@ -397,6 +399,8 @@

     public function set dateTimePattern(value:String):void
     {
+        if(dateTimePatternOverride != null && dateTimePatternOverride == value)
+            return;
         dateTimePatternOverride = value;

         if(g11nWorkingInstance)
@@ -469,7 +473,7 @@
         if (g11nWorkingInstance)
             return g11nWorkingInstance.getTimeStyle();

-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
@@ -481,6 +485,8 @@

     public function set timeStyle(value:String):void
     {
+        if(timeStyleOverride != null && timeStyleOverride == value)
+            return;
         timeStyleOverride = value;

         if (g11nWorkingInstance)
@@ -553,7 +559,7 @@
      */
     override mx_internal function createWorkingInstance():void
     {
-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
@@ -643,7 +649,7 @@
                 g11nWorkingInstance.format(dateTime);
         }

-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
@@ -707,7 +713,7 @@
         if (g11nWorkingInstance)
             return g11nWorkingInstance.getMonthNames(nameStyle, context);

-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
@@ -770,7 +776,7 @@
         if (g11nWorkingInstance)
             return g11nWorkingInstance.getWeekdayNames(nameStyle, context);

-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;
@@ -804,7 +810,7 @@
         if (g11nWorkingInstance)
             return g11nWorkingInstance.getFirstWeekday();

-        if (!localeStyle)
+        if ((localeStyle === undefined) || (localeStyle === null))
         {
             fallbackLastOperationStatus
                                 = LastOperationStatus.LOCALE_UNDEFINED_ERROR;


performance improvements in linkableObjectIsBusy()

--- WeaveJS/src/weavejs/core/SessionManager.as
+++ WeaveJS/src/weavejs/core/SessionManager.as
@@ -745,8 +745,8 @@
 		public function linkableObjectIsBusy(linkableObject:ILinkableObject):Boolean
 		{
 			// get the ILinkableObject associated with the the ICallbackCollection
-			if (linkableObject is ICallbackCollection)
-				linkableObject = getLinkableObjectFromCallbackCollection(linkableObject as ICallbackCollection);
+//			if (linkableObject is ICallbackCollection)
+//				linkableObject = getLinkableObjectFromCallbackCollection(linkableObject as ICallbackCollection);

 			if (!linkableObject)
 				return false;
@@ -758,11 +758,12 @@

 			outerLoop: for (var i:int = 0; i < array_busyTraversal.length; i++)
 			{
-				linkableObject = array_busyTraversal[i] as ILinkableObject;
-
-				if (linkableObject is ILinkableObjectWithBusyStatus)
-				{
-					if ((linkableObject as ILinkableObjectWithBusyStatus).isBusy())
+				linkableObject = array_busyTraversal[i];
+
+				var ilowbs:ILinkableObjectWithBusyStatus = linkableObject as ILinkableObjectWithBusyStatus;
+				if (ilowbs)
+				{
+					if (ilowbs.isBusy())
 					{
 						busy = true;
 						break;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4106
Author:   rfrishbe@adobe.com
Date:     2008-11-14T01:56:47.949068Z

Log Message:
-----------
Mostly rename changes.  IVisualItem -> IVisualElement.  IVisualContainer -> IVisualElementContainer.  Also changed the APIs so that it's addElement, removeElement, etc.. instead of addItem, removeItem, etc...  Moreover, all of these APIs have been added to IVisualElementContainer (not just the read-only ones).  Now there's a common interface for all containers (even Halo's Container class implements it).  There's no more need to do:

if (x is Group || x is FxContainer)

Just use the IVisualElementContainer interface.

Some classes, like FxScroller (and perhaps DataGroup/FxDataContainer), will only implement the "getter" part of the API.  For now, if you call the mutation methods, we will throw an exception.  Perhaps later we'll add a separate interface for the read-only portion and the mutator interface will extend that one.

There might be a few more places in the code that need to be updated to use the new names for the methods.  I know Mustella needs cleaning up so it doesn't use getItem and uses getElement instead.  I've left the old APIs in there exactly for this purpose, so we can gradually move over to the new names (esp. QA).

At some point soon, we will remove the old methods as well as type them more strictly to only accept IVisualElements, for example addElement(element:IVisualElement).  Part of this work is dependent on updating the Flash Component Kit so that it implements IVisualElement (and perhaps IVisualElementContainer for containers).

Ran checkintests and all gumbo mustella tests.

QE Notes: Please update your tests to use addElement, removeElement, etc... along with the new IVisualElementContainer interface.  The old APIs (addItem, removeItem, etc...) will be removed soon.
Doc Notes: None
Bugs: -
Reviewer: Hans (he patiently sat through all these files...)

Modified Paths:
--------------
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/IVisualContainer.as</path>
<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/effects/effectClasses/RemoveActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IUIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutItem.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/core/Container.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualItem.as" copyfrom-rev="4083" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/IVisualContainer.as" copyfrom-rev="4083" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElementContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualItem.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/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
@@ -30,6 +30,7 @@
 import mx.layout.LayoutItemFactory;
 import mx.managers.LayoutManager;
 import mx.styles.IStyleClient;
+import mx.core.IVisualElementContainer;

 /**
  * The FxAnimateInstance class implements the instance class for the
@@ -573,8 +574,8 @@
                 var parentEnd:* = propertyChanges.end["parent"];;
                 if (parentStart && !parentEnd)
                 {
-                    if (parentStart is Group)
-                        parentStart.addItem(target);
+                    if (parentStart is IVisualElementContainer)
+                        IVisualElementContainer(parentStart).addElement(target);
                     else
                         parentStart.addChild(target);
                     needsRemoval = true;
@@ -604,8 +605,8 @@
                 var parentEnd:* = propertyChanges.end["parent"];;
                 if (parentStart && !parentEnd)
                 {
-                    if (parentStart is Group)
-                        parentStart.removeItem(target);
+                    if (parentStart is IVisualElementContainer)
+                        IVisualElementContainer(parentStart).removeElement(target);
                     else
                         parentStart.removeChild(target);
                 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12069
Author:   dloverin@adobe.com
Date:     2009-11-20T23:24:46.331262Z

Log Message:
-----------
Split airspark project off airframework.

QE notes: None.
Doc notes: None.
Bugs: SDK-24109
Reviewer: Paul, Jim
Tests run: checkintests, tests/apollo/spark/components/Window
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/windowClasses/TitleBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_close_down.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_close_down.png</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/AIRFrameworkClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_restore_over.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_min_over.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_max_over.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_min_over.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/src/AIRSparkClasses.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/airframework/src/spark</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_max_over.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/Window.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_min_dis.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_max_dis.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_restore_up.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_min_up.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_max_up.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_min_up.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/accessibility/WindowedApplicationAccImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_max_up.png</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/core</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/accessibility/WindowAccImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/gripper_up.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_close_over.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_close_over.png</path>
<path kind="dir" copyfrom-path="/flex/sdk/trunk/frameworks/projects/airframework/src/spark" copyfrom-rev="11985" action="A">/flex/sdk/trunk/frameworks/projects/airspark/src/spark</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/airframework/spark-air-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_close_up.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_restore_down.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_min_down.png</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/airframework/mx-air-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_max_down.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_close_up.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_min_down.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/mac_max_down.png</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/airframework/mx-air-manifest.xml" copyfrom-rev="11985" action="A">/flex/sdk/trunk/frameworks/projects/airframework/manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_min_dis.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/assets/win_max_dis.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/core/Version.as</path>

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

--- frameworks/projects/airspark/src/spark/components/WindowedApplication.as
+++ frameworks/projects/airspark/src/spark/components/WindowedApplication.as
@@ -425,7 +425,7 @@
  */
 public class WindowedApplication extends Application implements IWindow
 {
-    include "../../mx/core/Version.as";
+    include "../core/Version.as";

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.skins.halo
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 88
Author:   open-source-svn-admin@adobe.com
Date:     2008-01-03T22:47:56.499469Z

Log Message:
-----------
Perforce Change 191925 by proberts@proberts-laptop-flex on 2008/01/03 16:47:12 Severity: ignore Details: doc additions/clean up for FlexNativeMenu. Also FLEXDOCS-320 (update documentation for FlexNativeMenuEvent.MENU_SHOW to explain that the index, label, and item properties are null) Affected files ...

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/air/air_version.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/NoChannelAvailableError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/DirectHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessagingError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/InvalidChannelError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Channel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXContext.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/NetConnectionChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.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/rpc/src/mx/messaging/channels/StreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/Grammar.jj</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/InvalidDestinationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXResult.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXEncoder.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/rpc/src/mx/messaging/AbstractMessageStore.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as
@@ -1,21 +1,14 @@
-/*************************************************************************
- *
- * ADOBE CONFIDENTIAL
- * __________________
- *
- *  [2002] - [2007] Adobe Systems Incorporated
- *  All Rights Reserved.
- *
- * NOTICE:  All information contained herein is, and remains
- * the property of Adobe Systems Incorporated and its suppliers,
- * if any.  The intellectual and technical concepts contained
- * herein are proprietary to Adobe Systems Incorporated
- * and its suppliers and may be covered by U.S. and Foreign Patents,
- * patents in process, and are protected by trade secret or copyright law.
- * Dissemination of this information or reproduction of this material
- * is strictly forbidden unless prior written permission is obtained
- * from Adobe Systems Incorporated.
- */
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.channels
 {

@@ -391,4 +384,4 @@
     	}
 		return message;
     }
-}+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17064
Author:   hmuller@adobe.com
Date:     2010-07-26T21:46:49.925029Z

Log Message:
-----------
Added Grid,DataGrid/ensureIndexVisible(), Grid/isCellVisible().

GridLayout/initializeItemRenderer() now initializes the renderer's showsCaret and selected properties.

QE notes: changes apply to Spark DataGrid only
Doc notes:
Bugs: sdk-27071
Reviewer: Carol
Tests run: none
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/GridContainerBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -883,6 +883,18 @@
             if (dataItem == null)
                 dataItem = getDataProviderItem(rowIndex);
             gridRenderer.label = gridColumn.itemToLabel(dataItem);
+
+            if (isRowSelectionMode())
+            {
+                gridRenderer.selected = grid.selectionContainsIndex(rowIndex);
+                gridRenderer.showsCaret = grid.caretRowIndex == rowIndex;
+            }
+            else if (isCellSelectionMode())
+            {
+                gridRenderer.selected = grid.selectionContainsCell(rowIndex, columnIndex);
+                gridRenderer.showsCaret = (grid.caretRowIndex == rowIndex) && (grid.caretColumnIndex == columnIndex);
+            }
+
             gridRenderer.data = dataItem;

             if (grid.gridOwner)
@@ -1964,9 +1976,25 @@
         // TBD(hmuller): create an item renderer
         return null;
     }
-
-    // TBD: isCellVisible(rowIndex, columnIndex)
-    // TBD: getCellValue(rowIndex, columnIndex)? getCellLabel()?
+
+    /**
+     *  True if the specified cell is at least partially visible.  If columnIndex == -1 then
+     *  true is returned if the specified row is at least partially visible.
+     *
+     *  @param rowIndex The 0-based row index of the item renderer's cell.
+     *  @param columnIndex The 0-based column index of the item renderer's cell.
+     *  @return True if the specified cell (or row if columnIndex == -1) is at least partially visible
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function isCellVisible(rowIndex:int, columnIndex:int):Boolean
+    {
+        return (visibleRowIndices.indexOf(rowIndex) != -1) &&
+            ((columnIndex == -1) || (visibleColumnIndices.indexOf(columnIndex) != -1));
+    }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 18280
Author:   klin@adobe.com
Date:     2010-10-21T22:34:29.253037Z

Log Message:
-----------
DataGrid Tier 2 PARB Change. Add support for rowIndex==-1 in ensureCellIsVisible() and isCellVisible(). Specifying only a columnIndex will scroll only horizontally now. If both columnIndex and rowIndex are -1, nothing will happen.

QE notes: No
Doc notes: No
Bugs: No
Reviewer: Hans
Tests run: cyclone server
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -2360,8 +2360,10 @@
     }

     /**
-     *  True if the specified cell is at least partially visible.  If columnIndex == -1 then
-     *  true is returned if the specified row is at least partially visible.
+     *  True if the specified cell is at least partially visible. If columnIndex == -1 then
+     *  true is returned if the specified row is at least partially visible. If
+     *  rowIndex == -1, then true is returned if the specified column is at least partially
+     *  visible. If both columnIndex and rowIndex are -1, then false is returned.
      *
      *  @param rowIndex The 0-based row index of the item renderer's cell.
      *  @param columnIndex The 0-based column index of the item renderer's cell.
@@ -2374,8 +2376,11 @@
      */
     public function isCellVisible(rowIndex:int, columnIndex:int):Boolean
     {
-        return (visibleRowIndices.indexOf(rowIndex) != -1) &&
-            ((columnIndex == -1) || (visibleColumnIndices.indexOf(columnIndex) != -1));
+        if (rowIndex == -1 && columnIndex == -1)
+            return false;
+
+        return ((rowIndex == -1) || (visibleRowIndices.indexOf(rowIndex) != -1)) &&
+               ((columnIndex == -1) || (visibleColumnIndices.indexOf(columnIndex) != -1));
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 4363
Author:   dloverin@adobe.com
Date:     2008-12-19T15:44:31.082489Z

Log Message:
-----------
Remove FxApplication properties: application, historyManagementEnabled, resetHistory.

QE Notes: None
Doc Notes: None
Bugs: SDK-16418
Reviewer: Alex
tests: checkintests, Application, controls, containers/Accordion, containers/ApplicationControlBar, containers/ControlBar

FxApplication.as
    Remove application, historyManagementEnabled, resetHistory properties.
UIComponentAccImpl.as
FlexPrintJob.as
BrowserManagerImpl.as
HistoryManagerImpl.as
IBrowserManager.as
    Recode references to historyManagementEnabled and resetHistory.
ControlBar.as
    Fix SDK-16418, ApplicationControlBar does not work in Gumbo in 2009 namespace

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/printing/FlexPrintJob.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IBrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ControlBar.as</path>

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

--- frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as
+++ frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as
@@ -22,10 +22,10 @@
 import mx.controls.FormItemLabel;
 import mx.controls.Label;
 import mx.controls.scrollClasses.ScrollBar;
-import mx.core.Application;
 import mx.core.Container;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
+import mx.managers.SystemManager;

 use namespace mx_internal;

@@ -116,7 +116,7 @@
         // continue looking up the parent chain
         // until root (or application) or FormItem is found.
         while (par && !(par is FormItem) &&
-               !(par is Application) && par != component.root)
+               !(par is SystemManager) && par != component.root)
         {
             par = par.parent;
         }