Transferred from the Adobe Open Source Subversion Repository

Revision: 6430
Author:   cframpto@adobe.com
Date:     2009-04-30T19:18:35.946696Z

Log Message:
-----------
Vellum build 422.

Lots of changes made to what was the InputManager and is now TextContainerManager which required code changes on our part.
Fixed - Can not tab into TextInput and start typing without a mouse click.

New issues:
- focusInHandler only active until there is a controller attached and at that point RichEditableText doesn't get them any more
- SelectionEvent.SELECTION_CHANGE does not seem to be dispatched by Vellum anymore after insertText/appendText and perhaps other operations which change the selection.  It is dispatched for setSelection().  I added some temporary code to work around this issue since several TextArea appendText/insertText tests were failing.

QE Notes: all TextArea and TextInput tests pass except Gumbo_TextArea_export_method_default which I will leave to QA to sort out
Doc Notes:
Bugs: SDK-20815
Reviewers: Gordon

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swf</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/tlf.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -31,13 +31,14 @@
 import flash.ui.Keyboard;

 import flashx.textLayout.compose.ITextLineCreator;
-import flashx.textLayout.container.IInputManagerClient;
-import flashx.textLayout.container.InputManager;
+import flashx.textLayout.container.ContainerController;
+import flashx.textLayout.container.TextContainerManager;
 import flashx.textLayout.conversion.ConversionType;
 import flashx.textLayout.conversion.ITextImporter;
 import flashx.textLayout.conversion.TextFilter;
 import flashx.textLayout.edit.EditManager;
 import flashx.textLayout.edit.EditingMode;
+import flashx.textLayout.edit.IEditManager;
 import flashx.textLayout.edit.ISelectionManager;
 import flashx.textLayout.edit.SelectionFormat;
 import flashx.textLayout.edit.SelectionManager;
@@ -80,11 +81,13 @@
 import mx.resources.ResourceManager;
 import mx.utils.StringUtil;

+import spark.components.supportClasses.RichEditableTextContainerManager;
 import spark.core.CSSTextLayoutFormat;
 import spark.core.IViewport;
 import spark.core.ScrollUnit;
 import spark.core.TextBaseClassWithStylesAndFocus;
 import spark.events.TextOperationEvent;
+import spark.primitives.Rect;
 import spark.utils.TextUtil;

 //--------------------------------------
@@ -185,7 +188,7 @@
  *  @productversion Flex 4
  */
 public class RichEditableText extends TextBaseClassWithStylesAndFocus
-	implements IInputManagerClient, IViewport, IFontContextComponent, IIMESupport
+	implements IViewport, IFontContextComponent, IIMESupport
 {
     include "../core/Version.as";

@@ -205,7 +208,7 @@
     	// because we need the ENTER key to behave differently based on the
     	// 'multiline' property.
     	staticInputManagerConfiguration =
-    		Configuration(InputManager.defaultConfiguration).clone();
+    		Configuration(TextContainerManager.defaultConfiguration).clone();
     	staticInputManagerConfiguration.manageEnterKey = false;

     	staticTextLayoutFormat = new TextLayoutFormat;
@@ -265,16 +268,6 @@
      */
     mx_internal static var debug:Boolean = false;

-    /**
-     *  @private
-     *  Used for debugging.
-     *  Set this to an RGB uint to draw an opaque background
-     *  so that you can see the bounds of the component.
-     *  If it is null, the background is black pixels at 0 alpha,
-     *  to be transparent but catch mouse events.
-     */
-    mx_internal static var backgroundColor:Object = null; // 0xDDDDDD;
-
     //--------------------------------------------------------------------------
     //
     //  Class properties
@@ -347,16 +340,15 @@
         super();

         // Create the TLF InputManager, using this component
-        // as both the DisplayObjectContainer for its TextLines
-        // and the implementor of its IInputManagerClient callbacks.
+        // as the DisplayObjectContainer for its TextLines.
         // This InputManager instance persists for the lifetime
         // of the component.
-        _inputManager = new InputManager(this, this, 100, 100,
-                                         staticInputManagerConfiguration);
-
+        _inputManager = new RichEditableTextContainerManager(
+                                this, staticInputManagerConfiguration);
+
         // Add event listeners on this component.

-        addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
+        //addEventListener(FocusEvent.FOCUS_IN, focusInHandler);

         addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);

@@ -460,12 +452,6 @@
      *  @private
      */
     mx_internal var clearUndoOnFocusOut:Boolean = true;
-
-    /**
-     *  @private
-     *  TODO! This can't be public.
-     */
-	public var hasScrollRect:Boolean = false;

     /**
      *  @private
@@ -1090,14 +1076,14 @@
     /**
      *  @private
      */
-    private var _inputManager:InputManager; /*** public? ***/
+    private var _inputManager:TextContainerManager; /*** public? ***/

     /**
      *  @private
      *  The TLF InputManager instance that displays,
      *  scrolls, and edits the text in this component.
      */
-	mx_internal function get inputManager():InputManager
+	mx_internal function get inputManager():TextContainerManager
 	{
 		return _inputManager;
 	}
@@ -1514,7 +1500,7 @@
         {
         	if (mx_internal::debug)
         		trace("invalidateInteractionManager()");
-        	_inputManager.invalidateInteractionManager();
+        	_inputManager.invalidateSelectionFormats();

         	selectionFormatsChanged = false;
         }
@@ -1752,134 +1738,6 @@
         stylesChanged = true;
     }

