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

--- frameworks/projects/rpc/src/mx/messaging/messages/RemotingMessage.as
+++ frameworks/projects/rpc/src/mx/messaging/messages/RemotingMessage.as
@@ -0,0 +1,63 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.messages
+{
+
+[RemoteClass(alias="flex.messaging.messages.RemotingMessage")]
+
+/**
+ *  RemotingMessages are used to send RPC requests to a remote endpoint.
+ *  These messages use the operation property to specify which
+ *  method to call on the remote object.
+ *  The destination property indicates what object/service should be
+ *  used.
+ */
+public class RemotingMessage extends AbstractMessage
+{
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructs an uninitialized RemotingMessage.
+     */
+    public function RemotingMessage()
+    {
+        super();
+        operation = "";
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Provides access to the name of the remote method/operation that
+     *  should be called.
+     */
+    public var operation:String;
+
+    /**
+     *  This property is provided for backwards compatibility. The best
+     *  practice, however, is to not expose the underlying source of a
+     *  RemoteObject destination on the client and only one source to
+     *  a destination. Some types of Remoting Services may even ignore
+     *  this property for security reasons.
+     */
+    public var source:String;
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 12977
Author:   gosmith@adobe.com
Date:     2009-12-16T01:09:31.861871Z

Log Message:
-----------
Added ASDoc for the Spark ButtonBaseAccImpl, ToggleButtonAccImpl, CheckBoxAccImpl, and RadioButtonAccImpl, based on the opensource specs.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ToggleButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ButtonBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/RadioButtonAccImpl.as</path>

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

--- frameworks/projects/spark/src/spark/accessibility/CheckBoxAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/CheckBoxAccImpl.as
@@ -22,8 +22,84 @@
 use namespace mx_internal;

 /**
- *  CheckBoxAccImpl is a subclass of AccessibilityImplementation
- *  which implements accessibility for the CheckBox class.
+ *  CheckBoxAccImpl is the accessibility implementation class
+ *  for spark.components.CheckBox.
+ *
+ *
When a Spark CheckBox is created,
+ *  its accessibilityImplementation property
+ *  is set to an instance of this class.
+ *  The Flash Player then uses this class to allow MSAA clients
+ *  such as screen readers to see and manipulate the CheckBox.
+ *  See the mx.accessibility.AccImpl and
+ *  flash.accessibility.AccessibilityImplementation classes
+ *  for background information about accessibility implementation
+ *  classes and MSAA.

+ *
+ *
Children

+ *
+ *
A CheckBox has no MSAA children.

+ *
+ *
Role

+ *
+ *
The MSAA Role of a CheckBox is ROLE_SYSTEM_CHECKBOX.

+ *
+ *
Name

+ *
+ *
The MSAA Name of a CheckBox is, by default, the label that it displays.
+ *  When wrapped in a FormItem element,
+ *  this label will be combined with the FormItem's label.
+ *  To override this behavior,
+ *  set the CheckBox's accessibilityName property.

+ *
+ *
When the Name changes,
+ *  a CheckBox dispatches the MSAA event EVENT_OBJECT_NAMECHANGE.

+ *
+ *
Description

+ *
+ *
The MSAA Description of a CheckBox is, by default, the empty string,
+ *  but you can set the CheckBox's accessibilityDescription
+ *  property.

+ *
+ *
State

+ *
+ *
The MSAA State of a CheckBox is a combination of:
+ *

+ *
STATE_SYSTEM_UNAVAILABLE (when enabled is false)

+ *
STATE_SYSTEM_FOCUSABLE (when enabled is true)

+ *
STATE_SYSTEM_FOCUSED (when enabled is true
+ *    and the CheckBox has focus)

+ *
STATE_SYSTEM_CHECKED (when selected is true)

+ *

+ *
+ *
When the Name changes,
+ *  a CheckBox dispatches the MSAA event EVENT_OBJECT_STATECHANGE.

+ *
+ *
Value

+ *
+ *
A CheckBox does not have an MSAA Value.

+ *
+ *
Location

+ *
+ *
The MSAA Location of a CheckBox is its bounding rectangle.

+ *
+ *
Default Action

+ *
+ *
The MSAA DefaultAction of a CheckBox is "Check" or "UnCheck",
+ *  depending on whether it is currently checked or not.

+ *
+ *
When an MSAA client tells the CheckBox to perform this action,
+ *  KEY_DOWN and KEY_UP MouseEvents for the SPACE key are generated,
+ *  to simulate pressing the CheckBox via the keyboard,
+ *  if the CheckBox is enabled.

+ *
+ *
Focus

+ *
+ *
A CheckBox accepts focus.
+ *  When it does so, it dispatches the MSAA event EVENT_OBJECT_FOCUS.

+ *
+ *
Selection

+ *
+ *
A CheckBox does not support selection in the MSAA sense.

  *
  *  @langversion 3.0
  *  @playerversion Flash 10


--- src/flash/events/EventDispatcher.as
+++ src/flash/events/EventDispatcher.as
@@ -6,7 +6,7 @@
 	[Event(name = "activate", type = "flash.events.Event")]
 	public class EventDispatcher extends Object implements IEventDispatcher
 	{
-		private var listeners:Object = {};
+		private var listeners:Object;

 		public function EventDispatcher(target:IEventDispatcher = null)
 		{
@@ -49,6 +49,7 @@

 		public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
 		{
+			listeners ||= {};
 			var funcs:Array = listeners[type] = listeners[type] || [];
 			var i:Object = funcs.indexOf(listener);
 			if (i != -1)
@@ -60,6 +61,9 @@

 		public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
 		{
+			if (listeners==null){
+				return ;
+			}
 			var funcs:Array = listeners[type];
 			if (funcs)
 			{
@@ -87,6 +91,9 @@

 		public function hasEventListener(type:String):Boolean
 		{
+			if (listeners==null){
+				return false;
+			}
 			return listeners[type] != null;
 		}

@@ -94,6 +101,9 @@

 		private function dispatchEventFunction(event:Event):Boolean
 		{
+			if (listeners==null){
+				return false;
+			}
 			event.target = this;
 			event.currentTarget = this;
 			var funcs:Array = listeners[event.type];


fixed missing event handler from color wheel after layer use

--- bin/Data/Scripts/Editor/EditorLayers.as
+++ bin/Data/Scripts/Editor/EditorLayers.as
@@ -42,6 +42,10 @@
             bits[i].vars["index"] = i;
             SubscribeToEvent(bits[i], "Toggled", "ToggleBits");
     }
+
+    SubscribeToEvent("MouseMove", "HandleHideLayerEditor");
+    SubscribeToEvent("MouseButtonDown", "HandleHideLayerEditor");
+    SubscribeToEvent("MouseWheel", "HandleMaskTypeScroll");
 }

 bool ShowLayerEditor()
@@ -55,7 +59,7 @@
     patternMaskNode = node;

     // just change position if already opened
-    if ( layerWindow.visible == true )
+    if (layerWindow.visible == true)
     {
         HideLayerEditor();
         /*
@@ -79,12 +83,7 @@
     layerWindowPosition.x += layerWindow.width / 2;
     layerWindow.visible = true;
     layerWindow.BringToFront();
-
-    // Subscribe while window are visible
-    SubscribeToEvent("MouseMove", "HandleHideLayerEditor");
-    SubscribeToEvent("MouseButtonDown", "HandleHideLayerEditor");
-    SubscribeToEvent("MouseWheel", "HandleMaskTypeScroll");
-
+
     return true;
 }

@@ -136,7 +135,7 @@
     }
 }

-void SetupBitsPanel( int mask )
+void SetupBitsPanel(int mask)
 {
     for (int i = 0; i < 8; i++)
     {
@@ -275,7 +274,7 @@
             HideLayerEditor();
     }
     // if user click on scene - close layser window
-    else if ( eventType == eventTypeMouseButtonDown )
+    else if (eventType == eventTypeMouseButtonDown)
     {
         if (ui.focusElement is null)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5119
Author:   smgilson@adobe.com
Date:     2009-03-01T15:19:39.936226Z

Log Message:
-----------
Clean up some ASDoc tags from the addition of the @productversion/@playerversion tags

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/ResultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/NCManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/Base64Encoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/StringValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SchemaMarshaller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IInteractiveObjectInterface.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/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ContainerRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.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/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/SparkSkin.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/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/Schema.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/utils/HexEncoder.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/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectContainerInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SoundEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISpriteInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/src/haloclassic/HaloRectBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/Operation.as</path>

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

--- frameworks/projects/airframework/src/mx/controls/HTML.as
+++ frameworks/projects/airframework/src/mx/controls/HTML.as
@@ -1405,7 +1405,7 @@
          dispatchEvent(event);
     }

-    /*
+    /**
      *  @private
      */
     private function htmlLoader_completeHandler(event:Event):void


Transferred from the Adobe Open Source Subversion Repository

Revision: 3466
Author:   egreenfi@adobe.com
Date:     2008-10-03T04:13:46.076266Z

Log Message:
-----------
Refactored TransformOffset to reduce code and confusion.

UIComponent and GraphicElement now aggregate an AdvancedLayoutFeatures object, which is responsible for computing the
actual transform based on the layout properties and a CompoundTransform object passed in as a set of offset values.

Re-enabled updateComplete events when component transform is modified, for mustella tests.

Review: Glenn, Evtim.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/halo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/TransformOffset.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -83,6 +83,7 @@
 import __AS3__.vec.Vector;
 import flash.geom.Transform;
 import mx.events.PropertyChangeEventKind;
+import mx.geom.CompoundTransform;

 use namespace mx_internal;

@@ -1355,7 +1356,7 @@
      *
      * storage for advanced layout and transform properties.
      */
-	private var _xformOffsets:TransformOffset;
+	private var _layoutFeatures:AdvancedLayoutFeatures;

     /**
      * @private
@@ -1536,7 +1537,7 @@
      */
     override public function get x():Number
     {
-    	return (_xformOffsets == null)? super.x:_xformOffsets.layoutX;
+    	return (_layoutFeatures == null)? super.x:_layoutFeatures.layoutX;
     }

     /**
@@ -1547,11 +1548,11 @@
         if (x == value)
             return;

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

@@ -1566,7 +1567,7 @@
      */
     override public function get z():Number
     {
-    	return (_xformOffsets == null)? super.z:_xformOffsets.layoutZ;
+    	return (_layoutFeatures == null)? super.z:_layoutFeatures.layoutZ;
     }

     /**
@@ -1576,8 +1577,8 @@
     {
         if (z == value)
             return;
-		if(_xformOffsets == null) allocateOffsets();
-   		_xformOffsets.layoutZ = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+   		_layoutFeatures.layoutZ = value;
    		invalidateTransform();
         dispatchEvent(new Event("zChanged"));
     }
@@ -1587,7 +1588,7 @@
 	 */
 	public function get transformX():Number
 	{
-    	return (_xformOffsets == null)? 0:_xformOffsets.transformX;
+    	return (_layoutFeatures == null)? 0:_layoutFeatures.transformX;
 	}
     /**
      *  @private
@@ -1596,8 +1597,8 @@
     {
         if (transformX == value)
             return;
-		if(_xformOffsets == null) allocateOffsets();
-   		_xformOffsets.transformX = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+   		_layoutFeatures.transformX = value;
    		invalidateTransform();
    		invalidateParentSizeAndDisplayList();
     }
@@ -1607,7 +1608,7 @@
 	 */
 	public function get transformY():Number
 	{
-    	return (_xformOffsets == null)? 0:_xformOffsets.transformY;
+    	return (_layoutFeatures == null)? 0:_layoutFeatures.transformY;
 	}
     /**
      *  @private
@@ -1616,8 +1617,8 @@
     {
         if (transformY == value)
             return;
-		if(_xformOffsets == null) allocateOffsets();
-   		_xformOffsets.transformY = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+   		_layoutFeatures.transformY = value;
    		invalidateTransform();
    		invalidateParentSizeAndDisplayList();
     }
@@ -1627,7 +1628,7 @@
 	 */
 	public function get transformZ():Number
 	{
-    	return (_xformOffsets == null)? 0:_xformOffsets.transformZ;
+    	return (_layoutFeatures == null)? 0:_layoutFeatures.transformZ;
 	}
     /**
      *  @private
@@ -1636,8 +1637,8 @@
     {
         if (transformZ == value)
             return;
-		if(_xformOffsets == null) allocateOffsets();
-   		_xformOffsets.transformZ = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+   		_layoutFeatures.transformZ = value;
    		invalidateTransform();
    		invalidateParentSizeAndDisplayList();
     }
@@ -1647,7 +1648,7 @@
 	 */
 	override public function get rotation():Number
 	{
-		return (_xformOffsets == null)? super.rotation:_xformOffsets.layoutRotationZ;
+		return (_layoutFeatures == null)? super.rotation:_layoutFeatures.layoutRotationZ;
 	}

 	/**
@@ -1658,16 +1659,14 @@
         if (rotation == value)
             return;

-        // trace("set scaleX:" + this + "value = " + value);
-        if(_xformOffsets == null)
+        if(_layoutFeatures == null)
 	        super.rotation = value;
 	   	else
 	   	{
-			invalidateTransform();
-	   		_xformOffsets.layoutRotationZ = value;
-	   		invalidateTransform();
+	   		_layoutFeatures.layoutRotationZ = value;
 	   	}

+   		invalidateTransform();
    		invalidateParentSizeAndDisplayList();
     }

@@ -1691,7 +1690,7 @@
 	 */
     override public function get rotationX():Number
     {
-    	return (_xformOffsets == null)? super.rotationX:_xformOffsets.layoutRotationX;
+    	return (_layoutFeatures == null)? super.rotationX:_layoutFeatures.layoutRotationX;
     }

     /**
@@ -1702,8 +1701,8 @@
         if (rotationX == value)
             return;

-		if(_xformOffsets == null) allocateOffsets();
-   		_xformOffsets.layoutRotationX = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+   		_layoutFeatures.layoutRotationX = value;
    		invalidateTransform();
    		invalidateParentSizeAndDisplayList();
     }
@@ -1713,7 +1712,7 @@
 	 */
     override public function get rotationY():Number
     {
-    	return (_xformOffsets == null)? super.rotationY:_xformOffsets.layoutRotationY;
+    	return (_layoutFeatures == null)? super.rotationY:_layoutFeatures.layoutRotationY;
     }

     /**
@@ -1724,8 +1723,8 @@
         if (rotationY == value)
             return;

-		if(_xformOffsets == null) allocateOffsets();
-   		_xformOffsets.layoutRotationY = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+   		_layoutFeatures.layoutRotationY = value;
    		invalidateTransform();
    		invalidateParentSizeAndDisplayList();
     }
@@ -1755,7 +1754,7 @@
      */
     override public function get y():Number
     {
-    	return (_xformOffsets == null)? super.y:_xformOffsets.layoutY;
+    	return (_layoutFeatures == null)? super.y:_layoutFeatures.layoutY;
     }

     /**
@@ -1766,11 +1765,11 @@
         if (y == value)
             return;

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

@@ -1940,38 +1939,57 @@
      *
      *  @default 1.0
      */
+
     override public function get scaleX():Number
     {
-    	return ((_xformOffsets == null)? super.scaleX:_xformOffsets.layoutScaleX);
-    }
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        	return _scaleX;
+        else
+	    	return ((_layoutFeatures == null)? super.scaleX:_layoutFeatures.layoutScaleX);
+    }
+
+    /**
+     *  @private
+     *  Storage for the scaleX property.
+     */
+    private var _scaleX:Number = 1.0;
+
     override public function set scaleX(value:Number):void
     {
-    	var prevValue:Number = (_xformOffsets == null)? scaleX:_xformOffsets.layoutScaleX;
-        if (prevValue == value)
-            return;
-
-        // trace("set scaleX:" + this + "value = " + value);
-        if(_xformOffsets == null)
-	        super.scaleX = value;
-	   	else
-	   	{
-	   		_xformOffsets.layoutScaleX = value;
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        {
+
+	        if (_scaleX == value)
+    	        return;
+
+       	 	_scaleX = value;
+
+	        invalidateProperties();
+	        invalidateSize();
+	    }
+	    else
+	    {
+
+
+	    	var prevValue:Number = (_layoutFeatures == null)? scaleX:_layoutFeatures.layoutScaleX;
+	        if (prevValue == value)
+	            return;
+
+	        // trace("set scaleX:" + this + "value = " + value);
+	        if(_layoutFeatures == null)
+		        super.scaleX = value;
+		   	else
+		   	{
+		   		_layoutFeatures.layoutScaleX = value;
+		   	}
 	   		invalidateTransform();
-	   	}
-
-        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-        {
-	        invalidateProperties();
-        	invalidateSize();
-        }
-        else
-        {
-                // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
-                // and scaleX is changing we need to invalidate parent size and display list
-                // since we are not going to detect a change in measured sizes during measure.
-        	invalidateParentSizeAndDisplayList();
-        }
-
+
+	        // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
+	        // and scaleX is changing we need to invalidate parent size and display list
+	        // since we are not going to detect a change in measured sizes during measure.
+	    	invalidateParentSizeAndDisplayList();
+
+	    }
         dispatchEvent(new Event("scaleXChanged"));
     }

@@ -2004,33 +2022,50 @@
      */
     override public function get scaleY():Number
     {
-    	return ((_xformOffsets == null)? super.scaleY:_xformOffsets.layoutScaleY);
-    }
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        {
+    		return _scaleY;
+        }
+        else
+	    	return ((_layoutFeatures == null)? super.scaleY:_layoutFeatures.layoutScaleY);
+    }
+
+    /**
+     *  @private
+     *  Storage for the scaleY property.
+     */
+    private var _scaleY:Number = 1.0;
+

     override public function set scaleY(value:Number):void
     {
-    	var prevValue:Number = (_xformOffsets == null)? scaleY:_xformOffsets.layoutScaleY;
-        if (prevValue == value)
-            return;
-
-        if(_xformOffsets == null)
-	        super.scaleY = value;
-	   	else
-	   	{
-	   		_xformOffsets.layoutScaleY = value;
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        {
+	        if (_scaleY == value)
+	            return;
+
+	        _scaleY = value;
+
+	        invalidateProperties();
+	        invalidateSize();
+
+	   }
+	   else
+	   {
+	    	var prevValue:Number = (_layoutFeatures == null)? scaleY:_layoutFeatures.layoutScaleY;
+	        if (prevValue == value)
+	            return;
+
+	        if(_layoutFeatures == null)
+		        super.scaleY = value;
+		   	else
+		   	{
+		   		_layoutFeatures.layoutScaleY = value;
+		   	}
 	   		invalidateTransform();
-	   	}
-
-        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-        {
-	        invalidateProperties();
-        	invalidateSize();
-        }
-        else
-        {
-                // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
-                // and scaleX is changing we need to invalidate parent size and display list
-                // since we are not going to detect a change in measured sizes during measure.
+            // If we're not compatible with Flex3 (measuredWidth is pre-scale always)
+            // and scaleX is changing we need to invalidate parent size and display list
+            // since we are not going to detect a change in measured sizes during measure.
         	invalidateParentSizeAndDisplayList();
         }

@@ -2048,7 +2083,7 @@
 	 */
     override public function get scaleZ():Number
     {
-    	return ((_xformOffsets == null)? super.scaleZ:_xformOffsets.layoutScaleZ);
+    	return ((_layoutFeatures == null)? super.scaleZ:_layoutFeatures.layoutScaleZ);
     }

 	/**
@@ -2058,8 +2093,8 @@
     {
         if (scaleZ == value)
             return;
-		if(_xformOffsets == null) allocateOffsets();
-   		_xformOffsets.layoutScaleZ = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+   		_layoutFeatures.layoutScaleZ = value;
    		invalidateTransform();
         dispatchEvent(new Event("scaleZChanged"));
     }
@@ -5828,14 +5863,23 @@

 	private function invalidateTransform():void
 	{
-		if(_xformOffsets && _xformOffsets.updatePending == false)
+		if(_layoutFeatures && _layoutFeatures.updatePending == false)
 		{
-			_xformOffsets.updatePending = true;
+			_layoutFeatures.updatePending = true;
 			if(isOnDisplayList() && UIComponentGlobals.layoutManager &&
 			invalidateDisplayListFlag == false)
 			{
 				UIComponentGlobals.layoutManager.invalidateDisplayList(this);
 			}
+		}
+		else
+		{
+			//esg: if we don't have advanced layout features allocated, we won't
+			// need or get a call to validateDisplayList. But we do want an updateComplete event
+			// to fire, so instead we'll do an invalidateProperties();
+			// TODO esg: can we optimize away this invalidateProperties, so it doesn't fire
+			// on every transform update?
+			invalidateProperties();
 		}
 	}

@@ -6073,12 +6117,11 @@
      */
     protected function commitProperties():void
     {
-    	var sX:Number = scaleX;
-        if (sX != oldScaleX)
-        {
-            if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-            {
-                var scalingFactorX:Number = Math.abs(scaleX / oldScaleX);
+        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
+        {
+	        if (_scaleX != oldScaleX)
+	        {
+	            var scalingFactorX:Number = Math.abs(_scaleX / oldScaleX);
                 if (!isNaN(explicitMinWidth))
                     explicitMinWidth *= scalingFactorX;
                 if (!isNaN(explicitWidth))
@@ -6087,28 +6130,29 @@
                     explicitMaxWidth *= scalingFactorX;

                 _width *= scalingFactorX;
-            }
-
+
+	            super.scaleX = oldScaleX = _scaleX;
+	        }
+
+	        if (_scaleY != oldScaleY)
+	        {
+	            var scalingFactorY:Number = Math.abs(_scaleY / oldScaleY);
+	            if (!isNaN(explicitMinHeight))
+	                explicitMinHeight *= scalingFactorY;
+	            if (!isNaN(explicitHeight))
+	                explicitHeight *= scalingFactorY;
+	            if (!isNaN(explicitMaxHeight))
+	                explicitMaxHeight *= scalingFactorY;
+
+	            _height *= scalingFactorY;
+
+	            super.scaleY = oldScaleY = _scaleY;
+	        }
+        }
+        else
+        {
             oldScaleX = scaleX;
-        }
-
-    	var sY:Number = scaleY;
-        if (sY != oldScaleY)
-        {
-            if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
-            {
-                var scalingFactorY:Number = Math.abs(scaleY / oldScaleY);
-                if (!isNaN(explicitMinHeight))
-                    explicitMinHeight *= scalingFactorY;
-                if (!isNaN(explicitHeight))
-                    explicitHeight *= scalingFactorY;
-                if (!isNaN(explicitMaxHeight))
-                    explicitMaxHeight *= scalingFactorY;
-
-                _height *= scalingFactorY;
-            }
-
-			oldScaleY = sY;
+			oldScaleY = scaleY;
         }

         if (x != oldX || y != oldY)
@@ -6601,7 +6645,7 @@
      */
     public function validateDisplayList():void
     {
-        if(_xformOffsets != null && _xformOffsets.updatePending == true)
+        if(_layoutFeatures != null && _layoutFeatures.updatePending == true)
         {
          	applyComputedTransform();
         }
@@ -6938,20 +6982,20 @@

         if (x != this.x)
         {
-	        if(_xformOffsets == null)
+	        if(_layoutFeatures == null)
 		        super.x  = x;
 		else
-        		_xformOffsets.layoutX = x;
+        		_layoutFeatures.layoutX = x;
             dispatchEvent(new Event("xChanged"));
             changed = true;
         }

         if (y != this.y)
         {
-	        if(_xformOffsets == null)
+	        if(_layoutFeatures == null)
 		        super.y  = y;
 		else
-        		_xformOffsets.layoutY = y;
+        		_layoutFeatures.layoutY = y;
             dispatchEvent(new Event("yChanged"));
             changed = true;
         }
@@ -9412,21 +9456,20 @@
 	/**
 	 * Documentation is not currently available
 	 */
-	protected function allocateOffsets():void
+	protected function initAdvancedLayoutFeatures():void
 	{
-		var at:TransformOffset = new TransformOffset();
-		at.addEventListener(Event.CHANGE,transformOffsetsChangedHandler)
-		at.userVisible = false;
-		at.layoutScaleX = scaleX;
-		at.layoutScaleY = scaleY;
-		at.layoutScaleZ = scaleZ;
-		at.layoutRotationX = rotationX;
-		at.layoutRotationY = rotationY;
-		at.layoutRotationZ = rotation;
-		at.layoutX = x;
-		at.layoutY = y;
-		at.layoutZ = z;
-		_xformOffsets = at;
+		var features:AdvancedLayoutFeatures = new AdvancedLayoutFeatures();
+
+		features.layoutScaleX = scaleX;
+		features.layoutScaleY = scaleY;
+		features.layoutScaleZ = scaleZ;
+		features.layoutRotationX = rotationX;
+		features.layoutRotationY = rotationY;
+		features.layoutRotationZ = rotation;
+		features.layoutX = x;
+		features.layoutY = y;
+		features.layoutZ = z;
+		_layoutFeatures = features;
 		invalidateTransform();
 	}

@@ -9464,9 +9507,10 @@
     }

 	/**
+	 * @private
 	 * Documentation is not currently available
 	 */
-    public function get $transform():flash.geom.Transform
+    mx_internal function get $transform():flash.geom.Transform
     {
     	return super.transform;
     }
@@ -9507,36 +9551,27 @@
             }
         }
     }
-
+
 	/**
 	 * Documentation is not currently available
 	 */
- 	public function set offsets(value:TransformOffset):void
+ 	public function set offsets(value:CompoundTransform):void
 	{
-		if(value == null && _xformOffsets != null)
-		{
-			value = new TransformOffset();
-			value.userVisible = false;
-			value.initFrom(_xformOffsets);
-		}
-		else if (value != null)
-		{
-			if(_xformOffsets != null)
-				value.initFrom(_xformOffsets);
-		}
-		if(_xformOffsets != null)
-			_xformOffsets.removeEventListener(Event.CHANGE,transformOffsetsChangedHandler);
-		_xformOffsets = value;
-		if(_xformOffsets != null)
-			_xformOffsets.addEventListener(Event.CHANGE,transformOffsetsChangedHandler);
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+
+		if(_layoutFeatures.offsets != null)
+			_layoutFeatures.offsets.removeEventListener(Event.CHANGE,transformOffsetsChangedHandler);
+		_layoutFeatures.offsets = value;
+		if(_layoutFeatures.offsets != null)
+			_layoutFeatures.offsets.addEventListener(Event.CHANGE,transformOffsetsChangedHandler);
 	}

 	/**
 	 * @private
 	 */
-	public function get offsets():TransformOffset
+	public function get offsets():CompoundTransform
 	{
-		return (_xformOffsets != null && _xformOffsets.userVisible == true)? _xformOffsets:null;
+		return (_layoutFeatures != null)? _layoutFeatures.offsets:null;
 	}

 	/**
@@ -9545,9 +9580,9 @@
 	 */
 	public function get matrix():Matrix
 	{
-		if(_xformOffsets != null)
+		if(_layoutFeatures != null)
 		{
-			return _xformOffsets.layoutMatrix;
+			return _layoutFeatures.layoutMatrix;
 		}
 		else
 		{
@@ -9560,14 +9595,14 @@
 	 */
 	public function set matrix(value:Matrix):void
 	{
-		if(_xformOffsets == null)
+		if(_layoutFeatures == null)
 		{
 			super.transform.matrix = value;
             invalidateSize();
 		}
 		else
 		{
-			_xformOffsets.matrix = value;
+			_layoutFeatures.layoutMatrix = value;
 	   		invalidateTransform();
 	   		invalidateParentSizeAndDisplayList();
   		}
@@ -9579,8 +9614,8 @@
 	 */
 	public function set matrix3D(value:Matrix3D):void
 	{
-		if(_xformOffsets == null) allocateOffsets();
-		_xformOffsets.matrix3D = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+		_layoutFeatures.layoutMatrix3D = value;
 		invalidateTransform();
    		invalidateParentSizeAndDisplayList();
 	}
@@ -9590,8 +9625,8 @@
 	 */
 	public function get matrix3D():Matrix3D
 	{
-		if(_xformOffsets == null) allocateOffsets();
-		return _xformOffsets.layoutMatrix3D;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+		return _layoutFeatures.layoutMatrix3D;
 	}

@@ -9600,7 +9635,7 @@
 	 */
 	public function get layer():Number
 	{
-		return (_xformOffsets == null)? 0:_xformOffsets.layer;
+		return (_layoutFeatures == null)? 0:_layoutFeatures.layer;
 	}

 	[Bindable("layerChange")]
@@ -9611,8 +9646,8 @@
 	{
 		if(value == layer)
 			return;
-		if(_xformOffsets == null) allocateOffsets();
-		_xformOffsets.layer = value;
+		if(_layoutFeatures == null) initAdvancedLayoutFeatures();
+		_layoutFeatures.layer = value;
 		dispatchEvent(new FlexEvent("layerChange"));
 		if(parent != null && parent is UIComponent)
 			(parent as UIComponent).invalidateLayering();
@@ -9632,14 +9667,14 @@
 	 */
 	protected function applyComputedTransform():void
 	{
-		_xformOffsets.updatePending = false;
-		if(_xformOffsets.computedIs3D)
+		_layoutFeatures.updatePending = false;
+		if(_layoutFeatures.is3D)
 		{
-			super.transform.matrix3D = _xformOffsets.computedMatrix3D;
+			super.transform.matrix3D = _layoutFeatures.computedMatrix3D;
 		}
 		else
 		{
-			super.transform.matrix = _xformOffsets.computedMatrix;
+			super.transform.matrix = _layoutFeatures.computedMatrix;
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19979
Author:   klin@adobe.com
Date:     2011-01-27T19:42:05.470754Z

Log Message:
-----------
Refactoring shared transformation code in UIComponent, SpriteVisualElement, and UIMovieClip into a utility class, TransformUtil. The methods transformAround() and transformPointToParent() are now delegated to the new class. For transformAround, the components also pass in their AdvancedLayoutFeatures and initAdvancedLayoutFeatures() method so that TransformUtil can create and initialize the layout features object if necessary.

QE notes: No
Doc notes: No
Bugs: SDK-22637
Reviewer: Evtim
Tests run: cyclone server, checkintests
Is noteworthy for integration: Yes, possibly for FC

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/TransformUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -99,6 +99,7 @@
 import mx.utils.MatrixUtil;
 import mx.utils.NameUtil;
 import mx.utils.StringUtil;
+import mx.utils.TransformUtil;
 import mx.validators.IValidatorListener;
 import mx.validators.ValidationResult;

@@ -13132,6 +13133,15 @@
      */
     protected function initAdvancedLayoutFeatures():void
     {
+        internal_initAdvancedLayoutFeatures();
+    }
+
+    /**
+     *  Passed to TransformUtil to create the layout features when performing
+     *  transformation operations.
+     */
+    private function internal_initAdvancedLayoutFeatures():AdvancedLayoutFeatures
+    {
         var features:AdvancedLayoutFeatures = new AdvancedLayoutFeatures();

         _hasComplexLayoutMatrix = true;
@@ -13148,6 +13158,7 @@
         features.layoutWidth = width;  // for the mirror transform
         _layoutFeatures = features;
         invalidateTransform();
+        return features;
     }

     /**
@@ -13388,8 +13399,6 @@
             validateMatrix();
     }

-    private static var xformPt:Point;
-
     /**
      *  @copy mx.core.ILayoutElement#transformAround()
      *
@@ -13416,46 +13425,29 @@
             _includeInLayout = false;
         }

-        // TODO (chaase): Would be nice to put this function in a central place
-        // to be used by UIComponent, SpriteVisualElement, UIMovieClip, and
-        // GraphicElement, since they all have similar or identical functions
-        if (_layoutFeatures == null)
-        {
-            // TODO (chaase): should provide a way to return to having no
-            // layoutFeatures if we call this later with a more trivial
-            // situation
-            var needAdvancedLayout:Boolean =
-                (scale != null && ((!isNaN(scale.x) && scale.x != 1) ||
-                    (!isNaN(scale.y) && scale.y != 1) ||
-                    (!isNaN(scale.z) && scale.z != 1))) ||
-                (rotation != null && ((!isNaN(rotation.x) && rotation.x != 0) ||
-                    (!isNaN(rotation.y) && rotation.y != 0) ||
-                    (!isNaN(rotation.z) && rotation.z != 0))) ||
-                (translation != null && translation.z != 0 && !isNaN(translation.z)) ||
-                postLayoutScale != null ||
-                postLayoutRotation != null ||
-                (postLayoutTranslation != null &&
-                    (translation == null ||
-                     postLayoutTranslation.x != translation.x ||
-                     postLayoutTranslation.y != translation.y ||
-                     postLayoutTranslation.z != translation.z));
-            if (needAdvancedLayout)
-                initAdvancedLayoutFeatures();
-        }
+        var prevX:Number = x;
+        var prevY:Number = y;
+        var prevZ:Number = z;
+
+        TransformUtil.transformAround(this,
+                                      transformCenter,
+                                      scale,
+                                      rotation,
+                                      translation,
+                                      postLayoutScale,
+                                      postLayoutRotation,
+                                      postLayoutTranslation,
+                                      _layoutFeatures,
+                                      internal_initAdvancedLayoutFeatures);
+
         if (_layoutFeatures != null)
         {
-            var prevX:Number = _layoutFeatures.layoutX;
-            var prevY:Number = _layoutFeatures.layoutY;
-            var prevZ:Number = _layoutFeatures.layoutZ;
-            _layoutFeatures.transformAround(transformCenter, scale, rotation,
-                translation, postLayoutScale, postLayoutRotation,
-                postLayoutTranslation);
             invalidateTransform();

             // Will not invalidate parent if we have set _includeInLayout to false
             // in the beginning of the method
             invalidateParentSizeAndDisplayList();
-
+
             if (prevX != _layoutFeatures.layoutX)
                 dispatchEvent(new Event("xChanged"));
             if (prevY != _layoutFeatures.layoutY)
@@ -13463,70 +13455,24 @@
             if (prevZ != _layoutFeatures.layoutZ)
                 dispatchEvent(new Event("zChanged"));
         }
-        else
-        {
-            if (translation == null && transformCenter != null)
-            {
-                if (xformPt == null)
-                    xformPt = new Point();
-                xformPt.x = transformCenter.x;
-                xformPt.y = transformCenter.y;
-                var xformedPt:Point =
-                    transform.matrix.transformPoint(xformPt);
-            }
-            if (rotation != null && !isNaN(rotation.z))
-                this.rotation = rotation.z;
-            if (scale != null)
-            {
-                scaleX = scale.x;
-                scaleY = scale.y;
-            }
-            if (transformCenter == null)
-            {
-                if (translation != null)
-                {
-                    x = translation.x;
-                    y = translation.y;
-                }
-            }
-            else
-            {
-                if (xformPt == null)
-                    xformPt = new Point();
-                xformPt.x = transformCenter.x;
-                xformPt.y = transformCenter.y;
-                var postXFormPoint:Point =
-                    transform.matrix.transformPoint(xformPt);
-                if (translation != null)
-                {
-                    x += translation.x - postXFormPoint.x;
-                    y += translation.y - postXFormPoint.y;
-                }
-                else
-                {
-                    x += xformedPt.x - postXFormPoint.x;
-                    y += xformedPt.y - postXFormPoint.y;
-                }
-            }
-        }

         if (!invalidateLayout)
             _includeInLayout = oldIncludeInLayout;
     }

     /**
-     * A utility method to transform a point specified in the local
-     * coordinates of this object to its location in the object's parent's
-     * coordinates. The pre-layout and post-layout result is set on
-     * the position and postLayoutPosition
-     * parameters, if they are non-null.
-     *
-     * @param localPosition The point to be transformed, specified in the
-     * local coordinates of the object.
-     * @position A Vector3D point that holds the pre-layout
-     * result. If null, the parameter is ignored.
-     * @postLayoutPosition A Vector3D point that holds the post-layout
-     * result. If null, the parameter is ignored.
+     *  A utility method to transform a point specified in the local
+     *  coordinates of this object to its location in the object's parent's
+     *  coordinates. The pre-layout and post-layout result is set on
+     *  the position and postLayoutPosition
+     *  parameters, if they are non-null.
+     *
+     *  @param localPosition The point to be transformed, specified in the
+     *  local coordinates of the object.
+     *  @position A Vector3D point that holds the pre-layout
+     *  result. If null, the parameter is ignored.
+     *  @postLayoutPosition A Vector3D point that holds the post-layout
+     *  result. If null, the parameter is ignored.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -13537,41 +13483,11 @@
                                            position:Vector3D,
                                            postLayoutPosition:Vector3D):void
     {
-        if (_layoutFeatures != null)
-        {
-            _layoutFeatures.transformPointToParent(true, localPosition,
-                position, postLayoutPosition);
-        }
-        else
-        {
-            if (xformPt == null)
-                xformPt = new Point();
-            if (localPosition)
-            {
-                xformPt.x = localPosition.x;
-                xformPt.y = localPosition.y;
-            }
-            else
-            {
-                xformPt.x = 0;
-                xformPt.y = 0;
-            }
-            var tmp:Point = (transform.matrix != null) ?
-                transform.matrix.transformPoint(xformPt) :
-                xformPt;
-            if (position != null)
-            {
-                position.x = tmp.x;
-                position.y = tmp.y;
-                position.z = 0;
-            }
-            if (postLayoutPosition != null)
-            {
-                postLayoutPosition.x = tmp.x;
-                postLayoutPosition.y = tmp.y;
-                postLayoutPosition.z = 0;
-            }
-        }
+        TransformUtil.transformPointToParent(this,
+                                             localPosition,
+                                             position,
+                                             postLayoutPosition,
+                                             _layoutFeatures);
     }

     /**
@@ -13717,7 +13633,6 @@
     //  ILayoutElement
     //
     //--------------------------------------------------------------------------
-

     /**
      *  @inheritDoc


Transferred from the Adobe Open Source Subversion Repository

Revision: 11379
Author:   aharui@adobe.com
Date:     2009-11-02T21:08:24.176200Z

Log Message:
-----------
Tweak svn 11319.  Now only Application will invalidate the SystemManager (popups and tooltips won't).  SystemManager will not dispatch a RESIZE unless its size actually did change.

QE Notes: None
Doc Notes: None
Bugs: SDK-23968
Reviewer: Darrell
API Change: no
Is noteworthy for integration: No
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -7169,12 +7169,7 @@

         var p:IInvalidating = parent as IInvalidating;
         if (!p)
-        {
-            if (parent is ISystemManager)
-                ISystemManager(parent).invalidateParentSizeAndDisplayList();
-
             return;
-        }

         p.invalidateSize();
         p.invalidateDisplayList();


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/framework/src/mx/effects/Dissolve.as
+++ frameworks/projects/framework/src/mx/effects/Dissolve.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2004-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.effects
 {


updating getNextHighestDepth to use getValidDepth

--- as25/src/asunit/framework/TestCase.as
+++ as25/src/asunit/framework/TestCase.as
@@ -1,19 +1,19 @@
-import asunit.flash.utils.Timer;
-import asunit.errors.ClassNameUndefinedError;
-import asunit.util.ArrayUtil;
-import asunit.framework.AsyncOperation;
-import asunit.framework.TestResult;
-
-import asunit.framework.TestListener;
-import asunit.framework.Test;
-import asunit.framework.Assert;
-import asunit.flash.errors.IllegalOperationError;
-import asunit.flash.events.Event;
-
-import asunit.errors.AssertionFailedError;
-import asunit.util.ArrayIterator;
+import asunit.flash.utils.Timer;
+import asunit.errors.ClassNameUndefinedError;
+import asunit.util.ArrayUtil;
+import asunit.framework.AsyncOperation;
+import asunit.framework.TestResult;
+
+import asunit.framework.TestListener;
+import asunit.framework.Test;
+import asunit.framework.Assert;
+import asunit.flash.errors.IllegalOperationError;
+import asunit.flash.events.Event;
+
+import asunit.errors.AssertionFailedError;
+import asunit.util.ArrayIterator;
 import asunit.util.Iterator;
-
+
 /**
  * A test case defines the fixture to run multiple tests. To define a test case

  * 1) implement a subclass of TestCase

@@ -84,7 +84,7 @@
 	private static var RUN_METHOD:Number 		= 2;
 	private static var TEAR_DOWN:Number			= 3;
 	private static var DEFAULT_TIMEOUT:Number 	= 1000;
-	private var className:String;
+	private var className:String;
 	private var fName:String;
 	private var result : TestListener;
 	private var testMethods:Array;
@@ -96,13 +96,13 @@
 	private var methodIterator:Iterator;
 	private var layoutManager:Object;
 	private var currentState:Number;
-
-	private static var lastDepth:Number = 10;
+
+	private static var lastDepth:Number = 10;

 	/**
 	 * Constructs a test case with the given name.
 	 */
-	public function TestCase(testMethod:String) {
+	public function TestCase(testMethod:String) {
 		if(testMethod==undefined) testMethod=null;
 		if(testMethod != null) {
 			testMethods = testMethod.split(", ").join(",").split(",");
@@ -112,13 +112,8 @@
 		} else {
 			setTestMethods(this);
 		}
-		try {
-		    setName(this.className);
-                }
-	        catch(e:ClassNameUndefinedError) {
-	            trace(">> WARNING: Concrete TestCase classes must have a 'className' parameter with the fully qualified class name in order for AsUnit to provide useful failures.");
-                }
-
+		setName(this.className);
+		// I don't think this is necessary for as2
 //		resolveLayoutManager();
 		asyncQueue = [];
 	}
@@ -146,23 +141,23 @@
 	 * Sets the name of a TestCase
 	 * @param name The name to set
 	 */
-	public function setName(name:String):Void {
-		if(name==undefined || name==null){
-			throw new ClassNameUndefinedError("You must assign a ClassName for your TestCase subclass.")
+	public function setName(name:String):Void {
+		if(name==undefined || name==null){
+			throw new ClassNameUndefinedError("You must assign a ClassName for your TestCase subclass.")
 		}
 		fName = name;
 	}

-	private function setTestMethods(obj:Object):Void {
-		testMethods = [];
+	private function setTestMethods(obj:Object):Void {
+		testMethods = [];
 		_global.ASSetPropFlags(obj.__proto__, null, 6, true);
-		for(var prop:String in obj) {
+		for(var prop:String in obj) {
 				// look for functions starting with "test"
-			if((prop.indexOf("test")==0)  && (obj[prop] instanceof Function)){
-				testMethods.push(prop);
-			}
-		}
-		_global.ASSetPropFlags(this.__proto__, null, 1, true);
+			if((prop.indexOf("test")==0)  && (obj[prop] instanceof Function)){
+				testMethods.push(prop);
+			}
+		}
+		_global.ASSetPropFlags(this.__proto__, null, 1, true);
 		testMethods.reverse();
 	}

@@ -317,15 +312,15 @@
 	}

 	public function getContext():MovieClip {
-		return context;
+	    return context;
 	}

 	private function addAsync(handler:Function, duration:Number):Function {
 		if(handler == undefined) {
 			handler = function():Void{};
-		}
-		if(duration == undefined) {
-			duration = DEFAULT_TIMEOUT;
+		}
+		if(duration == undefined) {
+			duration = DEFAULT_TIMEOUT;
 		}
 		var async:AsyncOperation = new AsyncOperation(this, handler, duration);
 		asyncQueue.push(async);
@@ -366,120 +361,94 @@
 		}
 		Timer.setTimeout(this, runBare, 5);
 	}
-
-	/**
-	 * begin asunit25 specific methods
-	 */
-
-	private function createEmptyMovieClip(name:String, depth:Number):MovieClip {
-		if(depth==undefined || depth===null) depth = getNextHighestDepth();
-		return getContext().createEmptyMovieClip(name, depth);
-	}
-
-	private function createTextField(name:String, depth:Number, x:Number, y:Number, width:Number, height:Number):TextField {
-	    getContext().createTextField(name, depth, x, y, width, height);
-	    return TextField(getContext()[name]);
-	}
-
-	private function getNextHighestDepth():Number {
-		return getContext().getNextHighestDepth();
-	}
-
-	/*
-	 * This helper method will support the following method signatures:
-	 *
-	 * attachMovie(linkageId:String):MovieClip;
-	 * attachMovie(linkageId:String, initObject:Object):MovieClip;
-	 * attachMovie(linkageId:String, name:String, depth:Number):MovieClip;
-	 * attachMovie(linkageId:String, name:String, depth:Number, initObject:Object):MovieClip;
-	 *
-	 * @return
-	 * 	MovieClip
-	 */
- 	private function attachMovie():MovieClip {
- 		var linkageId:String = arguments[0];
- 		var name:String;
- 		var depth:Number;
- 		var initObj:Object = new Object();
-
-		switch(arguments.length) {
-			case 1 :
-			case 2 :
-				name = getValidName(getContext(), name);
-				depth = getValidDepth(getContext());
- 				initObj = arguments[1];
- 				break;
- 			case 3 :
- 			case 4 :
- 				name = arguments[1];
- 				depth = arguments[2];
- 				initObj = arguments[3];
- 				break;
-		}
-		return getContext().attachMovie(linkageId, name, depth, initObj);
- 	}
-
-	public function getUpperEmptyDepth(parent:MovieClip, depth:Number):Number {
-		if(depth == undefined || !isValidDepth(parent, depth)) {
-			var high:Number = (depth == undefined) ? 1 : depth;
-			for(var i:String in parent) {
-				if(parent[i] instanceof MovieClip && parent[i].getDepth() != undefined) {
-					high = Math.max(parent[i].getDepth()+1, high);
-				}
-			}
-			return high;
-		}
-		return depth;
-	}
-
-	private function getValidName(parent:MovieClip, nm:Object):String {
-		var incr:Number = 1;
-
-		var name:String = (nm == undefined || nm instanceof Object) ? "item" : nm.toString();
-		var ref:MovieClip = parent[name];
-
-		var name2:String = name;
-		while(ref != undefined && incr < 100) {
-			name2 = name + "-" + (incr++);
-			ref = parent[name2];
-		}
-		return name2;
-	}
-
-	private function isValidDepth(parent:MovieClip, depth:Number):Boolean {
-		var item:MovieClip = getItemByDepth(parent, depth);
-		return (item == null) ? true : false;
-	}
-
-	private function getItemByDepth(parent:MovieClip, depth:Number):MovieClip {
-		for(var i:String in parent) {
-			if(parent[i].getDepth() == depth) {
-				return parent[i];
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the next available depth for attaching a MovieClip.
-	 *
-	 * @return
-	 *         Number of next available depth.
-	 */
-	public static function nextDepth():Number {
-		return lastDepth++;
-	}
-
-	private function getValidDepth(mc:MovieClip):Number {
-		var mcDepth:Number;
-		var dp:Number = nextDepth();
-		for(var i:String in mc) {
-			mcDepth = mc[i].getDepth();
-			if(mc[i] instanceof MovieClip && mcDepth < 10000) {
-				dp = Math.max(mcDepth, dp);
-			}
-		}
-		return ++dp;
+
+	/**
+	 * begin asunit25 specific methods
+	 */
+
+	private function createEmptyMovieClip(name:String, depth:Number):MovieClip {
+	    if(name == null) name = getValidName(getContext());
+		if(depth == null) depth = getNextHighestDepth();
+		return getContext().createEmptyMovieClip(name, depth);
+	}
+
+	private function createTextField(name:String, depth:Number, x:Number, y:Number, width:Number, height:Number):TextField {
+	    getContext().createTextField(name, depth, x, y, width, height);
+	    return TextField(getContext()[name]);
+	}
+
+	private function getNextHighestDepth():Number {
+	    return getValidDepth(getContext());
+	}
+
+	/*
+	 * This helper method will support the following method signatures:
+	 *
+	 * attachMovie(linkageId:String):MovieClip;
+	 * attachMovie(linkageId:String, initObject:Object):MovieClip;
+	 * attachMovie(linkageId:String, name:String, depth:Number):MovieClip;
+	 * attachMovie(linkageId:String, name:String, depth:Number, initObject:Object):MovieClip;
+	 *
+	 * @return
+	 * 	MovieClip
+	 */
+ 	private function attachMovie():MovieClip {
+ 		var linkageId:String = arguments[0];
+ 		var name:String;
+ 		var depth:Number;
+ 		var initObj:Object = new Object();
+
+		switch(arguments.length) {
+			case 1 :
+			case 2 :
+				name = getValidName(getContext(), name);
+				depth = getValidDepth(getContext());
+ 				initObj = arguments[1];
+ 				break;
+ 			case 3 :
+ 			case 4 :
+ 				name = arguments[1];
+ 				depth = arguments[2];
+ 				initObj = arguments[3];
+ 				break;
+		}
+		return getContext().attachMovie(linkageId, name, depth, initObj);
+ 	}
+
+	private function getValidName(parent:MovieClip, nm:Object):String {
+		var incr:Number = 1;
+
+		var name:String = (nm == undefined || nm instanceof Object) ? "item" : nm.toString();
+		var ref:MovieClip = parent[name];
+
+		var name2:String = name;
+		while(ref != undefined && incr < 100) {
+			name2 = name + "-" + (incr++);
+			ref = parent[name2];
+		}
+		return name2;
+	}
+
+	/**
+	 * Returns the next available depth for attaching a MovieClip.
+	 *
+	 * @return
+	 *         Number of next available depth.
+	 */
+	public static function nextDepth():Number {
+		return lastDepth++;
+	}
+
+	private function getValidDepth(mc:MovieClip):Number {
+		var mcDepth:Number;
+		var dp:Number = nextDepth();
+		for(var i:String in mc) {
+			mcDepth = mc[i].getDepth();
+			if(mc[i] instanceof MovieClip && mcDepth < 10000) {
+				dp = Math.max(mcDepth, dp);
+			}
+		}
+		return ++dp;
 	}

 }


Fixing WFSDataSource error "Variable base is not defined."

--- WeaveData/src/weave/data/DataSources/WFSDataSource.as
+++ WeaveData/src/weave/data/DataSources/WFSDataSource.as
@@ -205,8 +205,6 @@
 				var propertyName:String = propertiesList[i].attribute("name");
 				var propertyType:String = propertiesList[i].attribute("type");
 				// handle case for   <xs:simpleType><xs:restriction base="xs:string"><xs:maxLength value="2"/></xs:restriction></xs:simpleType>
-				if (propertyType == '')
-					propertyType = propertiesList[i].descendants().(@base)[0].attribute("base");
 				// convert missing propertyType to string
 				if (propertyType == '')
 					propertyType = "xs:string";


ExternalTool getSelectableAttributes() now traverses ILinkableHashMaps.

--- WeaveUI/src/weave/visualization/tools/ExternalTool.as
+++ WeaveUI/src/weave/visualization/tools/ExternalTool.as
@@ -20,8 +20,10 @@
 {
 	import mx.utils.UIDUtil;

+	import weave.api.core.ILinkableHashMap;
 	import weave.api.core.ILinkableObject;
 	import weave.api.data.IAttributeColumn;
+	import weave.api.getLinkableDescendants;
 	import weave.api.reportError;
 	import weave.api.ui.ISelectableAttributes;
 	import weave.compiler.StandardLib;
@@ -113,12 +115,19 @@
 		 */
 		public function getSelectableAttributeNames():Array
 		{
-			return getObjects(IAttributeColumn).map(getLabel);
+			return getSelectableAttributes().map(getLabel);
 		}

 		private function getLabel(obj:ILinkableObject, i:int, a:Array):String
 		{
-			return WeaveAPI.EditorManager.getLabel(obj);
+			var label:String = WeaveAPI.EditorManager.getLabel(obj);
+			if (!label)
+			{
+				var path:Array = WeaveAPI.SessionManager.getPath(this, obj);
+				if (path)
+					label = path.join('/');
+			}
+			return label;
 		}

 		/**
@@ -126,7 +135,11 @@
 		 */
 		public function getSelectableAttributes():Array
 		{
-			return getObjects(IAttributeColumn);
+			var hashMaps:Array = [this].concat(getLinkableDescendants(this, ILinkableHashMap));
+			var flatList:Array = [].concat.apply(null, hashMaps.map(function(hm:ILinkableHashMap, i:*, a:*):* { return hm.getObjects(IAttributeColumn); }));
+			return flatList.filter(function(item:ILinkableObject, i:*, a:*):Boolean { return getLabel(item, i, a) && true; });
+
+			//return getObjects(IAttributeColumn);
 		}
 	}
 }


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

--- frameworks/projects/mx/src/mx/core/LayoutContainer.as
+++ frameworks/projects/mx/src/mx/core/LayoutContainer.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-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.core
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 10212
Author:   aharui@adobe.com
Date:     2009-09-13T06:40:14.583255Z

Log Message:
-----------
Make sure UITLFTextField style changes are updated in the same frame/update

QE Notes: None
Doc Notes: None
Bugs: SDK-22663
Reviewer: Gordon
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/modules/fonts was run, but all tests seem to be excluded

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/textLayout/textLayout_textField/src/flashx/textLayout/controls/TLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</path>

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

--- frameworks/projects/spark/src/mx/core/FTETextField.as
+++ frameworks/projects/spark/src/mx/core/FTETextField.as
@@ -2212,7 +2212,8 @@
 	}

 	/**
-	 *  This method has no effect on a TLFTextField,
+	 *  This method has no effect on a TLFTextField if beginIndex
+     *  or endIndex != -1
 	 *  because TLFTextField does not support formatting a range.
 	 *
 	 *  @see flash.text.TextField#setTextFormat()
@@ -2225,6 +2226,11 @@
 								  beginIndex:int = -1,
 								  endIndex:int = -1):void
 	{
+        if (beginIndex == -1 && endIndex == -1)
+        {
+            defaultTextFormat = format;
+            validateNow();
+        }
 	}

 	/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 10006
Author:   gruehle@adobe.com
Date:     2009-09-03T22:04:47.081899Z

Log Message:
-----------
Initial checkin of the "More styles for Spark skins" feature. Details here:
http://opensource.adobe.com/wiki/display/flexsdk/More+Styles+for+Spark+Skins

There are some known issues:
* Panel bottom corners not rounded correctly when the panel has a control bar
* cornerRadius on Tab and DateChooser non functional
* cornerRadius values > 4 have drawing artifacts in the "down" state of Button and button-like components
* TextInput/TextArea incorrectly list lineBreak and verticalAlign as valid styles

This checkin also includes a couple minor unrelated bug fixes:
* Remove MiniDebugTarget. This is a logging target that used MiniDebug, which hasn't worked since Flex 1.5
* Fix RTEs when setting focusSkin to null
* Optimization: don't measure skins if the host component has explicit sizes

QE notes: Yes, many baseline images will need to be regenerated
Doc notes: New ASDoc comments should be scrubbed
Bugs: SDK-22931, SDK-22798, SDK-22217, SDK-19358
Reviewer: Jason
Tests run: checkintests, cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperIncrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/PopUpButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/SparkChromeWindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/WindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/targets/MiniDebugTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperDecrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerDecrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatorContent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/BasicTests.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/EditableComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</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/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/SparkSkinForHalo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/TextInputBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerIncrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/halo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.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/sparkskins/src/mx/skins/spark/PanelBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RectangularDropShadow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/BorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/NumericStepperTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/BorderTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ApplicationSkin.mxml</path>

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

--- frameworks/projects/mx/src/mx/controls/ComboBase.as
+++ frameworks/projects/mx/src/mx/controls/ComboBase.as
@@ -46,6 +46,16 @@

 use namespace mx_internal;
+
+/**
+ *  The alpha of the content background for this component.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="contentBackgroundAlpha", type="Number", inherit="yes", theme="spark")]

 /**
  *  Color of the content area of the component.


Transferred from the Adobe Open Source Subversion Repository

Revision: 121
Author:   jszeto@adobe.com
Date:     2008-01-08T08:08:26.009559Z

Log Message:
-----------
Flex SDK Bug Fix

SDK-13812 - Scale grid behavior on Button, etc. to reopen

Changed IBorder references to IRectangularBorder.

Bugs: SDK-13812
QA: Yes
Doc: No

[ private comments below ]

Code Review: Alex Harui

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>

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

--- frameworks/projects/mx/src/mx/controls/TextInput.as
+++ frameworks/projects/mx/src/mx/controls/TextInput.as
@@ -31,13 +31,13 @@
 import mx.controls.listClasses.IListItemRenderer;
 import mx.core.EdgeMetrics;
 import mx.core.FlexVersion;
-import mx.core.IBorder;
 import mx.core.IDataRenderer;
 import mx.core.IFlexDisplayObject;
 import mx.core.IFlexModuleFactory;
 import mx.core.IFontContextComponent;
 import mx.core.IIMESupport;
 import mx.core.IInvalidating;
+import mx.core.IRectangularBorder;
 import mx.core.IUITextField;
 import mx.core.UIComponent;
 import mx.core.UITextField;
@@ -400,9 +400,9 @@
             if (t == "")
                 t = " ";

-            return (border && border is IBorder ?
-                    IBorder(border).borderMetrics.top :
-                    0)  + measureText(t).ascent;
+            return (border && border is IRectangularBorder ?
+                    IRectangularBorder(border).borderMetrics.top :
+         			0)  + measureText(t).ascent;
         }

         if (!validateBaselinePosition())
@@ -1732,8 +1732,8 @@
     {
         super.measure();

-        var bm:EdgeMetrics = border && border is IBorder ?
-                             IBorder(border).borderMetrics :
+  		var bm:EdgeMetrics = border && border is IRectangularBorder ?
+                             IRectangularBorder(border).borderMetrics :
                              EdgeMetrics.EMPTY;

         var w:Number;
@@ -1793,8 +1793,8 @@
         if (border)
         {
             border.setActualSize(unscaledWidth, unscaledHeight);
-            bm = border is IBorder ?
-                    IBorder(border).borderMetrics : EdgeMetrics.EMPTY;
+            bm = border is IRectangularBorder ?
+                    IRectangularBorder(border).borderMetrics : EdgeMetrics.EMPTY;
         }
         else
         {


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

--- frameworks/projects/spark/src/spark/core/Version.as
+++ frameworks/projects/spark/src/spark/core/Version.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Add target to load ROM to EverDrive using loader64

--- Makefile.as
+++ Makefile.as
@@ -28,6 +28,8 @@
 N64GRAPHICS = $(TOOLS_DIR)/n64graphics
 EMULATOR = mupen64plus
 EMU_FLAGS = --noosd
+LOADER = loader64
+LOADER_FLAGS = -vwf

 ######################## Targets #############################

@@ -73,4 +75,7 @@
 test: $(TARGET).gen.z64
 	$(EMULATOR) $(EMU_FLAGS) $<

+load: $(TARGET).gen.z64
+	$(LOADER) $(LOADER_FLAGS) $<
+
 .PHONY: all clean default diff test


remove useless offset argument from the IndexStream constructor and add IndexStream.pushBytes(), IndexStream.pushTriangle() and IndexStream.setTriangle()

--- src/aerys/minko/render/geometry/stream/IndexStream.as
+++ src/aerys/minko/render/geometry/stream/IndexStream.as
@@ -50,12 +50,11 @@

 		public function IndexStream(usage	: uint,
 									data 	: ByteArray	= null,
-									offset	: uint		= 0,
 									length	: uint		= 0)
 		{
 			super();

-			initialize(data, offset, length, usage);
+			initialize(data, length, usage);
 		}

 		minko_stream function invalidate() : void
@@ -68,7 +67,6 @@
 		}

 		private function initialize(data	: ByteArray,
-									offset	: uint,
 									length 	: uint,
 									usage	: uint) : void
 		{
@@ -88,7 +86,7 @@
 				if (length % 6 != 0)
 					throw new Error();

-				_data.writeBytes(data, offset, length);
+				data.readBytes(_data, 0, length);
 			}
 			else
 			{
@@ -107,7 +105,7 @@
 			checkReadUsage(this);

 			_data.position = index << 1;
-			value = _data.readShort();
+			value = _data.readUnsignedShort();
 			_data.position = 0;

 			return value;
@@ -124,12 +122,13 @@
 			invalidate();
 		}

-		public function deleteTriangleByIndex(index : uint) : void
+		public function deleteTriangle(triangleIndex : uint) : void
 		{
 			checkWriteUsage(this);

 			_data.position = 0;
-			_data.writeBytes(_data, index * 12, 12);
+			_data.writeBytes(_data, triangleIndex * 12, 12);
+			_data.length -= 12;
 			_data.position = 0;

 			invalidate();
@@ -137,7 +136,7 @@

 		public function clone(usage : uint = 0) : IndexStream
 		{
-			return new IndexStream(usage || _usage, _data, length);
+			return new IndexStream(usage || _usage, _data);
 		}

 		public function toString() : String
@@ -148,24 +147,47 @@
 		public function concat(indexStream : IndexStream,
 							   firstIndex	: uint	= 0,
 							   count		: uint	= 0,
-							   offset		: uint 	= 0) : IndexStream
+							   indexOffset	: uint 	= 0) : IndexStream
 		{
 			checkReadUsage(indexStream);
 			checkWriteUsage(this);
+
+			pushBytes(indexStream._data, firstIndex, count, indexOffset);
+			indexStream._data.position = 0;
+
+			return this;
+		}
+
+		public function pushBytes(bytes			: ByteArray,
+								  firstIndex	: uint	= 0,
+								  count			: uint	= 0,
+								  indexOffset	: uint	= 0) : IndexStream
+		{
+			count ||= bytes.length >>> 1;

 			_data.position = _data.length;
-			_data.writeBytes(indexStream._data);
-			_data.position = 0;
-
+
+			if (indexOffset == 0)
+				_data.writeBytes(bytes, firstIndex << 1, count << 1);
+			else
+			{
+				bytes.position = firstIndex << 1;
+				for (var i : uint = 0; i < count; ++i)
+					_data.writeShort(bytes.readUnsignedShort() + indexOffset);
+			}
+
+			_data.position = 0;
+			bytes.position = (firstIndex + count) << 1;
+
 			invalidate();

 			return this;
 		}
-
-		public function push(indices 	: Vector.<uint>,
-							 firstIndex	: uint	= 0,
-							 count		: uint	= 0,
-							 offset		: uint 	= 0) : void
+
+		public function pushVector(indices 		: Vector.<uint>,
+								   firstIndex	: uint	= 0,
+								   count		: uint	= 0,
+								   offset		: uint 	= 0) : IndexStream
 		{
 			checkWriteUsage(this);

@@ -179,6 +201,29 @@
 			_data.position = 0;

 			invalidate();
+
+			return this;
+		}
+
+		public function pushTriangle(index1 : uint, index2 : uint, index3 : uint) : IndexStream
+		{
+			return setTriangle(length * 3, index1, index2, index3);
+		}
+
+		public function setTriangle(triangleIndex	: uint,
+									index1 			: uint,
+									index2 			: uint,
+									index3 			: uint) : IndexStream
+		{
+			_data.position = triangleIndex << 1;
+			_data.writeShort(index1);
+			_data.writeShort(index2);
+			_data.writeShort(index3);
+			_data.position = 0;
+
+			invalidate();
+
+			return this;
 		}

 		public function disposeLocalData(waitForUpload : Boolean = true) : void


Maybe a stack trace can tell us more about our mysterious error.

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

--- src/as/com/threerings/presents/client/Communicator.as
+++ src/as/com/threerings/presents/client/Communicator.as
@@ -285,6 +285,7 @@

         // total failure
         Log.getLog(this).warning("socket error: " + event);
+        Log.dumpStack();
         shutdown(new Error("socket closed unexpectedly."));
     }


Modifiedid datatype to String from Number

SVN-Revision: 8560

--- flexclient/dag/Components/IDAGPath.as
+++ flexclient/dag/Components/IDAGPath.as
@@ -3,6 +3,7 @@
 	import flash.utils.IExternalizable;
 	import flash.utils.IDataInput;
 	import flash.utils.IDataOutput;
+	import mx.controls.Alert;

    [Bindable]
    [RemoteClass(alias="edu.wustl.catissuecore.flex.dag.DAGPath")]
@@ -10,18 +11,18 @@
 	{

 		public var name:String;
-		public var id:Number;
+		public var id:String;
 		public var isSelected:Boolean=false;

 		public function readExternal(input:IDataInput):void {
 			name = input.readUTF();
-			id = input.readDouble();
+			id = input.readUTF();
 			isSelected = input.readBoolean();
 		}

 		public function writeExternal(out:IDataOutput):void {
 			out.writeUTF(name);
-			out.writeDouble(id);
+			out.writeUTF(id);
 			out.writeBoolean(isSelected);
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
+++ frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-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.styles
 {


Match up the printing lines with the ones from the other test

--- unittests/TestEquivalence.as
+++ unittests/TestEquivalence.as
@@ -45,7 +45,7 @@
 		[Test(order=1)]
 		public function testIfOnlyIfPTrue():void{
 			eq.ifOnlyIfP(true);
-			trace("Printing all reasons in IfOnlyIfPTrue");
+			trace("~~ Printing all reasons in IfOnlyIfPTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -55,7 +55,7 @@
 		[Test(order=2)]
 		public function testIfOnlyIfPFalse():void{
 			eq.ifOnlyIfP(false);
-			trace("Printing all reasons in IfOnlyIfPFalse");
+			trace("~~ Printing all reasons in IfOnlyIfPFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -65,7 +65,7 @@
 		[Test(order=3)]
 		public function testIfOnlyIfQTrue():void{
 			eq.ifOnlyIfQ(true);
-			trace("Printing all reasons in IfOnlyIfQTrue");
+			trace("~~ Printing all reasons in IfOnlyIfQTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -75,7 +75,7 @@
 		[Test(order=4)]
 		public function testIfOnlyIfQFalse():void{
 			eq.ifOnlyIfQ(false);
-			trace("Printing all reasons in IfOnlyIfQFalse");
+			trace("~~ Printing all reasons in IfOnlyIfQFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -85,7 +85,7 @@
 		[Test(order=5)]
 		public function testIfOnlyIfNotPTrue():void{
 			eq.ifOnlyIfNotP(true);
-			trace("Printing all reasons in IfOnlyIfNotPTrue");
+			trace("~~ Printing all reasons in IfOnlyIfNotPTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -95,7 +95,7 @@
 		[Test(order=6)]
 		public function testIfOnlyIfNotPFalse():void{
 			eq.ifOnlyIfNotP(false);
-			trace("Printing all reasons in IfOnlyIfNotPFalse");
+			trace("~~ Printing all reasons in IfOnlyIfNotPFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -105,7 +105,7 @@
 		[Test(order=7)]
 		public function testIfOnlyIfNotQTrue():void{
 			eq.ifOnlyIfNotQ(true);
-			trace("Printing all reasons in IfOnlyIfNotQTrue");
+			trace("~~ Printing all reasons in IfOnlyIfNotQTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -115,7 +115,7 @@
 		[Test(order=8)]
 		public function testIfOnlyIfNotQFalse():void{
 			eq.ifOnlyIfNotQ(false);
-			trace("Printing all reasons in IfOnlyIfNotQFalse");
+			trace("~~ Printing all reasons in IfOnlyIfNotQFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -125,7 +125,7 @@
 		[Test(order=9)]
 		public function testJustInCasePTrue():void{
 			eq.justInCaseP(true);
-			trace("Printing all reasons in JustInCasePTrue");
+			trace("~~ Printing all reasons in JustInCasePTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -135,7 +135,7 @@
 		[Test(order=10)]
 		public function testJustInCasePFalse():void{
 			eq.justInCaseP(false);
-			trace("Printing all reasons in JustInCasePFalse");
+			trace("~~ Printing all reasons in JustInCasePFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -145,7 +145,7 @@
 		[Test(order=11)]
 		public function testJustInCaseQTrue():void{
 			eq.justInCaseQ(true);
-			trace("Printing all reasons in JustInCaseQTrue");
+			trace("~~ Printing all reasons in JustInCaseQTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -155,7 +155,7 @@
 		[Test(order=12)]
 		public function testJustInCaseQFalse():void{
 			eq.justInCaseQ(false);
-			trace("Printing all reasons in JustInCaseQFalse");
+			trace("~~ Printing all reasons in JustInCaseQFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -165,7 +165,7 @@
 		[Test(order=13)]
 		public function testJustInCaseNotPTrue():void{
 			eq.justInCaseNotP(true);
-			trace("Printing all reasons in JustInCaseNotPTrue");
+			trace("~~ Printing all reasons in JustInCaseNotPTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -175,7 +175,7 @@
 		[Test(order=14)]
 		public function testJustInCaseNotPFalse():void{
 			eq.justInCaseNotP(false);
-			trace("Printing all reasons in JustInCaseNotPFalse");
+			trace("~~ Printing all reasons in JustInCaseNotPFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -185,7 +185,7 @@
 		[Test(order=15)]
 		public function testJustInCaseNotQTrue():void{
 			eq.justInCaseNotQ(true);
-			trace("Printing all reasons in JustInCaseNotQTrue");
+			trace("~~ Printing all reasons in JustInCaseNotQTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -195,7 +195,7 @@
 		[Test(order=16)]
 		public function testJustInCaseNotQFalse():void{
 			eq.justInCaseNotQ(false);
-			trace("Printing all reasons in JustInCaseNotQFalse");
+			trace("~~ Printing all reasons in JustInCaseNotQFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -205,7 +205,7 @@
 		[Test(order=17)]
 		public function testNecessaryPTrue():void{
 			eq.necessaryP(true);
-			trace("Printing all reasons in NecessaryPTrue");
+			trace("~~ Printing all reasons in NecessaryPTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -215,7 +215,7 @@
 		[Test(order=18)]
 		public function testNecessaryPFalse():void{
 			eq.necessaryP(false);
-			trace("Printing all reasons in NecessaryPFalse");
+			trace("~~ Printing all reasons in NecessaryPFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -225,7 +225,7 @@
 		[Test(order=19)]
 		public function testNecessaryQTrue():void{
 			eq.necessaryQ(true);
-			trace("Printing all reasons in NecessaryQTrue");
+			trace("~~ Printing all reasons in NecessaryQTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -235,7 +235,7 @@
 		[Test(order=20)]
 		public function testNecessaryQFalse():void{
 			eq.necessaryQ(false);
-			trace("Printing all reasons in NecessaryQFalse");
+			trace("~~ Printing all reasons in NecessaryQFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -245,7 +245,7 @@
 		[Test(order=21)]
 		public function testNecessaryNotPTrue():void{
 			eq.necessaryNotP(true);
-			trace("Printing all reasons in NecessaryNotPTrue");
+			trace("~~ Printing all reasons in NecessaryNotPTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -255,7 +255,7 @@
 		[Test(order=22)]
 		public function testNecessaryNotPFalse():void{
 			eq.necessaryNotP(false);
-			trace("Printing all reasons in NecessaryNotPFalse");
+			trace("~~ Printing all reasons in NecessaryNotPFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -265,7 +265,7 @@
 		[Test(order=23)]
 		public function testNecessaryNotQTrue():void{
 			eq.necessaryNotQ(true);
-			trace("Printing all reasons in NecessaryNotQTrue");
+			trace("~~ Printing all reasons in NecessaryNotQTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -275,7 +275,7 @@
 		[Test(order=24)]
 		public function testNecessaryNotQFalse():void{
 			eq.necessaryQ(false);
-			trace("Printing all reasons in NecessaryNotQFalse");
+			trace("~~ Printing all reasons in NecessaryNotQFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -285,7 +285,7 @@
 		[Test(order=25)]
 		public function testEquivalentPTrue():void{
 			eq.equivalentP(true);
-			trace("Printing all reasons in EquivalentPTrue");
+			trace("~~ Printing all reasons in EquivalentPTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -295,7 +295,7 @@
 		[Test(order=18)]
 		public function testEquivalentPFalse():void{
 			eq.equivalentP(false);
-			trace("Printing all reasons in EquivalentPFalse");
+			trace("~~ Printing all reasons in EquivalentPFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -305,7 +305,7 @@
 		[Test(order=19)]
 		public function testEquivalentQTrue():void{
 			eq.equivalentQ(true);
-			trace("Printing all reasons in EquivalentQTrue");
+			trace("~~ Printing all reasons in EquivalentQTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -315,7 +315,7 @@
 		[Test(order=20)]
 		public function testEquivalentQFalse():void{
 			eq.equivalentQ(false);
-			trace("Printing all reasons in EquivalentQFalse");
+			trace("~~ Printing all reasons in EquivalentQFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -325,7 +325,7 @@
 		[Test(order=21)]
 		public function testEquivalentNotPTrue():void{
 			eq.equivalentNotP(true);
-			trace("Printing all reasons in EquivalentNotPTrue");
+			trace("~~ Printing all reasons in EquivalentNotPTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -335,7 +335,7 @@
 		[Test(order=22)]
 		public function testEquivalentNotPFalse():void{
 			eq.equivalentNotP(false);
-			trace("Printing all reasons in EquivalentNotPFalse");
+			trace("~~ Printing all reasons in EquivalentNotPFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -345,7 +345,7 @@
 		[Test(order=23)]
 		public function testEquivalentNotQTrue():void{
 			eq.equivalentNotQ(true);
-			trace("Printing all reasons in EquivalentNotQTrue");
+			trace("~~ Printing all reasons in EquivalentNotQTrue");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}
@@ -355,7 +355,7 @@
 		[Test(order=24)]
 		public function testEquivalentNotQFalse():void{
 			eq.equivalentQ(false);
-			trace("Printing all reasons in EquivalentNotQFalse");
+			trace("~~ Printing all reasons in EquivalentNotQFalse");
 			for each (var reason:String in eq.getReason()){
 				trace(reason);
 			}


Colors are uints.

Colors are uints.

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@844 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flex/ChatControl.as
+++ src/as/com/threerings/flex/ChatControl.as
@@ -117,7 +117,7 @@
     /**
      * Configures the background color of the text entry area.
      */
-    public function setChatColor (color :int) :void
+    public function setChatColor (color :uint) :void
     {
         _txt.setStyle("backgroundColor", color);
     }


FLEX-34727 items array in CollectionEvent now has 0 items when refresh or reset

--- frameworks/projects/framework/src/mx/collections/ArrayList.as
+++ frameworks/projects/framework/src/mx/collections/ArrayList.as
@@ -752,7 +752,8 @@
                 var event:CollectionEvent =
                     new CollectionEvent(CollectionEvent.COLLECTION_CHANGE);
                 event.kind = kind;
-                event.items.push(item);
+				if(item != null)
+				    event.items.push(item);
                 event.location = location;
                 dispatchEvent(event);
             }