Transferred from the Adobe Open Source Subversion Repository

Revision: 21377
Author:   smgilson@adobe.com
Date:     2011-06-13T16:36:00.843017Z

Log Message:
-----------
Fix three ASDoc bugs: SDK-30543, and Watson bugs 2770122 and 2876705

QE notes:
Doc notes:
Bugs: SDK-30543, 2770122, and 2876705
Reviewer:
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/rpc/src/mx/messaging/messages/MessagePerformanceUtils.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/messages/MessagePerformanceUtils.as
+++ frameworks/projects/rpc/src/mx/messaging/messages/MessagePerformanceUtils.as
@@ -26,7 +26,7 @@
      *
      *
When these metrics are enabled an instance of this class should be created from
      * a response, acknowledgement, or message handler via something like:

-     * @example
+     *
      *

      *      var mpiutil:MessagePerformanceUtils = new MessagePerformanceUtils(event.message);
      *

@@ -165,11 +165,11 @@
         {
             if (pushedMessageFlag)
             {
-            	return mpip.serverPrePushTime - mpip.receiveTime;
+                return mpip.serverPrePushTime - mpip.receiveTime;
             }
             else
             {
-            	return mpio.sendTime - mpii.receiveTime;
+                return mpio.sendTime - mpii.receiveTime;
             }
         }

@@ -208,27 +208,27 @@
          * @productversion BlazeDS 4
          * @productversion LCDS 3
          */
-		public function get serverAdapterTime():Number
-		{
-			if (pushedMessageFlag)
-			{
-				if (mpip == null)
-					return 0;
-				if (mpip.serverPreAdapterTime == 0 || mpip.serverPostAdapterTime == 0)
-					return 0;
-
-				return mpip.serverPostAdapterTime - mpip.serverPreAdapterTime;
-			}
-			else
-			{
-				if (mpii == null)
-					return 0;
-				if (mpii.serverPreAdapterTime == 0 || mpii.serverPostAdapterTime == 0)
-					return 0;
-
-				return mpii.serverPostAdapterTime - mpii.serverPreAdapterTime;
-			}
-		}
+        public function get serverAdapterTime():Number
+        {
+            if (pushedMessageFlag)
+            {
+                if (mpip == null)
+                    return 0;
+                if (mpip.serverPreAdapterTime == 0 || mpip.serverPostAdapterTime == 0)
+                    return 0;
+
+                return mpip.serverPostAdapterTime - mpip.serverPreAdapterTime;
+            }
+            else
+            {
+                if (mpii == null)
+                    return 0;
+                if (mpii.serverPreAdapterTime == 0 || mpii.serverPostAdapterTime == 0)
+                    return 0;
+
+                return mpii.serverPostAdapterTime - mpii.serverPreAdapterTime;
+            }
+        }

         /**
          * Time spent in a module invoked from the adapter associated with the destination for this message
@@ -242,28 +242,28 @@
          * @playerversion AIR 1.1
          * @productversion BlazeDS 4
          * @productversion LCDS 3
-         */
-		public function get serverAdapterExternalTime():Number
-		{
-			if (pushedMessageFlag)
-			{
-				if (mpip == null)
-					return 0;
-				if (mpip.serverPreAdapterExternalTime == 0 || mpip.serverPostAdapterExternalTime == 0)
-					return 0;
-
-				return mpip.serverPostAdapterExternalTime - mpip.serverPreAdapterExternalTime;
-			}
-			else
-			{
-				if (mpii == null)
-					return 0;
-				if (mpii.serverPreAdapterExternalTime == 0 || mpii.serverPostAdapterExternalTime == 0)
-					return 0;
-
-				return mpii.serverPostAdapterExternalTime - mpii.serverPreAdapterExternalTime;
-			}
-		}
+         */
+        public function get serverAdapterExternalTime():Number
+        {
+            if (pushedMessageFlag)
+            {
+                if (mpip == null)
+                    return 0;
+                if (mpip.serverPreAdapterExternalTime == 0 || mpip.serverPostAdapterExternalTime == 0)
+                    return 0;
+
+                return mpip.serverPostAdapterExternalTime - mpip.serverPreAdapterExternalTime;
+            }
+            else
+            {
+                if (mpii == null)
+                    return 0;
+                if (mpii.serverPreAdapterExternalTime == 0 || mpii.serverPostAdapterExternalTime == 0)
+                    return 0;
+
+                return mpii.serverPostAdapterExternalTime - mpii.serverPreAdapterExternalTime;
+            }
+        }

         /**
          * Time that the message waited on the server after it was ready to be pushed to the client
@@ -274,17 +274,17 @@
          * @playerversion AIR 1.1
          * @productversion BlazeDS 4
          * @productversion LCDS 3
-         */
-		public function get serverPollDelay():Number
-		{
-			if (mpip == null)
-				return 0;
-			if (mpip.serverPrePushTime == 0 || mpio.sendTime == 0)
-				return 0;
-
-			return mpio.sendTime - mpip.serverPrePushTime;
-		}
-
+         */
+        public function get serverPollDelay():Number
+        {
+            if (mpip == null)
+                return 0;
+            if (mpip.serverPrePushTime == 0 || mpio.sendTime == 0)
+                return 0;
+
+            return mpio.sendTime - mpip.serverPrePushTime;
+        }
+
         /**
          * Server processing time spent outside of the adapter associated with the destination of this message
          *
@@ -295,11 +295,11 @@
          * @playerversion AIR 1.1
          * @productversion BlazeDS 4
          * @productversion LCDS 3
-         */
-		public function get serverNonAdapterTime():Number
-		{
-			return serverProcessingTime - serverAdapterTime;
-		}
+         */
+        public function get serverNonAdapterTime():Number
+        {
+            return serverProcessingTime - serverAdapterTime;
+        }

         /**
          * The network round trip time for a client message and the server response to it,
@@ -315,10 +315,10 @@
          */
         public function get networkRTT():Number
         {
-        	if (!pushedMessageFlag)
-            	return totalTime - serverProcessingTime;
+            if (!pushedMessageFlag)
+                return totalTime - serverProcessingTime;
             else
-            	return 0;
+                return 0;
         }

         /**
@@ -504,12 +504,12 @@
                 alertString +="Network Roundtrip time (s): " + (networkRTT / 1000) + "\n";
             if (serverProcessingTime != 0)
                 alertString +="Server processing time (s): " + (serverProcessingTime / 1000) + "\n";
-      		if (serverAdapterTime != 0)
-      			alertString +="Server adapter time (s): " + (serverAdapterTime / 1000) + "\n";
-      		if (serverNonAdapterTime != 0)
-      			alertString +="Server non-adapter time (s): " + (serverNonAdapterTime / 1000) + "\n"
-      		if (serverAdapterExternalTime != 0)
-      			alertString +="Server adapter external time (s): " + (serverAdapterExternalTime / 1000) + "\n";
+            if (serverAdapterTime != 0)
+                alertString +="Server adapter time (s): " + (serverAdapterTime / 1000) + "\n";
+            if (serverNonAdapterTime != 0)
+                alertString +="Server non-adapter time (s): " + (serverNonAdapterTime / 1000) + "\n"
+            if (serverAdapterExternalTime != 0)
+                alertString +="Server adapter external time (s): " + (serverAdapterExternalTime / 1000) + "\n";

             if (pushedMessageFlag)
             {
@@ -520,8 +520,8 @@
                     alertString += "Push one way time (s): " + (pushOneWayTime / 1000) + "\n";
                 if (originatingMessageSize != 0)
                     alertString += "Originating Message size (B): " + originatingMessageSize + "\n";
-      			if (serverPollDelay != 0)
-      				alertString +="Server poll delay (s): " + (serverPollDelay / 1000) + "\n";
+                if (serverPollDelay != 0)
+                    alertString +="Server poll delay (s): " + (serverPollDelay / 1000) + "\n";
             }

             return alertString;


Added minHeight and maxHeight fields to ComputedStyles

--- src/reprise/css/ComputedStyles.as
+++ src/reprise/css/ComputedStyles.as
@@ -24,7 +24,9 @@

 		public var width : int;
 		public var height : int;
-
+		public var minHeight : int;
+		public var maxHeight : int = int.MAX_VALUE;
+
 		public var intrinsicWidth : int;
 		public var intrinsicHeight : int;


def: 6248 change the BW time to on "readyToPlay". code cleanup

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@91521 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- plugins/bitrateDetectionPlugin/src/com/kaltura/kdpfl/plugin/component/BitrateDetectionMediator.as
+++ plugins/bitrateDetectionPlugin/src/com/kaltura/kdpfl/plugin/component/BitrateDetectionMediator.as
@@ -62,6 +62,8 @@
 		private var _forceBitrate:int;
 		private var _viewComp:bitrateDetectionPluginCode;

+		private var _executed:Boolean;
+
 		public function BitrateDetectionMediator(viewComponentObject:Object = null , forceBitrate:int = 0)
 		{
 			_forceBitrate = forceBitrate;
@@ -72,36 +74,21 @@
 		override public function listNotificationInterests():Array
 		{
 			return [
-				NotificationType.DO_SWITCH,
-				NotificationType.KDP_EMPTY,
-				NotificationType.KDP_READY,
-				NotificationType.PLAYER_PLAYED,
-				NotificationType.MEDIA_READY
+				NotificationType.READY_TO_PLAY,
+				NotificationType.PLAYER_PLAYED
 				];
 		}
-
-		private var _bandwidth:Number = 0;
-		private var _bandwidthByUser:Number = 0;

 		override public function handleNotification(notification:INotification):void
 		{
 			switch (notification.getName())
 			{
-				//in case the user switched the flavor manually
-				case NotificationType.DO_SWITCH:
-					_bandwidthByUser = int(notification.getBody())
-					break;
-				case NotificationType.MEDIA_READY:
-					if(_bandwidthByUser)
-					{
-						sendNotification(NotificationType.CHANGE_PREFERRED_BITRATE, {bitrate: _bandwidthByUser});
+				case NotificationType.READY_TO_PLAY:
+					//perform BW check once per player
+					if (_executed)
 						return;
-					}
-					if(_bandwidth)
-						sendNotification(NotificationType.CHANGE_PREFERRED_BITRATE, {bitrate: _bandwidth});
-					break;
-				case NotificationType.KDP_EMPTY:
-				case NotificationType.KDP_READY:
+					_executed = true;
+
 					var mediaProxy:MediaProxy = facade.retrieveProxy(MediaProxy.NAME) as MediaProxy;
 					if (!mediaProxy.vo.entry ||
 						((mediaProxy.vo.entry is KalturaMediaEntry) && (int(mediaProxy.vo.entry.mediaType)==KalturaMediaType.IMAGE)))
@@ -114,7 +101,7 @@
 							var highBR:int = mediaProxy.vo.kalturaMediaFlavorArray[mediaProxy.vo.kalturaMediaFlavorArray.length - 1].bitrate;
 							if (0.8 * highBR <= mediaProxy.vo.preferedFlavorBR)
 							{
-								trace ("***** no BW CHECK***");
+								trace ("--bitrate detection: no BW CHECK");
 								//// if the last preferred bitrate is higher or equals (with 20% error range) to the current highest bitrate,
 								//no need to perform BW check
 								return;
@@ -125,8 +112,6 @@
 					startDownload();
 					break;
 				case NotificationType.PLAYER_PLAYED:
-					if(_bandwidth)
-						return;
 					_playedPlayed = true;
 					break;
 			}
@@ -138,7 +123,7 @@
 		 */
 		public function startDownload() : void
 		{
-			trace ("bitrate detection: start download");
+			trace ("--bitrate detection: start download");
 			if (!_viewComp.downloadUrl)
 				return;

@@ -146,7 +131,7 @@
 			//disable autoPlay - will change it back once the bitrate detection will finish
 			if (_configProxy.vo.flashvars.autoPlay == "true")
 			{
-				trace ("bitrate detection: was auto play");
+				trace ("--bitrate detection: was auto play");
 				_configProxy.vo.flashvars.autoPlay = "false";
 				_wasAutoPlay = true;
 			}
@@ -200,7 +185,7 @@
 			_loader.contentLoaderInfo.removeEventListener( ProgressEvent.PROGRESS, onProgress );

 			var bitrateVal:int = _avgSpeed * 8;
-			trace("*** preferred bitrate for bitrate detection plugin:", bitrateVal);
+			trace("--preferred bitrate for bitrate detection plugin:", bitrateVal);

 			//for debugging - force a bitrate value to override the calculated one
 			if(_forceBitrate > 0)
@@ -209,8 +194,6 @@
 			}

 			sendNotification(NotificationType.CHANGE_PREFERRED_BITRATE, {bitrate: bitrateVal});
