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

--- frameworks/projects/framework/src/mx/managers/LayoutManager.as
+++ frameworks/projects/framework/src/mx/managers/LayoutManager.as
@@ -0,0 +1,954 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.managers
+{
+
+import flash.display.Stage;
+import flash.events.Event;
+import flash.events.EventDispatcher;
+import mx.core.ApplicationGlobals;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.managers.layoutClasses.PriorityQueue;
+
+use namespace mx_internal;
+
+/**
+ *  The LayoutManager is the engine behind
+ *  Flex's measurement and layout strategy.
+ *  Layout is performed in three phases; commit, measurement, and layout.
+ *
+ *
Each phase is distinct from the others and all UIComponents of
+ *  one phase are processed prior to moving on to the next phase.
+ *  During the processing of UIComponents in a phase, requests for
+ *  UIComponents to get re-processed by some phase may occur.
+ *  These requests are queued and are only processed
+ *  during the next run of the phase.

+ *
+ *
The commit phase begins with a call to
+ *  validateProperties(), which walks through a list
+ *  (reverse sorted by nesting level) of objects calling each object's
+ *
+ *  validateProperties()method.

+ *
+ *
The objects in the list are processed in reversed nesting order,
+ *  with the least deeply nested object accessed first.
+ *  This can also be referred to as top-down or outside-in ordering.

+ *
+ *
This phase allows components whose contents depend on property
+ *  settings to configure themselves prior to the measurement
+ *  and the layout phases.
+ *  For the sake of performance, sometimes a component's property setter
+ *  method does not do all the work to update to the new property value.
+ *  Instead, the property setter calls the invalidateProperties()
+ *  method, deferring the work until this phase runs.
+ *  This prevents unnecessary work if the property is set multiple times.

+ *
+ *
The measurement phase begins with a call to
+ *  validateSize(), which walks through a list
+ *  (sorted by nesting level) of objects calling each object's
+ *  validateSize()
+ *  method to determine if the object has changed in size.

+ *
+ *
If an object's
+ *  invalidateSize() method was previously called,
+ *  then the validateSize() method is called.
+ *  If the size or position of the object was changed as a result of the
+ *  validateSize() call, then the object's
+ *
+ *  invalidateDisplayList() method is called, thus adding
+ *  the object to the processing queue for the next run of the layout phase.
+ *  Additionally, the object's parent is marked for both measurement
+ *  and layout phases, by calling
+ *
+ *  invalidateSize() and
+ *
+ *  invalidateDisplayList() respectively.

+ *
+ *
The objects in the list are processed by nesting order,
+ *  with the most deeply nested object accessed first.
+ *  This can also be referred to as bottom-up inside-out ordering.

+ *
+ *
The layout phase begins with a call to the
+ *  validateDisplayList() method, which walks through a list
+ *  (reverse sorted by nesting level) of objects calling each object's
+ *
+ *  validateDisplayList() method to request the object to size
+ *  and position all components contained within it (i.e. its children).

+ *
+ *
If an object's
+ *  invalidateDisplayList() method was previously called,
+ *  then validateDisplayList() method for the object is called.

+ *
+ *
The objects in the list are processed in reversed nesting order,
+ *  with the least deeply nested object accessed first.
+ *  This can also be referred to as top-down or outside-in ordering.

+ *
+ *
In general, components do not override the validateProperties(),
+ *  validateSize(), or validateDisplayList() methods.
+ *  In the case of UIComponents, most components override the
+ *  commitProperties(), measure(), or
+ *  updateDisplayList() methods, which are called
+ *  by the validateProperties(),
+ *  validateSize(), or
+ *  validateDisplayList() methods, respectively.

+ *
+ *
At application startup, a single instance of the LayoutManager is created
+ *  and stored in the UIComponent.layoutManager property.
+ *  All components are expected to use that instance.
+ *  If you do not have access to the UIComponent object,
+ *  you can also access the LayoutManager using the static
+ *  LayoutManager.getInstance() method.

+ */
+public class LayoutManager extends EventDispatcher implements ILayoutManager
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  The sole instance of this singleton class.
+     */
+	private static var instance:LayoutManager;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Returns the sole instance of this singleton class,
+	 *  creating it if it does not already exist.
+     */
+	public static function getInstance():LayoutManager
+	{
+		if (!instance)
+			instance = new LayoutManager();
+
+		return instance;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function LayoutManager()
+	{
+		super();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  A queue of objects that need to dispatch updateComplete events
+	 *  when invalidation processing is complete
+	 */
+	private var updateCompleteQueue:PriorityQueue = new PriorityQueue();
+
+	/**
+	 *  @private
+	 *  A queue of objects to be processed during the first phase
+	 *  of invalidation processing, when an ILayoutManagerClient  has
+	 *  its validateProperties() method called (which in a UIComponent
+	 *  calls commitProperties()).
+	 *  Objects are added to this queue by invalidateProperties()
+	 *  and removed by validateProperties().
+	 */
+	private var invalidatePropertiesQueue:PriorityQueue = new PriorityQueue();
+
+	/**
+	 *  @private
+	 *  A flag indicating whether there are objects
+	 *  in the invalidatePropertiesQueue.
+	 *  It is set true by invalidateProperties()
+	 *  and set false by validateProperties().
+	 */
+	private var invalidatePropertiesFlag:Boolean = false;
+
+	// flag when in validateClient to check the properties queue again
+	private var invalidateClientPropertiesFlag:Boolean = false;
+
+	/**
+	 *  @private
+	 *  A queue of objects to be processed during the second phase
+	 *  of invalidation processing, when an ILayoutManagerClient  has
+	 *  its validateSize() method called (which in a UIComponent
+	 *  calls measure()).
+	 *  Objects are added to this queue by invalidateSize().
+	 *  and removed by validateSize().
+	 */
+	private var invalidateSizeQueue:PriorityQueue = new PriorityQueue();
+
+	/**
+	 *  @private
+	 *  A flag indicating whether there are objects
+	 *  in the invalidateSizeQueue.
+	 *  It is set true by invalidateSize()
+	 *  and set false by validateSize().
+	 */
+	private var invalidateSizeFlag:Boolean = false;
+
+	// flag when in validateClient to check the size queue again
+	private var invalidateClientSizeFlag:Boolean = false;
+
+	/**
+	 *  @private
+	 *  A queue of objects to be processed during the third phase
+	 *  of invalidation processing, when an ILayoutManagerClient  has
+	 *  its validateDisplayList() method called (which in a
+	 *  UIComponent calls updateDisplayList()).
+	 *  Objects are added to this queue by invalidateDisplayList()
+	 *  and removed by validateDisplayList().
+	 */
+	private var invalidateDisplayListQueue:PriorityQueue = new PriorityQueue();
+
+	/**
+	 *  @private
+	 *  A flag indicating whether there are objects
+	 *  in the invalidateDisplayListQueue.
+	 *  It is set true by invalidateDisplayList()
+	 *  and set false by validateDisplayList().
+	 */
+	private var invalidateDisplayListFlag:Boolean = false;
+
+	/**
+	 *  @private
+	 */
+	private var callLaterObject:UIComponent;
+
+	/**
+	 *  @private
+	 */
+	private var callLaterPending:Boolean = false;
+
+	/**
+	 *  @private
+	 */
+	private var originalFrameRate:Number;
+
+	/**
+	 *  @private
+	 *  used in validateClient to quickly estimate whether we have to
+	 *  search the queues again
+	 */
+	private var targetLevel:int = int.MAX_VALUE;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  usePhasedInstantiation
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the usePhasedInstantiation property.
+	 */
+	private var _usePhasedInstantiation:Boolean = false;
+
+	/**
+	 *  A flag that indicates whether the LayoutManager allows screen updates
+	 *  between phases.
+	 *  If true, measurement and layout are done in phases, one phase
+	 *  per screen update.
+	 *  All components have their validateProperties()
+	 *  and commitProperties() methods
+	 *  called until all their properties are validated.
+	 *  The screen will then be updated.
+	 *
+	 *
Then all components will have their validateSize()
+	 *  and measure()
+	 *  methods called until all components have been measured, then the screen
+	 *  will be updated again.

+	 *
+	 *
Finally, all components will have their
+	 *  validateDisplayList() and
+	 *  updateDisplayList() methods called until all components
+	 *  have been validated, and the screen will be updated again.
+	 *  If in the validation of one phase, an earlier phase gets invalidated,
+	 *  the LayoutManager starts over.
+	 *  This is more efficient when large numbers of components
+	 *  are being created an initialized.  The framework is responsible for setting
+	 *  this property.

+	 *
+	 *
If false, all three phases are completed before the screen is updated.

+	 */
+	public function get usePhasedInstantiation():Boolean
+	{
+		return _usePhasedInstantiation;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set usePhasedInstantiation(value:Boolean):void
+	{
+		if (_usePhasedInstantiation != value)
+		{
+			_usePhasedInstantiation = value;
+
+			// While we're doing phased instantiation, temporarily increase
+			// the frame rate.  That will cause the enterFrame and render
+			// events to fire more promptly, which improves performance.
+			var stage:Stage = SystemManagerGlobals.topLevelSystemManagers[0].stage;
+			if (value)
+			{
+				originalFrameRate = stage.frameRate;
+				stage.frameRate = 1000;
+			}
+			else
+			{
+				stage.frameRate = originalFrameRate;
+			}
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods: Invalidation
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Adds an object to the list of components that want their
+	 *  validateProperties() method called.
+	 *  A component should call this method when a property changes.
+	 *  Typically, a property setter method
+	 *  stores a the new value in a temporary variable and calls
+	 *  the invalidateProperties() method
+	 *  so that its validateProperties()
+	 *  and commitProperties() methods are called
+	 *  later, when the new value will actually be applied to the component and/or
+	 *  its children.  The advantage of this strategy is that often, more than one
+	 *  property is changed at a time and the properties may interact with each
+	 *  other, or repeat some code as they are applied, or need to be applied in
+	 *  a specific order.  This strategy allows the most efficient method of
+	 *  applying new property values.
+	 *
+	 *  @param obj The object whose property changed.
+	 */
+	public function invalidateProperties(obj:ILayoutManagerClient ):void
+	{
+		if (!invalidatePropertiesFlag && ApplicationGlobals.application.systemManager)
+		{
+			invalidatePropertiesFlag = true;
+
+			if (!callLaterPending)
+			{
+				if (!callLaterObject)
+				{
+					callLaterObject = new UIComponent();
+					callLaterObject.systemManager =
+						ApplicationGlobals.application.systemManager;
+					callLaterObject.callLater(waitAFrame);
+				}
+				else
+				{
+					callLaterObject.callLater(doPhasedInstantiation);
+				}
+
+				callLaterPending = true;
+			}
+		}
+
+		// trace("LayoutManager adding " + Object(obj) + " to invalidatePropertiesQueue");
+
+		if (targetLevel <= obj.nestLevel)
+			invalidateClientPropertiesFlag = true;
+
+		invalidatePropertiesQueue.addObject(obj, obj.nestLevel);
+
+		// trace("LayoutManager added " + Object(obj) + " to invalidatePropertiesQueue");
+	}
+
+	/**
+	 *  Adds an object to the list of components that want their
+	 *  validateSize() method called.
+	 *  Called when an object's size changes.
+	 *
+	 *
An object's size can change for two reasons:

+	 *
+	 *

+	 *
The content of the object changes. For example, the size of a
+	 *    button changes when its label is changed.

+	 *
A script explicitly changes one of the following properties:
+	 *    minWidth, minHeight,
+	 *    explicitWidth, explicitHeight,
+	 *    maxWidth, or maxHeight.

+	 *

+	 *
+	 *
When the first condition occurs, it's necessary to recalculate
+	 *  the measurements for the object.
+	 *  When the second occurs, it's not necessary to recalculate the
+	 *  measurements because the new size of the object is known.
+	 *  However, it's necessary to remeasure and relayout the object's
+	 *  parent.

+	 *
+	 *  @param obj The object whose size changed.
+	 */
+	public function invalidateSize(obj:ILayoutManagerClient ):void
+	{
+		if (!invalidateSizeFlag && ApplicationGlobals.application.systemManager)
+		{
+			invalidateSizeFlag = true;
+
+			if (!callLaterPending)
+			{
+				if (!callLaterObject)
+				{
+					callLaterObject = new UIComponent();
+					callLaterObject.systemManager =
+						ApplicationGlobals.application.systemManager;
+					callLaterObject.callLater(waitAFrame);
+				}
+				else
+				{
+					callLaterObject.callLater(doPhasedInstantiation);
+				}
+
+				callLaterPending = true;
+			}
+		}
+
+		// trace("LayoutManager adding " + Object(obj) + " to invalidateSizeQueue");
+
+		if (targetLevel <= obj.nestLevel)
+			invalidateClientSizeFlag = true;
+
+		invalidateSizeQueue.addObject(obj, obj.nestLevel);
+
+		// trace("LayoutManager added " + Object(obj) + " to invalidateSizeQueue");
+	}
+
+	/**
+	 *  Called when a component changes in some way that its layout and/or visuals
+	 *  need to be changed.
+	 *  In that case, it is necessary to run the component's layout algorithm,
+	 *  even if the component's size hasn't changed.  For example, when a new child component
+	 *  is added, or a style property changes or the component has been given
+	 *  a new size by its parent.
+	 *
+	 *  @param obj The object that changed.
+	 */
+	public function invalidateDisplayList(obj:ILayoutManagerClient ):void
+	{
+		if (!invalidateDisplayListFlag && ApplicationGlobals.application.systemManager)
+		{
+			invalidateDisplayListFlag = true;
+
+			if (!callLaterPending)
+			{
+				if (!callLaterObject)
+				{
+					callLaterObject = new UIComponent();
+					callLaterObject.systemManager =
+						ApplicationGlobals.application.systemManager;
+					callLaterObject.callLater(waitAFrame);
+				}
+				else
+				{
+					callLaterObject.callLater(doPhasedInstantiation);
+				}
+
+				callLaterPending = true;
+			}
+		}
+
+		// trace("LayoutManager adding " + Object(obj) + " to invalidateDisplayListQueue");
+
+		invalidateDisplayListQueue.addObject(obj, obj.nestLevel);
+
+		// trace("LayoutManager added " + Object(obj) + " to invalidateDisplayListQueue");
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods: Commitment, measurement, layout, and drawing
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Validates all components whose properties have changed and have called
+	 *  the invalidateProperties() method.
+	 *  It calls the validateProperties() method on those components
+	 *  and will call validateProperties() on any other components that are
+	 *  invalidated while validating other components.
+	 */
+	private function validateProperties():void
+	{
+		// trace("--- LayoutManager: validateProperties --->");
+
+		// Keep traversing the invalidatePropertiesQueue until we've reached the end.
+		// More elements may get added to the queue while we're in this loop, or a
+		// a recursive call to this function may remove elements from the queue while
+		// we're in this loop.
+		var obj:ILayoutManagerClient = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallest());
+		while (obj)
+		{
+			// 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;
+			}
+
+			// Once we start, don't stop.
+			obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallest());
+		}
+
+		if (invalidatePropertiesQueue.isEmpty())
+		{
+			// trace("Properties Queue is empty");
+
+			invalidatePropertiesFlag = false;
+		}
+
+		// trace("<--- LayoutManager: validateProperties ---");
+	}
+
+	/**
+	 *  Validates all components whose properties have changed and have called
+	 *  the invalidateSize() method.
+	 *  It calls the validateSize() method on those components
+	 *  and will call the validateSize() method
+	 *  on any other components that are
+	 *  invalidated while validating other components.
+	 *  The validateSize() method  starts with
+	 *  the most deeply nested child in the tree of display objects
+	 */
+	private function validateSize():void
+	{
+		// trace("--- LayoutManager: validateSize --->");
+
+		var obj:ILayoutManagerClient = ILayoutManagerClient(invalidateSizeQueue.removeLargest());
+		while (obj)
+		{
+			// trace("LayoutManager calling validateSize() on " + Object(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());
+		}
+
+		if (invalidateSizeQueue.isEmpty())
+		{
+			// trace("Measurement Queue is empty");
+
+			invalidateSizeFlag = false;
+		}
+
+		// trace("<--- LayoutManager: validateSize ---");
+	}
+
+	/**
+	 *  Validates all components whose properties have changed and have called
+	 *  the invalidateDisplayList() method.
+	 *  It calls validateDisplayList() method on those components
+	 *  and will call the validateDisplayList() method
+	 *  on any other components that are
+	 *  invalidated while validating other components.
+	 *  The validateDisplayList() method starts with
+	 *  the least deeply nested child in the tree of display objects
+	 *
+	 */
+	private function validateDisplayList():void
+	{
+
+		// trace("--- LayoutManager: validateDisplayList --->");
+
+		var obj:ILayoutManagerClient = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallest());
+		while (obj)
+		{
+			// 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;
+			}
+
+			// trace("LayoutManager return from validateDisplayList on " + Object(obj) + " " + DisplayObject(obj).width + " " + DisplayObject(obj).height);
+
+			// Once we start, don't stop.
+			obj = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallest());
+		}
+
+
+		if (invalidateDisplayListQueue.isEmpty())
+		{
+			// trace("Layout Queue is empty");
+
+			invalidateDisplayListFlag = false;
+		}
+
+		// trace("<--- LayoutManager: validateDisplayList ---");
+	}
+
+	/**
+	 *  @private
+	 */
+	private function doPhasedInstantiation():void
+	{
+		// trace(">>DoPhasedInstantation");
+
+		// If phasing, do only one phase: validateProperties(),
+		// validateSize(), or validateDisplayList().
+		if (usePhasedInstantiation)
+		{
+			if (invalidatePropertiesFlag)
+			{
+				validateProperties();
+
+				// The Preloader listens for this event.
+				ApplicationGlobals.application.dispatchEvent(
+					new Event("validatePropertiesComplete"));
+			}
+
+			else if (invalidateSizeFlag)
+			{
+				validateSize();
+
+				// The Preloader listens for this event.
+				ApplicationGlobals.application.dispatchEvent(
+					new Event("validateSizeComplete"));
+			}
+
+			else if (invalidateDisplayListFlag)
+			{
+				validateDisplayList();
+
+				// The Preloader listens for this event.
+				ApplicationGlobals.application.dispatchEvent(
+					new Event("validateDisplayListComplete"));
+			}
+		}
+
+		// Otherwise, do one pass of all three phases.
+		else
+		{
+			if (invalidatePropertiesFlag)
+				validateProperties();
+
+			if (invalidateSizeFlag)
+				validateSize();
+
+			if (invalidateDisplayListFlag)
+				validateDisplayList();
+		}
+
+		//// trace("invalidatePropertiesFlag " + invalidatePropertiesFlag);
+		//// trace("invalidateSizeFlag " + invalidateSizeFlag);
+		//// trace("invalidateDisplayListFlag " + invalidateDisplayListFlag);
+
+		if (invalidatePropertiesFlag ||
+			invalidateSizeFlag ||
+			invalidateDisplayListFlag)
+		{
+			callLaterObject.callLater(doPhasedInstantiation);
+		}
+		else
+		{
+			usePhasedInstantiation = false;
+
+			callLaterPending = false;
+
+			var obj:ILayoutManagerClient = ILayoutManagerClient(updateCompleteQueue.removeLargest());
+			while (obj)
+			{
+				if (!obj.initialized && obj.processedDescriptors)
+					obj.initialized = true;
+				obj.dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE));
+				obj.updateCompletePendingFlag = false;
+				obj = ILayoutManagerClient(updateCompleteQueue.removeLargest());
+			}
+
+			// trace("updateComplete");
+
+			dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE));
+		}
+
+		// trace("<<DoPhasedInstantation");
+	}
+
+	/**
+	 *  When properties are changed, components generally do not apply those changes immediately.
+	 *  Instead the components usually call one of the LayoutManager's invalidate methods and
+	 *  apply the properties at a later time.  The actual property you set can be read back
+	 *  immediately, but if the property affects other properties in the component or its
+	 *  children or parents, those other properties may not be immediately updated.  To
+	 *  guarantee that the values are updated, you can call the validateNow() method.
+	 *  It updates all properties in all components before returning.
+	 *  Call this method only when necessary as it is a computationally intensive call.
+	 */
+	public function validateNow():void
+	{
+		if (!usePhasedInstantiation)
+		{
+			var infiniteLoopGuard:int = 0;
+			while (callLaterPending && infiniteLoopGuard++ < 100)
+				doPhasedInstantiation();
+		}
+	}
+
+	/**
+	 *  When properties are changed, components generally do not apply those changes immediately.
+	 *  Instead the components usually call one of the LayoutManager's invalidate methods and
+	 *  apply the properties at a later time.  The actual property you set can be read back
+	 *  immediately, but if the property affects other properties in the component or its
+	 *  children or parents, those other properties may not be immediately updated.
+	 *
+	 *
To guarantee that the values are updated,
+	 *  you can call the validateClient() method.
+	 *  It updates all properties in all components whose nest level is greater than or equal
+	 *  to the target component before returning.
+	 *  Call this method only when necessary as it is a computationally intensive call.

+	 *
+	 *  @param target The component passed in is used to test which components
+	 *  should be validated.  All components contained by this component will have their
+	 *  validateProperties(), commitProperties(),
+	 *  validateSize(), measure(),
+	 *  validateDisplayList(),
+	 *  and updateDisplayList() methods called.
+	 *
+	 *	@param skipDisplayList If true,
+	 *  does not call the validateDisplayList()
+	 *  and updateDisplayList() methods.
+	 */
+	public function validateClient(target:ILayoutManagerClient, skipDisplayList:Boolean = false):void
+	{
+		var obj:ILayoutManagerClient;
+		var i:int = 0;
+		var done:Boolean = false;
+		var oldTargetLevel:int = targetLevel;
+
+		// the theory here is that most things that get validated are deep in the tree
+		// and so there won't be nested calls to validateClient.  However if there is,
+		// we don't want to have a more sophisticated scheme of keeping track
+		// of dirty flags at each level that is being validated, but we definitely
+		// do not want to keep scanning the queues unless we're pretty sure that
+		// something might be dirty so we just say that if something got dirty
+		// during this call at a deeper nesting than the first call to validateClient
+		// then we'll scan the queues.  So we only change targetLevel if we're the
+		// outer call to validateClient and only that call restores it.
+		if (targetLevel == int.MAX_VALUE)
+			targetLevel = target.nestLevel;
+
+		// trace("--- LayoutManager: validateClient ---> target = " + target);
+
+		while (!done)
+		{
+			// assume we won't find anything
+			done = true;
+
+			// Keep traversing the invalidatePropertiesQueue until we've reached the end.
+			// More elements may get added to the queue while we're in this loop, or a
+			// a recursive call to this function may remove elements from the queue while
+			// we're in this loop.
+			obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target));
+			while (obj)
+			{
+				// 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;
+				}
+
+				// Once we start, don't stop.
+				obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target));
+			}
+
+			if (invalidatePropertiesQueue.isEmpty())
+			{
+				// trace("Properties Queue is empty");
+
+				invalidatePropertiesFlag = false;
+				invalidateClientPropertiesFlag = false;
+			}
+
+			// trace("--- LayoutManager: validateSize --->");
+
+			obj = ILayoutManagerClient(invalidateSizeQueue.removeLargestChild(target));
+			while (obj)
+			{
+				// trace("LayoutManager calling validateSize() on " + Object(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);
+
+				if (invalidateClientPropertiesFlag)
+				{
+					// did any properties get invalidated while validating size?
+					obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target));
+					if (obj)
+					{
+						// re-queue it. we'll pull it at the beginning of the loop
+						invalidatePropertiesQueue.addObject(obj, obj.nestLevel);
+						done = false;
+						break;
+					}
+				}
+
+				obj = ILayoutManagerClient(invalidateSizeQueue.removeLargestChild(target));
+			}
+
+			if (invalidateSizeQueue.isEmpty())
+			{
+				// trace("Measurement Queue is empty");
+
+				invalidateSizeFlag = false;
+				invalidateClientSizeFlag = false;
+			}
+
+			if (!skipDisplayList)
+			{
+				// trace("--- LayoutManager: validateDisplayList --->");
+
+				obj = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallestChild(target));
+				while (obj)
+				{
+					// 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;
+					}
+
+					// trace("LayoutManager return from validateDisplayList on " + Object(obj) + " " + DisplayObject(obj).width + " " + DisplayObject(obj).height);
+
+					if (invalidateClientPropertiesFlag)
+					{
+						// did any properties get invalidated while validating size?
+						obj = ILayoutManagerClient(invalidatePropertiesQueue.removeSmallestChild(target));
+						if (obj)
+						{
+							// re-queue it. we'll pull it at the beginning of the loop
+							invalidatePropertiesQueue.addObject(obj, obj.nestLevel);
+							done = false;
+							break;
+						}
+					}
+
+					if (invalidateClientSizeFlag)
+					{
+						obj = ILayoutManagerClient(invalidateSizeQueue.removeLargestChild(target));
+						if (obj)
+						{
+							// re-queue it. we'll pull it at the beginning of the loop
+							invalidateSizeQueue.addObject(obj, obj.nestLevel);
+							done = false;
+							break;
+						}
+					}
+
+					// Once we start, don't stop.
+					obj = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallestChild(target));
+				}
+
+
+				if (invalidateDisplayListQueue.isEmpty())
+				{
+					// trace("Layout Queue is empty");
+
+					invalidateDisplayListFlag = false;
+				}
+			}
+		}
+
+		if (oldTargetLevel == int.MAX_VALUE)
+		{
+			targetLevel = int.MAX_VALUE;
+			if (!skipDisplayList)
+			{
+				obj = ILayoutManagerClient(updateCompleteQueue.removeLargestChild(target));
+				while (obj)
+				{
+					if (!obj.initialized)
+						obj.initialized = true;
+					obj.dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE));
+					obj.updateCompletePendingFlag = false;
+					obj = ILayoutManagerClient(updateCompleteQueue.removeLargestChild(target));
+				}
+			}
+		}
+
+		// trace("<--- LayoutManager: validateClient --- target = " + target);
+	}
+
+	/**
+	 *  Returns true if there are components that need validating;
+	 *  false if all components have been validated.
+	 */
+	public function isInvalid():Boolean
+	{
+		return invalidatePropertiesFlag ||
+			   invalidateSizeFlag ||
+			   invalidateDisplayListFlag;
+	}
+
+	/**
+	 *  @private
+	 *  callLater() is called immediately after an object is created.
+	 *  We really want to wait one more frame before starting in.
+	 */
+	private function waitAFrame():void
+	{
+		//// trace(">>LayoutManager:WaitAFrame");
+
+		callLaterObject.callLater(doPhasedInstantiation);
+
+		//// trace("<<LayoutManager:WaitAFrame");
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 3222
Author:   jimurphy@adobe.com
Date:     2008-09-16T14:09:08.134976Z

Log Message:
-----------
Merged 3.0.x revisions 3157,3162,3165-3166,3168,3177,3180-3183,3185,3187,3189,3199 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TileList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.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/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<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/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.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/events/InterManagerRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -1142,7 +1142,6 @@
 		if (!_screen)
 			Stage_resizeHandler();

-		// VERSION_SKEW
 		if (!isStageRoot)
 		{
 			Stage_resizeHandler();
@@ -1301,16 +1300,6 @@
         return false;   // assume the worst
     }

-
-	// VERSION_SKEW
-	/**
-	 * @private
-	 *
-	 * true if dispatching a mouse bridge event. We don't want to
-	 * handle our own event.
-	 */
-	private var isDispatchingBridgeMouseEvent:Boolean;
-
 	/**
 	 * @private
 	 *
@@ -1356,13 +1345,10 @@

 			try
 			{
-				// TODODJL: problem loading untrusted children, stage is null and we don't
-				// add the listener we wanted.
 				if (stage)
 					stage.addEventListener(type, listener, useCapture, priority, useWeakReference);
 				else
 					super.addEventListener(type, listener, useCapture, priority, useWeakReference);
-
 			}
 			catch (error:SecurityError)
 			{
@@ -1479,9 +1465,11 @@

 			try
 			{
+			    // Remove both listeners in case the system manager was added
+			    // or removed from the stage after the listener was added.
 				if (stage)
 					stage.removeEventListener(type, listener, useCapture);
-				else
+
 					super.removeEventListener(type, listener, useCapture);
 			}
 			catch (error:SecurityError)
@@ -2801,7 +2789,6 @@
 	{
 		if (mouseCatcher)
 		{
-			// VERSION_SKEW
 			try
 			{
 			var g:Graphics = mouseCatcher.graphics;
@@ -2810,7 +2797,6 @@
 			g.beginFill(0x000000, 0);
 			g.drawRect(0, 0, s.width, s.height);
 			g.endFill();
-
 			}
 			catch (e:SecurityError)
 			{
@@ -2877,6 +2863,10 @@
 		if (getSandboxRoot() == this)
 		{
 			addEventListener(InterManagerRequest.SYSTEM_MANAGER_REQUEST, systemManagerHandler);
+			addEventListener(InterManagerRequest.DRAG_MANAGER_REQUEST, multiWindowRedispatcher);
+			// listened for w/o use of constants because of dependency issues
+			//addEventListener(InterDragManagerEvent.DISPATCH_DRAG_EVENT, multiWindowRedispatcher);
+			addEventListener("dispatchDragEvent", multiWindowRedispatcher);

             addEventListener(SWFBridgeRequest.ADD_POP_UP_REQUEST, addPopupRequestHandler);
             addEventListener(SWFBridgeRequest.REMOVE_POP_UP_REQUEST, removePopupRequestHandler);
@@ -3276,13 +3266,16 @@
 		var h:Number;
 		var m:Number = loaderInfo.width;
 		var n:Number = loaderInfo.height;
-
-        // if we don't have access to the stage, when use the size of
-        // the sandbox root.
+        var align:String = StageAlign.TOP_LEFT;
+
+        // If we don't have access to the stage, then use the size of
+        // the sandbox root and align to StageAlign.TOP_LEFT.
         try
         {
             w = stage.stageWidth;
             h = stage.stageHeight;
+            if (stage)
+                align = stage.align;
         }
         catch (error:SecurityError)
         {
@@ -3294,9 +3287,6 @@
 		var x:Number = (m - w) / 2;
 		var y:Number = (n - h) / 2;

-		// TODODJL: if not stage root defaulting to top,left.
-		var align:String = isStageRoot ? stage.align : StageAlign.TOP_LEFT;
-
 		if (align == StageAlign.TOP)
 		{
 			y = 0;
@@ -3566,7 +3556,8 @@
 		// popup, then don't host the pop up.
 		if (event.target != this)
 		{
-		var bridgeProvider:ISWFBridgeProvider = swfBridgeGroup.getChildBridgeProvider(popUpRequest.requestor);
+    		var bridgeProvider:ISWFBridgeProvider = swfBridgeGroup.getChildBridgeProvider(
+    		                                        IEventDispatcher(event.target));
 		if (!SecurityUtil.hasMutualTrustBetweenParentAndChild(bridgeProvider))
 		{
 			return;
@@ -4290,10 +4281,25 @@
 	}

 	/**
+	 * redispatch certian events to other top-level windows
+	 */
+	private function multiWindowRedispatcher(event:Event):void
+	{
+		if (!dispatchingToSystemManagers)
+		{
+			dispatchEventToOtherSystemManagers(event);
+		}
+	}
+
+	/**
 	 * Create the requested manager
 	 */
 	private function initManagerHandler(event:Event):void
 	{
+		if (!dispatchingToSystemManagers)
+		{
+			dispatchEventToOtherSystemManagers(event);
+		}
 		// if we are broadcasting messages, ignore the messages
 		// we send to ourselves.
 		if (event is InterManagerRequest)
@@ -4991,13 +4997,7 @@

 	private var dispatchingToSystemManagers:Boolean = false;

-	/**
-	 *  @inheritDoc
-	 */
-	public function dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher = null,
-						trackClones:Boolean = false, toOtherSystemManagers:Boolean = false):void
-	{
-		if (toOtherSystemManagers)
+	private function dispatchEventToOtherSystemManagers(event:Event):void
 		{
 			dispatchingToSystemManagers = true;
 			var arr:Array = SystemManagerGlobals.topLevelSystemManagers;
@@ -5010,6 +5010,17 @@
 				}
 			}
 			dispatchingToSystemManagers = false;
+		}
+
+	/**
+	 *  @inheritDoc
+	 */
+	public function dispatchEventFromSWFBridges(event:Event, skip:IEventDispatcher = null,
+						trackClones:Boolean = false, toOtherSystemManagers:Boolean = false):void
+	{
+		if (toOtherSystemManagers)
+		{
+			dispatchEventToOtherSystemManagers(event);
 		}

 		if (!swfBridgeGroup)
@@ -5023,11 +5034,15 @@
 		var parentBridge:IEventDispatcher = swfBridgeGroup.parentBridge;
 		if (parentBridge && parentBridge != skip)
 		{
+		    // Ensure the requestor property has the correct bridge.
+            if (clone is SWFBridgeRequest)
+                SWFBridgeRequest(clone).requestor = parentBridge;
+
 			parentBridge.dispatchEvent(clone);
 		}

 		var children:Array = swfBridgeGroup.getChildBridges();
-		for (i = 0; i < children.length; i++)
+		for (var i:int = 0; i < children.length; i++)
 		{
 			if (children[i] != skip)
 			{
@@ -5035,7 +5050,11 @@
 				clone = event.clone();
 				if (trackClones)
 					currentSandboxEvent = clone;
-			    // TODODJL: could be sharing parentBridge with children
+
+                // Ensure the requestor property has the correct bridge.
+    	        if (clone is SWFBridgeRequest)
+                    SWFBridgeRequest(clone).requestor = IEventDispatcher(children[i]);
+
 				IEventDispatcher(children[i]).dispatchEvent(clone);
 			}
 		}
@@ -5283,13 +5302,22 @@
 					super.addEventListener(MouseEvent.MOUSE_MOVE, resetMouseCursorTracking, true, EventPriority.CURSOR_MANAGEMENT + 1, true);
 				}

