Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Show 'Available' not 'offline' when no status is set.

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

--- src/org/jivesoftware/xiff/data/im/RosterItemVO.as
+++ src/org/jivesoftware/xiff/data/im/RosterItemVO.as
@@ -78,7 +78,6 @@

 		public function set status(newStatus:String):void
 		{
-			newStatus = newStatus != null ? newStatus : Presence.SHOW_OFFLINE;
 			var oldStatus:String = status;
 			_status = newStatus;
 			PropertyChangeEvent.createUpdateEvent(this, "status", oldStatus, status);
@@ -87,7 +86,9 @@
 		[Bindable]
 		public function get status():String
 		{
-			return _status;
+			if(show == Presence.SHOW_OFFLINE)
+				return Presence.SHOW_OFFLINE;
+			return _status ? _status : "Available";
 		}

 		public function set show(newShow:String):void


Fix Eraser mode #5

Fix Eraser mode #5

Parameter was not visible - Erase mode now work fine

--- graffiti/src/com/nocircleno/graffiti/tools/brushes/Brush.as
+++ graffiti/src/com/nocircleno/graffiti/tools/brushes/Brush.as
@@ -16,7 +16,7 @@
 */
 package com.nocircleno.graffiti.tools.brushes
 {
-   import com.nocircleno.graffiti.tools.BitmapCacheRenderMode;
+   import com.nocircleno.graffiti.tools.BitmapCacheRenderMode;

 	/**
 	* Brush Class allows the user to paint anti-alias shapes to the Canvas.
@@ -46,12 +46,12 @@
 		* @param brushAlpha Alpha value of the brush.
 		* @param bitmapCacheRenderMode Render mode used when caching brush content to canvas bitmap.
 		*/
-		public function Brush(brushSize:Number = 4, brushColor:uint = 0x000000, brushAlpha:Number = 1, bitmapCacheRenderMode:String = null)
+		public function Brush(brushSize:Number = 4, brushColor:uint = 0x000000, brushAlpha:Number = 1, brushBitmapCacheRenderMode:String = null)
       {
 			size = brushSize;
 			color = brushColor;
 			alpha = brushAlpha;
-			bitmapCacheRenderMode = bitmapCacheRenderMode;
+			bitmapCacheRenderMode = brushBitmapCacheRenderMode;
 		}

       /**
@@ -138,4 +138,4 @@
 			return _alpha;
 		}
 	}
-}+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19062
Author:   clucier@adobe.com
Date:     2010-12-06T17:47:25.198044Z

Log Message:
-----------
A couple view transition bug fixes.

QE notes: None
Doc notes: None
Bugs: SDK-28774, SDK-28760
Reviewer: Chiedo
Tests run: Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ZoomViewTransition.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/ZoomViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/ZoomViewTransition.as
@@ -34,7 +34,8 @@
  *
  *  The default duration of a ZoomViewTransition is 350ms.  In addition, the
  *  zoom transition by default transitions the control bar and view content
- *  as one (transitionControlsWithContent = true).
+ *  as one (transitionControlsWithContent = true). There is no default action bar
+ *  transition for the ZoomViewTransition.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


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

--- frameworks/projects/mx/src/mx/effects/effectClasses/SetPropertyActionInstance.as
+++ frameworks/projects/mx/src/mx/effects/effectClasses/SetPropertyActionInstance.as
@@ -13,6 +13,8 @@
 {

 import mx.core.mx_internal;
+
+use namespace mx_internal;

 /**
  *  The SetPropertyActionInstance class implements the instance class
@@ -98,7 +100,7 @@
 	{
 		var val:*;

-		if (mx_internal::playReversed)
+		if (playReversed)
 		{
 			 val = getStartValue();
 			 if (val != undefined)


Transferred from the Adobe Open Source Subversion Repository

Revision: 10708
Author:   egeorgie@adobe.com
Date:     2009-09-30T03:17:16.772618Z

Log Message:
-----------
Add support for drag-and-drop from Spark List to Halo ListBase.

QE notes: Dragging from Spark and dropping in Halo is now possible.
Doc notes: None
Bugs: None
Reviewer: Ryan
Tests run: checkintests, mustella (containers, DragManager)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -12,10 +12,9 @@
 package spark.components
 {
 import flash.display.DisplayObject;
+import flash.events.Event;
 import flash.events.KeyboardEvent;
 import flash.events.MouseEvent;
-import flash.events.FocusEvent;
-import flash.events.Event;
 import flash.geom.Point;
 import flash.ui.Keyboard;

@@ -23,7 +22,7 @@
 import mx.core.EventPriority;
 import mx.core.IFlexDisplayObject;
 import mx.core.IVisualElement;
-import mx.core.mx_internal;
+import mx.core.mx_internal;
 import mx.events.DragEvent;
 import mx.events.SandboxMouseEvent;
 import mx.managers.DragManager;
@@ -33,8 +32,6 @@
 import spark.core.NavigationUnit;
 import spark.events.IndexChangeEvent;
 import spark.events.RendererExistenceEvent;
-import spark.layouts.HorizontalLayout;
-import spark.layouts.VerticalLayout;

 use namespace mx_internal;  //ListBase and List share selection properties that are mx_internal

@@ -1015,7 +1012,7 @@

     /**
      *  Handles DragEvent.DRAG_COMPLETE events.  This method
-     *  removes the item from the data provider.
+     *  removes the items from the data provider.
      *
      *  @param event The DragEvent object.
      *
@@ -1083,40 +1080,40 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    protected function addDragData(dragSource:DragSource):void
-    {
-        dragSource.addHandler(copySelectedItemsForDragDrop, "sourceOrderedItems");
+    public function addDragData(dragSource:DragSource):void
+    {
+        dragSource.addHandler(copySelectedItemsForDragDrop, "orderedItems");

         // Calculate the index of the focus item within the vector
         // of ordered items returned for the "sourceOrderedItems" format.
-        var focusIndex:int = 0;
+        var caretIndex:int = 0;
         var draggedIndices:Vector.<int> = selectedIndices;
         var count:int = draggedIndices.length;
         for (var i:int = 0; i < count; i++)
         {
             if (mouseDownIndex > draggedIndices[i])
-                focusIndex++;
-        }
-        dragSource.addData(focusIndex, "sourceOrderedItemsFocus");
-    }
-
+                caretIndex++;
+        }
+        dragSource.addData(caretIndex, "orderedItemsCaretIndex");
+    }
+
     /**
      *  @private.
      */
-    private function copySelectedItemsForDragDrop():Array
-    {
-        var result:Array = [];
-        var draggedIndices:Vector.<int> = selectedIndices;
-        // Copy the vector so that we don't modify the original as
-        // selectedIndices returns a reference.
-        draggedIndices = draggedIndices.slice(0, draggedIndices.length);
-        if (draggedIndices)
-        {
-            draggedIndices.sort(compareValues);
-            var count:int = draggedIndices.length;
-            for (var i:int = 0; i < count; i++)
-                result.push(dataProvider.getItemAt(draggedIndices[i]));
-        }
+    private function copySelectedItemsForDragDrop():Vector.<Object>
+    {
+        // Copy the vector so that we don't modify the original
+        // since selectedIndices returns a reference.
+        var draggedIndices:Vector.<int> = selectedIndices.slice(0, selectedIndices.length);
+        var result:Vector.<Object> = new Vector.<Object>(draggedIndices.length);
+
+        // Sort in the order of the data source
+        draggedIndices.sort(compareValues);
+
+        // Copy the items
+        var count:int = draggedIndices.length;
+        for (var i:int = 0; i < count; i++)
+            result[i] = dataProvider.getItemAt(draggedIndices[i]);
         return result;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 15315
Author:   klin@adobe.com
Date:     2010-04-09T21:31:18.677829Z

Log Message:
-----------
Merge 15313 from 4.x to trunk.

Fix for http://bugs.adobe.com/jira/browse/SDK-23296 and http://bugs.adobe.com/jira/browse/SDK-26069. List was throwing an RTE because selectedItems was not being updated when the dataProvider is filtered and refreshed. List was also returning null selectedItems and selectedIndices if nothing was selected before instead of an empty vector.

We now clear selection whenever a refresh happens to account for sorting/filtering. Because we only keep the selectedIndex around, we have no way of recovering the correct selection after sorting or filtering. I've also changed the selectedItems/Indices setters and getters to return an empty vector to avoid some RTEs when users grab those values.

QE notes: No
Doc notes: No
Bugs: SDK-23296, SDK-26069
Reviewer: Jason
Tests run: checkintests
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -736,7 +736,7 @@
      *  @private
      *  Internal storage for the selectedIndices property.
      */
-    private var _selectedIndices:Vector.<int>;
+    private var _selectedIndices:Vector.<int> = new Vector.<int>();

     /**
      *  @private
@@ -763,7 +763,7 @@
      *  contains a list of the selected indices in the reverse order in which they were selected.
      *  That means the first element in the Vector corresponds to the last item selected.

      *
-     *  @default null
+     *  @default []
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -802,7 +802,11 @@

         if (dispatchChangeEvent)
             dispatchChangeAfterSelection = dispatchChangeEvent;
-        _proposedSelectedIndices = value;
+
+        if (value)
+            _proposedSelectedIndices = value;
+        else
+            _proposedSelectedIndices = new Vector.<int>();
         multipleSelectionChanged = true;
         invalidateProperties();
     }
@@ -825,7 +829,7 @@
      *  contains a list of the selected items in the reverse order in which they were selected.
      *  That means the first element in the Vector corresponds to the last item selected.

      *
-     *  @default null
+     *  @default []
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -834,12 +838,10 @@
      */
     public function get selectedItems():Vector.<Object>
     {
-        var result:Vector.<Object>;
+        var result:Vector.<Object> = new Vector.<Object>();

         if (selectedIndices)
         {
-            result = new Vector.<Object>();
-
             var count:int = selectedIndices.length;

             for (var i:int = 0; i < count; i++)
@@ -854,12 +856,10 @@
      */
     public function set selectedItems(value:Vector.<Object>):void
     {
-        var indices:Vector.<int>;
+        var indices:Vector.<int> = new Vector.<int>();

         if (value)
         {
-            indices = new Vector.<int>();
-
             var count:int = value.length;

             for (var i:int = 0; i < count; i++)
@@ -2093,31 +2093,6 @@
     }

     /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    override protected function dataProvider_collectionChangeHandler(event:Event):void
-    {
-        super.dataProvider_collectionChangeHandler(event);
-
-        if (event is CollectionEvent)
-        {
-            var ce:CollectionEvent = CollectionEvent(event);
-
-            // from a filter or sort, we should clear our selection.
-            if (ce.kind == CollectionEventKind.REFRESH)
-            {
-                multipleSelectionChanged = true;
-                invalidateProperties();
-            }
-        }
-    }
-
-    /**
      *  A convenience method that handles scrolling a data item
      *  into view.
      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 12478
Author:   gosmith@adobe.com
Date:     2009-12-04T01:03:50.724937Z

Log Message:
-----------
The partAdded() and partRemoved() methods of Spark components now dispatch new events named "partAdded" and "partRemoved", of type SkinPartEvent. The accessibility implementation classes will soon use these events to know when skin parts are added and removed so that they can attach and remove event handlers appropriately. This mechanism may change in a future release, so developers should not depend on these undocumented events.

I've made sure that all overrides of partAdded() and partRemoved() call the supermethod so that they dispatch these events.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/SkinPartEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -871,6 +871,7 @@
     override protected function partAdded(partName:String, instance:Object):void
     {
         super.partAdded(partName, instance);
+
         if (instance == dataGroup)
         {
             dataGroup.addEventListener(
@@ -878,8 +879,10 @@
             dataGroup.addEventListener(
                 RendererExistenceEvent.RENDERER_REMOVE, dataGroup_rendererRemoveHandler);
         }
-        if (instance == scroller)
+        else if (instance == scroller)
+		{
             scroller.hasFocusableChildren = hasFocusableChildren;
+		}
     }

     /**
@@ -894,7 +897,7 @@
             dataGroup.removeEventListener(
                 RendererExistenceEvent.RENDERER_REMOVE, dataGroup_rendererRemoveHandler);
         }
-
+
         super.partRemoved(partName, instance);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 9275
Author:   egeorgie@adobe.com
Date:     2009-08-13T19:05:09.180847Z

Log Message:
-----------
Fix bug: GraphicElement.getStrokeExtents needs ASDoc

Fix: Add comment, while at it, updated the API to return a Rectangle instead.

QE notes: None
Doc notes: None
Bugs: FLEXDOCS-1032
Reviewer: Deepa
Tests run: checkintests, spark/primitives, gumbo/layout/graphicElements
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Rect.as
+++ frameworks/projects/spark/src/spark/primitives/Rect.as
@@ -173,7 +173,7 @@
                                             layoutFeatures.layoutMatrix).width;

         // Take stroke into account
-        return width + getStrokeExtents(postLayoutTransform).x;
+        return width + getStrokeExtents(postLayoutTransform).width;
     }

     /**
@@ -188,7 +188,7 @@
                                              layoutFeatures.layoutMatrix).height;

         // Take stroke into account
-        return height + getStrokeExtents(postLayoutTransform).y;
+        return height + getStrokeExtents(postLayoutTransform).height;
     }

     /**
@@ -201,16 +201,16 @@
      */
     override public function getBoundsXAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
     {
-        var strokeExtents:Point = getStrokeExtents(postLayoutTransform);
+        var strokeExtents:Rectangle = getStrokeExtents(postLayoutTransform);
         var m:Matrix = getComplexMatrix(postLayoutTransform);
         if (!m)
-            return strokeExtents.x * -0.5 + this.x;
+            return strokeExtents.left + this.x;

         if (!isNaN(width))
-            width -= strokeExtents.x;
+            width -= strokeExtents.width;

         if (!isNaN(height))
-            height -= strokeExtents.y;
+            height -= strokeExtents.height;

         // Calculate the width and height pre-transform:
         var newSize:Point = MatrixUtil.fitBounds(width, height, m,
@@ -221,7 +221,7 @@
         if (!newSize)
             newSize = new Point(minWidth, minHeight);

-        return strokeExtents.x * -0.5 +
+        return strokeExtents.left +
             getRoundRectBoundingBox(newSize.x, newSize.y, radiusX, radiusY, m).x;
     }

@@ -235,16 +235,16 @@
      */
     override public function getBoundsYAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
     {
-        var strokeExtents:Point = getStrokeExtents(postLayoutTransform);
+        var strokeExtents:Rectangle = getStrokeExtents(postLayoutTransform);
         var m:Matrix = getComplexMatrix(postLayoutTransform);
         if (!m)
-            return strokeExtents.y * -0.5 + this.y;
+            return strokeExtents.top + this.y;

         if (!isNaN(width))
-            width -= strokeExtents.x;
+            width -= strokeExtents.width;

         if (!isNaN(height))
-            height -= strokeExtents.y;
+            height -= strokeExtents.height;

         // Calculate the width and height pre-transform:
         var newSize:Point = MatrixUtil.fitBounds(width, height, m,
@@ -255,7 +255,7 @@
         if (!newSize)
             newSize = new Point(minWidth, minHeight);

-        return strokeExtents.y * -0.5 +
+        return strokeExtents.top +
             getRoundRectBoundingBox(newSize.x, newSize.y, radiusX, radiusY, m).y;
     }

@@ -264,7 +264,7 @@
      */
     override public function getLayoutBoundsX(postLayoutTransform:Boolean = true):Number
     {
-        var stroke:Number = -getStrokeExtents(postLayoutTransform).x * 0.5;
+        var stroke:Number = getStrokeExtents(postLayoutTransform).left;
         if (postLayoutTransform && hasComplexLayoutMatrix)
             return stroke + getRoundRectBoundingBox(width, height, radiusX, radiusY,
                                                     layoutFeatures.layoutMatrix).x;
@@ -277,7 +277,7 @@
      */
     override public function getLayoutBoundsY(postLayoutTransform:Boolean = true):Number
     {
-        var stroke:Number = - getStrokeExtents(postLayoutTransform).y * 0.5;
+        var stroke:Number = getStrokeExtents(postLayoutTransform).top;
         if (postLayoutTransform && hasComplexLayoutMatrix)
             return stroke + getRoundRectBoundingBox(width, height, radiusX, radiusY,
                                                     layoutFeatures.layoutMatrix).y;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10402
Author:   gruehle@adobe.com
Date:     2009-09-18T20:08:24.668748Z

Log Message:
-----------
Move the focus exclusion code from FocusSkin to SparkSkin. Refactor common code in FocusSkin and ErrorSkin into a new HighlightBitmapCaptureSkin base class. Fix focus/error skin rendering issues with contentBackgroundAlpha set to low values.

QE notes: -
Doc notes: Added new class HighlightBitmapCaptureSkin.
Bugs: SDK-23209, SDK-23204, SDK-23200
Reviewer: Ely
Tests run: checkintests, mustella gumbo Button, List, CheckBox, TextInput
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HighlightBitmapCaptureSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollerSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/skins/SparkSkin.as
+++ frameworks/projects/spark/src/spark/skins/SparkSkin.as
@@ -14,8 +14,15 @@
 import flash.display.DisplayObject;
 import flash.geom.ColorTransform;

+import mx.core.UIComponent;
+import mx.core.mx_internal;
+
 import spark.components.supportClasses.Skin;
+import spark.core.DisplayObjectSharingMode;
+import spark.core.IGraphicElement;
 import spark.primitives.supportClasses.GraphicElement;
+
+use namespace mx_internal;

 /**
  *  Base class for Spark skins.
@@ -33,6 +40,18 @@

     static private var colorTransform:ColorTransform = new ColorTransform();

+    /**
+     *  Flag that specified whether or not this skin should be affected by baseColor.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected var useBaseColor:Boolean = true;
+
     private var colorized:Boolean = false;

     /**
@@ -64,6 +83,21 @@
     }

     /**
+     *  items that should be included when rendering the focus ring.
+     *  Only items of type DisplayObject or GraphicElement should be excluded. Items
+     *  of other types will be ignored.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get focusSkinExclusions():Array
+    {
+        return null;
+    }
+
+    /**
      * Names of items that should have their color property defined by the symbolColor style.
      *
      *  @langversion 3.0
@@ -89,6 +123,9 @@
         return null;
     }

+    /**
+     *  @private
+     */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
         // Do all colorizing here, before calling super.updateDisplayList(). This ensures that
@@ -132,7 +169,7 @@
         // base color
         var baseColor:uint = getStyle("baseColor");

-        if (baseColor != DEFAULT_COLOR  || colorized)
+        if ((baseColor != DEFAULT_COLOR  || colorized) && useBaseColor)
         {
             colorTransform.redOffset = ((baseColor & (0xFF << 16)) >> 16) - DEFAULT_COLOR_VALUE;
             colorTransform.greenOffset = ((baseColor & (0xFF << 8)) >> 8) - DEFAULT_COLOR_VALUE;
@@ -170,5 +207,130 @@
         // Finally, call super.updateDisplayList() after setting up the colors.
         super.updateDisplayList(unscaledWidth, unscaledHeight);
     }
+
+    private static var exclusionAlphaValues:Array;
+    private static var oldContentBackgroundAlpha:Number;
+    private static var contentBackgroundAlphaSetLocally:Boolean;
+
+    /**
+     *  Called before a bitmap capture is made for this skin. The default implementation
+     *  excludes items in the focusSkinExclusions array.
+     */
+    public function beginHighlightBitmapCapture():void
+    {
+		var exclusions:Array = focusSkinExclusions;
+		var exclusionCount:Number = (exclusions == null) ? 0 : exclusions.length;
+
+		/* we'll store off the previous alpha of the exclusions so we
+		can restore them when we're done
+		*/
+		exclusionAlphaValues = [];
+		var needRedraw:Boolean = false;
+
+		for (var i:int = 0; i < exclusionCount; i++)
+		{
+			var ex:Object = exclusions[i];
+			/* we're going to go under the covers here to try and modify alpha with the least
+			amount of disruption to the component.  For UIComponents, we go to Sprite's alpha property;
+			*/
+			if (ex is UIComponent)
+			{
+                exclusionAlphaValues[i] = (ex as UIComponent).$alpha;
+				(ex as UIComponent).$alpha = 0;
+			}
+			else if (ex is DisplayObject)
+			{
+                exclusionAlphaValues[i] = (ex as DisplayObject).alpha;
+				(ex as DisplayObject).alpha = 0;
+			}
+			else if (ex is IGraphicElement)
+			{
+				/* if we're lucky, the IGE has its own DisplayObject, and we can just trip its alpha.
+				If not, we're going to have to set it to 0, and force a redraw of the whole component */
+				var ge:IGraphicElement = ex as IGraphicElement;
+				if(ge.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
+				{
+                    exclusionAlphaValues[i] = ge.displayObject.alpha;
+					ge.displayObject.alpha = 0;
+				}
+				else
+				{
+                    exclusionAlphaValues[i] = ge.alpha;
+					ge.alpha = 0;
+					needRedraw = true;
+				}
+			}
+        }
+
+        // If we have a mostly-transparent content background, temporarily bump
+        // up the contentBackgroundAlpha so the captured bitmap includes an opaque
+        // snapshot of the background.
+        if (getStyle("contentBackgroundAlpha") < 0.5)
+        {
+            if (styleDeclaration && styleDeclaration.getStyle("contentBackgroundAlpha") !== null)
+                contentBackgroundAlphaSetLocally = true;
+            else
+                contentBackgroundAlphaSetLocally = false;
+            oldContentBackgroundAlpha = getStyle("contentBackgroundAlpha");
+            setStyle("contentBackgroundAlpha", 0.5);
+            needRedraw = true;
+        }
+
+		/* if we excluded an IGE without its own DO, we need to update the component before grabbing the bitmap */
+		if (needRedraw)
+			validateNow();
+    }
+
+    /**
+     *  Called after a bitmap capture is made for this skin. The default implementation
+     *  restores the items in the focusSkinExclusions array.
+     */
+    public function endHighlightBitmapCapture():void
+    {
+        var exclusions:Array = focusSkinExclusions;
+        var exclusionCount:Number = (exclusions == null) ? 0 : exclusions.length;
+        var needRedraw:Boolean = false;
+
+        for (var i:int=0; i < exclusionCount; i++)
+		{
+			var ex:Object = exclusions[i];
+			if (ex is UIComponent)
+			{
+				(ex as UIComponent).$alpha = exclusionAlphaValues[i];
+			}
+			else if (ex is DisplayObject)
+			{
+				(ex as DisplayObject).alpha = exclusionAlphaValues[i];
+			}
+			else if (ex is IGraphicElement)
+			{
+				var ge:IGraphicElement = ex as IGraphicElement;
+				if (ge.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
+				{
+					ge.displayObject.alpha = exclusionAlphaValues[i];
+				}
+				else
+				{
+					ge.alpha = exclusionAlphaValues[i];
+                    needRedraw = true;
+				}
+			}
+		}
+
+        exclusionAlphaValues = null;
+
+        if (!isNaN(oldContentBackgroundAlpha))
+        {
+            if (contentBackgroundAlphaSetLocally)
+                setStyle("contentBackgroundAlpha", oldContentBackgroundAlpha);
+            else
+                clearStyle("contentBackgroundAlpha");
+            needRedraw = true;
+            oldContentBackgroundAlpha = NaN;
+        }
+
+        if (needRedraw)
+            validateNow();
+    }
 }
 }


Back off 188 to avoid seeking problems.

Back off 188 to avoid seeking problems.

--- HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
@@ -156,7 +156,7 @@
 		public override function get inputBytesNeeded():Number
 		{
 			// Get TS packets!
-			return 188;
+			return 0;
 		}

 		public static var tmpBuffer:ByteArray = new ByteArray();


[rest] Fixes issue with parallel stub requests.

--- skein-rest/src/skein/rest/client/impl/DefaultRestClient.as
+++ skein-rest/src/skein/rest/client/impl/DefaultRestClient.as
@@ -528,7 +528,21 @@

     private function load():void
     {
-        loader = loader || URLLoadersQueue.find(request) || new  URLLoader();
+        var isOwnedLoader:Boolean = true;
+
+        if (loader == null)
+        {
+            loader = URLLoadersQueue.find(request);
+
+            if (loader == null)
+            {
+                loader = new URLLoader();
+            }
+            else
+            {
+                isOwnedLoader = false;
+            }
+        }

         URLLoadersQueue.keep(request, loader);

@@ -539,13 +553,16 @@

         URLLoaderHandlerFactory.create(this).handle(loader);

-        if (stubValue != null)
-        {
-            doStub();
-        }
-        else
-        {
-            doLoad();
+        if (isOwnedLoader)
+        {
+            if (stubValue != null)
+            {
+                doStub();
+            }
+            else
+            {
+                doLoad();
+            }
         }
     }

@@ -576,6 +593,8 @@
         {
             receiveStubData();
         }
+
+        Log.i("skein-rest", "*STUB*" + request.method.toUpperCase() + ":" + request.url + ":" + (request.data || ""));
     }

     private function doLoad():void


Transferred from the Adobe Open Source Subversion Repository

Revision: 8455
Author:   chaase@adobe.com
Date:     2009-07-08T17:14:01.590461Z

Log Message:
-----------
Fixed various effects bugs. Includes:
- fix when setting transform center on effect to (0, 0, 0)
- fix for transform effects running within a Sequence (they now run independently, instead of combining into a signle instance as they do in a Parallel effect)
- fix for asdoc error in AnimateTransform3D for applyLocalProjection
- fix in Resize where we were not setting up propertyChanges correctly for the targets affected by the effect
- fixes in AnimateTransformInstance to handle scaling in Z correctly and handling translation 'by' effects correctly

Bugs: sdk-21877, sdk-21610, sdk21584, sdk-21786
Doc Notes: fixed AnimateTransform3D.applyLocalProjection docs
QE Notes: may affect Sequence tests with transform effects (since it now actually works), but no failures in current mx/effects/Sequence tests. 11 failures overall in Mustella, some known, the rest Matt will exclude and investigate.
Reviewer: Jason (plus Ely for AdvancedLayoutFeatures changes)
Tests: checkintests, Mustella spark/effects, mx/effects/Sequence

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as
+++ frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as
@@ -866,7 +866,7 @@
         transformCenter:Vector3D, targetPosition:Vector3D,
         targetPostLayoutPosition:Vector3D):void
     {
-
+        // TODO (chaase): optimize for transformCenter == (0,0,0)
         if (is3D || changeIs3D)
         {
             if (targetPosition != null)
@@ -962,7 +962,6 @@
 		// now if they gave us a non-trivial transform center, and didn't tell us where they want it,
 		// we need to calculate where it is so that we can make sure we keep it there.
         if (transformCenter != null &&
-            (transformCenter.x != 0 || transformCenter.y != 0 || transformCenter.z != 0) &&
             (transformCenterPosition == null || postLayoutTransformCenterPosition == null))
         {
             transformPointToParent(is3D, transformCenter, staticTranslation,


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

--- frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as
+++ frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2008 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////
 package mx.core
 {
     import flash.events.Event;


Transferred from the Adobe Open Source Subversion Repository

Revision: 13693
Author:   hmuller@adobe.com
Date:     2010-01-21T20:25:54.403160Z

Log Message:
-----------
Initial version of the mirroring layout code.  Only Spark is supported.  API revisions for this feature are very likely to follow.

QE notes:
Doc notes:
Bugs:
Reviewer: Evtim
Tests run: All Mustella tests pass
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutDirection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as
+++ frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as
@@ -72,8 +72,6 @@
      *  @productversion Flex 3
      */
     public var depth:Number = 0;
-
-

     /**
      * @private
@@ -258,6 +256,33 @@
     {
         return layout.z;
     }
+
+	//----------------------------------
+	//  layoutWidth
+	//----------------------------------
+
+	private var _layoutWidth:Number = 0;
+
+	/**
+	 *  Used by the mirroring transform.   See the mirror property.
+	 *  @default 0
+	 */
+	public function get layoutWidth():Number
+	{
+		return _layoutWidth;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set layoutWidth(value:Number):void
+	{
+		if (value == _layoutWidth)
+			return;
+		_layoutWidth = value;
+		invalidate();
+	}
+

     //------------------------------------------------------------------------------

@@ -569,6 +594,38 @@
     {
         invalidate();
     }
+
+	//----------------------------------
+	//  mirror
+	//----------------------------------
+
+	private var _mirror:Boolean = false;
+
+	/**
+	 *  If true the X axis is scaled by -1 and the x coordinate of the origin
+	 *  is translated by the component's width.
+	 *
+	 *  The net effect of this "mirror" transform is to flip the direction
+	 *  that the X axis increases in without changing the layout element's
+	 *  location relative to the parent's origin.
+	 *
+	 *  @default false
+	 */
+	public function get mirror():Boolean
+	{
+		return _mirror;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set mirror(value:Boolean):void
+	{
+		// FIXME(hmuller) is it safe to short-circuit this?
+		_mirror = value;
+		invalidate();
+	}
+

     //----------------------------------
     //  stretchX
@@ -655,7 +712,7 @@
         if (_flags & COMPUTED_MATRIX_VALID)
             return _computedMatrix;

-        if (!postLayoutTransformOffsets && stretchX == 1 && stretchY == 1)
+        if (!postLayoutTransformOffsets && !mirror && stretchX == 1 && stretchY == 1)
         {
             return layout.matrix;
         }
@@ -673,7 +730,13 @@
         var rz:Number = layout.rotationZ;
         var x:Number = layout.x;
         var y:Number = layout.y;
-
+
+		if (mirror)
+		{
+			sx *= -1;
+			x += layoutWidth;
+		}
+
         if (postLayoutTransformOffsets)
         {
             sx *= postLayoutTransformOffsets.scaleX;
@@ -728,7 +791,13 @@
         var x:Number = layout.x;
         var y:Number = layout.y;
         var z:Number = layout.z;
-
+
+		if (mirror)
+		{
+			sx *= -1;
+			x += layoutWidth;
+		}
+
         if (postLayoutTransformOffsets)
         {
             sx *= postLayoutTransformOffsets.scaleX;


Fix typo

Fix typo

--- lib/src_linux/com/amanitadesign/steam/FRESteamWorks.as
+++ lib/src_linux/com/amanitadesign/steam/FRESteamWorks.as
@@ -55,7 +55,7 @@
 		private static const AIRSteam_IsCloudEnabledForApp:int = 18;
 		private static const AIRSteam_SetCloudEnabledForApp:int = 19;
 		private static const AIRSteam_GetUserID:int = 20;
-		private static const AIRSTeam_GetPersonaName:int = 21;
+		private static const AIRSteam_GetPersonaName:int = 21;

 		public function FRESteamWorks (target:IEventDispatcher = null) {
 			_file = File.applicationDirectory.resolvePath(PATH);
@@ -208,7 +208,7 @@
 		}

 		public function getPersonaName():String {
-			if(!callWrapper(AIRSTeam_GetPersonaName)) return "";
+			if(!callWrapper(AIRSteam_GetPersonaName)) return "";
 			return readStringResponse();
 		}


added check for keyColumn.state == "". #weave-506 fixed

--- WeaveJS/src/weavejs/data/source/CSVDataSource.as
+++ WeaveJS/src/weavejs/data/source/CSVDataSource.as
@@ -178,7 +178,7 @@
 				var colNames:Array = parsedRows[0] || [];
 				// getColumnValues supports columnIndex -1
 				var keyColIndex:int = -1;
-				if (keyColumn.state is String)
+				if (keyColumn.state is String && keyColumn.state != '')
 				{
 					keyColIndex = colNames.indexOf(keyColumn.state as String);
 					// treat invalid key column name as an error


FLEX-12202 - Checked boolean works as added support for IList

--- frameworks/projects/framework/src/mx/utils/ArrayUtil.as
+++ frameworks/projects/framework/src/mx/utils/ArrayUtil.as
@@ -35,6 +35,8 @@
 public class ArrayUtil
 {
     include "../core/Version.as";
+
+	import mx.collections.IList;

     //--------------------------------------------------------------------------
     //
@@ -48,13 +50,15 @@
      *
If the Object is already an Array, it returns the object.
      *  If the object is not an Array, it returns an Array
      *  in which the only element is the Object.
+	 *  If the Object implements IList it returns the IList's array.
      *  As a special case, if the Object is null,
      *  it returns an empty Array.

      *
      *  @param obj Object that you want to ensure is an array.
      *
      *  @return An Array. If the original Object is already an Array,
-     *  the original Array is returned. Otherwise, a new Array whose
+     *  the original Array is returned. If the original Object is an
+	 *  IList then it's array is returned. Otherwise, a new Array whose
      *  only element is the Object is returned or an empty Array if
      *  the Object was null.
      *
@@ -68,8 +72,11 @@
         if (obj == null)
             return [];

-        else if (obj is Array)
-            return obj as Array;
+		else if (obj is Array)
+			return obj as Array;
+
+		else if (obj is IList)
+			return (obj as IList).toArray();

         else
             return [ obj ];


Transferred from the Adobe Open Source Subversion Repository

Revision: 972
Author:   mhorn@adobe.com
Date:     2008-03-27T20:24:16.905716Z

Log Message:
-----------
Minor ASDoc fixes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/AbstractTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as
+++ frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as
@@ -58,6 +58,10 @@
      * compiler or automatically by the service when an unknown Operation has
      * been accessed. It is not recommended that a developer use this
      * constructor directly.
+     *
+     *  @param service The service on which the Operation is being invoked.
+     *
+     *  @param name The name of the new Operation.
      */
     public function AbstractOperation(service:AbstractService = null, name:String = null)
     {
@@ -90,7 +94,7 @@
      *  @private
      */
     private var resourceManager:IResourceManager =
-									ResourceManager.getInstance();
+                                    ResourceManager.getInstance();

     //--------------------------------------------------------------------------
     //
@@ -115,8 +119,8 @@
         }
         else
         {
-			var message:String = resourceManager.getString(
-				"rpc", "cannotResetOperationName");
+            var message:String = resourceManager.getString(
+                "rpc", "cannotResetOperationName");
             throw new Error(message);
         }
     }
@@ -142,8 +146,8 @@
         }
         else
         {
-			var message:String = resourceManager.getString(
-				"rpc", "cannotResetService")
+            var message:String = resourceManager.getString(
+                "rpc", "cannotResetService")
             throw new Error(message);
         }
     }
@@ -186,18 +190,18 @@
     */
     override mx_internal function dispatchRpcEvent(event:AbstractEvent):void
     {
-    	event.callTokenResponders();
-    	if (!event.isDefaultPrevented())
-    	{
-	        if (hasEventListener(event.type))
-	        {
-	            dispatchEvent(event);
-	        }
-	        else
-	        {
-	            _service.dispatchEvent(event);
-	        }
-	    }
+        event.callTokenResponders();
+        if (!event.isDefaultPrevented())
+        {
+            if (hasEventListener(event.type))
+            {
+                dispatchEvent(event);
+            }
+            else
+            {
+                _service.dispatchEvent(event);
+            }
+        }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 13830
Author:   hmuller@adobe.com
Date:     2010-01-28T00:37:51.348524Z

Log Message:
-----------
Add support to UIFTETextField for layout mirroring.

QE notes: This change was cycloned (FTETextField tests only).   It should have no effect on any existing test.
Doc notes:
Bugs: sdk-25238
Reviewer: Gordon
Tests run:
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>

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

--- frameworks/projects/spark/src/mx/core/UIFTETextField.as
+++ frameworks/projects/spark/src/mx/core/UIFTETextField.as
@@ -16,6 +16,7 @@
 import flash.display.DisplayObjectContainer;
 import flash.display.Sprite;
 import flash.events.Event;
+import flash.geom.Matrix;
 import flash.text.TextField;
 import flash.text.TextFieldType;
 import flash.text.TextFormat;
@@ -70,6 +71,10 @@
  *  of UITextField or UIFTETextField.
  *  They are able to use either class because both classes implement
  *  the IUITextField interface.

+ *
+ *
Warning: if UIFTETextField inherits layoutDirection="rtl", it
+ *  will modify its own transform.matrix to restore the default
+ *  coordinate system locally.

  *
  *  @see mx.core.UITextField
  *  @see mx.core.FTETextField
@@ -384,12 +389,60 @@
      *  @private
      */
     private var untruncatedText:String;
+
+    /**
+     *  @private
+     *  True if we've inherited layoutDirection="rtl".
+     */
+    private var mirror:Boolean = false;

     //--------------------------------------------------------------------------
     //
     //  Overridden properties
     //
     //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  x
+    //----------------------------------
+
+    private var _x:Number = 0;
+
+    /**
+     *  @private
+     */
+    override public function set x(value:Number):void
+    {
+        _x = value;
+        super.x = value;
+        if (mirror)
+            validateTransformMatrix();
+    }
+
+    /**
+     *  @private
+     */
+    override public function get x():Number
+    {
+        // FIXME(hmuller): by default get x returns transform.matrix.tx rounded to the nearest 20th.
+        // should do the same here, if we're returning _x.
+        return (mirror) ? _x : super.x;
+    }
+
+    //----------------------------------
+    //  width
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function set width(value:Number):void
+    {
+        super.width = value;
+        if (mirror)
+            validateTransformMatrix();
+    }
+

     //----------------------------------
     //  htmlText
@@ -2088,8 +2141,17 @@

         if (!isNaN(explicitHeight) && super.height != explicitHeight)
             super.height = explicitHeight;
-
-          // Set the text format.
+
+        // Update transform.matrix to compensate for layout mirroring
+        if (styleChangedFlag)
+        {
+            const oldMirror:Boolean = mirror;
+            mirror = getStyle("layoutDirection") == "rtl";
+            if (mirror || oldMirror)
+                validateTransformMatrix();
+        }
+
+        // Set the text format.
         if (styleChangedFlag)
         {
             var textFormat:TextFormat = getTextStyles();
@@ -2142,6 +2204,29 @@

         styleChangedFlag = false;
         invalidateDisplayListFlag = false;
+    }
+
+    /**
+     *  @private
+     *  Update the transform.matrix based on the mirror flag.  This method must be
+     *  called when x, width, or layoutDirection changes.
+     */
+    private function validateTransformMatrix():void
+    {
+        if (mirror)
+        {
+            const mirrorMatrix:Matrix = this.transform.matrix;
+            mirrorMatrix.a = -1;
+            mirrorMatrix.tx = _x + width;
+            transform.matrix = mirrorMatrix;
+        }
+        else // layoutDirection changed, mirror=false, reset transform.matrix to its default
+        {
+            const defaultMatrix:Matrix = new Matrix();
+            defaultMatrix.tx = _x;
+            defaultMatrix.ty = y;
+            transform.matrix = defaultMatrix;
+        }
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 11070
Author:   rfrishbe@adobe.com
Date:     2009-10-21T23:56:10.882948Z

Log Message:
-----------
This has two changes: one is adding index to IItemRenderer and the other is adding handleHighlightBackground to ItemRenderer.  Adding an index property should speed things up a little bit, and it'll help fix a bug with renderers that have index-dependent drawing, like when alternatingItemColors is set.  handleHighlightBackground is a new shortcut property that will automatically handle drawing the background for selection/highlight in an item renderer.  For now, handleHighlightBackground defaults to false, so it shouldn’t affect anything.

The two new properties still need to be PARBed, and the handleHighlightBackround property in particular may change names and default values.

QE notes: We'll need to add new tests for this
Doc notes: We'll need some new documentation around the handleHighlightBackground property and the suggested approach for custom item renderers.
Bugs: SDK-22908
Reviewer: Deepa, Evtim
Tests run: checkintests, Mustella List, DataGroup, SkinnableDataContainer, ButtonBar, DropDownList
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/IItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -874,7 +874,7 @@
         if (sharedDisplayObject.redrawRequested)
         {
             graphics.clear();
-            renderFillForMouseOpaque();
+            renderBackgroundFill();

             // If a scaleGrid is set, make sure the extent of the groups bounds are filled so
             // the player will scale our contents as expected.


Transferred from the Adobe Open Source Subversion Repository

Revision: 7407
Author:   aharui@adobe.com
Date:     2009-05-29T04:52:29.832809Z

Log Message:
-----------
Repair embeddedfont handling in RichEditableText.  Also switch all text primitives to using the embedded font lookup when fontLookup is FontLookup.EMBEDDED_CFF

QE Notes: None
Doc Notes: None
Bugs: SDK-21427
Reviewer: gordon
tests: checkintests mustella/gumbo/TextInput,TextArea

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

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

--- frameworks/projects/spark/src/spark/components/Label.as
+++ frameworks/projects/spark/src/spark/components/Label.as
@@ -503,7 +503,7 @@
 		var moduleFactory:IFlexModuleFactory;

 		var fontLookup:String = getStyle("fontLookup");
-		if (fontLookup == "auto")
+		if (fontLookup != FontLookup.DEVICE)
         {
 			var font:String = getStyle("fontFamily");
 			var bold:Boolean = getStyle("fontWeight") == "bold";
@@ -534,11 +534,12 @@
                     moduleFactory = sm;
             }
         }
-        else
-        {
-            moduleFactory = fontLookup == FontLookup.EMBEDDED_CFF ?
-                			fontContext :
-            				null;
+
+        if (!moduleFactory && fontLookup == FontLookup.EMBEDDED_CFF)
+        {
+            // if we couldn't find the font and somebody insists it is
+            // embedded, try the default fontContext
+            moduleFactory = fontContext;
         }

         return moduleFactory;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10461
Author:   gruehle@adobe.com
Date:     2009-09-21T16:55:01.374911Z

Log Message:
-----------
Temporarily revert 10435. It broke too many mustella bitmap comparisons.

Checkintests pass.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ApplicationBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SkinnableContainerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/BorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Border.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SkinnableDataContainerSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/Panel.as
+++ frameworks/projects/spark/src/spark/components/Panel.as
@@ -19,6 +19,31 @@
 import spark.layouts.supportClasses.LayoutBase;

 use namespace mx_internal;
+
+/**
+ *  Alpha level of the background for this component.
+ *  Valid values range from 0.0 to 1.0.
+ *
+ *  @default 1.0
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="backgroundAlpha", type="Number", inherit="no", theme="spark")]
+
+/**
+ *  Background color of a component.
+ *
+ *  @default 0xFFFFFF
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="backgroundColor", type="uint", format="Color", inherit="no", theme="spark")]

 /**
  *  The alpha of the border for this component.


Transferred from the Adobe Open Source Subversion Repository

Revision: 9360
Author:   chaase@adobe.com
Date:     2009-08-18T00:55:22.334227Z

Log Message:
-----------
Fix for shader-transition bug. Target objects inside containment hierarchy with filters (dropShadow, etc.) were not happening correctly (usually just blinking out the target during the effect). The problem was that the concatenatedMatrix for the target object is not correct in some cases, such as the case where there is a filter in the parent hierarchy. So we have to calculate our own, walking the parents and concatenating a matrix all the way up.

QE notes:  None.
Doc notes:  None.
Bugs:  sdk-19809
Reviewer:  Evtim (plus Glenn for some code that avoids importing UIComponent into MatrixUtil)
Tests run: checkintests, Mustella (spark/effects/[AnimateShaderTransition|Wipe|CrossFade])
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/BitmapUtil.as</path>

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

--- frameworks/projects/spark/src/spark/utils/BitmapUtil.as
+++ frameworks/projects/spark/src/spark/utils/BitmapUtil.as
@@ -12,12 +12,14 @@
 package spark.utils
 {
 import flash.display.BitmapData;
+import flash.display.DisplayObject;
 import flash.display.IBitmapDrawable;
 import flash.display.Sprite;
 import flash.geom.Matrix;
 import flash.geom.Rectangle;

 import mx.core.IUIComponent;
+import mx.utils.MatrixUtil;

 /**
  *  This class provides bitmap-related utility functions
@@ -53,7 +55,8 @@
     {
         var topLevel:Sprite = Sprite(IUIComponent(target).systemManager);
         var rectBounds:Rectangle = target.getBounds(topLevel);
-        var m:Matrix = target.transform.concatenatedMatrix;
+        // Can't use target's concatenatedMatrix, as it is sometimes wrong
+        var m:Matrix = MatrixUtil.getConcatenatedMatrix(target as DisplayObject);
         // truncate position because the fractional offset will already be figured
         // into the filter placement onto the target.
         // FIXME (chaase): There are still some offset


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.charts
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3691
Author:   chaase@adobe.com
Date:     2008-10-16T19:19:46.736687Z

Log Message:
-----------
Fixed sdk-16853, sdk-17341, sdk-16855, sdk-16681, sdk-16668, sdk-16851, sdk-16480. The main change is that the new Wait effect has gone away and its functionality (optionally waiting for an event) is instead merged into the old Pause effect. Some enhancements were added to Pause along the way. Also fixed other random effects issues, such as waiting to raise the effectStart event until after startDelay elapses (like the old Flex3 effect behavior).

reviewed by Jason and Evtim
tests: checkintests, Mustella tests/Effects, tests/ListDataEffects, tests/gumbo/effects (minus Wait and CallAction tests, which need to be updated)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PauseInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Pause.as</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/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/WaitInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Wait.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AddAction.as</path>

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

--- frameworks/projects/framework/src/mx/effects/Pause.as
+++ frameworks/projects/framework/src/mx/effects/Pause.as
@@ -16,7 +16,8 @@

 /**
  *  The Pause effect is useful when sequencing effects.
- *  It does nothing for a specified period of time.
+ *  It does nothing for a specified period of time or until
+ *  a specified event is dispatched by the target.
  *  If you add a Pause effect as a child of a Sequence effect,
  *  you can create a pause between the two other effects.
  *
@@ -29,6 +30,7 @@
  *

  *  <mx:Pause
  *    id="ID"
+ *    eventName="null"
  *  />
  *

  *
@@ -47,18 +49,76 @@
 	//--------------------------------------------------------------------------

 	/**
-	 *  Constructor.
+	 * Constructor.
 	 *
-	 *  @param target This argument is ignored by the Pause effect.
-	 *  It is included for consistency with other effects.
+	 * @param target This argument is ignored by the Pause effect
+	 * if there is no eventName attribute assigned. If there
+	 * is an eventName, then the target must be an object
+	 * of type IEventDispatcher, because it is expected to dispatch
+	 * that named event. A null target is allowed for this effect since
+	 * a Pause effect with simply a duration property is
+	 * not acting on any specific target and therefore does not need one.
 	 */
 	public function Pause(target:Object = null)
 	{
+	    // Effect requires non-null targets, so if they didn't give us one
+	    // we will create a dummy object to serve in its place. If the effect
+	    // is being used to listen to events, then they will supply a real
+	    // target of type IEventDispatcher instead, either here or separately
+	    // in the target attribute
+	    if (!target)
+	       target = new Object();
+
 		super(target);

 		instanceClass = PauseInstance;
 	}

+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  eventName
+    //----------------------------------
+
+    /**
+     * Name of event that Pause is waiting on before ending.
+     * This parameter must be used in conjunction with the
+     * target property, which must be of type
+     * IEventDispather; all events must originate
+     * from some dispatcher.
+     *
+     *
Listening for eventName is also related to the
+     * duration property, which acts as a timeout for the
+     * event. If the event is not received in the time period specified
+     * by duration, the effect will end, regardless.

+     *
+     *
This property is optional; the default
+     * action is to play without waiting for any event.

+     */
+    public var eventName:String
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function initInstance(instance:IEffectInstance):void
+    {
+        super.initInstance(instance);
+
+        var pauseInstance:PauseInstance = PauseInstance(instance);
+
+        pauseInstance.eventName = eventName;
+    }
+
 	/**
 	 *  @private
 	 */


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

--- frameworks/projects/rpc/src/mx/rpc/soap/WebService.as
+++ frameworks/projects/rpc/src/mx/rpc/soap/WebService.as
@@ -0,0 +1,371 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.rpc.soap
+{
+
+import flash.events.Event;
+
+import mx.core.mx_internal;
+import mx.logging.ILogger;
+import mx.logging.Log;
+import mx.messaging.ChannelSet;
+import mx.messaging.channels.DirectHTTPChannel;
+import mx.messaging.config.LoaderConfig;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+import mx.rpc.AbstractOperation;
+import mx.rpc.AbstractService;
+import mx.rpc.AsyncRequest;
+import mx.rpc.Fault;
+import mx.rpc.events.FaultEvent;
+import mx.rpc.events.WSDLLoadEvent;
+import mx.rpc.http.HTTPService;
+import mx.rpc.wsdl.WSDL;
+import mx.rpc.wsdl.WSDLLoader;
+import mx.rpc.wsdl.WSDLOperation;
+import mx.rpc.wsdl.WSDLPort;
+import mx.utils.URLUtil;
+import mx.utils.XMLUtil;
+
+use namespace mx_internal;
+
+/**
+ * The LoadEvent.LOAD is dispatched when the WSDL
+ * document has loaded successfully.
+ *
+ * @eventType mx.rpc.soap.LoadEvent.LOAD
+ */
+[Event(name="load", type="mx.rpc.soap.LoadEvent")]
+
+[ResourceBundle("rpc")]
+
+/**
+ * The WebService class provides access to SOAP-based web services on remote
+ * servers.
+ */
+public dynamic class WebService extends AbstractWebService
+{
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * Creates a new WebService.  The destination, if specified, should match
+     * an entry in services-config.xml.  If unspecified, the WebService uses
+     * the DefaultHTTP destination. The rootURL is required if you
+     * intend to use a relative URL find the WSDL document for this WebService.
+     */
+    public function WebService(destination:String = null, rootURL:String = null)
+    {
+        super(destination, rootURL);
+
+        _ready = false;
+        _log = Log.getLogger("mx.rpc.soap.WebService");
+    }
+
+    //-------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //-------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var resourceManager:IResourceManager =
+									ResourceManager.getInstance();
+    //-------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //-------------------------------------------------------------------------
+
+    mx_internal function get wsdlFault():Boolean
+    {
+        return _wsdlFault;
+    }
+
+    [Inspectable(defaultValue="true", category="General")]
+
+    /**
+     * The location of the WSDL document for this WebService. If you use a
+     * relative URL, make sure that the rootURL has been specified
+     * or that you created the WebService in MXML.
+     */
+    public function get wsdl():String
+    {
+        return _wsdlURL;
+    }
+
+    public function set wsdl(w:String):void
+    {
+        _wsdlURL = w;
+    }
+
+    //-------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //-------------------------------------------------------------------------
+
+    /**
+     * Returns a Boolean value that indicates whether the WebService ready to
+     * load a WSDL (does it have a valid destination or wsdl specified).
+     */
+    public function canLoadWSDL():Boolean
+    {
+        if (wsdl)
+            return true;
+        if (destination != DEFAULT_DESTINATION_HTTP
+            && destination != DEFAULT_DESTINATION_HTTPS)
+            return true;
+        return false;
+    }
+
+    /**
+     * Returns an Operation of the given name. If the Operation wasn't
+     * created beforehand, a new mx.rpc.soap.Operation is created
+     * during this call. Operations are usually accessible by simply naming
+     * them after the service variable (myService.someOperation),
+     * but if your Operation name happens to match a defined method on the
+     * service (like setCredentials), you can use this method to
+     * get the Operation instead.
+     * @param name Name of the Operation.
+     * @return Operation that executes for this name.
+     */
+    override public function getOperation(name:String):mx.rpc.AbstractOperation
+    {
+        var op:mx.rpc.AbstractOperation = super.getOperation(name);
+        if (op == null)
+        {
+            op = new Operation(this, name);
+            _operations[name] = op;
+            op.asyncRequest = asyncRequest;
+            initializeOperation(op as Operation);
+        }
+        return op;
+    }
+
+    /**
+     * Instructs the WebService to download the WSDL document.  The WebService
+     * calls this method automatically WebService when specified in the
+     * WebService MXML tag, but it must be called manually if you create the
+     * WebService object in ActionScript after you have specified the
+     * destination or wsdl property value.
+     *
+     * @param uri If the wsdl hasn't been specified previously, it may be
+     * specified here.
+     */
+    public function loadWSDL(uri:String = null):void
+    {
+        if (uri != null)
+        {
+            wsdl = uri;
+        }
+
+        // If wsdl is not set check useProxy is true and a destination has
+        // been set...
+        if (!wsdl)
+        {
+			var message:String;
+            if (!useProxy)
+            {
+				message = resourceManager.getString(
+					"rpc", "mustSpecifyWSDLLocation");
+                var fault:Fault = new Fault("Client.WSDL", message);
+                dispatchEvent(FaultEvent.createEvent(fault));
+                return;
+            }
+            else if ((destination == null) || !destinationSet
+                || (destination == DEFAULT_DESTINATION_HTTP)
+                || (destination == DEFAULT_DESTINATION_HTTPS))
+            {
+				message = resourceManager.getString(
+					"rpc", "destinationOrWSDLNotSpecified");
+                var fault1:Fault = new Fault("Client.WSDL", message);
+                dispatchEvent(FaultEvent.createEvent(fault1));
+                return;
+            }
+        }
+
+        // If a destination wasn't set and the app was loaded via HTTPS
+        // then use DefaultHTTPS instead of DefaultHTTP for our destination
+        if (!destinationSet && URLUtil.isHttpsURL(wsdl))
+        {
+            // We avoid changing super.destination as we don't want to change
+            // the current useProxy flag...
+            asyncRequest.destination = DEFAULT_DESTINATION_HTTPS;
+            destinationSet = true;
+        }
+
+        _wsdlLoader = new WSDLLoader(deriveHTTPService());
+        _wsdlLoader.addEventListener(WSDLLoadEvent.LOAD, wsdlHandler);
+        _wsdlLoader.addEventListener(FaultEvent.FAULT, wsdlFaultHandler);
+
+        // Get the WSDL
+        _wsdlFault = false;
+        _wsdlLoader.load(wsdl);
+    }
+
+    /**
+     * Represents an instance of WebService as a String, describing
+     * important properties such as the destination id and the set of
+     * channels assigned.
+     */
+    public function toString():String
+    {
+        var s:String = "[WebService ";
+        s += " destination=\"" + destination + "\"";
+        if (wsdl)
+            s += " wsdl=\"" + wsdl + "\"";
+        s += " channelSet=\"" + channelSet + "\"]";
+        return s;
+    }
+
+    //---------------------------------
+    // Helper methods
+    //---------------------------------
+
+    mx_internal function wsdlFaultHandler(event:FaultEvent):void
+    {
+        // remember that the wsdl failed
+        _wsdlFault = true;
+
+        // we just chain and fire
+        dispatchEvent(event);
+
+        // also inform enqueued operations of the wsdl failure
+        unEnqueueCalls(event.fault);
+    }
+
+    mx_internal function wsdlHandler(event:WSDLLoadEvent):void
+    {
+        _log.debug("WSDL loaded");
+        _wsdl = event.wsdl;
+
+        // Record the SOAP address location as the "endpointURI"
+        try
+        {
+            var wsdlPort:WSDLPort = _wsdl.getPort(service, port);
+            _endpointURI = wsdlPort.endpointURI;
+
+            // Resolve any relative endpoint URLs against the WSDL URL
+            if (!URLUtil.isHttpURL(_endpointURI) && event.location != null)
+                _endpointURI = URLUtil.getFullURL(event.location, _endpointURI);
+
+            _service = wsdlPort.service.name;
+            _port = wsdlPort.name;
+
+            // Operations may have been created before the WSDL was loaded so
+            // we initialize them here before unenqueuing any calls.
+            for each (var op:Operation in _operations)
+            {
+                initializeOperation(op);
+            }
+
+            _ready = true;
+
+            // Now that we're ready, dispatch load event
+            // Note that we dispatch a legacy mx.rpc.soap.LoadEvent here instead to
+            // maintain backwards compatibility...
+            var loadEvent:LoadEvent = LoadEvent.createEvent(event.wsdl, event.location);
+            dispatchEvent(loadEvent);
+
+            unEnqueueCalls();
+        }
+        catch(fault:Fault)
+        {
+            var faultEvent:FaultEvent = FaultEvent.createEvent(fault);
+            dispatchEvent(faultEvent);
+            super.unEnqueueCalls(fault); // Jump straight to fault handling; ops cannot be initialized.
+            return;
+        }
+        catch(error:Error)
+        {
+            var errorMessage:String = error.message ? error.message : "";
+			var message:String =  resourceManager.getString(
+				"rpc", "unexpectedException", [ errorMessage ])
+            var fault:Fault = new Fault("WSDLError", message);
+            fault.rootCause = error;
+            var faultEvent2:FaultEvent = FaultEvent.createEvent(fault);
+            dispatchEvent(faultEvent2);
+            super.unEnqueueCalls(fault); // Jump straight to fault handling; ops cannot be initialized.
+            return;
+        }
+    }
+
+    /**
+     * @private
+     */
+    mx_internal function deriveHTTPService():HTTPService
+    {
+        var httpService:HTTPService = new HTTPService();
+        httpService.asyncRequest = asyncRequest;
+        if (destination)
+            httpService.destination = destination;
+        httpService.useProxy = useProxy;
+        httpService.resultFormat = HTTPService.RESULT_FORMAT_XML;
+        httpService.rootURL = rootURL;
+        httpService.headers = httpHeaders;
+        return httpService;
+    }
+
+    protected function initializeOperation(operation:Operation):void
+    {
+        if (_wsdl != null)
+        {
+            var wsdlOp:mx.rpc.wsdl.WSDLOperation = _wsdl.getOperation(operation.name, service, port);
+            if (operation.endpointURI == null) // Only set if the operation has not override the endpoint URI.
+                operation.endpointURI = endpointURI;
+            operation.wsdlOperation = wsdlOp;
+        }
+    }
+
+    private function dispatchFault(faultCode:String, faultString:String, faultDetail:String = null):void
+    {
+        var fault:Fault = new Fault(faultCode, faultString, faultDetail);
+        var event:FaultEvent = FaultEvent.createEvent(fault);
+        dispatchEvent(event);
+    }
+
+    //--------------------------------------------
+    // Backing variables for public getter/setters
+    //--------------------------------------------
+
+	private var _wsdlURL:String;
+
+    //---------------------------------
+    // Internal properties
+    //---------------------------------
+
+	private var _log:ILogger;
+
+	private var _wsdlFault:Boolean;
+
+	private var _wsdl:mx.rpc.wsdl.WSDL;
+
+	private var _wsdlLoader:WSDLLoader;
+
+    //--------------------------------------------------------------------------
+    //
+    // Static Constants
+    //
+    //--------------------------------------------------------------------------
+
+    public static const DEFAULT_DESTINATION_HTTP:String = "DefaultHTTP";
+
+	public static const DEFAULT_DESTINATION_HTTPS:String = "DefaultHTTPS";
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 18476
Author:   rfrishbe@adobe.com
Date:     2010-11-05T19:24:22.345498Z

Log Message:
-----------
Adding a "down" state for item renderers when in touch interaction mode.  This means item renderers don't go in to the "selected" state when someone presses down on them.  They first go in to the "down" state.  If the user later starts scrolling or moving around, the item renderer returns to the "normal" state.  If they press down and release up on the same item, the item renderer will go from the "down" state to the "selected" state.  This distinction is necessary on touch devices to distinguish between "down" and "selected".  There's also a new "selectedAndDown" state.

Adding ItemRendererInterationStateDetector as a helper class for item renderer to help detect when they are indeed hovered or pressed down.

QE notes:
Doc notes:
Bugs: SDK-27674, SDK-28110
Reviewer: Eric Day
Tests run: checkintests, full mustella run, QA cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.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/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRendererInteractionStateDetector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/defaults.css</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
@@ -212,8 +212,6 @@
     {
         super();

-        super.allowMultipleSelection = false;
-
         dropDownController = new DropDownController();
     }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 18038
Author:   hmuller@adobe.com
Date:     2010-10-06T20:10:48.132975Z

Log Message:
-----------
Added DataGrid rowBackground skin part.

Added DataGrid/resizableColumns cover property for the Grid resizableColumns property.

Updated DataGrid skin part ASDoc.

Removed ColumnHeaderBarSkin.

Changed GridEvent itemRenderer property type from IVisualElement to IGridItemRenderer.

Added ColumnHeaderBar support for dispatching separator click/double-click events.

QE notes:
Doc notes:
Bugs:
Reviewer: Kevin
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ColumnHeaderBar.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/ColumnHeaderBarSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ColumnHeaderBarLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -1318,6 +1318,10 @@
     //  resizableColumns
     //----------------------------------

+    private var _resizableColumns:Boolean = true;
+
+    [Bindable("resizableColumnsChanged")]
+
     /**
      *  A flag that indicates whether the user can change the size of the
      *  columns.
@@ -1330,14 +1334,28 @@
      *  @default true
      *
      *  @see spark.components.supportClasses.GridColumn
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public var resizableColumns:Boolean = true;
-
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.5
+     */
+    public function get resizableColumns():Boolean
+    {
+        return _resizableColumns;
+    }
+
+    /**
+     *  @private
+     */
+    public function set resizableColumns(value:Boolean):void
+    {
+        if (value == resizableColumns)
+            return;
+
+        _resizableColumns = value;
+        dispatchChangeEvent("resizableColumnsChanged");
+    }
+
     //----------------------------------
     //  rowBackground
     //----------------------------------
@@ -3186,7 +3204,7 @@
     /**
      *  @private
      */
-    private function getVisibleItemRenderer(rowIndex:int, columnIndex:int):IVisualElement
+    private function getVisibleItemRenderer(rowIndex:int, columnIndex:int):IGridItemRenderer
     {
         const layout:GridLayout = layout as GridLayout;
         if (!layout)
@@ -3399,7 +3417,7 @@
     {
         const column:GridColumn = columnIndex >= 0 ? getGridColumn(columnIndex) : null;
         const item:Object = rowIndex >= 0 ? getDataProviderItem(rowIndex) : null;
-        const itemRenderer:IVisualElement = getVisibleItemRenderer(rowIndex, columnIndex);
+        const itemRenderer:IGridItemRenderer = getVisibleItemRenderer(rowIndex, columnIndex);
         const bubbles:Boolean = mouseEvent.bubbles;
         const cancelable:Boolean = mouseEvent.cancelable;
         const relatedObject:InteractiveObject = mouseEvent.relatedObject;


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

--- frameworks/projects/spark/src/spark/utils/LabelUtil.as
+++ frameworks/projects/spark/src/spark/utils/LabelUtil.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package mx.utils
+package spark.utils
 {

 /**


fixed bug creating tile lookup

fixed bug creating tile lookup

--- WeaveData/src/weave/utils/GeometryStreamDecoder.as
+++ WeaveData/src/weave/utils/GeometryStreamDecoder.as
@@ -34,7 +34,6 @@
 	import weave.primitives.Dictionary2D;
 	import weave.primitives.GeneralizedGeometry;
 	import weave.primitives.GeometryType;
-	import weave.primitives.KDNode;
 	import weave.primitives.KDTree;

 	/**
@@ -54,7 +53,7 @@
 	 */
 	public class GeometryStreamDecoder implements ILinkableObject
 	{
-		public static var debug:Boolean = false;
+		public static var debug:Boolean = true;
 		public var totalGeomTiles:int = 0;
 		public var totalVertices:int = 0;

@@ -211,7 +210,6 @@
 		private function decodeTileList(tileTree:KDTree, stream:ByteArray):void
 		{
 			var tiles:Array = []; // array of descriptor objects containing kdKey and tileID
-			var tile:TileDescriptor;
 		    try {
 				// read tile descriptors from stream
 				var tileID:int = 0;
@@ -223,9 +221,9 @@
 					kdKey[XMAX_INDEX] = stream.readDouble();
 					kdKey[YMAX_INDEX] = stream.readDouble();
 					kdKey[IMAX_INDEX] = stream.readFloat();
-					//trace((tileTree == metadataTiles ? "metadata tile" : "geometry tile") + " " + tileID + "[" + kdKey + "]");
-					tile = new TileDescriptor(kdKey, tileID);
-					tiles.push(tile);
+					if (debug)
+						trace((tileTree == metadataTiles ? "metadata tile" : "geometry tile") + " " + tileID + "[" + kdKey + "]");
+					tiles.push(new TileDescriptor(kdKey, tileID));
 					collectiveBounds.includeCoords(kdKey[XMIN_INDEX], kdKey[YMIN_INDEX]);
 					collectiveBounds.includeCoords(kdKey[XMAX_INDEX], kdKey[YMAX_INDEX]);
 					tileID++;
@@ -236,14 +234,12 @@
 			// poorly-performing KDTree structure due to the given ordering.
 			VectorUtils.randomSort(tiles);
 			// insert tileDescriptors into tree
-			var node:KDNode;
-			var tileDescriptor:TileDescriptor;
-			for each (tile in tiles)
+			for each (var tile:TileDescriptor in tiles)
 			{
 				// insert a new node in the tree, mapping kdKey to tile
 				tileTree.insert(tile.kdKey, tile);
 				// save mapping from tile ID to TileDescriptor so it can be excluded later
-				tileLookup.set(tileTree, tileID, tile);
+				tileLookup.set(tileTree, tile.tileID, tile);
 			}

 			// collective bounds changed


FLEX-34778
CAUSE: When a node is opened, HierarchicalCollectionView starts to listen to changes to its children collection. And when it's closed, it doesn't stop listening to these CollectionEvents. So when a closed node's child is replaced, nestedCollectionChangeHandler is triggered, even if the node itself is closed. Part of nestedCollectionChangeHandler's function is to dispatch a REMOVE CollectionEvent for all the nodes which were removed by the replacement (which is, all the descendants of the replaced - but closed! - node). Then, since the node that's being replaced is not accessible anymore (because its parent was closed), it's not added to convertedEvent.items. But the next lines assume that the replaced node will be in that array without mistake. Otherwise (as it happens in this bus) it goes into an infinite loop trying to find it.

SOLUTION: instead of looking for the node with an (indefinitely) incrementing index, we're now using Array.indexOf() to locate the node and remove it if it's found.

--- frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as
+++ frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as
@@ -1152,7 +1152,7 @@
     private function internalRefresh(dispatch:Boolean):Boolean
     {
         var obj:Object;
-        var coll:ICollectionView
+        var coll:ICollectionView;
         var needUpdate:Boolean = false;

         // apply filter function to all the collections including the child collections
@@ -1531,9 +1531,9 @@
                 for (i = 0; i < n; i++)
                 {
                     node = ce.items[i].oldValue;
-                    while (convertedEvent.items[j] != node)
-                        j++;
-                    convertedEvent.items.splice(j, 1);
+                    var replacedNodePosition:int = convertedEvent.items.indexOf(node);
+                    if(replacedNodePosition != -1)
+                        convertedEvent.items.splice(replacedNodePosition, 1);
                 }
                 if (convertedEvent.items.length)
                 {
@@ -1654,9 +1654,10 @@
                     changingNode = ce.items[i].oldValue;
                     if (changingNode is XML)
                         stopTrackUpdates(changingNode);
-                    while (convertedEvent.items[j] != changingNode)
-                        j++;
-                    convertedEvent.items.splice(j, 1);
+
+                    var replacedNodePosition:int = convertedEvent.items.indexOf(changingNode);
+                    if(replacedNodePosition != -1)
+                        convertedEvent.items.splice(replacedNodePosition, 1);
                 }
                 if (convertedEvent.items.length)
                 {