Transferred from the Adobe Open Source Subversion Repository

Revision: 17257
Author:   chiedozi@adobe.com
Date:     2010-08-10T19:11:19.352602Z

Log Message:
-----------
Made the _source property in ViewNavigatorSection mx_internal so QE could access it
Updated SlideViewTransition to use ViewTransition's effect property instead of creating one internally

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
@@ -176,7 +176,7 @@
             targets.push(nextView);
         }

-        var effect:Parallel = new Parallel();
+        effect = new Parallel();

         // Determine if we are doing an internal actionbar transition
         // or sliding in a new one
@@ -188,7 +188,7 @@
                 currentView.overlayControls == nextView.overlayControls)
             {
                 doInternalActionBarAnimation = true;
-                appendActionBarAnimations(effect);
+                appendActionBarAnimations(Parallel(effect));
             }
             else
             {
@@ -251,7 +251,7 @@
         }

 		// Create view animations
-		effect.addChild(createViewAnimations(targets));
+		Parallel(effect).addChild(createViewAnimations(targets));
 		effect.addEventListener(EffectEvent.EFFECT_END, transitionComplete);

 		effect.play();
@@ -349,8 +349,10 @@

         if (tabBar)
             tabBar.includeInLayout = tabBarExplicitIncludeInLayout;
-
+
+        // TODO (chiedozi): Comment why clean up happens before transitionComplete
         super.transitionComplete(event);
+        effect = null;
     }

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


Bugfix: feil avdekket under test av ticket:30 Oppsto feil ved utenlandsreise under 1 døgn, men over 12 timer, ved innlegging av kommentar i forbindelse med kompensasjonstillegg.

--- app/src/no/makingwaves/cust/dss/code/TravelExpenceCalculator.as
+++ app/src/no/makingwaves/cust/dss/code/TravelExpenceCalculator.as
@@ -109,9 +109,12 @@
 				amount += calculateInternationalAllowance(rateRule);

 				// new rule from 01.03.2009, additonal compensation for travelling abroad
