Transferred from the Adobe Open Source Subversion Repository

Revision: 19797
Author:   klin@adobe.com
Date:     2011-01-19T00:06:54.932970Z

Log Message:
-----------
Initial checkin of override default density mapping feature. Application and other classes delegate calculating runtimeDPI to a RuntimeDPIProvider class. Developers that wish to override how the runtimeDPI is calculated should subclass RuntimeDPIProvider and set it to the runtimeDPIProvider property on Application. Application actually calls DensityUtil.getRuntimeDPI() which creates the instance of the runtimeDPIProvider class and caches the runtimeDPI. I've also modified the compiler so that runtimeDPIProvider is recognized as a special attribute on Application. This checkin includes the PARB updates for changing DPI related properties and variables from ints to Numbers.

QE notes: Update tests
Doc notes: N/A
Bugs: SDK-28731
Reviewer: Evtim
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/mxml/builder/DocumentBuilder.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/DensityUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler_en.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DPIClassification.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/BusyIndicator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MediaQueryParser.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/RuntimeDPIProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/MultiDPIBitmapSource.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as
@@ -522,11 +522,11 @@
         if (iconData is MultiDPIBitmapSource)
         {
             var app:Object = FlexGlobals.topLevelApplication;
-            var dpi:int;
+            var dpi:Number;
             if ("runtimeDPI" in app)
                 dpi = app["runtimeDPI"];
             else
-                dpi = DensityUtil.classifyDPI(Capabilities.screenDPI);
+                dpi = DensityUtil.getRuntimeDPI();

             iconData = MultiDPIBitmapSource(iconData).getSource(dpi);
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4111
Author:   chaase@adobe.com
Date:     2008-11-14T16:39:46.711628Z

Log Message:
-----------
Makes auto-reversal of transitions work more completely and correctly, fixing some API issues and other related animation/effect issues along the way. Seeking behavior in effects is improved (although still far from perfect, especially for non-playing effects), and dynamic behavior of effects (picking up values dynamically from the environment) is improved.

QE Notes: better seek() behavior, can just call it on non-playing effects and it will automatically play/pause the effect if necessary
Doc Notes: None
Bugs: sdk-17294, sdk-16595, sdk-18104, sdk-18105, sdk-18106, sdk-18107
Reviewer: Jason
tests: checkintests, Mustella: tests/Effects, tests/gumbo/effects tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/Transition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EffectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Parallel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Sequence.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/flex4/src/mx/effects/AddAction.as</path>

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as
@@ -14,6 +14,7 @@

 import mx.core.UIComponent;
 import mx.core.mx_internal;
+import mx.effects.Effect;
 import mx.effects.EffectInstance;
 import mx.effects.IEffectInstance;
 import mx.effects.Tween;
@@ -336,12 +337,158 @@
 				finishRepeat();
 		}
 	}
+
+    // Note that we implement seek() in the instance class for Sequence,
+    // but in the factory class for Parallel. This is because we can do
+    // it at the factory level for Parallel, but for Sequence we need
+    // extra functionality that is only available in the instance class.
+    /**
+     * @inheritDoc
+     *
+     * In a Sequence effect, seek determines which child effect should be
+     * the active one and seeks to the appropriate time in that effect.
+     * Previous effects in the sequence will be ended (if playing) or
+     * skipped (if not yet started but seekTime is past the time
+     * when they would have ended). Note that 'skipping' a child effect may
+     * entail playing it with zero duration to avoid side-effects that may
+     * occur from not playing the effect at all.
+     */
+    override public function seek(seekTime:Number):void
+    {
+        /**
+        * Behavior of this command depends on what state we're in:
+        * - if we're in a startDelay, then cut down the seekTime by
+        * the amount of time we have left to sleep
+        * - if the seekTime doesn't get us past the startDelay, then
+        * reduce the amount of startDelay appropriately and return
+        * - if the seekTime is greater than the current playheadTime
+        *   - if the seekTime puts the playheadTime into a different
+        *   child effect, end the currently playing child effects,
+        *   play intervening ones with no duration (or skip?),
+        *   and start the ones that should be active and seek to their
+        *   appropriate time
+        *   - if the seektime is still in the currently playing effects
+        *   just seek to the appropriate time
+        * - else the seekTime is less than the current time
+        *   - if the seektime is still in the currently playing effects
+        *   just seek to the appropriate time
+        *   - else end the currently playing effects and start over from
+        *   the beginning (playing effects with no duration or skipping,
+        *   then playing/seeking for the correct child effect
+        */
+        // TODO (chaase): handle startDelay
+
+        if (seekTime < playheadTime)
+        {
+            // TODO (chaase): Handle seeking back in time
+            // idea: Maybe once we get playing a sequence in reverse
+            // working perfectly, seeking back in time should seentially
+            // 'play' (with zero duration) the child effects in reverse until
+            // we get to the proper effect for the seek time
+        }
+        else
+        {
+            // figure out if desired time is in currently playing effects
+            // if so, just seek them to the time
+            // else, end them, skip later effects, and play/seek the
+            // appropriate child effects
+            if (activeEffectQueue && activeEffectQueue.length > 0)
+            {
+                var cumulativeDuration:Number = 0;
+                for (var i:int = 0; i < activeEffectQueue.length; ++i)
+                {
+                    var instances:Array = childSets[i];
+                    var startTime:Number = cumulativeDuration;
+                    var endTime:Number = cumulativeDuration +
+                        instances[0].actualDuration;
+                    if (seekTime < endTime)
+                    {
+                        // These are the effects that should be active
+                        // simply seek to the right time in the effect
+                        if (currentSetIndex != i)
+                        {
+                            currentSetIndex = i;
+                            playCurrentChildSet();
+                        }
+                        for (var k:int = 0; k < instances.length; k++)
+                            instances[k].seek(seekTime - startTime);
+                        break;
+                        // otherwise, skip to the next instance
+                    }
+                    else
+                    {
+                        // if we're seeking past the currently playing
+                        // instance, end it
+                        if (currentSetIndex == i)
+                        {
+                            for (var j:int = 0; j < instances.length; j++)
+                            {
+                                // setting endEffectCalled works around a side-effect
+                                // of the onEffectEnd() handler where it will
+                                // automatically launch the next child effect
+                                endEffectCalled = true;
+                                instances[j].end();
+                                endEffectCalled = false;
+                            }
+                            currentSetIndex = -1;
+                        }
+                        else
+                        {
+                            // Skip past effects by playing them with no duration
+                            for (var l:int = 0; l < instances.length; l++)
+                                instances[l].playWithNoDuration();
+                        }
+                    }
+                    cumulativeDuration = endTime;
+                }
+
+            }
+        }
+        // Seek in the SequenceInstance itself, which advances the
+        // Tween timer running on the effect
+        super.seek(seekTime);
+    }
+
 	//--------------------------------------------------------------------------
 	//
 	//  Methods
 	//
 	//--------------------------------------------------------------------------

+    private function playCurrentChildSet():void
+    {
+        var childEffect:EffectInstance;
+        var instances:Array = activeEffectQueue[currentSetIndex];
+
+        currentSet = [];
+
+        for (var i:int = 0; i < instances.length; i++)
+        {
+            childEffect = instances[i];
+
+            /*
+            if (childEffect is TweenEffectInstance)
+            {
+                var offset:Number =
+                    Tween.intervalTime - startTime - currentInstanceDuration;
+                offset = isNaN(offset) ? 0 : offset;
+                TweenEffectInstance(childEffect).seek(offset);
+            }
+            */
+
+            currentSet.push(childEffect);
+            childEffect.playReversed = playReversed;
+            // Block all layout, responses from web services, and other
+            // background processing until the effect finishes executing.
+            if (childEffect.suspendBackgroundProcessing)
+                UIComponent.suspendBackgroundProcessing();
+            childEffect.startEffect();
+        }
+
+        currentInstanceDuration += childEffect.actualDuration;
+
+    }
+
 	/**
 	 *  @private
 	 */