+                // add listeners in other sandboxes in capture mode so we don't miss anything
 				addEventListenerToSandboxes(request.eventType, sandboxMouseListener,
-							request.useCapture, request.priority, request.useWeakReference, event.target as IEventDispatcher);
+							true, request.priority, request.useWeakReference, event.target as IEventDispatcher);
 				addEventListenerToOtherSystemManagers(request.eventType, otherSystemManagerMouseListener,
-							request.useCapture, request.priority, request.useWeakReference);
+							true, request.priority, request.useWeakReference);
 				if (getSandboxRoot() == this)
+				{
+				    if (isTopLevelRoot() && actualType == MouseEvent.MOUSE_UP)
+				    {
+				        stage.addEventListener(actualType, eventProxy.marshalListener,
+                            false, request.priority, request.useWeakReference);
+				    }
+
                     super.addEventListener(actualType, eventProxy.marshalListener,
-                            request.useCapture, request.priority, request.useWeakReference);
+                        true, request.priority, request.useWeakReference);
+                }
 			}
 		}
 		else if (event.type == EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST)
@@ -5297,12 +5325,18 @@
             actualType = EventUtil.sandboxMouseEventMap[request.eventType];
             if (actualType)
             {
-				removeEventListenerFromOtherSystemManagers(request.eventType, otherSystemManagerMouseListener, request.useCapture);
+				removeEventListenerFromOtherSystemManagers(request.eventType, otherSystemManagerMouseListener, true);
                 removeEventListenerFromSandboxes(request.eventType, sandboxMouseListener,
-                            request.useCapture, event.target as IEventDispatcher);
+                            true, event.target as IEventDispatcher);
                 if (getSandboxRoot() == this)
