Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/mx/src/mx/controls/treeClasses/HierarchicalViewCursor.as
+++ frameworks/projects/mx/src/mx/controls/treeClasses/HierarchicalViewCursor.as
@@ -0,0 +1,956 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls.treeClasses
+{
+
+import flash.events.EventDispatcher;
+import flash.utils.Dictionary;
+import mx.collections.CursorBookmark;
+import mx.collections.ICollectionView;
+import mx.collections.IList;
+import mx.collections.IViewCursor;
+import mx.events.CollectionEvent;
+import mx.events.CollectionEventKind;
+import mx.utils.UIDUtil;
+
+[ExcludeClass]
+
+/**
+ *  @private
+ *  This class provides a heirarchical view (a tree-like) view of a standard collection.
+ *  The collection that this Cursor walks across need not be heirarchical but may be flat.
+ *  This class delegates to the ITreeDataDescriptor for information regarding the tree
+ *  structure of the data it walks across.
+ *
+ *  @see HierarchicalCollectionView
+ */
+public class HierarchicalViewCursor extends EventDispatcher
+									implements IViewCursor
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+	 *  Constructor.
+     */
+    public function HierarchicalViewCursor(
+							collection:HierarchicalCollectionView,
+							model:ICollectionView,
+							dataDescriptor:ITreeDataDescriptor,
+							itemToUID:Function,
+							openNodes:Object)
+    {
+		super();
+
+		//fields
+        this.collection = collection;
+		this.model = model;
+        this.dataDescriptor = dataDescriptor;
+		this.itemToUID = itemToUID;
+		this.openNodes = openNodes;
+
+
+        //events
+        collection.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler, false, 0, true);
+
+		//init
+		modelCursor = model.createCursor();
+
+		//check to see if the model has more than one top level items
+		if (model.length > 1)
+			more = true;
+		else
+			more = false;
+
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var dataDescriptor:ITreeDataDescriptor;
+
+    /**
+     *  @private
+	 *  Its effective offset into the "array".
+     */
+    private var currentIndex:int = 0;
+
+    /**
+     *  @private
+	 *  The current index into the childNodes array
+     */
+    private var currentChildIndex:int = 0;
+
+    /**
+     *  @private
+     *  The depth of the current node.
+     */
+    private var _currentDepth:int = 1;
+
+    /**
+     *  @private
+	 *  The current set of childNodes we are walking.
+     */
+	private var childNodes:Object = [];
+
+	/**
+	 *  @private
+	 *  The current set of parentNodes that we have walked from
+	 */
+	private var parentNodes:Array = [];
+
+    /**
+     *  @private
+	 *  A stack of the currentChildIndex in all parents of the currentNode.
+     */
+	private var childIndexStack:Array = [];
+
+    /**
+     *  @private
+     *  The collection that stores the user data
+     */
+    private var model:ICollectionView;
+
+    /**
+     *  @private
+     *  The collection wrapper of the model
+     */
+	private var collection:HierarchicalCollectionView;
+
+    /**
+     *  @private
+     */
+	private var openNodes:Object;
+
+	/**
+	 *  @private
+	 *  Flag indicating model has more data
+	 */
+	private var more:Boolean;
+
+	/**
+	 *  @private
+	 *  Cursor from the model
+	 */
+	private var modelCursor:IViewCursor;
+
+	/**
+	 *  @private
+	 */
+	private var itemToUID:Function;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+	//----------------------------------
+	// index
+ 	//----------------------------------
+	/**
+	 * @private
+	 */
+	public function get index():int
+	{
+		return currentIndex;
+	}
+
+    //----------------------------------
+	//  bookmark
+    //----------------------------------
+    /**
+     *  @private
+     */
+    public function get bookmark():CursorBookmark
+    {
+        return new CursorBookmark(currentIndex.toString());
+    }
+
+    //----------------------------------
+	//  current
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    public function get current():Object
+    {
+        try
+        {
+        	if (childIndexStack.length == 0)
+        	{
+        		return modelCursor.current;
+        	}
+        	else
+        	{
+        		return childNodes[currentChildIndex];
+        	}
+ 		}
+        catch(e:RangeError)
+		{
+		}
+		return null;
+    }
+
+
+	//---------------------------------
+	// currentDepth
+	//---------------------------------
+	/**
+	 *  @private
+	 */
+	public function get currentDepth():int
+	{
+		return _currentDepth;
+	}
+
+
+	//----------------------------------
+	//  beforeFirst
+	//----------------------------------
+    public function get beforeFirst():Boolean
+    {
+    	return (currentIndex <= collection.length && current == null);
+    }
+
+	//----------------------------------
+	//  afterLast
+	//----------------------------------
+    public function get afterLast():Boolean
+    {
+        return (currentIndex >= collection.length && current == null);
+    }
+
+	//----------------------------------
+	//  view
+	//----------------------------------
+    public function get view():ICollectionView
+    {
+        return model;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Determines if a node is visible on the screen
+     */
+    private function isItemVisible(node:Object):Boolean
+    {
+    	var parentNode:Object = collection.getParentItem(node);
+        while (parentNode != null)
+        {
+        	if (openNodes[itemToUID(parentNode)] == null)
+                return false;
+
+        	parentNode = collection.getParentItem(parentNode);
+        }
+	    return true;
+    }
+
+    /**
+     *  @private
+     *  Creates a stack of parent nodes by walking upwards
+     */
+    private function getParentStack(node:Object):Array
+    {
+        var nodeParents:Array = [];
+
+		// Make a list of parents of the node.
+        var obj:Object = collection.getParentItem(node);
+        while (obj != null)
+        {
+            nodeParents.unshift(obj);
+            obj = collection.getParentItem(obj);
+        }
+		return nodeParents;
+    }
+
+    /**
+     *  @private
+	 *  When something happens to the tree, find out if it happened
+	 *  to children that occur before the current child in the tree walk.
+     */
+    private function isNodeBefore(node:Object, currentNode:Object):Boolean
+    {
+		if (currentNode == null)
+			return false;
+
+		var n:int;
+		var i:int;
+		var childNodes:ICollectionView;
+		var sameParent:Object;
+
+        var nodeParents:Array = getParentStack(node);
+        var curParents:Array = getParentStack(currentNode);
+
+        // Starting from the root, compare parents
+		// (assumes the root must be the same).
+        while (nodeParents.length && curParents.length)
+        {
+            var nodeParent:Object = nodeParents.shift();
+            var curParent:Object = curParents.shift();
+
+			// If not the same parentm then which ever one is first
+			// in the child list is before the other.
+            if (nodeParent != curParent)
+            {
+                // The last parent must be common.
+                sameParent = collection.getParentItem(nodeParent);
+
+				// Get the child list.
+				if (sameParent != null &&
+					dataDescriptor.isBranch(sameParent, model) &&
+					dataDescriptor.hasChildren(sameParent, model))
+            	{
+					childNodes = dataDescriptor.getChildren(sameParent, model);
+            	}
+    			else
+    			{
+    				childNodes = model;
+    			}
+				// Walk it until you hit one or the other.
+                n = childNodes.length;
+                {
+                    var child:Object = childNodes[i];
+
+					if (child == curParent)
+                        return false;
+
+                    if (child == nodeParent)
+                        return true;
+                }
+            }
+        }
+
+		if (nodeParents.length)
+			node = nodeParents.shift();
+		if (curParents.length)
+			currentNode = curParents.shift();
+
+        // If we get here, they have the same parentage or one or both
+		// had a root parent. Who's first?
+		childNodes = model;
+        n = childNodes.length;
+		for (i = 0; i < n; i++)
+        {
+            child = childNodes[i];
+
+            if (child == currentNode)
+                return false;
+
+            if (child == node)
+                return true;
+        }
+        return false;
+    }
+
+    /**
+     *  @private
+     */
+    public function findAny(values:Object):Boolean
+    {
+        seek(CursorBookmark.FIRST);
+
+		var done:Boolean = false;
+        while (!done)
+        {
+            var o:Object = dataDescriptor.getData(current);
+
+			var matches:Boolean = true;
+            for (var p:String in values)
+            {
+                if (o[p] != values[p])
+                {
+                    matches = false;
+                    break;
+                }
+            }
+
+            if (matches)
+                return true;
+
+            done = moveNext();
+        }
+
+        return false;
+    }
+
+    /**
+     *  @private
+     */
+    public function findFirst(values:Object):Boolean
+    {
+        return findAny(values);
+    }
+
+    /**
+     *  @private
+     */
+    public function findLast(values:Object):Boolean
+    {
+        seek(CursorBookmark.LAST);
+
+		var done:Boolean = false;
+        while (!done)
+        {
+            var o:Object = current;
+
+			var matches:Boolean = true;
+            for (var p:String in values)
+            {
+                if (o[p] != values[p])
+                {
+                    matches = false;
+                    break;
+                }
+            }
+
+			if (matches)
+                return true;
+
+            done = movePrevious();
+        }
+
+        return false;
+    }
+
+
+    /**
+     *  @private
+     *  Move one node forward from current.
+     *  This may include moving up or down one or more levels.
+     */
+    public function moveNext():Boolean
+    {
+    	var currentNode:Object = current;
+        //if there is no currentNode then we cant move forward and must be off the ends
+    	if (currentNode == null)
+    		return false;
+
+		var uid:String = itemToUID(currentNode);
+		if (!collection.parentMap.hasOwnProperty(uid))
+			collection.parentMap[uid] = parentNodes[parentNodes.length - 1];
+
+		// If current node is a branch and is open, the first child is our next item so return it
+		if (openNodes[uid] &&
+			dataDescriptor.isBranch(currentNode, model) &&
+			dataDescriptor.hasChildren(currentNode, model))
+	    {
+	        	var previousChildNodes:Object = childNodes;
+	            childNodes = dataDescriptor.getChildren(currentNode, model);
+				if (childNodes.length > 0)
+				{
+					childIndexStack.push(currentChildIndex);
+					parentNodes.push(currentNode);
+					currentChildIndex = 0;
+					currentNode = childNodes[0];
+					currentIndex++;
+					_currentDepth++;
+					return true;
+				}
+				else
+					childNodes = previousChildNodes;
+	    }
+
+        // Otherwise until we find the next child (could be on any level)
+        while (true)
+        {
+            // If we hit the end of this list, pop up a level.
+            if (childNodes != null &&
+            	childNodes.length > 0 &&
+            	currentChildIndex >= Math.max(childNodes.length - 1, 0))
+            {
+            	//check for the end of the tree here.
+                if (childIndexStack.length < 1 && !more)
+                {
+                	currentNode = null;
+                    currentIndex++;
+                    _currentDepth = 1;
+                    return false;
+                }
+                else
+                {
+                	//pop up to parent
+                	currentNode = parentNodes.pop();
+                	//get parents siblings
+                	var grandParent:Object = parentNodes[parentNodes.length-1];
+                	//we could probably assume that a non-null grandparent has descendants
+                	//but the analogy only goes so far...
+                	if (grandParent != null &&
+                		dataDescriptor.isBranch(grandParent, model) &&
+                		dataDescriptor.hasChildren(grandParent, model))
+                	{
+	                	childNodes = dataDescriptor.getChildren(grandParent, model);
+               		}
+               		else
+               		{
+               			childNodes = [];
+               		}
+                	//get new current nodes index
+                	currentChildIndex = childIndexStack.pop();
+                	//pop the level up one
+                	_currentDepth--;
+                }
+            }
+            else
+            {
+            	//if no childnodes then we're probably at the top level
+            	if (childIndexStack.length == 0)
+				{
+					//check for more top level siblings
+					//and if we're here the depth should be 1
+					_currentDepth = 1;
+					more = modelCursor.moveNext();
+					if (more)
+					{
+						currentNode = modelCursor.current;
+						break;
+					}
+					else
+					{
+						//at the end of the tree
+						_currentDepth = 1;
+	                    currentIndex++;  //this should push us to afterLast
+	                    currentNode = null;
+	                    return false;
+					}
+				}
+				else
+				{
+					//get the next child node
+					try
+					{
+						currentNode = childNodes[++currentChildIndex];
+						break;
+					}
+					catch(e:RangeError)
+					{
+						//lets try to recover
+						return false;
+					}
+    			}
+            }
+        }
+        currentIndex++;
+        return true;
+    }
+
+    /**
+     *  @private
+	 *  Performs a backward tree walk.
+     */
+    public function movePrevious():Boolean
+    {
+    	var currentNode:Object = current;
+    	// If there are no items, there's no current node, so return false.
+        if (currentNode == null)
+			return false;
+
+    	//if not at top level
+		if (parentNodes && parentNodes.length > 0)
+		{
+			if (currentChildIndex == 0)
+        	{
+        		//at the first node in this branch so move to parent
+        		currentNode = parentNodes.pop();
+        		currentChildIndex = childIndexStack.pop();
+        		var grandParent:Object = parentNodes[parentNodes.length-1];
+                //we could probably assume that a non-null grandparent has descendants
+                //but the analogy only goes so far...
+                if (grandParent != null &&
+                	dataDescriptor.isBranch(grandParent, model) &&
+                	dataDescriptor.hasChildren(grandParent, model))
+                {
+        			childNodes = dataDescriptor.getChildren(grandParent, model);
+                }
+               	else
+                {
+                	//null is valid, but error prone so we'll make it empty
+                	childNodes = [];
+                }
+        		_currentDepth--;
+        		currentIndex--;
+        		return true;
+        	}
+        	else
+        	{
+        		// get previous child sibling
+        		try
+        		{
+        			currentNode = childNodes[--currentChildIndex];
+        		}
+        		catch(e:RangeError)
+        		{
+        			//lets try to recover
+					return false;
+        		}
+        	}
+		}
+		//handle top level siblings
+		else
+		{
+			more = modelCursor.movePrevious();
+			if (more)
+			{
+				//move back one node and then loop through children
+				currentNode = modelCursor.current;
+			}
+			//if past the begining of the tree return false
+			else
+			{
+				//currentIndex--;  //should be before first
+				currentIndex = -1;
+				currentNode = null;
+				return false;
+			}
+		}
+		while (true)
+        {
+            // If there are children, walk backwards on the children
+            // and consider youself after your children.
+			if (openNodes[itemToUID(currentNode)] &&
+				dataDescriptor.isBranch(currentNode, model) &&
+			    dataDescriptor.hasChildren(currentNode, model))
+            {
+				var previousChildNodes:Object = childNodes;
+            	childNodes = dataDescriptor.getChildren(currentNode, model);
+				if (childNodes.length > 0)
+				{
+            		childIndexStack.push(currentChildIndex);
+            		parentNodes.push(currentNode);
+            		currentChildIndex = childNodes.length - 1;
+            		currentNode = childNodes[currentChildIndex];
+           			_currentDepth++;
+				}
+				else
+				{
+					childNodes = previousChildNodes;
+					break;
+				}
+            }
+			else
+            {
+            	//No more open branches so we'll bail
+                break;
+            }
+        }
+        currentIndex--;
+        return true;
+    }
+
+    /**
+     *  @private
+     */
+    public function seek(bookmark:CursorBookmark, offset:int = 0,
+						 prefetch:int = 0):void
+    {
+    	var value:int;
+
+		if (bookmark == CursorBookmark.FIRST)
+        {
+            value = 0;
+        }
+        else if (bookmark == CursorBookmark.CURRENT)
+        {
+            value = currentIndex;
+        }
+        else if (bookmark == CursorBookmark.LAST)
+        {
+            value = collection.length - 1;
+        }
+        else
+        {
+            value = int(bookmark.value);
+        }
+
+        value = Math.max(Math.min(value + offset, collection.length), 0);
+        var dc:int = Math.abs(currentIndex - value);
+        var de:int = Math.abs(collection.length - value);
+		var movedown:Boolean = true;
+		// if we're closer to the current than the beginning
+        if (dc < value)
+        {
+            // if we're closer to the end than the current position
+            if (de < dc)
+            {
+                moveToLast();
+
+                if (de == 0)
+                {
+                	// if de = 0; we need to be "off the end"
+                    moveNext();
+                    value = 0;
+                }
+                else
+				{
+                    value = de - 1;
+				}
+                movedown = false;
+            }
+            else
+            {
+                movedown = currentIndex < value;
+                value = dc;
+                // if current is off the end, reset
+                if (currentIndex == collection.length)
+                {
+                    value--;
+                    moveToLast();
+                }
+            }
+        }
+        else // we're closer to the beginning than the current
+        {
+            // if we're closer to the end than the beginning
+            if (de < value)
+            {
+                moveToLast();
+                if (de == 0)
+                {
+                	// if de = 0; we need to be "off the end"
+                    moveNext();
+                    value = 0;
+                }
+                else
+				{
+                    value = de - 1;
+				}
+                movedown = false;
+            }
+            else
+            {
+	            moveToFirst();
+            }
+        }
+
+        if (movedown)
+        {
+            while (value && value > 0)
+            {
+                moveNext();
+                value--;
+            }
+        }
+        else
+        {
+            while (value && value > 0)
+            {
+                movePrevious();
+                value--;
+            }
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function moveToFirst():void
+    {
+		childNodes = [];
+		modelCursor.seek(CursorBookmark.FIRST, 0);
+		if (model.length > 1)
+			more = true;
+		else
+			more = false;
+        currentChildIndex = 0;
+        parentNodes = [];
+        childIndexStack = [];
+        currentIndex = 0;
+        _currentDepth = 1;
+    }
+
+    /**
+     *  @private
+     */
+    public function moveToLast():void
+    {
+		childNodes = [];
+		childIndexStack = [];
+		_currentDepth = 1;
+		parentNodes = [];
+		var emptyBranch:Boolean = false;
+		//first move to the end of the top level collection
+		modelCursor.seek(CursorBookmark.LAST, 0);
+		//if its a branch and open then get children for the last item
+		var currentNode:Object = modelCursor.current;
+		//if current node is open get its children
+		while (openNodes[itemToUID(currentNode)] &&
+			   dataDescriptor.isBranch(currentNode, model) &&
+			   dataDescriptor.hasChildren(currentNode, model))
+        {
+        	var previousChildNodes:Object = childNodes;
+        	childNodes = dataDescriptor.getChildren(currentNode, model);
+        	if (childNodes != null && childNodes.length > 0)
+        	{
+        		parentNodes.push(currentNode);
+        		childIndexStack.push(currentChildIndex);
+        		currentNode = childNodes[childNodes.length - 1];
+        		currentChildIndex = childNodes.length - 1;
+           		_currentDepth++;
+         	}
+         	else
+         	{
+				childNodes = previousChildNodes;
+				break;
+         	}
+        }
+        currentIndex = collection.length - 1;
+    }
+
+    /**
+     *  @private
+     */
+    public function insert(item:Object):void
+    {
+        //No impl
+    }
+
+    /**
+     *  @private
+     */
+    public function remove():Object
+    {
+        return null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    public function collectionChangeHandler(event:CollectionEvent):void
+    {
+		var i:int;
+		var n:int;
+        var node:Object;
+		var nodeParent:Object
+        var parent:Object;
+        var parentStack:Array;
+        var parentTable:Dictionary;
+		var isBefore:Boolean = false;
+
+
+		// get the parent of the current item
+        parentStack = getParentStack(current);
+		// hash it by parent to map to depth
+		parentTable = new Dictionary();
+		n = parentStack.length;
+		// don't insert the immediate parent
+		for (i = 0; i < n - 1; i++)
+		{
+			// 0 is null parent (the model)
+			parentTable[parentStack[i]] = i + 1;
+		}
+		// remember the current parent
+		parent = parentStack[parentStack.length - 1];
+
+		if (event.kind == CollectionEventKind.ADD)
+        {
+			n = event.items.length;
+            if (event.location <= currentIndex)
+            {
+				currentIndex += n;
+				isBefore = true;
+            }
+
+			for (i = 0; i < n; i++)
+			{
+        		node = event.items[i];
+				if (isBefore)
+				{
+					// if the added node is before the current
+					// and they share parent's then we have to
+					// adjust the currentChildIndex or
+					// the stack of child indexes.
+					nodeParent = collection.getParentItem(node);
+					if (nodeParent == parent)
+						currentChildIndex++;
+					else if (parentTable[nodeParent] != null)
+					{
+						childIndexStack[parentTable[nodeParent]]++;
+					}
+				}
+			}
+
+        }
+        else if (event.kind == CollectionEventKind.REMOVE)
+        {
+			n = event.items.length;
+            if (event.location <= currentIndex)
+            {
+				if (event.location + n >= currentIndex)
+				{
+					// the current node was removed
+					// the list classes expect that we
+					// leave the cursor on whatever falls
+					// into that slot
+					var newIndex:int = event.location;
+					moveToFirst();
+					seek(CursorBookmark.FIRST, newIndex);
+					for (i = 0; i < n; i++)
+					{
+        				node = event.items[i];
+						delete collection.parentMap[itemToUID(node)];
+					}
+					return;
+				}
+
+                currentIndex -= n;
+				isBefore = true;
+            }
+
+			for (i = 0; i < n; i++)
+			{
+        		node = event.items[i];
+				if (isBefore)
+				{
+					// if the removed node is before the current
+					// and they share parent's then we have to
+					// adjust the currentChildIndex or
+					// the stack of child indexes.
+					nodeParent = collection.getParentItem(node);
+					if (nodeParent == parent)
+						currentChildIndex--;
+					else if (parentTable[nodeParent] != null)
+					{
+						childIndexStack[parentTable[nodeParent]]--;
+					}
+				}
+				delete collection.parentMap[itemToUID(node)];
+			}
+
+        }
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/accessibility/SpinnerAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/SpinnerAccImpl.as
@@ -16,6 +16,7 @@
 import flash.events.Event;

 import mx.accessibility.AccImpl;
+import mx.accessibility.AccConst;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
@@ -40,27 +41,6 @@

     //--------------------------------------------------------------------------
     //
-    //  Class constants
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     */
-    private static const EVENT_OBJECT_VALUECHANGE:uint = 0x800E;
-
-    /**
-     *  @private
-     */
-    private static const EVENT_OBJECT_STATECHANGE:uint = 0x800a;
-
-    /**
-     *  @private
-     */
-    private static const ROLE_SYSTEM_PUSHBUTTON:uint = 0x2B;
-
-    //--------------------------------------------------------------------------
-    //
     //  Class methods
     //
     //--------------------------------------------------------------------------
@@ -119,7 +99,7 @@
     {
         super(master);

-        role = 0x34; //ROLE_SYSTEM_SPINBUTTON
+        role = AccConst.ROLE_SYSTEM_SPINBUTTON;
     }

     //--------------------------------------------------------------------------
@@ -155,7 +135,7 @@
      */
     override public function get_accRole(childID:uint):uint
     {
-        return childID == 0 ? role : ROLE_SYSTEM_PUSHBUTTON;
+        return childID == 0 ? role : AccConst.ROLE_SYSTEM_PUSHBUTTON;
     }

      /**
@@ -321,9 +301,9 @@
             case "change":
             {
                 Accessibility.sendEvent(master, 0,
-                                        EVENT_OBJECT_VALUECHANGE, true);
+                                        AccConst.EVENT_OBJECT_VALUECHANGE, true);
                 Accessibility.sendEvent(master, 0,
-                                        EVENT_OBJECT_STATECHANGE, true);
+                                        AccConst.EVENT_OBJECT_STATECHANGE, true);
                 break;
             }
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20405
Author:   smgilson@adobe.com
Date:     2011-02-22T19:50:20.544022Z

Log Message:
-----------
ASDoc edits for formatters

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.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@1284846 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as
+++ frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as
@@ -153,14 +153,14 @@
      *  Note that the actual locale that is used is specified by the
      *  actualLocaleIDName property.

      *
-     *
NOTE: When a fallback locale is used, the currency
+     *
NOTE: When a fallback locale is used, the currency
      *  properties are set to default values,
      *  and therefore the currencySymbol or
      *  currencyISOCode properties might be given unexpected
      *  values. It is a good idea to examine the
      *  currencySymbol and currencyISOCode
      *  property values before formatting a currency amount.
-     *

+     *

      *
      *  @see #actualLocaleIDName
      *  @see #lastOperationsStatus
@@ -255,7 +255,7 @@
      *  being used (e.g. USD, EUR, JPY, CNY).
      *
      *
When the useCurrencySymbol property is set to
-     *  false, this code will be used to indicate the currency
+     *  false, this code is used to indicate the currency
      *  type when formatting currency amounts
      *  using the format() method.

      *
@@ -643,19 +643,19 @@
     [Bindable("change")]

     /**
-     *  Enables the use of the currencySymbol when formatting
-     *  currency amounts.
-     *
-     *
When the withCurrencySymbol property is
+     *  Enables the use of the currencySymbol property
+     *  when formatting currency amounts.
+     *
+     *
When the useCurrencySymbol property is
      *  set to true, the value of the
      *  currencySymbol property is used
      *  in the string returned by the format method.
-     *  For example: $ 123,456,789.22

-     *
-     *
When the withCurrencySymbol property is set to
+     *  For example: $123,456,789.22

+     *
+     *
When the useCurrencySymbol property is set to
      *  false, the value of the currencyISOCode
      *  property is used in the string returned by the format
-     *  method. For example: USD 123,456,789.22

+     *  method. For example: USD123,456,789.22

      *
      *  @default false
      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 22072
Author:   jasonsj@adobe.com
Date:     2011-08-18T18:14:51.387719Z

Log Message:
-----------
PARB rename CalloutContentBackgroundAppearance to ContentBackgroundAppearance.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/MobileComponentsClasses.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutContentBackgroundAppearance.as" copyfrom-rev="22006" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as
@@ -13,15 +13,17 @@
 {

 /**
- *  The CalloutContentBackgroundAppearance class defines the constants for the
+ *  The ContentBackgroundAppearance class defines the constants for the
  *  allowed values of the contentBackgroundAppearance style of
  *  Callout.
+ *
+ *  @see spark.components.Callout#contentBackgroundAppearance
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
  *  @productversion Flex 4.5.2
  */
-public final class CalloutContentBackgroundAppearance
+public final class ContentBackgroundAppearance
 {
     //--------------------------------------------------------------------------
     //


fix Frustum.testBoundingBox() and Frustum.testBoundingVolume() to test the bounding box center along with the 8 vertices of the box

--- src/aerys/minko/type/math/Frustum.as
+++ src/aerys/minko/type/math/Frustum.as
@@ -416,6 +416,9 @@
 			var x8	: Number	= vertices[21];
 			var y8	: Number	= vertices[22];
 			var z8	: Number	= vertices[23];
+			var cx	: Number	= (x1 - x2) * .5;
+			var cy	: Number	= (y1 - y2) * .5;
+			var cz	: Number	= (z1 - z2) * .5;

 			for (var i : int = 0; i < 6; ++i)
 			{
@@ -570,7 +573,8 @@
 						&& pa * x5 + pb * y5 + pc * z5 + pd < 0.
 						&& pa * x6 + pb * y6 + pc * z6 + pd < 0.
 						&& pa * x7 + pb * y7 + pc * z7 + pd < 0.
-						&& pa * x8 + pb * y8 + pc * z8 + pd < 0.)
+						&& pa * x8 + pb * y8 + pc * z8 + pd < 0.
+						&& pa * cx + pb * cy + pc * cz + pd < 0.)
 						return planeIndex;
 				}
 			}


Boolean reduction.

Boolean reduction.

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

--- src/as/com/threerings/util/Assert.as
+++ src/as/com/threerings/util/Assert.as
@@ -45,7 +45,7 @@
     /** Asserts that the value is equal to null. */
     public static function isNull (value :Object, message :String = null) :void
     {
-        if (_debug && ! (value == null)) {
+        if (_debug && (value != null)) {
             fail(message);
         }
     }
@@ -53,7 +53,7 @@
     /** Asserts that the value is not equal to null. */
     public static function isNotNull (value :Object, message :String = null) :void
     {
-        if (_debug && ! (value != null)) {
+        if (_debug && (value == null)) {
             fail(message);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17472
Author:   jszeto@adobe.com
Date:     2010-08-24T23:21:15.307099Z

Log Message:
-----------
Mobile Button Skin fixes

SDK-27007 - Button gradient fill bleeds through the border as width and height increase

Updated the fxg assets viewHeight to match the actual content height.

SDK-27571 -  Mxml component as button icon not displayed

Added logic to ButtonSkinBase to handle when the icon is a UIComponent

SDK-27535 - Setting percentWidth, percentHeight not applied on CheckBox and RadioButton

Changed the min width to be the icon width since the TextField can truncate as it shrinks

SDK-27468 - Mobile Button Skin: button does not appear if it doesn't have a label

Always add in padding even if we don't have a label or icon.

QE notes: need to regenerate baseline images
Doc notes: none
Bugs: SDK-27571, SDK-27007, SDK-27535, SDK-27468
Reviewer: Jason San Jose
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as
@@ -27,6 +27,7 @@
     import mx.core.UITextField;
     import mx.core.mx_internal;
     import mx.events.FlexEvent;
+    import mx.managers.LayoutManager;
     import mx.states.SetProperty;
     import mx.states.State;
     import mx.utils.ColorUtil;
@@ -190,6 +191,9 @@
                     // Should be a bitmap
                     iconInstance = new icon();
                     addChild(iconInstance);
+
+                    if (iconInstance is UIComponent)
+                        LayoutManager.getInstance().validateClient(UIComponent(iconInstance));
                 }

                 iconChanged = false;
@@ -226,6 +230,12 @@
             var w:Number = 0;
             var h:Number = 0;

+            if (iconInstance is UIComponent)
+            {
+                iconWidth = UIComponent(iconInstance).getExplicitOrMeasuredWidth();
+                iconHeight = UIComponent(iconInstance).getExplicitOrMeasuredHeight();
+            }
+
             if (iconPlacement == IconPlacement.LEFT ||
                 iconPlacement == IconPlacement.RIGHT)
             {
@@ -242,14 +252,12 @@
                     h += gap; // getStyle("verticalGap");
             }

-            if (textWidth || iconWidth)
-            {
-                w += paddingLeft + paddingRight; //getStyle("paddingLeft") + getStyle("paddingRight");
-                h += paddingTop + paddingBottom; //getStyle("paddingTop") + getStyle("paddingBottom");
-            }
-
-            measuredMinWidth = measuredWidth = Math.max(w, MIN_WIDTH);
+            w += paddingLeft + paddingRight; //getStyle("paddingLeft") + getStyle("paddingRight");
+            h += paddingTop + paddingBottom; //getStyle("paddingTop") + getStyle("paddingBottom");
+
+            measuredWidth = Math.max(w, MIN_WIDTH);
             measuredMinHeight = measuredHeight = h;
+            measuredMinWidth = iconWidth + paddingLeft + paddingRight;
         }

         /**
@@ -306,8 +314,16 @@

             if (iconInstance)
             {
-                iconWidth = iconInstance.width;
-                iconHeight = iconInstance.height;
+                if (iconInstance is UIComponent)
+                {
+                    iconWidth = UIComponent(iconInstance).getExplicitOrMeasuredWidth();
+                    iconHeight = UIComponent(iconInstance).getExplicitOrMeasuredHeight();
+                }
+                else
+                {
+                    iconWidth = iconInstance.width;
+                    iconHeight = iconInstance.height;
+                }
             }

             if (iconPlacement == IconPlacement.LEFT ||
@@ -407,8 +423,8 @@
             }

             labelDisplay.commitStyles();
-            labelDisplay.x = Math.round(labelX);
-            labelDisplay.y = Math.round(labelY);
+            labelDisplay.x = Math.max(0, Math.round(labelX));
+            labelDisplay.y = Math.max(0, Math.round(labelY));
             labelDisplay.height = labelHeight;
             labelDisplay.width = labelWidth;

@@ -418,8 +434,8 @@
             labelDisplay.truncateToFit();

             labelDisplayShadow.commitStyles();
-            labelDisplayShadow.x = Math.round(labelX);
-            labelDisplayShadow.y = Math.round(labelY + 1);
+            labelDisplayShadow.x = Math.max(0, Math.round(labelX));
+            labelDisplayShadow.y = Math.max(0, Math.round(labelY + 1));
             labelDisplayShadow.height = labelHeight;
             labelDisplayShadow.width = labelWidth;

@@ -430,8 +446,8 @@

             if (iconInstance)
             {
-                iconInstance.x = Math.round(iconX);
-                iconInstance.y = Math.round(iconY);
+                iconInstance.x = Math.max(0, Math.round(iconX));
+                iconInstance.y = Math.max(0, Math.round(iconY));
             }
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19724
Author:   jasonsj@adobe.com
Date:     2011-01-12T01:07:20.451197Z

Log Message:
-----------
Moved ActionBar font color style declaration to #titleDisplay part and subclasses of ButtonBase
Replaced MobileSkin usage of layoutMeasuredWidth/Height with minWidth/Height

QE notes: Some mustella baselines for ActionBar custom content will need to be regenerated. In particular, usage of TextInput with text content.
Doc notes:
Bugs:
SDK-28948 The default color for text in TextInput on ActionBar is white so it looks invisible
SDK-28953 Button width not adjusted as expected when changing percentWidth at runtime
Reviewer: rfrishbe, chiedozi
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaVScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaHScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TabbedViewNavigatorButtonBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionRoundedButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as
@@ -298,12 +298,8 @@
         }

         // minimums
-        measuredMinWidth = w
-        measuredMinHeight = h;
-
-        // measured sizes are no smaller than spec for touch-based sizes
-        measuredWidth = Math.max(w, layoutMeasuredWidth);
-        measuredHeight = Math.max(h, layoutMeasuredHeight);
+        measuredWidth = w
+        measuredHeight = h;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

--- frameworks/projects/advancedgrids/src/mx/styles/metadata/TextStyles.as
+++ frameworks/projects/advancedgrids/src/mx/styles/metadata/TextStyles.as
@@ -1,24 +1,4 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-/**
- *  Color of text in the component, including the component label.
- *
- *  @default 0x0B333C
- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
+
 [Style(name="color", type="uint", format="Color", inherit="yes")]

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

--- frameworks/projects/rpc/src/mx/messaging/errors/InvalidChannelError.as
+++ frameworks/projects/rpc/src/mx/messaging/errors/InvalidChannelError.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 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
 package mx.messaging.errors
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12457
Author:   smgilson@adobe.com
Date:     2009-12-03T18:13:50.586970Z

Log Message:
-----------
asdoc updates for localization

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/AnchorStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.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/spark/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as
@@ -44,13 +44,13 @@
  * by using Adobe Pixel Bender Toolkit.

  *
  *
If either bitmap is
- * not supplied, that value will be determined dynamically from
+ * not supplied, that value is determined dynamically from
  * either the appropriate state of the target in a transition or,
  * if the effect is not running in a transition, from the
  * target directly. If
  * the effect is run in a transition and the target object either
  * goes away or comes into existence during that state change,
- * then a fully-transparent bitmap will be used to represent
+ * then a fully-transparent bitmap is used to represent
  * that object when it does not exist.

  *
  *
This effect can only be run on targets that are either
@@ -60,20 +60,20 @@
  *
  *
Because the effect is bitmap-based, and the underlying
  * pixel-shader program expects both bitmaps to be the same size,
- * the effect will only work correctly when both bitmaps are
+ * the effect only works correctly when both bitmaps are
  * of the same size. This means that if the target object changes
  * size or changes orientation leading to a different size bounding
- * box, then the effect may not play correctly.

+ * box, then the effect might not play correctly.

  *
  *
This effect and its subclasses differ from other effects in
  * Flex in that they are intended to work on their own, and may
  * not have the intended result when run in parallel with other effects.
  * This constraint comes from the fact that both of the before and after
- * bitmaps are captured prior to the start of the effect. So if something
+ * bitmaps are captured before the start of the effect. So if something
  * happens to the target object after these bitmaps are calculated,
  * such as another effect changing the target's properties, then those
- * changes will not be accounted for in the pre-calculated bitmap and
- * the results may not be as expected. To ensure correct playing of
+ * changes are not be accounted for in the pre-calculated bitmap and
+ * the results might not be as expected. To ensure correct playing of
  * these bitmap-based effects, they should be played alone on
  * their target objects.

  *
@@ -226,7 +226,7 @@

     /**
      * A map of parameter name/value pairs passed to the pixel-shader program
-     * prior to playing. For example,
+     * before playing. For example,
      * to set a parameter named direction in a
      * shader with a Pixel Bender pbj file in Wipe.pbj, the calling
      * code could do the following:


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

--- frameworks/projects/mx/src/mx/containers/Accordion.as
+++ frameworks/projects/mx/src/mx/containers/Accordion.as
@@ -62,6 +62,11 @@
  *  @eventType mx.events.IndexChangedEvent.CHANGE
  *  @helpid 3012
  *  @tiptext change event
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="change", type="mx.events.IndexChangedEvent")]

@@ -80,6 +85,11 @@
  *  Some components, such as the ApplicationControlBar container,
  *  have a different default value. For the ApplicationControlBar container,
  *  the default value is [ 0.0, 0.0 ].
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="fillAlphas", type="Array", arrayType="Number", inherit="no", deprecatedReplacement="headerStyleName", deprecatedSince="3.0")]

@@ -98,6 +108,11 @@
  *
Some components, such as the ApplicationControlBar container,
  *  have a different default value. For the ApplicationControlBar container,
  *  the default value is [ 0xFFFFFF, 0xFFFFFF ].

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="fillColors", type="Array", arrayType="uint", format="Color", inherit="no", deprecatedReplacement="headerStyleName", deprecatedSince="3.0")]

@@ -105,6 +120,11 @@
  *  Specifies the alpha transparency value of the focus skin.
  *
  *  @default 0.4
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="focusAlpha", type="Number", inherit="no", deprecatedReplacement="headerStyleName", deprecatedSince="3.0")]

@@ -120,6 +140,11 @@
  *  The default value depends on the component class; if not overridden for
  *  the class, default value is "tl tr bl br".
  *
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="focusRoundedCorners", type="String", inherit="no", deprecatedReplacement="headerStyleName", deprecatedSince="3.0")]

@@ -127,6 +152,11 @@
  *  Skin used to draw the focus rectangle.
  *
  *  @default mx.skins.halo.HaloFocusRect
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="focusSkin", type="Class", inherit="no", deprecatedReplacement="headerStyleName", deprecatedSince="3.0")]

@@ -134,6 +164,11 @@
  *  Thickness, in pixels, of the focus rectangle outline.
  *
  *  @default 2
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="focusThickness", type="Number", format="Length", inherit="no", deprecatedReplacement="headerStyleName", deprecatedSince="3.0")]

@@ -145,12 +180,22 @@
  *  of the AccordionHeader class, including fillAlphas, fillColors,
  *  focusAlpha, focusRounderCorners,
  *  focusSkin, focusThickness, and selectedFillColors.

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="headerStyleName", type="String", inherit="no")]

 /**
  *  Number of pixels between children in the horizontal direction.
  *  The default value is 8.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="horizontalGap", type="Number", format="Length", inherit="no")]

@@ -158,17 +203,32 @@
  *  Height of each accordion header, in pixels.
  *  The default value is automatically calculated based on the font styles for
  *  the header.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="headerHeight", type="Number", format="Length", inherit="no")]

 /**
  *  Duration, in milliseconds, of the animation from one child to another.
  *  The default value is 250.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="openDuration", type="Number", format="Time", inherit="no")]

 /**
  *  Tweening function used by the animation from one child to another.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="openEasingFunction", type="Function", inherit="no")]

@@ -176,6 +236,11 @@
  *  Number of pixels between the container's bottom border and its content area.
  *  The default value is -1, so the bottom border of the last header
  *  overlaps the Accordion container's bottom border.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingBottom", type="Number", format="Length", inherit="no")]

@@ -183,6 +248,11 @@
  *  Number of pixels between the container's top border and its content area.
  *  The default value is -1, so the top border of the first header
  *  overlaps the Accordion container's top border.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingTop", type="Number", format="Length", inherit="no")]

@@ -192,18 +262,33 @@
  *  Pass the same color for both values for "flat" looking control.
  *  The default value is undefined, which means the colors
  *  are derived from themeColor.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="selectedFillColors", type="Array", arrayType="uint", format="Color", inherit="no", deprecatedReplacement="headerStyleName", deprecatedSince="3.0")]

 /**
  *  Color of header text when rolled over.
  *  The default value is 0x2B333C.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="textRollOverColor", type="uint", format="Color", inherit="yes")]

 /**
  *  Color of selected text.
  *  The default value is 0x2B333C.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="textSelectedColor", type="uint", format="Color", inherit="yes")]

@@ -211,6 +296,11 @@
  *  Number of pixels between children in the vertical direction.
  *  The default value is -1, so the top and bottom borders
  *  of adjacent headers overlap.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="verticalGap", type="Number", format="Length", inherit="no")]

@@ -240,6 +330,11 @@
 [Exclude(name="focusBlendMode", kind="style")]
 [Exclude(name="focusSkin", kind="style")]
 [Exclude(name="focusThickness", kind="style")]
+*
+*  @langversion 3.0
+*  @playerversion Flash 9
+*  @playerversion AIR 1.1
+*  @productversion Flex 3
 */
 [Exclude(name="horizontalScrollBarStyleName", kind="style")]
 [Exclude(name="verticalScrollBarStyleName", kind="style")]
@@ -344,6 +439,11 @@
  *
  *  @tiptext Accordion allows for navigation between different child views
  *  @helpid 3013
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class Accordion extends Container implements IHistoryManagerClient, IFocusManagerComponent
 {
@@ -369,6 +469,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function Accordion()
     {
@@ -643,6 +748,11 @@
      *  The height of the area, in pixels, in which content is displayed.
      *  You can override this getter if your content
      *  does not occupy the entire area of the container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function get contentHeight():Number
     {
@@ -675,6 +785,11 @@
      *  The width of the area, in pixels, in which content is displayed.
      *  You can override this getter if your content
      *  does not occupy the entire area of the container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected function get contentWidth():Number
     {
@@ -712,6 +827,11 @@
      *  property is set to the content associated with the header.
      *
      *  @see mx.containers.accordionClasses.AccordionHeader
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get headerRenderer():IFactory
     {
@@ -756,6 +876,11 @@
      *  @default true
      *
      *  @see mx.managers.HistoryManager
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get historyManagementEnabled():Boolean
     {
@@ -793,6 +918,11 @@
      *  the size of its current child.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get resizeToContent():Boolean
     {
@@ -829,6 +959,11 @@
      *
      *  @tiptext Specifies the child view that is currently displayed
      *  @helpid 3401
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get selectedChild():Container
     {
@@ -878,6 +1013,11 @@
      *
      *  @tiptext Specifies the index of the child view that is currently displayed
      *  @helpid 3402
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get selectedIndex():int
     {
@@ -1477,6 +1617,11 @@

     /**
      *  @copy mx.managers.IHistoryManagerClient#saveState()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function saveState():Object
     {
@@ -1486,6 +1631,11 @@

     /**
      *  @copy mx.managers.IHistoryManagerClient#loadState()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function loadState(state:Object):void
     {
@@ -1519,6 +1669,11 @@
      *  @param index Zero-based index of the child.
      *
      *  @return Button object representing the navigator button.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getHeaderAt(index:int):Button
     {


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

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

 package mx.containers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4593
Author:   jimurphy@adobe.com
Date:     2009-01-20T14:40:09.728921Z

Log Message:
-----------
Merged 3.x revisions 4591

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ColorPicker.as
+++ frameworks/projects/mx/src/mx/controls/ColorPicker.as
@@ -1201,7 +1201,7 @@
             }

             // Position: left or right
-            if (point.x + width + dropdownSwatch.width > screen.right &&
+            if (point.x + dropdownSwatch.width > screen.right &&
                 point.x > (screen.left + dropdownSwatch.width))
             {
                 // Dropdown appears to the left instead of right


made documentation clearer about if dates in date ranges are included

--- frameworks/projects/mx/src/mx/controls/DateChooser.as
+++ frameworks/projects/mx/src/mx/controls/DateChooser.as
@@ -1885,9 +1885,9 @@
      *  The Object contains two properties, rangeStart
      *  and rangeEnd, of type Date.
      *  If you specify only rangeStart,
-     *  all the dates after the specified date are enabled.
+     *  all the dates on and after the specified date are enabled.
      *  If you only specify rangeEnd,
-     *  all the dates before the specified date are enabled.
+     *  all the dates on and before the specified date are enabled.
      *  To enable only a single day in a DateChooser control,
      *  you can pass a Date object directly. Time values are
      *  zeroed out from the Date object if they are present.


Transferred from the Adobe Open Source Subversion Repository

Revision: 11274
Author:   dloverin@adobe.com
Date:     2009-10-29T19:22:48.296447Z

Log Message:
-----------
ModuleLoader enhancement and StyleProtoChain fix

QE notes: None.
Doc notes: None.
Bugs: SDK-23855, SDK-23733
Reviewer: Alex
Tests run: checkintests, Managers/StyleManager
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>

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

--- frameworks/projects/mx/src/mx/modules/ModuleLoader.as
+++ frameworks/projects/mx/src/mx/modules/ModuleLoader.as
@@ -17,6 +17,7 @@
 import flash.system.ApplicationDomain;
 import flash.utils.ByteArray;
 import mx.containers.VBox;
+import mx.core.FlexVersion;
 import mx.core.IDeferredInstantiationUIComponent;
 import mx.events.FlexEvent;
 import mx.events.ModuleEvent;
@@ -354,6 +355,19 @@
         module.addEventListener(ModuleEvent.ERROR, moduleErrorHandler);
         module.addEventListener(ModuleEvent.UNLOAD, moduleUnloadHandler);

+        // If an applicationDomain has not been specified and we have a module factory,
+        // then create a child application domain from the application domain
+        // this module factory is in.
+        // This is a change in behavior so only do it for Flex 4 and newer
+        // applications.
+        if (applicationDomain == null && moduleFactory &&
+            FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_0)
+        {
+            var currentDomain:ApplicationDomain = moduleFactory.info()["currentDomain"];
+            if (currentDomain)
+                applicationDomain = new ApplicationDomain(currentDomain);
+        }
+
         module.load(applicationDomain, null, bytes, moduleFactory);
     }


Fix FLEX-33428.  Proposed fix (adding clearFlag) doesn't actually fix the root problem, it only works because it causes the component to use plain text rendering and the test case has plain text to render.  This fix addresses a rather strange behavior in TextContainerManager (TCM).  It assumes that existing TextLines belong to the same textflow.  There is code in TCM's textFlow setter that attempts to remove existing TextLines when the textFlow is changed, but this bug scenario bypasses that and leaves a TextLine created at initialization by the plain text composer when the text hasn't been set yet.  The fix remembers whether plain text or html text composition was last used and if switching, removes existing textfields.  All tests in gumbo/components/FTETextField pass

--- frameworks/projects/spark/src/mx/core/FTETextField.as
+++ frameworks/projects/spark/src/mx/core/FTETextField.as
@@ -48,6 +48,11 @@
     import flash.text.engine.TextLineValidity;
     import flash.utils.Dictionary;

+    import mx.managers.SystemManager;
+    import mx.managers.SystemManagerGlobals;
+
+    import spark.utils.TextUtil;
+
     import flashx.textLayout.compose.ISWFContext;
     import flashx.textLayout.compose.TextLineRecycler;
     import flashx.textLayout.formats.ITextLayoutFormat;
@@ -55,11 +60,6 @@
     import flashx.textLayout.formats.LineBreak;
     import flashx.textLayout.formats.TextDecoration;
     import flashx.textLayout.formats.TextLayoutFormat;
-
-    import mx.managers.SystemManager;
-    import mx.managers.SystemManagerGlobals;
-
-    import spark.utils.TextUtil;

     use namespace mx_internal;

@@ -385,6 +385,8 @@
         //  Variables
         //
         //--------------------------------------------------------------------------
+
+        private var lastComposeWasText:Boolean;

         /**
          *  @private
@@ -2526,13 +2528,30 @@

                 if (testFlag(FLAG_HTML_TEXT_SET))
                 {
-                   if (!_htmlHelper.hostFormat)
+                    // if switching composers, remove all existing textlines.
+                    // the html composer assumes existing textlines belonged
+                    // to the flow
+                    if (lastComposeWasText)
+                    {
+                        nextLineIndex = 0;
+                        removeExcessTextLines();
+                    }
+                    lastComposeWasText = false;
+
+                    if (!_htmlHelper.hostFormat)
                         createHostFormat();

                     _htmlHelper.composeHTMLText(compositionWidth, compositionHeight);
                 }
                 else
                 {
+                    if (!lastComposeWasText)
+                    {
+                        nextLineIndex = 0;
+                        removeExcessTextLines();
+                    }
+
+                    lastComposeWasText = true;
                     if (!elementFormat)
                         createElementFormat();


Transferred from the Adobe Open Source Subversion Repository

Revision: 20736
Author:   smgilson@adobe.com
Date:     2011-03-09T21:18:00.204102Z

Log Message:
-----------
Merge 20719 - ASDoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/RuntimeDPIProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EdgeMetrics.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DeferredInstanceFromFunction.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextFieldInterface.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DPIClassification.as</path>

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

--- frameworks/projects/spark/src/mx/core/FTETextField.as
+++ frameworks/projects/spark/src/mx/core/FTETextField.as
@@ -1930,6 +1930,11 @@
          *
          *
FTE and TLF use this locale to map Unicode characters
          *  to font glyphs and to find fallback fonts.

+         *
+         *  @playerversion Flash 10
+         *  @playerversion AIR 1.5
+         *  @langversion 3.0
+         *  @productversion Flex 4
          */
         public function get locale():String
         {


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

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

 package mx.core
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19967
Author:   tan@adobe.com
Date:     2011-01-26T23:27:02.466142Z

Log Message:
-----------
Minor documentation change to the ratio property in the GradientEntry class. The doc said the default was -1 when it is in fact NaN.

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/graphics/GradientEntry.as

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

--- frameworks/projects/framework/src/mx/graphics/GradientEntry.as
+++ frameworks/projects/framework/src/mx/graphics/GradientEntry.as
@@ -32,7 +32,7 @@
  *    <b>Properties</b>
  *    alpha="1.0"
  *    color="0x000000"
- *    ratio="-1"
+ *    ratio="NaN"
  *  />
  *  </pre>
  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 16970
Author:   aharui@adobe.com
Date:     2010-07-19T17:08:49.340875Z

Log Message:
-----------
add better error handling to LayoutManager.  It now tracks which object is being validated and adds that object to the callLaterError event.
Also add code to UIComponent to propagate nestLevel=0 through to its children on being removed from a parent.  That way nestLevel now represents whether a UIComponent is on the display list or not.  LayoutManager now uses that and will not validated objects not on the display list (and removes them from the validation queue).

QE notes: removing children will be slower, but should be insignificant more most trees of objects
Doc notes: new field in callLaterError event, but this is specifically for Catalyst, not really for the public
Bugs: SDK-26539, SDK-26540
Reviewer: Corey
Tests run: checkintests cyclone server
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/LayoutManager.as
+++ frameworks/projects/framework/src/mx/managers/LayoutManager.as
@@ -294,6 +294,13 @@
      */
     private var systemManager:ISystemManager;

+	/**
+	 *  @private
+	 *  the current object being validated
+	 *  it could be wrong if the validating object calls validateNow on something.
+	 */
+	private var currentObject:ILayoutManagerClient;
+
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -583,13 +590,16 @@
                 var token:int = perfUtil.markStart();
             }

-            obj.validateProperties();
-            if (!obj.updateCompletePendingFlag)
-            {
-                updateCompleteQueue.addObject(obj, obj.nestLevel);
-                obj.updateCompletePendingFlag = true;
-            }
-
+			if (obj.nestLevel)
+			{
+				currentObject = obj;
+	            obj.validateProperties();
+	            if (!obj.updateCompletePendingFlag)
+	            {
+	                updateCompleteQueue.addObject(obj, obj.nestLevel);
+	                obj.updateCompletePendingFlag = true;
+	            }
+			}
             CONFIG::performanceInstrumentation
             {
                 perfUtil.markEnd(".validateProperties()", token, 2 /*tolerance*/, obj);
@@ -642,13 +652,17 @@
         {
             // trace("LayoutManager calling validateSize() on " + Object(obj));

-            obj.validateSize();
-            if (!obj.updateCompletePendingFlag)
-            {
-                updateCompleteQueue.addObject(obj, obj.nestLevel);
-                obj.updateCompletePendingFlag = true;
-            }
-
+			if (obj.nestLevel)
+			{
+				currentObject = obj;
+		        obj.validateSize();
+		        if (!obj.updateCompletePendingFlag)
+		        {
+		            updateCompleteQueue.addObject(obj, obj.nestLevel);
+		            obj.updateCompletePendingFlag = true;
+		        }
+			}
+
             // trace("LayoutManager validateSize: " + Object(obj) + " " + IFlexDisplayObject(obj).measuredWidth + " " + IFlexDisplayObject(obj).measuredHeight);

             obj = ILayoutManagerClient(invalidateSizeQueue.removeLargest());
@@ -698,13 +712,16 @@
         {
             // trace("LayoutManager calling validateDisplayList on " + Object(obj) + " " + DisplayObject(obj).width + " " + DisplayObject(obj).height);

-            obj.validateDisplayList();
-            if (!obj.updateCompletePendingFlag)
-            {
-                updateCompleteQueue.addObject(obj, obj.nestLevel);
-                obj.updateCompletePendingFlag = true;
-            }
-
+			if (obj.nestLevel)
+			{
+				currentObject = obj;
+	            obj.validateDisplayList();
+	            if (!obj.updateCompletePendingFlag)
+	            {
+	                updateCompleteQueue.addObject(obj, obj.nestLevel);
+	                obj.updateCompletePendingFlag = true;
+	            }
+			}
             // trace("LayoutManager return from validateDisplayList on " + Object(obj) + " " + DisplayObject(obj).width + " " + DisplayObject(obj).height);

             // Once we start, don't stop.
@@ -792,9 +809,9 @@
         {
             usePhasedInstantiation = false;

-            listenersAttached = false;
-
-            var obj:ILayoutManagerClient = ILayoutManagerClient(updateCompleteQueue.removeLargest());
+			listenersAttached = false;
+
+			var obj:ILayoutManagerClient = ILayoutManagerClient(updateCompleteQueue.removeLargest());
             while (obj)
             {
                 if (!obj.initialized && obj.processedDescriptors)
@@ -875,6 +892,8 @@
             var token:int = perfUtil.markStart();
         }

+		var lastCurrentObject:ILayoutManagerClient = currentObject;
+
         var obj:ILayoutManagerClient;
         var i:int = 0;
         var done:Boolean = false;
@@ -908,13 +927,17 @@
             {
                 // trace("LayoutManager calling validateProperties() on " + Object(obj) + " " + DisplayObject(obj).width + " " + DisplayObject(obj).height);

-                obj.validateProperties();
-                if (!obj.updateCompletePendingFlag)
-                {
-                    updateCompleteQueue.addObject(obj, obj.nestLevel);
-                    obj.updateCompletePendingFlag = true;
-                }
-
+				if (obj.nestLevel)
+				{
+					currentObject = obj;
+	                obj.validateProperties();
+	                if (!obj.updateCompletePendingFlag)
+	                {
+	                    updateCompleteQueue.addObject(obj, obj.nestLevel);
+	                    obj.updateCompletePendingFlag = true;
+	                }
+				}
+
                 // Once we start, don't stop.
                 obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target));
             }
@@ -934,13 +957,16 @@
             {
                 // trace("LayoutManager calling validateSize() on " + Object(obj));

-                obj.validateSize();
-                if (!obj.updateCompletePendingFlag)
-                {
-                    updateCompleteQueue.addObject(obj, obj.nestLevel);
-                    obj.updateCompletePendingFlag = true;
-                }
-
+				if (obj.nestLevel)
+				{
+					currentObject = obj;
+	                obj.validateSize();
+	                if (!obj.updateCompletePendingFlag)
+	                {
+	                    updateCompleteQueue.addObject(obj, obj.nestLevel);
+	                    obj.updateCompletePendingFlag = true;
+	                }
+				}

                 // trace("LayoutManager validateSize: " + Object(obj) + " " + IFlexDisplayObject(obj).measuredWidth + " " + IFlexDisplayObject(obj).measuredHeight);

@@ -977,13 +1003,16 @@
                 {
                     // trace("LayoutManager calling validateDisplayList on " + Object(obj) + " " + DisplayObject(obj).width + " " + DisplayObject(obj).height);

-                    obj.validateDisplayList();
-                    if (!obj.updateCompletePendingFlag)
-                    {
-                        updateCompleteQueue.addObject(obj, obj.nestLevel);
-                        obj.updateCompletePendingFlag = true;
-                    }
-
+					if (obj.nestLevel)
+					{
+						currentObject = obj;
+	                    obj.validateDisplayList();
+	                    if (!obj.updateCompletePendingFlag)
+	                    {
+	                        updateCompleteQueue.addObject(obj, obj.nestLevel);
+	                        obj.updateCompletePendingFlag = true;
+	                    }
+					}
                     // trace("LayoutManager return from validateDisplayList on " + Object(obj) + " " + DisplayObject(obj).width + " " + DisplayObject(obj).height);

                     if (invalidateClientPropertiesFlag)
@@ -1044,10 +1073,13 @@
             }
         }

+		currentObject = lastCurrentObject;
+
         CONFIG::performanceInstrumentation
         {
             perfUtil.markEnd(" validateClient()", token, 2 /*tolerance*/, target);
         }
+
         // trace("<--- LayoutManager: validateClient --- target = " + target);
     }

@@ -1086,7 +1118,7 @@
         // trace("<<LayoutManager:WaitAFrame");
     }

-    private function attachListeners(systemManager:ISystemManager):void
+    public function attachListeners(systemManager:ISystemManager):void
     {
         if (!waitedAFrame)
         {
@@ -1117,7 +1149,7 @@
             return;

         systemManager.removeEventListener(Event.ENTER_FRAME, doPhasedInstantiationCallback);
-        systemManager.removeEventListener(Event.RENDER, doPhasedInstantiationCallback);
+        systemManager.removeEventListener(Event.RENDER, doPhasedInstantiationCallback);

         if (!UIComponentGlobals.catchCallLaterExceptions)
         {
@@ -1136,9 +1168,11 @@
                 var callLaterErrorEvent:DynamicEvent = new DynamicEvent("callLaterError");
                 callLaterErrorEvent.error = e;
                 callLaterErrorEvent.source = this;
+				callLaterErrorEvent.object = currentObject;
                 systemManager.dispatchEvent(callLaterErrorEvent);
             }
         }
+		currentObject = null;
     }

     private var _usingBridge:int = -1;