@@ -361,36 +508,8 @@
 				return false;
 		}

-		var childEffect:EffectInstance;
-		var instances:Array = activeEffectQueue[currentSetIndex];
-
-		currentSet = [];
-
-		for (var i:int = 0; i < instances.length; i++)
-		{
-			childEffect = instances[i];
-
-			/*
-			if (childEffect is TweenEffectInstance)
-			{
-				var offset:Number =
-					Tween.intervalTime - startTime - currentInstanceDuration;
-				offset = isNaN(offset) ? 0 : offset;
-				TweenEffectInstance(childEffect).seek(offset);
-			}
-			*/
-
-			currentSet.push(childEffect);
-			childEffect.playReversed = playReversed;
-			// Block all layout, responses from web services, and other
-			// background processing until the effect finishes executing.
-			if (childEffect.suspendBackgroundProcessing)
-				UIComponent.suspendBackgroundProcessing();
-			childEffect.startEffect();
-		}
-
-		currentInstanceDuration += childEffect.actualDuration;
-
+	    playCurrentChildSet();
+
 		/*
 		while (activeEffectQueue[activeChildCount])
 		{


Transferred from the Adobe Open Source Subversion Repository

Revision: 937
Author:   clucier@adobe.com
Date:     2008-03-26T19:50:13.757467Z

Log Message:
-----------
Adding support for multiple class names in styleName property.

Bugs: SDK-14599, SDK-14385
Docs: Need to ensure the String flavor of styleName is documented as supporting space delimited list of class names.  Also need to document that order of precedence when multiple class names are specified is the order as listed in value of styleName property, not the order of original  declaration of classes within the stylesheet (differs from CSS 2.1 in that way).
QA: Yes
Reviewer: Glenn Ruehle

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
@@ -484,16 +484,16 @@
      */
     public function initProtoChain():void
     {
-		styleChangedFlag = true;
-
-        var classSelector:CSSStyleDeclaration;
+        styleChangedFlag = true;
+
+        var classSelectors:Array = [];

         if (styleName)
         {
             if (styleName is CSSStyleDeclaration)
             {
                 // Get the style sheet referenced by the styleName property
-                classSelector = CSSStyleDeclaration(styleName);
+                classSelectors.push(CSSStyleDeclaration(styleName));
             }
             else if (styleName is IFlexDisplayObject)
             {
@@ -505,8 +505,14 @@
             else if (styleName is String)
             {
                 // Get the style sheet referenced by the styleName property
-                classSelector =
-					StyleManager.getStyleDeclaration("." + styleName);
+                var styleNames:Array = styleName.split(/\s+/);
+                for (var c:int=0; c < styleNames.length; c++)
+                {
+                    if (styleNames[c].length) {
+                        classSelectors.push(StyleManager.getStyleDeclaration("." +
+                            styleNames[c]));
+                    }
+                }
             }
         }

@@ -515,11 +521,8 @@
         // getting the tail of the proto chain, which is:
         //  - for non-inheriting styles, the global style sheet
         //  - for inheriting styles, my parent's style object
-		var nonInheritChain:Object = StyleManager.stylesRoot;
-		/*
-        if (nonInheritChain.effects)
-            registerEffects(nonInheritChain.effects);
-		*/
+        var nonInheritChain:Object = StyleManager.stylesRoot;
+
         var p:IStyleClient = parent as IStyleClient;
         if (p)
         {
@@ -529,52 +532,38 @@
         }
         else
         {
-        	// Pop ups inheriting chain starts at Application instead of global.
-        	// This allows popups to grab styles like themeColor that are
-        	// set on Application.
-        	// if (isPopUp)
-        		// inheritChain = Application.application.inheritingStyles;
-        	// else
-            	inheritChain = StyleManager.stylesRoot;
+            inheritChain = StyleManager.stylesRoot;
         }

         // Working backwards up the list, the next element in the
         // search path is the type selector
-		var typeSelectors:Array = getClassStyleDeclarations();
-		var n:int = typeSelectors.length;
-		for (var i:int = 0; i < n; i++)
-		{
-			var typeSelector:CSSStyleDeclaration = typeSelectors[i];
+        var typeSelectors:Array = getClassStyleDeclarations();
+        var n:int = typeSelectors.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            var typeSelector:CSSStyleDeclaration = typeSelectors[i];
             inheritChain = typeSelector.addStyleToProtoChain(inheritChain, this);
-
             nonInheritChain = typeSelector.addStyleToProtoChain(nonInheritChain, this);
-			/*
-            if (typeSelector.effects)
-                registerEffects(typeSelector.effects);
-			*/
-        }
-
-        // Next is the class selector
-        if (classSelector)
-        {
+        }
+
+        // Next are the class selectors
+        for (i = 0; i < classSelectors.length; i++)
+        {
+            var classSelector:CSSStyleDeclaration = classSelectors[i];
             inheritChain = classSelector.addStyleToProtoChain(inheritChain, this);
-
             nonInheritChain = classSelector.addStyleToProtoChain(nonInheritChain, this);
-			/*
-            if (classSelector.effects)
-                registerEffects(classSelector.effects);
-				*/
-        }
+        }
+

         // Finally, we'll add the in-line styles
-		// to the head of the proto chain.
+        // to the head of the proto chain.
         inheritingStyles = styleDeclaration ?
-						   styleDeclaration.addStyleToProtoChain(inheritChain, this) :
-						   inheritChain;
+        				   styleDeclaration.addStyleToProtoChain(inheritChain, this) :
+        				   inheritChain;

         nonInheritingStyles = styleDeclaration ?
-							  styleDeclaration.addStyleToProtoChain(nonInheritChain, this) :
-							  nonInheritChain;
+        					  styleDeclaration.addStyleToProtoChain(nonInheritChain, this) :
+        					  nonInheritChain;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

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


modified for use in iOS simulator (no longer supported in simulator)

--- actionscript/src/com/freshplanet/ane/AirNetworkInfo/AirNetworkInfo.as
+++ actionscript/src/com/freshplanet/ane/AirNetworkInfo/AirNetworkInfo.as
@@ -236,7 +236,7 @@
 		}

 		private static function get isIOS():Boolean {
-			return Capabilities.manufacturer.indexOf("iOS") > -1;
+			return Capabilities.manufacturer.indexOf("iOS") > -1 && Capabilities.os.indexOf("x86_64") < 0 && Capabilities.os.indexOf("i386") < 0;
 		}

 		private static function get isAndroid():Boolean {


set propflags to non-permanent before attempting to delete the property

--- test/trace/trace_properties.as
+++ test/trace/trace_properties.as
@@ -108,6 +108,7 @@
       result = false;
     }

