Added htmlEscape and htmlUnescape methods

--- src/org/openPyro/utils/StringUtil.as
+++ src/org/openPyro/utils/StringUtil.as
@@ -1,6 +1,9 @@
 package org.openPyro.utils{
 	import flash.text.TextField;
 	import flash.text.TextFormat;
+	import flash.xml.XMLDocument;
+	import flash.xml.XMLNode;
+	import flash.xml.XMLNodeType;

 	/**
 	 * A collection of Utility methods for working with Strings
@@ -107,6 +110,17 @@
 			var part1:String = originalString.substring(0, index);
 			var part2:String = originalString.substring(index+1, originalString.length);
 			return part1+stringToInsert+part2;
-		}
+		}
+
+		public static function htmlUnescape(str:String):String{
+			if(!str || str == "") return "";
+			return new XMLDocument(str).firstChild.nodeValue;
+		}
+
+		public static function htmlEscape(str:String):String{
+			if(!str || str == "") return "";
+			return XML( new XMLNode( XMLNodeType.TEXT_NODE, str ) ).toXMLString();
+		}
+
  	}
 }


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/graphics/LinearGradient.as
+++ frameworks/projects/framework/src/mx/graphics/LinearGradient.as
@@ -103,6 +103,11 @@
  *  @see mx.graphics.GradientEntry
  *  @see mx.graphics.RadialGradient
  *  @see mx.graphics.IFill
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class LinearGradient extends GradientBase implements IFill
 {
@@ -116,6 +121,11 @@

  	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function LinearGradient()
  	{
@@ -130,11 +140,21 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	private static var commonMatrix:Matrix = new Matrix();

 	/**
 	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function begin(target:Graphics, rc:Rectangle):void
 	{
@@ -215,6 +235,11 @@

 	/**
 	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function end(target:Graphics):void
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 18635
Author:   aharui@adobe.com
Date:     2010-11-17T00:18:36.469040Z

Log Message:
-----------
Add estimatedSizes to the layout infrastructure to better deal with text reflow.
Add new events to layout infrastructure to deal with caching of size information

QE notes: New APIs and Interfaces
Doc notes: New APIs and interfaces
Bugs: SDK-27226, SDK-26155, SDK-25483, SDK-23621, SDK-27225, SDK-26993, SDK-25535, SDK-25521
Reviewer: Evtim
Tests run: checkintests mustella full run
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/FormTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.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/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -14,12 +14,18 @@
 import flash.events.Event;
 import flash.geom.Point;
 import flash.geom.Rectangle;
+import flash.utils.Dictionary;

 import mx.containers.utilityClasses.Flex;
+import mx.core.FlexVersion;
+import mx.core.IInvalidating;
 import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
 import mx.core.mx_internal;
+import mx.core.UIComponentGlobals;
+import mx.events.FlexEvent;
 import mx.events.PropertyChangeEvent;
+import mx.managers.ILayoutManagerClient;

 import spark.components.DataGroup;
 import spark.components.supportClasses.GroupBase;
@@ -125,6 +131,18 @@
      */
     private var llv:LinearLayoutVector;

+    /**
+     *  @private
+     *  total percentages of children.  used to calculate estimatedWidth
+     */
+    private var totalPercentWidth:Number;
+
+    /**
+     *  @private
+     *  actual space that is flexible.  used to calculate estimatedWidth
+     */
+    private var flexibleWidth:Number;
+
     //--------------------------------------------------------------------------
     //
     //  Class methods
@@ -187,6 +205,22 @@
         // Don't drag-scroll in the vertical direction
         dragScrollRegionSizeVertical = 0;
     }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    // used to communicate between the loop and the event handlers
+    private var dontCacheMeasurements:Boolean;
+    private var notFinalTargets:Array;
+
+    // indexes that have reported that a size should not be cached
+    private var notFinalIndexes:Array;
+    // components that have reported that they are not final
+    private var notFinalComponents:Dictionary;
+

     //--------------------------------------------------------------------------
     //
@@ -928,7 +962,14 @@
         {
             var layoutTarget:GroupBase = target;
             if (layoutTarget)
+            {
+                if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
+                {
+                    layoutTarget.invalidateSize();
+                    layoutTarget.invalidateEstimatedSizesOfChildren();
+                }
                 layoutTarget.invalidateDisplayList();
+            }
         }
     }

@@ -955,12 +996,73 @@
         dispatchEvent(new Event("indexInViewChanged"));
     }

+    //----------------------------------
+    //  target
+    //----------------------------------
+
+    private var _target:GroupBase;
+
+    /**
+     * @private
+     */
+    override public function set target(value:GroupBase):void
+    {
+        if (_target == value)
+            return;
+
+        if (_target)
+            _target.removeEventListener(FlexEvent.MEASURED_SIZE_PRELIMINARY, measuredSizePreliminaryHandler);
+        _target = value;
+        super.target = value;
+        if (value)
+            value.addEventListener(FlexEvent.MEASURED_SIZE_PRELIMINARY, measuredSizePreliminaryHandler, false, 0, true);
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Methods
     //
     //--------------------------------------------------------------------------

+	/**
+	 *  @private
+	 *  customize handling of a few cases
+	 */
+    override protected function estimateSizeOfElement(layoutElement:ILayoutElement,
+                                                               percentWidth:Number,
+                                                               percentHeight:Number,
+                                                               parentEstimatedWidth:Number,
+                                                               parentEstimatedHeight:Number,
+                                                               estimatedSize:Point):void
+    {
+        super.estimateSizeOfElement(layoutElement,
+                                            percentWidth * 100 / totalPercentWidth,
+                                            percentHeight,
+                                            flexibleWidth,
+                                            parentEstimatedHeight,
+                                            estimatedSize);
+
+		if (isNaN(estimatedSize.y))
+		{
+			var c:Number = target.estimatedHeight;
+			if (isNaN(c) && !isNaN(target.explicitHeight))
+				c = target.explicitHeight;
+			if (!isNaN(c))
+			{
+				// if verticalAlign is "justify" or "contentJustify",
+				// restrict the height to estimatedHeight.  Otherwise,
+				// size it normally
+				if (verticalAlign == VerticalAlign.JUSTIFY)
+					estimatedSize.y = c;
+			}
+			else
+			{
+				if (!isNaN(layoutElement.percentHeight) && !isNaN(target.height) && target.height > 0)
+					estimatedSize.y = calculatePercentHeight(layoutElement, target.height);
+			}
+		}
+	}
+
     /**
      *  @private
      */
@@ -984,6 +1086,63 @@
         llv = null;
     }

