Transferred from the Adobe Open Source Subversion Repository

Revision: 19859
Author:   deeptika@adobe.com
Date:     2011-01-21T05:08:25.901634Z

Log Message:
-----------
Fixing NPE in case of null contentGroup

QE notes:
Doc notes:
Bugs: FLEXENT-1337 (SkinnableContainerSkin with optional contentGroup causes Automation Exception)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkApplicationAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkSkinnableContainerAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkPanelAutomationImpl.as</path>

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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkPanelAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkPanelAutomationImpl.as
@@ -11,211 +11,213 @@

 package spark.automation.delegates.components
 {
-    import flash.display.DisplayObject;
-
-    import mx.automation.Automation;
-    import mx.automation.IAutomationObject;
-    import mx.core.mx_internal;
-
-    import spark.components.Panel;
-    import spark.core.IViewport;
-
-    use namespace mx_internal;
-
-
-
-    [Mixin]
-    /**
-     *
-     *  Defines the methods and properties required to perform instrumentation for the
-     *  Panel class.
-     *
-     *  @see spark.components.Panel
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     *
-     */
-    public class SparkPanelAutomationImpl extends SparkSkinnableContainerAutomationImpl
-    {
-        include "../../../core/Version.as";
-        //--------------------------------------------------------------------------
-        //
-        //  Class methods
-        //
-        //--------------------------------------------------------------------------
-
-
-        /**
-         *  Registers the delegate class for a component class with automation manager.
-         *
-         *  @param root The SystemManger of the application.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.5
-         *  @productversion Flex 4
-         */
-        public static function init(root:DisplayObject):void
-        {
-            Automation.registerDelegateClass(spark.components.Panel, SparkPanelAutomationImpl);
-        }
-
-
-        //--------------------------------------------------------------------------
-        //
-        //  Constructor
-        //
-        //--------------------------------------------------------------------------
-
-        /**
-         *  Constructor.
-         * @param obj Panel object to be automated.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.5
-         *  @productversion Flex 4
-         */
-        public function SparkPanelAutomationImpl(obj:spark.components.Panel)
-        {
-            super(obj);
-            recordClick = true;
-        }
-
-
-        /**
-         *  @private
-         *  storage for the owner component
-         */
-        protected function get sparkPanel():spark.components.Panel
-        {
-            return uiComponent as spark.components.Panel;
-        }
-
-        //--------------------------------------------------------------------------
-        //
-        //  Overridden properties
-        //
-        //--------------------------------------------------------------------------
-
-        //----------------------------------
-        //  automationName
-        //----------------------------------
-
-        /**
-         *  @private
-         */
-        override public function get automationName():String
-        {
-            return sparkPanel.title || super.automationName;
-        }
-
-        /**
-         *  @private
-         */
-        override public function get automationValue():Array
-        {
-            return [ sparkPanel.title ];
-        }
-
-        /**
-         *  @private
-         */
-        override public function getAutomationChildAt(index:int):IAutomationObject
-        {
-
-            var controlBarChildren:Array = getControlBarChildren();
-            if(index < controlBarChildren.length)
-                return  controlBarChildren[index] as IAutomationObject;
-            var numChildren:int = sparkPanel.contentGroup.numChildren;
-            numChildren += controlBarChildren;
-            if(index < numChildren )
-                return   sparkPanel.contentGroup.getChildAt(index) as IAutomationObject;
-            else
-            {
-                index = index - numChildren;
-                var scrollBars:Array = getScrollBars(sparkPanel,sparkPanel.contentGroup);
-                if(scrollBars && index < scrollBars.length)
-                    return scrollBars[index];
-            }
-            return null;
-        }
-
-
-        /**
-         *  @private
-         */
-        override public function getAutomationChildren():Array
-        {
-
-            var childArray:Array = new Array();
-            var n:int;
-            var i:int;
-
-            //Add the children in the Control Bar first
-            var tempChildren:Array  = getControlBarChildren();
-            if(tempChildren)
-            {
-                n = tempChildren.length;
-                for ( i = 0; i < n ; i++)
-                {
-                    childArray.push(tempChildren[i] as IAutomationObject);
-                }
-            }
-
-            n = sparkPanel.contentGroup.numChildren;
-
-            for (i = 0; i<n ; i++)
-            {
-                var obj:Object = sparkPanel.contentGroup.getChildAt(i);
-                // here if are getting scrollers, we need to add the viewport's children as the actual children
-                // instead of the scroller
-                if(obj is spark.components.Scroller)
-                {
-                    var scroller:spark.components.Scroller = obj as spark.components.Scroller;
-                    var viewPort:IViewport =  scroller.viewport;
-                    if(viewPort is IAutomationObject)
-                        childArray.push(viewPort);
-                    if(scroller.horizontalScrollBar)
-                        childArray.push(scroller.horizontalScrollBar);
-                    if(scroller.verticalScrollBar)
-                        childArray.push(scroller.verticalScrollBar);
-                }
-                else
-                    childArray.push(obj as IAutomationObject);
-            }
-            var scrollBars:Array = getScrollBars(null,sparkPanel.contentGroup);
-            n = scrollBars? scrollBars.length : 0;
-
-            for ( i=0; i<n ; i++)
-            {
-                childArray.push(scrollBars[i] as IAutomationObject);
-            }
-
-
-            return childArray;
-        }
-
-        /**
-         *  @private
-         */
-        private function getControlBarChildren():Array
-        {
-            var childrenList:Array = new Array();
-            if(sparkPanel.controlBarGroup != null)
-            {
-                var n:int = sparkPanel.controlBarGroup.numChildren;
-                for (var i:int = 0; i < n ; i++)
-                {
-                    var obj:Object = sparkPanel.controlBarGroup.getChildAt(i);
-                    childrenList.push(obj);
-                }
-            }
-            return childrenList;
-        }
-    }
-
+	import flash.display.DisplayObject;
+
+	import mx.automation.Automation;
+	import mx.automation.IAutomationObject;
+	import mx.core.mx_internal;
+
+	import spark.components.Panel;
+	import spark.core.IViewport;
+
+	use namespace mx_internal;
+
+
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines the methods and properties required to perform instrumentation for the
+	 *  Panel class.
+	 *
+	 *  @see spark.components.Panel
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
+	 *
+	 */
+	public class SparkPanelAutomationImpl extends SparkSkinnableContainerAutomationImpl
+	{
+		include "../../../core/Version.as";
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(spark.components.Panel, SparkPanelAutomationImpl);
+		}
+
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 * @param obj Panel object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.5
+		 *  @productversion Flex 4
+		 */
+		public function SparkPanelAutomationImpl(obj:spark.components.Panel)
+		{
+			super(obj);
+			recordClick = true;
+		}
+
+
+		/**
+		 *  @private
+		 *  storage for the owner component
+		 */
+		protected function get sparkPanel():spark.components.Panel
+		{
+			return uiComponent as spark.components.Panel;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden properties
+		//
+		//--------------------------------------------------------------------------
+
+		//----------------------------------
+		//  automationName
+		//----------------------------------
+
+		/**
+		 *  @private
+		 */
+		override public function get automationName():String
+		{
+			return sparkPanel.title || super.automationName;
+		}
+
+		/**
+		 *  @private
+		 */
+		override public function get automationValue():Array
+		{
+			return [ sparkPanel.title ];
+		}
+
+		/**
+		 *  @private
+		 */
+		override public function getAutomationChildAt(index:int):IAutomationObject
+		{
+
+			var controlBarChildren:Array = getControlBarChildren();
+			if(index < controlBarChildren.length)
+				return  controlBarChildren[index] as IAutomationObject;
+			var numChildren:int = sparkPanel.contentGroup.numChildren;
+			numChildren += controlBarChildren;
+			if(index < numChildren )
+				return   sparkPanel.contentGroup.getChildAt(index) as IAutomationObject;
+			else
+			{
+				index = index - numChildren;
+				var scrollBars:Array = getScrollBars(sparkPanel,sparkPanel.contentGroup);
+				if(scrollBars && index < scrollBars.length)
+					return scrollBars[index];
+			}
+			return null;
+		}
+
+
+		/**
+		 *  @private
+		 */
+		override public function getAutomationChildren():Array
+		{
+
+			var childArray:Array = new Array();
+			var n:int;
+			var i:int;
+
+			//Add the children in the Control Bar first
+			var tempChildren:Array  = getControlBarChildren();
+			if(tempChildren)
+			{
+				n = tempChildren.length;
+				for ( i = 0; i < n ; i++)
+				{
+					childArray.push(tempChildren[i] as IAutomationObject);
+				}
+			}
+			if(sparkPanel.contentGroup)
+			{
+				n = sparkPanel.contentGroup.numChildren;
+
+				for (i = 0; i<n ; i++)
+				{
+					var obj:Object = sparkPanel.contentGroup.getChildAt(i);
+					// here if are getting scrollers, we need to add the viewport's children as the actual children
+					// instead of the scroller
+					if(obj is spark.components.Scroller)
+					{
+						var scroller:spark.components.Scroller = obj as spark.components.Scroller;
+						var viewPort:IViewport =  scroller.viewport;
+						if(viewPort is IAutomationObject)
+							childArray.push(viewPort);
+						if(scroller.horizontalScrollBar)
+							childArray.push(scroller.horizontalScrollBar);
+						if(scroller.verticalScrollBar)
+							childArray.push(scroller.verticalScrollBar);
+					}
+					else
+						childArray.push(obj as IAutomationObject);
+				}
+			}
+			var scrollBars:Array = getScrollBars(null,sparkPanel.contentGroup);
+			n = scrollBars? scrollBars.length : 0;
+
+			for ( i=0; i<n ; i++)
+			{
+				childArray.push(scrollBars[i] as IAutomationObject);
+			}
+
+
+			return childArray;
+		}
+
+		/**
+		 *  @private
+		 */
+		private function getControlBarChildren():Array
+		{
+			var childrenList:Array = new Array();
+			if(sparkPanel.controlBarGroup != null)
+			{
+				var n:int = sparkPanel.controlBarGroup.numChildren;
+				for (var i:int = 0; i < n ; i++)
+				{
+					var obj:Object = sparkPanel.controlBarGroup.getChildAt(i);
+					childrenList.push(obj);
+				}
+			}
+			return childrenList;
+		}
+	}
+
 }