+    ASSetPropFlags (o, "__proto__", 0, 2);
     o.__proto__ = "to-be-deleted";
     delete o.__proto__;
     if (o.__proto__ != undefined) {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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

 package mx.charts.series
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3950
Author:   clucier@adobe.com
Date:     2008-10-29T17:37:31.587503Z

Log Message:
-----------
Removing unnecessary code.
QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Chet

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateFilter.as

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

--- frameworks/projects/spark/src/spark/effects/AnimateFilter.as
+++ frameworks/projects/spark/src/spark/effects/AnimateFilter.as
@@ -44,17 +44,6 @@
 public class FxAnimateFilter extends FxAnimate
 {
     include "../core/Version.as";
-
-    //--------------------------------------------------------------------------
-    //
-    //  Class constants
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     */
-    private static var AFFECTED_PROPERTIES:Array = [ "filters" ];

     //--------------------------------------------------------------------------
     //
@@ -94,14 +83,11 @@
     //--------------------------------------------------------------------------

     /**
-     * By default, the affected properties are the same as those specified
-     * in the propertyValuesList array. If subclasses affect
-     * or track a different set of properties, they should override this
-     * method.
+     * @private
      */
     override public function getAffectedProperties():Array /* of String */
     {
-        return AFFECTED_PROPERTIES;
+        return [];
     }


FIXED bug causing out-of-range array access if there are multiple token callbacks and one of them is removed when they are triggered

--- actionscript/src/com/marpies/ane/vk/VK.as
+++ actionscript/src/com/marpies/ane/vk/VK.as
@@ -393,12 +393,18 @@
                     dispatchAuthResult( event.level );
                     return;
                 case VK_TOKEN_UPDATE:
-                    log( "Token update, callbacks " + mTokenUpdateCallbacks.length );
+                    var length:int = mTokenUpdateCallbacks.length;
+                    log( "Token update, callbacks " + length );
                     parseAccessToken( event.level );
-                    /* Call the registered callbacks */
-                    var length:int = mTokenUpdateCallbacks.length;
-                    for( var i:int = 0; i < length; ++i ) {
-                        mTokenUpdateCallbacks[i]();
+                    /* Create callbacks copy because a callback may be removed when triggered */
+                    if( length > 0 ) {
+                        var tempCallbacks:Vector.<Function> = new <Function>[];
+                        for( var i:int = 0; i < length; ++i ) {
+                            tempCallbacks[i] = mTokenUpdateCallbacks[i];
+                        }
+                        for( i = 0; i < length; ++i ) {
+                            tempCallbacks[i]();
+                        }
                     }
                     return;
                 case VK_REQUEST_SUCCESS:


Transferred from the Adobe Open Source Subversion Repository

Revision: 18296
Author:   jszeto@adobe.com
Date:     2010-10-22T22:37:53.945787Z

Log Message:
-----------
ViewMenu features and bug fixes

Changed ViewMenuLayout to place all the smaller rows at the top instead of alternating. Implemented the proper keyboard
navigation.

SDK-28292 - Pressing the Menu button when there are no ViewMenuItems for a View shows an empty menu

Pressing the Menu button will now be ignored in this situation

SDK-28162 - No events when ViewMenu is opened or closed

Added private events viewMenuOpen and viewMenuClose on View. These are undocumented and not meant for public usage.

SDK-28135 - ViewMenuItem size is incorrect if defined in AS and icon is used

Problem is due to the icon not getting fully loaded by the time the ViewMenu is measured and positioned. The solution is to reposition the ViewMenu on a resize.

SDK-28111 - ViewMenu 5-way navigation does not respond to up-down move

Implemented proper keyboard navigation.

SDK-28066 - ViewMenu is closed when clicking on the disabled item

Disabled items no longer respond to click, SPACE key or 5-way press.

SDK-28063 - ViewMenu can have one item in caret state and another one in down state

Once the user presses on the ViewMenu, the caret is cleared and the menu ignores any 5-way navigation.

QE notes: Shouldn't be any visual changes in this submission
Doc notes: None
Bugs: SDK-28292, SDK-28162, SDK-28135, SDK-28111, SDK-28066, SDK-28063
Reviewer:
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as
@@ -20,6 +20,7 @@
 import mx.core.FlexGlobals;
 import mx.core.InteractionMode;
 import mx.core.mx_internal;
+import mx.events.SandboxMouseEvent;
 import mx.managers.IFocusManagerComponent;

 import spark.core.NavigationUnit;
@@ -97,11 +98,9 @@

 - add transitions
 - use PopUpAnchor instead of PopUpManager
-- integrate into TabbedMobileApplication
 - Investigate performance impact of View.viewMenuItems being instances
   instead of getting created when the menu is opened.
 - Add scaleGrid values to fxg skins
-- Implement layout key navigation
 - Move skin background to ViewMenuItemSkin and use styles
 - ViewMenuItem_down.fxg change to use Rects
 */
@@ -126,7 +125,17 @@
         super();
         // Listen for orientation change events when we are attached to the stage
         addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
-    }
+        addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    // Tracks whether the mouse is down on the ViewMenu. If so, prevent keyboard
+    private var isMouseDown:Boolean = false;

     //--------------------------------------------------------------------------
     //
@@ -243,7 +252,7 @@
     {
         super.keyDownHandler(event);

-        if (!items || !layout || event.isDefaultPrevented())
+        if (!items || !layout || event.isDefaultPrevented() || isMouseDown)
             return;

         // 1. Was the space bar hit?
@@ -291,25 +300,6 @@
     //
     //--------------------------------------------------------------------------

-    private function addedToStageHandler(event:Event):void
-    {
-        addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
-        systemManager.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChangeHandler, true);
-    }
-
-    private function removedFromStageHandler(event:Event):void
-    {
-        removeEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
-        systemManager.stage.removeEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChangeHandler, true);
-    }
-
-    // Update the size and display if orientation has changed
-    private function orientationChangeHandler(event:StageOrientationEvent):void
-    {
-        invalidateSkinState();
-        invalidateSize();
-        invalidateDisplayList();
-    }

     /**
      *  Adjusts the selection based on what keystroke or
@@ -372,7 +362,9 @@
             return;

         var item:ViewMenuItem = ViewMenuItem(getElementAt(index));
-        item.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
+
+        if (item.enabled)
+            item.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
     }

     // Helper function which updates the item's caret state
@@ -384,5 +376,57 @@
         var item:ViewMenuItem = ViewMenuItem(getElementAt(index));
         item.showsCaret = showsCaret;
     }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event Handlers
+    //
+    //--------------------------------------------------------------------------
+
+    private function addedToStageHandler(event:Event):void
+    {
+        addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
+        systemManager.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChangeHandler, true);
+    }
+
+    private function removedFromStageHandler(event:Event):void
+    {
+        removeEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
+        systemManager.stage.removeEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChangeHandler, true);
+    }
+
+    // Update the size and display if orientation has changed
+    private function orientationChangeHandler(event:StageOrientationEvent):void
+    {
+        invalidateSkinState();
+        invalidateSize();
+        invalidateDisplayList();
+    }
+
+    private function mouseDownHandler(event:MouseEvent):void
+    {
+        // Clear the caret
+        caretIndex = -1;
+
+        isMouseDown = true;
+
+        // Listen for mouse up anywhere
+        systemManager.getSandboxRoot().addEventListener(
+            MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true /* useCapture */);
+
+        systemManager.getSandboxRoot().addEventListener(
+            SandboxMouseEvent.MOUSE_UP_SOMEWHERE, systemManager_mouseUpHandler);
+    }
+
+    private function systemManager_mouseUpHandler(event:Event):void
+    {
+        systemManager.getSandboxRoot().removeEventListener(
+            MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true /* useCapture */);
+
+        systemManager.getSandboxRoot().removeEventListener(
+            SandboxMouseEvent.MOUSE_UP_SOMEWHERE, systemManager_mouseUpHandler);
+
+        isMouseDown = false;
+    }
 }
 }


- change: Removed dead code

- change: Removed dead code

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

--- src/reprise/ui/DocumentView.as
+++ src/reprise/ui/DocumentView.as
@@ -57,8 +57,6 @@
 		protected var m_widthIsRelative : Boolean;
 		protected var m_heightIsRelative : Boolean;

-		protected var m_stageInvalidationTimeout : int;
-
 		protected var m_debugInterface : DebugInterface;

@@ -361,12 +359,6 @@
 			}
 			m_documentIsValidating = false;
 		}
