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

--- frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as
@@ -0,0 +1,625 @@
+/*************************************************************************
+ *
+ * ADOBE CONFIDENTIAL
+ * __________________
+ *
+ *  [2002] - [2007] Adobe Systems Incorporated
+ *  All Rights Reserved.
+ *
+ * NOTICE:  All information contained herein is, and remains
+ * the property of Adobe Systems Incorporated and its suppliers,
+ * if any.  The intellectual and technical concepts contained
+ * herein are proprietary to Adobe Systems Incorporated
+ * and its suppliers and may be covered by U.S. and Foreign Patents,
+ * patents in process, and are protected by trade secret or copyright law.
+ * Dissemination of this information or reproduction of this material
+ * is strictly forbidden unless prior written permission is obtained
+ * from Adobe Systems Incorporated.
+ */
+package mx.messaging.channels
+{
+
+import flash.events.Event;
+import flash.events.EventDispatcher;
+import flash.events.HTTPStatusEvent;
+import flash.events.IOErrorEvent;
+import flash.events.ProgressEvent;
+import flash.events.SecurityErrorEvent;
+import flash.events.StatusEvent;
+import flash.net.ObjectEncoding;
+import flash.net.URLRequest;
+import flash.net.URLRequestMethod;
+import flash.net.URLStream;
+import flash.net.URLVariables;
+import flash.utils.ByteArray;
+
+import mx.core.mx_internal;
+import mx.logging.ILogger;
+import mx.messaging.Channel;
+import mx.messaging.FlexClient;
+import mx.messaging.events.MessageEvent;
+import mx.messaging.messages.AbstractMessage;
+import mx.messaging.messages.CommandMessage;
+import mx.messaging.messages.IMessage;
+
+use namespace mx_internal;
+
+/**
+ *  Dispatched when the StreamingConnectionHandler receives a status command from the server.
+ *
+ *  @eventType flash.events.StatusEvent
+ */
+[Event(name="status", type="flash.events.StatusEvent")]
+
+/**
+ *  A helper class that is used by the streaming channels to open an internal
+ *  HTTP connection to the server that is held open to allow the server to
+ *  stream data down to the client with no poll overhead.
+ */
+public class StreamingConnectionHandler extends EventDispatcher
+{
+    //--------------------------------------------------------------------------
+    //
+    // Public Static Constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The code for the StatusEvent dispatched by this handler when a disconnect
+     *  command is received from the server.
+     */
+    public static const DISCONNECT_CODE:String = "disconnect";
+
+    //--------------------------------------------------------------------------
+    //
+    // Private Static Constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Parameter name for the command passed in the request for a new streaming connection.
+     */
+    private static const COMMAND_PARAM_NAME:String = "command";
+
+    /**
+     *  A request to open a streaming connection passes this 'command' in the request URI to the
+     *  remote endpoint.
+     */
+    private static const OPEN_COMMAND:String = "open";
+
+    /**
+     *  A request to close a streaming connection passes this 'command' in the request URI to the
+     *  remote endpoint.
+     */
+    private static const CLOSE_COMMAND:String = "close";
+
+    /**
+     *  Parameter name for the version param passed in the request for a new streaming connection.
+     */
+    private static const VERSION_PARAM_NAME:String = "version";
+
+    /**
+     *  Indicates the stream version used for this channel's stream connection.
+     *  Currently just version 1. If the protocol over the wire needs to change in the future
+     *  this gives us a way to indicate the change.
+     */
+    private static const VERSION_1:String = "1";
+
+    // Constants for bytes used in parsing response chunks.
+    private static const CR_BYTE:int = 13;
+    private static const LF_BYTE:int = 10;
+    private static const NULL_BYTE:int = 0;
+
+    // Map of ASCII bytes to hex digits.
+    private static const HEX_DIGITS:Object = {"48":  "0",
+                                              "49":  "1",
+                                              "50":  "2",
+                                              "51":  "3",
+                                              "52":  "4",
+                                              "53":  "5",
+                                              "54":  "6",
+                                              "55":  "7",
+                                              "56":  "8",
+                                              "57":  "9",
+                                              "65":  "a",
+                                              "97":  "a",
+                                              "66":  "b",
+                                              "98":  "b",
+                                              "67":  "c",
+                                              "99":  "c",
+                                              "68":  "d",
+                                              "100": "d",
+                                              "69":  "e",
+                                              "101": "e",
+                                              "70":  "f",
+                                              "102": "f"};
+    // Map of hex digits to decimal values.
+    private static const HEX_VALUES:Object = {"0": 0,
+                                              "1": 1,
+                                              "2": 2,
+                                              "3": 3,
+                                              "4": 4,
+                                              "5": 5,
+                                              "6": 6,
+                                              "7": 7,
+                                              "8": 8,
+                                              "9": 9,
+                                              "a": 10,
+                                              "b": 11,
+                                              "c": 12,
+                                              "d": 13,
+                                              "e": 14,
+                                              "f": 15};
+
+    // Parse states; streamProgressHandler() uses these states to parse incoming HTTP response chunks.
+    private static const INIT_STATE:int = 0;
+    private static const CR_STATE:int = 1;
+    private static const LF_STATE:int = 2;
+    private static const SIZE_STATE:int = 3;
+    private static const TEST_CHUNK_STATE:int = 4;
+    private static const SKIP_STATE:int = 5;
+    private static const DATA_STATE:int = 6;
+    private static const RESET_BUFFER_STATE:int = 7;
+
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Creates an new StreamingConnectionHandler instance.
+     *
+	 *  @param channel The Channel that uses this class.
+	 *  @param log Reference to the logger for the associated Channel.
+     */
+    public function StreamingConnectionHandler(channel:Channel, log:ILogger)
+    {
+        super();
+    	this.channel = channel;
+    	this._log = log;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+  	/**
+  	 * The Channel that uses this class.
+  	 */
+  	 protected var channel:Channel;
+
+    /**
+     *  Byte buffer used to store the current chunk from the remote endpoint.
+     *  Once a full chunk has been buffered, a message instance encoded in binary
+     *  AMF format can be read from the chunk and dispatched.
+     */
+    protected var chunkBuffer:ByteArray;
+
+    /**
+     *  Counter that keeps track of how many data bytes remain to be read for the current chunk.
+     *  A sentinal value of -1 indicates an initial state (either waiting for the first chunk or
+     *  just finished parsing the previous chunk).
+     */
+    protected var dataBytesToRead:int = -1;
+
+    /**
+     *  Index into the chunk buffer pointing to the first byte of chunk data.
+     */
+    protected var dataOffset:int;
+
+    /**
+     *  @private
+     *  Reference to the logger for the associated Channel.
+     */
+    protected var _log:ILogger;
+
+    /**
+     *  Storage for the hex-format chunk size value from the byte stream.
+     */
+    private var hexChunkSize:String;
+
+    /**
+     *  Current parse state on the streaming connection.
+     */
+    private var state:int = INIT_STATE;
+
+    /**
+     *  URLStream used to open a streaming connection from the server to
+     *  the client over HTTP.
+     */
+    private var streamingConnection:URLStream;
+
+    /**
+     *  URLStream used to close the original streaming connection opened from
+     *  the server to the client over HTTP.
+     */
+	private var streamingConnectionCloser:URLStream;
+
+    //--------------------------------------------------------------------------
+    //
+    // Public Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Used by the streaming channels to set up the streaming connection if
+     *  necessary and issue the open request to the server.
+     */
+    public function openStreamingConnection():void
+    {
+    	// Construct the streaming connection if needed.
+        if (streamingConnection == null)
+        {
+            streamingConnection = new URLStream();
+            streamingConnection.addEventListener(Event.OPEN, streamOpenHandler);
+            streamingConnection.addEventListener(ProgressEvent.PROGRESS, streamProgressHandler);
+            streamingConnection.addEventListener(Event.COMPLETE, streamCompleteHandler);
+            streamingConnection.addEventListener(HTTPStatusEvent.HTTP_STATUS, streamHttpStatusHandler);
+            streamingConnection.addEventListener(IOErrorEvent.IO_ERROR, streamIoErrorHandler);
+            streamingConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, streamSecurityErrorHandler);
+        }
+
+        // Open the streaming connection, only if not already requested to open.
+        if (!streamingConnection.connected)
+        {
+            var request:URLRequest = new URLRequest();
+            request.url = channel.endpoint + "?" + COMMAND_PARAM_NAME + "=" + OPEN_COMMAND + "&" + VERSION_PARAM_NAME + "=" + VERSION_1;
+            request.method = URLRequestMethod.POST;
+            var postParams:URLVariables = new URLVariables();
+            postParams[AbstractMessage.FLEX_CLIENT_ID_HEADER] = FlexClient.getInstance().id
+            request.data = postParams;
+
+			streamingConnection.load(request);
+        }
+    }
+
+    /**
+     *  Used by the streaming channels to shut down the streaming connection.
+     */
+    public function closeStreamingConnection():void
+    {
+    	// First, close the existing connection.
+        if (streamingConnection != null)
+        {
+            if (streamingConnection.connected)
+            {
+                try
+                {
+                    streamingConnection.close();
+                }
+                catch(ignore:Error)
+				{
+				}
+            }
+        }
+
+		// Then, let the server know that streaming connection can be cleaned up.
+		if (streamingConnectionCloser == null)
+		{
+            var process:Function = function(event:Event):void
+            {
+                if (streamingConnectionCloser.connected)
+                {
+                    try
+                    {
+                        streamingConnectionCloser.close();
+                    }
+                    catch (ignore:Error)
+                    {
+                    }
+                }
+            }
+
+            var ignore:Function = function(event:Event):void
+            {
+                // Simply ignore the received event.
+            }
+
+			streamingConnectionCloser = new URLStream();
+			streamingConnectionCloser.addEventListener(Event.COMPLETE, process);
+            streamingConnectionCloser.addEventListener(IOErrorEvent.IO_ERROR, process);
+			// Handle these events with the complete handler, mainly to prevent
+			// them from being dispatched to the player.
+            streamingConnectionCloser.addEventListener(HTTPStatusEvent.HTTP_STATUS, ignore);
+            streamingConnectionCloser.addEventListener(SecurityErrorEvent.SECURITY_ERROR, ignore);
+		}
+
+		// Request the streaming connection to close, only if not already requested to close.
+		if (!streamingConnectionCloser.connected)
+		{
+			var request:URLRequest = new URLRequest();
+			request.url = channel.endpoint + "?" + COMMAND_PARAM_NAME + "=" + CLOSE_COMMAND + "&" + VERSION_PARAM_NAME + "=" + VERSION_1;
+			request.method = URLRequestMethod.POST;
+			var postParams:URLVariables = new URLVariables();
+			postParams[AbstractMessage.FLEX_CLIENT_ID_HEADER] = FlexClient.getInstance().id
+			request.data = postParams;
+
+			streamingConnectionCloser.load(request);
+		}
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Protected Methods
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Used by the streamProgressHandler to read a message. Default implementation
+	 *  returns null and subclasses must overwrite this method.
+	 */
+    protected function readMessage():IMessage
+    {
+    	return null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Private Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Helper method to process the chunk size value in hex read from the beginning of a chunk
+     *  into a decimal value that can be used to determine when all data for the chunk has been read.
+     *
+     *  @param value The hex value as a String.
+     *  @return The hex value converted as a decimal int.
+     */
+    private function convertHexToDecimal(value:String):int
+    {
+        var result:int = 0;
+        var powerOfSixteen:int = 0;
+        for (var i:int = value.length - 1; i >= 0; i--)
+        {
+            if (powerOfSixteen == 0)
+                powerOfSixteen = 1;
+            else
+                powerOfSixteen *= 16;
+
+            var digit:int = HEX_VALUES[value.charAt(i)];
+            result += digit * powerOfSixteen;
+        }
+        return result;
+    }
+
+    /**
+     *  Handles a complete event that indicates that the streaming connection
+     *  has been closed by the server by re-dispatching the event for the channel.
+     *
+     *  @param event The COMPLETE Event.
+     */
+    private function streamCompleteHandler(event:Event):void
+    {
+    	dispatchEvent(event);
+    }
+
+    /**
+     *  Handles HTTP status events dispatched by the streaming connection by
+     *  re-dispatching the event for the channel.
+     *
+     *  @param event The HTTPStatusEvent.
+     */
+    private function streamHttpStatusHandler(event:HTTPStatusEvent):void
+    {
+		dispatchEvent(event);
+    }
+
+    /**
+     *  Handles IO error events dispatched by the streaming connection by
+     *  re-dispatching the event for the channel.
+     *
+     *  @param event The IOErrorEvent.
+     */
+    private function streamIoErrorHandler(event:IOErrorEvent):void
+    {
+		dispatchEvent(event);
+    }
+
+    /**
+     *  Handles open events dispatched by the streaming connection by re-dispatching
+     *  the event for the channel.
+     *
+     *  @param event The OPEN Event.
+     */
+    private function streamOpenHandler(event:Event):void
+    {
+       dispatchEvent(event);
+    }
+
+    /**
+     *  The arrival of data from the remote endpoint triggers progress events.
+     *  The format of the data stream is HTTP Transfer-Encoding chunked, and each chunk contains either an object
+     *  encoded in binary AMF format or a block of bytes to read off the network but skip any processing of.
+     *
+     *  @param event The ProgressEvent.
+     */
+    private function streamProgressHandler(event:ProgressEvent):void
+    {
+        if (chunkBuffer == null)
+        {
+            chunkBuffer = new ByteArray();
+            chunkBuffer.objectEncoding = ObjectEncoding.AMF3;
+        }
+
+        var n:int = streamingConnection.bytesAvailable;
+        if (n > 0)
+        {
+            // Move available bytes to chunk buffer.
+            streamingConnection.readBytes(chunkBuffer, chunkBuffer.length, n);
+
+            // Parse chunk buffer. Currently no validation is done of the chunk format.
+            // There's little need for it with our known server but validation could be added.
+            var value:int; // Storage for current byte read.
+            while (chunkBuffer.bytesAvailable > 0)
+            {
+                if (state == INIT_STATE)
+                {
+                    value = chunkBuffer.readByte();
+                    if (value == NULL_BYTE) // Ignore the null heartbeat byte.
+                        continue;
+
+                    dataBytesToRead = -1;
+                    hexChunkSize = "";
+                    chunkBuffer.position--; // Push back byte read.
+                    state = CR_STATE;
+                }
+                if (state == CR_STATE)
+                {
+                    value = chunkBuffer.readByte();
+
+                    // This state skips past CRLF pairs but may also be hit at the start of a stream
+                    // in which case we need to advance to the size state to finish reading the size header.
+                    if (value == CR_BYTE)
+                    {
+                        state = LF_STATE;
+                    }
+                    else
+                    {
+                        // We seem to get into this state when a high number of messages
+                        // are being streamed in a very short amount of time.
+                        chunkBuffer.position--; // Push back byte read.
+                        value = chunkBuffer.readByte();
+
+                        if (value == LF_BYTE)
+                        {
+                            state = (dataBytesToRead == -1) ? SIZE_STATE : // Parsing a new chunk, read size next.
+                                                            TEST_CHUNK_STATE; // Done with the size, now read the data.
+                        }
+                        else
+                        {
+                            chunkBuffer.position--; // Push back byte read.
+                            state = SIZE_STATE;
+                        }
+                    }
+
+                    if (chunkBuffer.bytesAvailable == 0)
+                        break;
+                }
+                if (state == LF_STATE)
+                {
+                    value = chunkBuffer.readByte();
+
+                    if (value == LF_BYTE)
+                        state = (dataBytesToRead == -1) ? SIZE_STATE : // Parsing a new chunk, read size next.
+                                                          TEST_CHUNK_STATE; // Done with the size, now read the data.
+
+                    if (chunkBuffer.bytesAvailable == 0)
+                        break;
+                }
+                if (state == SIZE_STATE)
+                {
+                    value = chunkBuffer.readByte();
+                    if (value == NULL_BYTE) // Ignore the null heartbeat byte.
+                        continue;
+
+                    // CR indicates that we've finished reading the size.
+                    if (value == CR_BYTE)
+                    {
+                        dataBytesToRead = convertHexToDecimal(hexChunkSize);
+                        state = LF_STATE;
+                    }
+                    else // Hex digit.
+                    {
+                        hexChunkSize += HEX_DIGITS[value];
+                    }
+
+                    if (chunkBuffer.bytesAvailable == 0)
+                        break;
+                }
+                if (state == TEST_CHUNK_STATE)
+                {
+                    // A leading NULL byte in a chunk body indicates that the chunk should be read
+                    // off the network but not processed further.
+                    value = chunkBuffer.readByte();
+                    dataOffset = chunkBuffer.position;
+                    state = (value == NULL_BYTE) ? SKIP_STATE :
+                                                   DATA_STATE;
+                    chunkBuffer.position--;
+
+                    if (chunkBuffer.bytesAvailable == 0)
+                        break;
+                }
+                if (state == SKIP_STATE)
+                {
+                    if (chunkBuffer.bytesAvailable >= dataBytesToRead)
+                    {
+                        chunkBuffer.position += dataBytesToRead; // Skip over all bytes for the chunk.
+                        state = RESET_BUFFER_STATE;
+                    }
+                    else // Wait for the rest of the chunk to arrive.
+                    {
+                        break;
+                    }
+                }
+                if (state == DATA_STATE)
+                {
+                    if (chunkBuffer.bytesAvailable >= dataBytesToRead)
+                    {
+                        var message:IMessage = readMessage();
+                        // Dispatch a message event from the channel.
+                        // Prepare for the next chunk.
+                        if (message != null)
+                        {
+                            // Watch for stream disconnect commands from the server.
+                            // When one is received, do not dispatch it, and instead notify the channel to
+                            // shut down and not attempt to reconnect.
+                            if ((message is CommandMessage) && (CommandMessage(message).operation == CommandMessage.DISCONNECT_OPERATION))
+                            {
+                                var statusEvent:StatusEvent = new StatusEvent(StatusEvent.STATUS, false, false, DISCONNECT_CODE, "status");
+                                dispatchEvent(statusEvent);
+                            }
+                            else  // Regular message; dispatch it.
+                            {
+							    channel.dispatchEvent(MessageEvent.createEvent(MessageEvent.MESSAGE, message));
+                            }
+                        }
+						state = RESET_BUFFER_STATE;
+                    }
+                    else // Wait for the rest of the chunk to arrive.
+                    {
+                        break;
+                    }
+                }
+                if (state == RESET_BUFFER_STATE)
+                {
+                    if (chunkBuffer.bytesAvailable > 0) // Copy unparsed bytes for the next chunk over into a new buffer.
+                    {
+                        for (var j:int = 0; j < chunkBuffer.bytesAvailable; j++)
+                            var x:int = chunkBuffer[j];
+
+                        var tempBuffer:ByteArray = new ByteArray();
+                        tempBuffer.objectEncoding = ObjectEncoding.AMF3;
+                        chunkBuffer.readBytes(tempBuffer, 0, chunkBuffer.bytesAvailable);
+                        chunkBuffer = tempBuffer;
+                    }
+                    else // Nothing left in the buffer; let the GC collect the bytes for the old chunk.
+                    {
+                        chunkBuffer = new ByteArray();
+                        chunkBuffer.objectEncoding = ObjectEncoding.AMF3;
+                    }
+                    state = INIT_STATE;
+
+                    if (chunkBuffer.bytesAvailable == 0)
+                        break;
+                }
+            }
+        }
+    }
+
+    /**
+     *  Handles security error events dispatched by the streaming connection by
+     *  re-dispatching the event for the channel.
+     *
+     *  @param event The SecurityErrorEvent.
+     */
+    private function streamSecurityErrorHandler(event:SecurityErrorEvent):void
+    {
+		dispatchEvent(event);
+    }
+}
+
+}


FLEX-33722 FLEX-33705 Stop DG RTE

FLEX-33722 FLEX-33705 Stop DG RTE

--- frameworks/projects/spark/src/spark/components/gridClasses/DataGridDragProxy.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/DataGridDragProxy.as
@@ -147,6 +147,7 @@
                 IStyleClient(clone).styleName = DataGrid(owner);

                 IDataRenderer(clone).data = data;
+                clone.column = column;
                 clone.visible = true;

@@ -195,10 +196,10 @@
             o.visible = true;
             measuredHeight = o.y + o.height;
             measuredWidth = totalColumnWidth;
-
+
+			o.validateNow();
         }

-        o.validateNow();
         invalidateDisplayList();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

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

--- frameworks/projects/spark/src/spark/effects/interpolation/NumberInterpolator.as
+++ frameworks/projects/spark/src/spark/effects/interpolation/NumberInterpolator.as
@@ -8,7 +8,7 @@
 //  in accordance with the terms of the license agreement accompanying it.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package mx.effects.interpolation
+package spark.effects.interpolation
 {

 import mx.resources.IResourceManager;


Transferred from the Adobe Open Source Subversion Repository

Revision: 3451
Author:   egreenfi@adobe.com
Date:     2008-10-02T05:10:18.410127Z

Log Message:
-----------
- UIComponents, GraphicElements's matrix used for layout calculations, and set by the parent layouts, is now decoupled from the actual layout used by the flash player for rendering.
- Both UIComponents an d GraphicElements can be handed a TransformOffset object. The transformOffset allows developers to specify adjustments to the transform as defined by the compoennts parent layout.
- 3D properties on components and graphic elements are now supported.  Setting a 3D property or a 3D matrix on a component or element will affect it visually, but the 2D layouts will continue to lay out as though only the 2D portion of their layout is applied.
- transformX,Y,Z now fully supported on components and elements.  For layouts that don't try and set the post transform bounds (i.e., absolute layout without constraints), the layout scale and rotation will be centered on this point.  The offset transform will also be centered around this point.
- layering is now decoupled from item order.  By default, components now render in order based on the value of their 'layer' property.  All components' layers default to 0.  components with the same layer render in the order they appear in their parent group's item list.
- setting transform.matrix on UIComponent is now supported, and is roughly the same as setting the convenience layout properties on the component.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/.flexProperties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/ITransformable.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/.actionScriptProperties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/LayoutItemUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/framework/.actionScriptProperties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4/.flexLibProperties</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Parser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/framework/.flexLibProperties</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4/.actionScriptProperties</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/geom/Transform.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/flex/geom/Transform.as" copyfrom-rev="3342" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TransformUtil.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/TransformOffset.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/fxg-manifest.xml</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
@@ -18,7 +18,6 @@
 import flash.events.EventDispatcher;
 import flash.geom.Rectangle;

-import flex.geom.Transform;
 import flex.graphics.graphicsClasses.GraphicElement;

 import mx.core.mx_internal;


Reformatted code line

Reformatted code line

--- as3/test/asunit4/async/AsyncTest.as
+++ as3/test/asunit4/async/AsyncTest.as
@@ -43,8 +43,7 @@

 			cancelTimeout();

-			assertEquals("no commands for test after handler called",
-				0, async.getPending().length);
+			assertEquals("no commands for test after handler called", 0, async.getPending().length);
 		}

 		protected function foo():void { }


added hasChildBranches: false

added hasChildBranches: false

--- WeaveData/src/weave/data/DataSources/HealthIndicatorsDataSource.as
+++ WeaveData/src/weave/data/DataSources/HealthIndicatorsDataSource.as
@@ -124,6 +124,7 @@
 									dataSource: root.dataSource,
 									data: item,
 									label: item.ShortDescription,
+									hasChildBranches: false,
 									children: function(parent:ColumnTreeNode):Array
 									{
 										var csv:CSVDataSource = getCSV(parent.data.ID);


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

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

 package mx.managers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11951
Author:   hhillen@paciellogroup.com
Date:     2009-11-18T20:35:52.215971Z

Log Message:
-----------
Accessibility implementation support for the spark ToggleButton, DropDownListBase and ComboBox components.
QE notes: none
Doc notes: none
Bugs: n/a
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ToggleButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/DropDownListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/DropDownListAccImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ComboBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ButtonAccImpl.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
@@ -121,6 +121,12 @@
 [Exclude(name="dropEnabled", kind="property")]
 [Exclude(name="selectedIndices", kind="property")]
 [Exclude(name="selectedItems", kind="property")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[AccessibilityClass(implementation="spark.accessibility.DropDownListBaseAccImpl")]

 /**
  *  The DropDownListBase control contains a drop-down list
@@ -174,6 +180,18 @@

     //--------------------------------------------------------------------------
     //
+    //  Class mixins
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Placeholder for mixin by DropDownListBaseAccImpl.
+     */
+    mx_internal static var createAccessibilityImplementation:Function;
+
+    //--------------------------------------------------------------------------
+    //
     //  Constructor
     //
     //--------------------------------------------------------------------------
@@ -479,6 +497,16 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  @private
+     *  Called by the initialize() method of UIComponent
+     *  to hook in the accessibility code.
+     */
+    override protected function initializeAccessibility():void
+    {
+        if (DropDownListBase.createAccessibilityImplementation != null)
+            DropDownListBase.createAccessibilityImplementation(this);
+    }
     /**
      *  @private
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 18987
Author:   rfrishbe@adobe.com
Date:     2010-12-03T01:08:34.503999Z

Log Message:
-----------
PARB changes for sizeElement/positionElement.  MobileSkin and MobileItemRenderer's methods have been renamed: resizeElement() -> setElementSize(), positionElement() -> setElementPosition().

Also, cleaning up text reflow for TextAreaSkin

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.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/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/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/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as
@@ -354,25 +354,31 @@
     }

 	/**
-	 *  A helper method to position the children of this item renderer.
-	 *
-	 *
You can use this method instead of checking for and using
-	 *  various interfaces such as ILayoutElement or IFlexDisplayObject.

-	 *
-	 *  @param element The child to position.
+	 *  A helper method to position children elements of this component.
+	 *
+	 *
This method is the recommended way to position children elements.  You can
+	 *  use this method instead of checking for and using
+	 *  various interfaces/classes such as ILayoutElement, IFlexDisplayObject,
+	 *  or StyleableTextField.

+	 *
+	 *
Call this method after calling setElementSize()

+	 *
+	 *  @param element The child element to position.  The element could be an
+	 *  ILayoutElement, IFlexDisplayObject, StyleableTextField, or a generic
+	 *  DisplayObject.
 	 *
 	 *  @param x The x-coordinate of the child.
 	 *
 	 *  @param y The y-coordinate of the child.
 	 *
-	 *  @see #resizeElement
+	 *  @see #setElementSize
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.1
 	 *  @playerversion AIR 2.5
 	 *  @productversion Flex 4.5
 	 */
-	protected function positionElement(element:Object, x:Number, y:Number):void
+	protected function setElementPosition(element:Object, x:Number, y:Number):void
 	{
 		if (element is ILayoutElement)
 		{
@@ -390,25 +396,31 @@
 	}

 	/**
-	 *  A helper method to size the children of this item renderer.
-	 *
-	 *
You can use this method instead of checking for and using
-	 *  various interfaces such as ILayoutElement or IFlexDisplayObject.

-	 *
-	 *  @param element The child to position.
+	 *  A helper method to size children elements of this component.
+	 *
+	 *
This method is the recommended way to size children elements.  You can
+	 *  use this method instead of checking for and using
+	 *  various interfaces/classes such as ILayoutElement, IFlexDisplayObject,
+	 *  or StyleableTextField.

+	 *
+	 *
Call this method before calling setElementPosition()

+	 *
+	 *  @param element The child element to size.  The element could be an
+	 *  ILayoutElement, IFlexDisplayObject, StyleableTextField, or a generic
+	 *  DisplayObject.
 	 *
 	 *  @param x The width of the child.
 	 *
 	 *  @param y The height of the child.
 	 *
-	 *  @see #positionElement
+	 *  @see #setElementPosition
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.1
 	 *  @playerversion AIR 2.5
 	 *  @productversion Flex 4.5
 	 */
-	protected function resizeElement(element:Object, width:Number, height:Number):void
+	protected function setElementSize(element:Object, width:Number, height:Number):void
 	{
 		if (element is ILayoutElement)
 		{
@@ -426,11 +438,17 @@
 	}

 	/**
-	 *  A helper method to retrieve the preferred width of an element
-	 *
-	 *
You can use this method instead of checking for and using
-	 *  various interfaces such as ILayoutElement or IFlexDisplayObject.

-	 *
+	 *  A helper method to retrieve the preferred width of a child element.
+	 *
+	 *
This method is the recommended way to get a child element's preferred
+	 *  width.  You can use this method instead of checking for and using
+	 *  various interfaces/classes such as ILayoutElement, IFlexDisplayObject,
+	 *  or StyleableTextField.

+	 *
+	 *  @param element The child element to retrieve the width for.  The element could
+	 *  be an ILayoutElement, IFlexDisplayObject, StyleableTextField, or a generic
+	 *  DisplayObject.
+	 *
 	 *  @param element The child to retrieve the width for
 	 *
 	 *  @see #sizeElement
@@ -453,9 +471,6 @@
 		}
 		else if (element is StyleableTextField)
 		{
-			// commit styles to get an accurate measurement
-			StyleableTextField(element).commitStyles();
-
 			return StyleableTextField(element).measuredTextSize.x;
 		}
 		else
@@ -465,12 +480,16 @@
 	}

 	/**
-	 *  A helper method to retrieve the preferred height of an element
-	 *
-	 *
You can use this method instead of checking for and using
-	 *  various interfaces such as ILayoutElement or IFlexDisplayObject.

-	 *
-	 *  @param element The child to retrieve the height for
+	 *  A helper method to retrieve the preferred height of a child element.
+	 *
+	 *
This method is the recommended way to get a child element's preferred
+	 *  height.  You can use this method instead of checking for and using
+	 *  various interfaces/classes such as ILayoutElement, IFlexDisplayObject,
+	 *  or StyleableTextField.

+	 *
+	 *  @param element The child element to retrieve the width for.  The element could
+	 *  be an ILayoutElement, IFlexDisplayObject, StyleableTextField, or a generic
+	 *  DisplayObject.
 	 *
 	 *  @see #sizeElement
 	 *  @see #getElementPreferredWidth
@@ -492,9 +511,6 @@
 		}
 		else if (element is StyleableTextField)
 		{
-			// commit styles to get an accurate measurement
-			StyleableTextField(element).commitStyles();
-
 			return StyleableTextField(element).measuredTextSize.y;
 		}
 		else


Transferred from the Adobe Open Source Subversion Repository

Revision: 6132
Author:   rfrishbe@adobe.com
Date:     2009-04-10T18:54:23.401493Z

Log Message:
-----------
Adding copyright headers to some files.  Also removing numChildren, getChildAt, getChildIndex() from the ASDocs where they dont' make sense.

QE Notes: -
Doc Notes: -
Bugs: -
Reviewer: -
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -71,6 +71,9 @@
 [Exclude(name="setChildIndex", kind="method")]
 [Exclude(name="swapChildren", kind="method")]
 [Exclude(name="swapChildrenAt", kind="method")]
+[Exclude(name="numChildren", kind="property")]
+[Exclude(name="getChildAt", kind="method")]
+[Exclude(name="getChildIndex", kind="method")]

 //--------------------------------------
 //  Other metadata


Transferred from the Adobe Open Source Subversion Repository

Revision: 20690
Author:   mhorn@adobe.com
Date:     2011-03-08T20:26:51.755036Z

Log Message:
-----------
ASDoc updates

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/Legend.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/PieChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/PlotChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/series/items/LineSeriesSegment.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/series/ColumnSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/CandlestickChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/HLOCChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/InstanceCache.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/series/BarSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/Series.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/LineChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/BubbleChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/effects/SeriesZoom.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/ColumnChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/DateTimeAxis.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/BarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/AreaChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/chartClasses/ChartElement.as</path>

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as
@@ -479,7 +479,7 @@
     //
     //--------------------------------------------------------------------------

-
+
     //--------------------------------------------------------------------------
     //
     //  Class constants
@@ -566,7 +566,7 @@
     public function ChartBase()
     {
         super();
-		this.addEventListener(DragEvent.DRAG_START, dragStartHandler);
+        this.addEventListener(DragEvent.DRAG_START, dragStartHandler);

         tabEnabled = false;

@@ -638,11 +638,11 @@
     //
     //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
-	private var _moduleFactoryInitialized:Boolean = false;
-
+    /**
+     *  @private
+     */
+    private var _moduleFactoryInitialized:Boolean = false;
+
     /**
      *  @private
      */
@@ -1577,7 +1577,7 @@
         var n:int = series.length;
         for (var i:int = 0; i < n; i++)
         {
-        	var m:int = series[i].selectedItems.length;
+            var m:int = series[i].selectedItems.length;
             for (var j:int = 0; j < m; j++)
             {
                 arr.push(series[i].selectedItems[j])
@@ -1808,7 +1808,7 @@

         updateDataTips();
     }
-
+
     //--------------------------------------------------------------------------
     //
     //  Diagnostics
@@ -1849,30 +1849,30 @@
         super.addEventListener(type, listener, useCapture,
                                priority, useWeakReference);
     }
-
-	/**
-	 *  @private
-	 */
-	private function initStyles():Boolean
-	{
-		HaloDefaults.init(styleManager);
-
-		var chartBaseFill:IFill = IFill(new SolidColor(0xFFFFFF, 0));
-
-		var selector:CSSStyleDeclaration =
-			HaloDefaults.createSelector("mx.charts.chartClasses.ChartBase", styleManager);
-
-		selector.defaultFactory = function():void
-		{
-			this.chartSeriesStyles = HaloDefaults.chartBaseChartSeriesStyles;
-			this.fill = chartBaseFill;
-			this.calloutStroke = new Stroke(0x888888,2);
-			this.dataTipRenderer = DataTip;
-			this.fontSize = 10;
-		}
-
-		return true;
-	}
+
+    /**
+     *  @private
+     */
+    private function initStyles():Boolean
+    {
+        HaloDefaults.init(styleManager);
+
+        var chartBaseFill:IFill = IFill(new SolidColor(0xFFFFFF, 0));
+
+        var selector:CSSStyleDeclaration =
+            HaloDefaults.createSelector("mx.charts.chartClasses.ChartBase", styleManager);
+
+        selector.defaultFactory = function():void
+        {
+            this.chartSeriesStyles = HaloDefaults.chartBaseChartSeriesStyles;
+            this.fill = chartBaseFill;
+            this.calloutStroke = new Stroke(0x888888,2);
+            this.dataTipRenderer = DataTip;
+            this.fontSize = 10;
+        }
+
+        return true;
+    }

     //--------------------------------------------------------------------------
     //
@@ -1880,28 +1880,28 @@
     //
     //--------------------------------------------------------------------------

-	/**
-	 *  @inheritDoc
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	override public function set moduleFactory(factory:IFlexModuleFactory):void
-	{
-		super.moduleFactory = factory;
-
-		if (_moduleFactoryInitialized)
-			return;
-
-		_moduleFactoryInitialized = true;
-
-
-		// our style settings
-		initStyles();
-	}
-
+    /**
+     *   A module factory is used as context for using embedded fonts and for finding the style manager that controls the styles for this component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function set moduleFactory(factory:IFlexModuleFactory):void
+    {
+        super.moduleFactory = factory;
+
+        if (_moduleFactoryInitialized)
+            return;
+
+        _moduleFactoryInitialized = true;
+
+
+        // our style settings
+        initStyles();
+    }
+
     /**
      *  @private
      */
@@ -2074,7 +2074,7 @@
             result = result.concat(hds);
         }

-		n = result.length;
+        n = result.length;
         for (i = 0; i < n; i++)
         {
             result[i].x += _seriesHolder.x;
@@ -2117,7 +2117,7 @@
             result = result.concat(hds);
         }

-		n = result.length;
+        n = result.length;
         for (i = 0; i < n; i++)
         {
             result[i].x += _seriesHolder.x;
@@ -2150,7 +2150,7 @@

         if (_transforms)
         {
-        	var n:int  = _transforms.length;
+            var n:int  = _transforms.length;
             for (var i:int = 0; i < n; i++)
             {
                 arrAllItems = arrAllItems.concat(findItemsInRegionFromElements(_transforms[i],value));
@@ -2374,7 +2374,7 @@

                 _transitionEffect = ParallelInstance(p.createInstance());

-				n = transitionChildren.length;
+                n = transitionChildren.length;
                 for (i = 0; i < n; i++)
                 {
                     _transitionEffect.addChildSet([transitionChildren[i]]);
@@ -2403,7 +2403,7 @@

                 _transitionEffect = ParallelInstance(p.createInstance());

-				n = transitionChildren.length;
+                n = transitionChildren.length;
                 for (i = 0; i < n; i++)
                 {
                     _transitionEffect.addChildSet([transitionChildren[i]]);
@@ -2606,7 +2606,7 @@
         // removedset also can be set when hitset is set
         if (removedSet.length > 0)
         {
-        	var n: int = removedSet.length;
+            var n: int = removedSet.length;
             // we do not know which item has rollover hence loop through all removed set
             for (var i:int = 0; i < n; i++)
             {
@@ -2769,10 +2769,10 @@

    mx_internal function getSelectedSeries(seriesObject:Series):Series
    {
-   		var n:int  = _transforms.length;
+        var n:int  = _transforms.length;
         for (var i:int = 0; i < n; i++)
         {
-        	var m:int = _transforms[i].elements.length;
+            var m:int = _transforms[i].elements.length;
             for (var j:int = 0; j < m; j++)
             {
                 if (_transforms[i].elements[j] is Series && _transforms[i].elements[j] != seriesObject && _transforms[i].elements[j].selectedItems.length != 0)
@@ -2789,10 +2789,10 @@

    mx_internal function setChartItemsToDisabled():void
    {
-   		var n:int = _transforms.length;
+        var n:int = _transforms.length;
         for (var i:int = 0; i < n; i++)
         {
-        	var m:int = _transforms[i].elements.length;
+            var m:int = _transforms[i].elements.length;
             for (var j:int = 0; j < m; j++)
             {
                 if (_transforms[i].elements[j] is Series)
@@ -2815,10 +2815,10 @@
    {
         if (_selectedSeries)
         {
-        	var n:int  = _transforms.length;
+            var n:int  = _transforms.length;
             for (var i:int = 0; i < n; i++)
             {
-            	var m:int = _transforms[i].elements.length;
+                var m:int = _transforms[i].elements.length;
                 for (var j:int = 0; j < m; j++)
                 {
                     if (_transforms[i].elements[j] is Series)
@@ -2911,7 +2911,7 @@
             }
             else
             {
-            	var n:int = arrItems.length;
+                var n:int = arrItems.length;
                 for (var i:int = 0; i < n; i++)
                 {
                     seriesObject.addItemtoSelection(arrItems[i]);
@@ -3671,9 +3671,9 @@
                 pts.y = tipData.py;
                 localPts = globalToLocal(pts);
                 if(layoutDirection == LayoutDirection.RTL)
-					tipData.tip.move(localPts.x - tipData.width, localPts.y);
-				else
-					tipData.tip.move(localPts.x, localPts.y);
+                    tipData.tip.move(localPts.x - tipData.width, localPts.y);
+                else
+                    tipData.tip.move(localPts.x, localPts.y);

                 if (showTarget)
                 {
@@ -3694,15 +3694,15 @@
                             else
                             {
                                 if(layoutDirection == LayoutDirection.RTL)
-								{
-									g.moveTo(localPts.x - tipData.width,
+                                {
+                                    g.moveTo(localPts.x - tipData.width,
                                          localPts.y + tipData.height / 2);
-								}
-								else
-								{
-									g.moveTo(localPts.x + tipData.width,
-										localPts.y + tipData.height / 2);
-								}
+                                }
+                                else
+                                {
+                                    g.moveTo(localPts.x + tipData.width,
+                                        localPts.y + tipData.height / 2);
+                                }
                                 g.lineTo(tipData.x,
                                          localPts.y + tipData.height / 2);
                                 g.lineTo(tipData.x, tipData.y);
@@ -3780,31 +3780,31 @@

             localPts.x = Math.max(rc.left, Math.min(hitData.x, rc.right));
             localPts.y = Math.max(rc.top, Math.min(hitData.y, rc.bottom));
-			var pts:Point = localToGlobal(localPts);
-
+            var pts:Point = localToGlobal(localPts);
+
             var xpos:Number;
             var ypos:Number;

             if (tipInstance is ILayoutManagerClient)
                 ILayoutManagerClient (tipInstance).validateSize();
-
-			//if current systemManager is not sandbox root,
-			// marshalling support is enabled and localToGlobal does not give
-			// expected result because current sub application becomes top level
-			// In such cases, sub-application's offset needs to be subtracted
-			// from obtained localToGlobal values.
-			// http://bugs.adobe.com/jira/browse/FLEXDMV-2536
-			if(systemManager != systemManager.topLevelSystemManager.getSandboxRoot())
-			{
-				var appOffset:Point = FlexGlobals.topLevelApplication.localToGlobal(new Point(0,0));
-				data = new TipPositionData(tipInstance, hitData,
-					localPts.x, localPts.y, pts.x - appOffset.x, pts.y - appOffset.y);
-			}
-			else
-			{
-				data = new TipPositionData(tipInstance, hitData,
-					localPts.x, localPts.y, pts.x, pts.y);
-			}
+
+            //if current systemManager is not sandbox root,
+            // marshalling support is enabled and localToGlobal does not give
+            // expected result because current sub application becomes top level
+            // In such cases, sub-application's offset needs to be subtracted
+            // from obtained localToGlobal values.
+            // http://bugs.adobe.com/jira/browse/FLEXDMV-2536
+            if(systemManager != systemManager.topLevelSystemManager.getSandboxRoot())
+            {
+                var appOffset:Point = FlexGlobals.topLevelApplication.localToGlobal(new Point(0,0));
+                data = new TipPositionData(tipInstance, hitData,
+                    localPts.x, localPts.y, pts.x - appOffset.x, pts.y - appOffset.y);
+            }
+            else
+            {
+                data = new TipPositionData(tipInstance, hitData,
+                    localPts.x, localPts.y, pts.x, pts.y);
+            }

             if (data.gy - dataTipVOffset - tipInstance.measuredHeight > 0)
                 data.py = data.gy - dataTipVOffset - tipInstance.measuredHeight;
@@ -3824,7 +3824,7 @@

             var screenTL:Point = new Point(4, 4);
             var screenBR:Point = new Point(screen.width - 4, screen.height - 4);
-
+
             i = 0;

             // This code pre-examines the datatips for tips that would
@@ -3875,16 +3875,16 @@
                                       splitPoint +
                                       (pRight.length - pLeft.length));
             }
-			if(sortList.length == 1 && layoutDirection == LayoutDirection.RTL)
-			{
-				pRight = pRight.concat(sortList.slice(0, splitPoint));
-				pLeft = pLeft.concat(sortList.slice(splitPoint, sortList.length));
-			}
-			else
-			{
-				pLeft = pLeft.concat(sortList.slice(0, splitPoint));
-				pRight = pRight.concat(sortList.slice(splitPoint, sortList.length));
-			}
+            if(sortList.length == 1 && layoutDirection == LayoutDirection.RTL)
+            {
+                pRight = pRight.concat(sortList.slice(0, splitPoint));
+                pLeft = pLeft.concat(sortList.slice(splitPoint, sortList.length));
+            }
+            else
+            {
+                pLeft = pLeft.concat(sortList.slice(0, splitPoint));
+                pRight = pRight.concat(sortList.slice(splitPoint, sortList.length));
+            }
         }

         pRight.sortOn("gy");
@@ -4072,15 +4072,15 @@
                 }
                 pts.x = tipData.px;
                 pts.y = tipData.py;
-
-
+
+
                 localPts = this.parentApplication.systemManager.getSandboxRoot().globalToLocal(pts);
-
-				var chartLocalPts:Point = globalToLocal(pts);
-
-				tipData.tip.move(localPts.x, localPts.y);
-
-				if (showTarget)
+
+                var chartLocalPts:Point = globalToLocal(pts);
+
+                tipData.tip.move(localPts.x, localPts.y);
+
+                if (showTarget)
                 {
                     if (len > 1)
                     {
@@ -4098,16 +4098,16 @@
                             }
                             else
                             {
-								if(layoutDirection == LayoutDirection.RTL)
-								{
-									g.moveTo(chartLocalPts.x - tipData.width,
-										chartLocalPts.y + tipData.height / 2);
-								}
-								else
-								{
-									g.moveTo(chartLocalPts.x + tipData.width,
-										chartLocalPts.y + tipData.height / 2);
-								}
+                                if(layoutDirection == LayoutDirection.RTL)
+                                {
+                                    g.moveTo(chartLocalPts.x - tipData.width,
+                                        chartLocalPts.y + tipData.height / 2);
+                                }
+                                else
+                                {
+                                    g.moveTo(chartLocalPts.x + tipData.width,
+                                        chartLocalPts.y + tipData.height / 2);
+                                }
                                 g.lineTo(tipData.x,
                                          chartLocalPts.y + tipData.height / 2);
                                 g.lineTo(tipData.x, tipData.y);
@@ -4204,7 +4204,7 @@
     protected function applySeriesSet(seriesSet:Array /* of Series */,
                                       transform:DataTransform):Array /* of Series */
     {
-    	var n:int = seriesSet.length;
+        var n:int = seriesSet.length;
         for (var i:int = 0; i < n; i++)
         {
             var newSeries:IChartElement = seriesSet[i];
@@ -4753,7 +4753,7 @@
         p = globalToLocal(DisplayObject(event.target).localToGlobal(p));

         var hitPoints:Array /* of HitData */ = findDataPoints(p.x, p.y);
-		setFocus();
+        setFocus();
         processRollEvents(hitPoints, event);

         if (_currentHitSet)
@@ -4831,7 +4831,7 @@
         }
         else
         {
-        	dispatchEvent(new ChartEvent(ChartEvent.CHART_CLICK, event, this));
+            dispatchEvent(new ChartEvent(ChartEvent.CHART_CLICK, event, this));
         }
     }

@@ -4907,14 +4907,14 @@
         var dragSource:DragSource = new DragSource();

         addDragData(dragSource);
-
-		var proxyOrigin:Point = event.target.localToGlobal(
-						new Point(event.localX, event.localY));
-		proxyOrigin = globalToLocal(proxyOrigin);
-
-		var xOffset:Number = - (proxyOrigin.x - event.localX);
-		var yOffset:Number = - (proxyOrigin.y - event.localY);
-		DragManager.doDrag(this, dragSource, event, dragImage,
+
+        var proxyOrigin:Point = event.target.localToGlobal(
+                        new Point(event.localX, event.localY));
+        proxyOrigin = globalToLocal(proxyOrigin);
+
+        var xOffset:Number = - (proxyOrigin.x - event.localX);
+        var yOffset:Number = - (proxyOrigin.y - event.localY);
+        DragManager.doDrag(this, dragSource, event, dragImage,
                            xOffset, yOffset, 0.5, dragMoveEnabled);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17115
Author:   deeptika@adobe.com
Date:     2010-07-29T08:32:34.974747Z

Log Message:
-----------
Setting moduleFactory for InstanceCache
QE notes:
Doc notes:
Bugs: FLEXDMV-2472 (Datatips not easily readable on using SWFLoader\ModuleLoader)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/InstanceCache.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/ChartBase.as</path>

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as
@@ -3237,7 +3237,7 @@
             if (!_allTipCache)
             {
                 var tipClass:* = getStyle("dataTipRenderer");
-                _allTipCache = new InstanceCache(tipClass, this);
+                _allTipCache = new InstanceCache(tipClass, this, -1, moduleFactory);
                 _allTipCache.discard = true;
                 _allTipCache.remove = true;

@@ -3296,7 +3296,7 @@
             {
                 var tipClass:* = getStyle("dataTipRenderer");
                 _tipCache = new InstanceCache(tipClass,
-                                              systemManager.toolTipChildren);
+                                              systemManager.toolTipChildren, -1, moduleFactory);
                 _tipCache.discard = true;
                 _tipCache.remove = true;
                 _tipCache.creationCallback = tipCreated;


Transferred from the Adobe Open Source Subversion Repository

Revision: 21985
Author:   smgilson@adobe.com
Date:     2011-08-15T19:19:49.325847Z

Log Message:
-----------
Update MXML syntax for GridColumn.as in ASDoc

Update description of useWeakReference in BindingUtils.as and ChangeWatcher.as

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>

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

--- frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as
+++ frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as
@@ -50,6 +50,8 @@
      *
      *  @param host The object that hosts the property or property chain
      *  to be watched.
+     *  The host maintains a list of sites to update
+     *  when prop changes.
      *
      *  @param chain A value specifying the property or chain to be watched.
      *  Legal values are:
@@ -89,10 +91,10 @@
      *  Typically these tags are used to indicate fine-grained value changes,
      *  such as modifications in a text field prior to confirmation.
      *
-     *  @param useWeakReference Determines whether
-     *  the reference to the host is strong or weak. A strong
-     *  reference (the default) prevents the host from being
-     *  garbage-collected. A weak reference does not.
+     *  @param useWeakReference Determines whether the reference to site
+     *  is strong or weak.
+     *  A strong reference (the default) prevents site from being garbage-collected.
+     *  A weak reference does not.
      *  Added for Flex 4.
      *
      *  @return A ChangeWatcher instance, if at least one property name has
@@ -145,6 +147,8 @@
      *
      *  @param host The host of the property.
      *  See the bindProperty() method for more information.
+     *  The host maintains a list of setters to update
+     *  when prop changes.
      *
      *  @param name The name of the property, or property chain.
      *  See the bindProperty() method for more information.
@@ -153,10 +157,10 @@
      *  called only on committing change events.
      *  See the bindProperty() method for more information.
      *
-     *  @param useWeakReference Determines whether
-     *  the reference to the host is strong or weak. A strong
-     *  reference (the default) prevents the host from being
-     *  garbage-collected. A weak reference does not.
+     *  @param useWeakReference Determines whether the reference to setter
+     *  is strong or weak.
+     *  A strong reference (the default) prevents setter from being garbage-collected.
+     *  A weak reference does not.
      *  Added for Flex 4.
      *
      *  @return A ChangeWatcher instance, if at least one property name


Transferred from the Adobe Open Source Subversion Repository

Revision: 4281
Author:   cframpto@adobe.com
Date:     2008-12-10T20:47:53.209400Z

Log Message:
-----------
1.  In Container.keyDownHandler() and CursorManagerImpl.mouseDownHandler() check for Gumbo text using a soft-link to TextView as well as Halo TextField.
2. In FxTextBase.focusInHandler() show focus ring on editable text per XD.
3.  In TextUtil.unobsureTextFlow() fix line break issues.  substring() should have been substr().  When trying to match the text in the span with the text string, use the length of the span's text rather than the length of the leaf, since the leaf could include an added paragraph terminator which isn't in the text string.

QE Notes: New functionality to test.
Doc Notes: None
Bugs: SDK-17306, SDK-16063, SDK-17762, SDK-17763, SDK-17923, SDK-17917
Reviewer: Gordon and Alex

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/utils/TextUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as
@@ -24,6 +24,7 @@
 import flash.events.MouseEvent;
 import flash.events.ProgressEvent;
 import flash.geom.Point;
+import flash.system.ApplicationDomain;
 import flash.text.TextField;
 import flash.text.TextFieldType;
 import flash.ui.Mouse;
@@ -105,6 +106,11 @@
 		// trace("--->update request for CursorManagerImpl", sm);
 		sandboxRoot.dispatchEvent(me);
 		// trace("<---update request for CursorManagerImpl", sm);
+
+		// If available, get soft-link to the TextView class to use in mouseMoveHandler().
+        // ToDo: revisit the correct way to do this for modules.
+        if (ApplicationDomain.currentDomain.hasDefinition("mx.components.TextView"))
+            textViewClass = Class(ApplicationDomain.currentDomain.getDefinition("mx.components.TextView"));
     }

     //--------------------------------------------------------------------------
@@ -182,6 +188,12 @@
      *  @private
      */
     private var sourceArray:Array = [];
+
+    /**
+     *  @private
+     *  Soft-link to TextView class object, if available.
+     */
+    private var textViewClass:Class;

     //--------------------------------------------------------------------------
     //
@@ -829,15 +841,17 @@

         var target:Object = event.target;

+        var isInputTextField:Boolean =
+            (target is TextField && target.type == TextFieldType.INPUT) ||
+                (textViewClass && target is textViewClass && target["selectable"]);
+
         // Do target test.
-        if (!overTextField &&
-            target is TextField && target.type == TextFieldType.INPUT)
+        if (!overTextField && isInputTextField)
         {
             overTextField = true;
             showSystemCursor = true;
         }
-        else if (overTextField &&
-                 !(target is TextField && target.type == TextFieldType.INPUT))
+        else if (overTextField && !isInputTextField)
         {
             overTextField = false;
             showCustomCursor = true;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
+++ frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
@@ -559,13 +559,13 @@

         if (newValue !== undefined) // must be !==
         {
-            mx_internal::setStyle(styleProp, newValue);
+            setLocalStyle(styleProp, newValue);
         }
         else
         {
             if (newValue == oldValue)
                 return;
-            mx_internal::setStyle(styleProp, newValue);
+            setLocalStyle(styleProp, newValue);
         }

         var sms:Array = SystemManagerGlobals.topLevelSystemManagers;
@@ -610,7 +610,7 @@
      *  Setting a style property to the value undefined
      *  is the same as calling clearStyle().
      */
-    mx_internal function setStyle(styleProp:String, value:*):void
+    mx_internal function setLocalStyle(styleProp:String, value:*):void
     {
         // If setting to undefined, clear the style attribute.
         if (value === undefined) // must use ===


Transferred from the Adobe Open Source Subversion Repository

Revision: 9080
Author:   cframpto@adobe.com
Date:     2009-08-04T21:52:25.667152Z

Log Message:
-----------
RET no longer has a default maxWidth of 160.  That means that if a width is not specified then "toFit" text without explicit newlines will wrap at the default maxWidth of 10000.

Selection on focusIn is implemented as follows.

selection  selection        focusIn       multiline      !multiline
before     set by           due to
focusIn

(-1, -1)   program          mouseDown     (m, m)         (m, m)
                            tab           (0, 0)         select all
                            program       (0, 0)         select all
(5, 5)     mouse/keyboard   mouseDown     (m, m)         (m, m)
                            tab           no change      select all
                            program       no change      select all
           program          mouseDown     (m, m)         (m, m)
                            tab           no change      select all
                            program       no change      select all
(5, 10)    mouse/keyboard   mouseDown     (m, m)         (m, m)
                            tab           no change      select all
                            program       no change      select all
           program          mouseDown     (m, m)         (m, m)
                            tab           no change      no change
                            program       no change      no change

QE notes: since the focusIn change didn't break any TextArea/TextInput tests that means we don't have any
Doc notes:
Bugs:
Reviewer: Alex
Tests run: mustella TextInput TextArea passed
Is noteworthy for integration: yes. No longer a default width for wrapping toFit text.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -17,6 +17,7 @@
 import flash.events.Event;
 import flash.events.FocusEvent;
 import flash.events.KeyboardEvent;
+import flash.events.MouseEvent;
 import flash.geom.Matrix;
 import flash.geom.Rectangle;
 import flash.system.IME;
@@ -482,9 +483,17 @@

     /**
      *  @private
-     *  Holds the last recorded value of the module factory used to create the font.
+     *  Holds the last recorded value of the module factory used to create the
+     *  font.
      */
     mx_internal var embeddedFontContext:IFlexModuleFactory;
+
+    /**
+     *  @private
+     *  True if we've seen a MOUSE_DOWN event and haven't seen the
+     *  corresponding MOUSE_UP event.
+     */
+    private var mouseDown:Boolean = false;

     /**
      *  @private
@@ -512,7 +521,15 @@
      *  so that text reflow can be calculated during a subsequent measure pass.
      */
     private var heightConstraint:Number = NaN;
-
+
+    /**
+     *  @private
+     *  If the selection was via the selectRange() or selectAll() api, remember
+     *  that until the next selection is set, either interactively or via the
+     *  API.
+     */
+    private var hasProgrammaticSelectionRange:Boolean = false;
+
     /**
      *  @private
      *  True if this component sizes itself based on its actual
@@ -560,22 +577,6 @@

         invalidateProperties();
         invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  maxWidth
-    //----------------------------------
-
-    override public function get maxWidth():Number
-    {
-        if (autoSize)
-        {
-            return !isNaN(explicitMaxWidth) ?
-                   explicitMaxWidth :
-                   UIComponent.DEFAULT_MEASURED_WIDTH;      // 160 not 10000
-        }
-
-        return super.maxWidth;
     }

     //--------------------------------------------------------------------------
@@ -2023,7 +2024,7 @@
             else
             {
                 // If toFit line breaks and no text, start at explicitMaxWidth
-                // or default to 160 and grow.
+                // or default to maxWidth.
                 // If explicit line breaks and no text, width is NaN

                 composeWidth =
@@ -2163,6 +2164,9 @@
     // explicitHeight
     //----------------------------------

+    /**
+     *  @private
+     */
     override public function set explicitHeight(value:Number):void
     {
         super.explicitHeight = value;
@@ -2178,6 +2182,9 @@
     // explicitWidth
     //----------------------------------

+    /**
+     *  @private
+     */
     override public function set explicitWidth(value:Number):void
     {
         super.explicitWidth = value;
@@ -2193,6 +2200,9 @@
     // percentHeight
     //----------------------------------

+    /**
+     *  @private
+     */
     override public function set percentHeight(value:Number):void
     {
         super.percentHeight = value;
@@ -2208,6 +2218,9 @@
     // percentWidth
     //----------------------------------

+    /**
+     *  @private
+     */
     override public function set percentWidth(value:Number):void
     {
         super.percentWidth = value;
@@ -2336,6 +2349,7 @@
     mx_internal function createTextContainerManager():TextContainerManager
     {
         // Use the default configuration.
+        // TODO:(cframpto) should set enableEnterKey = false
         return new RichEditableTextContainerManager(this, null);
     }

@@ -2419,7 +2433,7 @@
     /**
      *  @private
      *  The editingMode is set to READ_WRITE.
-     *  When done call releaseEditManager().
+     *  When done call releaseEditManager().  Should only be used by API calls.
      */
     private function getEditManager():IEditManager
     {
@@ -2436,6 +2450,7 @@

     /**
      *  @private
+     *  Should only be used by API calls.
      */
     private function releaseEditManager():void
     {
@@ -2491,8 +2506,7 @@
         // Remeasure if the composed width was restricted by max width.
         // Typical this is done in validateSize() after returing from measure()
         // but it impacts our calculations so we need to do it now.
-        if (clampWidth &&
-            !isNaN(explicitMaxWidth) && bounds.width > explicitMaxWidth)
+        if (clampWidth && bounds.width > maxWidth)
         {
             _textContainerManager.compositionWidth = composeWidth;
             _textContainerManager.compose();
@@ -2789,6 +2803,10 @@
         selectionManager.refreshSelection();

         releaseSelectionManager();
+
+        // Remember if the current selection is a range which was set
+        // programatically.
+        hasProgrammaticSelectionRange = (anchorPosition != activePosition);
     }

     /**
@@ -3107,7 +3125,8 @@
         var pastedText:String = TextUtil.extractText(op.textScrap.textFlow);

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

         // Generate a CHANGING event for the PasteOperation but not for the
         // DeleteTextOperation or the InsertTextOperation which are also part
@@ -3127,7 +3146,7 @@
         editManager.insertText(pastedText, selectionState);

         // All done with the edit manager.
-        releaseEditManager();
+        _textContainerManager.endInteraction();

         dispatchChangeAndChangingEvents = true;
     }
@@ -3195,22 +3214,30 @@
         //trace("focusIn handler");

         if (editingMode == EditingMode.READ_WRITE)
-        {
-            var selectionManager:ISelectionManager = getSelectionManager();
-
-            if (!selectionManager.hasSelection())
+        {
+            // If the focusIn was because of a mouseDown event, let TLF
+            // handle the selection.  Otherwise it was because we tabbed in
+            // or we programatically set the focus.
+            if (!mouseDown)
             {
+                var selectionManager:ISelectionManager =
+                    _textContainerManager.beginInteraction();
+
                 if (multiline)
-                    selectionManager.selectRange(0, 0);
-                else
-                    selectionManager.selectRange(0, int.MAX_VALUE);
-            }
-
-            // Refresh the selection.  This does not cause a damage event.
-            selectionManager.refreshSelection();
-
-            releaseSelectionManager();
-
+                {
+                    if (!selectionManager.hasSelection())
+                        selectionManager.selectRange(0, 0);
+                }
+                else if (!hasProgrammaticSelectionRange)
+                {
+                    selectionManager.selectAll();
+                }
+
+                selectionManager.refreshSelection();
+
+                _textContainerManager.endInteraction();
+            }
+
             if (_imeMode != null)
             {
                 // When IME.conversionMode is unknown it cannot be
@@ -3248,6 +3275,8 @@
      */
     mx_internal function focusOutHandler(event:FocusEvent):void
     {
+        //trace("focusOut handler");
+
         // By default, we clear the undo history when a RichEditableText loses
         // focus.
         if (clearUndoOnFocusOut && undoManager)
@@ -3280,7 +3309,35 @@
             }
          }
     }
-
+
+    /**
+     *  @private
+     */
+    mx_internal function mouseDownHandler(event:MouseEvent):void
+    {
+        mouseDown = true;
+
+        // Need to get called even if mouse events are dispatched
+        // outside of this component.  For example, when the user does
+        // a mouse down in RET, drags the mouse outside of the
+        /// component, and then releases the mouse.
+        systemManager.getSandboxRoot().addEventListener(
+                          MouseEvent.MOUSE_UP,
+                          systemManager_mouseUpHandler, true /*useCapture*/);
+    }
+
+    /**
+     *  @private
+     */
+    private function systemManager_mouseUpHandler(event:MouseEvent):void
+    {
+        mouseDown = false;
+
+        systemManager.getSandboxRoot().removeEventListener(
+                         MouseEvent.MOUSE_UP,
+                         systemManager_mouseUpHandler, true /*useCapture*/);
+    }
+
     /**
      *  @private
      *  Called when the TextContainerManager dispatches a 'compositionComplete'
@@ -3305,6 +3362,7 @@
             Math.round(newContentWidth) ==
             _textContainerManager.compositionWidth)
         {
+            trace("***contentWidth > compositionWidth", newContentWidth, _textContainerManager.compositionWidth);
             newContentWidth = _textContainerManager.compositionWidth;
         }

@@ -3328,6 +3386,7 @@
             Math.round(newContentHeight) ==
             _textContainerManager.compositionHeight)
         {
+            trace("***contentHeight > compositionHeight", newContentHeight, _textContainerManager.compositionHeight);
             newContentHeight = _textContainerManager.compositionHeight;
         }

@@ -3437,13 +3496,17 @@
         var oldAnchor:int = _selectionAnchorPosition;
         var oldActive:int = _selectionActivePosition;

-        var selectionManager:ISelectionManager = getSelectionManager();
+        var selectionManager:ISelectionManager =
+            _textContainerManager.beginInteraction();

         _selectionAnchorPosition = selectionManager.anchorPosition;
         _selectionActivePosition = selectionManager.activePosition;

-        releaseSelectionManager();
-
+        _textContainerManager.endInteraction();
+
+        // Selection changed so reset.
+        hasProgrammaticSelectionRange = false;
+
         // Only dispatch the event if the selection has really changed.
         var changed:Boolean = oldAnchor != _selectionAnchorPosition ||
                               oldActive != _selectionActivePosition;
@@ -3622,8 +3685,6 @@
             invalidateDisplayList();
         }
     }
-
-
 }

 }


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

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

 package spark.preloaders
 {


- improved forcibleloader to return information about load status

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@811 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/org/libspark/utils/ForcibleLoader.as
+++ src/org/libspark/utils/ForcibleLoader.as
@@ -32,6 +32,7 @@
 	import flash.net.URLStream;
 	import flash.events.IOErrorEvent;
 	import flash.events.SecurityErrorEvent;
+	import flash.events.ProgressEvent;
 	import flash.events.Event;
 	import flash.utils.ByteArray;
 	import flash.utils.Endian;
@@ -54,16 +55,21 @@
 	public class ForcibleLoader
 	{
 		private var m_request : URLRequest;
+		private var m_data : ByteArray;
+		private var m_totalSize : int = -1;

 		public function ForcibleLoader(loader:Loader)
 		{
 			this.loader = loader;
+			m_data = new ByteArray();
+			m_data.endian = Endian.LITTLE_ENDIAN;

 			_stream = new URLStream();
 			_stream.addEventListener(Event.COMPLETE, completeHandler);
 			_stream.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
 			_stream.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
+			_stream.addEventListener(ProgressEvent.PROGRESS, progressHandler);
 		}

 		private var _loader:Loader;
@@ -85,30 +91,43 @@
 			m_request = request;
 		}

+		public function bytesLoaded() : int
+		{
+			return m_data.length;
+		}
+
+		public function bytesTotal() : int
+		{
+			if (m_totalSize == -1 && m_data.length >= 8)
+			{
+				m_data.position = 4;
+				m_totalSize = m_data.readInt();
+			}
+			return m_totalSize || 0;
+		}
+
 		private function completeHandler(event:Event):void
 		{
-			var inputBytes:ByteArray = new ByteArray();
-			_stream.readBytes(inputBytes);
+			m_data.position = 0;
 			_stream.close();
-			inputBytes.endian = Endian.LITTLE_ENDIAN;
-
-			if (isCompressed(inputBytes)) {
-				uncompress(inputBytes);
-			}
-
-			var version:uint = uint(inputBytes[3]);
+
+			if (isCompressed(m_data)) {
+				uncompress(m_data);
+			}
+
+			var version:uint = uint(m_data[3]);

 			if (version < 9) {
-				updateVersion(inputBytes, 9);
+				updateVersion(m_data, 9);
 			}
 			if (version > 7) {
-				flagSWF9Bit(inputBytes);
+				flagSWF9Bit(m_data);
 			}
 			else {
-				insertFileAttributesTag(inputBytes);
-			}
-
-			loader.loadBytes(inputBytes);
+				insertFileAttributesTag(m_data);
+			}
+
+			loader.loadBytes(m_data);
 		}

 		private function isCompressed(bytes:ByteArray):Boolean
@@ -210,5 +229,10 @@
 		{
 			loader.dispatchEvent(event.clone());
 		}
+
+		private function progressHandler(event:ProgressEvent):void
+		{
+			_stream.readBytes(m_data, m_data.length, _stream.bytesAvailable);
+		}
 	}
 }


Fix artifact from a time when I was putting this into WhirledGames only.

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@284 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/ezgame/EZGameControl.as
+++ src/as/com/threerings/ezgame/EZGameControl.as
@@ -103,7 +103,7 @@
 /**
  * Dispatched when a user chats.
  *
- * @eventType com.whirled.UserChatEvent.TYPE
+ * @eventType com.threerings.ezgame.UserChatEvent.TYPE
  */
 [Event(name="UserChat", type="com.threerings.ezgame.UserChatEvent")]


always use js/lib/compc (or js/lib/mxmlc) when SDK is Royale

--- src/ASConfigC.as
+++ src/ASConfigC.as
@@ -1155,7 +1155,7 @@
 			for(var i:int = 0; i < jarNamesCount; i++)
 			{
 				var jarName:String = jarNames[i];
-				if(this._outputIsJS)
+				if(this._sdkIsRoyale)
 				{
 					jarPath = path.join(this._sdkHome, "js", "lib", jarName);
 				}


:bug: fix up loop

:bug: fix up loop

--- index.as
+++ index.as
@@ -4612,6 +4612,9 @@
   let cycles_cnt = 0;

   while is_running {
+    // Poll window events
+    sdl_step();
+
     // Get elapsed seconds (from start of loop)
     clk += float64(clock() - clk_o) / float64(CLOCKS_PER_SEC);
     clk_o = clock();
@@ -4667,7 +4670,7 @@

     // A single frame takes at least 70224 cycles to render
     if cycles_cnt >= 70224 {
-      sdl_step();
+      sdl_render();
       cycles_cnt = 0;
     }
   }
@@ -4727,6 +4730,11 @@
   // Create renderer
   _renderer = SDL_CreateRenderer(_window, -1,
     SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
+
+  // White initial screen
+  SDL_SetRenderDrawColor(_renderer, 255, 255, 255, 255);
+  SDL_RenderClear(_renderer);
+  SDL_RenderPresent(_renderer);
 }

 def sdl_fini() {
@@ -4773,11 +4781,8 @@
 }

 def sdl_step() {
-  // Render
-  sdl_render();
-
   // Events
-  while SDL_PollEvent(_evt) {
+  if SDL_PollEvent(_evt) {
     let evt_type = *(_evt as *uint32);
     if evt_type == 0x100 {
       // Quit – App was asked to quit (nicely)


Changed Injector#unmap to only remove injection results instead of the entire injectionConfig.

--- src/org/swiftsuspenders/Injector.as
+++ src/org/swiftsuspenders/Injector.as
@@ -166,14 +166,16 @@
 		public function unmap(clazz : Class, named : String = "") : void
 		{
 			var requestName : String = getQualifiedClassName(clazz);
+			var mapping : InjectionConfig;
 			if (named && m_mappings[named])
 			{
-				delete Dictionary(m_mappings[named])[requestName];
+				mapping = Dictionary(m_mappings[named])[requestName];
 			}
 			else
 			{
-				delete m_mappings[requestName];
-			}
+				mapping = m_mappings[requestName];
+			}
+			mapping.setResult(null);
 		}

 		public function createChildInjector() : Injector


Added title to uload limit warning

Added title to uload limit warning

--- flexEditor/src/org/arisgames/editor/components/ItemEditorMediaPickerUploadFormView.as
+++ flexEditor/src/org/arisgames/editor/components/ItemEditorMediaPickerUploadFormView.as
@@ -188,9 +188,9 @@
 					fileOK = true;
 				}
 				else {
-					Alert.show("Sorry!\n"+fileChosen.name+" is too large...\n\n"+
+					Alert.show("Sorry! The file you chose is too large...\n\n"+
 						fileChosen.name+": "+Math.round(((fileChosen.size)/1024)/1024)+" MB\n"+
-						"Max Filesize: "+Math.round(((AppConstants.MAX_UPLOAD_SIZE)/1024)/1024)+" MB");
+						"Max Filesize: "+Math.round(((AppConstants.MAX_UPLOAD_SIZE)/1024)/1024)+" MB", "File Size Too Large");
 				}
             }
         }