+    /**
+     * @private
+     * if the estimated sizes changed, toss the cached sizes
+     */
+    override public function estimateSizesOfElements():void
+    {
+        if (llv)
+        {
+            llv.minorSize = 0;
+            llv.minMinorSize = 0;
+        }
+
+        var size:SizesAndLimit = new SizesAndLimit();
+        var spaceToDistribute:Number = !isNaN(target.explicitWidth) ? target.explicitWidth : target.estimatedWidth;
+        spaceToDistribute -= paddingLeft + paddingRight;
+        totalPercentWidth = useVirtualLayout ? 100 : 0;
+		if (!useVirtualLayout)
+		{
+	        var layoutElement:ILayoutElement;
+
+	        // columnWidth can be expensive to compute
+	        var cw:Number = (variableColumnWidth) ? NaN : Math.ceil(columnWidth);
+	        var count:int = target.numElements;
+	        var totalCount:int = count; // number of elements to use in gap calculation
+
+	        // If the child is flexible, track total % in case of total %'s
+	        // add up to more than 100.
+	        // For non-flexible children, take its size away from the total amount
+	        // of flexible room
+	        for (var index:int = 0; index < count; index++)
+	        {
+	            layoutElement = target.getElementAt(index);
+	            if (!layoutElement || !layoutElement.includeInLayout)
+	            {
+	                totalCount--;
+	                continue;
+	            }
+
+	            if (!isNaN(layoutElement.percentWidth) && variableColumnWidth)
+	            {
+	                totalPercentWidth += layoutElement.percentWidth;
+	            }
+	            else
+	            {
+	                getElementWidth(layoutElement, cw, size);
+	                spaceToDistribute -= Math.ceil(size.preferredSize);
+	            }
+	        }
+
+	        if (totalCount > 1)
+	            spaceToDistribute -= (totalCount-1) * gap;
+
+	        flexibleWidth = spaceToDistribute;
+		}
+        super.estimateSizesOfElements();
+    }
+
     /**
      *  @private
      */
@@ -1561,6 +1720,17 @@
         var typicalElt:ILayoutElement = typicalLayoutElement;
         if (typicalElt)
         {
+            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
+            {
+                // warning:  If the data for a renderer is an IVisualElement
+                // the typicalElt's data will still be valid, but the data
+                // will likely have been re-parented to an actual renderer
+                // causing new measurements here to be off.  This is supposedly
+                // compensated for when we factor in the renderers we have created
+                // into measurement.
+                if (typicalElt is ILayoutManagerClient)
+                    UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(typicalElt), true);
+            }
             var typicalWidth:Number = typicalElt.getPreferredBoundsWidth();
             var typicalHeight:Number = typicalElt.getPreferredBoundsHeight();
             llv.defaultMinorSize = typicalHeight;
@@ -1634,6 +1804,7 @@
             // paddingRight is already taken into account as the majorAxisOffset of the llv
             // Measured size according to the cached actual size:
             var measuredWidth:Number = llv.end(measuredEltCount - 1) + paddingRight;
+            var measuredHeight:Number = llv.minorSize + vPadding;

             // For the live ItemRenderers use the preferred size
             // instead of the cached actual size:
@@ -1648,12 +1819,17 @@
                     {
                         measuredWidth -= llv.getMajorSize(i);
                         measuredWidth += element.getPreferredBoundsWidth();
+                        measuredHeight = Math.max(measuredHeight, element.getPreferredBoundsHeight() + vPadding);
                     }
                 }
             }

             layoutTarget.measuredWidth = measuredWidth;
-
+            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
+                layoutTarget.measuredHeight = measuredHeight;
+            else
+                layoutTarget.measuredHeight = llv.minorSize + vPadding;
+
             if (oldLength != -1)
                 llv.length = oldLength;
         }
@@ -1661,8 +1837,8 @@
         {
             var hgap:Number = (measuredEltCount > 1) ? (measuredEltCount - 1) * gap : 0;
             layoutTarget.measuredWidth = (measuredEltCount * columnWidth) + hgap + hPadding;
-        }
-        layoutTarget.measuredHeight = llv.minorSize + vPadding;
+            layoutTarget.measuredHeight = llv.minorSize + vPadding;
+        }

         layoutTarget.measuredMinWidth = layoutTarget.measuredWidth;
         layoutTarget.measuredMinHeight = (verticalAlign == VerticalAlign.JUSTIFY) ?
@@ -1983,19 +2159,81 @@
         var index:int = startIndex;
         var y0:Number = paddingTop;

+        var w:Number;
+        var h:Number;
+        var elt:ILayoutElement;
+
         // First pass: compute element x,y,width,height based on
         // current contentHeight; cache computed widths/heights in llv.
         for (; (x < maxVisibleX) && (index < eltCount); index++)
         {
-            var elt:ILayoutElement = layoutTarget.getVirtualElementAt(index);
-            var w:Number = fixedColumnWidth; // NaN for variable width columns
-            var h:Number = calculateElementHeight(elt, targetHeight, containerHeight); // can be NaN
+            // reset this flag so components like Image can tell us
+            // not to cache measurements
+            dontCacheMeasurements = false;
+            // reset this array so we can find out what components are
+            // not final
+			if (!notFinalTargets)
+				notFinalTargets = [];
+			else
+	            notFinalTargets.length = 0;
+			// request element, but skip validation (especially of the displaylist)
+			elt = layoutTarget.getVirtualElementAt(index, eltWidth, eltHeight, true);
+			// then validate everything but the displaylist so there are valid
+			// default size
+			if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
+				if (elt is ILayoutManagerClient)
+					UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(elt), true);
+			w = fixedColumnWidth; // NaN for variable width columns
+            h = calculateElementHeight(elt, targetHeight, containerHeight); // can be NaN
             elt.setLayoutBoundsSize(w, h);
             w = elt.getLayoutBoundsWidth();
             h = elt.getLayoutBoundsHeight();
             var y:Number = y0 + calculateElementY(elt, h, containerHeight);
             elt.setLayoutBoundsPosition(x, y);
-            llv.cacheDimensions(index, elt);
+			// this flag potentially set by an event dispatched in the previous lines of code
+            if (dontCacheMeasurements)
+            {
+                // associate the index with the target
+                // so if the target is recycled to another
+                // index we know the current index
+                for each (var t:* in notFinalTargets)
+				{
+					if (!notFinalComponents)
+						notFinalComponents = new Dictionary(true);
+					notFinalComponents[t] = index;
+
+				}
+				if (!notFinalIndexes)
+					notFinalIndexes = [];
+                // remember that this index didn't want to be cached
+                notFinalIndexes[index] = index;
+            }
+            else
+            {
+                if (notFinalIndexes && notFinalIndexes[index] != null)
+                {
+                    // we were previously told not to cache measurements.
+                    // clear it from the table.  We'll put it back in
+                    // if needed
+                    notFinalIndexes[index] = null;
+                    // scan the components that have dispatched a notFinal
+                    // to see if any are associated with this index
+                    for each(var p:* in notFinalComponents)
+                    {
+                        if (p == index)
+                        {
+                            // still a component that isn't final
+                            // so re-add it
+                            notFinalIndexes[index] = index;
+                            break;
+                        }
+                    }
+                    if (notFinalIndexes[index] == null)
+                        llv.cacheDimensions(index, elt);
+                }
+                else
+                    llv.cacheDimensions(index, elt);
+            }
             x += w + gap;
         }
         var endIndex:int = index - 1;