-    //--------------------------------------------------------------------------
-    //
-    //  Methods: IInputManagerClient
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function createContextMenu(inputManager:InputManager):ContextMenu
-    {
-        return inputManager.createContextMenu(inputManager);
-    }
-
-    /**
-     *  Documentation is not currently available.
-     */
-    public function drawBackgroundAndSetScrollRect(
-    					inputManager:InputManager,
-    					scrollX:Number, scrollY:Number):Boolean
-	{
-		var width:Number = inputManager.compositionWidth;
-		var height:Number = inputManager.compositionHeight;
-
-		if (isNaN(width) || isNaN(height))
-			return false; // just measuring!
-
-		if (scrollX == 0 &&
-			scrollY == 0 &&
-			inputManager.contentWidth <= width &&
-			inputManager.contentHeight <= height)
-		{
-			// skip the scrollRect
-			if (hasScrollRect)
-			{
-				scrollRect = null;
-				hasScrollRect = false;
-			}
-		}
-		else
-		{
-			scrollRect = new Rectangle(scrollX, scrollY, width, height);
-			hasScrollRect = true;
-		}
-
-        // Client must draw a background, even it if is 100% transparent.
-		var g:Graphics = graphics;
-		g.clear();
-        g.lineStyle();
-        var bc:Object = mx_internal::backgroundColor;
-        if (bc != null)
-			g.beginFill(uint(bc));
-        else
-        	g.beginFill(0x000000, 0);
-       	g.drawRect(scrollX, scrollY, width, height);
-        g.endFill();
-
-        return hasScrollRect;
-	}
-
-	/**
-	 *  Documentation is not currently available.
-	 */
-	public function getUndoManager(
-						inputManager:InputManager):IUndoManager
-	{
-		if (!mx_internal::undoManager)
-		{
-			mx_internal::undoManager = new UndoManager();
-			mx_internal::undoManager.undoAndRedoItemLimit = int.MAX_VALUE;
-		}
-
-		return mx_internal::undoManager;
-	}
-
-	/**
-	 *  Documentation is not currently available.
-	 */
-	public function getFocusSelectionFormat(
-						inputManager:InputManager):SelectionFormat
-	{
-        var selectionColor:* = getStyle("selectionColor");
-
-        // The insertion point is black, inverted, which makes it
-        // the inverse color of the background, for maximum readability.
-        return new SelectionFormat(
-        	selectionColor, 1.0, BlendMode.NORMAL,
-			0x000000, 1.0, BlendMode.INVERT);
-	}
-
-	/**
-	 *  Documentation is not currently available.
-	 */
-	public function getUnfocusedSelectionFormat(
-						inputManager:InputManager):SelectionFormat
-	{
-        var unfocusedSelectionColor:* = getStyle("unfocusedSelectionColor");
-
-        var unfocusedAlpha:Number =
-            selectionVisibility != TextSelectionVisibility.WHEN_FOCUSED ?
-            1.0 :
-            0.0;
-
-        // No insertion point when no focus.
-        return new SelectionFormat(
-            unfocusedSelectionColor, unfocusedAlpha, BlendMode.NORMAL,
-            unfocusedSelectionColor, 0.0);
-	}
-
-	/**
-	 *  Documentation is not currently available.
-	 */
-	public function getInactiveSelectionFormat(
-						inputManager:InputManager):SelectionFormat
-	{
-        var inactiveSelectionColor:* = getStyle("inactiveSelectionColor");
-
-        var inactiveAlpha:Number =
-            selectionVisibility == TextSelectionVisibility.ALWAYS ?
-            1.0 :
-            0.0;
-
-        // No insertion point when not active.
-        return new SelectionFormat(
-            inactiveSelectionColor, inactiveAlpha, BlendMode.NORMAL,
-            inactiveSelectionColor, 0.0);
-	}
-
     //--------------------------------------------------------------------------
     //
     //  Methods: IViewport
@@ -2054,18 +1912,36 @@

     /**
      *  @private
-     */
-    private function getSelectionManager():SelectionManager
-    {
-    	return SelectionManager(_inputManager.getInteractionManager());
-    }
-
-    /**
-     *  @private
-     */
-    private function getEditManager():EditManager
-    {
-    	return EditManager(_inputManager.getInteractionManager());
+     *  When done call releaseSelectionManager();
+     */
+    private function getSelectionManager():ISelectionManager
+    {
+    	return SelectionManager(_inputManager.beginInteraction());
+    }
+
+    /**
+     *  @private
+     */
+    private function releaseSelectionManager():void
+    {
+        _inputManager.endInteraction();
+    }
+
+    /**
+     *  @private
+     *  When done call releaseEditManager();
+     */
+    private function getEditManager():IEditManager
+    {
+    	return EditManager(_inputManager.beginInteraction());
+    }
+
+    /**
+     *  @private
+     */
+    private function releaseEditManager():void
+    {
+        _inputManager.endInteraction();
     }

     /**
@@ -2142,20 +2018,22 @@
         */
         _inputManager.updateContainer();

+        var contentBounds:Rectangle = _inputManager.getContentBounds();
+
         // If it's an empty text flow, there is one line with one
         // character so the height is good for the line.
-        measuredHeight = Math.ceil(_inputManager.contentHeight);
+        measuredHeight = Math.ceil(contentBounds.height);

         if (_inputManager.getText().length > 1)
         {
             // Non-empty text flow.
-            measuredWidth = Math.ceil(_inputManager.contentWidth);
+            measuredWidth = Math.ceil(contentBounds.width);
         }
         else
         {
             // Empty text flow.  One Em wide with padding.
             measuredWidth = Math.ceil(getStyle("fontSize") +
-                                      _inputManager.contentWidth);
+                                      contentBounds.width);
        }

         // Lock in the compose area so all text is visible.
@@ -2509,12 +2387,14 @@
             _selectable = true;
         }

-		var selectionManager:SelectionManager = getSelectionManager();
+		var selectionManager:ISelectionManager = getSelectionManager();

         selectionManager.setSelection(anchorPosition, activePosition);

         // Update the display with the new selection.
         selectionManager.refreshSelection();
