Transferred from the Adobe Open Source Subversion Repository

Revision: 3410
Author:   rfrishbe@adobe.com
Date:     2008-09-29T22:27:50.984483Z

Log Message:
-----------
Here are some changes to DataGroup.

The big change is the way we instantiate components.  We aren’t re-using the Group logic anymore.  This means there’s no display object sharing going on, which reduces the complexity of the code.  It also treats renderers differently now.  Basically anytime a renderer is specified, it’ll attempt to wrap you up in that renderer, even if you are a GraphicElement or a DisplayObject and may not need one.

There are some other changes, like changing an itemRenderer at runtime now works.  It’s a bit heavy in what it invalidates right now, but I’ll go back and revisit some of this logic.

Also, when no dataProvider is given, we don’t automatically create one for the user.  This means I had to add some defense mechanisms where we were relying on the dataProvider, but doing a check for dataProvider != null was all that was really needed.

QE: Yes
Doc: Yes
Bugs: SDK-16809, SDK-16983
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Selector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/flex4test.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -240,6 +240,7 @@

             if (requiresSelection &&
                     selectedIndex == NO_SELECTION &&
+                    dataProvider &&
                     dataProvider.length > 0)
             {
             	// Set the proposed selected index here to make sure
@@ -301,14 +302,15 @@
     private function commitSelectedIndex():Boolean
     {
         // Step 1: make sure the proposed selected index is in range.
-        var maxIndex:int = dataProvider.length - 1;
+        var maxIndex:int = dataProvider ? dataProvider.length - 1 : -1;
         var oldIndex:int = _selectedIndex;

         if (_proposedSelectedIndex < NO_SELECTION)
             _proposedSelectedIndex = NO_SELECTION;
         if (_proposedSelectedIndex > maxIndex)
             _proposedSelectedIndex = maxIndex;
-        if (requiresSelection && _proposedSelectedIndex == NO_SELECTION && dataProvider.length > 0)
+        if (requiresSelection && _proposedSelectedIndex == NO_SELECTION &&
+            dataProvider && dataProvider.length > 0)
             return false;

         // Step 2: dispatch the "selectionChanging" event. If preventDefault() is called
@@ -396,7 +398,7 @@
         // reset to the first item if requiresSelection is true)
         if (index == selectedIndex)
         {
-            if (requiresSelection && dataProvider.length > 0)
+            if (requiresSelection && dataProvider && dataProvider.length > 0)
                 selectedIndex = 0;
             else
                 selectedIndex = -1;
@@ -414,7 +416,8 @@
      */
     private function dataProviderChangingHandler(event:FlexEvent):void
     {
-        dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+        if (dataProvider)
+            dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);

     	doingWholesaleChanges = true;
     }
@@ -426,12 +429,13 @@
     {
     	doingWholesaleChanges = false;

-    	if (selectedIndex >= 0 && selectedIndex < dataProvider.length)
+    	if (selectedIndex >= 0 && dataProvider && selectedIndex < dataProvider.length)
     	   itemSelected(dataProvider.getItemAt(selectedIndex), true);
     	else
     	   selectedIndex = -1;

-    	dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+    	if (dataProvider)
+    	    dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
     }

     protected function collectionChangeHandler(event:Event):void


Transferred from the Adobe Open Source Subversion Repository

Revision: 8469
Author:   cframpto@adobe.com
Date:     2009-07-08T23:43:16.932563Z

Log Message:
-----------
Revert part of 8452 which changed default maxWidth for TextGraphicElements to 160.  It is back to 10000 for now because of too many test failures.

QA Notes:
Doc Notes:
Reviewers: Gordon

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/TextGraphicElement.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
@@ -274,11 +274,12 @@
     //  maxWidth
     //----------------------------------

-    override public function get maxWidth():Number
-    {
-        return !isNaN(_maxWidth) ? _maxWidth :
-                UIComponent.DEFAULT_MEASURED_WIDTH;      // 160 not 10000
-    }
+// Leave at 10,000 for now.
+//    override public function get maxWidth():Number
+//    {
+//        return !isNaN(_maxWidth) ? _maxWidth :
+//                UIComponent.DEFAULT_MEASURED_WIDTH;      // 160 not 10000
+//    }

     //----------------------------------
     //  visible


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.components.supportClasses
 {


Constantified the stringification of CREATION_COMPLETE

--- src/robotlegs/bender/extensions/mediatorMap/impl/DefaultMediatorManager.as
+++ src/robotlegs/bender/extensions/mediatorMap/impl/DefaultMediatorManager.as
@@ -25,6 +25,8 @@
 		private static var UIComponentClass:Class;

 		private static const flexAvailable:Boolean = checkFlex();
+
+		private static const CREATION_COMPLETE:String = "creationComplete";

 		/*============================================================================*/
 		/* Private Properties                                                         */
@@ -82,9 +84,9 @@
 			// Is this a UIComponent that needs to be initialized?
 			if (flexAvailable && (displayObject is UIComponentClass) && !displayObject['initialized'])
 			{
-				displayObject.addEventListener('creationComplete', function(e:Event):void
+				displayObject.addEventListener(CREATION_COMPLETE, function(e:Event):void
 				{
-					displayObject.removeEventListener('creationComplete', arguments.callee);
+					displayObject.removeEventListener(CREATION_COMPLETE, arguments.callee);
 					// ensure that we haven't been removed in the meantime
 					if (_factory.getMediator(displayObject, event.mapping))
 						initializeMediator(displayObject, mediator);


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

--- frameworks/projects/framework/src/mx/effects/effectClasses/TweenEffectInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/TweenEffectInstance.as
@@ -0,0 +1,400 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.effects.effectClasses
+{
+
+import mx.core.UIComponentGlobals;
+import mx.core.mx_internal;
+import mx.effects.EffectInstance;
+import mx.effects.Tween;
+import mx.events.TweenEvent;
+
+use namespace mx_internal;
+
+/**
+ *
+ *  The TweenEffectInstance class implements the instance class
+ *  for the TweenEffect.
+ *  Flex creates an instance of this class when it plays a TweenEffect;
+ *  you do not create one yourself.
+ *
+ *  @see mx.effects.Tween
+ *  @see mx.effects.TweenEffect
+ */
+public class TweenEffectInstance extends EffectInstance
+{
+    include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param target The Object to animate with this effect.
+	 */
+	public function TweenEffectInstance(target:Object)
+	{
+		super(target);
+	}
+
+ 	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	mx_internal var needToLayout:Boolean = false;
+
+	/**
+	 *  @private.
+	 *  Used internally to hold the value of the new playhead position
+	 *  if the tween doesn't currently exist.
+	 */
+	private var _seekTime:Number = 0;
+
+ 	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+ 	//----------------------------------
+	//  easingFunction
+	//----------------------------------
+
+	/**
+	 *  The easing function for the animation.
+	 *  By default, effects use the same easing function
+	 *  as the TweenEffect class.
+	 *
+	 *  @see mx.effects.TweenEffect#easingFunction
+	 */
+	public var easingFunction:Function;
+
+  	//----------------------------------
+	//  playReversed
+	//----------------------------------
+
+	/**
+	 *  @private
+	 */
+	override mx_internal function set playReversed(value:Boolean):void
+	{
+		super.playReversed = value;
+
+		if (tween)
+			tween.playReversed = value;
+	}
+
+  	//----------------------------------
+	//  playheadTime
+	//----------------------------------
+
+	/**
+	 *  The current position of the effect, in milliseconds.
+	 *  This value is between 0 and the value of the
+	 *  duration property.
+	 *  Use the seek() method to change the position of the effect.
+	 */
+	override public function get playheadTime():Number
+	{
+		if (tween)
+			return tween.mx_internal::playheadTime + super.playheadTime;
+		else
+			return 0;
+	}
+
+  	//----------------------------------
+	//  tween
+	//----------------------------------
+
+ 	/**
+	 *  The Tween object, which determines the animation.
+	 *  To create an effect, you must create a Tween instance
+	 *  in the override of the EffectInstance.play() method
+	 *  and assign it to the tween property.
+	 *  Use the createTween() method to create your Tween object.
+	 */
+	public var tween:Tween;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function pause():void
+	{
+		super.pause();
+
+		if (tween)
+			tween.pause();
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function stop():void
+	{
+		super.stop();
+
+		if (tween)
+			tween.stop();
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function resume():void
+	{
+		super.resume();
+
+		if (tween)
+			tween.resume();
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function reverse():void
+	{
+		super.reverse();
+
+		if (tween)
+			tween.reverse();
+
+		super.playReversed = !playReversed;
+	}
+
+	/**
+  	 *  Advances the effect to the specified position.
+  	 *
+  	 *  @param playheadTime The position, in milliseconds, between 0
+	 *  and the value of the duration property.
+  	 */
+	public function seek(playheadTime:Number):void
+	{
+		if (tween)
+			tween.seek(playheadTime);
+		else
+			_seekTime = playheadTime;
+	}
+
+	/**
+	 *  Interrupts an effect that is currently playing,
+	 *  and immediately jumps to the end of the effect.
+	 *  Calls the Tween.endTween() method
+	 *  on the tween property.
+     *  This method implements the method of the superclass.
+	 *
+	 *
If you create a subclass of TweenEffectInstance,
+	 *  you can optionally override this method.

+     *
+	 *
The effect dispatches the effectEnd event.

+	 *
+	 *  @see mx.effects.EffectInstance#end()
+	 */
+	override public function end():void
+	{
+		stopRepeat = true;
+		if (delayTimer)
+			delayTimer.reset();
+		// Jump to the end of the animation.
+		if (tween)
+		{
+			tween.endTween();
+			tween = null;
+		}
+
+		// Don't call super.endEffect because ending the tween
+		// will eventually call finishEffect() for us.
+		//super.end();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Creates a Tween instance,
+	 *  assigns it the start, end, and duration values. If an easing function has
+	 *  been specified, then it is assigned to the Tween instance. The Tween instance is assigned
+	 *  event listeners for the TweenEvents: tweenStart, tweenUpdate,
+	 *  and tweenEnd.
+	 *  Typically, you call this method from your override of
+	 *  the EffectInstance.play() method
+	 *  which effectively starts the animation timer.
+	 *
+	 *  @param listener Object that is notified at each interval
+	 *  of the animation. You typically pass the this
+	 *  keyword as the value.
+	 *  The listener must define the
+	 *  onTweenUpdate() method and optionally the
+	 *  onTweenEnd() method.
+	 *  The onTweenUpdate() method is invoked for each interval of the animation,
+	 *  and the onTweenEnd() method is invoked just after the animation finishes.
+	 *
+	 *  @param startValue Initial value(s) of the animation.
+	 *  Either a number or an Array of numbers.
+	 *  If a number is passed, the Tween interpolates
+	 *  between this number and the number passed
+	 *  in the endValue parameter.
+	 *  If an Array of numbers is passed,
+	 *  each number in the Array is interpolated.
+	 *
+	 *  @param endValue Final value(s) of the animation.
+	 *  The type of this argument must match the startValue
+	 *  parameter.
+	 *
+	 *  @param duration Duration of the animation, in milliseconds.
+	 *
+	 *  @param minFps Minimum number of times that the
+	 *  onTweenUpdate() method should be called every second.
+	 *  The tween code tries to call the onTweenUpdate()
+	 *  method as frequently as possible (up to 100 times per second).
+	 *  However, if the frequency falls below minFps,
+	 *  the duration of the animation automatically increases.
+	 *  As a result, an animation that temporarily freezes
+	 *  (because it is not getting any CPU cycles) begins again
+	 *  where it left off, instead of suddenly jumping ahead.
+	 *
+	 *  @return The newly created Tween instance.
+	 */
+	protected function createTween(listener:Object,
+						  		     startValue:Object,
+								     endValue:Object,
+						  		     duration:Number = -1,
+								     minFps:Number = -1):Tween
+	{
+		var newTween:Tween =
+			new Tween(listener, startValue, endValue, duration, minFps);
+
+		newTween.addEventListener(TweenEvent.TWEEN_START, tweenEventHandler);
+		newTween.addEventListener(TweenEvent.TWEEN_UPDATE, tweenEventHandler);
+		newTween.addEventListener(TweenEvent.TWEEN_END, tweenEventHandler);
+
+		// If the caller supplied their own easing equation, override the
+		// one that's baked into Tween.
+		if (easingFunction != null)
+			newTween.easingFunction = easingFunction;
+
+		if (_seekTime > 0)
+			newTween.seek(_seekTime);
+
+		newTween.playReversed = playReversed;
+
+		return newTween;
+	}
+
+	mx_internal function applyTweenStartValues():void
+	{
+		if (duration > 0)
+		{
+			onTweenUpdate(tween.getCurrentValue(0));
+		}
+	}
+
+	private function tweenEventHandler(event:TweenEvent):void
+	{
+		dispatchEvent(event);
+	}
+
+	// Tween invokes two callback functions: onTweenUpdate() and onTweenEnd().
+	// The onTweenUpdate() function must be overridden by each subclass.
+	// The onTweenEnd() function may be overridden,
+	// or this default implementation may be used.
+
+	/**
+	 *  Callback method that is called when the target should be updated
+	 *  by the effect.
+	 *  The Tween class uses the easing function and the
+	 *  Tween.startValue, Tween.endValue
+	 *  and Tween.duration properties to calculate
+	 *  the value of the value argument.
+	 *  The value argument can be either a Number
+	 *  or an Array of Numbers.
+	 *
+	 *
All subclasses must override this method.
+	 *  It is not necessary to call the super version of this function
+	 *  when overriding this method.

+	 *
+ 	 *  @param value The value of the value argument
+	 *  is an interpolated value determined by the
+	 *  Tween.startValue property,
+	 *  Tween.endValue property, and interpolation function
+	 *  specified by the implementation of the effect in its
+	 *  play() method.
+	 *  The play() method uses these values to create
+	 *  a Tween object that plays the effect over a time period.
+	 *  The value argument can be either a Number
+	 *  or an Array of Numbers.
+	 */
+	public function onTweenUpdate(value:Object):void
+	{
+		// Subclasses will override this function.
+	}
+
+	/**
+	 *  Callback method that is called when the target should be updated
+	 *  by the effect for the last time.
+	 *  The Tween class passes Tween.endValue as the value
+	 *  of the value argument.
+	 *  The value argument can be either a Number
+	 *  or an Array of Numbers.
+	 *
+	 *
Overriding this function is optional.
+	 *  You must also call the super version of this method
+	 *  from the end of your override, super.onTweenEnd(val),
+	 *  after your logic.

+	 *
+	 *  @param value The value of the value argument
+	 *  is an interpolated value determined by the
+	 *  Tween.startValue property,
+	 *  Tween.endValue property, and interpolation function
+	 *  specified by the implementation of the effect in its
+	 *  play() method.
+	 *  The play() method  uses these values to create
+	 *  a Tween object that plays the effect over a time period.
+     *  The value argument can be either a Number
+	 *  or an Array of Numbers.
+	 */
+	public function onTweenEnd(value:Object):void
+	{
+		// Update to the final frame of the animation
+		onTweenUpdate(value);
+
+		tween = null;
+
+		if (mx_internal::needToLayout)
+			UIComponentGlobals.layoutManager.validateNow();
+
+		// Notify the object that created this effect (either the
+		// effect manager or a composite effect) that the effect is
+		// finished executing.
+		finishRepeat();
+	}
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17972
Author:   chiedozi@adobe.com
Date:     2010-09-30T21:52:48.116606Z

Log Message:
-----------
Fixed RTEs in SlideViewTransition that occured when navigator skins didn't have an action bar or tab bar.

QE notes:
Doc notes:
Bugs: SDK-28061
Reviewer: Jason SJ
Tests run:
Is noteworthy for integration:

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

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
@@ -312,15 +312,23 @@

             if (targetNavigator is TabbedViewNavigator)
             {
-                targets.push(TabbedViewNavigator(targetNavigator).tabBar);
-                explicitIncludeInLayout = TabbedViewNavigator(targetNavigator).tabBar.includeInLayout;
-                TabbedViewNavigator(targetNavigator).tabBar.includeInLayout = false;
+                var tabBar:ButtonBarBase = TabbedViewNavigator(targetNavigator).tabBar;
+
+                if (tabBar)
+                {
+                    targets.push(tabBar);
+                    explicitIncludeInLayout = tabBar.includeInLayout;
+                    tabBar.includeInLayout = false;
+                }
             }
             else if (targetNavigator is ViewNavigator)
             {
-                targets.push(ViewNavigator(targetNavigator).actionBar);
-                explicitIncludeInLayout = ViewNavigator(targetNavigator).actionBar.includeInLayout;
-                ViewNavigator(targetNavigator).actionBar.includeInLayout = false;
+                if (actionBar)
+                {
+                    targets.push(actionBar);
+                    explicitIncludeInLayout = actionBar.includeInLayout;
+                    actionBar.includeInLayout = false;
+                }
             }

             if (cachedNavigator)
@@ -397,13 +405,15 @@

             if (targetNavigator is TabbedViewNavigator)
             {
-                TabbedViewNavigator(targetNavigator).tabBar.includeInLayout =
-                    explicitIncludeInLayout;
+                var tabBar:ButtonBarBase = TabbedViewNavigator(targetNavigator).tabBar;
+
+                if (tabBar)
+                    tabBar.includeInLayout = explicitIncludeInLayout;
             }
             else if (targetNavigator is ViewNavigator)
             {
-                ViewNavigator(targetNavigator).actionBar.includeInLayout =
-                    explicitIncludeInLayout;
+                if (actionBar)
+                    actionBar.includeInLayout = explicitIncludeInLayout;
             }
         }
         else
@@ -428,7 +438,9 @@
             if (actionBar && actionBar.titleDisplay
                 && (actionBar.titleDisplay is DisplayObject)
                 && DisplayObject(actionBar.titleDisplay).visible)
+            {
                 DisplayObject(actionBar.titleDisplay).cacheAsBitmap = false;
+            }

             if (cachedTitleGroup)
                 removeComponentFromContainerSkin(cachedTitleGroup, actionBar.skin);
@@ -633,12 +645,17 @@
         if (targetNavigator == parentNavigator)
         {
             if (targetNavigator is TabbedViewNavigator)
-                TabbedViewNavigator(targetNavigator).tabBar.x = -slideDistance;
+            {
+                var tabBar:ButtonBarBase = TabbedViewNavigator(targetNavigator).tabBar;
+
+                if (tabBar)
+                    tabBar.x = -slideDistance;
+            }
         }
         else
         {
-            if (targetNavigator is ViewNavigator)
-                ViewNavigator(targetNavigator).actionBar.x = -slideDistance;
+            if (targetNavigator is ViewNavigator && actionBar)
+                actionBar.x = -slideDistance;
         }

         targetNavigator.contentGroup.x = -slideDistance;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.automation.delegates.controls
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17103
Author:   chiedozi@adobe.com
Date:     2010-07-28T20:51:54.927218Z

Log Message:
-----------
Added "viewChangeStart" event to ViewNavigator for ComponentCatalog performance test
Added the ability to disable all transitions in a navigator
Fixed a small issue where navigation layout and content wasn't properly invalidated when the actionbar skin part was added

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -958,6 +958,10 @@

     protected function executeViewChange():void
     {
+        // Private event used for performance tests
+        if (hasEventListener("viewChangeStart"))
+            dispatchEvent(new Event("viewChangeStart"));
+
         if (selectedSectionChanged)
         {
             commitSelection();
@@ -1002,7 +1006,7 @@

         // Put this before viewAdded() so another validation pass won't cause this to happen
         currentViewChanged = false;
-        viewAdded(pendingViewTransition);
+        viewAdded(transitionsEnabled ? pendingViewTransition : null);
         pendingViewTransition = null;
     }

@@ -1245,6 +1249,8 @@
         {
             actionContentInvalidated = true;
             actionGroupLayoutInvalidated = true;
+            navigationContentInvalidated = true;
+            navigationGroupLayoutInvalidated = true;
             titleInvalidated = true;
             titleContentInvalidated = true;
             titleGroupLayoutInvalidated = true;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18731
Author:   clucier@adobe.com
Date:     2010-11-19T15:50:29.937447Z

Log Message:
-----------
Initial drop of mobile SlideViewTransition inclusive of push/cover/pop modes, and up/down/left/right directions. Refactored and renamed classes per PARB review and current view transitions specification.

e.g. ViewTransition -> ViewTransitionBase , SlideViewTransition constructor signature changed.

QE notes: None
Doc notes: None
Bugs: None
Reviewer: Chiedo
Tests run: Checkin, TransitionTests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="dir" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as" copyfrom-rev="18652" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionDirection.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/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransitionMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -39,12 +39,14 @@
 import spark.effects.Fade;
 import spark.effects.Move;
 import spark.effects.Resize;
-import spark.effects.SlideViewTransition;
-import spark.effects.ViewTransition;
 import spark.effects.animation.MotionPath;
 import spark.effects.animation.SimpleMotionPath;
 import spark.events.IndexChangeEvent;
 import spark.layouts.supportClasses.LayoutBase;
+import spark.transitions.SlideViewTransition;
+import spark.transitions.SlideViewTransitionMode;
+import spark.transitions.ViewTransitionBase;
+import spark.transitions.ViewTransitionDirection;

 use namespace mx_internal;

@@ -118,7 +120,7 @@
  *
  *  @see spark.components.View
  *  @see spark.components.ActionBar
- *  @see spark.effects.ViewTransition
+ *  @see spark.effects.ViewTransitionBase
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -143,7 +145,7 @@
      *  @private
      *  The animation duration used when running a default view transition.
      */
-    private static const DEFAULT_VIEW_TRANSITION_DURATION:Number = 300;
+    private static const DEFAULT_VIEW_TRANSITION_DURATION:Number = 250;

     //--------------------------------------------------------------------------
     //
@@ -163,8 +165,16 @@
     {
         super();

-        defaultPushTransition = new SlideViewTransition(DEFAULT_VIEW_TRANSITION_DURATION, SlideViewTransition.SLIDE_LEFT);
-        defaultPopTransition = new SlideViewTransition(DEFAULT_VIEW_TRANSITION_DURATION, SlideViewTransition.SLIDE_RIGHT);
+        // Default view transitions
+		var slideLeft:SlideViewTransition = new SlideViewTransition();
+		slideLeft.duration = DEFAULT_VIEW_TRANSITION_DURATION;
+		slideLeft.direction = ViewTransitionDirection.LEFT;
+		defaultPushTransition = slideLeft;
+
+		var slideRight:SlideViewTransition = new SlideViewTransition();
+		slideRight.duration = DEFAULT_VIEW_TRANSITION_DURATION;
+		slideRight.direction = ViewTransitionDirection.RIGHT;
+		defaultPopTransition = slideRight;
     }

     //--------------------------------------------------------------------------
@@ -188,28 +198,6 @@
     *  @productversion Flex 4
     */
     public var actionBar:ActionBar;
-
-    /**
-     *  An internal property that defines the default transition to play when
-     *  a view is pushed onto the navigation stack.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    mx_internal var defaultPushTransition:ViewTransition;
-
-    /**
-     *  An internal property that defines the default transition to play when
-     *  a view is popped off the navigation stack.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    mx_internal var defaultPopTransition:ViewTransition;

     //--------------------------------------------------------------------------
     //
@@ -232,7 +220,7 @@
      */
     private function get actionBarPropertyInvalidated():Boolean
     {
-        return 	actionContentInvalidated ||
+        return  actionContentInvalidated ||
                 actionLayoutInvalidated ||
                 navigationContentInvalidated ||
                 navigationLayoutInvalidated ||
@@ -283,7 +271,7 @@
      *  a different view.
      */
     mx_internal var viewChangeRequested:Boolean = false;
-
+
     /**
      *  @private
      */
@@ -320,17 +308,17 @@
      *  @private
      *  The transition to play when the pending view is activated.
      */
-    private var pendingViewTransition:ViewTransition = null;
-
-	/**
-	 *  @private
-	 *  A variable used to store the trantiion to play after a
-	 *  validation pass.  This needs to be a different variable than
-	 *  pendingViewTransition because the pending transition can
-	 *  change as push and pops come in.
-	 */
-	private var finalViewTransition:ViewTransition;
-
+    private var pendingViewTransition:ViewTransitionBase = null;
+
+    /**
+     *  @private
+     *  A variable used to store the transition to play after a
+     *  validation pass.  This needs to be a different variable than
+     *  pendingViewTransition because the pending transition can
+     *  change as push and pops come in.
+     */
+    mx_internal var activeTransition:ViewTransitionBase;
+
     /**
      *  @private
      *  This flag is set to true if a navigation operation, e.g., pushView()
@@ -455,6 +443,66 @@
         return null;
     }

+    //---------------------------------
+    // defaultPushTransition
+    //---------------------------------
+
+    private var _defaultPushTransition:ViewTransitionBase;
+
+
+    /**
+     *  Specifies the default view transition for push navigation operations.
+     *
+     *  @default new SlideViewTransition()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get defaultPushTransition():ViewTransitionBase
+    {
+        return _defaultPushTransition;
+    }
+
+    /**
+     * @private
+     */
+    public function set defaultPushTransition(value:ViewTransitionBase):void
+    {
+        _defaultPushTransition = value;
+    }
+
+    //---------------------------------
+    // defaultPopTransition
+    //---------------------------------
+
+    private var _defaultPopTransition:ViewTransitionBase;
+
+    /**
+     *  Specifies the default view transition for pop navigation operations.
+     *
+     *  @default new SlideViewTransition()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get defaultPopTransition():ViewTransitionBase
+    {
+        return _defaultPopTransition;
+    }
+
+    /**
+     * @private
+     */
+    public function set defaultPopTransition(value:ViewTransitionBase):void
+    {
+        _defaultPopTransition = value;
+    }
+
+
     //----------------------------------
     //  firstView
     //----------------------------------
@@ -854,7 +902,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function popAll(transition:ViewTransition = null):void
+    public function popAll(transition:ViewTransitionBase = null):void
     {
         if (navigationStack.length == 0 || !canRemoveCurrentView())
             return;
@@ -872,7 +920,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function popView(transition:ViewTransition = null):void
+    public function popView(transition:ViewTransitionBase = null):void
     {
         if (navigationStack.length == 0 || !canRemoveCurrentView())
             return;
@@ -890,7 +938,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function popToFirstView(transition:ViewTransition = null):void
+    public function popToFirstView(transition:ViewTransitionBase = null):void
     {
         if (navigationStack.length < 2 || !canRemoveCurrentView())
             return;
@@ -916,7 +964,7 @@
     public function pushView(viewClass:Class,
                              data:Object = null,
                              context:Object = null,
-                             transition:ViewTransition = null):void
+                             transition:ViewTransitionBase = null):void
     {
         if (viewClass == null || !canRemoveCurrentView())
             return;
@@ -942,7 +990,7 @@
     public function replaceView(viewClass:Class,
                                 data:Object = null,
                                 context:Object = null,
-                                transition:ViewTransition = null):void
+                                transition:ViewTransitionBase = null):void
     {
         if (viewClass == null || !canRemoveCurrentView())
             return;
@@ -960,8 +1008,8 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-	public function showActionBar(animate:Boolean = true):void
-	{
+    public function showActionBar(animate:Boolean = true):void
+    {
         if (!actionBar)
             return;

@@ -970,7 +1018,7 @@
         actionBarVisibilityInvalidated = true;

         invalidateProperties();
-	}
+    }

     /**
      *  Hides the action bar.
@@ -982,8 +1030,8 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-	public function hideActionBar(animate:Boolean = true):void
-	{
+    public function hideActionBar(animate:Boolean = true):void
+    {
         if (!actionBar)
             return;

@@ -992,14 +1040,14 @@
         actionBarVisibilityInvalidated = true;

         invalidateProperties();
-	}
-
+    }
+
     //--------------------------------------------------------------------------
     //
     // Protected Methods
     //
     //--------------------------------------------------------------------------
-
+
     /**
      *  @private
      *  Initializes the view change process by disabling inputs on the
@@ -1093,10 +1141,10 @@
         // of commitViewChange if the current view has changed because they must take
         // part in transitions. If the view change is processed during this validation,
         // the following flags will be false.
-		if (actionBarPropertyInvalidated)
+        if (actionBarPropertyInvalidated)
             updateControlsForView(activeView);
-
-		if (actionBarVisibilityInvalidated)
+
+        if (actionBarVisibilityInvalidated)
             commitVisibilityChanges();
     }

@@ -1140,7 +1188,7 @@
                                     viewClass:Class = null,
                                     data:Object = null,
                                     context:Object = null,
-                                    transition:ViewTransition = null):void
+                                    transition:ViewTransitionBase = null):void
     {
         // ViewNavigator does not allow a push or replace operation to occur
         // without the viewClass factory object defined.
@@ -1243,9 +1291,9 @@
     private function executeAction(action:String, viewClass:Class = null,
                                    data:Object = null,
                                    context:Object = null,
-                                   transition:ViewTransition = null):void
-    {
-        var defaultTransition:ViewTransition;
+                                   transition:ViewTransitionBase = null):void
+    {
+        var defaultTransition:ViewTransitionBase;

         lastAction = action;

@@ -1367,6 +1415,7 @@

                 actionBarVisibilityEffect.addEventListener(EffectEvent.EFFECT_END,
                     visibilityAnimation_completeHandler);
+
                 actionBarVisibilityEffect.play();
             }
             else
@@ -1417,13 +1466,13 @@
     /**
      *  @private
      */
-	private function createActionBarVisibilityEffect():IEffect
-	{
-		var effect:IEffect;
-		var finalEffect:Parallel = new Parallel();
+    private function createActionBarVisibilityEffect():IEffect
+    {
+        var effect:IEffect;
+        var finalEffect:Parallel = new Parallel();

         // Grab initial values
-		actionBarProps = { target:actionBar, start:captureAnimationValues(actionBar) };
+        actionBarProps = { target:actionBar, start:captureAnimationValues(actionBar) };
         contentGroupProps = { target:contentGroup, start:captureAnimationValues(contentGroup) };

         // Update actionBar layout properties
@@ -1432,10 +1481,10 @@

         // Calculate final positions.  This method will force a validation
         calculateFinalUIPositions();
-
+
         // The actionbar will be visible if we are animating it
-		if (actionBar.visible)
-		{
+        if (actionBar.visible)
+        {
             var animate:Animate = new Animate();
             animate.target = actionBar;
             animate.duration = ACTION_BAR_ANIMATION_DURATION;
@@ -1449,15 +1498,15 @@
             effect.target = actionBar;

             finalEffect.addChild(effect);
-		}
-
+        }
+
         effect = createContentVisibilityEffect(actionBar.visible, contentGroupProps);
         effect.target = contentGroup;

-		finalEffect.addChild(effect);
-
+        finalEffect.addChild(effect);
+
         return finalEffect;
-	}
+    }

     /**
      *  @private
@@ -1585,24 +1634,24 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-	private function visibilityAnimation_completeHandler(event:EffectEvent):void
-	{
-        // Update the actionBar visibility and includeInLayout flags
-		actionBar.visible = actionBar.includeInLayout = !actionBarProps.start.visible;
-
+    private function visibilityAnimation_completeHandler(event:EffectEvent):void
+    {
+        // Update the actionBar visibility and includeInLayout flags
+        actionBar.visible = actionBar.includeInLayout = !actionBarProps.start.visible;
+
         // Restore includeInLayout and cacheAsBitmap properties for each component
         actionBar.cacheAsBitmap = actionBarProps.start.cacheAsBitmap;
-		contentGroup.includeInLayout = contentGroupProps.start.includeInLayout;
-		contentGroup.cacheAsBitmap = contentGroupProps.start.cacheAsBitmap;
-
+        contentGroup.includeInLayout = contentGroupProps.start.includeInLayout;
+        contentGroup.cacheAsBitmap = contentGroupProps.start.cacheAsBitmap;
+
         // Clear flags and temporary properties
-		actionBarVisibilityEffect = null;
-		actionBarProps = null;
-		contentGroupProps = null;
-		actionBarVisibilityInvalidated = false;
+        actionBarVisibilityEffect = null;
+        actionBarProps = null;
+        contentGroupProps = null;
+        actionBarVisibilityInvalidated = false;

         event.target.removeEventListener(EffectEvent.EFFECT_END, visibilityAnimation_completeHandler);
-	}
+    }

     /**
      *  @private
@@ -1932,7 +1981,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    private function viewAdded(transition:ViewTransition = null):void
+    private function viewAdded(transition:ViewTransitionBase = null):void
     {
         var currentView:View;
         var pendingView:View;
@@ -1959,9 +2008,9 @@

         if (transition)
         {
-            transition.addEventListener(Event.COMPLETE, transitionComplete);
-            transition.currentView = currentView;
-            transition.nextView = pendingView;
+            transition.addEventListener(FlexEvent.TRANSITION_END, transitionComplete);
+            transition.startView = currentView;
+            transition.endView = pendingView;
             transition.navigator = this;

             // Give the transition a chance to prepare before the view updates
@@ -1971,7 +2020,7 @@
         // This event is dispatched here to allow developers to incorporate
         // length specific changes into the view navigator transitions
         if (hasEventListener("lengthChanged"))
-	        dispatchEvent(new Event("lengthChanged"));
+            dispatchEvent(new Event("lengthChanged"));

         // Invalidate the actionBar properties
         if (actionBar)
@@ -1986,7 +2035,7 @@
         // Need to force state change by calling validate properties again
         if (overlayControls != pendingView.overlayControls)
         {
-		    overlayControls = pendingView.overlayControls;
+            overlayControls = pendingView.overlayControls;

             // We need to force a commitProperties on the SkinnableComponent so that
             // state changes are validated this frame.
@@ -2005,15 +2054,16 @@
                 validateNow();
         }

-        // Run transition a frame later so that the overhead of creating the view
-		// and the time the player takes to render isn't included in the duration.
-		// See SDK-27793.
         if (transition)
         {
-			transition.prepareFinalState();
-			finalViewTransition = transition;
-
-			addEventListener(Event.ENTER_FRAME, startViewTransition);
+            transition.captureEndValues();
+            transition.prepareForPlay();
+			activeTransition = transition;
+
+            // Run transition a frame later so that the overhead of creating the view
+            // and the time the player takes to render isn't included in the duration.
+            // See SDK-27793.
+            addEventListener(Event.ENTER_FRAME, startViewTransition);
         }
         else
         {
@@ -2021,26 +2071,26 @@
         }
     }

-	/**
-	 *  @private
-	 *  Starts the view transition.
-	 */
-	private function startViewTransition(event:Event):void
-	{
-		removeEventListener(Event.ENTER_FRAME, startViewTransition);
-
+    /**
+     *  @private
+     *  Starts the view transition.
+     */
+    private function startViewTransition(event:Event):void
+    {
+        removeEventListener(Event.ENTER_FRAME, startViewTransition);
+
 //        CONFIG::performanceInstrumentation
-		{
-			if (hasEventListener("transitionStart"))
-				dispatchEvent(new Event("transitionStart", false, false));
-		}
-
-		finalViewTransition.play();
-	}
-
-    /**
-     *  @private
-     *  Called when a transition dispatches a COMPLETE event.
+        {
+            if (hasEventListener(FlexEvent.TRANSITION_START))
+                dispatchEvent(new FlexEvent(FlexEvent.TRANSITION_START, false, false));
+        }
+
+		activeTransition.play();
+    }
+
+    /**
+     *  @private
+     *  Called when a transition dispatches an FlexEvent.TRANSITION_END event.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.1
@@ -2049,15 +2099,12 @@
      */
     private function transitionComplete(event:Event):void
     {
-        ViewTransition(event.target).removeEventListener(Event.COMPLETE, transitionComplete);
-
-//        CONFIG::performanceInstrumentation
-        {
-            if (hasEventListener("transitionEnd"))
-               dispatchEvent(new Event("transitionEnd", false, false));
-        }
-
-		finalViewTransition = null;
+        ViewTransitionBase(event.target).removeEventListener(FlexEvent.TRANSITION_END, transitionComplete);
+
+        if (hasEventListener(FlexEvent.TRANSITION_END))
+            dispatchEvent(new FlexEvent(FlexEvent.TRANSITION_END, false, false));
+
+		activeTransition = null;
         navigatorActionCommitted();
     }

@@ -2070,7 +2117,7 @@
      *  @productversion Flex 4.5
      */
     override mx_internal function backKeyUpHandler():void
-    {
+    {
         if (activeView && !activeView.backKeyHandledByView())
             popView();
     }
@@ -2151,8 +2198,8 @@
                     view.titleLayout : titleLayout;
                 titleLayoutInvalidated = false;
             }
-
-			actionBar.visible = actionBar.includeInLayout = view && view.actionBarVisible;
+
+            actionBar.visible = actionBar.includeInLayout = view && view.actionBarVisible;
             actionBarVisibilityInvalidated = false;
         }
     }
@@ -2182,10 +2229,10 @@
                 actionContentInvalidated = true;
             else if (property == "actionLayout")
                 actionLayoutInvalidated  = true;
-			else if (property == "navigationContent")
-				navigationContentInvalidated = true;
-			else if (property == "navigationLayout")
-				navigationLayoutInvalidated  = true;
+            else if (property == "navigationContent")
+                navigationContentInvalidated = true;
+            else if (property == "navigationLayout")
+                navigationLayoutInvalidated  = true;
             else if (property == "overlayControls")
             {
                 overlayControls = event.newValue;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17852
Author:   chiedozi@adobe.com
Date:     2010-09-24T21:27:53.988157Z

Log Message:
-----------
MobileApplicationBase now listens for application invoke events
The stage focus is now properly restored when an app is relaunched after being suspended by the OS
Fixed a small issue where a view wouldn't receive a viewDeactive event when the application closed

QE notes:
Doc notes:
Bugs: SDK-27943, SDK-27925
Reviewer: Ryan
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -397,8 +397,6 @@
         if (value == active)
             return;

-        super.setActive(value);
-
         if (value)
         {
             createTopView();
@@ -409,7 +407,7 @@
         else
         {
             if (activeView)
-            {
+            {
                 if ((activeView.destructionPolicy != ContainerDestructionPolicy.NEVER &&
                     destructionPolicy != ContainerDestructionPolicy.NEVER) ||
                     !maintainNavigationStack)
@@ -419,6 +417,10 @@
             if (!maintainNavigationStack)
                 navigationStack.popToFirstView();
         }
+
+        // Call super after the above code so that the view has a chance
+        // to be created before its active property is set.
+        super.setActive(value);
     }

     //----------------------------------
@@ -1706,6 +1708,8 @@
         {
             if (firstView != null)
                 navigationStack.push(firstView, firstViewData);
+            else
+                return;
         }

         // Update the current view reference
@@ -1772,6 +1776,10 @@

         if (!currentView)
             return;
+
+        // Deactivate the view if it is active
+        if (currentView.active)
+            currentView.setActive(false);

         removeElement(currentView);


Transferred from the Adobe Open Source Subversion Repository

Revision: 6391
Author:   smgilson@adobe.com
Date:     2009-04-29T20:04:20.789717Z

Log Message:
-----------
ASDoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/TextOperationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/VideoEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/RendererExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/ElementExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -80,7 +80,7 @@
 [Style(name="baseColor", type="uint", format="Color", inherit="yes")]

 /**
- *  Color of the fill of an itemRenderer
+ *  Color of the fill of an item renderer
  *
  *  @default 0xFFFFFF
  *
@@ -134,6 +134,29 @@
  *  The GroupBase class defines the base class for components that display visual elements.
  *  A group component does not control the layout of the visual items that it contains.
  *  Instead, the layout is handled by a separate layout component.
+ *
+ *  @mxml
+ *
+ *
The <GroupBase> tag inherits all of the tag
+ *  attributes of its superclass and adds the following tag attributes:

+ *
+ *

+ *  <GroupBase
+ *    Properties
+ *    autoLayout="true"
+ *    clipAndEnableScrolling="false"
+ *    horizontalScrollPosition="null"
+ *    layout="BasicLayout"
+ *    mask=""
+ *    maskType="clip"
+ *    resizeMode="normal"
+ *    verticalScrollPosition="no default"
+ *
+ *    Events
+ *    elementAdd="No default"
+ *    elementRemove="No default"
+ *  />
+ *

  *
  *  @see spark.layouts.supportClasses.LayoutBase
  *  @see spark.components.ResizeMode
@@ -384,6 +407,8 @@

     /**
      *  @copy spark.core.IViewport#clipAndEnableScrolling
+     *
+     *  @default false
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -562,7 +587,7 @@
  *  keep their unscaled width and height and the children
  *  are scaled to change size.
  *
- * @default ResizeMode.NORMAL
+ *
The default value is ResizeMode.NORMAL, corresponding to "normal".

  *
  * @see spark.components.ResizeMode
  *
@@ -630,11 +655,11 @@
      */
     public function childTransformChanged():void
     {
-    	if (autoLayout)
-    	{
-	    	invalidateSize();
-	    	invalidateDisplayList();
-    	}
+        if (autoLayout)
+        {
+            invalidateSize();
+            invalidateDisplayList();
+        }
     }

     /**
@@ -658,7 +683,7 @@
     {
         super.invalidateDisplayList();
     }
-
+
     /**
      *  @inheritDoc
      *
@@ -738,27 +763,27 @@

         super.updateDisplayList(unscaledWidth, unscaledHeight);

-		if (maskChanged)
+        if (maskChanged)
         {
             maskChanged = false;
             if (_mask)
             {
-            	maskTypeChanged = true;
+                maskTypeChanged = true;

-		        if (!_mask.parent)
-	            {
-	            	// TODO!!! This needs to be a sibling because alpha
-	                super.addChild(_mask);
-	                var maskComp:UIComponent = _mask as UIComponent;
-	                if (maskComp)
-	                {
-		                maskComp.validateProperties();
-	                    maskComp.validateSize();
-	                    maskComp.setActualSize(maskComp.getExplicitOrMeasuredWidth(),
-	                                           maskComp.getExplicitOrMeasuredHeight());
-	                }
-	            }
-	        }
+                if (!_mask.parent)
+                {
+                    // TODO!!! This needs to be a sibling because alpha
+                    super.addChild(_mask);
+                    var maskComp:UIComponent = _mask as UIComponent;
+                    if (maskComp)
+                    {
+                        maskComp.validateProperties();
+                        maskComp.validateSize();
+                        maskComp.setActualSize(maskComp.getExplicitOrMeasuredWidth(),
+                                               maskComp.getExplicitOrMeasuredHeight());
+                    }
+                }
+            }
         }

         if (maskTypeChanged)
@@ -902,7 +927,7 @@
      *  Sets the contentWidth and contentHeight
      *  properties.
      *
-     *  This method is is intended for layout class developers who should
+     *  This method is intended for layout class developers who should
      *  call it from updateDisplayList() methods.
      *
      *  @param width The new value of contentWidth.
@@ -1106,6 +1131,8 @@
      *  The mask type.
      *  Possible values are MaskType.CLIP and MaskType.ALPHA.
      *
+     *
The default value is MaskType.CLIP, corresponding to "clip".

+     *
      *  @see  spark.core.MaskType
      *
      *  @langversion 3.0


Transferred from the Adobe Open Source Subversion Repository

Revision: 20357
Author:   rfrishbe@adobe.com
Date:     2011-02-17T22:17:33.718238Z

Log Message:
-----------
Fixing up some documentation: clarifying itemRendererFunction's effect on performance and cleaning up some old StyleableTextField documentation around its usage.

QE notes: -
Doc notes:
Bugs: -
Reviewer: 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/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -72,9 +72,10 @@
 //   in createChildren():
 //       var tf:StyleableTextField = createInFontContext(StyleableTextField);
 //       tf.styleName = this;
-//       tf.editable = true|false;   // for editable text
-//       tf.multiline = true|false;  // for multiline text
-//       tf.wordWrap = true|false;   // for word wrapping
+//       tf.editable = true|false;       // for editable text
+//       tf.multiline = true|false;      // for multiline text
+//       tf.wordWrap = true|false;       // for word wrapping
+//       tf.cacheAsBitmap = true|false;  // use true if text in item renderer
 //       addChild(tf);
 //
 //   in commitProperties():
@@ -84,16 +85,14 @@
 //       if (tf.isTruncated)     // if text may be truncated
 //           tf.text = "...";
 //       tf.commitStyles();    // Always call this. No-op if styles already applied.
-//       Use tf.textWidth, tf.textHeight;
+//       Use getElementPreferredWidth(tf), getElementPreferredHeight(tf)
 //
 //   in updateDisplayList():
 //       if (tf.isTruncated)    // if text may be truncated
 //           tf.text = "...";
 //       tf.commitStyles();    // Always call this. No-op if styles already applied.
-//       tf.x = ...
-//       tf.y = ...
-//       tf.width = ...
-//       tf.height = ...
+//       setElementSize(tf, width, height);
+//       setElementPosition(x, y);
 //       // if you want truncated text:
 //       tf.truncateToFit();
 //


Transferred from the Adobe Open Source Subversion Repository

Revision: 22466
Author:   cframpto@adobe.com
Date:     2011-09-09T18:30:37.890443Z

Log Message:
-----------
Fix StyleableTextField so it can be used with a styleSheet.  This is useful for styling renderers.  Note that the TextArea and TextInput skins based on StyleableTextField still do not support a styleSheet.

QE notes:
Doc notes:
Bugs: SDK-31359
Reviewer: Adam
Tests run: cyclone
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/bundles/en_US/components.properties</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as
@@ -25,6 +25,7 @@
 import flash.geom.Vector3D;
 import flash.text.Font;
 import flash.text.FontType;
+import flash.text.StyleSheet;
 import flash.text.TextField;
 import flash.text.TextFieldAutoSize;
 import flash.text.TextFieldType;
@@ -47,6 +48,7 @@
 import mx.events.TouchInteractionReason;
 import mx.geom.TransformOffsets;
 import mx.managers.SystemManager;
+import mx.resources.IResourceManager;
 import mx.resources.ResourceManager;
 import mx.styles.CSSStyleDeclaration;
 import mx.styles.ISimpleStyleClient;
@@ -475,7 +477,7 @@
             if (numLines == 1) // account for the extra leading on single line text
                 bottomOffset += metrics.leading;

-            _tightTextTopOffset = getTextTopOffset(defaultTextFormat);
+            _tightTextTopOffset = getTextTopOffset(defaultTextFormat, styleSheet);
             _tightTextHeight = measuredTextSize.y - _tightTextTopOffset - bottomOffset;

             if (isEmpty)
@@ -491,8 +493,10 @@
      *  a particular font, size, weight and style combination.  This value accounts for
      *  the difference between the metrics.ascent and the true top of the text within the
      *  text field and the top gutter
-     */
-    private static function getTextTopOffset(textFormat:TextFormat):Number
+     *
+     *  If a styleSheet is specified it will be used, otherwise the textFormat will be used.
+     */
+    private static function getTextTopOffset(textFormat:TextFormat, styleSheet:StyleSheet=null):Number
     {
         // Try to find the top offset for the font, size, weight and style in our table.
         // We only store offets for unique font, size, weight and style combinations.
@@ -509,7 +513,10 @@

             // create sample text field
             var field:TextField = new TextField();
-            field.defaultTextFormat = textFormat;
+            if (styleSheet)
+                field.styleSheet = styleSheet;
+            else
+                field.defaultTextFormat = textFormat;
             field.embedFonts = isFontEmbedded(textFormat);
             field.textColor = 0x000000; // make sure our text is black so it will show up against white
             field.text = "T"; // use "T" as our standard
@@ -904,12 +911,22 @@
      *
      *  @param text The text to be inserted.
      *
+     *  @throws Error This method or property cannot be used on a text field with a style sheet.
+     *
      *  @langversion 3.0
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
     public function insertText(text:String):void
     {
+        if (styleSheet)
+        {
+            const resourceManager:IResourceManager = ResourceManager.getInstance();
+            const message:String =
+                resourceManager.getString("components", "styleSheetError");
+            throw(new Error(message));
+        }
+
         replaceText(selectionAnchorPosition, selectionActivePosition, text);
         dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
         invalidateTextSizeFlag = true;
@@ -1061,8 +1078,13 @@
             // Check for embedded fonts
             embedFonts = isFontEmbedded(textFormat);

-            defaultTextFormat = textFormat;
-            setTextFormat(textFormat);
+            // It is an error to set defaultTextFormat or call setTextFormat if there is a
+            // styleSheet.
+            if (!styleSheet)
+            {
+                defaultTextFormat = textFormat;
+                setTextFormat(textFormat);
+            }

             // If our text is empty we need to force the style changes in order for
             // textHeight to be valid. Setting the width is sufficient, and should


Fix issue where check for final slash was comparing zero-based index with length

--- HLSPlugin/src/org/denivip/osmf/utils/Utils.as
+++ HLSPlugin/src/org/denivip/osmf/utils/Utils.as
@@ -4,8 +4,7 @@

 	public class Utils
 	{
-		public static function createFullUrl(rootUrl:String, url:String):String{
-
+		public static function createFullUrl(rootUrl:String, url:String):String {
 			if(url.search(/(ftp|file|https?):\/\/\/?/) == 0)
 				return url;

@@ -14,7 +13,7 @@
 				return URL.getRootUrl(rootUrl) + url;
 			}

-			if(rootUrl.lastIndexOf('/') != rootUrl.length)
+			if(rootUrl.lastIndexOf('/') != rootUrl.length - 1)
 				rootUrl += '/';

 			return rootUrl + url;


Code clean

Code clean

--- collect-client/src/generated/flex/org/openforis/collect/model/proxy/ValidationResultProxy.as
+++ collect-client/src/generated/flex/org/openforis/collect/model/proxy/ValidationResultProxy.as
@@ -22,12 +22,10 @@
 			if(StringUtil.isBlank(result)) {
 				if(ruleName == "ComparisonCheck") {
 					result = getComparisonCheckMessage();
+				} else if(messageKey != null) {
+					result = Message.get(messageKey, messageArgs);
 				} else {
-					if(messageKey != null) {
-						result = Message.get(messageKey, messageArgs);
-					} else {
-						result = ruleName;
-					}
+					result = ruleName;
 				}
 			}
 			return result;


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

--- frameworks/projects/charts/src/mx/charts/series/renderData/PlotSeriesRenderData.as
+++ frameworks/projects/charts/src/mx/charts/series/renderData/PlotSeriesRenderData.as
@@ -0,0 +1,93 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.series.renderData
+{
+
+import mx.charts.chartClasses.RenderData;
+
+/**
+ *  Represents all the information needed by the PlotSeries to render.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class PlotSeriesRenderData extends RenderData
+{
+    include "../../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *	@param	cache	The list of PlotSeriesItem objects representing the items in the dataProvider.
+	 *	@param	filteredCache	The list of PlotSeriesItem objects representing the items in the dataProvider that remain after filtering.
+	 *	@param	radius	The radius of the individual PlotSeriesItem objects.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function PlotSeriesRenderData(cache:Array /* of PlotSeriesItem */ = null,
+										 filteredCache:Array /* of PlotSeriesItem */ = null,
+										 radius:Number = 0)
+	{
+		super(cache, filteredCache);
+
+		this.radius = radius;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+	//  radius
+    //----------------------------------
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The radius of the individual PlotSeriesItem objects.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var radius:Number;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function clone():RenderData
+	{
+		return new PlotSeriesRenderData(cache, filteredCache, radius);
+	}
+}
+
+}


Added support for EPSG:102736

Added support for EPSG:102736

--- WeaveData/src/weave/data/ProjectionManager.as
+++ WeaveData/src/weave/data/ProjectionManager.as
@@ -66,7 +66,8 @@

 			//ProjProjection.defs['aeac-us'] = '+title=Albers Equal-Area Conic +proj=aea +lat_1=37.25 +lat_2=40.25 +lat_0=36 +lon_0=-72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs';

-			ProjProjection.defs['EPSG:26986'] = "+title=NAD83 / Massachusetts Mainland +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs";
+			ProjProjection.defs['EPSG:26986'] = "+title=NAD83 / Massachusetts Mainland +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs";
+			ProjProjection.defs['EPSG:102736'] = "+title=NAD 1983 StatePlane Tennessee FIPS 4100 Feet +proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs";
 			ProjProjection.defs["EPSG:3638"] = "+title=NAD83(NSRS2007) / Ohio South +proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs";
 			ProjProjection.defs['VANDG'] = "+title=Van Der Grinten +proj=vandg +x_0=0 +y_0=0 +lon_0=0";


WeaveRServlet now extends AMF3Servlet instead of using a private variable

--- WeaveData/src/weave/services/WeaveRServlet.as
+++ WeaveData/src/weave/services/WeaveRServlet.as
@@ -21,84 +21,78 @@
 {
 	import mx.rpc.AsyncToken;

-
-
 	/**
-	 * WSStatisticsServlet
 	 * @author spurushe
 	 * @author sanbalag
 	 */
-	public class WeaveRServlet
+	public class WeaveRServlet extends AMF3Servlet
 	{
 		public function WeaveRServlet(url:String)
 		{
-			servlet = new AMF3Servlet(url);
+			super(url);
 		}
-
-		protected var servlet:AMF3Servlet;
-
-

 		public function runScript(keys:Array, inputNames:Array, inputValues:Array, outputNames:Array, script:String,plotScript:String, showIntermediateResults:Boolean, showWarningMessages:Boolean , useColumnsAsList:Boolean ):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("runScript", arguments);
+			return invokeAsyncMethod("runScript", arguments);
 		}

 		public function checkforJRIService():AsyncToken
 		{
-			return servlet.invokeAsyncMethod("checkforJRIService",arguments);
+			return invokeAsyncMethod("checkforJRIService",arguments);
 		}

 		public function runScriptOnCSVOnServer(queryObject:Array):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("runScriptOnCSVOnServer", arguments);
+			return invokeAsyncMethod("runScriptOnCSVOnServer", arguments);
 		}

 		public function runScriptOnSQLOnServer(queryObject:Array, queryStatement:String, schema:String):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("runScriptOnSQLOnServer", arguments);
+			return invokeAsyncMethod("runScriptOnSQLOnServer", arguments);
 		}

-		// async result will be of type KMeansClusteringResult
+		/** async result will be of type KMeansClusteringResult */
 		public function KMeansClustering(inputNames:Array, inputValues:Array,showWarnings:Boolean,numberOfClusters:int,iterations:int):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("kMeansClustering", arguments);
+			return invokeAsyncMethod("kMeansClustering", arguments);
 		}

-		// async result will be of type HierarchicalClusteringResult
+		/** async result will be of type HierarchicalClusteringResult */
 		public function HierarchicalClustering(dataX:Array, dataY:Array):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("hierarchicalClustering", arguments);
+			return invokeAsyncMethod("hierarchicalClustering", arguments);
 		}

 		// NEED TO INSTALL (fpc) PACKAGE FROM R

-		// async result will be of type DensityBasedClusteringResult
-		/*public function DensityBasedClustering(dataX:Array, dataY:Array):AsyncToken
+		/* * async result will be of type DensityBasedClusteringResult * /
+		public function DensityBasedClustering(dataX:Array, dataY:Array):AsyncToken
 		{
 			return servlet.invokeAsyncMethod("densityBasedClustering", arguments);
-		}*/
+		}
+		*/
+
 		public function linearRegression(method:String, dataX:Array, dataY:Array, polynomialDegree:int):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("linearRegression", arguments);
+			return invokeAsyncMethod("linearRegression", arguments);
 		}

 		public function handlingMissingData(inputNames:Array, inputValues:Array, outputNames:Array,showIntermediateResults:Boolean, showWarningMessages:Boolean, completeProcess:Boolean ):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("handlingMissingData", arguments);
+			return invokeAsyncMethod("handlingMissingData", arguments);

 		}

 		public function normalize(data:Array):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("normalize", arguments);
+			return invokeAsyncMethod("normalize", arguments);

 		}

 		public function doClassDiscrimination(dataX:Array, dataY:Array, flag:Boolean):AsyncToken
 		{
-			return servlet.invokeAsyncMethod("doClassDiscrimintation", arguments);
+			return invokeAsyncMethod("doClassDiscrimintation", arguments);
 		}
-
 	}
 }


FIXED - FLEX-34141 softkeyboardActivate events are not dispatched in Flex 4.12 on iOS

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as
@@ -30,7 +30,6 @@
 import flash.geom.Matrix;
 import flash.geom.Point;
 import flash.geom.Rectangle;
-import flash.system.Capabilities;
 import flash.text.AutoCapitalize;
 import flash.text.ReturnKeyLabel;
 import flash.text.SoftKeyboardType;
@@ -47,7 +46,6 @@
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.managers.SystemManager;
-import mx.utils.MatrixUtil;
 import mx.utils.Platform;

 import spark.components.Application;
@@ -1753,8 +1751,9 @@
             stageText.addEventListener(Event.CHANGE, stageText_changeHandler);
             stageText.addEventListener(FocusEvent.FOCUS_IN, stageText_focusInHandler);
             stageText.addEventListener(FocusEvent.FOCUS_OUT, stageText_focusOutHandler);
+            stageText.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, stageText_softKeyboardHandler);
             stageText.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, stageText_softKeyboardActivateHandler);
-            stageText.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, stageText_softKeyboardDeactivateHandler);
+            stageText.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, stageText_softKeyboardHandler);
             stageText.addEventListener(KeyboardEvent.KEY_DOWN, stageText_keyDownHandler);
             stageText.addEventListener(KeyboardEvent.KEY_UP, stageText_keyUpHandler);
         }
@@ -1777,8 +1776,9 @@
         stageText.removeEventListener(Event.COMPLETE, stageText_completeHandler);
         stageText.removeEventListener(FocusEvent.FOCUS_IN, stageText_focusInHandler);
         stageText.removeEventListener(FocusEvent.FOCUS_OUT, stageText_focusOutHandler);
+        stageText.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING, stageText_softKeyboardHandler);
         stageText.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATE, stageText_softKeyboardActivateHandler);
-        stageText.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, stageText_softKeyboardDeactivateHandler);
+        stageText.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE, stageText_softKeyboardHandler);
         stageText.removeEventListener(KeyboardEvent.KEY_DOWN, stageText_keyDownHandler);
         stageText.removeEventListener(KeyboardEvent.KEY_UP, stageText_keyUpHandler);

@@ -1886,18 +1886,20 @@
         }
     }

+
+    /*  start edition and  bubbles up the event */
     private function stageText_softKeyboardActivateHandler(event:SoftKeyboardEvent):void
     {

-        if ( startTextEdit()) {
-            dispatchEvent(new SoftKeyboardEvent(event.type,
+        startTextEdit();
+        dispatchEvent(new SoftKeyboardEvent(event.type,
                     true, event.cancelable, this, event.triggerType));
-        }
-    }
-
-    private function stageText_softKeyboardDeactivateHandler(event:SoftKeyboardEvent):void
-    {
-            dispatchEvent(new SoftKeyboardEvent(event.type,
+    }
+
+    /*  just bubbles up the event */
+    private function stageText_softKeyboardHandler(event:SoftKeyboardEvent):void
+    {
+          dispatchEvent(new SoftKeyboardEvent(event.type,
                     true, event.cancelable, this, event.triggerType));
     }


correct order / tiny bit faster

correct order / tiny bit faster

--- frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
+++ frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
@@ -7271,7 +7271,7 @@
             n = orderedHeadersList.length;
             for (i = 0; i < n; i++)
             {
-                if (r == orderedHeadersList[i].headerItem && r)
+                if (r && r == orderedHeadersList[i].headerItem)
                 {
                     var c:AdvancedDataGridColumn = orderedHeadersList[i].column;
                     if (sortableColumns && c.sortable && lastItemDown == r)


Transferred from the Adobe Open Source Subversion Repository

Revision: 18731
Author:   clucier@adobe.com
Date:     2010-11-19T15:50:29.937447Z

Log Message:
-----------
Initial drop of mobile SlideViewTransition inclusive of push/cover/pop modes, and up/down/left/right directions. Refactored and renamed classes per PARB review and current view transitions specification.

e.g. ViewTransition -> ViewTransitionBase , SlideViewTransition constructor signature changed.

QE notes: None
Doc notes: None
Bugs: None
Reviewer: Chiedo
Tests run: Checkin, TransitionTests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="dir" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as" copyfrom-rev="18652" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionDirection.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/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransitionMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as
@@ -19,10 +19,10 @@
 import spark.components.ButtonBar;
 import spark.components.Group;
 import spark.components.ViewNavigator;
-import spark.effects.ViewTransition;
 import spark.effects.Move;
-import spark.effects.SlideViewTransition;
 import spark.skins.mobile.supportClasses.MobileSkin;
+import spark.transitions.SlideViewTransition;
+import spark.transitions.ViewTransitionBase;

 /**
  *  The ActionScript based skin for view navigators in mobile


Transferred from the Adobe Open Source Subversion Repository

Revision: 10349
Author:   klin@adobe.com
Date:     2009-09-17T18:58:07.129844Z

Log Message:
-----------
http://bugs.adobe.com/jira/browse/SDK-23172 - Removed include of BasicInheritingTextStyles since the text styles don't affect Slider.

QE Notes: None
Doc Notes: None
Bugs: SDK-23172
Reviewer: Jason
API Change: No
Is noteworthy for integration: No
tests: checkintests

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -33,8 +33,6 @@
 import spark.events.TrackBaseEvent;

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

 /**
  *  The alpha of the focus ring for this component.


Transferred from the Adobe Open Source Subversion Repository

Revision: 14095
Author:   cframpto@adobe.com
Date:     2010-02-10T17:33:30.511669Z

Log Message:
-----------
Merge 14076 from 4.x branch to trunk.

Revision: 14076
Author:   cframpto@adobe.com
Date:     2010-02-09 15:23:15 -0800 (Tue, 09 Feb 2010)
Log Message:
***********
Add UIComponent.mapKeycodeForLayoutDirection().  This should be called by any keyDownHandlers() which handles Keyboard.LEFT and Keyboard.RIGHT, and optionally for Keyboard.UP and Keyboard.DOWN, if they behave like Keyboard.LEFT and Keyboard.RIGHT.  If the layoutDirection="rtl", it maps LEFT to RIGHT, RIGHT to LEFT, UP to RIGHT and DOWN to LEFT.  This allows the keyDownHandler() to perform the correct action without adding lots of special case code to the key handling code.

QE notes: For layoutDirection="rtl" need to test LEFT, RIGHT, UP and DOWN keys.
Doc notes: None
Bugs: SDK-25330
Reviewed By: Hans
Tests run: checkintests
Is noteworthy for integration: No

Ticket Links:
***********
    http://bugs.adobe.com/jira/browse/SDK-25330

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk/frameworks</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -583,7 +583,7 @@
         dispatchEvent(new Event(Event.CHANGE));
         dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
     }
-
+
     //--------------------------------------------------------------------------
     //
     //  Overridden event handlers
@@ -724,8 +724,12 @@

         var prevValue:Number = this.value;
         var newValue:Number;
-
-        switch (event.keyCode)
+
+        // If rtl layout, need to swap LEFT/UP for RIGHT/DOWN so correct action
+        // is done.
+        var keyCode:int = mapKeycodeForLayoutDirection(event, true);
+
+        switch (keyCode)
         {
             case Keyboard.DOWN:
             case Keyboard.LEFT:


Transferred from the Adobe Open Source Subversion Repository

Revision: 6453
Author:   cframpto@adobe.com
Date:     2009-05-01T11:55:04.914220Z

Log Message:
-----------
Add module headers to RichEditableTextContainerManager.as and InvalidatingSprite.as.
Comment out trace in RichEditableText.as.

QE Notes:
Doc Notes:
Bugs:
Reviewers: Gordon

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/InvalidatingSprite.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/InvalidatingSprite.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/InvalidatingSprite.as
@@ -1,3 +1,14 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.components.supportClasses
 {
 import flash.display.Sprite;


Transferred from the Adobe Open Source Subversion Repository

Revision: 20836
Author:   chiedozi@adobe.com
Date:     2011-03-12T01:31:06.093014Z

Log Message:
-----------
Merging hero_private revision 20834 into trunk

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -31,6 +31,7 @@
 import spark.components.supportClasses.ViewReturnObject;
 import spark.core.ContainerDestructionPolicy;
 import spark.effects.Animate;
+import spark.effects.animation.Animation;
 import spark.effects.animation.MotionPath;
 import spark.effects.animation.SimpleMotionPath;
 import spark.layouts.supportClasses.LayoutBase;
@@ -2093,9 +2094,8 @@
             activeTransition.captureEndValues();
             activeTransition.prepareForPlay();

-            // Run transition a frame later so that the overhead of creating the view
-            // and the time the player takes to render isn't included in the duration.
-            // See SDK-27793.
+            // Wait a frame so that any queued work can be completed by the framework
+            // and runtime before the transition starts.
             addEventListener(Event.ENTER_FRAME, startViewTransition);
         }
         else
@@ -2111,7 +2111,12 @@
     private function startViewTransition(event:Event):void
     {
         removeEventListener(Event.ENTER_FRAME, startViewTransition);
-
+
+        // Force the master clock of the animation engine to update its
+        // current time so that the overhead of creating the view and preparing
+        // the transition is not included in our animation interpolation.
+        // See SDK-27793
+        Animation.pulse();
         activeTransition.play();

         if (hasEventListener(FlexEvent.TRANSITION_START))


Transferred from the Adobe Open Source Subversion Repository

Revision: 11208
Author:   gruehle@adobe.com
Date:     2009-10-27T23:30:03.151568Z

Log Message:
-----------
More styling bug fixes:
- Add borderAlpha, borderColor, and borderVisible to NumericStepper
- Make LinkButtonSkin respond to cornerRadius, rollOverColor, and selectionColor
- Draw opaque white background behind data grid header so contentBackgroundColor doesn't bleed through
- ItemRenderer/DefaultItemRenderer no longer draw contentBackgroundColor. In the "normal" states, the background of the renderer is transparent so the skin background color shows through.

QE Notes: 5 DataGrid bitmaps need to be regenerated.
Doc Notes: None
Bugs: SDK-23437, SDK-23367, SDK-23351, SDK-23345, SDK-23339
Reviewer: Kevin, Ryan
API Change: no
Is noteworthy for integration: No
tests: checkintests gumbo/components/NumericStepper components/DataGrid

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/DataGridHeaderBackgroundSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/NumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/LinkButtonSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
@@ -15,22 +15,12 @@
 import flash.display.DisplayObject;
 import flash.events.MouseEvent;
 import flash.geom.Point;
-import flash.geom.Rectangle;

 import mx.controls.listClasses.*;
 import mx.core.IDataRenderer;
-import mx.core.IFlexDisplayObject;
-import mx.core.IFlexModuleFactory;
-import mx.core.IFontContextComponent;
-import mx.core.IToolTip;
-import mx.core.IUITextField;
 import mx.core.UIComponent;
-import mx.core.UITextField;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
-import mx.events.InterManagerRequest;
-import mx.events.ToolTipEvent;
-import mx.managers.ISystemManager;

 import spark.components.IItemRenderer;
 import spark.components.Label;
@@ -502,6 +492,7 @@
         graphics.clear();

         var backgroundColor:uint;
+        var drawBackground:Boolean = true;
         if (selected)
             backgroundColor = getStyle("selectionColor");
         else if (hovered)
@@ -519,23 +510,28 @@
             }
             else
             {
-                backgroundColor = getStyle("contentBackgroundColor");
+                // don't draw background if it is the contentBackgroundColor. The
+                // list skin handles the background drawing for us.
+                drawBackground = false;
             }
         }
-        graphics.beginFill(backgroundColor, 1);
-
+
+        if (drawBackground)
+            graphics.beginFill(backgroundColor, 1);
+
         if (showsCaret)
         {
             graphics.lineStyle(1, getStyle("selectionColor"));
             graphics.drawRect(0.5, 0.5, unscaledWidth-1, unscaledHeight-1);
         }
-        else
+        else
         {
             graphics.lineStyle();
             graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
         }
-
-        graphics.endFill();
+
+        if (drawBackground)
+            graphics.endFill();

         labelDisplay.move(3, 5);
         labelDisplay.setActualSize(unscaledWidth - 6, unscaledHeight - 10);