-				if (travelDateInfo.total_hours > 12 && travelDateInfo.total_24hours >= 1) {
-					if (travelDateInfo.total_hours > 24)
+				if (travelDateInfo.total_hours > 12) {
+					if (travelDateInfo.total_hours > 24) {
 						days = travelDateInfo.days;
+					} else if (travelDateInfo.total_24hours == 0) {
+						days = 1;
+					}

 					// add additional allowance for international travels
 					var compensationRule:TravelRateRuleVO = this.getRate("allowance_international");


simplified implementation to check campaign existence to reduce native implementations

--- source/actionscript/agnostic/src/eu/alebianco/air/extensions/analytics/Tracker.as
+++ source/actionscript/agnostic/src/eu/alebianco/air/extensions/analytics/Tracker.as
@@ -125,10 +125,10 @@
 	}

 	public function hasCampaignData():Boolean {
-		return handleResultFromExtension(context.call("hasCampaignData"), Boolean) as Boolean;
+		return (handleResultFromExtension(context.call("getCampaignData"), String) as String) != null;
 	}
 	public function hasReferrer():Boolean {
-		return handleResultFromExtension(context.call("hasReferrer"), Boolean) as Boolean;
+		return (handleResultFromExtension(context.call("getReferrer"), String) as String) != null;
 	}
 	public function getCampaignData():String {
 		return handleResultFromExtension(context.call("getCampaignData"), String) as String;


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

--- frameworks/projects/rpc/src/mx/messaging/events/ChannelEvent.as
+++ frameworks/projects/rpc/src/mx/messaging/events/ChannelEvent.as
@@ -0,0 +1,239 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.messaging.events
+{
+
+import flash.events.Event;
+import mx.messaging.Channel;
+
+/**
+ *  The ChannelEvent is used to propagate channel events within the messaging system.
+ */
+public class ChannelEvent extends Event
+{
+    //--------------------------------------------------------------------------
+    //
+    // Static Constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The CONNECT event type; indicates that the Channel connected to its
+     *  endpoint.
+     *
The value of this constant is "channelConnect".

+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
channel	The channel that generated this event.

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

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

+     *
reconnecting	 Indicates whether the channel
+     *       that generated this event is reconnecting.

+     *
rejected	 Indicates whether the channel that
+     *       generated this event was rejected. This would be true in the event that
+     *       the channel has been disconnected due to inactivity and should not attempt to
+     *       failover or connect on an alternate channel.

+     *

+     *  @eventType channelConnect
+     */
+    public static const CONNECT:String = "channelConnect";
+
+    /**
+     *  The DISCONNECT event type; indicates that the Channel disconnected from its
+     *  endpoint.
+     *
The value of this constant is "channelDisconnect".

+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
channel	The channel that generated this event.

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

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

+     *
reconnecting	 Indicates whether the channel
+     *       that generated this event is reconnecting.

+     *
rejected	 Indicates whether the channel that
+     *       generated this event was rejected. This would be true in the event that
+     *       the channel has been disconnected due to inactivity and should not attempt to
+     *       failover or connect on an alternate channel.

+     *

+     *  @eventType channelDisconnect
+     */
+    public static const DISCONNECT:String = "channelDisconnect";
+
+    //--------------------------------------------------------------------------
+    //
+    // Static Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Utility method to create a new ChannelEvent that doesn't bubble and
+     *  is not cancelable.
+     *
+     *  @param type The ChannelEvent type.
+     *
+     *  @param channel The Channel generating the event.
+     *
+     *  @param reconnecting Indicates whether the Channel is in the process of
+     *  reconnecting or not.
+     *
+     *  @param rejected Indicates whether the Channel's connection has been rejected,
+     *  which suppresses automatic reconnection.
+     *
+     *  @param connected Indicates whether the Channel that generated this event
+     *  is already connected.
+     *
+     *  @return New ChannelEvent.
+     */
+    public static function createEvent(type:String, channel:Channel = null,
+            reconnecting:Boolean = false, rejected:Boolean = false, connected:Boolean = false):ChannelEvent
+    {
+        return new ChannelEvent(type, false, false, channel, reconnecting, rejected, connected);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructs an instance of this event with the specified type and Channel
+     *  instance.
+     *
+     *  @param type The ChannelEvent type.
+     *
+     *  @param bubbles Specifies whether the event can bubble up the display
+     *  list hierarchy.
+     *
+     *  @param cancelable Indicates whether the behavior associated with the
+     *  event can be prevented; used by the RPC subclasses.
+     *
+     *  @param channel The Channel generating the event.
+     *
+     *  @param reconnecting Indicates whether the Channel is in the process of
+     *  reconnecting or not.
+     *
+     *  @param rejected Indicates whether the Channel's connection has been rejected,
+     *  which suppresses automatic reconnection.
+     *
+     *  @param connected Indicates whether the Channel that generated this event
+     *  is already connected.
+     */
+    public function ChannelEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false,
+            channel:Channel = null, reconnecting:Boolean = false, rejected:Boolean = false,
+            connected:Boolean = false)
+    {
+        super(type, bubbles, cancelable);
+
+        this.channel = channel;
+        this.reconnecting = reconnecting;
+        this.rejected = rejected;
+        this.connected = connected;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The Channel that generated this event.
+     */
+    public var channel:Channel;
+
+    /**
+     * Indicates whether the Channel that generated this event is already connected.
+     */
+    public var connected:Boolean;
+
+    /**
+     *  Indicates whether the Channel that generated this event is reconnecting.
+     */
+    public var reconnecting:Boolean;
+
+    /**
+     *  Indicates whether the Channel that generated this event was rejected.
+     *  This would be true in the event that the channel has been
+     *  disconnected due to inactivity and should not attempt to failover or
+     *  connect on an alternate channel.
+     */
+    public var rejected:Boolean;
+
+    //--------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  channelId
+	//----------------------------------
+
+    /**
+     * @private
+     */
+    public function get channelId():String
+    {
+        if (channel != null)
+        {
+            return channel.id;
+        }
+        return null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Overridden Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Clones the ChannelEvent.
+     *
+     *  @return Copy of this ChannelEvent.
+     */
+    override public function clone():Event
+    {
+        return new ChannelEvent(type, bubbles, cancelable, channel, reconnecting, rejected, connected);
+    }
+
+    /**
+     *  Returns a string representation of the ChannelEvent.
+     *
+     *  @return String representation of the ChannelEvent.
+     */
+    override public function toString():String
+    {
+        return formatToString("ChannelEvent", "channelId", "reconnecting", "rejected", "type", "bubbles", "cancelable", "eventPhase");
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 16560
Author:   smgilson@adobe.com
Date:     2010-06-14T21:14:37.093170Z

Log Message:
-----------
Fix ASDoc version tags for several Flex 4 classes makred as Flex 3

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/NavigatorContent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/LoaderInvalidationEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/ListDropIndicator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/spark/src/spark/core/SpriteVisualElement.as
+++ frameworks/projects/spark/src/spark/core/SpriteVisualElement.as
@@ -162,7 +162,7 @@
         features.layoutX = x;
         features.layoutY = y;
         features.layoutZ = z;
-		features.layoutWidth = _width;  // for the mirror transform
+        features.layoutWidth = _width;  // for the mirror transform

         // Initialize the internal variable last,
         // since the transform getters depend on it.
@@ -226,12 +226,12 @@
      */
     private function setActualSize(width:Number, height:Number):void
     {
-		if ((_width != width)  && _layoutFeatures)
-		{
-			_layoutFeatures.layoutWidth = width;
-			invalidateTransform();
-		}
-
+        if ((_width != width)  && _layoutFeatures)
+        {
+            _layoutFeatures.layoutWidth = width;
+            invalidateTransform();
+        }
+
         _width = width;
         _height = height;

@@ -356,9 +356,9 @@
      *  @copy mx.core.IVisualElement#postLayoutTransformOffsets
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get postLayoutTransformOffsets():TransformOffsets
     {
@@ -1109,8 +1109,8 @@
     [Inspectable(category="General")]
     /**
      *  @copy spark.components.supportClasses.GroupBase#mask
-	 *
-	 *  @langversion 3.0
+     *
+     *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
@@ -1151,9 +1151,9 @@
     [Inspectable(category="General", enumeration="clip,alpha,luminosity", defaultValue="clip")]

     /**
-	 * @copy spark.components.supportClasses.GroupBase#maskType
-	 *
-	 *  @langversion 3.0
+     * @copy spark.components.supportClasses.GroupBase#maskType
+     *
+     *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
@@ -1886,9 +1886,9 @@
      *  @see spark.effects.AnimateTransform#transformX
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get transformX():Number
     {
@@ -1930,9 +1930,9 @@
      *  @see spark.effects.AnimateTransform#transformY
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get transformY():Number
     {
@@ -1974,9 +1974,9 @@
      *  @see spark.effects.AnimateTransform#transformZ
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get transformZ():Number
     {
@@ -1997,37 +1997,37 @@
         invalidateParentSizeAndDisplayList();
     }

-	//----------------------------------
-	//  layoutDirection
-	//----------------------------------
-
-	private var _layoutDirection:String = null;
-
+    //----------------------------------
+    //  layoutDirection
+    //----------------------------------
+
+    private var _layoutDirection:String = null;
+
     [Inspectable(category="General", enumeration="ltr,rtl")]

     /**
      *  @inheritDoc
      */
-	public function get layoutDirection():String
-	{
+    public function get layoutDirection():String
+    {
         if (_layoutDirection != null)
             return _layoutDirection;

         const parentElt:ILayoutDirectionElement = parent as ILayoutDirectionElement;
         return (parentElt) ? parentElt.layoutDirection : LayoutDirection.LTR;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set layoutDirection(value:String):void
-	{
-		if (_layoutDirection == value)
-			return;
-
-		_layoutDirection = value;
+    }
+
+    /**
+     *  @private
+     */
+    public function set layoutDirection(value:String):void
+    {
+        if (_layoutDirection == value)
+            return;
+
+        _layoutDirection = value;
         invalidateLayoutDirection();
-	}
+    }

     /**
      * @inheritDoc
@@ -2052,7 +2052,7 @@
             invalidateParentSizeAndDisplayList();
         }
     }
-
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods
@@ -2681,9 +2681,9 @@
      *  @copy mx.core.ILayoutElement#transformAround()
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function transformAround(transformCenter:Vector3D,
                                     scale:Vector3D = null,


Transferred from the Adobe Open Source Subversion Repository

Revision: 5198
Author:   hmuller@adobe.com
Date:     2009-03-06T22:47:28.478141Z

Log Message:
-----------
Added GroupBase::getVirtualElement() per PARB.  This is the final PARB viewport/virtualization change.

Note that although this is a new public method, it should not be called directly by tests or apps.

QE Notes: Mustella DataGroup tests pass
Doc Notes: This is a new method.
Bugs:
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -1051,7 +1051,7 @@
         // current contentHeight; cache computed widths/heights in llv.
         for (; (x < maxVisibleX) && (index < eltCount); index++)
         {
-            var elt:ILayoutElement = layoutTarget.getElementAt(index);
+            var elt:ILayoutElement = layoutTarget.getVirtualElementAt(index);
             var w:Number = (isNaN(fixedColumnWidth)) ? elt.getPreferredBoundsWidth() : fixedColumnWidth;
             var h:Number = calculateElementHeight(elt, targetHeight, containerHeight);
             var y:Number = calculateElementY(elt, h, containerHeight);
@@ -1072,7 +1072,7 @@
             {
                 for (index = startIndex; index <= endIndex; index++)
                 {
-                    elt = layoutTarget.getElementAt(index);
+                    elt = layoutTarget.getVirtualElementAt(index);
                     h = calculateElementHeight(elt, targetHeight, containerHeight);
                     y = calculateElementY(elt, h, containerHeight);
                     elt.setLayoutBoundsPosition(elt.getLayoutBoundsX(), y);


fixed null pointer error

fixed null pointer error

--- WeaveUISpark/src/weave/visualization/layers/InteractiveVisualization.as
+++ WeaveUISpark/src/weave/visualization/layers/InteractiveVisualization.as
@@ -947,6 +947,8 @@
 			// set the probe filter to a new set of keys
 			var settings:LayerSettings = plotManager.getLayerSettings(layerName);
 			var keySet:KeySet = settings.selectionFilter.internalObject as KeySet;
+			if (!keySet)
+				return;
 			if (!keys)
 				keySet.clearKeys();
 			else if (_mouseMode == InteractionController.SELECT_ADD)


I suspected CallbackBridge was just duplicating Result so I proved it by "refactoring" CallbackBridge to be practically empty and just extend Result instead of delegating. All tests pass and the AS3Signals test suite runs fine.

--- asunit-4.0/src/asunit/framework/CallbackBridge.as
+++ asunit-4.0/src/asunit/framework/CallbackBridge.as
@@ -1,171 +1,10 @@
 package asunit.framework {

-    public class CallbackBridge implements IResult {
+    public class CallbackBridge extends Result {
+
+	    internal function get numListeners():uint {
+            return listeners.length;
+        }

-        private var listeners:Array;
-
-		[Inject]
-	 	public var model:Result;
-
-        public function CallbackBridge() {
-			initialize();
-        }
-
-		protected function initialize():void
-		{
-			listeners = [];
-			model = new Result();
-		}
-
-        public function get length():int {
-            return listeners.length;
-        }
-
-		public function onRunStarted():void {
-			model.onRunStarted();
-            listeners.forEach(function(listener:IRunListener, index:int, items:Array):void {
-                listener.onRunStarted();
-            });
-        }
-
-		public function onRunCompleted(result:IResult):void {
-			model.onRunCompleted(result);
-            listeners.forEach(function(listener:IRunListener, index:int, items:Array):void {
-                listener.onRunCompleted(result);
-            });
-        }
-
-		public function onTestStarted(test:Object):void {
-			model.onTestStarted(test);
-            listeners.forEach(function(listener:IRunListener, index:int, items:Array):void {
-                listener.onTestStarted(test);
-            });
-        }
-
-		public function onTestCompleted(test:Object):void {
-			model.onTestCompleted(test);
-            listeners.forEach(function(listener:IRunListener, index:int, items:Array):void {
-                listener.onTestCompleted(test);
-            });
-        }
-
-		public function onTestFailure(failure:ITestFailure):void {
-			model.onTestFailure(failure);
-            listeners.forEach(function(listener:IRunListener, index:int, items:Array):void {
-                listener.onTestFailure(failure);
-            });
-        }
-
-		public function onTestSuccess(success:ITestSuccess):void {
-			model.onTestSuccess(success);
-            listeners.forEach(function(listener:IRunListener, index:int, items:Array):void {
-                listener.onTestSuccess(success);
-            });
-        }
-
-		public function onTestIgnored(method:Method):void {
-			model.onTestIgnored(method);
-            listeners.forEach(function(listener:IRunListener, index:int, items:Array):void {
-                listener.onTestIgnored(method);
-            });
-        }
-
-        public function onWarning(warning:ITestWarning):void {
-			model.onWarning(warning);
-            listeners.forEach(function(listener:IRunListener, index:int, items:Array):void {
-                listener.onWarning(warning);
-            });
-        }
-
-		//---------------------------------------
-		// IResult Implementation
-		//---------------------------------------
-
-		public function get errors():Array
-		{
-			return model.errors;
-		}
-
-		public function get errorCount():uint
-		{
-			return model.errorCount;
-		}
-
-		public function get failures():Array
-		{
-			return model.failures;
-		}
-
-		public function get failureCount():uint
-		{
-			return model.failureCount;
-		}
-
-		public function get successes():Array
-		{
-			return model.successes;
-		}
-
-		public function get successCount():uint
-		{
-			return model.successCount;
-		}
-
-		public function get warnings():Array
-		{
-			return model.warnings;
-		}
-
-		public function get ignoredTests():Array
-		{
-			return model.ignoredTests;
-		}
-
-		public function get ignoredTestCount():uint
-		{
-			return model.ignoredTestCount;
-		}
-
-		public function get runCount():uint
-		{
-			return model.runCount;
-		}
-
-		public function get failureEncountered():Boolean
-		{
-			return model.failureEncountered;
-		}
-
-		public function get wasSuccessful():Boolean
-		{
-			return model.wasSuccessful;
-		}
-
-		public function get runTime():Number
-		{
-			return model.runTime;
-		}
-
-		public function set runTime(value:Number):void
-		{
-			model.runTime = value;
-		}
-
-		public function addListener(listener:IRunListener):void
-		{
-			model.addListener(listener);
-			listeners.push(listener);
-		}
-
-		public function removeListener(listener:IRunListener):void
-		{
-			model.removeListener(listener);
-		}
-
-		public function addObserver(observer:TestObserver):void
-		{
-			model.addObserver(observer);
-		}
-
     }
 }


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

--- frameworks/projects/advancedgrids/src/mx/styles/metadata/FocusStyles.as
+++ frameworks/projects/advancedgrids/src/mx/styles/metadata/FocusStyles.as
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  Specifies the alpha transparency value of the focus skin.
+ *
+ *  @default 0.4
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="focusAlpha", type="Number", inherit="no")]
+
+/**
+ *  Specifies which corners of the focus rectangle should be rounded.
+ *  This value is a space-separated String that can contain any
+ *  combination of "tl", "tr", "bl"
+ *  and "br".
+ *  For example, to specify that the right side corners should be rounded,
+ *  but the left side corners should be square, use "tr br".
+ *  The cornerRadius style property specifies
+ *  the radius of the rounded corners.
+ *  The default value depends on the component class; if not overridden for
+ *  the class, default value is "tl tr bl br".
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="focusRoundedCorners", type="String", inherit="no")]


Transferred from the Adobe Open Source Subversion Repository

Revision: 19851
Author:   mcho@adobe.com
Date:     2011-01-20T23:07:11.305461Z

Log Message:
-----------
More precise text alignment for mobile components

QE notes: Components with tend to be narrower and shorter for the View Menu.  Must update baselines that use x, y, width, height.
Doc notes: None
Bugs:
Reviewer: Ryan, Jason Szeto, Jason SJ, Glenn
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TabbedViewNavigatorButtonBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as
@@ -351,9 +351,9 @@
             var titlePaddingLeft:Number = (layoutObject.paddingLeft) ? Number(layoutObject.paddingLeft) : 0;
             var titlePaddingRight:Number = (layoutObject.paddingRight) ? Number(layoutObject.paddingRight) : 0;

-            // vertical align center by subtracting the descent and top gutter
+            // vertical align center
             titleHeight = titleDisplay.getExplicitOrMeasuredHeight();
-            titleCompY = Math.round((contentGroupsHeight - titleHeight + titleDisplay.descent - StyleableTextField.TEXT_HEIGHT_PADDING) / 2);
+            titleCompY = Math.round((contentGroupsHeight - titleHeight)/2) + layoutBorderHeight;

             // align titleDisplay to the absolute center
             var titleAlign:String = getStyle("titleAlign");
@@ -478,8 +478,7 @@
     private var titleDisplayShadow:StyleableTextField;
     private var title:String;
     private var titleChanged:Boolean;
-    public var descent:Number;
-
+
     public function TitleDisplayComponent()
     {
         super();
@@ -549,19 +548,14 @@
             titleDisplay.text = title;
         titleDisplay.commitStyles();

-        var textSize:Point = titleDisplay.measuredTextSize;
-        textWidth = textSize.x;
-
         if (title != "")
         {
-            textHeight = textSize.y;
-            descent = titleDisplay.getLineMetrics(0).descent;
+			textWidth = titleDisplay.getPreferredBoundsWidth();
+            textHeight = titleDisplay.getPreferredBoundsHeight();
         }
         else
         {
-            var lineMetrics:TextLineMetrics = measureText("Wj");
-            textHeight = lineMetrics.height + StyleableTextField.TEXT_HEIGHT_PADDING;
-            descent = lineMetrics.descent;
+            textHeight =  measureText("Wj").height + StyleableTextField.TEXT_HEIGHT_PADDING;
         }

         measuredWidth = textWidth;
@@ -574,22 +568,22 @@
    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
         super.updateDisplayList(unscaledWidth, unscaledHeight);
-
-        titleDisplay.width = unscaledWidth;
-        titleDisplay.height = unscaledHeight;
-
+
         // reset text if it was truncated before.
         if (titleDisplay.isTruncated)
             titleDisplay.text = title;
         titleDisplay.commitStyles();

+		titleDisplay.setLayoutBoundsPosition(0, 0);
+		titleDisplay.setLayoutBoundsSize(unscaledWidth, unscaledHeight);
+
         // now truncate the text
         titleDisplay.truncateToFit();

         titleDisplayShadow.commitStyles();
-        titleDisplayShadow.y = titleDisplay.y + 1; // degree shadow down
-        titleDisplayShadow.width = unscaledWidth;
-        titleDisplayShadow.height = unscaledHeight;
+		titleDisplayShadow.setLayoutBoundsPosition(0, 1);
+		titleDisplayShadow.setLayoutBoundsSize(unscaledWidth, unscaledHeight);
+
         titleDisplayShadow.alpha = getStyle("textShadowAlpha");

         // if labelDisplay is truncated, then push it down here as well.


Transferred from the Adobe Open Source Subversion Repository

Revision: 19228
Author:   smgilson@adobe.com
Date:     2010-12-09T18:55:49.663386Z

Log Message:
-----------
asdoc updates

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

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

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

--- frameworks/projects/spark/src/spark/components/GridColumnHeaderGroup.as
+++ frameworks/projects/spark/src/spark/components/GridColumnHeaderGroup.as
@@ -48,7 +48,8 @@
 [Event(name="gridMouseDown", type="spark.events.GridEvent")]

 /**
- *  Dispatched after a GRID_MOUSE_DOWN event if the mouse moves before the button is released.
+ *  Dispatched after a gridMouseDown event
+ *  if the mouse moves before the button is released.
  *
  *  @eventType spark.events.GridEvent.GRID_MOUSE_DRAG
  *
@@ -60,7 +61,8 @@
 [Event(name="gridMouseDrag", type="spark.events.GridEvent")]

 /**
- *  Dispatched after a GRID_MOUSE_DOWN event when the mouse button is released, even
+ *  Dispatched after a gridMouseDown event
+ *  when the mouse button is released, even
  *  if the mouse is no longer within the GridColumnHeaderGroup.
  *
  *  @eventType spark.events.GridEvent.GRID_MOUSE_UP
@@ -133,8 +135,8 @@
 [Event(name="gridMouseDown", type="spark.events.GridEvent")]

 /**
- *  Dispatched after a SEPARATOR_MOUSE_DOWN event if the mouse moves before
- *  the button is released.
+ *  Dispatched after a separatorMouseDown event
+ *  if the mouse moves before the button is released.
  *
  *  @eventType spark.events.GridEvent.SEPARATOR_MOUSE_DRAG
  *
@@ -146,8 +148,9 @@
 [Event(name="separatorMouseDrag", type="spark.events.GridEvent")]

 /**
- *  Dispatched after a SEPARATOR_MOUSE_DOWN event when the mouse button is
- *  released, even if the mouse is no longer within the separator affordance.
+ *  Dispatched after a separatorMouseDown event
+ *  when the mouse button is released, even if the mouse is
+ *  no longer within the separator affordance.
  *
  *  @eventType spark.events.GridEvent.SEPARATOR_MOUSE_UP
  *
@@ -219,7 +222,7 @@
  *
  *
Separators are often just one pixel wide which makes interacting with them difficult.
  *  This value is used by getSeparatorIndexAt() to give separators a wider
- *  berth, so that separator events are dispatched when the mouse is closer than
+ *  area, so that separator events are dispatched when the mouse is closer than
  *  separatorMouseWidth to the horizontal midpoint of a separator.

  *
  *  @default 5
@@ -286,11 +289,15 @@
 [IconFile("GridColumnHeaderGroup.png")]

 /**
- *  Displays a row of column headers and separators aligned with the grid's layout.
- *
- *
Headers are rendered with the headerRenderer and separators with the columnSeparator.
- *  The layout, which can not be changed, is virtual: renderers and separators that have been
+ *  The GridColumnHeaderGroup class displays a row of column headers
+ *  and separators aligned with the grid's layout.
+ *
+ *
Headers are rendered by the class specified by the headerRenderer property.
+ *  Separators are rendered by the class specified by the columnSeparator property.
+ *  The layout, which cannot be changed, is virtual; that means renderers and separators that have been
  *  scrolled out of view are reused.

+ *
+ *  @see Grid
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -353,7 +360,7 @@
     [Bindable("columnSeparatorChanged")]

     /**
-     *  A visual element that's displayed in between each column.
+     *  A visual element that's displayed between each column.
      *
      *  @default null
      *
@@ -389,8 +396,10 @@
     [Bindable("dataGridChanged")]

     /**
-     *  The DataGrid that defines the column layout and horizontal scroll position for this component.
-     *  This property is set by the DataGrid after its grid skin part has been added.
+     *  The DataGrid control that defines the column layout and
+     *  horizontal scroll position for this component.
+     *  This property is set by the DataGrid control after
+     *  its grid skin part has been added.
      *
      *  @default null
      *
@@ -448,8 +457,9 @@
      *  Specifies the column index of the header renderer currently
      *  being pressed down by the user.
      *
-     *
Setting downColumnIndex to -1 (the default) means that the column index
-     *  is undefined and the header renderer will have its down property set to false.

+     *
Setting downColumnIndex to -1 (the default) means
+     *  that the column index is undefined, and the header renderer has
+     *  its down property set to false.

      *
      *  @default -1
      *
@@ -526,8 +536,9 @@
      *  Specifies the column index of the header renderer currently
      *  being hovered over by the user.
      *
-     *
Setting hoverColumnIndex to -1 (the default) means that the column index
-     *  is undefined and the header renderer will have its hovered property set to false.

+     *
Setting hoverColumnIndex to -1, the default, means that
+     *  the column index is undefined, and the header renderer has its
+     *  hovered property set to false.

      *
      *  @default -1
      *
@@ -566,7 +577,7 @@
      *  A vector of column indices corresponding to the header renderers
      *  which currently have their sort indicators visible.
      *
-     *  @default An empty Vector.<int>
+     *  @default An empty Vector.<int>
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -593,11 +604,16 @@
     }

     /**
-     *  Returns true if the sort indicator for the specified column
+     *  Returns true if the sort indicator for the specified column
      *  is visible.
-     *
      *  This is just a more efficient version of:
-     *      visibleSortIndicatorIndices.indexOf(columnIndex) != -1
+     *

+     *      visibleSortIndicatorIndices.indexOf(columnIndex) != -1

+     *
+     *  @param columnIndex The 0-based column index of the header renderer's column.
+     *
+     *  @return true if the sort indicator for the specified column
+     *  is visible.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -622,10 +638,12 @@
      *
      *
If all of the columns or rows for the grid have not yet been scrolled
      *  into view, the returned index may only be an approximation,
-     *  based on all of the columns' typicalItems.

+     *  based on the typicalItem property of all columns.

      *
-     *  @param x The pixel's x coordinate relative to the columnHeaderGroup
-     *  @param y The pixel's y coordinate relative to the columnHeaderGroup
+     *  @param x The pixel's x coordinate relative to the columnHeaderGroup.
+     *
+     *  @param y The pixel's y coordinate relative to the columnHeaderGroup.
+     *
      *  @return the index of the column or -1 if the coordinates are out of bounds.
      *
      *  @langversion 3.0
@@ -647,18 +665,20 @@
      *  x coordinate is within separatorMouseWidth of separator's
      *  horizontal midpoint.

      *
-     *
The separator index is the same as the index of the column on the left
-     *  (assuming that this component's layoutDirection is "ltr").  That means
-     *  that all column headers are flanked by two separators, except for the first
+     *
The separator index is the same as the index of the column on the left,
+     *  assuming that this component's layoutDirection is "ltr".
+     *  That means all column headers are flanked by two separators, except for the first
      *  visible column, which just has a separator on the right, and the last visible
      *  column, which just has a separator on the left.

      *
      *
If all of the columns or rows for the grid have not yet been scrolled
      *  into view, the returned index may only be an approximation,
-     *  based on all of the columns' typicalItems.

+     *  based on the typicalItem property of all columns.

      *
-     *  @param x The pixel's x coordinate relative to the columnHeaderGroup
-     *  @param y The pixel's y coordinate relative to the columnHeaderGroup
+     *  @param x The pixel's x coordinate relative to the columnHeaderGroup.
+     *
+     *  @param y The pixel's y coordinate relative to the columnHeaderGroup.
+     *
      *  @return the index of the column or -1 if the coordinates don't overlap a separator.
      *
      *  @langversion 3.0
@@ -678,13 +698,14 @@
      *  may be recycled and its properties reset.
      *
      *
If the requested header renderer is not visible then,
-     *  each time this method is called, a new header renderer is created.  The
-     *  new item renderer is not visible

+     *  each time this method is called, a new header renderer is created.
+     *  The new item renderer is not visible

      *
      *
The width of the returned renderer is the same as for item renderers
      *  returned by DataGrid/getItemRendererAt().

      *
-     *  @param columnIndex The 0-based column index of the header renderer's column
+     *  @param columnIndex The 0-based column index of the header renderer's column.
+     *
      *  @return The item renderer or null if the column index is invalid.
      *
      *  @langversion 3.0
@@ -701,7 +722,7 @@
      *  Returns the current pixel bounds of the specified header (renderer), or null if
      *  no such column exists.  Header bounds are reported in GridColumnHeaderGroup coordinates.
      *
-     *
If all of the visible columns preceeding the specified column have not
+     *
If all of the visible columns preceding the specified column have not
      *  yet been scrolled into view, the returned bounds may only be an approximation,
      *  based on all of the Grid's typicalItems.

      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 14571
Author:   deeptika@adobe.com
Date:     2010-03-04T07:17:40.283901Z

Log Message:
-----------
Merging revision 14570 from 4.x branch
QE notes:
Doc notes:
Bugs:
Reviewer:
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/delegates/core/UIComponentAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_air/src/mx/automation/delegates/controls/FlexNativeMenuAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/delegates/controls/SWFLoaderAutomationImpl.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/tabularData/SparkListBaseTabularData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/mx/automation/delegates/core/UIFTETextFieldAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/delegates/core/UITextFieldAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkDropDownListBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_dmv/src/mx/automation/delegates/advancedDataGrid/AdvancedDataGridAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkListBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/tabularData/OLAPDataGridTabularData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/codec/RendererPropertyCodec.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/delegates/TextFieldAutomationHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/codec/AutomationObjectPropertyCodec.as</path>

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

--- frameworks/projects/automation/src/mx/automation/delegates/core/UIComponentAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/core/UIComponentAutomationImpl.as
@@ -24,6 +24,7 @@
 	import flash.ui.Keyboard;

 	import mx.automation.Automation;
+	import mx.automation.AutomationConstants;
 	import mx.automation.IAutomationManager;
 	import mx.automation.IAutomationObject;
 	import mx.automation.IAutomationObjectHelper;
@@ -175,7 +176,7 @@
 		//---------------------------------
 		public function get automationEnabled():Boolean
 		{
-			trace ("This method should not be called on delegate.Should have been called on the component");
+			Automation.automationDebugTracer.traceMessage("UIComponentAutomationImpl", "get automationEnabled()", AutomationConstants.invalidDelegateMethodCall);
 			if (uiComponent as IUIComponent)
 				return (uiComponent as IUIComponent).enabled;

@@ -187,7 +188,7 @@
 		//---------------------------------
 		public function get automationOwner():DisplayObjectContainer
 		{
-			trace ("This method should not be called on delegate.Should have been called on the component");
+			Automation.automationDebugTracer.traceMessage("UIComponentAutomationImpl", "get automationOwner()", AutomationConstants.invalidDelegateMethodCall);
 			if (uiComponent as IUIComponent)
 				return (uiComponent as IUIComponent).owner;

@@ -199,7 +200,7 @@
 		//---------------------------------
 		public function get automationParent():DisplayObjectContainer
 		{
-			trace ("This method should not be called on delegate.Should have been called on the component");
+			Automation.automationDebugTracer.traceMessage("UIComponentAutomationImpl", "get automationParent()",AutomationConstants.invalidDelegateMethodCall);
 			if (uiComponent as IUIComponent)
 				return (uiComponent as IUIComponent).parent;

@@ -211,7 +212,7 @@
 		//---------------------------------
 		public function get automationVisible():Boolean
 		{
-			trace ("This method should not be called on delegate.Should have been called on the component");
+			Automation.automationDebugTracer.traceMessage("UIComponentAutomationImpl", "get automationVisible()",AutomationConstants.invalidDelegateMethodCall);
 			if (uiComponent as IUIComponent)
 				return (uiComponent as IUIComponent).visible;

@@ -307,7 +308,7 @@
 		 */
 		public function get showInAutomationHierarchy():Boolean
 		{
-			trace("Reading should not be done here");
+			Automation.automationDebugTracer.traceMessage("UIComponentAutomationImpl", "get showInAutomationHierarchy()",AutomationConstants.invalidDelegateMethodCall);
 			return true;
 		}

@@ -316,7 +317,7 @@
 		 */
 		public function set showInAutomationHierarchy(value:Boolean):void
 		{
-			trace("Setting should not be done here");
+			Automation.automationDebugTracer.traceMessage("UIComponentAutomationImpl", "set showInAutomationHierarchy()",AutomationConstants.invalidDelegateMethodCall);
 			if(uiComponent is IAutomationObject)
 				IAutomationObject(uiComponent).showInAutomationHierarchy = value;
 		}
@@ -676,7 +677,7 @@
 		 */
 		public function set automationDelegate(val:Object):void
 		{
-			trace("Invalid setter function call. Should have been called on the component");
+			Automation.automationDebugTracer.traceMessage("UIComponentAutomationImpl", "set automationDelegate()",AutomationConstants.invalidDelegateMethodCall);
 		}

 		/**
@@ -684,7 +685,7 @@
 		 */
 		public function get automationDelegate():Object
 		{
-			trace("Invalid getter function call. Should have been called on the component");
+			Automation.automationDebugTracer.traceMessage("UIComponentAutomationImpl", "get showInAutomationHierarchy()",AutomationConstants.invalidDelegateMethodCall);
 			return this;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19678
Author:   chiedozi@adobe.com
Date:     2011-01-10T22:45:03.607947Z

Log Message:
-----------
Resolved some FIXMEs

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/events/ViewNavigatorEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as
@@ -103,6 +103,8 @@
     override protected function createChildren():void
     {
         navigator = new TabbedViewNavigator();
+        navigator.id = "navigator";
+
         addChild(navigator);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8972
Author:   rvollmar@adobe.com
Date:     2009-07-31T22:10:14.127639Z

Log Message:
-----------
Change mx:FxApplication reference to mx:WindowedApplication in ASDoc.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as

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

--- frameworks/projects/airspark/src/spark/components/WindowedApplication.as
+++ frameworks/projects/airspark/src/spark/components/WindowedApplication.as
@@ -316,7 +316,7 @@
  *  The WindowedApplication defines the application container
  *  that you use to create Flex applications for AIR applications.
  *
- *
The WindowedApplication serves two roles. It is a replacement for the <mx:FxApplication>
+ *
The WindowedApplication serves two roles. It is a replacement for the <mx:WindowedApplication>
  *  tag, functioning as the entry point to a Flex-based AIR application. In addition,
  *  as a container the WindowedApplication defines the layout of the initial window
  *  of a Flex AIR application -- any visual controls defined in the WindowedApplication


Transferred from the Adobe Open Source Subversion Repository

Revision: 12459
Author:   aharui@adobe.com
Date:     2009-12-03T19:16:58.161692Z

Log Message:
-----------
Fix bugs in DG found from MXItemRenderer testing

QE Notes: Might be two DG mustella test failures.
Doc Notes: None
Bugs: SDK-24483, SDK-24451, SDK-24448
Reviewer: Corey
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/components/DataGrid

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

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as
@@ -1901,6 +1901,19 @@
     /**
      * @private
      *
+     * Reset the factories so they get re-generated.
+     */
+    mx_internal function resetFactories():void
+    {
+        _contextHeaderRenderer = null;
+        _contextItemRenderer = null;
+        _contextNullItemRenderer = null;
+        determineFontContext();
+    }
+
+    /**
+     * @private
+     *
      * Save the current font context to member fields.
      */
     mx_internal function determineFontContext():void


Transferred from the Adobe Open Source Subversion Repository

Revision: 12977
Author:   gosmith@adobe.com
Date:     2009-12-16T01:09:31.861871Z

Log Message:
-----------
Added ASDoc for the Spark ButtonBaseAccImpl, ToggleButtonAccImpl, CheckBoxAccImpl, and RadioButtonAccImpl, based on the opensource specs.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ToggleButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ButtonBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/RadioButtonAccImpl.as</path>

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

--- frameworks/projects/spark/src/spark/accessibility/ToggleButtonAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/ToggleButtonAccImpl.as
@@ -22,8 +22,93 @@
 use namespace mx_internal;

 /**
- *  ToggleButtonAccImpl is a subclass of AccessibilityImplementation
- *  which implements accessibility for the ToggleButton class.
+ *  ToggleButtonAccImpl is the accessibility implementation class
+ *  for spark.components.ToggleButton.
+ *
+ *
When a Spark ToggleButton is created,
+ *  its accessibilityImplementation property
+ *  is set to an instance of this class.
+ *  The Flash Player then uses this class to allow MSAA clients
+ *  such as screen readers to see and manipulate the ToggleButton.
+ *  See the mx.accessibility.AccImpl and
+ *  flash.accessibility.AccessibilityImplementation classes
+ *  for background information about accessibility implementation
+ *  classes and MSAA.

+ *
+ *
Children

+ *
+ *
A ToggleButton has no MSAA children.

+ *
+ *
Role

+ *
+ *
The MSAA Role of a ToggleButton is ROLE_SYSTEM_PUSHBUTTON.

+ *
+ *
Name

+ *
+ *
The MSAA Name of a ToggleButton is, by default,
+ *  the label that it displays.
+ *  When wrapped in a FormItem element,
+ *  this label will be combined with the FormItem's label.
+ *  To override this behavior,
+ *  set the ToggleButton's accessibilityName property.

+ *
+ *
To provide two separate names for the different states
+ *  of an icon-based ToggleButton (such as "Mute" and "Unmute",
+ *  or "Play" and "Pause"), both names can be separated by a comma
+ *  in the accessibilityName property, as in
+ *  accessibilityProperty="Mute,Unmute".
+ *  When using state specific names like this
+ *  the button will not exposed the "pressed" state when pressed.

+ *
+ *
When the Name changes,
+ *  a ToggleButton dispatches the MSAA event EVENT_OBJECT_NAMECHANGE.

+ *
+ *
Description

+ *
+ *
The MSAA Description of a ToggleButton is, by default, the empty string,
+ *  but you can set the ToggleButton's accessibilityDescription
+ *  property.

+ *
+ *
State

+ *
+ *
The MSAA State of a ToggleButton is a combination of:
+ *

+ *
STATE_SYSTEM_UNAVAILABLE (when enabled is false)

+ *
STATE_SYSTEM_FOCUSABLE (when enabled is true)

+ *
STATE_SYSTEM_FOCUSED (when enabled is true
+ *    and the CheckBox has focus)

+ *
STATE_SYSTEM_PRESSED (when selected is true;
+ *    not used when state specific names are provided)

+ *

+ *
+ *
When the State changes,
+ *  a ToggleButton dispatches the MSAA event EVENT_OBJECT_STATECHANGE.

+ *
+ *
Value

+ *
+ *
A ToggleButton does not have an MSAA Value.

+ *
+ *
Location

+ *
+ *
The MSAA Location of a ToggleButton is its bounding rectangle.

+ *
+ *
Default Action

+ *
+ *
The MSAA DefaultAction of a ToggleButton is "Toggle".

+ *
+ *
When an MSAA client tells the Button to perform this action,
+ *  KEY_DOWN and KEY_UP MouseEvents for the SPACE key are generated,
+ *  to simulate pressing the ToggleButton via the keyboard,
+ *  if the ToggleButton is enabled.

+ *
+ *
Focus

+ *
+ *
A ToggleButton accepts focus.
+ *  When it does so, it dispatches the MSAA event EVENT_OBJECT_FOCUS.

+ *
+ *
Selection

+ *
+ *
A ToggleButton does not support selection in the MSAA sense.

  *
  *  @langversion 3.0
  *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 17395
Author:   klin@adobe.com
Date:     2010-08-19T23:19:20.864327Z

Log Message:
-----------
Fix RTE in DataGrid. Added a range check in getVisibleItemRenderer and takeVisibleItemRenderer on the current visibleItemRenderers vector. I also fixed an unrelated bug in dataProviderCollectionRemove() where we were unconditionally decrementing all of the visibleRowIndices instead of only decrementing the visibleRowIndices that are larger than the last removed index.

QE notes: No
Doc notes: No
Bugs: SDK-27499
Reviewer: Hans
Tests run: checkintests, DataGrid
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -894,7 +894,7 @@
     public function getVisibleItemRenderer(rowIndex:int, columnIndex:int):IVisualElement
     {
         const index:int = getVisibleItemRendererIndex(rowIndex, columnIndex);
-        if (index == -1)
+        if (index == -1 || index >= visibleItemRenderers.length)
             return null;

         const renderer:IVisualElement = visibleItemRenderers[index];
@@ -907,7 +907,7 @@
     private function takeVisibleItemRenderer(rowIndex:int, columnIndex:int):IVisualElement
     {
         const index:int = getVisibleItemRendererIndex(rowIndex, columnIndex);
-        if (index == -1)
+        if (index == -1 || index >= visibleItemRenderers.length)
             return null;

         const renderer:IVisualElement = visibleItemRenderers[index];
@@ -1574,8 +1574,10 @@
                 else
                     lastVisibleOffset = offset;
             }
-            else
+            else if (rowIndex > lastRemoveIndex)
+            {
                 visibleRowIndices[offset] = rowIndex - eventItemsLength;
+            }
         }

         // Remove the elements of visibleRowBackgrounds, visibleRowSeparators, visibleRowIndices,


Transferred from the Adobe Open Source Subversion Repository

Revision: 12387
Author:   rfrishbe@adobe.com
Date:     2009-12-02T20:38:05.199373Z

Log Message:
-----------
VideoDisplay/VideoPlayer changes.  The two big changes are making sure we don’t call any methods on the media player when the state is “loading” or “uninitialized”.  Before we were just checking for “playbackError”; however, at the time of these other states, it’s not valid to call methods on mediaPlayer either.  Also, I alphabetized and organized the methods and properties in VolumeBar and also fixed a bug where we were setting muted = false in setValue().  We did this so that when the user moves around the track or the thumb, muted gets unset, but we should only do this on changes due to a user-interaction.  So I’ve moved this code to a CHANGE handler instead.  All the other changes should be relatively minor.

QE notes: -
Doc notes: -
Bugs: SDK-24192, SDK-24486
Reviewer: Kevin
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/MuteButton.as</path>

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

--- frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
+++ frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
@@ -133,7 +133,33 @@
  */
 public class VolumeBar extends VSlider
 {
-
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function VolumeBar()
+    {
+        super();
+
+        dropDownController = new DropDownController();
+
+        // add change listener so we know when the user has interacted
+        // with the volume bar to change the value so we can automatically
+        // unmute the volume when the user does that.
+        addEventListener(Event.CHANGE, changeHandler);
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Skin Parts
@@ -164,21 +190,6 @@
      */
     [SkinPart(required="false")]
     public var dropDown:DisplayObject;
-
-    /**
-     *  Constructor.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function VolumeBar()
-    {
-        super();
-
-        dropDownController = new DropDownController();
-    }

     //--------------------------------------------------------------------------
     //
@@ -223,6 +234,71 @@
         if (dropDown)
             _dropDownController.dropDown = dropDown;
     }
+
+    //----------------------------------
+    //  isDropDownOpen
+    //----------------------------------
+
+    /**
+     *  @copy spark.components.supportClasses.DropDownController#isOpen
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get isDropDownOpen():Boolean
+    {
+        if (dropDownController)
+            return dropDownController.isOpen;
+        else
+            return false;
+    }
+
+    //----------------------------------
+    //  muted
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _muted:Boolean = false;
+
+    [Bindable("mutedChange")]
+
+    /**
+     *  true if the volume of the video is muted;
+     *  false otherwise.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get muted():Boolean
+    {
+        return _muted;
+    }
+
+    /**
+     *  @private
+     */
+    public function set muted(value:Boolean):void
+    {
+        if (_muted == value)
+            return;
+
+        _muted = value;
+
+        // invalidateDisplayList() because we take in to account value and muted when
+        // determining where to draw the thumb on the track.
+        invalidateDisplayList();
+
+        if (muteButton)
+            muteButton.muted = value;
+
+        dispatchEvent(new FlexEvent(FlexEvent.MUTED_CHANGE));
+    }

     //--------------------------------------------------------------------------
     //
@@ -243,89 +319,6 @@
             return muteButton.baselinePosition;
         else
             return NaN;
-    }
-
-    //----------------------------------
-    //  isDropDownOpen
-    //----------------------------------
-
-    /**
-     *  @copy spark.components.supportClasses.DropDownController#isOpen
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get isDropDownOpen():Boolean
-    {
-        if (dropDownController)
-            return dropDownController.isOpen;
-        else
-            return false;
-    }
-
-    //----------------------------------
-    //  muted
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _muted:Boolean = false;
-
-    [Bindable("mutedChange")]
-
-    /**
-     *  true if the volume of the video is muted;
-     *  false otherwise.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get muted():Boolean
-    {
-        return _muted;
-    }
-
-    /**
-     *  @private
-     */
-    public function set muted(value:Boolean):void
-    {
-        if (_muted == value)
-            return;
-
-        _muted = value;
-
-        // invalidateDisplayList() because we take in to account value and muted when
-        // determining where to draw the thumb on the track.
-        invalidateDisplayList();
-
-        if (muteButton)
-            muteButton.muted = value;
-
-        dispatchEvent(new FlexEvent(FlexEvent.MUTED_CHANGE));
-    }
-
-    //----------------------------------
-    //  value
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    override public function set value(value:Number):void
-    {
-        if (super.value == value)
-            return;
-
-        super.value = value;
-
-        if (muteButton)
-            muteButton.volume = value;
     }

     //--------------------------------------------------------------------------
@@ -368,75 +361,31 @@
     /**
      *  @private
      */
-     override public function styleChanged(styleProp:String):void
-     {
-         super.styleChanged(styleProp);
-         var allStyles:Boolean = (styleProp == null || styleProp == "styleName");
+    override public function styleChanged(styleProp:String):void
+    {
+        super.styleChanged(styleProp);
+        var allStyles:Boolean = (styleProp == null || styleProp == "styleName");

-         if (allStyles || styleProp == "rollOverOpenDelay")
-         {
-             if (dropDownController)
+        if (allStyles || styleProp == "rollOverOpenDelay")
+        {
+            if (dropDownController)
                 dropDownController.rollOverOpenDelay = getStyle("rollOverOpenDelay");
-         }
-     }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Methods
-    //
-    //--------------------------------------------------------------------------
-
+        }
+    }
+
+
     /**
      *  @private
      */
     override protected function setValue(value:Number):void
     {
         super.setValue(value);
-
-        // when the value is set, this volume bar unmutes the
-        // video player automatically
-        muted = false;

         if (muteButton)
             muteButton.volume = value;
     }
-
-    /**
-     *  Opens the dropDown.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function openDropDown():void
-    {
-        dropDownController.openDropDown();
-    }
-
-     /**
-     *  Closes the dropDown.
-     *
-     *  @param commit Flag indicating if the component should commit the selected
-     *  data from the dropDown.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function closeDropDown(commit:Boolean):void
-    {
-        dropDownController.closeDropDown(commit);
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Overridden methods
-    //
-    //--------------------------------------------------------------------------
-
-    /**
+
+        /**
       *  @private
       */
     override protected function getCurrentSkinState():String
@@ -460,14 +409,10 @@
             muteButton.volume = value;
             muteButton.muted = muted;
         }
-
-        if (instance == dropDown && dropDownController)
+        else if (instance == dropDown && dropDownController)
+        {
             dropDownController.dropDown = dropDown;
-    }
-
-    private function muteButton_mutedChangeHandler(event:FlexEvent):void
-    {
-        muted = muteButton.muted;
+        }
     }

     /**
@@ -479,8 +424,7 @@
         {
             muteButton.removeEventListener(FlexEvent.MUTED_CHANGE, muteButton_mutedChangeHandler);
         }
-
-        if (instance == dropDownController)
+        else if (instance == dropDownController)
         {
             if (instance == muteButton)
                 dropDownController.openButton = null;
@@ -516,6 +460,41 @@

     //--------------------------------------------------------------------------
     //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Opens the dropDown.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function openDropDown():void
+    {
+        dropDownController.openDropDown();
+    }
+
+     /**
+     *  Closes the dropDown.
+     *
+     *  @param commit Flag indicating if the component should commit the selected
+     *  data from the dropDown.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function closeDropDown(commit:Boolean):void
+    {
+        dropDownController.closeDropDown(commit);
+    }
+
+    //--------------------------------------------------------------------------
+    //
     //  Event handling
     //
     //--------------------------------------------------------------------------
@@ -556,6 +535,29 @@

         dispatchEvent(event);
     }
+
+    /**
+     *  @private
+     *  When the value is changed via a user-interaction, we will
+     *  automatically unmute the volume
+     */
+    private function changeHandler(event:Event):void
+    {
+        // when the value is set, this volume bar unmutes the
+        // video player automatically
+        if (muted)
+            muted = false;
+    }
+
+    /**
+     *  @private
+     *  When the mute button changes the muted value, we need to change
+     *  our own.
+     */
+    private function muteButton_mutedChangeHandler(event:FlexEvent):void
+    {
+        muted = muteButton.muted;
+    }

 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4622
Author:   hmuller@adobe.com
Date:     2009-01-22T20:56:42.845482Z

Log Message:
-----------
Many Bug fixes.

Setting a scrollbar's viewport now sets the viewport's clipContent flag to true.

DataGroup getRendererForItemAt(), getItemIndexForRenderer() are now public; were mx_internal.

QE Notes: tests that depend on mx_internal DataGroup getRendererForItemAt(), getItemIndexForRenderer() methods will break
Doc Notes: None
Bugs: sdk-18753, sdk-18217, sdk-18628, sdk-18659, sdk-18111, sdk18820, sdk18763
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -270,6 +270,25 @@
     //--------------------------------------------------------------------------

     /**
+     *  Returns the bounds of the target's scrollRect in layout coordinates.
+     *
+     *  Layout methods should not get the target's scrollRect directly.
+     *
+     *  @return The bounds of the target's scrollRect in layout coordinates, null
+     *      if target or clipContent is false.
+     */
+    protected function getTargetScrollRect():Rectangle
+    {
+        var g:GroupBase = target;
+        if (!g || !g.clipContent)
+            return null;
+        var vsp:Number = g.verticalScrollPosition;
+        var hsp:Number = g.horizontalScrollPosition;
+        return new Rectangle(hsp, vsp, g.width, g.height);
+    }
+
+
+    /**
      *  Returns the bounds of the first layout element that either spans or
      *  is to the left of the scrollRect's left edge.
      *
@@ -456,10 +475,15 @@
         if (!g)
             return 0;

-        var scrollRect:Rectangle = g.scrollRect;
+        var scrollRect:Rectangle = getTargetScrollRect();
         if (!scrollRect)
             return 0;

+        // Special case: if the scrollRect's origin is 0,0 and it's bigger
+        // than the target, then there's no where to scroll to
+        if ((scrollRect.x == 0) && (scrollRect.width >= g.width))
+            return 0;
+
         // maxDelta is the horizontalScrollPosition delta required
         // to scroll to the END and minDelta scrolls to HOME.
         var maxDelta:Number = g.contentWidth - scrollRect.right;
@@ -603,9 +627,14 @@
         if (!g)
             return 0;

-        var scrollRect:Rectangle = g.scrollRect;
+        var scrollRect:Rectangle = getTargetScrollRect();
         if (!scrollRect)
             return 0;
+
+        // Special case: if the scrollRect's origin is 0,0 and it's bigger
+        // than the target, then there's no where to scroll to
+        if ((scrollRect.y == 0) && (scrollRect.height >= g.height))
+            return 0;

         // maxDelta is the horizontalScrollPosition delta required
         // to scroll to the END and minDelta scrolls to HOME.
@@ -721,18 +750,19 @@
      */
      public function getScrollPositionDelta(index:int):Point
      {
-         if (!target || !clipContent)
-            return null;
-
-         var n:int = target.numLayoutElements;
+        var g:GroupBase = target;
+        if (!g || !clipContent)
+            return null;
+
+         var n:int = g.numLayoutElements;
          if ((index < 0) || (index >= n))
             return null;

-         var element:ILayoutElement = target.getLayoutElementAt(index);
+         var element:ILayoutElement = g.getLayoutElementAt(index);
          if (!element || !element.includeInLayout)
             return null;

-         var scrollR:Rectangle = target.scrollRect;
+         var scrollR:Rectangle = getTargetScrollRect();
          if (!scrollR)
             return null;

@@ -758,13 +788,13 @@
          // scrollR "contains"  elementR in just one dimension
          if ((elementR.left >= scrollR.left) && (elementR.right <= scrollR.right))
             dx = 0;
-         else if ((elementR.bottom >= scrollR.bottom) && (elementR.top <= scrollR.top))
+         else if ((elementR.bottom <= scrollR.bottom) && (elementR.top >= scrollR.top))
             dy = 0;

          // elementR "contains" scrollR in just one dimension
          if ((elementR.left <= scrollR.left) && (elementR.right >= scrollR.right))
             dx = 0;
-         else if ((elementR.bottom <= scrollR.bottom) && (elementR.top >= scrollR.top))
+         else if ((elementR.bottom >= scrollR.bottom) && (elementR.top <= scrollR.top))
             dy = 0;

          return new Point(dx, dy);


handle initial state

handle initial state

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ContainerBase.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ContainerBase.as
@@ -72,7 +72,7 @@
      *  @playerversion AIR 2.6
      *  @productversion FlexJS 0.0
      */
-	public class ContainerBase extends UIBase implements IMXMLDocument
+	public class ContainerBase extends UIBase implements IMXMLDocument, IStatesObject
 	{
         /**
          *  Constructor.


Transferred from the Adobe Open Source Subversion Repository

Revision: 19417
Author:   jszeto@adobe.com
Date:     2010-12-16T00:30:14.709542Z

Log Message:
-----------
RadioButton skin symbol updates

Updated using the latest symbol fxg assets

QE notes: none
Doc notes: none
Bugs: none
Reviewer: Jason San Jose
Tests run: checkintests
Is noteworthy for integration: none

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/RadioButton_downSymbol.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/RadioButton_downSymbolSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/RadioButton_downSymbolSelected.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/RadioButton_downSymbolSelected.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/RadioButton_upSymbol.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/RadioButton_upSymbol.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/RadioButton_upSymbol.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/RadioButton_symbolSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/RadioButton_symbolSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/RadioButton_symbolSelected.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/RadioButton_upSymbolSelected.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/RadioButton_upSymbolSelected.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/RadioButton_upSymbolSelected.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/RadioButton_downSymbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/RadioButton_downSymbol.fxg</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as
@@ -19,17 +19,23 @@

 import spark.skins.mobile.supportClasses.SelectableButtonSkinBase;
 import spark.skins.mobile160.assets.RadioButton_down;
-import spark.skins.mobile160.assets.RadioButton_symbol;
-import spark.skins.mobile160.assets.RadioButton_symbolSelected;
+import spark.skins.mobile160.assets.RadioButton_downSymbol;
+import spark.skins.mobile160.assets.RadioButton_downSymbolSelected;
 import spark.skins.mobile160.assets.RadioButton_up;
+import spark.skins.mobile160.assets.RadioButton_upSymbol;
+import spark.skins.mobile160.assets.RadioButton_upSymbolSelected;
 import spark.skins.mobile240.assets.RadioButton_down;
-import spark.skins.mobile240.assets.RadioButton_symbol;
-import spark.skins.mobile240.assets.RadioButton_symbolSelected;
+import spark.skins.mobile240.assets.RadioButton_downSymbol;
+import spark.skins.mobile240.assets.RadioButton_downSymbolSelected;
 import spark.skins.mobile240.assets.RadioButton_up;
+import spark.skins.mobile240.assets.RadioButton_upSymbol;
+import spark.skins.mobile240.assets.RadioButton_upSymbolSelected;
 import spark.skins.mobile320.assets.RadioButton_down;
-import spark.skins.mobile320.assets.RadioButton_symbol;
-import spark.skins.mobile320.assets.RadioButton_symbolSelected;
+import spark.skins.mobile320.assets.RadioButton_downSymbol;
+import spark.skins.mobile320.assets.RadioButton_downSymbolSelected;
 import spark.skins.mobile320.assets.RadioButton_up;
+import spark.skins.mobile320.assets.RadioButton_upSymbol;
+import spark.skins.mobile320.assets.RadioButton_upSymbolSelected;

 /**
  *  ActionScript-based skin for RadioButton controls in mobile applications.
@@ -85,10 +91,10 @@
                 upSelectedIconClass = spark.skins.mobile320.assets.RadioButton_up;
                 downIconClass = spark.skins.mobile320.assets.RadioButton_down;
                 downSelectedIconClass = spark.skins.mobile320.assets.RadioButton_down;
-                upSymbolIconClass = spark.skins.mobile320.assets.RadioButton_symbol;
-                downSymbolIconClass = spark.skins.mobile320.assets.RadioButton_symbol;
-                upSymbolIconSelectedClass = spark.skins.mobile320.assets.RadioButton_symbolSelected;
-                downSymbolIconSelectedClass = spark.skins.mobile320.assets.RadioButton_symbolSelected;
+                upSymbolIconClass =  spark.skins.mobile320.assets.RadioButton_upSymbol;
+                downSymbolIconClass =  spark.skins.mobile320.assets.RadioButton_downSymbol;
+                upSymbolIconSelectedClass = spark.skins.mobile320.assets.RadioButton_upSymbolSelected;
+                downSymbolIconSelectedClass = spark.skins.mobile320.assets.RadioButton_downSymbolSelected;

                 layoutGap = 20;
                 layoutMeasuredWidth = 64;
@@ -101,10 +107,10 @@
                 upSelectedIconClass = spark.skins.mobile240.assets.RadioButton_up;
                 downIconClass = spark.skins.mobile240.assets.RadioButton_down;
                 downSelectedIconClass = spark.skins.mobile240.assets.RadioButton_down;
-                upSymbolIconClass = spark.skins.mobile240.assets.RadioButton_symbol;
-                downSymbolIconClass = spark.skins.mobile240.assets.RadioButton_symbol;
-                upSymbolIconSelectedClass = spark.skins.mobile240.assets.RadioButton_symbolSelected;
-                downSymbolIconSelectedClass = spark.skins.mobile240.assets.RadioButton_symbolSelected;
+                upSymbolIconClass =  spark.skins.mobile240.assets.RadioButton_upSymbol;
+                downSymbolIconClass =  spark.skins.mobile240.assets.RadioButton_downSymbol;
+                upSymbolIconSelectedClass = spark.skins.mobile240.assets.RadioButton_upSymbolSelected;
+                downSymbolIconSelectedClass = spark.skins.mobile240.assets.RadioButton_downSymbolSelected;

                 layoutGap = 15;
                 layoutMeasuredWidth = 48;
@@ -117,10 +123,10 @@
                 upSelectedIconClass = spark.skins.mobile160.assets.RadioButton_up;
                 downIconClass = spark.skins.mobile160.assets.RadioButton_down;
                 downSelectedIconClass = spark.skins.mobile160.assets.RadioButton_down;
-                upSymbolIconClass = spark.skins.mobile160.assets.RadioButton_symbol;
-                downSymbolIconClass = spark.skins.mobile160.assets.RadioButton_symbol;
-                upSymbolIconSelectedClass = spark.skins.mobile160.assets.RadioButton_symbolSelected;
-                downSymbolIconSelectedClass = spark.skins.mobile160.assets.RadioButton_symbolSelected;
+                upSymbolIconClass =  spark.skins.mobile160.assets.RadioButton_upSymbol;
+                downSymbolIconClass =  spark.skins.mobile160.assets.RadioButton_downSymbol;
+                upSymbolIconSelectedClass = spark.skins.mobile160.assets.RadioButton_upSymbolSelected;
+                downSymbolIconSelectedClass = spark.skins.mobile160.assets.RadioButton_downSymbolSelected;

                 layoutGap = 10;
                 layoutMeasuredWidth = 32;


Transferred from the Adobe Open Source Subversion Repository

Revision: 16745
Author:   klin@adobe.com
Date:     2010-06-30T18:26:23.782445Z

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

-GridRowNode's updateMaxHeight now returns true if the max height updates.
-getRow/ColumnBounds returns an empty rectangle instead of null to prevent null pointer exceptions.
-getRowIndexAt() now uses a cached cumulative y value of the last searched row to search for the next row index. It uses the helper methods getPrevRowIndexAt and getNextRowIndexAt to search for values before and after the cached value. These methods iterates through the rowList and calculates the range of y values represented between two nodes, which it uses to find the target row index.
-clear() nulls out the cached recentNode.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridRowNode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridRowList.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridRowNode.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridRowNode.as
@@ -60,14 +60,20 @@

     /**
      *  Updates the current max height.
+     *
+     *  @return true if changed
      */
-    public function updateMaxHeight():void
+    public function updateMaxHeight():Boolean
     {
         // FIXME (klin): use max heap? might not be worth the overhead.
         var max:Number = 0;
+        var changed:Boolean = false;
         for (var i:int = 0; i < _numColumns; i++)
             max = Math.max(max, cellHeights[i]);
+
+        changed = maxCellHeight != max;
         maxCellHeight = max;
+        return changed;
     }

     public function toString():String


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

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


Update HLSManifestEncryptionKey.as

Update HLSManifestEncryptionKey.as

Adds optimized logic to early-out the unpadding algorithm of the end byte is 16 or larger, which would indicate there is no padding.

--- HLSPlugin/src/com/kaltura/hls/manifest/HLSManifestEncryptionKey.as
+++ HLSPlugin/src/com/kaltura/hls/manifest/HLSManifestEncryptionKey.as
@@ -178,6 +178,10 @@
 			}

 			const paddingValue:int = bytesToUnpad[bytesToUnpad.length - 1];
+			if (paddingValue > 15)
+			{
+				return bytesToUnpad;
+			}
 			var doUnpad:Boolean = true;
 			for (var i:int = 0; i<paddingValue; i++) {
 				var readValue:int = bytesToUnpad[bytesToUnpad.length - (1 + i)];


FLEX-34854 Added a unit test to show that a removed item is still being watched for changes. Will be fixed in the next commit.

--- frameworks/projects/framework/tests/FLEX_34854_Tests.as
+++ frameworks/projects/framework/tests/FLEX_34854_Tests.as
@@ -24,6 +24,8 @@
     import mx.collections.IList;
     import mx.collections.ListCollectionView;
     import mx.collections.Sort;
+
+    import org.flexunit.assertThat;

     import org.flexunit.asserts.assertEquals;

@@ -92,6 +94,36 @@
             _sut.removeItemAt(_sut.getItemIndex(newItem)); //if the bug is present, this will throw an RTE
         }

+        [Test]
+        public function test_removing_and_changing_complex_sort_field_value_keeps_it_away_from_collection():void
+        {
+            //given
+            var from1To4:IList = generateVOs(5);
+            from1To4.removeItemAt(0);
+            _sut.addAll(from1To4);
+
+            const sortByNameAscending:Sort = new Sort();
+            sortByNameAscending.fields = [new ComplexSortField("address.street", false, false, false)];
+            _sut.sort = sortByNameAscending;
+            _sut.refresh(); //values: Object1, Object2, Object3, Object4
+
+            _sut.complexFieldWatcher = new ComplexFieldChangeWatcher();
+
+            //when
+            const removedItem:ListCollectionView_FLEX_34854_VO = _sut.getItemAt(0) as ListCollectionView_FLEX_34854_VO;
+            _sut.removeItemAt(0);
+            removedItem.address.street = "Street22";
+
+            //then
+            const newItemIndex:int = _sut.getItemIndex(removedItem);
+            assertEquals("the item should have been removed form the list", -1, newItemIndex);
+            for(var i:int = 0; i < _sut.length; i++)
+            {
+                var vo:ListCollectionView_FLEX_34854_VO = _sut.getItemAt(i) as ListCollectionView_FLEX_34854_VO;
+                assertThat(vo != removedItem);
+            }
+        }
+
         private function assertIndexesAre(indexes:Array):void
         {
             assertEquals(indexes.length, _sut.length);


Transferred from the Adobe Open Source Subversion Repository

Revision: 9694
Author:   clucier@adobe.com
Date:     2009-08-27T13:39:09.396003Z

Log Message:
-----------
We now correctly re-render when mouseEnabledWhereTransparent is set dynamically.

QE notes: None
Doc notes:  None
Bugs: SDK-22657
Reviewer: Hans
Tests run: Checkin
Is noteworthy for integration:  No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -1799,6 +1799,19 @@
         throw(new Error(resourceManager.getString("components", "swapChildrenAtError")));
     }

+    /**
+     *  @private
+     *  Override to ensure we set redrawRequested when appropriate.
+     */
+    override public function set mouseEnabledWhereTransparent(value:Boolean):void
+    {
+        if (value == mouseEnabledWhereTransparent)
+            return;
+
+        super.mouseEnabledWhereTransparent = value;
+        redrawRequested = true;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  ISharedDisplayObject