+
+        releaseSelectionManager();
       }

     /**
@@ -2538,7 +2418,7 @@
         // selectable, editable and enabled.
         var priorEditingMode:String = editingMode;
         editingMode = EditingMode.READ_WRITE;
-        var editManager:EditManager = getEditManager();
+        var editManager:IEditManager = getEditManager();

         // If no selection, then it's an append.
          if (!editManager.hasSelection())
@@ -2548,6 +2428,9 @@
         // Update TLF display.  This initiates the InsertTextOperation.
         _inputManager.updateContainer();

+        // All done with edit manager.
+        releaseEditManager();
+
         // Restore the prior editing mode.
         editingMode = priorEditingMode;
     }
@@ -2573,7 +2456,7 @@
         // selectable, editable and enabled.
         var priorEditingMode:String = editingMode;
         editingMode = EditingMode.READ_WRITE;
-        var editManager:EditManager = getEditManager();
+        var editManager:IEditManager = getEditManager();

         // An append is an insert with the selection set to the end.
         editManager.setSelection(int.MAX_VALUE, int.MAX_VALUE);
@@ -2582,6 +2465,9 @@
         // Update TLF display.  This initiates the InsertTextOperation.
         _inputManager.updateContainer();

+        // All done with edit manager.
+        releaseEditManager();
+
         // Restore the prior editing mode.
         editingMode = priorEditingMode;
     }
@@ -2630,7 +2516,7 @@
         // Switch to the EditManager.
         var priorEditingMode:String = editingMode;
         editingMode = EditingMode.READ_WRITE;
-        var selectionManager:SelectionManager = getSelectionManager();
+        var selectionManager:ISelectionManager = getSelectionManager();

         // This internal TLF object maps the names of format properties
         // to Property instances.
@@ -2700,6 +2586,9 @@
             else if (category == Category.CHARACTER && characterFormat)
                 format[p] = characterFormat[p];
         }
+
+        // All done with the selection manager.
+        releaseSelectionManager();

         // Restore the prior editing mode.
         editingMode = priorEditingMode;
@@ -2728,7 +2617,7 @@
         // Switch to the EditManager.
         var priorEditingMode:String = editingMode;
         editingMode = EditingMode.READ_WRITE;
-        var editManager:EditManager = getEditManager();
+        var editManager:IEditManager = getEditManager();

         // Assign each specified attribute to one of three format objects,
         // depending on whether it is container-, paragraph-,
@@ -2771,6 +2660,9 @@
         editManager.applyFormat(
         	characterFormat, paragraphFormat, containerFormat);

+        // All done with the edit manager.
+        releaseEditManager();
+
         // Restore the prior editing mode.
         editingMode = priorEditingMode;
     }
@@ -2788,7 +2680,7 @@
             tlf_internal::textScrap.textFlow);

         // We know it's an EditManager or we wouldn't have gotten here.
-        var editManager:EditManager = getEditManager();
+        var editManager:IEditManager = getEditManager();

         // Generate a CHANGING event for the PasteOperation but not for the
         // DeleteTextOperation or the InsertTextOperation which are also part
@@ -2806,6 +2698,9 @@
         	textFlow, op.absoluteStart, op.absoluteStart);
         editManager.insertText(pastedText, selectionState);

+        // All done with the edit manager.
+        releaseEditManager();
+
         dispatchChangingEvent = true;
     }

@@ -2826,44 +2721,85 @@

     //--------------------------------------------------------------------------
     //
-    //  Overridden event handlers: UIComponent
+    //  Event handlers
     //
     //--------------------------------------------------------------------------

     /**
      *  @private
-     */
-    protected function focusInHandler(event:FocusEvent):void
-    {
+     *  Need to be careful since this is the container for TextContainerManager
+     *  and TextContainerManager adds it's own focusInHandler to the container.
+     *  RichEditableTextContainerManager overrides focusInHandler and calls
+     *  this.
+     */
+    mx_internal function focusInHandler(event:FocusEvent):void
+    {
+        trace("focusIn handler");
+        if (_editable)
+        {
+            // If no selection, give it one so that there is an insertion
+            // cursor and text can be input.
+            if (enabled)
+            {
+                if (!getSelectionManager().hasSelection())
+                {
+                    setSelection(int.MAX_VALUE, int.MAX_VALUE);
+
+                    // This is ugly but it's the only way to get tabbing into
+                    // the control to allow input without a mouse click.
+                    var controller:ContainerController =
+                                        textFlow.flowComposer.getControllerAt(0);
+                    controller.tlf_internal::requiredFocusInHandler(event);
+                }
+                releaseSelectionManager();
+            }
+
+            if (enabled &&
+                selectionAnchorPosition == -1 && selectionActivePosition == -1)
+            {
+                //setSelection(int.MAX_VALUE, int.MAX_VALUE);
+
+                // This is ugly but it's the only way to get tabbing into
+                // the control to allow input without a mouse click.
+                //var controller:ContainerController =
+                //                    textFlow.flowComposer.getControllerAt(0);
+                //controller.tlf_internal::requiredFocusInHandler(event);
+            }
+
+            if (enabled)
+                getSelectionManager();
+
+            if (_imeMode != null)
+            {
+                IME.enabled = true;
+                prevMode = IME.conversionMode;
+                // When IME.conversionMode is unknown it cannot be
+                // set to anything other than unknown(English)
+                try
+                {
+                    if (!errorCaught &&
+                        IME.conversionMode != IMEConversionMode.UNKNOWN)
+                    {
+                        IME.conversionMode = _imeMode;
+                    }
+                    errorCaught = false;
+                }
+                catch(e:Error)
+                {
+                    // Once an error is thrown, focusIn is called
+                    // again after the Alert is closed, throw error
+                    // only the first time.
+                    errorCaught = true;
+                    var message:String = ResourceManager.getInstance().getString(
+                        "controls", "unsupportedMode", [ _imeMode ]);
+                    throw new Error(message);
+                }
+            }
+        }
+
         if (focusManager && multiline)
             focusManager.defaultButtonEnabled = false;

-        if (_imeMode != null && _editable)
-        {
-            IME.enabled = true;
-            prevMode = IME.conversionMode;
-            // When IME.conversionMode is unknown it cannot be
-            // set to anything other than unknown(English)
-            try
-            {
-                if (!errorCaught &&
-                    IME.conversionMode != IMEConversionMode.UNKNOWN)
-                {
-                    IME.conversionMode = _imeMode;
-                }
-                errorCaught = false;
-            }
-            catch(e:Error)
-            {
-                // Once an error is thrown, focusIn is called
-                // again after the Alert is closed, throw error
-                // only the first time.
-                errorCaught = true;
-                var message:String = ResourceManager.getInstance().getString(
-                    "controls", "unsupportedMode", [ _imeMode ]);
-                throw new Error(message);
-            }
-        }
     }

     /**
@@ -2872,8 +2808,8 @@
     protected function focusOutHandler(event:FocusEvent):void
     {
         // By default, we clear the undo history when a TextView loses focus.
-        if (mx_internal::clearUndoOnFocusOut)
-                mx_internal::undoManager.clearAll();
+        if (mx_internal::clearUndoOnFocusOut && mx_internal::undoManager)
+            mx_internal::undoManager.clearAll();

         if (focusManager)
             focusManager.defaultButtonEnabled = true;
@@ -2901,18 +2837,17 @@
         if (event.keyCode == Keyboard.ENTER)
         {
             if (multiline)
+            {
         		getEditManager().splitParagraph();
+        		releaseEditManager();
+            }
             else
+            {
                 dispatchEvent(new FlexEvent(FlexEvent.ENTER));
+            }
          }
     }

-    //--------------------------------------------------------------------------
-    //
-    //  Event handlers
-    //
-    //--------------------------------------------------------------------------
-
     /**
      *  @private
      */
@@ -2930,9 +2865,10 @@
                                     event:CompositionCompletionEvent):void
     {
         //trace("compositionComplete");
-
         var oldContentWidth:Number = _contentWidth;
-        var newContentWidth:Number = _inputManager.contentWidth;
+
+        var newContentBounds:Rectangle = _inputManager.getContentBounds();
+        var newContentWidth:Number = newContentBounds.width;

         // Error correction for rounding errors.  It shouldn't be so but
         // the contentWidth can be slightly larger than the requested
@@ -2954,7 +2890,7 @@
         }

         var oldContentHeight:Number = _contentHeight;
-        var newContentHeight:Number = _inputManager.contentHeight;
+        var newContentHeight:Number = newContentBounds.height;

         // Error correction for rounding errors.  It shouldn't be so but
         // the contentHeight can be slightly larger than the requested