-
-		protected function invalidateStage() : void
-		{
-			clearTimeout(m_stageInvalidationTimeout);
-			stage.invalidate();
-		}

 		protected function stage_resize(event : Event) : void
 		{


- bugfix: changed element id handling from hashmap to simple object to decrease the likelyhood of element names colliding with property names. For example, this happened for the ID 'map'.

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

--- src/reprise/ui/DocumentView.as
+++ src/reprise/ui/DocumentView.as
@@ -11,16 +11,12 @@

 package reprise.ui
 {
-	import reprise.css.ComputedStyles;
-
-	import flash.geom.Rectangle;
-
 	import reprise.core.ApplicationContext;
 	import reprise.core.UIRendererFactory;
 	import reprise.core.reprise;
 	import reprise.css.CSS;
 	import reprise.css.CSSDeclaration;
-	import reprise.data.collection.HashMap;
+	import reprise.css.ComputedStyles;
 	import reprise.events.DebugEvent;
 	import reprise.events.DisplayEvent;

@@ -38,7 +34,7 @@
 	import flash.ui.Keyboard;
 	import flash.utils.clearTimeout;
 	import flash.utils.getTimer;
-	import flash.utils.setTimeout;
+	import flash.utils.setTimeout;

 	use namespace reprise;

@@ -62,8 +58,7 @@
 		protected var m_styleSheet : CSS;
 		protected var m_rendererFactory : UIRendererFactory;

-		protected var m_elementsById : HashMap;
-		protected var m_elementsByTagName : HashMap;
+		protected var m_elementsById : Object;

 		protected var m_appContext : ApplicationContext;

@@ -89,7 +84,7 @@
 		public function DocumentView()
 		{
 			m_rendererFactory = new UIRendererFactory();
-			m_elementsById = new HashMap();
+			m_elementsById = {};
 		}

 		/**
@@ -189,7 +184,7 @@
 		 */
 		public function getElementById(id:String) : UIComponent
 		{
-			return UIComponent(m_elementsById.objectForKey(id));
+			return UIComponent(m_elementsById[id]);
 		}

 		/**
@@ -206,11 +201,11 @@
 		***************************************************************************/
 		reprise function registerElementID(id:String, element:UIComponent) : void
 		{
-			m_elementsById.setObjectForKey(element, id);
+			m_elementsById[id] = element;
 		}
 		reprise function removeElementID(id:String) : void
 		{
-			m_elementsById.removeObjectForKey(id);
+			m_elementsById[id] && delete m_elementsById[id];
 		}

 		reprise function markChildAsInvalid(child : UIObject) : void


Transferred from the Adobe Open Source Subversion Repository

Revision: 21736
Author:   chiedozi@adobe.com
Date:     2011-07-27T18:22:26.937961Z

Log Message:
-----------
Fixed a few bugs in SplitViewNavigator
- Fixed a RTE in SplitViewNavigator that occurred when an empty SplitViewNavigator was declared
- SplitViewNavigator properly initializes navigators that have their visibility flag initially set to false

QE notes:
Doc notes:
Bugs: SDK-30907, SDK-30908
Reviewer:  Tom
Tests run: checkintests, mustella-mobile
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as
@@ -111,9 +111,6 @@
     public function SplitViewNavigator()
     {
         super();
-
-        addEventListener(ElementExistenceEvent.ELEMENT_ADD, elementAddHandler);
-        addEventListener(ElementExistenceEvent.ELEMENT_REMOVE, elementRemoveHandler);
     }

     //--------------------------------------------------------------------------
@@ -168,7 +165,6 @@

     private var _autoHideFirstViewNavigator:Boolean = false;

-    [Bindable("autoHideChanged")]
 	[Inspectable(category="General", defaultValue="false")]
     /**
      *  This flag indicates whether the visibility of the first view navigator should
@@ -198,9 +194,6 @@
 			return;

         _autoHideFirstViewNavigator = value;
-
-        if (hasEventListener("autoHideChanged"))
-            dispatchEvent(new Event("autoHideChanged"));
     }

     //----------------------------------
@@ -210,6 +203,9 @@
     /**
      *  The first ViewNavigator of this component.
      *
+     *  @return Returns the first navigator being managed by the container, or
+     *  null if there are no children.
+     *
      *  @langversion 3.0
      *  @playerversion AIR 3
      *  @productversion Flex 4.5.2
@@ -225,6 +221,9 @@

     /**
      *  The second ViewNavigator of this component.
+     *
+     *  @return Returns the second navigator being managed by the container, or
+     *  null if there are fewer than two children.
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
@@ -355,6 +354,9 @@
         // the current indicies of the child navigatos.
         if (_calloutNavigatorIndex != -1 && _calloutNavigatorIndex < index)
             index--;
+
+        if (index >= numElements)
+            return null;

         return getElementAt(index) as ViewNavigatorBase;
     }
@@ -518,6 +520,10 @@
 		// a navigator is hidden, its container is removed from layout.
 		navigator.addEventListener(FlexEvent.HIDE, navigator_visibilityChangedHandler, false, EventPriority.DEFAULT, true);
 		navigator.addEventListener(FlexEvent.SHOW, navigator_visibilityChangedHandler, false, EventPriority.DEFAULT, true);
+
+        // Remove the navigator from layout if it isn't visible
+        if (navigator.visible == false)
+            navigator.includeInLayout = false;
 	}

 	/**
@@ -572,7 +578,12 @@

         // Restore each navigators persistence data
         for (var i:int = 0; i < numNavigators; i++)
+        {
+            if (i >= dataArray.length)
+                break;
+
             getViewNavigatorAt(i).loadViewData(dataArray[i]);
+        }
     }

     /**
@@ -605,6 +616,35 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  @private
+     */
+    override protected function partAdded(partName:String, instance:Object):void
+    {
+        // Add event listeners before the child are added to the contentGroup
+        if (instance == contentGroup)
+        {
+            contentGroup.addEventListener(ElementExistenceEvent.ELEMENT_ADD, elementAddHandler);
+            contentGroup.addEventListener(ElementExistenceEvent.ELEMENT_REMOVE, elementRemoveHandler);
+        }
+
+        super.partAdded(partName, instance);
+    }
+
+    /**
+     *  @private
+     */
+    override protected function partRemoved(partName:String, instance:Object):void
+    {
+        super.partRemoved(partName, instance);
+
+        if (instance == contentGroup)
+        {
+            contentGroup.removeEventListener(ElementExistenceEvent.ELEMENT_ADD, elementAddHandler);
+            contentGroup.removeEventListener(ElementExistenceEvent.ELEMENT_REMOVE, elementRemoveHandler);
+        }
+    }
+
     /**
      *  @private
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 3064
Author:   gruehle@adobe.com
Date:     2008-09-02T20:37:50.982922Z

Log Message:
-----------
Fix bug SDK-16684 - Applying rotation at runtime to GraphicElement does nothing

Need to invalidate our backing layer when rotation changes to make sure we get our own display object.

Reviewer: Deepa

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -1111,6 +1111,7 @@
         dispatchPropertyChangeEvent("rotation", oldValue, value);

         rotationChanged = true;
+        notifyElementLayerChanged();
         invalidateProperties();
         invalidateParentSizeAndDisplayList();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 13631
Author:   egeorgie@adobe.com
Date:     2010-01-19T22:03:29.364077Z

Log Message:
-----------
Remove last couple of FIXMEs, no real code change.

QE notes: N/A
Doc notes: N/A
Bugs: N/A
Reviewer: Hans
Tests run: build
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -2173,7 +2173,7 @@
                                     postLayoutTranslation:Vector3D = null,
                                     invalidateLayout:Boolean = true):void
     {
-        // FIXME (egreenfi): optimize for simple translations
+        // TODO (egreenfi): optimize for simple translations
         allocateLayoutFeatures();
         var previous:Boolean = needsDisplayObject;
         var prevX:Number = layoutFeatures.layoutX;


Transferred from the Adobe Open Source Subversion Repository

Revision: 3669
Author:   jszeto@adobe.com
Date:     2008-10-15T23:18:02.909024Z

Log Message:
-----------
Fix bug in getBitmapData when target has 3D transforms

MXMLG-244 - getBitmapData for a Path that has Left/Top set is incorrect

Need a null check on the matrix before translating it. The matrix is null if any 3D transform value has been set on the target.

Bug: MXMLG-244
QA: Yes
Doc: No
Review: Gordon

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -2191,8 +2191,10 @@
         // display objects across multiple graphic elements.
         var bitmapData:BitmapData = new BitmapData(actualSize.x, actualSize.y, transparent, fillColor);

-        var m:Matrix = displayObject.transform.matrix.clone();
-        m.translate(-actualPosition.x, -actualPosition.y);
+        var m:Matrix = displayObject.transform.matrix;
+
+		if (m)
+        	m.translate(-actualPosition.x, -actualPosition.y);

         if (displayObject && nextSiblingNeedsDisplayObject)
             bitmapData.draw(displayObject, m);
@@ -2221,9 +2223,7 @@
             displayObject.mask = _mask;
             if (!isMaskInElementSpace)
             {
-                var maskMatrix:Matrix = _mask.transform.matrix;
-                maskMatrix.concat(displayObject.transform.matrix);
-                _mask.transform.matrix = maskMatrix;
+                moveToLocalSpace(_mask);
                 isMaskInElementSpace = true;
             }
         }
@@ -2449,6 +2449,8 @@
                 {
                     if (previousMask)
                     {
+                    	moveToParentSpace(previousMask);
+
                         elementHost.removeMaskElement(previousMask, this);
                         if (displayObject)
                             displayObject.mask = null;
@@ -2873,32 +2875,32 @@
     /**
      *  @private
      */
-    private function beginCommitTransformProps():void
-    {
-        if (_mask && isMaskInElementSpace)
-        {
-            var maskMatrix:Matrix = _mask.transform.matrix;
-            var dispObjMatrix:Matrix = displayObject.transform.matrix.clone();
-
-            dispObjMatrix.invert();
-            maskMatrix.concat(dispObjMatrix);
-            _mask.transform.matrix = maskMatrix;
-            isMaskInElementSpace = false;
-        }
-    }
-
-    /**
-     *  @private
-     */
-    private function endCommitTransformProps():void
-    {
-        if (_mask && !isMaskInElementSpace)
-        {
-            var maskMatrix:Matrix = _mask.transform.matrix;
-            maskMatrix.concat(displayObject.transform.matrix);
-            _mask.transform.matrix = maskMatrix;
-            isMaskInElementSpace = true;
-        }
+    private function moveToParentSpace(targ:DisplayObject):void
+    {
+        /* if (_mask && isMaskInElementSpace)
+        { */
+        var targetMatrix:Matrix = targ.transform.matrix;
+        var dispObjMatrix:Matrix = displayObject.transform.matrix.clone();
+
+        dispObjMatrix.invert();
+        targetMatrix.concat(dispObjMatrix);
+        targ.transform.matrix = targetMatrix;
+        //isMaskInElementSpace = false;
+        //}
+    }
+
+    /**
+     *  @private
+     */
+    private function moveToLocalSpace(targ:DisplayObject):void
+    {
+        //if (_mask && !isMaskInElementSpace)
+        //{
+        var targetMatrix:Matrix = targ.transform.matrix;
+        targetMatrix.concat(displayObject.transform.matrix);
+        targ.transform.matrix = targetMatrix;
+         //   isMaskInElementSpace = true;
+        //}
     }

     /**
@@ -2910,7 +2912,13 @@

         if(displayObject == null)
             return;
-
+
+		if (_mask && isMaskInElementSpace)
+        {
+        	moveToParentSpace(_mask);
+        	isMaskInElementSpace = false;
+        }
+
         if(layoutFeatures.is3D)
         {
             displayObject.transform.matrix3D = layoutFeatures.computedMatrix3D;
@@ -2923,6 +2931,12 @@
         if (_colorTransform)
         {
             displayObject.transform.colorTransform = _colorTransform;
+        }
+
+        if (_mask && !isMaskInElementSpace)
+        {
+        	moveToLocalSpace(_mask);
+        	isMaskInElementSpace = true;
         }
     }


412 invlerp

412 invlerp

--- raw/src/org/yellcorp/lib/core/InterpUtil.as
+++ raw/src/org/yellcorp/lib/core/InterpUtil.as
@@ -18,6 +18,21 @@
     public static function lerp(inMin:Number, inMax:Number, t:Number):Number
     {
         return inMin + t * (inMax - inMin);
+    }
+
+    /**
+     * Inverse linear interpolation.  Returns the linear interpolant between
+     * inMin and inMax required to return a given value.
+     *
+     * @param inMin The value at t = 0.
+     * @param inMax The value at t = 1.
+     * @param value The value for which to find the interpolant.
+     *
+     * @return   The interpolant.
+     */
+    public static function invLerp(inMin:Number, inMax:Number, value:Number):Number
+    {
+        return (value - inMin) / (inMax - inMin);
     }

     /**


Added new method getValidationMessage

Added new method getValidationMessage

--- collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/model/proxy/NodeStateProxy.as
+++ collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/model/proxy/NodeStateProxy.as
@@ -1,14 +1,51 @@
-/**
- * Generated by Gas3 v2.3.0 (Granite Data Services).
- *
- * NOTE: this file is only generated if it does not exist. You may safely put
- * your custom code here.
- */
-
-package org.openforis.collect.model.proxy {
-
-    [Bindable]
-    [RemoteClass(alias="org.openforis.collect.model.proxy.NodeStateProxy")]
-    public class NodeStateProxy extends NodeStateProxyBase {
-    }
+/**
+ * Generated by Gas3 v2.3.0 (Granite Data Services).
+ *
+ * NOTE: this file is only generated if it does not exist. You may safely put
+ * your custom code here.
+ */
+
+package org.openforis.collect.model.proxy {
+	import mx.collections.IList;
+
+	import org.openforis.collect.util.CollectionUtil;
+	import org.openforis.collect.util.StringUtil;
+
+	/**
+	 * @author S. Ricci
+	 */
+    [Bindable]
+    [RemoteClass(alias="org.openforis.collect.model.proxy.NodeStateProxy")]
+    public class NodeStateProxy extends NodeStateProxyBase {
+
+		public function get validationMessage():String {
+			var results:IList = null;
+			if(hasErrors()) {
+				results = validationResults.errors;
+			} else if(hasWarnings()) {
+				results = validationResults.warnings;
+			}
+			if(results != null) {
+				var parts:Array = new Array();
+				for each (var r:ValidationResultProxy in results) {
+					if(! r.valid) {
+						parts.push("Error");
+					}
+				}
+				if(parts.length > 0) {
+					return StringUtil.concat(";\n", parts);
+				}
+			}
+			return null;
+		}
+
+		public function hasErrors():Boolean {
+			return validationResults != null && CollectionUtil.isNotEmpty(validationResults.errors);
+		}
+
+		public function hasWarnings():Boolean {
+			return validationResults != null && CollectionUtil.isNotEmpty(validationResults.warnings);
+		}
+
+    }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5190
Author:   hmuller@adobe.com
Date:     2009-03-06T14:55:28.277220Z

Log Message:
-----------
Initial support for mirroring: added mirror and dir properties to IVisualElement, mirroring logic to UIComponent, GraphicElement, UIMovieClip.  Mirroring in mx.core.SpriteVisualElement is just a stub.  Support for the mirror bit and the mirror transform is in mx.core.AdvancedLayoutFeatures.

QE Notes: Mustella tests pass
Doc Notes: None
Bugs:
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.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/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Label.as
+++ frameworks/projects/mx/src/mx/controls/Label.as
@@ -366,6 +366,7 @@

         // this is so the UITextField we contain can be read by a screen-reader
         tabChildren = true;
+        dir="ltr";
     }

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


setLabel(null) now reveals the placeholder string

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

--- src/reprise/controls/TextInput.as
+++ src/reprise/controls/TextInput.as
@@ -119,6 +119,10 @@

 		public override function setLabel(label:String) : void
 		{
+			if (label == null && m_placeholder)
+			{
+				label = m_placeholder;
+			}
 			if (label == m_placeholder)
 			{
 				addCSSClass('placeholder');


- feature: added support for preventing frame dropping to SimpleTween

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

--- src/reprise/tweens/SimpleTween.as
+++ src/reprise/tweens/SimpleTween.as
@@ -39,13 +39,18 @@
 		protected var m_duration : int;
 		protected var m_delay : int;

-		protected var m_tweenedProperties:Array;
-
+		protected var m_tweenedProperties : Array;
+		protected var m_preventFrameDropping : Boolean;
+		protected var m_frameDuration : int;
+		protected var m_lastFrameTime : int;
+		protected var m_timeAdjust : int;
+

 		/***************************************************************************
 		*							public methods								   *
 		***************************************************************************/
-		public function SimpleTween(duration:Number = 1, delay : uint = 0)
+		public function SimpleTween(
+			duration:Number = 1, delay : uint = 0, normalizeToFrameRate : uint = 0)
 		{
 			m_duration = duration;
 			if (m_duration <= 0 || isNaN(m_duration))
@@ -54,6 +59,11 @@
 			}

 			m_delay = delay;
+			if (normalizeToFrameRate != 0)
+			{
+				m_preventFrameDropping = true;
+				m_frameDuration = 1000 / normalizeToFrameRate;
+			}

 			m_currentTime = 0;
 			m_direction = DIRECTION_FORWARD;
@@ -205,7 +215,8 @@
 				g_frameEventDispatcher.addEventListener(
 					Event.ENTER_FRAME, executeTick);
 				m_isExecuting = true;
-				m_startTime = getTimer() + m_currentTime;
+				m_startTime = m_lastFrameTime = getTimer() + m_currentTime;
+				m_timeAdjust = 0;
 				dispatchEvent(new TweenEvent(TweenEvent.START, true));
 				if (executeFirstTickImmediately)
 				{
@@ -286,7 +297,16 @@
 		 */
 		protected function executeTick(event : Event = null) : void
 		{
-			m_currentTime = getTimer() - m_startTime - m_delay;
+			var time : int = getTimer();
+			if (m_preventFrameDropping)
+			{
+				if (time - m_lastFrameTime > m_frameDuration)
+				{
+					m_timeAdjust += time - m_lastFrameTime - m_frameDuration;
+				}
+				m_lastFrameTime = time;
+			}
+			m_currentTime = time - m_startTime - m_timeAdjust - m_delay;
 			if (m_currentTime < 0)
 			{
 				return;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19739
Author:   jasonsj@adobe.com
Date:     2011-01-13T00:46:11.637899Z

Log Message:
-----------
Fix regression from 19724. Specify both default measured width and minWidth for TextInput and TextArea

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -71,7 +71,8 @@
             {
                 borderClass = spark.skins.mobile320.assets.TextInput_border;
                 layoutCornerEllipseSize = 24;
-                minWidth = 612;
+                layoutMeasuredWidth = 612;
+                minWidth = 48;
                 minHeight = 106;
                 layoutBorderSize = 2;

@@ -81,7 +82,8 @@
             {
                 borderClass = spark.skins.mobile240.assets.TextInput_border;
                 layoutCornerEllipseSize = 12;
-                minWidth = 440;
+                layoutMeasuredWidth = 440;
+                minWidth = 24;
                 minHeight = 70;
                 layoutBorderSize = 1;

@@ -91,7 +93,8 @@
             {
                 borderClass = spark.skins.mobile160.assets.TextInput_border;
                 layoutCornerEllipseSize = 12;
-                minWidth = 306;
+                layoutMeasuredWidth = 306;
+                minWidth = 24;
                 minHeight = 53;
                 layoutBorderSize = 1;

@@ -124,6 +127,12 @@
     //  Variables
     //
     //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Default width per DPI.
+     */
+    private var layoutMeasuredWidth:Number;

     /**
      *  @private
@@ -223,15 +232,15 @@
         // You can set an explicit width and the height will adjust accordingly. The opposite
         // is not true: setting an explicit height will not adjust the width accordingly.

-        measuredWidth = minWidth;
+        measuredWidth = layoutMeasuredWidth;

         // now we need to measure textDisplay's height.  Unfortunately, this is tricky and
         // is dependent on textDisplay's width.  Let's use the heuristic that our width
         // is the same as our last width.
-        // We don't use minWidth, because that value is just a constant and doesn't
+        // We don't use layoutMeasuredWidth, because that value is just a constant and doesn't
         // take into account the fact that the TextArea could have an explicitWidth or could
         // be constrained by some value.  However, we still default oldTextDisplayWidth to
-        // be minWidth the first time through.
+        // be layoutMeasuredWidth the first time through.
         var textDisplayEstimatedWidth:Number = oldUnscaledWidth - paddingLeft - paddingRight;

         // now we need to measure textDisplay's height.  Unfortunately, this is tricky and
@@ -241,10 +250,7 @@
         textDisplay.commitStyles();
         setElementSize(textDisplay, textDisplayEstimatedWidth, NaN);

-        var textDisplayHeight:Number = getElementPreferredHeight(textDisplay);
-
-        // FIXME (jasonsj): how to support TextArea#heightInLines?
-        measuredHeight = textDisplayHeight + paddingTop + paddingBottom;
+        measuredHeight = getElementPreferredHeight(textDisplay) + paddingTop + paddingBottom;
     }

     override protected function layoutContents(unscaledWidth:Number,


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

--- frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as
+++ frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.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.effects
 {
 import flash.display.BitmapData;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7295
Author:   dsubrama@adobe.com
Date:     2009-05-26T23:59:25.112903Z

Log Message:
-----------
-Add in caret support to Spark List. Our default renderers draw a thin 1px blue line (same color as selection color) around items that are currently in focus.
-Selection and careted item stay in-sync unless the Ctrl key is down in which you can caret away on your own.
-With careting (current item in focus) comes the itemFocusChanged event.
-Add in more states to ItemRenderer, which now supports: normal, hovered, selected, normalAndCaret, hoveredAndCaret, selectedAndCaret.
-Because of the addition of a hasState() method on IStateClient2, IR's that don't support the above-mentioned states won't RTE!
-findKey support like in Halo, for Spark List
-Null check for Line when generating DAPI-2 stroke

Reviewers: Ryan for caret stuff, Ryan/Corey for hasState() impl
Doc: Yes
QA: Yes
Checkintests: Pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/DefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IStateClient2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Line.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/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/DefaultComplexItemRenderer.mxml</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/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
@@ -33,21 +33,40 @@

     <s:states>
-        <s:State name="normal"/>
-        <s:State name="hovered"/>
-        <s:State name="selected"/>
+        <s:State name="normal" />
+        <s:State name="hovered" />
+        <s:State name="selected" />
+        <s:State name="normalAndCaret"/>
+        <s:State name="hoveredAndCaret"/>
+        <s:State name="selectedAndCaret"/>
     </s:states>

     <s:Rect left="0" right="0" top="0" bottom="0">
+        <s:stroke.normalAndCaret>
+            <s:SolidColorStroke
+                color="{selectionColor}"
+                weight="1"/>
+        </s:stroke.normalAndCaret>
+        <s:stroke.hoveredAndCaret>
+            <s:SolidColorStroke
+                color="{selectionColor}"
+                weight="1"/>
+        </s:stroke.hoveredAndCaret>
+        <s:stroke.selectedAndCaret>
+            <s:SolidColorStroke
+                color="{selectionColor}"
+                weight="1"/>
+        </s:stroke.selectedAndCaret>
         <s:fill>
-            <s:SolidColor color="{contentBackgroundColor}" />
+            <s:SolidColor
+            	color.normal="{contentBackgroundColor}"
+                color.normalAndCaret="{contentBackgroundColor}"
+                color.hovered="{rollOverColor}"
+                color.hoveredAndCaret="{rollOverColor}"
+            	color.selected="{selectionColor}"
+                color.selectedAndCaret="{selectionColor}"
+            	/>
         </s:fill>
-        <s:fill.hovered>
-            <s:SolidColor color="{rollOverColor}" />
-        </s:fill.hovered>
-        <s:fill.selected>
-            <s:SolidColor color="{selectionColor}" />
-        </s:fill.selected>
     </s:Rect>
     <s:SimpleText id="labelElement" verticalCenter="0" left="3" right="3" top="6" bottom="4"/>


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

--- frameworks/projects/advancedgrids/src/mx/collections/DefaultSummaryCalculator.as
+++ frameworks/projects/advancedgrids/src/mx/collections/DefaultSummaryCalculator.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.collections
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22919
Author:   chiedozi@adobe.com
Date:     2011-10-07T21:20:59.571014Z

Log Message:
-----------
Fixed an issue where TabbedViewNavigator would be placed in a bad state if setItemAt() was used to replace the selected navigator
TabbedViewNavigator no longer clobbers the stage focus set by a View

QE notes:
Doc notes:
Bugs: SDK-30694,SDK-29443
Reviewer: Tom
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as
@@ -683,7 +683,7 @@
     {
         var changeEvent:IndexChangeEvent;

-        if (selectedIndexChanged || dataProviderChanged)
+        if (selectedIndexChanged || selectedIndexAdjusted || dataProviderChanged)
         {
             var navigator:ViewNavigatorBase;

@@ -710,6 +710,11 @@

             if (_selectedIndex >= 0)
             {
+                // If there is no focus or the item that had focus isn't
+                // on the display list anymore, update the focus to be
+                // the active view or the view navigator
+                updateFocus();
+
                 navigator = getElementAt(_selectedIndex) as ViewNavigatorBase;
                 navigator.setActive(true);
                 navigator.visible = true;
@@ -733,11 +738,6 @@
                     navigator.activeView.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
                                                             view_propertyChangeHandler);
                 }
-
-                // If there is no focus or the item that had focus isn't
-                // on the display list anymore, update the focus to be
-                // the active view or the view navigator
-                updateFocus();
             }

             selectedIndexAdjusted = false;
@@ -1587,6 +1587,14 @@
         var oldItem:Object = removeElementAt(index);
         addElementAt(item as ViewNavigatorBase, index);

+        // Let the navigator know that the item at the selectedIndex changed.
+        // The commitProperties method will pick this up.
+        if (index == selectedIndex)
+        {
+            selectedIndexAdjusted = true;
+            invalidateProperties();
+        }
+
         if (hasEventListener(CollectionEvent.COLLECTION_CHANGE))
         {
             var updateInfo:PropertyChangeEvent;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19131
Author:   egeorgie@adobe.com
Date:     2010-12-08T01:57:27.424504Z

Log Message:
-----------
Fix issues with density scaling and transitions.

In this change:
- apply the inverse concatenated matrix to the transition bitmap snapshot
- use faster version of the bitmap snapshot function - draw only once, no read-back from the bitmap data for bounds detection.

QE notes:
Doc notes:
Bugs:
Reviewer: Corey
Tests run: checkintests, manual testing
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/CrossFadeViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as</path>
<path kind="file" action="M">/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/utils/BitmapUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ZoomViewTransition.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
@@ -14,7 +14,9 @@

 import flash.display.BitmapData;
 import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
 import flash.events.EventDispatcher;
+import flash.geom.Matrix;
 import flash.geom.Rectangle;

 import mx.core.IVisualElement;
@@ -311,7 +313,7 @@
     {
         _endView = value;
     }
-
+
     //----------------------------------
     //  navigator
     //----------------------------------
@@ -1124,9 +1126,12 @@
     /**
      *  Helper method used to render snap shots of on screen elements in
      *  preparation for transitioning.  The bitmap is returned in the form
-     *  of a BitmapImage.
+     *  of a BitmapImage.  The BitmapImage's transform is adjusted so that
+     *  the bitmap matches the target.
      *
      *  @param target Display object to capture.
+     *  @param padding Paddig around the object to be included in the BitmapImage.
+     *
      *  @return BitmapImage representation of the target.
      *
      *  @langversion 3.0
@@ -1134,7 +1139,7 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    protected function getSnapshot(target:UIComponent):BitmapImage
+    protected function getSnapshot(target:UIComponent, padding:int = 4):BitmapImage
     {
         var snapShot:BitmapImage = new BitmapImage();

@@ -1144,14 +1149,25 @@

         // Capture image, with consideration for transform and color matrix.
         var bounds:Rectangle = new Rectangle();
-        snapShot.source = BitmapUtil.getSnapshot(target, bounds, true);
+        snapShot.source = BitmapUtil.getSnapshotWithPadding(target, padding, true, bounds);

         // Size and offset snapShot to match our image bounds data.
         snapShot.width = bounds.width;
         snapShot.height = bounds.height;
-        snapShot.x = target.x + bounds.left;
-        snapShot.y = target.y + bounds.top;
-
+
+        var m:Matrix = new Matrix();
+        m.translate(bounds.left, bounds.top);
+
+        // Apply target's inverse concatenated matrix:
+        var parent:DisplayObjectContainer = target.parent;
+        if (parent)
+        {
+            var inverted:Matrix = parent.transform.concatenatedMatrix.clone();
+            inverted.invert();
+            m.concat(inverted);
+        }
+        snapShot.setLayoutMatrix(m, false);
+
         // Exclude from layout.
         snapShot.includeInLayout = false;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7967
Author:   gosmith@adobe.com
Date:     2009-06-18T19:44:16.674676Z

Log Message:
-----------
PARB changes to TextGraphicElement/SimpleText/RichText and to text styles in general.

TextGraphicElement:

The 'truncation' property has been renamed to 'maxDisplayedLines'.

The isTruncated() method has become an 'isTruncated' read-only property.

RichText:

Since a TextFlow object is the fundamental representation for rich test in TLF, the RichText component now has a public textFlow:TextFlow property which you can get or set. To turn TLF markup -- in either String or XML form -- into a TextFlow, use the static importFromString() and importFromXML() methods in the TextFlowUtil class. These are bindable methods so that if the markup parameter changes they will re-evaluate. To turn the TextFlow back into markup, use TextFLowUtil.export(...) to produce XML.

The 'content' property is now intended only for use by the MXML compiler. It is set-only and only supports being set to what MXML markup produces: a String (which will be treated as the text of an implicit span in an implicit paragraph), a FlowElement, or an Array of Strings and FlowElements.

The 'text', 'textFlow', and 'content' properties are interacting properties. For example, you can set 'textFlow' and then get the 'text', and vice versa. In fact, you can now do this immediately, without waiting for the component to undergo a LayoutManager pass. Of these three properties, the last one set in ActionScript wins; if more than one is set in MXML the results are undefined since MXML does not guarantee the order in which properties are set. Setting any of them to null is equivalent to setting the 'text' to the empty String, which is the initial state of the component.

Styles:

The 'lineBreak' style is now non-inheriting, since in TLF it doesn't inherit from FlowElement to FlowElement.

The text styles are now divided into five buckets:

BasicInheritingTextStyles.as
BasicNonInheritingTextStyles.as
AdvancedInheritingTextStyles.as
AdvancedNonInheritingTextStyles.as
SelectionFormatTextStyles.as

Skinnable components like TextInput and TextArea no longer declare any on the noninheriting text styles, because the RichTextElement in the skin doesn't inherit them. You must set them directly on the RichTextElement in the component's skin, either with ActionScript or by reskinning.

The styleInitialized() method has been added to the IAdvancedStyleClient interface.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Carol

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicTextLayoutFormatStyles.as" copyfrom-rev="7910" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/SparkChromeWindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/WindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultButtonSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/utils/TextFlowUtil.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedNonInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/TitleBarSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/NonInheritingTextLayoutFormatStyles.as" copyfrom-rev="7910" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicNonInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/CheckBoxSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/NonInheritingTextLayoutFormatStyles.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/skins/spark/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/RadioButtonSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedTextLayoutFormatStyles.as" copyfrom-rev="7910" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedInheritingTextStyles.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/airframework/src/spark/skins/spark/windowChrome/MacTitleBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as
+++ frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as
@@ -190,16 +190,6 @@
 [Style(name="ligatureLevel", type="String", enumeration="common,minimum,uncommon,exotic", inherit="yes")]

 /**
- *  @copy flashx.textLayout.formats.ITextLayoutFormat#lineBreak
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
-[Style(name="lineBreak", type="String", enumeration="toFit,explicit", inherit="yes")]
-
-/**
  *  @copy flashx.textLayout.formats.ITextLayoutFormat#lineHeight
  *
  *  @langversion 3.0


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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

 package mx.controls.fileSystemClasses
 {


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

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

 package spark.automation.tabularData
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20030
Author:   deeptika@adobe.com
Date:     2011-02-01T11:04:43.671924Z

Log Message:
-----------
Added video display within the video player also as its child so that clicks on that would get recorded.

QE notes:
Doc notes:
Bugs: FLEXENT-1399 (QTP-Spark Video Player is not recognized by QTP )
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkVideoPlayerAutomationImpl.as

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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkVideoPlayerAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkVideoPlayerAutomationImpl.as
@@ -76,7 +76,6 @@
         public function SparkVideoPlayerAutomationImpl(obj:spark.components.VideoPlayer)
         {
             super(obj);
-
         }

         /**
@@ -129,6 +128,9 @@
         {

             var chilArray:Array = new Array();
+			if(sparkVideoPlayer.videoDisplay)
+				chilArray.push(sparkVideoPlayer.videoDisplay);
+
             if(sparkVideoPlayer.currentTimeDisplay)
                 chilArray.push(sparkVideoPlayer.currentTimeDisplay);


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

--- frameworks/projects/spark/src/spark/primitives/RectangularDropShadow.as
+++ frameworks/projects/spark/src/spark/primitives/RectangularDropShadow.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.primitives
 {
     import mx.core.UIComponent;


formatting

formatting

git-svn-id: 27326a786375daad9d33dc990c6f272e4c8f567c@1227 fda5f131-174c-0410-8613-e0905860106b

--- org.openwms/trunk/core/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/module/ModuleLocator.as
+++ org.openwms/trunk/core/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/module/ModuleLocator.as
@@ -22,7 +22,7 @@

     import flash.events.EventDispatcher;
     import flash.system.ApplicationDomain;
-
+
     import mx.collections.ArrayCollection;
     import mx.collections.XMLListCollection;
     import mx.controls.Alert;
@@ -31,7 +31,7 @@
     import mx.logging.Log;
     import mx.modules.IModuleInfo;
     import mx.modules.ModuleManager;
-
+
     import org.granite.tide.events.TideFaultEvent;
     import org.granite.tide.events.TideResultEvent;
     import org.granite.tide.spring.Context;
@@ -87,7 +87,7 @@
          */
         [Observer("LOAD_ALL_MODULES")]
         public function loadModulesFromService() : void {
-        	trace("Loading all module definitions from the database");
+            trace("Loading all module definitions from the database");
             tideContext.moduleService.findAll(onModulesLoad, onFault);
         }

@@ -97,17 +97,17 @@
          */
         [Observer("UNLOAD_ALL_MODULES")]
         public function unloadAllModules() : void {
-        	for each (var url:String in modelLocator.loadedModules.keys) {
-        		var module:Module = new Module();
-        		module.url = url;
-        		unloadModule(module);
-        	}
+            for each (var url:String in modelLocator.loadedModules.keys) {
+                var module:Module = new Module();
+                module.url = url;
+                unloadModule(module);
+            }
         }

         /**
          * Tries to save the module data via a service call.
          * Is called when the SAVE_MODULE event is fired.
-         *
+         *
          * @param event An ApplicationEvent that holds the Module to be saved in its data field
          */
         [Observer("SAVE_MODULE")]
@@ -118,7 +118,7 @@
         /**
          * Tries to remove the module data via a service call.
          * Is called when the DELETE_MODULE event is fired.
-         *
+         *
          * @param event An ApplicationEvent that holds the Module to be removed in its data field
          */
         [Observer("DELETE_MODULE")]
@@ -126,12 +126,12 @@
             toRemove = event.data as Module;
             tideContext.moduleService.remove(event.data as Module, onModuleRemoved, onFault);
         }
-
+
         /**
          * A collection of modules is passed to the service to save the startupOrder properties.
          * The startupOrders must be calculated and ordered before. Is called when the
          * SAVE_STARTUP_ORDERS event is fired.
-         *
+         *
          * @param event An ApplicationEvent holds a list of Modules that shall be updated
          */
         [Observer("SAVE_STARTUP_ORDERS")]
@@ -157,7 +157,7 @@
             }
             loadModule(module);
         }
-
+
         /**
          * Checks whether the module a registered Module and calls unloadModule to unload it.
          *
@@ -237,13 +237,13 @@
                 return false;
             }
             for each (var mInf:IModuleInfo in modelLocator.loadedModules.values) {
-	            if ((mInf.data as Module).moduleName == moduleName) {
-	                return true;
-	            }
+                if ((mInf.data as Module).moduleName == moduleName) {
+                    return true;
+                }
             }
             return false;
         }
-
+
         // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
         //
         // privates
@@ -264,7 +264,7 @@
          * Callback when startupOrder was saved for a list of modules.
          */
         private function onStartupOrdersSaved(event : TideResultEvent) : void {
-        	// We do not need to update the list of modules here, keep quite
+            // We do not need to update the list of modules here, keep quite
         }

         /**
@@ -272,10 +272,10 @@
          * on startup and tries to start each Module if it hasn't been loaded so far.
          */
         private function startAllModules() : void {
-        	var noModulesLoaded:Boolean = true;
+            var noModulesLoaded:Boolean = true;
             for each (var module : Module in modelLocator.allModules) {
                 if (module.loadOnStartup) {
-                	noModulesLoaded = false;
+                    noModulesLoaded = false;
                     if (modelLocator.loadedModules.containsKey(module.url)) {
                         module.loaded = true;
                         continue;
@@ -309,7 +309,7 @@
             }
             trace("No module to load with url: " + module.url);
         }
-
+
         private function unloadModule(module : Module):void {
             var mInf : IModuleInfo = ModuleManager.getModule(module.url);
             if (mInf != null) {
@@ -506,4 +506,5 @@
         }

     }
-}+}
+


Transferred from the Adobe Open Source Subversion Repository

Revision: 19226
Author:   harishs@adobe.com
Date:     2010-12-09T18:33:35.483731Z

Log Message:
-----------
QE notes:
Doc notes: Updated asdocs for spark validators/sort/sortfield
Bugs:
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/MatchingCollatorExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/SortingCollatorExample.mxml</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/SortingCollatorExample.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/StringToolsExample.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/StringToolsExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/MatchingCollatorExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>

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

--- frameworks/projects/framework/src/mx/collections/SortField.as
+++ frameworks/projects/framework/src/mx/collections/SortField.as
@@ -33,7 +33,7 @@
  *

  *     var col:ICollectionView = new ArrayCollection();
  *     col.addItem({first:"Anders", last:"Dickerson"});
- *     var sort:ISort = new Sort();
+ *     var sort:Sort = new Sort();
  *     sort.fields = [new SortField("first", true)];
  *     col.sort = sort;
  *

@@ -49,7 +49,7 @@
  *     var col:ICollectionView = new ArrayCollection();
  *     col.addItem("California");
  *     col.addItem("Arizona");
- *     var sort:ISort = new Sort();
+ *     var sort:Sort = new Sort();
  *     sort.fields = [new SortField(null, true)];
  *     col.sort = sort;
  *