@@ -2010,7 +2248,7 @@
             {
                 for (index = startIndex; index <= endIndex; index++)
                 {
-                    elt = layoutTarget.getVirtualElementAt(index);
+                    elt = layoutTarget.getVirtualElementAt(index, NaN, NaN, true);
                     h = calculateElementHeight(elt, targetHeight, containerHeight); // can be NaN
                     elt.setLayoutBoundsSize(elt.getLayoutBoundsWidth(), h);
                     h = elt.getLayoutBoundsHeight();
@@ -2040,7 +2278,7 @@
             {
                 for (index = startIndex; index <= endIndex; index++)
                 {
-                    elt = layoutTarget.getVirtualElementAt(index, NaN, NaN);
+                    elt = layoutTarget.getVirtualElementAt(index, NaN, NaN, true);
                     elt.setLayoutBoundsPosition(dx + elt.getLayoutBoundsX(), elt.getLayoutBoundsY());
                 }
                 contentWidth += dx;
@@ -2340,6 +2578,40 @@
         g.invalidateDisplayList();
     }

+    /**
+     *  React to indications that measurements are not final
+     *  and should not be cached
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    private function measuredSizePreliminaryHandler(event:FlexEvent):void
+    {
+        event.target.addEventListener(FlexEvent.MEASURED_SIZE_FINAL, measuredSizeFinalHandler, false, 0, true);
+		if (!notFinalTargets)
+			notFinalTargets = [];
+        notFinalTargets.push(event.target);
+        dontCacheMeasurements = true;
+    }
+
+    /**
+     *  React to indications that measurements are final
+     *  and can be cached
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    private function measuredSizeFinalHandler(event:FlexEvent):void
+    {
+		if (notFinalComponents)
+        	delete notFinalComponents[event.target];
+    }
+
+
     //--------------------------------------------------------------------------
     //
     //  Drop methods


add visible to IUIBase

add visible to IUIBase

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IUIBase.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/IUIBase.as
@@ -108,5 +108,16 @@
 		function get height():Number;
 		function set height(value:Number):void;

+        /**
+         *  Whether the component is visible.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        function get visible():Boolean;
+        function set visible(value:Boolean):void;
+
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18260
Author:   dloverin@adobe.com
Date:     2010-10-21T12:08:59.366158Z

Log Message:
-----------
Refactor datavisualization, flex, and utilities libraries.

datavisualization.swc split into advancedgrid.swc and charts.swc.
flex.swc renamed to core.swc
utilities.swc renamed to authoringsupport.swc

QE notes: None.
Doc notes: None.
Bugs: SDK-27858
Reviewer: Darrell
Tests run: cyclone server
Is noteworthy for integration: Yes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/build_framework.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark_dmv/build.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_dmv/build.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/core/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/build.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/core/build.xml</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/flex/src/FlexClasses.as" copyfrom-rev="18243" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/core/src/CoreClasses.as</path>
<path kind="dir" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/flex" copyfrom-rev="18243" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/core</path>
<path kind="dir" action="M">/private/flex/sdk/branches/hero_private/frameworks/rsls</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/authoringsupport/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/authoringsupport/build.xml</path>
<path kind="dir" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/utilities" copyfrom-rev="18243" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/authoringsupport</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/core/src/FlexClasses.as</path>
<path kind="dir" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/flex</path>
<path kind="dir" action="M">/private/flex/sdk/branches/hero_private/frameworks/libs</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/utilities/src/UtilitiesClasses.as" copyfrom-rev="18243" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/authoringsupport/src/AuthoringSupportClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/build.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/core/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/.actionScriptProperties</path>
<path kind="dir" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/utilities</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/core/.project</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/authoringsupport/src/UtilitiesClasses.as</path>
<path kind="dir" action="M">/private/flex/sdk/branches/hero_private/frameworks/locale/en_US</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/authoringsupport/.project</path>

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

--- frameworks/projects/authoringsupport/src/AuthoringSupportClasses.as
+++ frameworks/projects/authoringsupport/src/AuthoringSupportClasses.as
@@ -22,7 +22,7 @@
  *  the SWC are found by a dependency analysis starting from the classes
  *  listed here.
  */
-internal class UtilitiesClasses
+internal class AuthoringSupportClasses
 {
 	import FlashComponentPlaceholder; FlashComponentPlaceholder;
 	import FlashContainerPlaceholder; FlashContainerPlaceholder;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/filters/BaseDimensionFilter.as
+++ frameworks/projects/framework/src/mx/filters/BaseDimensionFilter.as
@@ -21,6 +21,11 @@
 	 *  or less means that the original image is copied as is. The default
 	 *  value is 4. Values that are a power of 2 (such as 2, 4, 8, 16, and 32)
 	 *  are optimized to render more quickly than other values.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get blurX():Number
 	{
@@ -47,6 +52,11 @@
 	 *  or less means that the original image is copied as is. The default
 	 *  value is 4. Values that are a power of 2 (such as 2, 4, 8, 16, and 32)
 	 *  are optimized to render more quickly than other values.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get blurY():Number
 	{
@@ -73,6 +83,11 @@
 	 *  makes the object's fill transparent and reveals the background color
 	 *  of the document. The value true specifies a knockout effect; the
 	 *  default value is false (no knockout effect).
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get knockout():Boolean
 	{
@@ -107,6 +122,11 @@
 	 *  Instead of increasing the value of quality, you can often get a similar
 	 *  effect, and with faster rendering, by simply increasing the values of
 	 *  the blurX and blurY properties.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get quality():int
 	{
@@ -133,6 +153,11 @@
 	 *  color is imprinted and the stronger the contrast between the glow and
 	 *  the background. Valid values are 0 to 255. A value of 0 means that the
 	 *  filter is not applied. The default value is 1.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get strength():Number
 	{


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/controls/Text.as
+++ frameworks/projects/mx/src/mx/controls/Text.as
@@ -116,6 +116,11 @@
  *  @see mx.controls.TextInput
  *  @see mx.controls.TextArea
  *  @see mx.controls.RichTextEditor
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class Text extends Label
 {
@@ -152,6 +157,16 @@
         inside updateDisplayList(), which will cause measure() and
         updateDisplayList() to be called a second time.

+    *
+
+    *  @langversion 3.0
+
+    *  @playerversion Flash 9
+
+    *  @playerversion AIR 1.1
+
+    *  @productversion Flex 3
+
     */

     //--------------------------------------------------------------------------
@@ -162,6 +177,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function Text()
     {
@@ -390,6 +410,11 @@
         // a capital and decending character using the current font.
         if (!t || t.length < 2)
             t = "Wj";
+        *
+        *  @langversion 3.0
+        *  @playerversion Flash 9
+        *  @playerversion AIR 1.1
+        *  @productversion Flex 3
         */

         // Don't call super.measure();


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/UIMovieClipAutomationImpl.as
+++ frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/UIMovieClipAutomationImpl.as
@@ -0,0 +1,554 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.automation.delegates.flashflexkit
+{
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+	import flash.events.Event;
+	import flash.events.EventDispatcher;
+	import flash.events.FocusEvent;
+	import flash.events.KeyboardEvent;
+	import flash.events.MouseEvent;
+	import flash.geom.Point;
+	import flash.ui.Keyboard;
+
+	import mx.automation.Automation;
+	import mx.automation.IAutomationManager;
+	import mx.automation.IAutomationObject;
+	import mx.automation.IAutomationObjectHelper;
+	import mx.automation.delegates.DragManagerAutomationImpl;
+	import mx.automation.events.AutomationDragEvent;
+	import mx.core.EventPriority;
+	import mx.core.IUIComponent;
+	import mx.core.UIComponent;
+	import mx.core.UIComponentGlobals;
+	import mx.core.mx_internal;
+	import mx.events.EffectEvent;
+	import mx.events.FlexEvent;
+	import mx.resources.IResourceManager;
+	import mx.resources.ResourceManager;
+	import mx.flash.UIMovieClip;
+	use namespace mx_internal;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines methods and properties required to perform instrumentation for the
+	 *  UIMovieclip control.
+	 *
+	 *  @see mx.flash.UIMovieClip;
+	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+
+
+
+	public class UIMovieClipAutomationImpl extends EventDispatcher
+		implements IAutomationObject
+	{
+		include "../../../core/Version.as";
+
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *  @param root DisplayObject object representing the application root.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(UIMovieClip, UIMovieClipAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 *
+		 *  @param obj UIComponent object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function UIMovieClipAutomationImpl(obj:UIMovieClip)
+		{
+			super();
+
+			movieClip = obj;
+
+
+			obj.addEventListener(MouseEvent.CLICK, mouseClickHandler, false, EventPriority.DEFAULT+1, true);
+
+			recordClick = true;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Variables
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  A reference to the object which manages all of the application's localized resources.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		protected var resourceManager:IResourceManager =
+			ResourceManager.getInstance();
+
+		/**
+		 *  @private
+		 */
+		private var effectsPlaying:Boolean = false;
+
+		/**
+		 *  @private
+		 */
+		private var layoutPending:Boolean = false;
+
+		//--------------------------------------------------------------------------
+		//
+		//  Properties
+		//
+		//--------------------------------------------------------------------------
+
+		//---------------------------------
+		//  automationEnabled
+		//---------------------------------
+		public function get automationEnabled():Boolean
+		{
+			return null;
+		}
+
+		//---------------------------------
+		//  automationOwner
+		//---------------------------------
+		public function get automationOwner():DisplayObjectContainer
+		{
+			return null;
+		}
+
+		//---------------------------------
+		//  automationParent
+		//---------------------------------
+		public function get automationParent():DisplayObjectContainer
+		{
+			return null;
+		}
+
+		//---------------------------------
+		//  automationVisible
+		//---------------------------------
+		public function get automationVisible():Boolean
+		{
+			return null;
+		}
+
+		//----------------------------------
+		//  automationName
+		//----------------------------------
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get automationName():String
+		{
+			if (movieClip is DisplayObject)
+				if(DisplayObject(movieClip).name) return (DisplayObject(movieClip).name);
+
+			return movieClip.id;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function set automationName(value:String):void
+		{
+			uiAutomationObject.automationName = value;
+		}
+
+		//----------------------------------
+		//  automationValue
+		//----------------------------------
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get automationValue():Array
+		{
+			return [ automationName ];
+		}
+
+
+		//------------- ---------------------
+		//  recordClick
+		//----------------------------------
+
+		/**
+		 *  @private
+		 *  Storage for the recordClick property.
+		 */
+		private var _recordClick:Boolean = false;
+
+		/**
+		 *  @private
+		 *  Indicates whether this component should dispatch all click
+		 *  events as replayable interaction
+		 */
+		public function get recordClick():Boolean
+		{
+			return _recordClick;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function set recordClick(val:Boolean):void
+		{
+			// we don't want to add/remove the event listeners multiple times
+			if (_recordClick != val)
+			{
+				_recordClick = val;
+				if (val)
+					movieClip.addEventListener(MouseEvent.CLICK, mouseClickHandler);
+				else
+					movieClip.removeEventListener(MouseEvent.CLICK, mouseClickHandler);
+			}
+		}
+
+		/**
+		 *  @private
+		 */
+		public function get showInAutomationHierarchy():Boolean
+		{
+			trace("Reading should not be done here");
+			return true;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function set showInAutomationHierarchy(value:Boolean):void
+		{
+			trace("Setting should not be done here");
+			IAutomationObject(movieClip).showInAutomationHierarchy = value;
+		}
+
+		/**
+		 *  @private
+		 */
+		protected var _movieClip:UIMovieClip;
+
+		/**
+		 *  Returns the component instance associated with this delegate instance.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get movieClip():UIMovieClip
+		{
+			return _movieClip;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function set movieClip(obj:UIMovieClip):void
+		{
+			_movieClip = obj as UIMovieClip;
+		}
+
+
+		/**
+		 *  @private
+		 */
+		protected function get uiAutomationObject():IAutomationObject
+		{
+			return _movieClip as IAutomationObject;
+		}
+
+
+		/**
+		 *  @private
+		 *  Dispatch a replayable interaction.
+		 *
+		 *  Usually a developer would intend to dispatch the event
+		 *  as a normal event at the same time, so this function
+		 *  will do a regular dispatchEvent() along with dispatching
+		 *  to the AutomationManager.
+		 *  If you wish to not dispatch the regular event,
+		 *  set the second parameter to false.
+		 *
+		 *  This method will also test to make sure that the event
+		 *  really should be dispatched by checking
+		 *  shouldDispatchReplayableInteraction.
+		 *  Component authors can override that method to ensure correct behavior.
+		 *
+		 *  @param event The Event to dispatch
+		 *
+		 *  @param doRegular If true (default) dispatch the regular event using
+		 *  dispatchEvent(event)
+		 *
+		 *  @param cacheable
+		 *
+		 */
+		public function recordAutomatableEvent(event:Event,
+											   cacheable:Boolean = false):void
+		{
+			var am:IAutomationManager = Automation.automationManager;
+			if (am && am.recording)
+			{
+				am.recordAutomatableEvent(movieClip as IAutomationObject, event, cacheable);
+			}
+		}
+
+		/**
+		 *  @private
+		 *  Replay the specified interaction.
+		 *  Returns whether or not a replay was successful.
+		 *  A component author should probably call super.replayInteraction()
+		 *  in case default replay behavior has been defined in a superclass.
+		 *  UIComponent returns false since it does not know
+		 *  how to replay any events.
+		 *
+		 *  @param event The event to replay
+		 */
+		public function replayAutomatableEvent(event:Event):Boolean
+		{
+			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+			if (event is MouseEvent && event.type == MouseEvent.CLICK)
+				return help.replayClick(movieClip, event as MouseEvent);
+			else if (event is KeyboardEvent)
+				return movieClip.dispatchEvent(event);
+			else if (event is FocusEvent &&
+				event.type == FocusEvent.KEY_FOCUS_CHANGE)
+			{
+				var ke:KeyboardEvent = new KeyboardEvent(KeyboardEvent.KEY_DOWN);
+				ke.keyCode = Keyboard.TAB;
+				ke.shiftKey = FocusEvent(event).shiftKey;
+				movieClip.dispatchEvent(ke);
+
+				movieClip.dispatchEvent(event);
+
+				ke = new KeyboardEvent(KeyboardEvent.KEY_UP);
+				ke.keyCode = Keyboard.TAB;
+				return UIComponent(movieClip).getFocus().dispatchEvent(ke);
+			}
+			else if (event is AutomationDragEvent)
+				return DragManagerAutomationImpl.replayAutomatableEvent(uiAutomationObject, event);
+			else
+				return false;
+		}
+
+		/**
+		 *  Sets up a automation synchronization with layout manager update complete event.
+		 *  When certain actions are being replayed automation needs to wait before it can
+		 *  replay the next event. This wait is required to allow the framework to complete
+		 *  actions requested by the component. Normally a layout manager update complte event
+		 *  signals end of all updates. This method adds syncrhonization which gets signaled as
+		 *  complete when update_complete event is received.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		protected function addLayoutCompleteSynchronization():void
+		{
+			UIComponentGlobals.layoutManager.addEventListener(FlexEvent.UPDATE_COMPLETE, layoutHandler);
+			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+			if (help && help.replaying)
+			{
+				layoutPending = true;
+				help.addSynchronization(function():Boolean
+				{
+					return layoutPending == false;
+				}, movieClip);
+			}
+		}
+
+
+
+
+
+
+		/**
+		 *  @private
+		 */
+		private function mouseClickHandler(event:MouseEvent):void
+		{
+			var am:IAutomationManager = Automation.automationManager;
+			if (recordClick && am && am.recording)
+			{
+				var ao:IAutomationObject = null;
+				var o:Object = event.target;
+				while (o)
+				{
+					ao = o as IAutomationObject;
+					if (ao)
+						break;
+					o = o.parent;
+				}
+				if (ao == movieClip)
+					recordAutomatableEvent(event, false);
+			}
+		}
+
+
+		/**
+		 *  @private
+		 */
+		protected function layoutHandler(event:FlexEvent):void
+		{
+			layoutPending = false;
+			UIComponentGlobals.layoutManager.removeEventListener(FlexEvent.UPDATE_COMPLETE, layoutHandler);
+		}
+
+		/**
+		 *  @private
+		 */
+		public function createAutomationIDPart(child:IAutomationObject):Object
+		{
+			return null;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function createAutomationIDPartWithRequiredProperties(child:IAutomationObject, properties:Array):Object
+		{
+			return null;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function resolveAutomationIDPart(criteria:Object):Array
+		{
+			return [];
+		}
+
+		/**
+		 *  @private
+		 */
+		public function get numAutomationChildren():int
+		{
+			return 0;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function getAutomationChildAt(index:int):IAutomationObject
+		{
+			return null;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function getAutomationChildren():Array
+		{
+			return null;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function get automationTabularData():Object
+		{
+			return null;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function get owner():DisplayObjectContainer
+		{
+			return (movieClip as IUIComponent).owner;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function set automationDelegate(val:Object):void
+		{
+			trace("Invalid setter function call. Should have been called on the component");
+		}
+
+		/**
+		 *  @private
+		 */
+		public function get automationDelegate():Object
+		{
+			trace("Invalid getter function call. Should have been called on the component");
+			return this;
+		}
+
+		/**
+		 *  @private
+		 */
+		public function getLocalPoint(po1:Point, targetObj:DisplayObject):Point
+		{
+			//var p:Point = new Point(event.localX, event.localY);
+			// when the dragevent base object on which the coordinate is recorded
+			// then the delegate of that componet needs to override the method.
+			// refer for details in Chartbase
+			return po1;
+		}
+		/**
+		 *  @private
+		 */
+		public function isDragEventPositionBased():Boolean
+		{
+			// for almost all components it is not.
+			// however for compoents like chart it is coordinate based
+			return false;
+		}
+	}
+}
+
+


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

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

 package mx.automation.delegates.flashflexkit


Transferred from the Adobe Open Source Subversion Repository

Revision: 10633
Author:   dloverin@adobe.com
Date:     2009-09-28T13:24:30.559033Z

Log Message:
-----------
Use styleManager instance instead of StyleManager singleton (framework and compiler generated code)

Modified compiler generated style code for the FlexInit class. The style related changes are only available with the -keep option. AST generation is coming later.

Only the framework project is changed here. The other projects are will be changed soon.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex and Paul
Tests run: checkintests, all Mustella tests(no new failures)
Is noteworthy for integration: no.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ButtonBarButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/accordionClasses/AccordionHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/utilityClasses/CanvasLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressIndeterminateSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/DateChooserMonthArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/SliderThumbSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/DividedBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollThumbSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleModule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Form.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/TitleBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/NumericStepperDownSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PopUpButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/ProgrammaticSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/TabSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/textClasses/TextRange.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/AccordionHeaderSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/CheckBoxIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/NumericStepperUpSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/RadioButtonIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ComboBoxArrowSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeaderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/MenuBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ProgressBarSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/BusyCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/SliderTrackSkin.as</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/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ScrollTrackSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/DataGridHeaderBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SetStyleActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>

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

--- frameworks/projects/framework/src/mx/events/Request.as
+++ frameworks/projects/framework/src/mx/events/Request.as
@@ -37,9 +37,9 @@
      *  application or module. The recipient of this request should set the data property to
      *  their module factory.
      *
-     *  The message is dispatched from a module factory.
+     *  The message is dispatched from the content of a loaded module or application.
      */
-    public static const GET_FLEX_MODULE_FACTORY_REQUEST:String = "getFlexModuleFactoryRequest";
+    public static const GET_PARENT_FLEX_MODULE_FACTORY_REQUEST:String = "getParentFlexModuleFactoryRequest";

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 18674
Author:   cframpto@adobe.com
Date:     2010-11-17T20:45:54.108853Z

Log Message:
-----------
When selecting cell(s), don't allow a cell in a column which has visible=false be selected.  If a cell range is selected that spans columns that aren't visible, internally, the cell range will be broken up into regions that contain only the visible columns.  If a column becomes invisible, and either the anchorColumnIndex or the caretColumnIndex were set to that column, reinitialize to the first visible column, or -1 if there aren't any.  Fix up how the old caret position is saved so the CARET_CHANGE event will have the correct values.

QE notes: caret tests that were excluded need to be updated
Doc notes:
Bugs: SDK-28540
Reviewer: Hans, Kevin
Tests run: many cyclones
Is noteworthy for integration:

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/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridSelection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridSelectionEventKind.as</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -470,7 +470,7 @@
      *
      *
Setting caretColumnIndex to -1 means that the column index is undefined and
      *  a cell caret will not be shown.

-     *
+     *
      *  @default -1
      *
      *  @langversion 3.0
@@ -488,11 +488,10 @@
      */
     public function set caretColumnIndex(value:int):void
     {
-        _oldCaretColumnIndex = _caretColumnIndex;
-
-        if (caretColumnIndex == value || value < -1)
+        if (_caretColumnIndex == value || value < -1)
             return;

+        _oldCaretColumnIndex = _caretColumnIndex;
         _caretColumnIndex = value;

         caretChanged = true;
@@ -542,11 +541,10 @@
      */
     public function set caretRowIndex(value:int):void
     {
-        _oldCaretRowIndex = _caretRowIndex;
-
         if (_caretRowIndex == value || value < -1)
             return;

+        _oldCaretRowIndex = _caretRowIndex;
         _caretRowIndex = value;

         caretChanged = true;
@@ -3298,10 +3296,14 @@
         {
             // Validate values now.  Need to let caret be set in the same
             // update as the dp and/or columns.  -1 is a valid value.
+
+            // If adjusting the index, don't use the setter.  Need to preserve
+            // the old caret index so it can be reported in the caret change
+            // event.
             if (_dataProvider && caretRowIndex >= _dataProvider.length)
-                caretRowIndex = _dataProvider.length - 1;
+                _caretRowIndex = _dataProvider.length - 1;
             if (_columns && caretColumnIndex >= _columns.length)
-                caretColumnIndex =  _columns.length - 1;
+                _caretColumnIndex = getPreviousVisibleColumnIndex(_columns.length - 1);

             caretSelectedItem =
                 _dataProvider && _caretRowIndex >= 0 ?
@@ -3612,7 +3614,7 @@
     {
         const oldCaretRowIndex:int = caretRowIndex;
         const location:int = event.location;
-        var itemsLength:int;
+        const itemsLength:int = event.items ? event.items.length : 0;
         var newCaretRowIndex:int;

         switch (event.kind)
@@ -3625,7 +3627,6 @@
             case CollectionEventKind.REMOVE:
                 if (oldCaretRowIndex >= location)
                 {
-                    itemsLength = event.items.length;
                     if (oldCaretRowIndex < (location + itemsLength))
                         caretRowIndex = _dataProvider.length > 0 ? 0 : -1;
                     else
@@ -3637,7 +3638,6 @@
             case CollectionEventKind.MOVE:
                 {
                     const oldLocation:int = event.oldLocation;
-                    itemsLength = event.items.length;
                     if ((oldCaretRowIndex >= oldLocation) && (oldCaretRowIndex < (oldLocation + itemsLength)))
                         caretRowIndex += location - oldLocation;
                 }
@@ -3716,19 +3716,18 @@
     {
         const oldCaretColumnIndex:int = caretColumnIndex;
         const location:int = event.location;
-        var itemsLength:int;
+        const itemsLength:int = event.items ? event.items.length : 0;

         switch (event.kind)
         {
             case CollectionEventKind.ADD:
                 if (oldCaretColumnIndex >= location)
-                    caretColumnIndex += event.items.length;
+                    caretColumnIndex += itemsLength;
                 break;

             case CollectionEventKind.REMOVE:
                 if (oldCaretColumnIndex >= location)
                 {
-                    itemsLength = event.items.length;
                     if (oldCaretColumnIndex < (location + itemsLength))
                         caretColumnIndex = _columns.length > 0 ? 0 : -1;
                     else
@@ -3738,19 +3737,42 @@

             case CollectionEventKind.MOVE:
                 const oldLocation:int = event.oldLocation;
-                itemsLength = event.items.length;
                 if ((oldCaretColumnIndex >= oldLocation) && (oldCaretColumnIndex < (oldLocation + itemsLength)))
                     caretColumnIndex += location - oldLocation;
                 break;

             case CollectionEventKind.REPLACE:
+                break;
+
             case CollectionEventKind.UPDATE:
+                // column may have changed visiblity which matters if cell
+                // selection mode.
+                var pe:PropertyChangeEvent;
+
+                if (selectionMode == GridSelectionMode.SINGLE_CELL ||
+                    selectionMode == GridSelectionMode.MULTIPLE_CELLS)
+                {
+                    for (var i:int = 0; i < itemsLength; i++)
+                    {
+                        pe = event.items[i] as PropertyChangeEvent;
+                        if (pe && pe.property == "visible")
+                        {
+                            const column:GridColumn = pe.source as GridColumn;
+                            if (!column || column.visible)
+                                continue;
+
+                            if (column.columnIndex == caretColumnIndex)
+                                initializeCaretPosition(true);  // column only
+                            if (column.columnIndex == anchorColumnIndex)
+                                initializeAnchorPosition(true);  // column only
+                        }
+                    }
+                }
                 break;

             case CollectionEventKind.REFRESH:
             case CollectionEventKind.RESET:
-                // maintain row position
-                caretColumnIndex = _columns && _columns.length > 0 ? 0 : -1;
+                initializeCaretPosition(true);  // column only
                 horizontalScrollPosition = 0;
                 break;
         }
@@ -3853,8 +3875,6 @@
      */
     private function columns_collectionChangeHandler(event:CollectionEvent):void
     {
-        // TBD - need to double-check all of these and perhaps move it elsewhere
-
         var column:GridColumn;
         var columnIndex:int = event.location;
         var i:int;
@@ -3913,25 +3933,6 @@

             case CollectionEventKind.UPDATE:
             {
-                // column may have changed visiblity
-                const itemsLength:int = event.items.length;
-                var itemsLeft:int = itemsLength;
-                var pcEvent:PropertyChangeEvent;
-
-                for (i = 0; i < itemsLength; i++)
-                {
-                    pcEvent = event.items[i] as PropertyChangeEvent;
-                    if (pcEvent && pcEvent.property == "visible")
-                    {
-                        columns_visibleChangedHandler(pcEvent);
-                        itemsLeft--;
-                    }
-                }
-
-                // return if all were visible property changes
-                if (itemsLeft == 0)
-                    return;
-
                 break;
             }

@@ -3980,9 +3981,14 @@
             }
         }

-        gridDimensions.columnsCollectionChanged(event);
-        if (dataProvider)
-            gridDimensions.rowCount = dataProvider.length;
+        if (gridDimensions)
+        {
+            gridDimensions.columnsCollectionChanged(event);
+
+            // ToDo(klin): Manipulating columns should not change the rowCount.
+            if (dataProvider)
+                gridDimensions.rowCount = dataProvider.length;
+        }

         if (gridLayout)
             gridLayout.columnsCollectionChanged(event);
@@ -3999,48 +4005,6 @@
         invalidateSize();
         invalidateDisplayList();
     }
-
-    /**
-     *  @private
-     */
-    private function columns_visibleChangedHandler(event:PropertyChangeEvent):void
-    {
-        const column:GridColumn = event.source as GridColumn;
-        const columnIndex:int = columns.getItemIndex(column);
-        if (!column || columnIndex == -1)
-            return;
-
-        // Fix up gridDimensions
-        const gridDimensions:GridDimensions = this.gridDimensions;
-        if (gridDimensions)
-        {
-            gridDimensions.clearColumns(columnIndex, 1);
-
-            // column.visible==true columns need to have their typical sizes and
-            // actual column width updated, while column.visible==false column
-            // have their typical sizes updated to 0 and actual column width
-            // set to NaN.
-            if (column.visible)
-            {
-                gridDimensions.setTypicalCellWidth(columnIndex, NaN);
-                gridDimensions.setTypicalCellHeight(columnIndex, NaN);
-                if (!isNaN(column.width))
-                    gridDimensions.setColumnWidth(columnIndex, column.width);
-            }
-            else
-            {
-                gridDimensions.setTypicalCellWidth(columnIndex, 0);
-                gridDimensions.setTypicalCellHeight(columnIndex, 0);
-                gridDimensions.setColumnWidth(columnIndex, NaN);
-            }
-        }
-
-        // Clear out gridLayout
-        gridLayout.clearVirtualLayoutCache();
-
-        invalidateSize();
-        invalidateDisplayList();
-    }

     //--------------------------------------------------------------------------
     //
@@ -4084,7 +4048,7 @@
      *  To find the first GridColumn.visible==true column index, use
      *  getNextVisibleColumnIndex(-1).
      */
-    mx_internal function getNextVisibleColumnIndex(index:int):int
+    mx_internal function getNextVisibleColumnIndex(index:int=-1):int
     {
         if (index < -1)
             return -1;
@@ -4129,19 +4093,25 @@
     /**
      *  @private
      */
-    private function initializeAnchorPosition():void
-    {
-        anchorRowIndex = 0;
-        anchorColumnIndex = 0;
-    }
-
-    /**
-     *  @private
-     */
-    private function initializeCaretPosition():void
-    {
-        caretRowIndex = _dataProvider && _dataProvider.length > 0 ? 0 : -1;
-        caretColumnIndex = _columns && _columns.length > 0 ? 0 : -1;
+    private function initializeAnchorPosition(columnOnly:Boolean=false):void
+    {
+        if (!columnOnly)
+            anchorRowIndex = _dataProvider && _dataProvider.length > 0 ? 0 : -1;
+
+        // First visible column, or -1, if there are no columns or none are visible.
+        anchorColumnIndex = getNextVisibleColumnIndex();
+    }
+
+    /**
+     *  @private
+     */
+    private function initializeCaretPosition(columnOnly:Boolean=false):void
+    {
+        if (!columnOnly)
+            caretRowIndex = _dataProvider && _dataProvider.length > 0 ? 0 : -1;
+
+        // First visible column, or -1, if there are no columns or none are visible.
+        caretColumnIndex = getNextVisibleColumnIndex();
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 7347
Author:   dsubrama@adobe.com
Date:     2009-05-27T22:52:38.511485Z

Log Message:
-----------
ASDoc tweaks: https://bugs.adobe.com/jira/browse/SDK-21241

Checkintests: Pass

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Path.as

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

--- frameworks/projects/spark/src/spark/primitives/Path.as
+++ frameworks/projects/spark/src/spark/primitives/Path.as
@@ -106,7 +106,13 @@
     private var graphicsPathChanged:Boolean = true;

     /**
-     *  Documentation is not currently available.
+     *  A GraphicsPath object that contains the drawing
+     *  commands to draw this Path.
+     *
+     *  The data commands expressed in a Path's data
+     *  property are translated into drawing commands and
+     *  coordinate parameters for those commands, and then
+     *  drawn to screen.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -805,6 +811,31 @@
      	g.drawPath(graphicsPath.commands, graphicsPath.data, winding);
     }

+    /**
+     *  Workhorse method that iterates through the segments
+     *  array and draws each path egment based on its control points.
+     *
+     *  Segments are drawn from the x and y position of the path.
+     *  Additionally, segments are drawn by taking into account the scale
+     *  applied to the path.
+     *
+     *  @param tx A Number representing the x position of where this
+     *  path segment should be drawn
+     *
+     *  @param ty A Number representing the y position of where this
+     *  path segment should be drawn
+     *
+     *  @param sx A Number representing the scaleX at which to draw
+     *  this path segment
+     *
+     *  @param sy A Number representing the scaleY at which to draw this
+     *  path segment
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     protected function renderGraphicsAtScale(tx:Number,ty:Number,sx:Number,sy:Number):void
     {
         graphicsPath.commands = null;
@@ -834,6 +865,7 @@
             }
         }
     }
+
     /**
      * @inheritDoc
      *
@@ -859,7 +891,13 @@
     //--------------------------------------------------------------------------

     /**
-     * @inheritDoc
+     *  Individual path segments notify the host Path that
+     *  the segment has changed in some way by invoking
+     *  this method. When a segment has changed, the
+     *  bounds of the Path are re-calculated and the Path
+     *  will be re-renderered.
+     *
+     *  @param e The PathSegment that has changed
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -872,6 +910,9 @@
         boundsChanged();
     }

+    /**
+     *   @inheritDoc
+     */
     override protected function notifyElementLayerChanged():void
     {
         graphicsPathChanged = true;


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

--- frameworks/projects/charts/src/mx/charts/chartClasses/IStackable2.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/IStackable2.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: 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@1258769 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/collections/errors/SortError.as
+++ frameworks/projects/framework/src/mx/collections/errors/SortError.as
@@ -0,0 +1,40 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 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.collections.errors
+{
+
+/**
+ *  This error is thrown when a Sort class is not configured properly;
+ *  for example, if the find criteria are invalid.
+ */
+public class SortError extends Error
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+	 *
+	 *  @param message A message providing information about the error cause.
+     */
+    public function SortError(message:String)
+    {
+        super(message);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17425
Author:   rfrishbe@adobe.com
Date:     2010-08-20T17:29:56.448841Z

Log Message:
-----------
Pretty basic refactoring for PARB (though it is a lot of files).  Renamed GestureCaptureEvent/GestureCaptureReason (these were previously TouchScrollEvent) to TouchInteractionEvent/TouchInteractionReason.  inputMode has been renamed to interactionMode and has a new enumeration class, mx.core.InteractionMode.

There's on non-PARB change that was made was in List and mobiletheme/defaults.css. I found a bug in that the item renderer wasn't highlighting on mousedown anymore. There were two issues at play. Firstly the touchDelay was set to 100 ms in the Scroller only, so I added it to List and added a FIXME comment to myself figuring out if the code in List should use scroller.getStyle("touchDelay") or itemRenderer.getStyle("touchDelay") instead of getStyle("touchDelay"). Also, I found out that the code doesn't deal with touchDelay=0 very well. Since we're planning on working on this code anyways (and possibly moving it in to ItemRenderer itself with a new downstate), I just put in a hack with a FIXME to handle this case for now.

QE notes: None
Doc notes: None
Bugs: -
Reviewer: Jason SJ, Chiedo
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/InteractionMode.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureReason.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="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/ScrollerLayout.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/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureEvent.as" copyfrom-rev="17393" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchInteractionEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureReason.as" copyfrom-rev="17393" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchInteractionReason.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>

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

--- frameworks/projects/framework/src/mx/events/TouchInteractionEvent.as
+++ frameworks/projects/framework/src/mx/events/TouchInteractionEvent.as
@@ -16,7 +16,7 @@
 import flash.geom.Point;

 /**
- *  GestureCaptureEvents are used to coordinate gestures recognition and response
+ *  TouchInteractionEvents are used to coordinate touch intraction and response
  *  among different components.
  *
  *  @langversion 3.0
@@ -24,7 +24,7 @@
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
-public class GestureCaptureEvent extends Event
+public class TouchInteractionEvent extends Event
 {

     //--------------------------------------------------------------------------
@@ -34,8 +34,8 @@
     //--------------------------------------------------------------------------

     /**
-     *  The GestureCaptureEvent.GESTURE_CAPTURE_STARTING constant defines the value of the
-     *  type property of the event object for a gestureCaptureStarting event.
+     *  The TouchInteractionEvent.TOUCH_INTERACTION_STARTING constant defines the value of the
+     *  type property of the event object for a touchInteractionStarting event.
      *
      *
The properties of the event object have the following values:

      *

@@ -46,28 +46,28 @@
      *       event listener that handles the event. For example, if you use
      *       myButton.addEventListener() to register an event listener,
      *       myButton is the value of the currentTarget.

-     *
reason	The reason for the gesture capture event.  See
-     *       mx.events.GestureCaptureReason.

-     *
relatedObject	The object associated with this gesture capture event.

+     *
reason	The reason for the touch interaction event.  See
+     *       mx.events.TouchInteractionReason.

+     *
relatedObject	The object associated with this touch interaction event.

      *
target	The Object that dispatched the event;
      *       it is not always the Object listening for the event.
      *       Use the currentTarget property to always access the
      *       Object listening for the event.

      *

      *
-     *  @eventType gestureCaptureStarting
-     *  @see mx.events.GestureCaptureReason
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public static const GESTURE_CAPTURE_STARTING:String = "gestureCaptureStarting";
-
-    /**
-     *  The GestureCaptureEvent.GESTURE_CAPTURE_START constant defines the value of the
-     *  type property of the event object for a gestureCaptureStart event.
+     *  @eventType touchInteractionStarting
+     *  @see mx.events.TouchInteractionReason
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public static const TOUCH_INTERACTION_STARTING:String = "touchInteractionStarting";
+
+    /**
+     *  The TouchInteractionEvent.TOUCH_INTERACTION_START constant defines the value of the
+     *  type property of the event object for a touchInteractionStart event.
      *
      *
The properties of the event object have the following values:

      *

@@ -78,28 +78,28 @@
      *       event listener that handles the event. For example, if you use
      *       myButton.addEventListener() to register an event listener,
      *       myButton is the value of the currentTarget.

-     *
reason	The reason for the gesture capture event.  See
-     *       mx.events.GestureCaptureReason.

-     *
relatedObject	The object associated with this gesture capture event.

+     *
reason	The reason for the touch interaction event.  See
+     *       mx.events.TouchInteractionReason.

+     *
relatedObject	The object associated with this touch interaction event.

      *
target	The Object that dispatched the event;
      *       it is not always the Object listening for the event.
      *       Use the currentTarget property to always access the
      *       Object listening for the event.

      *

      *
-     *  @eventType gestureCaptureStart
-     *  @see mx.events.GestureCaptureReason
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public static const GESTURE_CAPTURE_START:String = "gestureCaptureStart";
-
-    /**
-     *  The GestureCaptureEvent.GESTURE_CAPTURE_END constant defines the value of the
-     *  type property of the event object for a gestureCaptureEnd event.
+     *  @eventType touchInteractionStart
+     *  @see mx.events.TouchInteractionReason
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public static const TOUCH_INTERACTION_START:String = "touchInteractionStart";
+
+    /**
+     *  The TouchInteractionEvent.TOUCH_INTERACTION_END constant defines the value of the
+     *  type property of the event object for a touchInteractionEnd event.
      *
      *
The properties of the event object have the following values:

      *

@@ -110,24 +110,24 @@
      *       event listener that handles the event. For example, if you use
      *       myButton.addEventListener() to register an event listener,
      *       myButton is the value of the currentTarget.

-     *
reason	The reason for the gesture capture event.  See
-     *       mx.events.GestureCaptureReason.

-     *
relatedObject	The object associated with this gesture capture event.

+     *
reason	The reason for the touch interaction event.  See
+     *       mx.events.TouchInteractionReason.

+     *
relatedObject	The object associated with this touch interaction event.

      *
target	The Object that dispatched the event;
      *       it is not always the Object listening for the event.
      *       Use the currentTarget property to always access the
      *       Object listening for the event.

      *

      *
-     *  @eventType gestureCaptureEnd
-     *  @see mx.events.GestureCaptureReason
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public static const GESTURE_CAPTURE_END:String = "gestureCaptureEnd";
+     *  @eventType touchInteractionEnd
+     *  @see mx.events.TouchInteractionReason
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public static const TOUCH_INTERACTION_END:String = "touchInteractionEnd";

     //--------------------------------------------------------------------------
     //
@@ -151,7 +151,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function GestureCaptureEvent(type:String, bubbles:Boolean = false,
+    public function TouchInteractionEvent(type:String, bubbles:Boolean = false,
                                         cancelable:Boolean = false)
     {
         super(type, bubbles, cancelable);
@@ -170,7 +170,7 @@
     /**
      *  The reason for this geture capture event.
      *
-     *  @see mx.events.GestureCaptureReason
+     *  @see mx.events.TouchInteractionReason
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -184,7 +184,7 @@
     //----------------------------------

     /**
-     *  The object attempting to capture this user gesture.
+     *  The object attempting to capture this touch interaction.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -204,7 +204,7 @@
      */
     override public function clone():Event
     {
-        var clonedEvent:GestureCaptureEvent = new GestureCaptureEvent(type, bubbles, cancelable);
+        var clonedEvent:TouchInteractionEvent = new TouchInteractionEvent(type, bubbles, cancelable);

         clonedEvent.reason = reason;
         clonedEvent.relatedObject = relatedObject;


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

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


NORMAL のサウンド再生時にフェードインの情報がが適用されていなかったのを修正

--- project/SoundConductor/src/jp/hiiragi/managers/soundConductor/PlayingDataForNormalSound.as
+++ project/SoundConductor/src/jp/hiiragi/managers/soundConductor/PlayingDataForNormalSound.as
@@ -223,6 +223,12 @@
 			_soundChannel = _sound.play(startPosition, 0, new SoundTransform(1, pan));
 			_soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundCompleteHandler);

+			var initVolume:Number = volume;
+			if (fadeInTimeByMS > 0)
+			{
+				initVolume = 0;
+			}
+
 			// コントローラ設定
 			var groupVolumeController:ParameterController;
 			if (soundGroupController != null)
@@ -241,19 +247,18 @@
 			{
 				setVolumeController(new SoundParameterController(SoundParameterType.VOLUME, _soundChannel, masterVolumeController, groupVolumeController));
 				setPanController(new SoundParameterController(SoundParameterType.PAN, _soundChannel));
-
-				if (volume == 1)
-				{
-					// 音は最大音量のままなので、マスターボリュームとグループボリュームを適用させるのみにする
-					SoundParameterController(volumeController).validateNow();
-				}
-				else
-				{
-					// 音の変更があるので、通常通りセットする
-					volumeController.setValue(volume);
-				}
-			}
-
+			}
+
+			if (initVolume == 1)
+			{
+				// 音は最大音量のままなので、マスターボリュームとグループボリュームを適用させるのみにする
+				SoundParameterController(volumeController).validateNow();
+			}
+			else
+			{
+				// 音の変更があるので、通常通りセットする
+				volumeController.setValue(volume, fadeInTimeByMS, fadeInEasing);
+			}

 			var enabled:Boolean = validateEnabled();