Set valid layer copyright.

Set valid layer copyright.

--- src/com/esri/viewer/managers/LayerCreator.as
+++ src/com/esri/viewer/managers/LayerCreator.as
@@ -112,13 +112,16 @@
     {
         var tiledLayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(layerCreationProperties.url);
         tiledLayer.alpha = layerCreationProperties.alpha;
-        tiledLayer.copyright = layerCreationProperties.copyright;
         tiledLayer.id = layerCreationProperties.label;
         tiledLayer.name = layerCreationProperties.label;
         tiledLayer.showInLegend = layerCreationProperties.showInLegend;
         tiledLayer.token = layerCreationProperties.token;
         tiledLayer.visible = layerCreationProperties.visible;

+        if (layerCreationProperties.copyright != null)
+        {
+            tiledLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.showInLegend
             && layerCreationProperties.showInLegendHiddenLayers)
         {
@@ -151,7 +154,6 @@
     {
         var dynLayer:ArcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(layerCreationProperties.url);
         dynLayer.alpha = layerCreationProperties.alpha;
-        dynLayer.copyright = layerCreationProperties.copyright;
         dynLayer.id = layerCreationProperties.label;
         dynLayer.gdbVersion = layerCreationProperties.gdbVersion;
         dynLayer.name = layerCreationProperties.label;
@@ -161,6 +163,10 @@
         dynLayer.useMapTime = layerCreationProperties.useMapTime;
         dynLayer.disableClientCaching = layerCreationProperties.disableClientCaching;

+        if (layerCreationProperties.copyright != null)
+        {
+            dynLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.showInLegend
             && layerCreationProperties.showInLegendHiddenLayers)
         {
@@ -211,7 +217,6 @@
         var featureLayer:FeatureLayer = new FeatureLayer(layerCreationProperties.url);

         featureLayer.alpha = layerCreationProperties.alpha;
-        featureLayer.copyright = layerCreationProperties.copyright;
         featureLayer.id = layerCreationProperties.label;
         featureLayer.gdbVersion = layerCreationProperties.gdbVersion;
         featureLayer.name = layerCreationProperties.label;
@@ -223,6 +228,10 @@
         featureLayer.clusterer = layerCreationProperties.clusterer;
         featureLayer.disableClientCaching = layerCreationProperties.disableClientCaching;
         featureLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            featureLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.renderer)
         {
             featureLayer.renderer = layerCreationProperties.renderer;
@@ -272,13 +281,16 @@
     private static function createBingLayer(layerCreationProperties:LayerCreationProperties):VETiledLayer
     {
         var veTiledLayer:VETiledLayer = new VETiledLayer();
-        veTiledLayer.copyright = layerCreationProperties.copyright;
         veTiledLayer.id = layerCreationProperties.label;
         veTiledLayer.name = layerCreationProperties.label;
         veTiledLayer.key = layerCreationProperties.bingMapKey;
         veTiledLayer.visible = layerCreationProperties.visible;
         veTiledLayer.alpha = layerCreationProperties.alpha;
         veTiledLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            veTiledLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.style)
         {
             veTiledLayer.mapStyle = layerCreationProperties.style;
@@ -309,7 +321,6 @@
     private static function createImageLayer(layerCreationProperties:LayerCreationProperties):ArcGISImageServiceLayer
     {
         var imgLayer:ArcGISImageServiceLayer = new ArcGISImageServiceLayer(layerCreationProperties.url);
-        imgLayer.copyright = layerCreationProperties.copyright;
         imgLayer.id = layerCreationProperties.label;
         imgLayer.name = layerCreationProperties.label;
         imgLayer.alpha = layerCreationProperties.alpha;
@@ -319,6 +330,10 @@
         imgLayer.useMapTime = layerCreationProperties.useMapTime;
         imgLayer.disableClientCaching = layerCreationProperties.disableClientCaching;
         imgLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            imgLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.imageFormat)
         {
             imgLayer.imageFormat = layerCreationProperties.imageFormat;
@@ -350,13 +365,16 @@
     {
         var arcimsLayer:ArcIMSMapServiceLayer = new ArcIMSMapServiceLayer();
         arcimsLayer.alpha = layerCreationProperties.alpha;
-        arcimsLayer.copyright = layerCreationProperties.copyright;
         arcimsLayer.id = layerCreationProperties.label;
         arcimsLayer.name = layerCreationProperties.label;
         arcimsLayer.visible = layerCreationProperties.visible;
         arcimsLayer.serviceHost = layerCreationProperties.serviceHost;
         arcimsLayer.serviceName = layerCreationProperties.serviceName;
         arcimsLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            arcimsLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.autoRefresh > 0)
         {
             setInterval(arcimsLayer.refresh, layerCreationProperties.autoRefresh * 1000);
@@ -394,12 +412,15 @@
     {
         var wmsLayer:WMSLayer = new WMSLayer(layerCreationProperties.url);
         wmsLayer.alpha = layerCreationProperties.alpha;
-        wmsLayer.copyright = layerCreationProperties.copyright;
         wmsLayer.id = layerCreationProperties.label;
         wmsLayer.name = layerCreationProperties.label;
         wmsLayer.visible = layerCreationProperties.visible;
         wmsLayer.disableClientCaching = layerCreationProperties.disableClientCaching;
         wmsLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            wmsLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.wkid)
         {
             wmsLayer.spatialReference = new SpatialReference(layerCreationProperties.wkid);
@@ -457,11 +478,14 @@
     {
         var wmtsLayer:WMTSLayer = new WMTSLayer(layerCreationProperties.url);
         wmtsLayer.alpha = layerCreationProperties.alpha;
-        wmtsLayer.copyright = layerCreationProperties.copyright;
         wmtsLayer.id = layerCreationProperties.label;
         wmtsLayer.name = layerCreationProperties.label;
         wmtsLayer.visible = layerCreationProperties.visible;
         wmtsLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            wmtsLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.imageFormat)
         {
             wmtsLayer.imageFormat = layerCreationProperties.imageFormat;
@@ -500,12 +524,15 @@
     private static function createOSMLayer(layerCreationProperties:LayerCreationProperties):OpenStreetMapLayer
     {
         var osmLayer:OpenStreetMapLayer = new OpenStreetMapLayer();
-        osmLayer.copyright = layerCreationProperties.copyright;
         osmLayer.alpha = layerCreationProperties.alpha;
         osmLayer.id = layerCreationProperties.label;
         osmLayer.name = layerCreationProperties.label;
         osmLayer.visible = layerCreationProperties.visible;
         osmLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            osmLayer.copyright = layerCreationProperties.copyright;
+        }
         if (!isNaN(layerCreationProperties.minScale))
         {
             osmLayer.minScale = layerCreationProperties.minScale;
@@ -522,11 +549,14 @@
         var kmlLayer:KMLLayer = new KMLLayer(layerCreationProperties.url);

         kmlLayer.alpha = layerCreationProperties.alpha;
-        kmlLayer.copyright = layerCreationProperties.copyright;
         kmlLayer.id = layerCreationProperties.label;
         kmlLayer.name = layerCreationProperties.label;
         kmlLayer.disableClientCaching = layerCreationProperties.disableClientCaching;
         kmlLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            kmlLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.serviceURL)
         {
             kmlLayer.serviceURL = layerCreationProperties.serviceURL;
@@ -548,12 +578,15 @@
         var csvLayer:CSVLayer = new CSVLayer(layerCreationProperties.url);

         csvLayer.alpha = layerCreationProperties.alpha;
-        csvLayer.copyright = layerCreationProperties.copyright;
         csvLayer.id = layerCreationProperties.label;
         csvLayer.name = layerCreationProperties.label;
         csvLayer.latitudeFieldName = layerCreationProperties.latitudeFieldName;
         csvLayer.longitudeFieldName = layerCreationProperties.longitudeFieldName;
         csvLayer.showInLegend = layerCreationProperties.showInLegend;
+        if (layerCreationProperties.copyright != null)
+        {
+            csvLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.renderer)
         {
             csvLayer.renderer = layerCreationProperties.renderer;
@@ -597,13 +630,16 @@
         var geoRSSLayer:GeoRSSLayer = new GeoRSSLayer(layerCreationProperties.url);

         geoRSSLayer.alpha = layerCreationProperties.alpha;
-        geoRSSLayer.copyright = layerCreationProperties.copyright;
         geoRSSLayer.id = layerCreationProperties.label;
         geoRSSLayer.name = layerCreationProperties.label;
         geoRSSLayer.disableClientCaching = layerCreationProperties.disableClientCaching;
         geoRSSLayer.showInLegend = layerCreationProperties.showInLegend;
         geoRSSLayer.visible = layerCreationProperties.visible;

+        if (layerCreationProperties.copyright != null)
+        {
+            geoRSSLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.serviceURL)
         {
             geoRSSLayer.serviceURL = layerCreationProperties.serviceURL;
@@ -640,9 +676,12 @@
         webTiledLayer.id = layerCreationProperties.label;
         webTiledLayer.name = layerCreationProperties.label;
         webTiledLayer.visible = layerCreationProperties.visible;
-        webTiledLayer.copyright = layerCreationProperties.copyright;
         webTiledLayer.showInLegend = layerCreationProperties.showInLegend;

+        if (layerCreationProperties.copyright != null)
+        {
+            webTiledLayer.copyright = layerCreationProperties.copyright;
+        }
         if (layerCreationProperties.displayLevels)
         {
             webTiledLayer.displayLevels = layerCreationProperties.displayLevels.split(",");


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

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

 package mx.controls.treeClasses
 {


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

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

 package mx.effects.effectClasses
 {


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

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

 package mx.containers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5330
Author:   clucier@adobe.com
Date:     2009-03-16T19:24:32.723438Z

Log Message:
-----------
Tweaks to default button support. CheckBox, RadioButton, and ComboBox now all fire default button on ENTER when appropriate. Also addressed an initial focus bug.
Bugs: SDK-19039, SDK-19853.
QE Notes: None
Doc Notes: None
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CheckBox.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ComboBase.as
+++ frameworks/projects/mx/src/mx/controls/ComboBase.as
@@ -1467,10 +1467,6 @@
     override protected function focusInHandler(event:FocusEvent):void
     {
         super.focusInHandler(event);
-
-        var fm:IFocusManager = focusManager;
-        if (fm)
-            fm.defaultButtonEnabled = false;
     }

     /**


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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTabBarAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTabBarAutomationImpl.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.
 //
 ////////////////////////////////////////////////////////////////////////////////


fixed error with named local function

fixed error with named local function

--- WeaveJS/src/weavejs/data/column/EquationColumn.as
+++ WeaveJS/src/weavejs/data/column/EquationColumn.as
@@ -228,7 +228,7 @@
 				if (filterByKeyType.value && (_allKeys.length > 0))
 				{
 					var keyType:String = this.getMetadata(ColumnMetadata.KEY_TYPE);
-					_allKeys = _allKeys.filter(function filter(key:IQualifiedKey, i:int, a:Array):Boolean {
+					_allKeys = _allKeys.filter(function(key:IQualifiedKey, i:int, a:Array):Boolean {
 						return key.keyType == keyType;
 					});
 				}


Helpful utility function to estimate end time of stream.

--- HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
+++ HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
@@ -1488,6 +1488,19 @@
 			tag.objects = ["onMetaData", metadata];
 			dispatchEvent(new HTTPStreamingEvent(HTTPStreamingEvent.SCRIPT_DATA, false, false, 0, tag, FLVTagScriptDataMode.IMMEDIATE));
 		}
+
+		public function getStreamEndTime():Number
+		{
+			if(!manifest)
+				return NaN;
+
+			var activeManifest:HLSManifestParser = getManifestForQuality(lastQuality);
+			var segments:Vector.<HLSManifestSegment> = activeManifest.segments;
+			if(segments.length == 0)
+				return NaN;
+
+			return segments[segments.length-1].startTime + segments[segments.length-1].duration;
+		}

 		// getSegmentIndexForTime()
 		//		returns


Transferred from the Adobe Open Source Subversion Repository

Revision: 19699
Author:   chiedozi@adobe.com
Date:     2011-01-11T17:30:48.253502Z

Log Message:
-----------
Fixed a small issue in SlideViewTransition that would improperly reposition components when animating a View inside a TabbedViewNavigator with the tabBar placed at the top.
Placed null checks around usages of startView.

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
@@ -14,6 +14,7 @@

 import flash.geom.Point;

+import mx.core.IVisualElement;
 import mx.core.mx_internal;
 import mx.effects.IEffect;

@@ -103,6 +104,14 @@

     /**
      *  @private
+     *  Variable used to store the startView's initial global position to
+     *  determine how much it needs to be shifted before a consolidated
+     *  transition runs.
+     */
+    private var cachedStartViewGlobalPosition:Point;
+
+    /**
+     *  @private
      *  Bitmap image of the tab bar before it is updated with the properties
      *  of the new view.  This snapshot is leveraged by this transition when
      *  doing a full screen animation.
@@ -228,10 +237,14 @@
         // properties that are then restored after the transition is over.
         navigatorProps = new Object();

-
-        // Animate the tab bar if the overlayControls mode or visibility is toggled
-        animateTabBar = tabBar && (startView.overlayControls != endView.overlayControls ||
-                                   startView.tabBarVisible != endView.tabBarVisible);
+        animateTabBar = false;
+
+        if (tabBar && startView)
+        {
+            // Animate the tabBar if its overlayControls or visible property is toggled.
+            animateTabBar = startView.overlayControls != endView.overlayControls ||
+                            startView.tabBarVisible != endView.tabBarVisible;
+        }

         // Snapshot the entire navigator or actionBar depending on the mode.
         if (mode == SlideViewTransitionMode.UNCOVER)
@@ -256,25 +269,26 @@
         }

         // Save the position of the action in global coordinates
-        cachedActionBarGlobalPosition = actionBar.parent.localToGlobal(new Point(actionBar.x, actionBar.y));
+        cachedActionBarGlobalPosition = getGlobalCoordinates(actionBar);

         // Cache the tab bar bitmap and location
         if (tabBar)
         {
             cachedTabBar = getSnapshot(TabbedViewNavigator(targetNavigator).tabBar);
-            cachedTabBarGlobalPosition = tabBar.parent.localToGlobal(new Point(tabBar.x, tabBar.y));
+            cachedTabBarGlobalPosition = getGlobalCoordinates(tabBar);
             navigatorProps.tabBarIncludeInLayout = tabBar.includeInLayout;
             navigatorProps.tabBarCacheAsBitmap = tabBar.cacheAsBitmap;
         }

         // Save navigator bounds
-        navigatorProps.navigatorContentGroupInitialX = navigator.contentGroup.x;
-        navigatorProps.navigatorContentGroupInitialY = navigator.contentGroup.y;
-        navigatorProps.startViewIncludeInLayout = startView.includeInLayout;
         navigatorProps.endViewIncludeInLayout = endView.includeInLayout;

         if (startView)
+        {
+            cachedStartViewGlobalPosition = getGlobalCoordinates(startView);
+            navigatorProps.startViewIncludeInLayout = startView.includeInLayout;
             startView.includeInLayout = false;
+        }
     }

     /**
@@ -401,17 +415,24 @@
         // surfaces, and adjust z-order if necessary.
         var slideTargets:Array = new Array();

-        // If the view exists inside a TabbedViewNavigator, remove its content
-        // group from layout.
+        // Remove the navigator's contentGroup from layout
         navigatorProps.navigatorContentGroupIncludeInLayout = navigator.contentGroup.includeInLayout;
         navigator.contentGroup.includeInLayout = false;

+        // Check if the navigator is a child of TabbedViewNavigator, if so
+        // remove the contentGroup from layout.
+        if (targetNavigator != navigator)
+        {
+            navigatorProps.topNavigatorContentGroupIncludeInLayout = targetNavigator.contentGroup.includeInLayout;
+            targetNavigator.contentGroup.includeInLayout = false;
+        }
+
         transitionGroup = new Group();
         transitionGroup.includeInLayout = false;

         // Add the necessary views to the slide targets array.  When in PUSH mode,
         // both start and end views are added.
-        if (mode != SlideViewTransitionMode.COVER)
+        if (startView && mode != SlideViewTransitionMode.COVER)
             slideTargets.push(startView);

         if (mode != SlideViewTransitionMode.UNCOVER)
@@ -446,15 +467,17 @@

         if (startView)
         {
-            // Store initial position of startView's contentGroup
+            // Store the position of the startView
             navigatorProps.startViewX = startView.x;
             navigatorProps.startViewY = startView.y;

-            var delta:int = navigator.contentGroup.x - navigatorProps.navigatorContentGroupInitialX;
+            var globalPoint:Point = getGlobalCoordinates(startView);
+
+            var delta:int = globalPoint.x - cachedStartViewGlobalPosition.x;
             if (delta != 0)
                 startView.x -= delta;

-            delta = navigator.contentGroup.y - navigatorProps.navigatorContentGroupInitialY;
+            delta = globalPoint.y - cachedStartViewGlobalPosition.y;
             if (delta != 0)
                 startView.y -= delta;

@@ -653,6 +676,9 @@
                 endView.contentGroup.cacheAsBitmap = navigatorProps.endViewCacheAsBitmap;
             }

+            if (targetNavigator != navigator)
+                targetNavigator.contentGroup.includeInLayout = navigatorProps.topNavigatorContentGroupIncludeInLayout;
+
             navigator.contentGroup.includeInLayout = navigatorProps.navigatorContentGroupIncludeInLayout;

             if (transitionGroup)
@@ -682,5 +708,15 @@
         super.prepareForPlay();
     }

+    /**
+     *  @private
+     *  Utility function that converts a components position to global coordinates
+     *  using its parent.
+     */
+    private function getGlobalCoordinates(component:IVisualElement):Point
+    {
+        return component.parent.localToGlobal(new Point(component.x, component.y));
+    }
+
 }
 }


Clean up.

Clean up.

* Add missing semicolons.

* Rename variable.

* Remove unused variables.

--- src/com/esri/builder/controllers/SwitchingMapsController.as
+++ src/com/esri/builder/controllers/SwitchingMapsController.as
@@ -54,7 +54,6 @@
 {
     private static const LOG:ILogger = LogUtil.createLogger(SwitchingMapsController);

-    private var doNotShowLayerNotAddedPopUp:Boolean;
     private var isCreatingLayersFromWebMap:Boolean;
     private var webMapUtil:WebMapUtil;
     private var mapConfigXML:XML;
@@ -150,23 +149,21 @@

         var map:Map = event.map;

-        var unsupportedLayers:Array = []
-
-        var title:String = event.item.title;
-
-        var initialextent:String;
+        var unsupportedLayers:Array = [];
+
+        var initialExtent:String;
         var extent:Extent = map.extent;
         if (extent)
         {
             var extentArr:Array = [ extent.xmin, extent.ymin, extent.xmax, extent.ymax ];
-            initialextent = extentArr.join(" ");
+            initialExtent = extentArr.join(" ");
         }

         XML.ignoreComments = false;
         XML.ignoreWhitespace = false;
         XML.prettyIndent = 4;

-        mapConfigXML = <map initialextent={initialextent} top="40" wraparound180="true" addarcgisbasemaps={Model.instance.config.configMap.addArcGISBasemaps}/>
+        mapConfigXML = <map initialextent={initialExtent} top="40" wraparound180="true" addarcgisbasemaps={Model.instance.config.configMap.addArcGISBasemaps}/>;
         if (!extent)
         {
             delete mapConfigXML.map.@initialextent;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19170
Author:   chiedozi@adobe.com
Date:     2010-12-08T21:43:19.425567Z

Log Message:
-----------
View.navigator is now bindable

QE notes:
Doc notes:
Bugs:SDK-28831
Reviewer: Jason Szeto
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/View.as
+++ frameworks/projects/mobilecomponents/src/spark/components/View.as
@@ -337,6 +337,7 @@
      *  @productversion Flex 4.5
      */

+	[Bindable("navigatorChanged")]
     public function get navigator():ViewNavigator
     {
         return _navigator;
@@ -348,6 +349,9 @@
     mx_internal function setNavigator(value:ViewNavigator):void
     {
         _navigator = value;
+
+		if (hasEventListener("navigatorChanged"))
+			dispatchEvent(new Event("navigatorChanged"));
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19401
Author:   mhorn@adobe.com
Date:     2010-12-15T20:50:38.178104Z

Log Message:
-----------
Temporary ASDoc updates for bug fix SDK-28907

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/LinkBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/Button.as</path>

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

--- frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollBar.as
+++ frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollBar.as
@@ -43,7 +43,9 @@
  *  Name of the class to use as the default skin for the down arrow button of
  *  the scroll bar.
  *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarDownButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -56,11 +58,13 @@
  *  Name of the class to use as the skin for the down arrow button of the
  *  scroll bar when it is disabled.
  *
- *  If you change the skin, either graphically or programmatically,
+ *
If you change the skin, either graphically or programmatically,
  *  you should ensure that the new skin is the same height
- *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.
- *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.

+ *
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarDownButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -73,11 +77,13 @@
  *  Name of the class to use as the skin for the down arrow button of the
  *  scroll bar when you click the arrow button
  * .
- *  If you change the skin, either graphically or programmatically,
+ *
If you change the skin, either graphically or programmatically,
  *  you should ensure that the new skin is the same height
- *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.
- *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.

+ *
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarDownButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -90,11 +96,13 @@
  *  Name of the class to use as the skin for the down arrow button of the
  *  scroll bar when the mouse pointer is over the arrow button.
  *
- *  If you change the skin, either graphically or programmatically,
+ *
If you change the skin, either graphically or programmatically,
  *  you should ensure that the new skin is the same height
- *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.
- *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.

+ *
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarDownButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -107,11 +115,13 @@
  *  Name of the class to use as the skin for the down arrow button of
  *  the scroll bar.
  *
- *  If you change the skin, either graphically or programmatically,
+ *
If you change the skin, either graphically or programmatically,
  *  you should ensure that the new skin is the same height
- *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.
- *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.

+ *
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarDownButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -137,7 +147,9 @@
  *  Name of the class to use as the default skin for the down arrow button of
  *  the scroll bar.
  *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollThumbSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarThumbSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -150,7 +162,9 @@
  *  Name of the class to use as the skin for the thumb of the scroll bar
  *  when you click the thumb.
  *
- *  @default mx.skins.halo.ScrollThumbSkin
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollThumbSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarThumbSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -187,7 +201,9 @@
  *  Name of the class to use as the skin for the thumb of the scroll bar
  *  when the mouse pointer is over the thumb.
  *
- *  @default mx.skins.halo.ScrollThumbSkin
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollThumbSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarThumbSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -199,7 +215,9 @@
 /**
  *  Name of the class to use as the skin for the thumb of the scroll bar.
  *
- *  @default mx.skins.halo.ScrollThumbSkin
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollThumbSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarThumbSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -225,7 +243,9 @@
 /**
  *  Name of the class to use as the default skin for the track of the scroll bar.
  *
- *  @default mx.skins.halo.ScrollTrackSkin
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollTrackSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.ScrollBarTrackSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -288,7 +308,9 @@
 /**
  *  Name of the class to use as the default skin for the up arrow button of the scroll bar.
  *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.mx.skins.spark.ScrollBarUpButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -301,11 +323,13 @@
  *  Name of the class to use as the skin for the up arrow button of the scroll bar
  *  when it is disabled.
  *
- *  If you change the skin, either graphically or programmatically,
+ *
If you change the skin, either graphically or programmatically,
  *  you should ensure that the new skin is the same height
- *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.
- *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.

+ *
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.mx.skins.spark.ScrollBarUpButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -318,11 +342,13 @@
  *  Name of the class to use as the skin for the up arrow button of the scroll bar
  *  when you click the arrow button.
  *
- *  If you change the skin, either graphically or programmatically,
+ *
If you change the skin, either graphically or programmatically,
  *  you should ensure that the new skin is the same height
- *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.
- *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.

+ *
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.mx.skins.spark.ScrollBarUpButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -335,11 +361,13 @@
  *  Name of the class to use as the skin for the up arrow button of the scroll bar
  *  when the mouse pointer is over the arrow button.
  *
- *  If you change the skin, either graphically or programmatically,
+ *
If you change the skin, either graphically or programmatically,
  *  you should ensure that the new skin is the same height
- *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.
- *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.

+ *
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.mx.skins.spark.ScrollBarUpButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -352,11 +380,13 @@
  *  Name of the class to use as the skin for the up arrow button of the
  *  scroll bar.
  *
- *  If you change the skin, either graphically or programmatically,
+ *
If you change the skin, either graphically or programmatically,
  *  you should ensure that the new skin is the same height
- *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.
+ *  (for horizontal ScrollBars) or width (for vertical ScrollBars) as the track.

  *
- *  @default mx.skins.halo.ScrollArrowSkin
+ *
The default skin class is based on the theme. For example, with the Halo theme,
+ *  the default skin class is mx.skins.halo.ScrollArrowSkin. For the Spark theme, the default skin
+ *  class is mx.skins.spark.mx.skins.spark.ScrollBarUpButtonSkin.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -1230,7 +1260,7 @@
         {
             cacheHeuristic = false;
             if (scrollThumb)
-            	scrollThumb.cacheHeuristic = false;
+                scrollThumb.cacheHeuristic = false;
         }

         upArrow.setActualSize(upArrow.getExplicitOrMeasuredWidth(),
@@ -1543,7 +1573,7 @@
             MouseEvent.MOUSE_MOVE, scrollTrack_mouseMoveHandler, true);
         // in case we go offscreen
         sbRoot.addEventListener(
-			SandboxMouseEvent.MOUSE_UP_SOMEWHERE, scrollTrack_mouseLeaveHandler);
+            SandboxMouseEvent.MOUSE_UP_SOMEWHERE, scrollTrack_mouseLeaveHandler);
         systemManager.deployMouseShields(true);

         var pt:Point = new Point(event.localX, event.localY);
@@ -1607,7 +1637,7 @@
         scrollTrack_mouseLeaveHandler(event);
     }
     private function scrollTrack_mouseLeaveHandler(event:Event):void
-    {
+    {
         trackScrolling = false;

         var sbRoot:DisplayObject = systemManager.getSandboxRoot();
@@ -1617,7 +1647,7 @@
             MouseEvent.MOUSE_MOVE, scrollTrack_mouseMoveHandler, true);
         // in case we go offscreen
         sbRoot.removeEventListener(
-			SandboxMouseEvent.MOUSE_UP_SOMEWHERE, scrollTrack_mouseLeaveHandler);
+            SandboxMouseEvent.MOUSE_UP_SOMEWHERE, scrollTrack_mouseLeaveHandler);
         systemManager.deployMouseShields(false);

         if (trackScrollTimer)


Transferred from the Adobe Open Source Subversion Repository

Revision: 8487
Author:   smgilson@adobe.com
Date:     2009-07-09T18:57:21.985536Z

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

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

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

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

--- frameworks/projects/spark/src/spark/effects/animation/Keyframe.as
+++ frameworks/projects/spark/src/spark/effects/animation/Keyframe.as
@@ -38,7 +38,7 @@
  *
  *  @mxml
  *
- *
The <mx:Keyframe> tag
+ *
The <s:Keyframe> tag
  *  inherits the tag attributes of its superclass,
  *  and adds the following tag attributes:

  *


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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkRadioButtonAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkRadioButtonAutomationImpl.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 spark.automation.delegates.components
 {


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

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

 package mx.logging
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 15982
Author:   matamel@adobe.com
Date:     2010-05-10T11:17:02.550420Z

Log Message:
-----------
Bug: BLZ-522 - Enhancement request to run BlazeDS messaging code in ActionScript outside of a Flex Application.
QA: Yes
Doc: Maybe - it'd be good to mention what people need to do if they want to use rpc.swc without a Flex UI component. See the bug for details.
Checkintests: Pass

Details: rpc.swc couldn't be used without a Flex UI component before, this was due to:

1- Some client-side classes need to be registered with Flash player; this normally is handled by generated AS code when an MXML is compiled to SWF, but when MXML is not involved, one needs to register these classes manually.
2- LoaderConfig.url is not available outside Flex and this was causing "url is null" error in Channel url token replacement code.

There isn't much we can do for #1, classes still need to be registered with Flash player so strong types are used instead of generic Objects on the client/server. For #2, I added a URLUtil.hasTokens(url:String) method that takes in a url and returns true if the url contains server.name/server.port tokens. Then, I changed Channel url token replacement code to use this new method. This resolves the "url is null" error.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Channel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/utils/URLUtil.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/Channel.as
+++ frameworks/projects/rpc/src/mx/messaging/Channel.as
@@ -1342,12 +1342,12 @@
         if (proto.length == 0)
             uriCopy = URLUtil.getFullURL(LoaderConfig.url, uriCopy);

-        if (!URLUtil.hasUnresolvableTokens())
-        {
-            _isEndpointCalculated = false;
+        if (URLUtil.hasTokens(uriCopy) && !URLUtil.hasUnresolvableTokens())
+        {
+            _isEndpointCalculated = false;
             return;
         }
-
+
         uriCopy = URLUtil.replaceTokens(uriCopy);

         // Now, check for a final protocol after relative URLs and tokens


NativeRelaySignal: eventClass now defaults to flash.events.Event if omitted. Updated docs.

--- src/org/osflash/signals/NativeRelaySignal.as
+++ src/org/osflash/signals/NativeRelaySignal.as
@@ -1,11 +1,15 @@
 package org.osflash.signals
 {
+	import flash.events.Event;
 	import org.osflash.signals.Signal;
 	import flash.events.IEventDispatcher;

 	/**
 	 * The NativeRelaySignal class is used to relay events from an IEventDispatcher
-	 * to signal listeners.
+	 * to listeners.
+	 * The difference as compared to NativeSignal is that
+	 * NativeRelaySignal has its own dispatching code,
+	 * whereas NativeSignal uses the IEventDispatcher to dispatch.
 	 */
 	public class NativeRelaySignal extends Signal implements ISignal
 	{
@@ -16,10 +20,12 @@
 		 * @param	target	An object that implements the flash.events.IEventDispatcher interface.
 		 * @param	name	The event string name that would normally be passed to IEventDispatcher.addEventListener().
 		 * @param	eventClass An optional class reference that enables an event type check in dispatch().
+		 * Because the target is an IEventDispatcher,
+		 * eventClass needs to be flash.events.Event or a subclass of it.
 		 */
 		public function NativeRelaySignal(target:IEventDispatcher, name:String, eventClass:Class = null)
 		{
-			super(target, eventClass);
+			super(target, eventClass || Event);
 			_name = name;
 		}


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

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

 package mx.controls.advancedDataGridClasses
 {


Oops, quick fix: made Spritemap active in its constructor so it'll animate.

--- net/flashpunk/graphics/Spritemap.as
+++ net/flashpunk/graphics/Spritemap.as
@@ -48,6 +48,7 @@
 			_frameCount = _columns * _rows;
 			this.callback = callback;
 			updateBuffer();
+			active = true;
 		}

 		/**


fix VertexStream::fromVector() to use forceReadUsage = true when calling VertexStream.updateMinMax() to avoid stream usage error

--- src/aerys/minko/render/geometry/stream/VertexStream.as
+++ src/aerys/minko/render/geometry/stream/VertexStream.as
@@ -627,7 +627,9 @@
 			return stream;
 		}

-		public static function fromVector(usage : uint, format : VertexFormat, data : Vector.<Number>) : VertexStream
+		public static function fromVector(usage 	: uint,
+										  format 	: VertexFormat,
+										  data 		: Vector.<Number>) : VertexStream
 		{
 			var numValues 	: uint 			= data.length;
 			var stream		: VertexStream	= new VertexStream(usage, format);
@@ -637,7 +639,7 @@
 				bytes.writeFloat(data[i]);

 			bytes.position = 0;
-			stream.updateMinMax();
+			stream.updateMinMax(true);

 			return stream;
 		}


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

--- frameworks/projects/mx/src/mx/containers/Form.as
+++ frameworks/projects/mx/src/mx/containers/Form.as
@@ -0,0 +1,458 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.containers
+{
+
+import flash.display.DisplayObject;
+
+import mx.containers.utilityClasses.BoxLayout;
+import mx.controls.Label;
+import mx.core.Container;
+import mx.core.IInvalidating;
+import mx.core.IUIComponent;
+import mx.styles.StyleManager;
+
+include "../styles/metadata/GapStyles.as";
+
+//--------------------------------------
+//  Styles
+//--------------------------------------
+
+/**
+ *  Number of pixels between the label and child components.
+ *  The default value is 14.
+ */
+[Style(name="indicatorGap", type="Number", format="Length", inherit="yes")]
+
+/**
+ *  Width of the form labels.
+ *  The default is the length of the longest label in the form.
+ */
+[Style(name="labelWidth", type="Number", format="Length", inherit="yes")]
+
+/**
+ *  Number of pixels between the container's bottom border
+ *  and the bottom  edge of its content area.
+ *  The default value is 16.
+ */
+[Style(name="paddingBottom", type="Number", format="Length", inherit="no")]
+
+/**
+ *  Number of pixels between the container's top border
+ *  and the top edge of its content area.
+ *  The default value is 16.
+ */
+[Style(name="paddingTop", type="Number", format="Length", inherit="no")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[IconFile("Form.png")]
+
+/**
+ *  The Form container lets you control the layout of a form,
+ *  mark form fields as required or optional, handle error messages,
+ *  and bind your form data to the Flex data model to perform
+ *  data checking and validation.
+ *  It also lets you use style sheets to configure the appearance
+ *  of your forms.
+ *
+ *
The following table describes the components you use to create forms in Flex:

+ *

+ *

+ *           Component
+ *           Tag
+ *           Description
+ *

+ *

+ *           Form
+ *           <mx:Form>
+ *           Defines the container for the entire form, including the overall form layout.
+ *               Use the FormHeading control and FormItem container to define content.
+ *               You can also insert other types of components in a Form container.
+ *

+ *

+ *           FormHeading
+ *           <mx:FormHeading>
+ *           Defines a heading within your form. You can have multiple FormHeading controls within a single Form container.
+ *

+ *

+ *           FormItem
+ *           <mx:FormItem>
+ *           Contains one or more form children arranged horizontally or vertically. Children can be controls or other containers.
+ *               A single Form container can hold multiple FormItem containers.
+ *

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:Form> tag inherits all the tag
+ *  attributes of its superclass and adds the following tag attributes:

+ *
+ *

+ *  <mx:Form
+ *    Styles
+ *    horizontalGap="8"
+ *    indicatorGap="14"
+ *    labelWidth="Calculated"
+ *    paddingBottom="16"
+ *    paddingTop="16"
+ *    verticalGap="6"
+ *    >
+ *    ...
+ *      child tags
+ *    ...
+ *  </mx:Form>
+ *

+ *
+ *  @includeExample examples/FormExample.mxml
+ *
+ *  @see mx.containers.FormHeading
+ *  @see mx.containers.FormItem
+ */
+public class Form extends Container
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class properties
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private static var classInitialized:Boolean = false;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  This method gets called once at first instance construction
+	 *  rather than during class initialization.
+	 *  In order for calls to StyleManager methods to work,
+	 *  the factory class for the application or module
+	 *  must have already registered StyleManagerImpl with Singleton.
+	 *  This may not be the case at class initialization time.
+	 */
+	private static function initializeClass():void
+	{
+		StyleManager.registerInheritingStyle("labelWidth");
+		StyleManager.registerSizeInvalidatingStyle("labelWidth");
+		StyleManager.registerInheritingStyle("indicatorGap");
+		StyleManager.registerSizeInvalidatingStyle("indicatorGap");
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function Form()
+    {
+        super();
+
+		if (!classInitialized)
+		{
+			initializeClass();
+			classInitialized = true;
+		}
+
+        showInAutomationHierarchy = true;
+
+        mx_internal::layoutObject.target = this;
+        mx_internal::layoutObject.direction = BoxDirection.VERTICAL;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    mx_internal var layoutObject:BoxLayout = new BoxLayout();
+
+    /**
+     *  @private
+     */
+    private var measuredLabelWidth:Number;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  maxLabelWidth
+    //----------------------------------
+
+    [Bindable("updateComplete")]
+
+    /**
+     *  The maximum width, in pixels, of the labels of the FormItems containers in this Form.
+     */
+    public function get maxLabelWidth():Number
+    {
+        var n:int = numChildren;
+        for (var i:int = 0; i < n; i++)
+        {
+            var child:DisplayObject = getChildAt(i);
+            if (child is FormItem)
+            {
+                var itemLabel:Label = FormItem(child).itemLabel;
+                if (itemLabel)
+                    return itemLabel.width;
+            }
+        }
+
+        return 0;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: DisplayObjectContainer
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Discard the cached measuredLabelWidth if a child
+     *  is added or removed.
+     */
+    override public function addChild(child:DisplayObject):DisplayObject
+    {
+        invalidateLabelWidth();
+
+        return super.addChild(child);
+    }
+
+    /**
+     *  @private
+     */
+    override public function addChildAt(child:DisplayObject,
+                                        index:int):DisplayObject
+    {
+        invalidateLabelWidth();
+
+        return super.addChildAt(child, index);
+    }
+
+    /**
+     *  @private
+     */
+    override public function removeChild(child:DisplayObject):DisplayObject
+    {
+        invalidateLabelWidth();
+
+        return super.removeChild(child);
+    }
+
+    /**
+     *  @private
+     */
+    override public function removeChildAt(index:int):DisplayObject
+    {
+        invalidateLabelWidth();
+
+        return super.removeChildAt(index);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Calculates the preferred, minimum and maximum sizes of the Form.
+     *  For more information about the measure method,
+     *  see the UIComponent.measure() method.
+     *
The Form.measure() method sets the
+     *  measuredWidth property to the width of the
+     *  largest child, plus the values of the paddingLeft
+     *  and paddingRight style properties and the
+     *  width of the border.

+     *
+     *
The measuredHeight property is set to the sum
+     *  of the measuredHeightS of all children,
+     *  plus verticalGap space between each child.
+     *  The paddingTop and paddingBottom
+     *  style properties and the height of the border are also added.

+     *
+     *
The measuredMinWidth property is set to the largest
+     *  minimum width of the children.
+     *  If the child has a percentage value for width,
+     *  the minWidth property is used, otherwise the
+     *  measuredWidth property is used.
+     *  The values of the paddingLeft and
+     *  paddingRight style properties and the width
+     *  of the border are also added.

+     *
+     *
The measuredMinHeight property is set to the same value
+     *  as that of the measuredHeight property.

+     */
+    override protected function measure():void
+    {
+        super.measure();
+
+        mx_internal::layoutObject.measure();
+
+        calculateLabelWidth();
+    }
+
+    /**
+     *  Responds to size changes by setting the positions
+     *  and sizes of this container's children.
+     *  For more information about the updateDisplayList() method,
+     *  see the UIComponent.updateDisplayList() method.
+     *
+     *
The Form.updateDisplayList() method
+     *  positions the children in a vertical column,
+     *  spaced by the verticalGap style property.
+     *  The paddingLeft, paddingRight,
+     *  paddingTop and paddingBottom
+     *  style properties are applied.

+     *
+     *
If a child has a percentage width,
+     *  it is stretched horizontally to the specified
+     *  percentage of the Form container; otherwise, it is set
+     *  to its measuredWidth property.
+     *  Each child is set to its measuredHeight property.

+     *
+     *
This method calls the super.updateDisplayList()
+     *  method before doing anything else.

+     *
+     *  @param unscaledWidth Specifies the width of the component, in pixels,
+     *  in the component's coordinates, regardless of the value of the
+     *  scaleX property of the component.
+     *
+     *  @param unscaledHeight Specifies the height of the component, in pixels,
+     *  in the component's coordinates, regardless of the value of the
+     *  scaleY property of the component.
+     */
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        mx_internal::layoutObject.updateDisplayList(unscaledWidth, unscaledHeight);
+    }
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        // Check to see if this is one of the style properties
+        // that is known to affect layout.
+        if (!styleProp ||
+            styleProp == "styleName" ||
+            StyleManager.isSizeInvalidatingStyle(styleProp))
+        {
+            invalidateLabelWidth();
+        }
+
+        super.styleChanged(styleProp);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    internal function invalidateLabelWidth():void
+    {
+        // We only need to invalidate the label width
+        // after we've been initialized.
+        if (!isNaN(measuredLabelWidth) && initialized)
+        {
+            measuredLabelWidth = NaN;
+
+            // Need to invalidate the size of all children
+            // to make sure they respond to the label width change.
+            var n:int = numChildren;
+            for (var i:int = 0; i < n; i++)
+            {
+                var child:IUIComponent = IUIComponent(getChildAt(i));
+                if (child is IInvalidating)
+                    IInvalidating(child).invalidateSize();
+            }
+        }
+    }
+
+    /**
+     *  @private
+     */
+    internal function calculateLabelWidth():Number
+    {
+        // See if we've already calculated it.
+        if (!isNaN(measuredLabelWidth))
+            return measuredLabelWidth;
+
+        var labelWidth:Number = 0;
+        var labelWidthSet:Boolean = false;
+
+        // Determine best label width.
+        var n:int = numChildren;
+        for (var i:int = 0; i < n; i++)
+        {
+            var child:DisplayObject = getChildAt(i);
+
+            if (child is FormItem)
+            {
+                labelWidth = Math.max(labelWidth,
+                                      FormItem(child).getPreferredLabelWidth());
+				// only set measuredLabelWidth yet if we have at least one FormItem child
+				labelWidthSet = true;
+            }
+        }
+
+		if (labelWidthSet)
+        	measuredLabelWidth = labelWidth;
+
+        return labelWidth;
+    }
+}
+
+}


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

--- frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/FlexContentHolderAutomationImpl.as
+++ frameworks/projects/automation_flashflexkit/src/mx/automation/delegates/flashflexkit/FlexContentHolderAutomationImpl.as
@@ -0,0 +1,192 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 mx.automation.Automation;
+	import mx.automation.IAutomationObjectHelper;
+	import mx.automation.IAutomationObject;
+	import mx.core.mx_internal;
+	import mx.flash.FlexContentHolder;
+	use namespace mx_internal;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines methods and properties required to perform instrumentation for the
+	 *  FlexContentHolder control.
+	 *
+	 *  @see  mx.flash.FlexContentHolder
+	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+
+
+
+	public class  FlexContentHolderAutomationImpl  extends UIMovieClipAutomationImpl
+	{
+		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(FlexContentHolder, FlexContentHolderAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 * @param obj Panel object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function FlexContentHolderAutomationImpl(obj:FlexContentHolder)
+		{
+			super(obj);
+			recordClick = true;
+		}
+
+
+		/**
+		 *  @private
+		 *  storage for the owner component
+		 */
+		protected function get flexContentHolder():FlexContentHolder
+		{
+			return movieClip as FlexContentHolder;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden properties
+		//
+		//--------------------------------------------------------------------------
+
+		//----------------------------------
+		//  automationName
+		//----------------------------------
+
+		/**
+		 *  @private
+		 */
+		override public function get automationName():String
+		{
+			return super.automationName;
+		}
+
+		/**
+		 *  @private
+		 */
+		override public function get automationValue():Array
+		{
+			return [ automationName ];
+		}
+
+		//----------------------------------
+		//  numAutomationChildren
+		//----------------------------------
+
+		/**
+		 *  @private
+		 */
+		override public function get numAutomationChildren():int
+		{
+			//always the Flash container can have only one child
+			// which inturn can be a Flex container to hold multiple objects
+
+			return (1);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+		override public function getAutomationChildAt(index:int):IAutomationObject
+		{
+			// only one flex component is allowed as the child
+
+			if (index == 0)
+				return flexContentHolder.content as IAutomationObject;
+
+			return null;
+		}
+
+		override public function getAutomationChildren():Array
+		{
+			// only one flex component is allowed as the child
+			return [flexContentHolder.content as IAutomationObject];
+		}
+
+		/**
+		 *  @private
+		 */
+		override public function createAutomationIDPart(child:IAutomationObject):Object
+		{
+			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+			return help.helpCreateIDPart(uiAutomationObject, child);
+		}
+
+		/**
+		 *  @private
+		 */
+		override public function createAutomationIDPartWithRequiredProperties(child:IAutomationObject, properties:Array):Object
+		{
+			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+			return help.helpCreateIDPartWithRequiredProperties(uiAutomationObject, child,properties);
+		}
+
+		/**
+		 *  @private
+		 */
+		override public function resolveAutomationIDPart(part:Object):Array
+		{
+			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+			return help.helpResolveIDPart(uiAutomationObject, part);
+		}
+
+	}
+}
+
+


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

--- frameworks/projects/automation/src/mx/automation/tabularData/MenuBarTabularData.as
+++ frameworks/projects/automation/src/mx/automation/tabularData/MenuBarTabularData.as
@@ -0,0 +1,156 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.tabularData
+{
+
+	import mx.automation.AutomationManager;
+	import mx.automation.IAutomationObject;
+	import mx.automation.IAutomationTabularData;
+	import mx.controls.MenuBar;
+	import mx.core.mx_internal;
+	import mx.automation.Automation;
+
+	use namespace mx_internal;
+
+	/**
+	 *  @private
+	 */
+	public class MenuBarTabularData
+		implements IAutomationTabularData
+	{
+
+		private var menuBar:MenuBar;
+		private var delegate:IAutomationObject;
+
+		/**
+		 *  @private
+		 */
+		public function MenuBarTabularData(delegate:IAutomationObject)
+		{
+			super();
+
+			this.delegate = delegate;
+			this.menuBar = delegate as MenuBar;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get firstVisibleRow():int
+		{
+			return 0;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get lastVisibleRow():int
+		{
+			return delegate.numAutomationChildren-1;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get numRows():int
+		{
+			return delegate.numAutomationChildren;
+		}
+
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get numColumns():int
+		{
+			return 1;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function get columnNames():Array
+		{
+			return ["MenuItems"];
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function getValues(start:uint = 0, end:uint = 0):Array
+		{
+			var _values:Array = [];
+			var i:int;
+
+			// code modified to avoid the usage of numAutomationChildren and
+			// getAutomationChildAt in a loop
+			//var childList:Array  = delegate.getAutomationChildren();
+			var childList:Array  =  Automation.automationManager2.getAutomationChildrenArray(delegate);
+			if (childList)
+			{
+				end  = end > childList.length ? childList.length : end;
+
+				for (i = start; i <= end; ++i)
+				{
+					//var values:Array = delegate.getAutomationChildAt(i).automationValue;
+					var values:Array = childList[i]?childList[i].automationValue:null;
+					if (values)
+						_values.push([ values.join("|") ]);
+				}
+
+			}
+			return _values;
+		}
+
+		/**
+		 *  @inheritDoc
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function getAutomationValueForData(data:Object):Array
+		{
+			return [];
+		}
+	}
+}


rename prop to member

rename prop to member

--- source/com/kemsky/curry.as
+++ source/com/kemsky/curry.as
@@ -1,7 +1,6 @@
 package com.kemsky
 {
     /**
-     * @private
      * Creates partially applied function
      * @param func source
      * @param args arguments to apply to func


Removed the reference to IAsyncTestResponder in AsyncNativeTestResponder and thus the reference to IResponder which cannot be used in a as3 only deployment (even if it didn't seem to cause any issue this is cleaner that way)

--- FlexUnit4/src/org/flexunit/async/AsyncNativeTestResponder.as
+++ FlexUnit4/src/org/flexunit/async/AsyncNativeTestResponder.as
@@ -43,7 +43,7 @@
 	 * A respoder for asynchronous tests that contains result and fault handlers for the test succeeding or the test
 	 * failing to succeed.
 	 */
-	public class AsyncNativeTestResponder extends Responder implements IAsyncTestResponder, IEventDispatcher {
+	public class AsyncNativeTestResponder extends Responder implements IEventDispatcher {
 		/**
 		 * @private
 		 */


Migrate any existing settings (<= 3.3).

Migrate any existing settings (<= 3.3).

--- src/com/esri/builder/controllers/ApplicationCompleteController.as
+++ src/com/esri/builder/controllers/ApplicationCompleteController.as
@@ -118,6 +118,7 @@
             LOG.info('Loading user preferences...');
         }

+        migratePreviousSettingsFolder();
         const so:SharedObject = SharedObject.getLocal(Model.USER_PREF);

         startupSettings = new Settings();
@@ -185,6 +186,53 @@
         else
         {
             tryGetHostName();
+        }
+    }
+
+    private function migratePreviousSettingsFolder():void
+    {
+        var previousBuilderSettingsFolder:File =
+            File.applicationStorageDirectory.resolvePath("#SharedObjects/AppBuilder.swf/");
+
+        if (!previousBuilderSettingsFolder.exists)
+        {
+            return;
+        }
+
+        var filesOrFolders:Array = previousBuilderSettingsFolder.getDirectoryListing();
+
+        if (filesOrFolders.length == 0)
+        {
+            return;
+        }
+
+        if (Log.isInfo())
+        {
+            LOG.info('Transferring previous settings folder');
+        }
+
+        var currentBuilderSettingsFolder:File =
+            File.applicationStorageDirectory.resolvePath("#SharedObjects/Builder.swf/");
+
+        try
+        {
+            for each (var fileOrFolder:File in filesOrFolders)
+            {
+                if (Log.isInfo())
+                {
+                    LOG.info('Transferring {0}', fileOrFolder.name);
+                }
+                fileOrFolder.moveTo(currentBuilderSettingsFolder.resolvePath(fileOrFolder.name),
+                                    true);
+            }
+        }
+        catch (error:Error)
+        {
+            if (Log.isInfo())
+            {
+                LOG.info('Could not transfer previous settings folder: {0} - {1}',
+                         error.errorID, error.toString());
+            }
         }
     }