@@ -3042,11 +2978,22 @@
     private function inputManager_selectionChangeHandler(
                         event:SelectionEvent):void
     {
-        var selectionManager:SelectionManager = getSelectionManager();
-
+        var selectionManager:ISelectionManager = getSelectionManager();
+
+        // ToDo: this may not be needed if Vellum goes back to dispatching
+        // this event on editManager.insertText()/appendText().
+        if (!event &&
+            _selectionAnchorPosition == selectionManager.anchorPosition &&
+            _selectionActivePosition != selectionManager.activePosition)
+        {
+            return;
+        }
+
         _selectionAnchorPosition = selectionManager.anchorPosition;
         _selectionActivePosition = selectionManager.activePosition;

+        releaseSelectionManager();
+
         //trace("selectionChangeHandler", _selectionAnchorPosition, _selectionActivePosition);

         dispatchEvent(new FlexEvent(FlexEvent.SELECTION_CHANGE));
@@ -3162,6 +3109,10 @@
         if (event.operation is PasteOperation)
             handlePasteOperation(PasteOperation(event.operation));

+        // ToDo: this may not be needed if Vellum goes back to dispatching
+        // this event on editManager.insertText()/appendText().
+        inputManager_selectionChangeHandler(null);
+
         // Since the text may have changed, set a flag which will
         // cause the 'text' getter to call extractText() to extract
         // the text by walking the TextFlow.


DigestMD5 updated. Works with Openfire. Needs to be tested on other servers.

git-svn-id: c197267f952b24206666de142881703007ca05d5@11707 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/auth/DigestMD5.as
+++ src/org/igniterealtime/xiff/auth/DigestMD5.as
@@ -28,8 +28,8 @@
 	import com.hurlant.util.Base64;
 	import com.hurlant.util.Hex;

-	import flash.net.URLVariables;
 	import flash.utils.ByteArray;
+	import flash.utils.Dictionary;

 	import org.igniterealtime.xiff.core.XMPPConnection;

@@ -69,7 +69,7 @@
 		/**
 		 * Construct the response as described by DIGEST-MD5 documentation.
 		 */
-		private function formatResponse( map:URLVariables ):String
+		private function formatResponse( map:Dictionary ):String
 		{
 			var md5:MD5 = new MD5();

@@ -127,33 +127,44 @@
 		override public function handleChallenge( stage:int, challenge:XML ):XML
 		{
 			var decodedChallenge:String = Base64.decode( challenge );
-			decodedChallenge = decodedChallenge.split( "," ).join( "&" ).replace( /\"/g, "");
-			var challengeMap:URLVariables = new URLVariables( decodedChallenge );
-			var responseMap:URLVariables = new URLVariables();
+			var challengeKeyValuePairs:Array = decodedChallenge.replace( /\"/g, "").split( "," );
+			var challengeMap:Dictionary = new Dictionary();
+			for each( var keyValuePair:String in challengeKeyValuePairs )
+			{
+				var keyValue:Array = keyValuePair.split( "=" );
+				challengeMap[ keyValue[ 0 ] ] = keyValue[ 1 ];
+			}

-			responseMap.username = connection.username;
-			responseMap.realm = challengeMap.realm ? challengeMap.realm : connection.domain;
-			responseMap.nonce = challengeMap.nonce;
-			responseMap.cnonce = new Date().time;
-			responseMap.nc = "00000001";
-			responseMap.qop = challengeMap.qop;
-			responseMap[ "digest-uri" ] = "xmpp/" + responseMap.realm;
-			responseMap.charset = challengeMap.charset;
-			responseMap.response = formatResponse( responseMap );
-
-			var challengeResponse:String = "username=\"" + responseMap.username + "\"";
-			challengeResponse += ",realm=\"" + responseMap.realm + "\"";
-			challengeResponse += ",nonce=\"" + responseMap.nonce + "\"";
-			challengeResponse += ",cnonce=\"" + responseMap.cnonce + "\"";
-			challengeResponse += ",nc=" + responseMap.nc;
-			challengeResponse += ",qop=" + responseMap.qop;
-			challengeResponse += ",digest-uri=\"" + responseMap[ "digest-uri" ] + "\"";
-			challengeResponse += ",response=" + responseMap.response;
-			challengeResponse += ",charset=" + responseMap.charset;
-			challengeResponse = Base64.encode( challengeResponse );
 			var resp:XML = response;
 			resp.setNamespace( DigestMD5.NS );
-			resp.setChildren( challengeResponse );
+
+			if( !challengeMap.rspauth )
+			{
+				var responseMap:Dictionary = new Dictionary();
+				responseMap.username = connection.username;
+				responseMap.realm = challengeMap.realm ? challengeMap.realm : "";
+				responseMap.nonce = challengeMap.nonce;
+				responseMap.cnonce = new Date().time;
+				responseMap.nc = "00000001";
+				responseMap.qop = challengeMap.qop ? challengeMap.qop : "auth";
+				responseMap[ "digest-uri" ] = "xmpp/" + ( challengeMap.realm ? challengeMap.realm : connection.domain );
+				responseMap.charset = challengeMap.charset;
+				responseMap.response = formatResponse( responseMap );
+
+				var challengeResponse:String = "username=\"" + responseMap.username + "\"";
+				if( challengeMap.realm ) challengeResponse += ",realm=\"" + responseMap.realm + "\"";
+				challengeResponse += ",nonce=\"" + responseMap.nonce + "\"";
+				challengeResponse += ",cnonce=\"" + responseMap.cnonce + "\"";
+				challengeResponse += ",nc=" + responseMap.nc;
+				challengeResponse += ",qop=" + responseMap.qop;
+				challengeResponse += ",digest-uri=\"" + responseMap[ "digest-uri" ] + "\"";
+				challengeResponse += ",response=" + responseMap.response;
+				challengeResponse += ",charset=" + responseMap.charset;
+				challengeResponse = Base64.encode( challengeResponse );
+
+				resp.setChildren( challengeResponse );
+			}
+
 			return resp;
 		}

@@ -167,7 +178,7 @@
 		*/
 		override public function handleResponse( stage:int, response:XML ):Object
 		{
-			var success:Boolean = response.nodeName == "success";
+			var success:Boolean = response.localName() == "success";
 			return {
 				authComplete: true,
 				authSuccess: success,


DigestMD5 updated. Works with Openfire. Needs to be tested on other servers.


kline update

kline update

--- test/src/TestKLine.as
+++ test/src/TestKLine.as
@@ -46,11 +46,12 @@
 			loader.addEventListener(IOErrorEvent.IO_ERROR, loader_ioError);
 			loader.load(new URLRequest(
 			//"http://120.26.39.108:9090/getAllMobilePrice.do?pcode=XTAG200G"
-			"http://120.26.52.171:9091/pass/marketTimeList?pcode=CU10"
+			"http://121.43.100.114:9095/pass/marketTimeList?pcode=CU10"
 			+"&v="+Math.random()));
 			addChild(kline);
 			kline.y = oy;
 			//update();
+
 		}

 		private function loader_ioError(e:IOErrorEvent):void
@@ -64,7 +65,7 @@
 			loader.addEventListener(Event.COMPLETE, loader_complete);
 			loader.load(new URLRequest(
 				//"http://120.26.39.108:9090/getNewMobilePrice.do?pcode=XTAG100G"
-				"http://120.26.52.171:9091/pass/newMarketTimeList?pcode=CU10"
+				"http://121.43.100.114:9095/pass/newMarketTimeList?pcode=CU10"
 				+"&v="+Math.random()));
 			//todo del
 			//addData(10*Math.random());
@@ -146,6 +147,16 @@
 					}

 					var h:Number =  int((stage.stageHeight - 2 * oy) / numline);
+					var numDot:int = 0;
+					var n:String = h + "";
+					var di:int = n.indexOf(".");
+					if (di ==-1){
+						numDot = 0;
+					}else{
+						n=n.substr(di+1)
+						numDot = n.length;
+					}
+					trace("小数点位数",numDot);
 					for (var i:int = 0; i <= numline; i++ ){
 						var y:Number = getY(minV + i, minV, maxV, s, h);
 						drawDashLine(kline.graphics, 0, y, w-ox, y,2);
@@ -153,7 +164,7 @@
 						tf.defaultTextFormat=new TextFormat("Courier New",fontsize);
 						tf.autoSize = "left";
 						kline.addChild(tf);
-						tf.text = ""+((minV + i)*s).toFixed(2);
+						tf.text = ""+((minV + i)*s).toFixed(numDot);
 						tf.y = y-tf.height/2;
 						tf.x = w-ox;
 					}
@@ -171,7 +182,7 @@
 					kline.addChild(labelTF);
 					labelTF.y = y - labelTF.height / 2;
 					labelTF.x = w - ox;
-					labelTF.text = d.toFixed(2) + "";
+					labelTF.text = d.toFixed(numDot) + "";
 				}
 				kline.graphics.lineTo(x, y);
 				if (x < 0){


Transferred from the Adobe Open Source Subversion Repository

Revision: 5067
Author:   smgilson@adobe.com
Date:     2009-02-25T16:21:22.849704Z

Log Message:
-----------
In preparation for adding ASDoc version tags for Flex, remove old tags from AIR files

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/WindowExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as
+++ frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as
@@ -22,7 +22,6 @@
  *  @see mx.controls.FileSystemDataGrid#enumerationMode
  *  @see mx.controls.FileSystemTree#enumerationMode
  *
- *  @playerversion AIR 1.1
  */
 public final class FileSystemEnumerationMode
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19851
Author:   mcho@adobe.com
Date:     2011-01-20T23:07:11.305461Z

Log Message:
-----------
More precise text alignment for mobile components

QE notes: Components with tend to be narrower and shorter for the View Menu.  Must update baselines that use x, y, width, height.
Doc notes: None
Bugs:
Reviewer: Ryan, Jason Szeto, Jason SJ, Glenn
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TabbedViewNavigatorButtonBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
@@ -2182,9 +2182,9 @@
 		var messageAlignmentHeight:Number = 0;

 		if (hasLabel)
-			labelAlignmentHeight = labelDisplay.textTopToLastBaselineHeight;
+			labelAlignmentHeight = getElementPreferredHeight(labelDisplay);
 		if (hasMessage)
-			messageAlignmentHeight = messageDisplay.textTopToLastBaselineHeight;
+			messageAlignmentHeight = getElementPreferredHeight(messageDisplay);

 		totalHeight = labelAlignmentHeight + messageAlignmentHeight + verticalGap;
 		labelComponentsY = Math.round(vAlign * (viewHeight - totalHeight)) + paddingTop;


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

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


Added SELECTION_CHANGED to payloadEvent

Added SELECTION_CHANGED to payloadEvent

--- src/laml/events/PayloadEvent.as
+++ src/laml/events/PayloadEvent.as
@@ -8,6 +8,7 @@
 		public static const ERROR:String 				= 'error';
 		public static const LOADING_COMPLETED:String 	= 'loadingCompleted';
 		public static const REMOVED:String 				= 'removed';
+		public static const SELECTION_CHANGED:String	= 'selectionChanged';

 		public var payload:Object;


better error reporting on startup

better error reporting on startup

--- WeaveAPI/src/weave/api/WeaveAPI.as
+++ WeaveAPI/src/weave/api/WeaveAPI.as
@@ -374,7 +374,7 @@
 				}
 				catch (e:Error)
 				{
-					trace(e.message);
+					trace(e.getStackTrace() || e);
 				}
 			}
 			// END TEMPORARY SOLUTION


Added WeaveAPI.externalReload()

Added WeaveAPI.externalReload()

Change-Id: I98b900904740e3d2f77de50a19b9fb846f2898b3

--- WeaveAPI/src/weave/api/WeaveAPI.as
+++ WeaveAPI/src/weave/api/WeaveAPI.as
@@ -65,6 +65,25 @@
 		MXClasses; // Referencing this allows all Flex classes to be dynamically created at runtime.

 		/**
+		 * This function will restart the Flash application by reloading the SWF that is embedded in the browser window.
+		 */
+		public static function externalReload():void
+		{
+			ExternalInterface.call(
+				"function(objectID) {" +
+				"  if (objectID) {" +
+				"    var p = document.getElementById(objectID).parentNode;" +
+				"    p.innerHTML = p.innerHTML;" +
+				"  }" +
+				"  else {" +
+				"    location.reload();" +
+				"  }" +
+				"}",
+				[ExternalInterface.objectID]
+			);
+		}
+
+		/**
 		 * This returns the top level application as defined by FlexGlobals.topLevelApplication
 		 * or Application.application if FlexGlobals isn't defined.
 		 */


Fixed QName toString()

Fixed QName toString()

--- frameworks/projects/XML/src/main/flex/QName.as
+++ frameworks/projects/XML/src/main/flex/QName.as
@@ -100,7 +100,8 @@
 		COMPILE::JS
 		public function toString():String
 		{
-			return _localName;
+			var uriVal:String = _uri ? _uri : "*";
+			return uriVal + "::" + _localName;
 		}

 		COMPILE::JS


Transferred from the Adobe Open Source Subversion Repository

Revision: 14483
Author:   smgilson@adobe.com
Date:     2010-03-01T19:01:18.459430Z

Log Message:
-----------
merge 14456: Adding ASDoc version tags classes

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkRangeAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkRadioButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkPanelAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkButtonBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonBarAutomationImpl.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_air/src/mx/automation/air/AirFunctionsHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkSkinnableContainerAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/events/SparkValueChangeAutomationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkButtonBarBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkNavigatorContentAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGroupAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkTrackBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/events/EventDetails.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/events/SparkListItemSelectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTabBarAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonBarButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkGroupAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkSkinnableContainerBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/mediaClasses/SparkMuteButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_air/src/mx/automation/air/AirDragManagerAutomationHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/SOAPResult.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkTextBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTitleWindowAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTileGroupAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkToggleButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkSpinnerAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccConst.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkLabelAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkBorderContainerAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkGroupBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkVideoPlayerAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkSkinnableComponentAutomationImpl.as</path>

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

--- frameworks/projects/automation/src/mx/automation/events/EventDetails.as
+++ frameworks/projects/automation/src/mx/automation/events/EventDetails.as
@@ -12,27 +12,80 @@

 package mx.automation.events
 {
-	import flash.display.DisplayObject;
-	import flash.events.Event;
-
-	public class EventDetails
-	{
-		public var eventType:String;
-		public var handlerFunction:Function;
-		public var useCapture:Boolean;
-		public var priority:int;
-		public var useWeekRef:Boolean;
-
-		public function EventDetails(type:String, handler:Function,
-									 useCapture:Boolean= false,
-									 priority:int = 0, useWeekReferance:Boolean= false )
-		{
-			this.eventType = type;
-			this.handlerFunction = handler;
-			this.useCapture = useCapture;
-			this.priority = priority;
-			this.useWeekRef = useWeekReferance;
-		}
-
-	}
+    import flash.display.DisplayObject;
+    import flash.events.Event;
+
+    /**
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public class EventDetails
+    {
+       /**
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10
+        *  @playerversion AIR 1.5
+        *  @productversion Flex 4
+        */
+        public var eventType:String;
+
+       /**
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10
+        *  @playerversion AIR 1.5
+        *  @productversion Flex 4
+        */
+        public var handlerFunction:Function;
+
+       /**
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10
+        *  @playerversion AIR 1.5
+        *  @productversion Flex 4
+        */
+        public var useCapture:Boolean;
+
+       /**
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10
+        *  @playerversion AIR 1.5
+        *  @productversion Flex 4
+        */
+        public var priority:int;
+
+       /**
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10
+        *  @playerversion AIR 1.5
+        *  @productversion Flex 4
+        */
+        public var useWeekRef:Boolean;
+
+       /**
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 10
+        *  @playerversion AIR 1.5
+        *  @productversion Flex 4
+        */
+        public function EventDetails(type:String, handler:Function,
+                                     useCapture:Boolean= false,
+                                     priority:int = 0, useWeekReferance:Boolean= false )
+        {
+            this.eventType = type;
+            this.handlerFunction = handler;
+            this.useCapture = useCapture;
+            this.priority = priority;
+            this.useWeekRef = useWeekReferance;
+        }
+
+    }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 9708
Author:   cframpto@adobe.com
Date:     2009-08-27T20:22:38.464977Z

Log Message:
-----------
Add TLFTextInput which allows Halo controls to use the spark FTE/TLF-based TextInput component wherever a Halo TextInput can be used.

This is done by introducing a new style for Halo called textInputClass.  In the global selector, in defaults.css, it defaults to mx.controls.TextInput.  This style only applies for Flex version 4 and up.

To use TLFText apply the new TLFText.css style sheet as a theme to your application.  Alternatively you may apply this style sheet in your application but you will see compiler warnings for any unused selectors.

Note that mx.controls.TLFTextInput lives in spark.swc since it is build on spark.components.TextInput.

Modified ColorPicker, DateField, ComboBox, NumericStepper and TextInput to look at the textInputClass field to determine whether to use a Halo TextInput or a Spark TextInput.

QE notes:
Doc notes:
Bugs:
Reviewer: Gordon
Tests run: mx ColorPicker,DateField,ComboBox,NumericStepper and TextInput as well as checkintests
one ColorPicker_events_toolTipHide failed - the timer does fire eventually but it seems to take much longer than the hideDelay=10000.
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManagerComponent.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/TLFText.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>

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

--- frameworks/projects/framework/src/mx/managers/IFocusManagerComponent.as
+++ frameworks/projects/framework/src/mx/managers/IFocusManagerComponent.as
@@ -161,6 +161,11 @@
 	 */
 	function get tabIndex():int;

+	/**
+	 *  @private
+	 */
+	function set tabIndex(value:int):void;
+
 	//--------------------------------------------------------------------------
 	//
 	//  Methods


FLEX-33683 fix adding two lists together

--- frameworks/projects/framework/src/mx/collections/ListCollectionView.as
+++ frameworks/projects/framework/src/mx/collections/ListCollectionView.as
@@ -653,7 +653,9 @@
      */
     public function addAllAt(addList:IList, index:int):void
     {
-        if (index < 0 || index > this.length)
+		var maxLength:int = this.length
+
+        if (index < 0 || index > maxLength)
         {
             var message:String = resourceManager.getString(
                 "collections", "outOfBounds", [ index ]);
@@ -661,7 +663,6 @@
         }

         var length:int = addList.length;
-		var maxLength:int = length

 		// incremental index may be out of bounds because of filtering,
 		// so add this item to the end.


No need for debugging httpclient any more

--- http/src/org/httpclient/Log.as
+++ http/src/org/httpclient/Log.as
@@ -13,7 +13,7 @@
     public static const WARN:Number = 3;
     public static const ERROR:Number = 4;

-    public static var level:Number = DEBUG;
+    public static var level:Number = WARN;

     // What to do with logged string
     private static function output(s:String):void {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6122
Author:   chaase@adobe.com
Date:     2009-04-10T14:30:17.762458Z

Log Message:
-----------
Various refactorings/renamings/changes from effects PARB review.

QE Notes: mx/effects and spark/effects currently broken (and disabled) due to these API changes. Matt is fixing.
Doc Notes: None
Bugs:
Reviewer: Hans
tests: checkintests, mustella tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EasingFraction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EffectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/TweenEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/RepeatBehavior.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/NumberArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Rotate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.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/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as
@@ -117,6 +117,49 @@
         return _duration;
     }

+
+    //----------------------------------
+    //  playheadTime
+    //----------------------------------
+
+    /**
+     * @inheritDoc
+     *
+     * In a Parallel effect, setting playheadTime
+     * will cause all child effects to go to that same
+     * playheadTime. This may cause child effects to
+     * lessen their startDelay (if they are currently
+     * waiting to be played), start playing (if the
+     * playheadTime is greater than their
+     * startDelay), or end (if the playheadTime
+     * is greater than their startDelay plus
+     * their duration).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function set playheadTime(value:Number):void
+    {
+        var totalDur:Number = Parallel(effect).compositeDuration;
+        var childPlayheadTime:Number =
+            (value - startDelay) % (totalDur + repeatDelay);
+
+        // This will seek in the Parallel's instance
+        super.playheadTime = childPlayheadTime;
+        playCount = 1 + (value - startDelay) / (totalDur + repeatDelay);
+
+        // Tell all of our children to set their playheadTime
+        for (var i:int = 0; i < childSets.length; i++)
+        {
+            var instances:Array = childSets[i];
+            var m:int = instances.length;
+            for (var j:int = 0; j < m; j++)
+                instances[j].playheadTime = childPlayheadTime;
+        }
+    }
+
 	//--------------------------------------------------------------------------
 	//
 	//  Overridden methods
@@ -450,39 +493,6 @@

 	}

-    /**
-     * @inheritDoc
-     *
-     * In a Parallel effect, seek will cause all child effects to seek to
-     * the same seekTime. This may cause child effects to
-     * lessen their startDelay (if they are currently waiting to be played),
-     * start playing (if the seekTime is greater than their startDelay), or
-     * come to an end (if the seekTime is greater than their startDelay plus
-     * their duration).
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    override public function seek(seekTime:Number):void
-    {
-        var totalDur:Number = Parallel(effect).compositeDuration;
-        var childSeekTime:Number = (seekTime - startDelay) % (totalDur + repeatDelay);
-
-        // This will seek in the Parallel's instance
-        super.seek(childSeekTime);
-        playCount = 1 + (seekTime - startDelay) / (totalDur + repeatDelay);
-
-        // Tell all of our children to seek()
-        for (var i:int = 0; i < childSets.length; i++)
-        {
-            var instances:Array = childSets[i];
-            var m:int = instances.length;
-            for (var j:int = 0; j < m; j++)
-                instances[j].seek(childSeekTime);
-        }
-    }
 }

 }


Update FMSClient.as

Update FMSClient.as

--- examples/web/app/classes/server/FMSClient.as
+++ examples/web/app/classes/server/FMSClient.as
@@ -20,8 +20,8 @@
 			trace('FMSClient.onChangePlayer:', user, player);
 		}

-		public function onUpdateScore(score:uint):void {
-			trace('FMSClient.onUpdateScore:', score);
+		public function onUpdateScore(user:String, score:uint):void {
+			trace('FMSClient.onUpdateScore:', user, score);
 		}

 		public function onDisconnect(user:String):void {


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

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

 package mx.olap
 {


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

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

 package mx.charts.series
 {


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/UITextFormat.as
+++ frameworks/projects/framework/src/mx/core/UITextFormat.as
@@ -12,11 +12,10 @@
 package mx.core
 {

-import flash.text.TextField;
 import flash.text.TextFormat;
 import flash.text.TextLineMetrics;
+
 import mx.managers.ISystemManager;
-import mx.managers.SystemManagerGlobals;

 /**
  *  The UITextFormat class represents character formatting information
@@ -277,6 +276,33 @@
     public var antiAliasType:String;

     //----------------------------------
+    //  direction
+    //----------------------------------
+
+	/**
+	 *  The directionality of the text.
+	 *
+	 *
The allowed values are "ltr" for left-to-right text,
+	 *  as in Latin-style scripts,
+	 *  and "rtl" for right-to-left text,
+	 *  as in Arabic and Hebrew.

+	 *
+	 *
FTE and TLF use this value in their bidirectional text layout algorithm,
+	 *  which maps Unicode character order to glyph order.

+	 *
+	 *
Note: This style only applies when this UITextFormat
+	 *  is used with a UITLFTextField rather than a UITextField.

+	 *
+	 *  @default null
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
+	 */
+    public var direction:String;
+
+    //----------------------------------
     //  gridFitType
     //----------------------------------

@@ -308,6 +334,28 @@
      *  @productversion Flex 3
      */
     public var gridFitType:String;
+
+    //----------------------------------
+    //  locale
+    //----------------------------------
+
+	/**
+	 *  The locale of the text.
+	 *
+	 *
FTE and TLF use this locale to map Unicode characters
+	 *  to font glyphs and to find fallback fonts.

+	 *
+	 *
Note: This style only applies when this UITextFormat
+	 *  is used with a UITLFTextField rather than a UITextField.

+	 *
+	 *  @default null
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
+	 */
+    public var locale:String;

     //----------------------------------
     //  moduleFactory
@@ -522,16 +570,22 @@
             measurementTextField.embedFonts = false;
         }

-        // Set other TextField properties based on CSS styles.
-        // These properties do not have meaning in TLFTextField,
-        // and have been implemented to return either null or NaN,
-        // so don't try to set them on a TLFTextField.
+        // Set other properties based on CSS styles.
         if (!useTLF)
         {
+			// These properties do not have meaning in TLFTextField,
+			// and have been implemented to return either null or NaN,
+			// so don't try to set them on a TLFTextField.
 	        measurementTextField.antiAliasType = antiAliasType;
 	        measurementTextField.gridFitType = gridFitType;
 	        measurementTextField.sharpness = sharpness;
 	        measurementTextField.thickness = thickness;
+        }
+        else
+        {
+        	// The properties have meaning only on a TLFTextField.
+			measurementTextField.direction = direction;
+        	measurementTextField.locale = locale;
         }

         // Set the text to be measured into the TextField.


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

--- frameworks/projects/framework/src/mx/states/Transition.as
+++ frameworks/projects/framework/src/mx/states/Transition.as
@@ -0,0 +1,148 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.states
+{
+
+import mx.effects.IEffect;
+
+[DefaultProperty("effect")]
+
+/**
+ *  The Transition class defines a set of effects that play in response
+ *  to a change of view state. While a view state definition
+ *  defines how to change states, a transition defines the order in which
+ *  visual changes occur during the state change.
+ *
+ *
To define a transition, you set the transition property of an Application
+ *  to an Array of Transition objects.

+ *
+ *
You use the toState and fromState properties of
+ *  the Transition class to specify the state changes that trigger the transition.
+ *  By default, both the fromState and toState properties
+ *  are set to "*", meaning apply the transition to any changes to the view state.

+ *
+ *
You can use the fromState property to explicitly specify a
+ *  view state that your are changing from, and the toState property
+ *  to explicitly specify a view state that you are changing to.
+ *  If a state change matches two transitions, the toState property
+ *  takes precedence over the fromState property. If more than one
+ *  transition match, Flex uses the first definition in the transition array.

+ *
+ *
You use the effect property to specify the Effect object to play
+ *  when you apply the transition. Typically, this is a composite effect object,
+ *  such as the Parallel or Sequence effect, that contains multiple effects,
+ *  as the following example shows:

+ *
+ *  <mx:Transition id="myTransition" fromState="*" toState="*">
+ *    <mx:Parallel>
+ *        ...
+ *    </mx:Parallel>
+ *  </mx:Transition>
+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:Transition> tag
+ *  defines the following attributes:

+ *
+ *

+ *  <mx:Transition
+ *    Properties
+ *    id="ID"
+ *    effect=""
+ *    fromState="*"
+ *    toState="*"
+ *  />
+ *

+ *
+ *  @see mx.effects.AddChildAction
+ *  @see mx.effects.RemoveChildAction
+ *  @see mx.effects.SetPropertyAction
+ *  @see mx.effects.SetStyleAction
+ *
+ *  @includeExample examples/TransitionExample.mxml
+ */
+public class Transition
+{
+	include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+	public function Transition()
+	{
+		super();
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+	//  effect
+    //----------------------------------
+
+	/**
+	 *  The IEffect object to play when you apply the transition. Typically,
+	 *  this is a composite effect object, such as the Parallel or Sequence effect,
+	 *  that contains multiple effects.
+	 *
+	 *
The effect property is the default property of the
+	 *  Transition class. You can omit the <mx:effect> tag
+	 *  if you use MXML tag syntax.

+	 */
+	public var effect:IEffect;
+
+    //----------------------------------
+	//  fromState
+    //----------------------------------
+
+	[Inspectable(category="General")]
+
+    /**
+     *  A String specifying the view state that your are changing from when
+     *  you apply the transition. The default value is "*", meaning any view state.
+     *
+     *
You can set this property to an empty string, "",
+     *  which corresponds to the base view state.

+     *
+     *  @default "*"
+     */
+	public var fromState:String = "*";
+
+    //----------------------------------
+	//  toState
+    //----------------------------------
+
+	[Inspectable(category="General")]
+
+	/**
+	 *  A String specifying the view state that you are changing to when
+	 *  you apply the transition. The default value is "*", meaning any view state.
+     *
+     *
You can set this property to an empty string, "",
+     *  which corresponds to the base view state.

+     *
+     *  @default "*"
+	 */
+	public var toState:String = "*";
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/utils/DisplayUtil.as
+++ frameworks/projects/framework/src/mx/utils/DisplayUtil.as
@@ -22,6 +22,11 @@
  *  You do not create instances of the DisplayUtil class;
  *  instead you call static methods such as the
  *  DisplayUtil.walkDisplayObjects().
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class DisplayUtil
 {
@@ -39,6 +44,11 @@
 	 *
 	 *  @param displayObject The target DisplayObject.
 	 *  @param callbackFunction The method to call on each node in the specified DisplayObject's tree.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static function walkDisplayObjects(displayObject:DisplayObject,
 											  callbackFunction:Function):void


Transferred from the Adobe Open Source Subversion Repository

Revision: 20455
Author:   egeorgie@adobe.com
Date:     2011-02-24T18:39:34.625731Z

Log Message:
-----------
Fix for http://bugs.adobe.com/jira/browse/SDK-29635 When a child swf is loaded with loadForCompatibility=true, the Spark Slider pop up and DropDownList drop down are not positioned correctly.

In this change:
- update HSlider and VSlider to correctly convert the tooltip position form sandboxRoot to systemManager coordinates (the tip is in system manager coordinates).
- DropDown/ComboBox and other pop-up related code now calcualtes the concatenatedMatrix up to the sandboxRoot instead of the root sprite (the root sprite is the systemManager in a sub-app but the actual pop-up parent is the sandboxRoot).

QE notes: Verify grid item renderers' tooltips in sub-app/marshall plan/mobile density scaling scenarios; A general pass over drop-down and combo box in sub-app/marshall plan/mobile density scaling scenarios.
Doc notes:
Bugs: SDK-29635
Reviewer: Alex
Tests run: mustella full cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>

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

--- frameworks/projects/spark/src/spark/components/HSlider.as
+++ frameworks/projects/spark/src/spark/components/HSlider.as
@@ -185,6 +185,11 @@
                                                            NaN,
                                                            null,
                                                            new Point(relX, initialPosition.y));
+
+            // The point is in sandboxRoot coordinates, however tipAsDisplayObject is paranted to systemManager,
+            // convert to tipAsDisplayObject's parent coordinates
+            pt = tipAsDisplayObject.parent.globalToLocal(systemManager.getSandboxRoot().localToGlobal(pt));
+
             tipAsDisplayObject.x = Math.floor(pt.x);
             tipAsDisplayObject.y = Math.floor(pt.y);
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11092
Author:   gruehle@adobe.com
Date:     2009-10-22T22:40:32.867834Z

Log Message:
-----------
Styling bug fixes:
- Halo Panel cornerRadius is for theme="halo, spark"
- Add support for borderAlpha and borderVisible to DateChooser.
- Halo NumericStepper proxies the borderVisible style down to the text input.
- Spark Spinner: add metadata for cornerRadius
- Spark FocusSkin: add null check
- SpinnerSkin/NumericStepperSkin: push cornerRadius down to increment/decrement buttons
- PanelBorderSkin: round corners of control bar

QE notes: None
Doc notes: None
Bugs: SDK-23537, SDK-23447, SDK-23350, SDK-23370, SDK-23271, SDK-23343, SDK-23341
Reviewer: Kevin
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<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/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/DataGridHeaderBackgroundSkin.mxml</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/spark/src/spark/skins/spark/NumericStepperSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/Spinner.as
+++ frameworks/projects/spark/src/spark/components/Spinner.as
@@ -35,6 +35,16 @@
  *  @productversion Flex 4
  */
 [Event(name="change", type="flash.events.Event")]
+
+/**
+ *  The radius of the corners of this component.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="cornerRadius", type="Number", format="Length", inherit="no", theme="spark")]

 /**
  *  The alpha of the focus ring for this component.


Transferred from the Adobe Open Source Subversion Repository

Revision: 8481
Author:   smgilson@adobe.com
Date:     2009-07-09T17:28:31.741329Z

Log Message:
-----------
First of several checkins to update the namespace in ASDoc MXML syntax descriptions for Spark components

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

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

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

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

  *

- *  <VSlider/>
+ *  <s:VSlider/>
  *

  *
  *  @see spark.skins.spark.VSliderSkin
@@ -141,30 +141,30 @@
      */
     override protected function updateDataTip(dataTipInstance:IDataRenderer, initialPosition:Point):void
     {
-    	var tipAsDisplayObject:DisplayObject = dataTipInstance as DisplayObject;
-
-    	if (tipAsDisplayObject && thumb)
-    	{
-			var relY:Number = thumb.getLayoutBoundsY() +
-							(thumb.getLayoutBoundsHeight() - tipAsDisplayObject.height) / 2;
-	        var o:Point = new Point(initialPosition.x, relY);
-	        var r:Point = localToGlobal(o);
-
-			// Get the screen bounds
-			var screenBounds:Rectangle = systemManager.getVisibleApplicationRect();
-			// Get the tips bounds. We only care about the dimensions.
-			var tipBounds:Rectangle = tipAsDisplayObject.getBounds(tipAsDisplayObject.parent);
-
-			// Make sure the tip doesn't exceed the bounds of the screen
-			r.x = Math.floor( Math.max(screenBounds.left,
-							  	Math.min(screenBounds.right - tipBounds.width, r.x)));
-			r.y = Math.floor( Math.max(screenBounds.top,
-								Math.min(screenBounds.bottom - tipBounds.height, r.y)));
-
-			r = tipAsDisplayObject.parent.globalToLocal(r);
-        	tipAsDisplayObject.x = r.x;
-        	tipAsDisplayObject.y = r.y;
-    	}
+        var tipAsDisplayObject:DisplayObject = dataTipInstance as DisplayObject;
+
+        if (tipAsDisplayObject && thumb)
+        {
+            var relY:Number = thumb.getLayoutBoundsY() +
+                            (thumb.getLayoutBoundsHeight() - tipAsDisplayObject.height) / 2;
+            var o:Point = new Point(initialPosition.x, relY);
+            var r:Point = localToGlobal(o);
+
+            // Get the screen bounds
+            var screenBounds:Rectangle = systemManager.getVisibleApplicationRect();
+            // Get the tips bounds. We only care about the dimensions.
+            var tipBounds:Rectangle = tipAsDisplayObject.getBounds(tipAsDisplayObject.parent);
+
+            // Make sure the tip doesn't exceed the bounds of the screen
+            r.x = Math.floor( Math.max(screenBounds.left,
+                                Math.min(screenBounds.right - tipBounds.width, r.x)));
+            r.y = Math.floor( Math.max(screenBounds.top,
+                                Math.min(screenBounds.bottom - tipBounds.height, r.y)));
+
+            r = tipAsDisplayObject.parent.globalToLocal(r);
+            tipAsDisplayObject.x = r.x;
+            tipAsDisplayObject.y = r.y;
+        }
     }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8483
Author:   smgilson@adobe.com
Date:     2009-07-09T17:52:48.367800Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/TileLayout.as
+++ frameworks/projects/spark/src/spark/layouts/TileLayout.as
@@ -65,7 +65,7 @@
  *  attributes of its superclass and adds the following tag attributes:

  *
  *

- *  <TileLayout
+ *  <s:TileLayout
  *    Properties
  *    columnAlign="left"
  *    columnWidth="NaN"