-
-			_bandwidth = bitrateVal;

 			finishDownloadProcess();
 		}
@@ -234,7 +217,7 @@
 			//Bypass: ignore #2124 error (loaded file is an unknown type)
 			if (!event.text || event.text.indexOf("Error #2124")==-1)
 			{
-				trace ("bitrate detection i/o error:", event.text);
+				trace ("--bitrate detection i/o error:", event.text);
 				finishDownloadProcess();
 			}
 		}


- bugfix: DocumentView didn't deal with focus handling of nested reprise Applications correctly

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

--- src/reprise/ui/DocumentView.as
+++ src/reprise/ui/DocumentView.as
@@ -270,7 +270,7 @@
 				m_focus.setFocus(false, method);
 			}
 			m_focus = element;
-			if (element)
+			if (element && element.document == this)
 			{
 				stage.focus = element;
 				element.setFocus(true, method);


Transferred from the Adobe Open Source Subversion Repository

Revision: 17840
Author:   matamel@adobe.com
Date:     2010-09-24T15:12:07.260023Z

Log Message:
-----------
Bug: BLZ-552 - AMFX should support Dictionary type
QA: Yes
Doc: Yes - document that the new Dictionary type is supported in AMFX (HTTPChannel) as well.

Details: Added the new Dictionary type to AMFX. This is the client side of the fix.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXDecoder.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXEncoder.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXEncoder.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXEncoder.as
@@ -13,8 +13,9 @@
 {

 import flash.utils.ByteArray;
+import flash.utils.Dictionary;
+import flash.utils.IExternalizable;
 import flash.utils.describeType;
-import flash.utils.IExternalizable;
 import flash.xml.XMLDocument;

 import mx.logging.Log;
@@ -56,10 +57,7 @@
     private static function encodePacket(xml:XML, obj:Object, headers:Array = null, context:AMFXContext = null):void
     {
         if (headers)
-        {
             encodeHeaders(xml, headers, context);
-        }
-
         encodeBody(xml, obj, context);
     }

@@ -122,6 +120,10 @@
                 if (context.log)
                     context.log.warn("Cannot serialize type Class");
             }
+            else if (obj is Dictionary)
+            {
+                encodeDictionary(xml, obj as Dictionary, context);
+            }
             else
             {
                 encodeObject(xml, obj, context);
@@ -149,8 +151,7 @@
         }
         else
         {
-            //Remember array object
-            context.addObject(array);
+            rememberObject(context, array);

             element = <array />;

@@ -228,13 +229,9 @@
     private static function encodeBoolean(xml:XML, bool:Boolean):void
     {
         if (bool)
-        {
             xml.appendChild(X_TRUE.copy());
-        }
-        else
-        {
+        else
             xml.appendChild(X_FALSE.copy());
-        }
     }

@@ -259,8 +256,7 @@
         }
         else
         {
-            //Remember date object
-            context.addObject(date);
+            rememberObject(context, date);

             element = <date />;
             element.appendChild(new XML(date.getTime().toString()));
@@ -284,6 +280,41 @@

     }

+    private static function encodeDictionary(xml:XML, dict:Dictionary, context:AMFXContext):void
+    {
+        var ref:int = context.findObject(dict);
+        var element:XML;
+        if (ref >= 0)
+        {
+            element = <ref />;
+            element.@["id"] = String(ref);
+        }
+        else
+        {
+            rememberObject(context, dict);
+
+            element = <dictionary />;
+
+            var classInfo:Object = ObjectUtil.getClassInfo(dict, null, CLASS_INFO_OPTIONS);
+            var properties:Array = classInfo.properties;
+            var count:uint = properties.length;
+
+            for (var i:uint = 0; i < count; i++)
+            {
+                var prop:Object = properties[i];
+                encodeValue(element, prop, context);
+                encodeValue(element, dict[prop], context);
+            }
+        }
+        element.@["length"] = String(count);
+        xml.appendChild(element);
+    }
+
+    private static function rememberObject(context:AMFXContext, obj:*):void
+    {
+        context.addObject(obj);
+    }
+
     private static function encodeObject(xml:XML, obj:*, context:AMFXContext):void
     {
         var ref:int = context.findObject(obj);
@@ -295,8 +326,7 @@
         }
         else
         {
-            //Remember object
-            context.addObject(obj);
+            rememberObject(context, obj);

             element = <object />;


Transferred from the Adobe Open Source Subversion Repository

Revision: 11966
Author:   aharui@adobe.com
Date:     2009-11-19T00:21:41.792188Z

Log Message:
-----------
Move focusSkinExclusions into Skin (from SparkSkin) and add suggestedFocusSkinExclusions to SkinnableComponent.

QE Notes: None
Doc Notes: new API (suggestedFocusSkinExclusions)
Bugs: SDK-19255
Reviewer: Glenn
API Change: Yes
Is noteworthy for integration: Yes
tests: checkintests mustella/gumbo/components/TextInput, TextArea, CheckBox, RadioButton

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HighlightBitmapCaptureSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/Skin.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/Skin.as
@@ -12,13 +12,18 @@
 // AdobePatentID="B976"

 package spark.components.supportClasses
-
-
 {

+import flash.display.DisplayObject;
+
 import mx.core.UIComponent;
+import mx.core.mx_internal;

 import spark.components.Group;
+import spark.core.DisplayObjectSharingMode;
+import spark.core.IGraphicElement;
+
+use namespace mx_internal;

 /**
  *  The Skin class defines the base class for all skins used by skinnable components.
@@ -71,6 +76,137 @@
 	{
 		super();
 	}
+
+    /**
+     *  List of id's of items that should be included when rendering the focus ring.
+     *  Only items of type DisplayObject or GraphicElement should be excluded. Items
+     *  of other types will be ignored.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get focusSkinExclusions():Array
+    {
+        return null;
+    }
+
+    private static var exclusionAlphaValues:Array;
+
+    /**
+     *  Called before a bitmap capture is made for this skin. The default implementation
+     *  excludes items in the focusSkinExclusions array.
+     */
+    public function beginHighlightBitmapCapture():Boolean
+    {
+		var exclusions:Array = focusSkinExclusions;
+        if (!exclusions)
+        {
+            if (this["hostComponent"] is SkinnableComponent)
+                exclusions = SkinnableComponent(this["hostComponent"]).suggestedFocusSkinExclusions;
+        }
+		var exclusionCount:Number = (exclusions == null) ? 0 : exclusions.length;
+
+		/* we'll store off the previous alpha of the exclusions so we
+		can restore them when we're done
+		*/
+		exclusionAlphaValues = [];
+		var needRedraw:Boolean = false;
+
+		for (var i:int = 0; i < exclusionCount; i++)
+		{
+            // skip if the part isn't there
+            if (!(exclusions[i] in this))
+                continue;
+
+			var ex:Object = this[exclusions[i]];
+			/* we're going to go under the covers here to try and modify alpha with the least
+			amount of disruption to the component.  For UIComponents, we go to Sprite's alpha property;
+			*/
+			if (ex is UIComponent)
+			{
+                exclusionAlphaValues[i] = (ex as UIComponent).$alpha;
+				(ex as UIComponent).$alpha = 0;
+			}
+			else if (ex is DisplayObject)
+			{
+                exclusionAlphaValues[i] = (ex as DisplayObject).alpha;
+				(ex as DisplayObject).alpha = 0;
+			}
+			else if (ex is IGraphicElement)
+			{
+				/* if we're lucky, the IGE has its own DisplayObject, and we can just trip its alpha.
+				If not, we're going to have to set it to 0, and force a redraw of the whole component */
+				var ge:IGraphicElement = ex as IGraphicElement;
+				if (ge.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
+				{
+                    exclusionAlphaValues[i] = ge.displayObject.alpha;
+					ge.displayObject.alpha = 0;
+				}
+				else
+				{
+                    exclusionAlphaValues[i] = ge.alpha;
+					ge.alpha = 0;
+					needRedraw = true;
+				}
+			}
+        }
+
+		/* if we excluded an IGE without its own DO, we need to update the component before grabbing the bitmap */
+		return needRedraw;
+    }
+
+    /**
+     *  Called after a bitmap capture is made for this skin. The default implementation
+     *  restores the items in the focusSkinExclusions array.
+     */
+    public function endHighlightBitmapCapture():Boolean
+    {
+        var exclusions:Array = focusSkinExclusions;
+        if (!exclusions)
+        {
+            if (this["hostComponent"] is SkinnableComponent)
+                exclusions = SkinnableComponent(this["hostComponent"]).suggestedFocusSkinExclusions;
+        }
+        var exclusionCount:Number = (exclusions == null) ? 0 : exclusions.length;
+        var needRedraw:Boolean = false;
+
+        for (var i:int=0; i < exclusionCount; i++)
+		{
+            // skip if the part isn't there
+            if (!(exclusions[i] in this))
+                continue;
+
+            var ex:Object = this[exclusions[i]];
+			if (ex is UIComponent)
+			{
+				(ex as UIComponent).$alpha = exclusionAlphaValues[i];
+			}
+			else if (ex is DisplayObject)
+			{
+				(ex as DisplayObject).alpha = exclusionAlphaValues[i];
+			}
+			else if (ex is IGraphicElement)
+			{
+				var ge:IGraphicElement = ex as IGraphicElement;
+				if (ge.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
+				{
+					ge.displayObject.alpha = exclusionAlphaValues[i];
+				}
+				else
+				{
+					ge.alpha = exclusionAlphaValues[i];
+                    needRedraw = true;
+				}
+			}
+		}
+
+        exclusionAlphaValues = null;
+
+        return needRedraw;
+    }
+
 }

 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/IDeferredInstantiationUIComponent.as
+++ frameworks/projects/framework/src/mx/core/IDeferredInstantiationUIComponent.as
@@ -15,6 +15,11 @@
 /**
  *  The IDeferredInstantiationUIComponent interface defines the interface for a component
  *  or object that defers instantiation.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface IDeferredInstantiationUIComponent extends IUIComponent
 {
@@ -30,6 +35,11 @@

 	/**
 	 *  @copy mx.core.UIComponent#cacheHeuristic
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
     function set cacheHeuristic(value:Boolean):void;

@@ -39,6 +49,11 @@

 	/**
 	 *  @copy mx.core.UIComponent#cachePolicy
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
     function get cachePolicy():String

@@ -48,6 +63,11 @@

 	/**
 	 *  @copy mx.core.UIComponent#descriptor
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
     function get descriptor():UIComponentDescriptor;

@@ -62,6 +82,11 @@

 	/**
 	 *  @copy mx.core.UIComponent#id
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
     function get id():String;

@@ -84,6 +109,11 @@
      *  If the indices are null, it creates a simple non-Array reference.
      *
      *  @param parentDocument The parent of this IUIComponent object.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function createReferenceOnParentDocument(
 						parentDocument:IFlexDisplayObject):void;
@@ -96,12 +126,22 @@
      *  If the indices are null, it deletes the simple non-Array reference.
      *
      *  @param parentDocument The parent of this IUIComponent object.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function deleteReferenceOnParentDocument(
 						parentDocument:IFlexDisplayObject):void;

 	/**
 	 *  @copy mx.core.UIComponent#executeBindings()
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function executeBindings(recurse:Boolean = false):void;

@@ -110,6 +150,11 @@
 	 *  as one of the event listeners.
 	 *
 	 *  @param effects An Array of strings of effect names.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function registerEffects(effects:Array):void;
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

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

 package spark.skins.mobile
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20005
Author:   cframpto@adobe.com
Date:     2011-01-28T19:36:52.199019Z

Log Message:
-----------
Fix up the text style metadata.  UITextFieldGridItemRenderer is based on TextField so it supports the old mx text styles not the Spark FTE text styles.  Remove verticalAlign style from DefaultGridItemRenderer since it is not currently supported.

QE notes: test setting some styles in UITextFieldGridItemRenderer
Doc notes:
Bugs: SDK-29192
Reviewer: Hans
Tests run: cyclone
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as
@@ -26,13 +26,6 @@
 import spark.components.gridClasses.IGridItemRenderer;

 use namespace mx_internal;
-
-//--------------------------------------
-//  Styles
-//--------------------------------------
-
-include "../../styles/metadata/BasicNonInheritingTextStyles.as"
-include "../../styles/metadata/BasicInheritingTextStyles.as"

 //--------------------------------------
 //  Events
@@ -64,23 +57,27 @@
  *  item renderer that displays a single text label.
  *  For applications displaying grid controls with large numbers of visible cells,
  *  this renderer provides optimum performance on Microsoft Windows.
- *  It is based on TextField, not FTE, so it lacks support for some Spark text features.
+ *  It is based on TextField, not the Flash Text Engine (FTE), so it lacks support for
+ *  some Spark text features and it does not support the FTE specific text styles.
  *
  *
UITextFieldGridItemRenderer inherits its the value of the
  *  layoutDirection property from its parent.
  *  It should not be set directly on UITextFieldGridItemRenderer.

  *
- *
You can control the label text wrapping by using the lineBreak style.
- *  For example, setting  lineBreak="explicit" and variableRowHeight="false"
- *  creates fixed height cells whose labels do not wrap.

+ *
You can control the label text wrapping by using the wordWrap property.
+ *  For example, setting wordWrap="false" and variableRowHeight="false"
+ *  creates fixed height cells whose labels do not wrap.
+ *  If you do not explicitly set the wordWrap property, wordWrap
+ *  will be set to the value of the grid's variableRowHeight property.

  *
  *
The UITextFieldGridItemRenderer class is not intended to be subclassed or copied.
- *  Create custom item renderers based on the  GridItemRenderer class.

+ *  Create custom item renderers based on the GridItemRenderer class.

  *
  *  @see spark.components.DataGrid
  *  @see spark.components.gridClasses.GridItemRenderer
  *  @see DefaultGridItemRenderer
- *
+ *  @see mx.core.FTETextField
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 2.5


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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

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

Modified Paths:
--------------
147 paths were modified

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

--- frameworks/projects/spark/src/mx/core/UIFTETextField.as
+++ frameworks/projects/spark/src/mx/core/UIFTETextField.as
@@ -57,6 +57,11 @@
  *
  *  @see flash.text.TextField
  *  @see mx.core.UITextFormat
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class UITLFTextField extends TLFTextField
 							implements IAutomationObject, IIMESupport,
@@ -160,6 +165,16 @@
         The width and height of the TextField are 4 pixels greater than
         the textWidth and textHeight.

+    *
+
+    *  @langversion 3.0
+
+    *  @playerversion Flash 10
+
+    *  @playerversion AIR 1.5
+
+    *  @productversion Flex 4
+
     */

     //--------------------------------------------------------------------------
@@ -247,6 +262,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function UITLFTextField()
     {
@@ -414,6 +434,11 @@

     /**
      *  The parent container or component for this component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override public function get parent():DisplayObjectContainer
     {
@@ -466,6 +491,11 @@
     /**
      *  The delegate object which is handling the automation related functionality.
      *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get automationDelegate():Object
     {
@@ -492,6 +522,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get automationName():String
     {
@@ -513,6 +548,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get automationValue():Array
     {
@@ -528,6 +568,11 @@

     /**
      *  The y-coordinate of the baseline of the first line of text.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get baselinePosition():Number
     {
@@ -571,6 +616,11 @@
      *  getQualifiedClassName() method in the flash.utils package.
      *  It will return a string such as
      *  "mx.controls.dataGridClasses::DataGridItemRenderer".

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get className():String
     {
@@ -591,6 +641,11 @@
      *  A reference to the document object associated with this UITextField object.
      *  A document object is an Object at the top of the hierarchy of a Flex application,
      *  MXML component, or AS component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get document():Object
     {
@@ -624,6 +679,11 @@
      *
      *  @default true
      *  @see flash.text.TextField
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get enabled():Boolean
     {
@@ -653,6 +713,11 @@

     /**
      *  @copy mx.core.UIComponent#explicitHeight
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get explicitHeight():Number
     {
@@ -681,6 +746,11 @@
      *  @see mx.core.UIComponent#explicitMaxHeight
      *
      *  @default NaN
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get explicitMaxHeight():Number
     {
@@ -701,6 +771,11 @@
      *  @see mx.core.UIComponent#explicitMaxWidth
      *
      *  @default NaN
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get explicitMaxWidth():Number
     {
@@ -713,6 +788,11 @@

     /**
      *  @copy mx.core.UIComponent#explicitMinHeight
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get explicitMinHeight():Number
     {
@@ -725,6 +805,11 @@

     /**
      *  @copy mx.core.UIComponent#explicitMinWidth
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get explicitMinWidth():Number
     {
@@ -743,6 +828,11 @@

     /**
      *  @copy mx.core.UIComponent#explicitWidth
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get explicitWidth():Number
     {
@@ -763,6 +853,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get focusPane():Sprite
     {
@@ -792,6 +887,11 @@
      *  around the text of the component.
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get ignorePadding():Boolean
     {
@@ -831,6 +931,11 @@
      *  @see flash.system.IMEConversionMode
      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get imeMode():String
     {
@@ -857,6 +962,11 @@

     /**
      *  @copy mx.core.UIComponent#includeInLayout
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get includeInLayout():Boolean
     {
@@ -898,6 +1008,11 @@
      *  prototype-linked chain.
      *  This object is set up by the initProtoChain() method.
      *  You typically never need to access this property directly.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get inheritingStyles():Object
     {
@@ -925,6 +1040,11 @@
     /**
      *  A flag that determines if an object has been through all three phases
      *  of layout validation (provided that any were required)
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get initialized():Boolean
     {
@@ -956,6 +1076,11 @@
     //----------------------------------
     /**
      *  @copy mx.core.UIComponent#isPopUp
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get isPopUp():Boolean
     {
@@ -975,6 +1100,11 @@

     /**
      *  @copy mx.core.UIComponent#maxHeight
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get maxHeight():Number
     {
@@ -987,6 +1117,11 @@

     /**
      *  @copy mx.core.UIComponent#maxWidth
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get maxWidth():Number
     {
@@ -999,6 +1134,11 @@

     /**
      *  @copy mx.core.UIComponent#measuredHeight
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get measuredHeight():Number
     {
@@ -1016,6 +1156,11 @@

     /**
      *  @copy mx.core.UIComponent#measuredMinHeight
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get measuredMinHeight():Number
     {
@@ -1035,6 +1180,11 @@

     /**
      *  @copy mx.core.UIComponent#measuredMinWidth
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get measuredMinWidth():Number
     {
@@ -1054,6 +1204,11 @@

     /**
      *  @copy mx.core.UIComponent#measuredWidth
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get measuredWidth():Number
     {
@@ -1071,6 +1226,11 @@

     /**
      *  @copy mx.core.UIComponent#minHeight
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get minHeight():Number
     {
@@ -1083,6 +1243,11 @@

     /**
      *  @copy mx.core.UIComponent#minWidth
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get minWidth():Number
     {
@@ -1104,6 +1269,11 @@
     /**
      *  The moduleFactory that is used to create TextFields in the correct SWF context. This is necessary so that
      *  embedded fonts will work.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get moduleFactory():IFlexModuleFactory
     {
@@ -1130,6 +1300,11 @@

     /**
      *  @copy mx.core.UIComponent#nestLevel
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get nestLevel():int
     {
@@ -1173,6 +1348,11 @@
      *  prototype-linked chain.
      *  This object is set up by the initProtoChain() method.
      *  You typically never need to access this property directly.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get nonInheritingStyles():Object
     {
@@ -1193,6 +1373,11 @@

     /**
      *  @copy mx.core.UIComponent#percentHeight
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get percentHeight():Number
     {
@@ -1212,6 +1397,11 @@

     /**
      *  @copy mx.core.UIComponent#percentWidth
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get percentWidth():Number
     {
@@ -1237,6 +1427,11 @@
     /**
      *  Set to true after the createChildren()
      *  method creates any internal component children.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get processedDescriptors():Boolean
     {
@@ -1263,6 +1458,11 @@

     /**
      *  @copy mx.core.UIComponent#styleName
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get styleName():Object /* String, CSSStyleDeclaration, or UIComponent */
     {
@@ -1296,6 +1496,11 @@

     /**
      *  @copy mx.core.UIComponent#systemManager
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get systemManager():ISystemManager
     {
@@ -1329,6 +1534,11 @@
      *  even when the text is empty.
      *  In this case, it returns what the textHeight would be
      *  if the text weren't empty.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get nonZeroTextHeight():Number
     {
@@ -1355,6 +1565,11 @@

     /**
      *  @copy mx.core.UIComponent#toolTip
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get toolTip():String
     {
@@ -1378,6 +1593,11 @@

     /**
      *  @copy mx.core.UIComponent#tweeningProperties
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get tweeningProperties():Array
     {
@@ -1404,6 +1624,11 @@
     /**
      *  A flag that determines if an object has been through all three phases
      *  of layout validation (provided that any were required)
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get updateCompletePendingFlag():Boolean
     {
@@ -1455,6 +1680,11 @@

         dispatchEvent(new Event("textInsert"));
     }
+*
+*  @langversion 3.0
+*  @playerversion Flash 10
+*  @playerversion AIR 1.5
+*  @productversion Flex 4
 */

     /**
@@ -1479,6 +1709,11 @@
      *
      *
This method is required by the IUIComponent interface,
      *  but it actually does nothing for a UITextField.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function initialize():void
     {
@@ -1486,6 +1721,11 @@

     /**
      *  @copy mx.core.UIComponent#getExplicitOrMeasuredWidth()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function getExplicitOrMeasuredWidth():Number
     {
@@ -1494,6 +1734,11 @@

     /**
      *  @copy mx.core.UIComponent#getExplicitOrMeasuredHeight()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function getExplicitOrMeasuredHeight():Number
     {
@@ -1507,6 +1752,11 @@
      *  and false to make it invisible.
      *
      *  @param noEvent true to suppress generating an event when you change visibility.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function setVisible(visible:Boolean, noEvent:Boolean = false):void
     {
@@ -1515,6 +1765,11 @@

     /**
      *  @copy mx.core.UIComponent#setFocus()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function setFocus():void
     {
@@ -1534,6 +1789,11 @@
      *
      *  @see mx.core.UITextFormat
      *  @see flash.text.TextField
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function getUITextFormat():UITextFormat
     {
@@ -1554,6 +1814,11 @@

     /**
      *  @copy mx.core.UIComponent#move()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function move(x:Number, y:Number):void
     {
@@ -1567,6 +1832,11 @@

     /**
      *  @copy mx.core.UIComponent#setActualSize()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function setActualSize(w:Number, h:Number):void
     {
@@ -1580,6 +1850,11 @@

     /**
      *  @copy mx.core.UIComponent#getStyle()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function getStyle(styleProp:String):*
     {
@@ -1604,6 +1879,11 @@
      *  @param styleProp Name of the style property.
      *
      *  @param newValue New value for the style.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function setStyle(styleProp:String, value:*):void
     {
@@ -1615,6 +1895,11 @@
      *  You typically never need to call this method.
      *
      *  @param p The parent of this UITextField object.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function parentChanged(p:DisplayObjectContainer):void
     {
@@ -1639,6 +1924,11 @@

     /**
      *  @copy mx.core.UIComponent#styleChanged()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function styleChanged(styleProp:String):void
     {
@@ -1654,6 +1944,11 @@

     /**
      *  @copy mx.core.UIComponent#validateNow()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function validateNow():void
     {
@@ -1730,6 +2025,11 @@
      *  @return A TextFormat object.
      *
      *  @see flash.text.TextFormat
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function getTextStyles():TextFormat
     {
@@ -1767,6 +2067,11 @@
      *  Sets the font color of the text.
      *
      *  @param color The new font color.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function setColor(color:uint):void
     {
@@ -1779,6 +2084,11 @@

     /**
      *  @copy mx.core.UIComponent#invalidateSize()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function invalidateSize():void
     {
@@ -1787,6 +2097,11 @@

     /**
      *  @copy mx.core.UIComponent#invalidateDisplayList()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function invalidateDisplayList():void
     {
@@ -1795,6 +2110,11 @@

     /**
      *  @copy mx.core.UIComponent#invalidateProperties()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function invalidateProperties():void
     {
@@ -1809,6 +2129,11 @@
      *  such as "..." will be used.
      *
      *  @return true if the text needed truncation.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function truncateToFit(truncationIndicator:String = null):Boolean
     {
@@ -1910,6 +2235,11 @@
      *  @return true if the child is parented or owned by this UITextField object.
      *
      *  @see #owner
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function owns(child:DisplayObject):Boolean
     {
@@ -1938,6 +2268,11 @@
      *  to the component that popped it up.

      *
      *
The default value is the value of the parent property.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get owner():DisplayObjectContainer
     {
@@ -1984,6 +2319,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function replayAutomatableEvent(event:Event):Boolean
     {


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

--- frameworks/projects/spark/src/spark/effects/Rotate3D.as
+++ frameworks/projects/spark/src/spark/effects/Rotate3D.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 spark.effects
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 16696
Author:   cframpto@adobe.com
Date:     2010-06-28T14:48:27.485336Z

Log Message:
-----------
The following changes apply to Spark DataGrid only.   Code reviews have been deferred until the implementation is closer to completion.

Initial pass at getting the column header bar mouse event handlers framework set up for both header and separator events.  The header events use the grid events and there is a new set of events for the separators (in GridEvent for now).  In Grid, added resizeableColumns.  For a column to resize, this must be true and the individual column must be resizeable.  Added getColumnIndexAt() to GridLayout.  Added columnResizeIndicator to the CHB skin.

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

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

--- frameworks/projects/spark/src/spark/events/GridEvent.as
+++ frameworks/projects/spark/src/spark/events/GridEvent.as
@@ -140,6 +140,15 @@
      */
     public static const GRID_ROLL_OUT:String = "gridRollOut";

+    // TBD: do these belong here or somewhere else?
+    // TBD: once home is found they need to be documented
+    public static const SEPARATOR_MOUSE_DRAG:String = "separatorMouseDrag";
+    public static const SEPARATOR_CLICK:String = "separatorClick";
+    public static const SEPARATOR_MOUSE_DOWN:String = "separatorMouseDown";
+    public static const SEPARATOR_MOUSE_UP:String = "separatorMouseUp";
+    public static const SEPARATOR_ROLL_OUT:String = "separatorOut";
+    public static const SEPARATOR_ROLL_OVER:String = "separatorOver";
+
     //--------------------------------------------------------------------------
     //
     //  Constructor


Changed TextAreaView to use VScrollBar.

Changed TextAreaView to use VScrollBar.

--- frameworks/projects/HTML/as/src/org/apache/flex/html/beads/TextAreaView.as
+++ frameworks/projects/HTML/as/src/org/apache/flex/html/beads/TextAreaView.as
@@ -31,7 +31,7 @@
     import org.apache.flex.core.ValuesManager;
 	import org.apache.flex.html.beads.models.ScrollBarModel;
 	import org.apache.flex.html.supportClasses.Border;
-	import org.apache.flex.html.supportClasses.ScrollBar;
+	import org.apache.flex.html.supportClasses.VScrollBar;

     /**
      *  The TextAreaView class is the default view for
@@ -80,7 +80,7 @@
 			return _border;
 		}

-		private var _vScrollBar:ScrollBar;
+		private var _vScrollBar:VScrollBar;

         /**
          *  The vertical ScrollBar.
@@ -90,7 +90,7 @@
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-		public function get vScrollBar():ScrollBar
+		public function get vScrollBar():VScrollBar
 		{
 			if (!_vScrollBar)
 				_vScrollBar = createScrollBar();
@@ -113,7 +113,7 @@
 			_border.addBead(new (ValuesManager.valuesImpl.getValue(value, "iBorderBead")) as IBead);
             IParent(host).addElement(border);

-			var vb:ScrollBar = vScrollBar;
+			var vb:VScrollBar = vScrollBar;

 			// Default size
 			var ww:Number = DisplayObject(host).width;
@@ -130,10 +130,10 @@
 			sizeChangedHandler(null);
 		}

-		private function createScrollBar():ScrollBar
-		{
-			var vsb:ScrollBar;
-			vsb = new ScrollBar();
+		private function createScrollBar():VScrollBar
+		{
+			var vsb:VScrollBar;
+			vsb = new VScrollBar();
 			var vsbm:ScrollBarModel = new ScrollBarModel();
 			vsbm.maximum = 100;
 			vsbm.minimum = 0;
@@ -143,7 +143,6 @@
 			vsbm.stepSize = 1;
 			vsbm.value = 0;
 			vsb.model = vsbm;
-			vsb.width = 12;
             IParent(host).addElement(vsb);

 			vsb.addEventListener("scroll", scrollHandler);


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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

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

Modified Paths:
--------------
151 paths were modified

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
@@ -24,16 +24,31 @@
  *  as a result of user interaction.
  *
  *  @eventType flash.events.Event.CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [Event(name="change", type="flash.events.Event")]

 /**
  *  Normal State
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [SkinState("normal")]

 /**
  *  Disabled State
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 [SkinState("disabled")]

@@ -47,6 +62,11 @@
  *
  *  @see mx.components.baseClasses.FxSlider
  *  @see mx.components.baseClasses.FxScrollBar
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class FxTrackBase extends FxRange
 {
@@ -60,6 +80,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function FxTrackBase():void
     {
@@ -81,6 +106,11 @@
      *  Updates to the value property
      *  automatically update the position of the thumb button
      *  with respect to the track.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var thumb:FxButton;

@@ -90,6 +120,11 @@
      *  A skin part that defines a button
      *  that when  pressed sets the value property
      *  to the value corresponding with the current button position on the track.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var track:FxButton;

@@ -115,6 +150,11 @@
      *  Enable (true) or disable (false) this component.
      *  This property also enables and disables any of the
      *  skin parts for this component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override public function get enabled():Boolean
     {
@@ -228,6 +268,11 @@
      *
      *  @return Point object rerpresenting, in the local coordinates of
      *  the thumb button, where the last mouse down event occurred.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function get clickOffset():Point
     {
@@ -250,6 +295,11 @@
      *  and valueToPosition() methods.

      *
      *  @return The size of the logical track.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function get trackSize():Number
     {
@@ -269,6 +319,11 @@
      *  the pointToPosition() and valueToPosition() methods.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function get thumbSize():Number
     {
@@ -308,6 +363,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function getCurrentSkinState():String
     {
@@ -316,6 +376,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function partAdded(partName:String, instance:Object):void
     {
@@ -339,6 +404,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function partRemoved(partName:String, instance:Object):void
     {
@@ -362,6 +432,11 @@
      *
      *  @param value true to enable the skin parts,
      *  and false to disable them.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function enableSkinParts(value:Boolean):void
     {
@@ -382,6 +457,11 @@
      *
      *  @return A value, between minimum and maximum,
      *  corresponding to position.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function positionToValue(position:Number):Number
     {
@@ -407,6 +487,11 @@
      *  @param value A value, between minimum and maximum.
      *
      *  @return A position on the track corresponding to value.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function valueToPosition(value:Number):Number
     {
@@ -438,6 +523,11 @@
      *  track.
      *
      *  @return The posisiton on the track.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function pointToPosition(localX:Number, localY:Number):Number
     {
@@ -451,6 +541,11 @@
      *  the thumb button.

      *
      *  @param thumbPos The new position of the thumb button.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function positionThumb(thumbPos:Number):void {}

@@ -461,6 +556,11 @@
      *  the thumb button.

      *
      *  @param thembSize The new size of the thumb button.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function sizeThumb(thumbSize:Number):void {}

@@ -473,6 +573,11 @@
      *
      *  @return The size of the thumb button.
      *  The default size is 0.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function calculateThumbSize():Number
     {
@@ -495,6 +600,11 @@
      *
      *  @return The value that corresponds to the new track position
      *  as calculated by the nearestValidValue() method.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function calculateNewValue(prevValue:Number, event:MouseEvent):Number
     {
@@ -550,6 +660,11 @@
     /**
      *  Handles the mouseWheel event when the component is in focus. The thumb is
      *  moved by the amount of the mouse event delta multiplied by the stepSize.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function system_mouseWheelHandler(event:MouseEvent):void
     {


Don't allow preview or export on invalid xfl

--- exporter/src/main/as/flump/export/Exporter.as
+++ exporter/src/main/as/flump/export/Exporter.as
@@ -44,10 +44,16 @@
         _win = win;
         _errors = _win.errors;
         _libraries = _win.libraries;
+        function updateExportEnabled (..._) :void {
+            _win.export.enabled = _exportChooser.dir != null &&
+              _libraries.selectedItems.some(function (status :DocStatus, ..._) :Boolean {
+                return status.isValid;
+            });
+        }
         _libraries.addEventListener(GridSelectionEvent.SELECTION_CHANGE, function (..._) :void {
             log.info("Changed", "selected", _libraries.selectedIndices);
-            _win.export.enabled = _libraries.selectedIndices.length > 0;
-            _win.preview.enabled = _libraries.selectedIndices.length == 1;
+            updateExportEnabled();
+            _win.preview.enabled = _libraries.selectedItem.isValid;
         });
         _win.export.addEventListener(MouseEvent.CLICK, function (..._) :void {
             for each (var status :DocStatus in _libraries.selectedItems) {
@@ -63,6 +69,8 @@
         setImport(_importChooser.dir);
         _exportChooser =
             new DirChooser(_settings, "EXPORT_ROOT", _win.exportRoot, _win.browseExport);
+        _exportChooser.changed.add(updateExportEnabled);
+
     }

     protected function setImport (root :File) :void {
@@ -217,6 +225,8 @@
         });
     }

+    public function get isValid () :Boolean { return valid == CHECK; }
+
     public function updateModified (newModified :Ternary) :void {
         changeField("modified", function (..._) :void {
             if (newModified == Ternary.TRUE) modified = CHECK;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17943
Author:   jszeto@adobe.com
Date:     2010-09-29T22:22:15.975011Z

Log Message:
-----------
ViewMenu initial checkin

Implemented ViewMenu, ViewMenuItem, ViewMenuLayout and all relevant skins.
Integrated into MobileApplicationBase and MobileApplication
Includes PARB review changes
Appearance will change once the visual design has been completed

QE notes: Ready to test!
Doc notes: Needs an ASDoc pass
Bugs: none
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/layouts/ViewMenuLayout.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/layouts</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewMenuItem.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as
@@ -0,0 +1,61 @@
+package spark.skins.mobile
+{
+import flash.display.Graphics;
+
+import spark.skins.mobile.supportClasses.ButtonSkinBase;
+
+/**
+ *  Default skin for ViewMenuItem. Supports a label, icon and iconPlacement and draws a background.
+ */
+public class ViewMenuItemSkin extends ButtonSkinBase
+{
+    public function ViewMenuItemSkin()
+    {
+        super();
+    }
+
+    /**
+     *  @private
+     */
+    override protected function commitCurrentState():void
+    {
+        super.commitCurrentState();
+        invalidateDisplayList();
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        // Draw the background
+        graphics.clear();
+
+        // No border. The ViewMenuLayout will draw separators
+        graphics.lineStyle(0,0,0);
+
+        // TODO (jszeto) Need to figure out which styles are supported
+        var bgColor:uint = getStyle("backgroundColor");
+        var bgAlpha:Number = 1
+
+        if (currentState == "down")
+        {
+            bgColor = getStyle("selectionColor");
+        }
+        else if (currentState == "showsCaret")
+        {
+            bgColor = 0xCC6600;
+        }
+        else
+        {
+            bgAlpha = getStyle("backgroundAlpha");
+        }
+
+        graphics.beginFill(bgColor, bgAlpha);
+        graphics.drawRect(0,0,unscaledWidth, unscaledHeight);
+        graphics.endFill();
+    }
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17734
Author:   hmuller@adobe.com
Date:     2010-09-16T16:59:27.262520Z

Log Message:
-----------
Added support for explicitWidth,Height to DefaultGridItemRenderer and UITextFieldGridItemRenderer.

Although UITextField and UIFTETextField both sport explicitWidth,Height properties (but not a common class or interface that defines them) they don't automatically set these properties when you set their width,height and they reset width,height when you call setActualSize().     Since GridLayout only uses setlLayoutBounds() to resize a renderer, I set a flag there so that the concomitant calls to 'set width,height' don't also set explicitWidth,Height.

Removed the renderer constructor code that initialized the renderers actual width to 4096.   We're already dealing with that in createTypicalItemRenderer(), so the constructor code isn't needed.

QE notes: Mustella test case DataGrid_Properties_IR_WidthAll100Height needs to be updated
Doc notes:
Bugs:
Reviewer: Carol, Kevin
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
@@ -75,15 +75,7 @@
         inheritingStyles = StyleProtoChain.STYLE_UNINITIALIZED;
         nonInheritingStyles = StyleProtoChain.STYLE_UNINITIALIZED;

-        // The default width of a TextField is 100.  If autoWrap is true, and
-        // multiline is true, the measured text will wrap if it is wider than
-        // the TextField's width. This is not what we want when measuring the
-        // width of typicalItem columns that lack an explicit GridColumn width.
-
-        setActualSize(4096, NaN);  // 4096 is just an arbitrarily large value
-
         addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler);
-
     }

 include "TextFieldGridItemRendererInclude.as"


Fix getDataProviderAt

Fix getDataProviderAt

M Change _providers type from vector.<DataProvider> into
vector.<IDataProvider>

--- src/aerys/minko/type/data/DataBindings.as
+++ src/aerys/minko/type/data/DataBindings.as
@@ -15,8 +15,8 @@
 		private var _attributeToProviders			: Dictionary		= new Dictionary(); // dic[Vector.<IDataProvider>[]]
 		private var _attributeToProvidersAttrNames	: Dictionary		= new Dictionary(); // dic[Vector.<String>[]]

-		private var _numProviders					: uint 					= 0;
-		private var _providers						: Vector.<DataProvider> = new <DataProvider>[];
+		private var _numProviders					: uint 						= 0;
+		private var _providers						: Vector.<IDataProvider> 	= new <IDataProvider>[];

 		public function get numProviders() : uint
 		{
@@ -133,7 +133,7 @@
 				getPropertyChangedSignal(bindingName).execute(this, bindingName, null);
 		}

-		public function getDataProviderAt(index : uint) : DataProvider
+		public function getDataProviderAt(index : uint) : IDataProvider
 		{
 			if (index >= _numProviders)
 				throw new ArgumentError('Index out of bounds.');


added DataBindings.getDataProvider(propertyName) to retrieve a data provider from a property name

F DataBindings.addProperty() will now remove the property first if it already exists

--- src/aerys/minko/type/data/DataBindings.as
+++ src/aerys/minko/type/data/DataBindings.as
@@ -14,6 +14,7 @@
 		private var _bindings			: Dictionary		= new Dictionary(true);
 		private var _values				: Object			= new Object();
 		private var _properties			: Vector.<String>	= new <String>[];
+		private var _propertyToProvider	: Object			= {};

 		private var _propertyChanged	: Object			= new Object();

@@ -68,6 +69,16 @@
 			dataProvider.changed.remove(dataProviderChangedHandler);

 			return this;
+		}
+
+		public function getDataProvider(propertyName : String) : IDataProvider
+		{
+			var provider : IDataProvider = _propertyToProvider[propertyName] as IDataProvider;
+
+			if (!provider)
+				throw new Error('The property \'' + propertyName + '\' has no data provider.');
+
+			return provider;
 		}

 		public function getProperty(propertyName : String) : Object
@@ -108,6 +119,9 @@
 									source			: IDataProvider,
 									key				: Object	= null) : DataBindings
 		{
+			if (_propertyToProvider[propertyName])
+				removeProperty(propertyName);
+
 			var bindingTable : Object = _bindings[source] as Object;

 			if (!bindingTable)
@@ -212,6 +226,7 @@
 			_properties.length = numProperties;

 			delete _values[propertyName];
+			delete _propertyToProvider[propertyName];
 //			delete _propertyChanged[propertyName];

 			signalChange(propertyName, null);


Fixed some layout problems with _upping submenus.  Also, the _fitting member variable was checked
in submenu layout, but it could never get set to anything but null.  So, now it just assumes that
it should be fitting to the stage and does that (it would previously just put the menu wherever
its broken math put it, and not checking against the bounds of anything).  I have a slight
inclination to bring back a method for supplying a fitting Rectangle so that it can be fitting these
menus between the header bar and control bar.  Maybe I'll just do that next.

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@518 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flex/CommandMenu.as
+++ src/as/com/threerings/flex/CommandMenu.as
@@ -125,7 +125,6 @@
     {
         _upping = popUpwards;
         _lefting = popLeftwards;
-        _fitting = null;
         var r :Rectangle = trigger.getBounds(trigger.stage);
         show(_lefting ? r.left : r.right, _upping ? r.top : r.bottom);
     }
@@ -138,7 +137,6 @@
     {
         _upping = popUpwards;
         _lefting = popLeftwards;
-        _fitting = null;
         show(mx, my);
     }

@@ -149,7 +147,6 @@
     {
         _upping = popUpwards;
         _lefting = popLeftwards;
-        _fitting = null;
         show(); // our show, with no args, pops at the mouse
     }

@@ -247,30 +244,32 @@
         var submenu :Menu = IMenuItemRenderer(row).menu;
         var lefting :Boolean = _lefting;
         var upping :Boolean = _upping;
-        if (_fitting != null) {
-            if (submenu.x + submenu.getExplicitOrMeasuredWidth() > _fitting.right) {
-                lefting = true;
-            }
-            if (submenu.y + submenu.getExplicitOrMeasuredHeight() > _fitting.bottom) {
-                upping = true;
-            }
-        }
+        var fitting :Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
+        if (submenu.x + submenu.getExplicitOrMeasuredWidth() > fitting.right) {
+            lefting = true;
+        }
+        if (submenu.y + submenu.getExplicitOrMeasuredHeight() > fitting.bottom) {
+            upping = true;
+        }
+
         if (lefting) {
             submenu.x -= submenu.getExplicitOrMeasuredWidth();
         }
         if (upping) {
-            submenu.y -= (submenu.getExplicitOrMeasuredHeight() - DisplayObject(row).height);
-        }
-        // if we've poped out of the boundaries, just snap it to the lower right corner
-        if (_fitting != null) {
-            if (submenu.x < _fitting.left) {
-                submenu.x = Math.max(
-                        _fitting.right - submenu.getExplicitOrMeasuredWidth(), _fitting.left);
-            }
-            if (submenu.y < _fitting.top) {
-                submenu.y = Math.max(
-                        _fitting.bottom - submenu.getExplicitOrMeasuredHeight(), _fitting.top);
-            }
+            var displayObj :DisplayObject = DisplayObject(row);
+            var rowLoc :Point = displayObj.localToGlobal(new Point(row.x, row.y));
+            submenu.y = rowLoc.y - submenu.getExplicitOrMeasuredHeight() + displayObj.height;
+        }
+
+        // if we've poped out of the boundaries, just snap it to the lower right corner, or upper
+        // if upping, left if lefting
+        if (submenu.x < fitting.left) {
+            submenu.x = lefting ? 0 : Math.max(
+                    fitting.right - submenu.getExplicitOrMeasuredWidth(), fitting.left);
+        }
+        if (submenu.y < fitting.top) {
+            submenu.y = upping ? 0 : Math.max(
+                    fitting.bottom - submenu.getExplicitOrMeasuredHeight(), fitting.top);
         }
     }

@@ -322,7 +321,6 @@
     }

     protected var _dispatcher :IEventDispatcher;
-    protected var _fitting :Rectangle;
     protected var _lefting :Boolean = false;
     protected var _upping :Boolean = false;
 }