-                    super.removeEventListener(actualType, eventProxy.marshalListener,
-                            request.useCapture);
+                {
+                    if (isTopLevelRoot() && actualType == MouseEvent.MOUSE_UP)
+                    {
+                        stage.removeEventListener(actualType, eventProxy.marshalListener);
+                    }
+
+                    super.removeEventListener(actualType, eventProxy.marshalListener, true);
+                }
             }
         }
 	}


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

--- frameworks/projects/mx/src/mx/events/DateChooserEventDetail.as
+++ frameworks/projects/mx/src/mx/events/DateChooserEventDetail.as
@@ -17,6 +17,11 @@
  *  of a DateChooserEvent object.
  *
  *  @see mx.events.DateChooserEvent
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public final class DateChooserEventDetail
 {
@@ -30,21 +35,41 @@

 	/**
 	 *  Indicates that the user scrolled the calendar to the next month.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const NEXT_MONTH:String = "nextMonth";

 	/**
 	 *  Indicates that the user scrolled the calendar to the next year.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const NEXT_YEAR:String = "nextYear";

 	/**
 	 *  Indicates that the user scrolled the calendar to the previous month.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const PREVIOUS_MONTH:String = "previousMonth";

 	/**
 	 *  Indicates that the user scrolled the calendar to the previous year.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const PREVIOUS_YEAR:String = "previousYear";
 }


Preparing to compile narya com/threerings/util as part of whirled sdk: Assert.as needs Capabilities.isDebugger and a class called flash.system.System

--- tamarin-central/thane/toplevel.as
+++ tamarin-central/thane/toplevel.as
@@ -56,7 +56,13 @@
 	public final class Capabilities
 	{
 		public static function get playerType():String { return "AVMPlus"; }
+            // TODO: when are we a debugger?
+            public static const isDebugger :Boolean = false;
 	}
+
+        public final class System
+        {
+        }
 }

 package {


2.4.1

--- framework_src/example-tvos/src/Main.as
+++ framework_src/example-tvos/src/Main.as
@@ -24,7 +24,7 @@
 [SWF(width="1920", height="1080", frameRate="60", backgroundColor="#F1F1F1")]
 public class Main extends Sprite {
     private var ane:FreSwiftExampleANE = new FreSwiftExampleANE();
-
+    public static const isTvos:Boolean = Capabilities.os.toLowerCase().indexOf("tvos") > -1;
     public function Main() {
         super();
         stage.align = StageAlign.TOP_LEFT;
@@ -32,7 +32,7 @@
         NativeApplication.nativeApplication.addEventListener(Event.EXITING, onExiting);

         trace(Capabilities.screenResolutionX + "x" + Capabilities.screenResolutionY );
-        trace("Capabilities.version:", Capabilities.version, Capabilities.os);
+        trace("isTvos:", isTvos);

         var textField:TextField = new TextField();


Transferred from the Adobe Open Source Subversion Repository

Revision: 152
Author:   proberts@adobe.com
Date:     2008-01-10T20:10:08.980954Z

Log Message:
-----------
Severity: ignore
Description: docs update -- added @mxml sections to class descriptions for Flex AIR UI controls that didn't already have one

Modified Paths:
--------------
<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/airframework/src/mx/controls/FileSystemList.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/airframework/src/mx/controls/FileSystemDataGrid.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>

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

--- frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as
+++ frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as
@@ -91,7 +91,28 @@
  *  this control dispatches a change event.
  *  After the event is dispatched data provider, and consequently the dropdown list,
  *  contain the selected directory's ancestors.

- *
+ *
+ *  @mxml
+ *
+ *
The <mx:FileSystemComboBox> tag inherits all of the tag
+ *  attributes of its superclass and adds the following tag attributes:

+ *
+ *

+ *  <mx:FileSystemComboBox
+ *    Properties
+ *    directory="null"
+ *    indent="8"
+ *    showIcons="true"
+ *
+ *    Styles
+ *    computerIcon="null"
+ *    directoryIcon="TreeNodeIcon"
+ *
+ *    Events
+ *    directoryChange="No default"
+ *  />
+ *

+ *
  *  @see flash.filesystem.File
  *  @see mx.controls.FileSystemList
  *  @see mx.controls.FileSystemTree


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 1098
Author:   jimurphy@adobe.com
Date:     2008-04-03T21:50:39.896200Z

Log Message:
-----------
Merge 3.0.x -- 362:394, 427:429, 603:608, 644:645, 651:663, 672:676, 755:756, 763:766, 785:790, 812:814, 854:861, 862:866, 866:933,971:1009, 1050:1056 --> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/DefaultDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IRepeaterClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/Locale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.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/messages/SOAPMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IBrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ComponentDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IViewCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/IMenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ILayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Spacer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Fault.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/XMLListCollection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SliderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ScrollEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/CuePointManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/NumericStepperEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/events/ChannelFaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/CursorBookmark.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/LoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/FlexClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/SubscriptionInfo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/LogLogger.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/HeaderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/ITreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>

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


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

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

 package mx.messaging.errors
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11287
Author:   gruehle@adobe.com
Date:     2009-10-30T00:01:12.176166Z

Log Message:
-----------
Fixed injection in 11208 that caused some pixels to be ignored when mousing over item renderers.

QE notes: None.
Doc notes: None.
Bugs: SDK-23919
Reviewer: Evtim
Tests run: checkintests
Is noteworthy for integration: No.

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

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
@@ -518,8 +518,7 @@
             }
         }

-        if (drawBackground)
-            graphics.beginFill(backgroundColor, 1);
+        graphics.beginFill(backgroundColor, drawBackground ? 1 : 0);

         if (showsCaret)
         {
@@ -532,8 +531,7 @@
             graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
         }

-        if (drawBackground)
-            graphics.endFill();
+        graphics.endFill();

         labelDisplay.move(3, 5);
         labelDisplay.setActualSize(unscaledWidth - 6, unscaledHeight - 10);


Add log to KrewStateMachine

Add log to KrewStateMachine

--- krew-framework/krewfw/builtin_actor/system/KrewStateMachine.as
+++ krew-framework/krewfw/builtin_actor/system/KrewStateMachine.as
@@ -277,6 +277,7 @@
         //------------------------------------------------------------

         private function _onEvent(args:Object, event:String):void {
+            _log("[Info] [KrewFSM] EVENT: " + event);
             _currentState.onEvent(args, event);
         }


Need to call proxy_pair.connect.

Need to call proxy_pair.connect.

--- swfcat.as
+++ swfcat.as
@@ -114,6 +114,7 @@
             }

             proxy_pair = new ProxyPair(this, client_addr, DEFAULT_TOR_ADDR);
+            proxy_pair.connect();
         }

         /* Parse an address in the form "host:port". Returns an Object with


Tweak CalloutSkin.  The arrow tip has a curve.

--- frameworks/projects/mobiletheme/src/spark/skins/ios7/supportClasses/CalloutArrow.as
+++ frameworks/projects/mobiletheme/src/spark/skins/ios7/supportClasses/CalloutArrow.as
@@ -55,7 +55,7 @@
     {
         super();

-        useBackgroundGradient = true;
+        useBackgroundGradient = false;

 		var applicationDPI:Number = DPIClassification.DPI_160;
 		if (FlexGlobals.topLevelApplication is Application)
@@ -72,6 +72,7 @@
 				gap = 32;
 				backgroundGradientHeight = 440;
 				highlightWeight = 4;
+				arrowTipCurveAnchorDistance = 12;

 				break;
 			}
@@ -81,6 +82,7 @@
 				gap = 24;
 				backgroundGradientHeight = 330;
 				highlightWeight = 3;
+				arrowTipCurveAnchorDistance = 8;

 				break;
 			}
@@ -89,6 +91,7 @@
                 gap = 16;
                 backgroundGradientHeight = 220;
                 highlightWeight = 2;
+				arrowTipCurveAnchorDistance = 6;

                 break;
             }
@@ -97,6 +100,7 @@
 				gap = 12;
 				backgroundGradientHeight = 165;
 				highlightWeight = 1;
+				arrowTipCurveAnchorDistance = 4;

 				break;
 			}
@@ -106,6 +110,7 @@
 				gap = 6;
 				backgroundGradientHeight = 83;
 				highlightWeight = 1;
+				arrowTipCurveAnchorDistance = 2;

 				break;
 			}
@@ -115,6 +120,7 @@
                 gap = 8;
                 backgroundGradientHeight = 110;
                 highlightWeight = 1;
+				arrowTipCurveAnchorDistance = 3;

                 break;
             }
@@ -166,6 +172,11 @@
      *  A sibling of the arrow used to erase the drop shadow in CalloutSkin
      */
     private var eraseFill:Sprite;
+
+	/**
+	 * The distance of the arrow tip's curve's anchor point from arrow tip
+	 */
+	private var arrowTipCurveAnchorDistance:Number;

     /* helper private accessors */

@@ -238,6 +249,12 @@

         var borderHalf:Number = borderWeight / 2;
         var isHorizontal:Boolean = false;
+		var commands:Vector.<int> = new Vector.<int>(4, true);
+		var coords:Vector.<Number> = new Vector.<Number>(10, true);
+		commands[0] = GraphicsPathCommand.MOVE_TO;
+		commands[1] = GraphicsPathCommand.LINE_TO;
+		commands[2] = GraphicsPathCommand.CURVE_TO;
+		commands[3] = GraphicsPathCommand.LINE_TO;

         if ((arrowDirection == ArrowDirection.LEFT) ||
             (arrowDirection == ArrowDirection.RIGHT))
@@ -261,6 +278,24 @@
                 arrowTipX = arrowWidth - arrowTipX;
                 arrowEndX = arrowWidth - arrowEndX;
             }
+
+			coords[0] = arrowX;
+			coords[1] = arrowY;
+			coords[2] = arrowTipX + arrowTipCurveAnchorDistance;
+			coords[3] = arrowTipY - arrowTipCurveAnchorDistance;
+            if (arrowDirection == ArrowDirection.LEFT)
+            {
+				coords[4] = arrowTipX - arrowTipCurveAnchorDistance * 2;
+            }
+			else
+			{
+				coords[4] = arrowTipX + arrowTipCurveAnchorDistance * 2;
+			}
+			coords[5] = arrowTipY;
+			coords[6] = arrowTipX + arrowTipCurveAnchorDistance;
+			coords[7] = arrowTipY + arrowTipCurveAnchorDistance;
+			coords[8] = arrowEndX
+			coords[9] = arrowEndY;
         }
         else
         {
@@ -281,20 +316,26 @@
                 arrowTipY = arrowHeight - arrowTipY;
                 arrowEndY = arrowHeight - arrowEndY;
             }
-        }
-
-        var commands:Vector.<int> = new Vector.<int>(3, true);
-        commands[0] = GraphicsPathCommand.MOVE_TO;
-        commands[1] = GraphicsPathCommand.LINE_TO;
-        commands[2] = GraphicsPathCommand.LINE_TO;
-
-        var coords:Vector.<Number> = new Vector.<Number>(6, true);
-        coords[0] = arrowX;
-        coords[1] = arrowY;
-        coords[2] = arrowTipX
-        coords[3] = arrowTipY;
-        coords[4] = arrowEndX
-        coords[5] = arrowEndY;
+
+			coords[0] = arrowX;
+			coords[1] = arrowY;
+			coords[2] = arrowTipX - arrowTipCurveAnchorDistance;
+			coords[3] = arrowTipY - arrowTipCurveAnchorDistance;
+			coords[4] = arrowTipX;
+            if (hostComponent.arrowDirection == ArrowDirection.UP)
+            {
+				coords[5] = arrowTipY - arrowTipCurveAnchorDistance * 2;
+			}
+			else
+			{
+				coords[5] = arrowTipY + arrowTipCurveAnchorDistance * 2;
+			}
+			coords[6] = arrowTipX + arrowTipCurveAnchorDistance;
+			coords[7] = arrowTipY - arrowTipCurveAnchorDistance;
+			coords[8] = arrowEndX
+			coords[9] = arrowEndY;
+        }
+

         var backgroundColor:Number = getStyle("backgroundColor");
         var backgroundAlpha:Number = getStyle("backgroundAlpha");


Transferred from the Adobe Open Source Subversion Repository

Revision: 4495
Author:   egeorgie@adobe.com
Date:     2009-01-13T00:30:08.221741Z

Log Message:
-----------
Fix bug http://bugs.adobe.com/jira/browse/SDK-18615 FxButton setting focusThickness does not change thickness of focus ring, http://bugs.adobe.com/jira/browse/SDK-18619 Setting themeColor on FxButton does nothing
Fix: Exclude metadata for non-relevant styles being inherited from UIComponent to FxComponent

QE Notes: None
Doc Notes: None
Bugs: SDK-18615, SDK-18619
Reviewer: Glenn, Ryan
tests:

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/SparkColorStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -52,6 +52,15 @@
  *  the mx.components.Skin class.
  */
 [Style(name="skinClass", type="Class")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="errorColor", kind="style")]
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+[Exclude(name="themeColor", kind="style")]

 /**
  *  The FxComponent class defines the base class for skinnable components.


Added styles to correspond to 4 new text layout formats in TLF3 (containerBreakBefore/After, columnBreakBefore/After).  These should have gone in with the TLF3 integration.

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

--- frameworks/projects/spark/src/spark/styles/metadata/AdvancedInheritingTextStyles.as
+++ frameworks/projects/spark/src/spark/styles/metadata/AdvancedInheritingTextStyles.as
@@ -70,6 +70,74 @@
 [Style(name="clearFloats", type="String", enumeration="start,end,left,right,both,none", inherit="yes")]

 /**
+ *  Controls column break after the element.
+ *
+ *
For the Spark theme, see
+ *  flashx.textLayout.formats.ITextLayoutFormat.columnBreakAfter.

+ *
+ *
For the Mobile theme, this is not supported.

+ *
+ *  @see flashx.textLayout.formats.ITextLayoutFormat#columnBreakAfter
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 11
+ *  @playerversion AIR 3
+ *  @productversion Flex 5.0
+ */
+[Style(name="columnBreakAfter", type="String", enumeration="auto,always", inherit="yes")]
+
+/**
+ *  Controls column break before the element.
+ *
+ *
For the Spark theme, see
+ *  flashx.textLayout.formats.ITextLayoutFormat.columnBreakBefore.

+ *
+ *
For the Mobile theme, this is not supported.

+ *
+ *  @see flashx.textLayout.formats.ITextLayoutFormat#columnBreakBefore
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 11
+ *  @playerversion AIR 3
+ *  @productversion Flex 5.0
+ */
+[Style(name="columnBreakBefore", type="String", enumeration="auto,always", inherit="yes")]
+
+/**
+ *  Controls container break after the element.
+ *
+ *
For the Spark theme, see
+ *  flashx.textLayout.formats.ITextLayoutFormat.containerBreakAfter.

+ *
+ *
For the Mobile theme, this is not supported.

+ *
+ *  @see flashx.textLayout.formats.ITextLayoutFormat#containerBreakAfter
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 11
+ *  @playerversion AIR 3
+ *  @productversion Flex 5.0
+ */
+[Style(name="containerBreakAfter", type="String", enumeration="auto,always", inherit="yes")]
+
+/**
+ *  Controls container break before the element.
+ *
+ *
For the Spark theme, see
+ *  flashx.textLayout.formats.ITextLayoutFormat.containerBreakBefore.

+ *
+ *
For the Mobile theme, this is not supported.

+ *
+ *  @see flashx.textLayout.formats.ITextLayoutFormat#containerBreakBefore
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 11
+ *  @playerversion AIR 3
+ *  @productversion Flex 5.0
+ */
+[Style(name="containerBreakBefore", type="String", enumeration="auto,always", inherit="yes")]
+
+/**
  *  Specifies the baseline position of the first line in the container.
  *
  *
For the Spark theme, see


Transferred from the Adobe Open Source Subversion Repository

Revision: 20013
Author:   harishs@adobe.com
Date:     2011-01-31T15:32:09.255609Z

Log Message:
-----------
QE notes: Globalization changes. Full cyclone run has been done. Default locale changes and sort bug fixes since Dec 14 2010
Doc notes: ASDOC comments for all classes have been updated.
Bugs: SDK-29132 SDK-29127 SDK-28163  SDK-29075 SDK-28600 SDK-28492 SDK-28856

Reviewer: Gordon Smith, Xie Fang, Zhigang Qi
Tests run: cyclone and checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/NumberValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/CollatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/GlobalizationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/SortingCollator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/LastOperationStatus.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/supportClasses/NumberFormatterBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/MatchingCollator.as</path>

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

--- frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as
+++ frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as
@@ -15,8 +15,8 @@
 import flash.globalization.NationalDigitsType;

 /**
- *  GlobalizationUtils is a utility class containing Unicode related functionality not
- *  supported directly in Flex or ActionScript.
+ *  GlobalizationUtils is a class containing Unicode related functionality
+ *  not supported directly in Flex or ActionScript.
  *
  *
This class contains the utility routines needed for all Validators.
  *  Examples of typical routines are checking for unicode white space,
@@ -96,11 +96,12 @@
     //--------------------------------------------------------------------------
     /**
      *  Return true if a codepoint is a numeric digit.
-     *
-     *  @param uint The input codepoint.
-     *
-     *  @return true if a codepoint is a numeric digit,
-     *  and false if not.
+     *  Supported digits are listed in
+     *  flash.globalization.NationalDigitsType.
+     *
+     *  @param int input codepoint
+     *  @returns Boolean true if a codepoint
+     *  is a numeric digit, and false if not.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.1
@@ -158,6 +159,19 @@
     /**
      *  Return true if a codepoint is a white space character.
      *  Supports all unicode white space characters.
+     *
+     *
The unicode supported white spaces are:
+     *

+     *  ASCII_SPACE (0x20)
+     *  NO_BREAK_SPACE (0xA0)
+     *  UNICODE_OGHAM_SPACE_MARK (0x1680)
+     *  Unicode spaces 0x2000 - 0x200B
+     *  UNICODE_NARROW_NOBREAK_SPACE (0x202F)
+     *  UNICODE_MEDIUM_MATHEMATICAL_SPACE (0x205F)
+     *  UNICODE_IDEOGRAPHIC_SPACE (0x3000)
+     *  UNICODE_ZEROWIDTH_NOBREAK_SPACE (0xFEFF)
+     *

+     *

      *
      *  @param uint The input codepoint.
      *


memorize positions with scratchEscapePositions.push

--- src/org/mangui/hls/demux/Nalu.as
+++ src/org/mangui/hls/demux/Nalu.as
@@ -142,16 +142,13 @@

 		public static function unescapeStream(data : ByteArray, position: int,limit: uint):int {
 			var scratchEscapeCount:int = 0;
-			var scratchEscapePositions:Array = new Array(10);
+			var scratchEscapePositions:Array = new Array();

 			while (position < limit) {
 				position = findNextUnescapeIndex(data, position, limit);
 				if (position < limit) {
-					if (scratchEscapePositions.length <= scratchEscapeCount) {
-						// Grow scratchEscapePositions to hold a larger number of positions.
-						scratchEscapePositions = scratchEscapePositions.concat(new Array(10));
-					}
-					scratchEscapePositions[scratchEscapeCount++] = position;
+					scratchEscapeCount++;
+					scratchEscapePositions.push(position);
 					position += 3;
 				}
 			}


minor coding style fixes

minor coding style fixes

--- src/aerys/minko/scene/node/Group.as
+++ src/aerys/minko/scene/node/Group.as
@@ -184,7 +184,7 @@
 		public function getChildIndex(child : ISceneNode) : int
 		{
 			if (child == null)
-				throw new Error("The 'child' parameter cannot be null.");
+				throw new Error('The 'child' parameter cannot be null.');

 			for (var i : int = 0; i < _numChildren; i++)
 				if (_children[i] === child)
@@ -223,7 +223,7 @@
 		public function addChildAt(node : ISceneNode, position : uint) : Group
 		{
 			if (!node)
-				throw new Error("Parameter 'scene' must not be null.");
+				throw new Error('Parameter \'scene\' must not be null.');

 			node.parent = this;

@@ -312,7 +312,7 @@

 		public function toString() : String
 		{
-			return "[" + getQualifiedClassName(this) + " " + name + "]";
+			return '[' + getQualifiedClassName(this) + ' ' + name + ']';
 		}

 		/**


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 4035
Author:   jszeto@adobe.com
Date:     2008-11-06T23:38:55.516366Z

Log Message:
-----------
RadialGradient and GradientEntry bug fixes

SDK-17745 - MXML application with multiple identical gradient fills doesn't render correctly

RadialGradient now takes into account the x/y position of the graphic element's bounds.

SDK-17652 - AI import; non-default angle and location of gradients are not retained on import of .ai or .fxg.

RadialGradient now rotates as expected. Previously, we set rotation using the Matrix.createGradientBox function. But this only rotate the gradients themselves and not the shape of the gradient as defined by scaleX and scaleY. Instead, we need to translate the center of the gradient to 0,0, rotate it, and then translate it back to the original location.

SDK-17654 - GradientEntry ratio behavior is inconsistent between MXML and ActionScript

Changed the default value for the ratio parameter in the GradientEntry constructor from -1 to NaN. GradientEntry was probably written before we had support for NaN in the language.

Added a couple of comments and removed some dead code.

QE Notes: Please test rotation on RadialGradient and graphic elements with top/left or x/y defined and a RadialGradient fill.
Doc Notes: Change default value of ratio parameter for GradientEntry constructor.
Bugs: SDK-17745, SDK-17652, SDK-17654
Reviewer:

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientEntry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradient.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -2255,9 +2255,10 @@
             displayObject = null;
         }
     }
-
+
     private var _alwaysCreateDisplayObject:Boolean;

+    // TODO!! Remove once we have a better solution for a design tool to getBitmapData for hit testing
     mx_internal function set alwaysCreateDisplayObject(value:Boolean):void
     {
     	if (value != _alwaysCreateDisplayObject)
@@ -2271,7 +2272,23 @@
     {
     	return _alwaysCreateDisplayObject;
     }
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
     /**
      *  true if the graphic element needs its own unique display object to render into.
      *  In general, you will not set this property, although if you extend the GraphicElement class, you


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

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

 package mx.charts.effects.effectClasses
 {


now user agent prop is a string and build with the core.strings.userAgent() function util

--- src/com/google/analytics/utils/Environment.as
+++ src/com/google/analytics/utils/Environment.as
@@ -20,6 +20,8 @@

 package com.google.analytics.utils
 {
+    import core.strings.userAgent;
+
     import com.google.analytics.core.ga_internal;
     import com.google.analytics.debug.DebugConfiguration;
     import com.google.analytics.external.HTMLDOM;
@@ -39,7 +41,7 @@
         private var _protocol:Protocols;
         private var _appName:String;
         private var _appVersion:Version;
-        private var _userAgent:UserAgent;
+        private var _userAgent:String;
         private var _url:String;

         /**
@@ -158,7 +160,7 @@
         public function set appName( value:String ):void
         {
             _appName = value;
-            userAgent.applicationProduct = value;
+            _defineUserAgent();
         }

         /**
@@ -175,7 +177,8 @@
         public function set appVersion( value:Version ):void
         {
             _appVersion = value;
-            userAgent.applicationVersion = value.toString(4);
+            _defineUserAgent();
+
         }

         /**
@@ -273,8 +276,9 @@
          */
         public function isAIR():Boolean
         {
-            return (playerType == "Desktop") && (Security.sandboxType.toString() == "application");
-        }
+            //return (playerType == "Desktop") && (Security.sandboxType.toString() == "application");
+            return Security.sandboxType == "application";
+        }

         /**
          * Indicates if the SWF is embeded in an HTML page.
@@ -501,22 +505,22 @@
             return color;
         }

+        private function _defineUserAgent():void
+        {
+            _userAgent = core.strings.userAgent( appName + "/" + appVersion.toString(4) );
+        }
+
         /**
          * Defines a custom user agent.
          *
For case where the user would want to define its own application name and version
          * it is possible to change appName and appVersion which are in sync with
          * applicationProduct and applicationVersion properties.

          */
-        public function get userAgent():UserAgent
-        {
-            /* note:
-               if we change appName then we update applicationProduct
-               if we change appVersion then we update applicationVersion
-               but the inverse is not true.
-            */
+        public function get userAgent():String
+        {
             if( !_userAgent )
             {
-                 _userAgent = new UserAgent(this, appName, appVersion.toString(4));
+                 _defineUserAgent();
             }

             return _userAgent;
@@ -525,10 +529,10 @@
         /**
          * @private
          */
-        public function set userAgent( custom:UserAgent ):void
+        public function set userAgent( custom:String ):void
         {
             _userAgent = custom;
         }
-
+
     }
 }


Fixed bug where the spatialindex.createIndex() function would be
called when probing/selecting. The reason for this is the spatial
index had a record count of 0 (when the bounds array for the keys was
empty), but the index was created previously.

When the index is created, a flag is set telling the plot layer that
it doesn't need to validate the index. This fixes the bug.

Tested with obesity-cube.xml by probing and selecting with a
breakpoint in createIndex and observing that it wasn't being called
except for validating the index.

Change-Id: I200e732045ef190366b11af02db02a1f5b4aacac

--- WeaveUI/src/weave/visualization/layers/PlotLayer.as
+++ WeaveUI/src/weave/visualization/layers/PlotLayer.as
@@ -219,8 +219,9 @@
 		private function spatialCallback():void
 		{
 			_spatialIndex.clear();
-		}
-
+			_spatialIndexDirty = true;
+		}
+		private var _spatialIndexDirty:Boolean = true;
 		/**
 		 *Sets the visibility of the layer
 		 *
@@ -241,16 +242,21 @@
 			return _graphicsAreValid;
 		}

-		public function getSelectedKeys():Array
-		{
-			//validate spatial index if necessary
-			if (_spatialIndex.recordCount == 0)
+		private function validateSpatialIndex():void
+		{
+			if (_spatialIndexDirty)
 			{
 				//trace(this,"updating spatial index", CallbackCollection.getStackTrace());
 				_spatialIndex.createIndex(plotter, showMissingRecords);
 				//trace(this,"updated spatial index",spatialIndex.collectiveBounds);
-			}
-
+				_spatialIndexDirty = false;
+			}
+		}
+		public function getSelectedKeys():Array
+		{
+			//validate spatial index if necessary
+			validateSpatialIndex();
+
 			var keys:Array;

 			// if a global filter is referenced and the keyType matches, use the keys from the global filter
@@ -296,8 +302,8 @@
 		{
 			var shouldDraw:Boolean = (unscaledWidth * unscaledHeight > 0) && layerIsVisible.value;
 			//validate spatial index if necessary
-			if (shouldDraw && _spatialIndex.recordCount == 0)
-				_spatialIndex.createIndex(plotter, showMissingRecords);
+			if (shouldDraw)
+				validateSpatialIndex();

 			// draw background if this is not an overlay
 			if (!isOverlay.value && !PlotterUtils.bitmapDataIsEmpty(backgroundBitmap))


Clear out the file list when a new config is started.

--- exporter/src/main/as/flump/export/Exporter.as
+++ exporter/src/main/as/flump/export/Exporter.as
@@ -80,6 +80,7 @@
         newMenuItem.addEventListener(Event.SELECT, function (..._) :void {
             _confFile = null;
             _conf = new FlumpConf();
+            setImport(null);
             updatePublisher();
         });
         var openMenuItem :NativeMenuItem =


SingleSoundGenerator で 2 回 dispose が呼び出されていた不具合を修正

--- project/SoundConductor/src/jp/hiiragi/managers/soundConductor/SoundGeneratorEngine.as
+++ project/SoundConductor/src/jp/hiiragi/managers/soundConductor/SoundGeneratorEngine.as
@@ -194,7 +194,6 @@
 						else if (bufferByteArray.length == 0 || playingData.status == SoundStatusType.STOPPED)
 						{
 							removePlayingData(playingData);
-							playingData.dispose();
 						}
 					}
 				}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/IChartElement2.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/IChartElement2.as
@@ -0,0 +1,100 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.chartClasses
+{
+
+import flash.display.Sprite;
+import flash.geom.Rectangle;
+import mx.core.IFlexDisplayObject;
+import flash.geom.Point;
+
+/**
+ *  IChartElement2 defines the base set of properties and methods
+ *  required by a UIComponent to be representable in the data space of a chart.
+ *  Any component assigned to the series, backgroundElements,
+ *  or annotationElements Arrays of a chart must implement this interface.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IChartElement2 extends IChartElement
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Converts a tuple of data values to an x-y coordinate on screen.
+     *  Call this function to transform data on to the screen
+     *  using the same transform that the individual elements go through.
+     *  For example, to create a custom highlight for a data region of a chart,
+     *  you might use this function to determine the on-screen coordinates
+     *  of the range of interest.
+     *
+     *
For Cartesian chartelements, you typically pass two values.
+     *  The first value maps to the horizontal axis,
+     *  and the second value maps to the vertical axis.

+     *
+     *
For polar charts, the first value maps to the angular axis,
+     *  and the second maps to the radial axis.

+     *
+     *  @param dataValues The data values to convert to coordinates.
+     *
+     *  @return Coordinates that are relative to the chart.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function dataToLocal(... dataValues):Point;
+
+    /**
+     *  Converts a coordinate on screen to a tuple of data values.
+     *  Call this function to determine what data values
+     *  a particular point on-screen represents.
+     *
Individual chart types determine how this transformation occurs.
+     *  The point should be relative to the chart's coordinate space.

+     *
+     *  @param pt The Point to convert.
+     *
+     *  @return The tuple of data values.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function localToData(pt:Point):Array /* of Object */;
+
+    /**
+     *  Returns an array of HitData of the items of all the underlying
+     *  objects that implement IChartElement2 whose dataTips
+     *  are to be shown when showAllDataTips is set
+     *  to true on chart.
+     *
+     *  @return The HitData objects describing the data points
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getAllDataPoints():Array /* of HitData */;
+
+}
+
+}


Added more to previous test case.

Added more to previous test case.

--- src/avm2/tests/hello.as
+++ src/avm2/tests/hello.as
@@ -1 +1,3 @@
+trace("Hello");
+trace("Hello");
 trace("Hello");


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

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