Transferred from the Adobe Open Source Subversion Repository

Revision: 15679
Author:   chaase@adobe.com
Date:     2010-04-23T23:33:44.107719Z

Log Message:
-----------
Made layout constraint animation actually work. Animating constraints (left, right, etc.) with the Animate effect worked previously, but only if the animation values were explicitly specified or, in a transition, if both states had valid values for the constraint. But if you attempted to run a transition animating "left" where the constraint was cleared in either state, the animation would fail.
The fix checks for invalid values in the states and, when they occur, animates other related properties instead, or in addition. For example, an animation on "left" may turn into an animation on "x".

QE notes: None (added new checkintest AnimateConstraintsTest; might be interesting to see for further Mustella test development)
Doc notes: None
Bugs: None
Reviewer: Jason
Tests run: checkintests (with new test), Mustella spark/effects
Is noteworthy for integration: Yes. Downstream teams asked for this functionality.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/AnimateConstraintsTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/tests/basicTests/spark/views/AnimateConstraintsTests.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/BasicTests-config.xml</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
@@ -129,6 +129,16 @@
     private var oldWidth:Number;
     private var oldHeight:Number;

+    /**
+     * @private
+     * Used to selectively disable constraints that are being animated by
+     * their underlying values because the constraint values are not
+     * valid in both states of a transition. For example, if left is set
+     * in only one state, then we disable left and animate x instead,
+     * re-enabling left when the effect is finished.
+     */
+    private var disabledConstraintsMap:Object;
+
     //--------------------------------------------------------------------------
     //
     // Properties
@@ -448,14 +458,68 @@
         // from/to values are the same. Not worth the cycles, but also want
         // to avoid triggering any side effects when we're not actually changing
         // values
+        var addWidthMP:Boolean;
+        var addHeightMP:Boolean;
         var i:int;
         var j:int;
         for (i = 0; i < motionPaths.length; ++i)
         {
             var mp:MotionPath = MotionPath(motionPaths[i]);
-            var keyframes:Vector.<Keyframe> = motionPaths[i].keyframes;
+            var keyframes:Vector.<Keyframe> = mp.keyframes;
             if (!keyframes)
                 continue;
+            // Account for animating constraints where one or both state values
+            // are invalid; use underlying properties of x, y, width, height
+            // instead, or in addition
+            if (propertyChanges != null &&
+                (mp.property == "left" || mp.property == "right" ||
+                 mp.property == "top" || mp.property == "bottom" ||
+                 mp.property == "percentWidth" || mp.property == "percentHeight" ||
+                 mp.property == "horizontalCenter" || mp.property == "verticalCenter"))
+            {
+                // We need to substitute an underlying property if the animation is
+                // trying to automatically use and animate between the constraint
+                // values in the states, but one or both values are invalid
+                if (!isValidValue(propertyChanges.start[mp.property]) ||
+                    !isValidValue(propertyChanges.end[mp.property]) &&
+                    keyframes.length == 2 && !isValidValue(keyframes[0].value) &&
+                    !isValidValue(keyframes[1].value))
+                {
+                    if (mp.property == "percentWidth")
+                        mp.property = "width";
+                    else if (mp.property == "percentHeight")
+                        mp.property = "height";
+                    else if (mp.property == "left" || mp.property == "right" ||
+                        mp.property == "horizontalCenter")
+                    {
+                        if (!disabledConstraintsMap)
+                            disabledConstraintsMap = new Object();
+                        disabledConstraintsMap[mp.property] = true;
+                        mp.property = "x";
+                        if (isValidValue(propertyChanges.start["width"]) &&
+                            isValidValue(propertyChanges.end["width"]) &&
+                            propertyChanges.start["width"] != propertyChanges.end["width"])
+                        {
+                            // add motionPath to account for width changing between states
+                            addWidthMP = true;
+                        }
+                    }
+                    else
+                    {
+                        if (!disabledConstraintsMap)
+                            disabledConstraintsMap = new Object();
+                        disabledConstraintsMap[mp.property] = true;
+                        mp.property = "y";
+                        if (isValidValue(propertyChanges.start["height"]) &&
+                            isValidValue(propertyChanges.end["height"]) &&
+                            propertyChanges.start["height"] != propertyChanges.end["height"])
+                        {
+                            // add motionPath to account for height changing between states
+                            addHeightMP = true;
+                        }
+                    }
+                }
+            }
             if (interpolator)
                 mp.interpolator = interpolator;
             // adjust effect duration to be the max of all MotionPath keyframe times
@@ -472,6 +536,10 @@
                         duration = Math.max(duration, keyframes[j].time);

         }
+        if (addWidthMP)
+            motionPaths.push(new SimpleMotionPath("width"));
+        if (addHeightMP)
+            motionPaths.push(new SimpleMotionPath("height"));

         animation = new Animation(duration);
         animation.animationTarget = this;
@@ -650,7 +718,10 @@
             setupParentLayout(false);
             cacheConstraints();
         }
-
+        if (disabledConstraintsMap && !disableLayout)
+            for (var constraint:String in disabledConstraintsMap)
+                cacheConstraint(constraint);
+
         finalizeValues();
     }

@@ -697,10 +768,12 @@

     private function animationCleanup():void
     {
-        if (disableLayout)
+        if (disableLayout || disabledConstraintsMap)
         {
             reenableConstraints();
-            setupParentLayout(true);
+            if (disableLayout)
+                setupParentLayout(true);
+            disabledConstraintsMap = null;
         }
     }

@@ -953,7 +1026,6 @@
             oldWidth = target.explicitWidth;
             target.width = w;
         }
-
         if (top != undefined && bottom != undefined && "explicitHeight" in target)
         {
             var h:Number = target.height;


Fix for RCE-968. Ensure list='true' encoded even when no other attrs present

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
@@ -663,12 +663,11 @@
             {
                 node.@[attrObj.name] = attrObj.value;
             }
-
-            if (meta && meta.isList)
-                node.@list = "true";
-
-        }
-
+        }
+
+        if (meta && meta.isList)
+            node.@list = "true";
+
         return attrNames;
     }


fix bugs in this layout

fix bugs in this layout

--- frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/layouts/VerticalColumnLayout.as
+++ frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/layouts/VerticalColumnLayout.as
@@ -19,13 +19,15 @@
 package org.apache.flex.html.beads.layouts
 {
 	import org.apache.flex.core.IBeadLayout;
+	import org.apache.flex.core.IContainer;
 	import org.apache.flex.core.IMeasurementBead;
 	import org.apache.flex.core.IStrand;
-	import org.apache.flex.core.IContainer;
 	import org.apache.flex.core.IUIBase;
 	import org.apache.flex.core.UIBase;
+    import org.apache.flex.core.ValuesManager;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.utils.CSSUtils;

 	/**
 	 * ColumnLayout is a class that organizes the positioning of children
@@ -91,52 +93,84 @@
          */
 		public function layout():Boolean
 		{
-			var sw:Number = UIBase(_strand).width;
-			var sh:Number = UIBase(_strand).height;
+            var host:UIBase = UIBase(_strand);
+			var sw:Number = host.width;
+			var sh:Number = host.height;

 			var e:IUIBase;
 			var i:int;
 			var col:int = 0;
 			var columns:Array = [];
+            var rows:Array = [];
+            var data:Array = [];
 			for (i = 0; i < numColumns; i++)
 				columns[i] = 0;

+            var marginLeft:Object;
+            var marginRight:Object;
+            var marginTop:Object;
+            var marginBottom:Object;
+            var margin:Object;
+            var ml:Number;
+            var mr:Number;
+            var mt:Number;
+            var mb:Number;
 			var children:Array = IContainer(_strand).getChildren();
 			var n:int = children.length;
+            var rowData:Object = { rowHeight: 0 };

 			// determine max widths of columns
 			for (i = 0; i < n; i++) {
 				e = children[i];
+                margin = ValuesManager.valuesImpl.getValue(e, "margin");
+                marginLeft = ValuesManager.valuesImpl.getValue(e, "margin-left");
+                marginTop = ValuesManager.valuesImpl.getValue(e, "margin-top");
+                marginRight = ValuesManager.valuesImpl.getValue(e, "margin-right");
+                marginBottom = ValuesManager.valuesImpl.getValue(e, "margin-bottom");
+                mt = CSSUtils.getTopValue(marginTop, margin, sh);
+                mb = CSSUtils.getBottomValue(marginBottom, margin, sh);
+                mr = CSSUtils.getRightValue(marginRight, margin, sw);
+                ml = CSSUtils.getLeftValue(marginLeft, margin, sw);
+                data.push({ mt: mt, mb: mb, mr: mr, ml: ml});
 				var thisPrefWidth:int = 0;
 				if (e is IStrand)
 				{
-					var mb:IMeasurementBead = e.getBeadByType(IMeasurementBead) as IMeasurementBead;
-					if (mb)
-						thisPrefWidth = mb.measuredWidth;
+					var measure:IMeasurementBead = e.getBeadByType(IMeasurementBead) as IMeasurementBead;
+					if (measure)
+						thisPrefWidth = measure.measuredWidth + ml + mr;
 					else
-						thisPrefWidth = e.width;
+						thisPrefWidth = e.width + ml + mr;
 				}
 				else
-					thisPrefWidth = e.width;
+					thisPrefWidth = e.width + ml + mr;

+                rowData.rowHeight = Math.max(rowData.rowHeight, e.height + mt + mb);
 				columns[col] = Math.max(columns[col], thisPrefWidth);
-				col = (col + 1) % numColumns;
+                col = col + 1;
+                if (col == numColumns)
+                {
+                    rows.push(rowData);
+                    rowData = {rowHeight: 0};
+                    col = 0;
+                }
 			}

+            var lastmb:Number = 0;
 			var curx:int = 0;
 			var cury:int = 0;
 			var maxHeight:int = 0;
 			col = 0;
-			for (i = 0; i < n; i++) {
+			for (i = 0; i < n; i++)
+            {
 				e = children[i];
-				e.x = curx;
-				e.y = cury;
+				e.x = curx + ml;
+				e.y = cury + data[i].mt;
 				curx += columns[col++];
-				maxHeight = Math.max(e.height, maxHeight);
+                maxHeight = Math.max(maxHeight, e.y + e.height + data[i].mb);
 				if (col == numColumns)
 				{
-					cury += maxHeight;
-					maxHeight = 0;
+					cury += rows[0].rowHeight;
+                    rows.shift();
 					col = 0;
 					curx = 0;
 				}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19328
Author:   mhorn@adobe.com
Date:     2010-12-13T20:45:00.405533Z

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationAngledButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as
@@ -52,8 +52,8 @@
     public function TabbedViewNavigatorApplicationSkin()
     {
         super();
-
-		viewMenu = new ClassFactory(ViewMenu);
+
+        viewMenu = new ClassFactory(ViewMenu);
     }

     //--------------------------------------------------------------------------
@@ -71,17 +71,17 @@
      *  @productversion Flex 4.5
      */
     public var navigator:TabbedViewNavigator;
-
-
-	/**
-	 *  Creates an action menu from this factory when the menu button is pressed
+
+
+    /**
+     *  Creates an action menu from this factory when the menu button is pressed
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
-	 */
-	public var viewMenu:IFactory;
+     */
+    public var viewMenu:IFactory;

     //--------------------------------------------------------------------------
     //
@@ -98,19 +98,14 @@
     //--------------------------------------------------------------------------

     /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
+     *  @private
      */
     override protected function createChildren():void
     {
         navigator = new TabbedViewNavigator();
         addChild(navigator);
     }
-
+
     /**
      *  @private
      */
@@ -144,12 +139,7 @@
     }

     /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
+     *  @private
      */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 18884
Author:   jasonsj@adobe.com
Date:     2010-12-01T01:01:18.896589Z

Log Message:
-----------
Use authorDensity in Mobile theme

QE notes: By default, 240 devices should still report as 240. Mustella known goods should not be affected.
Doc notes:
Bugs:
Reviewer: egeorgie
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/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as
@@ -14,6 +14,8 @@
 import flash.display.DisplayObject;
 import flash.display.Graphics;

+import mx.core.DeviceDensity;
+
 import spark.components.Button;
 import spark.skins.mobile.supportClasses.MobileSkin;
 import spark.skins.mobile160.assets.HSliderTrack;
@@ -50,9 +52,9 @@
         useChromeColor = true;

         // set the right assets and dimensions to use based on the screen density
-        switch (targetDensity)
+        switch (authorDensity)
         {
-            case MobileSkin.PPI240:
+            case DeviceDensity.PPI_240:
             {
                 trackWidth = 240;
                 trackHeight = 65;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4922
Author:   gosmith@adobe.com
Date:     2009-02-10T22:19:49.510252Z

Log Message:
-----------
Renamed mx.graphics.graphicsClasses to mx.graphics.baseClasses, based on PARB review.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextFlowComposer.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as" copyfrom-rev="4920" action="R">/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/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextGraphicElement.as" copyfrom-rev="4920" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/StrokedElement.as</path>
<path kind="dir" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses" copyfrom-rev="4916" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextBlockComposer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -30,7 +30,7 @@
 import mx.graphics.Graphic;
 import mx.graphics.IGraphicElement;
 import mx.graphics.MaskType;
-import mx.graphics.graphicsClasses.GraphicElement;
+import mx.graphics.baseClasses.GraphicElement;
 import mx.layout.BasicLayout;
 import mx.core.ILayoutElement;
 import mx.layout.LayoutBase;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7198
Author:   hmuller@adobe.com
Date:     2009-05-21T22:27:07.016124Z

Log Message:
-----------
If a DataGroup changes its itemRenderer or dataProvider it needs to ensure that the
state cached for the sake of virtual layout is cleared.  Added
LayoutBase::clearVirtualLayoutState() for this.

BasicLayout.useVirtualLayout=false is now ignored (generates a warning).

QE Notes: API Change: added LayoutBase::clearVirtualLayoutState()
Doc Notes:
Bugs: sdk-19397, sdk-20443, sdk-20930
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
@@ -422,7 +422,6 @@
         {
             thumbSize = calculateThumbSize();
             sizeThumb(thumbSize);
-
             positionThumb(valueToPosition(value));
         }
     }
@@ -677,15 +676,10 @@
      */
     protected function track_updateCompleteHandler(event:Event):void
     {
-        //TODO: Consider the case where the track moves (like the move
-        //effect). Perhaps this handler should run every time...
-        if (trackSize != tempTrackSize)
-        {
-            thumbSize = calculateThumbSize();
-            sizeThumb(thumbSize);
-            positionThumb(valueToPosition(value));
-            tempTrackSize = trackSize;
-        }
+        thumbSize = calculateThumbSize();
+        sizeThumb(thumbSize);
+        positionThumb(valueToPosition(value));
+        tempTrackSize = trackSize;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/DissolveInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/DissolveInstance.as
@@ -0,0 +1,298 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.effects.effectClasses
+{
+
+import flash.events.Event;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+import mx.events.ChildExistenceChangedEvent;
+import mx.events.FlexEvent;
+import mx.graphics.RoundedRectangle;
+import mx.styles.StyleManager;
+
+/**
+ *  The DissolveInstance class implements the instance class
+ *  for the Dissolve effect.
+ *  Flex creates an instance of this class when it plays a Dissolve effect;
+ *  you do not create one yourself.
+ *
+ *
Every effect class that is a subclass of the TweenEffect class
+ *  supports the following events:

+ *
+ *

+ *
tweenEnd: Dispatched when the tween effect ends.

+ *
+ *
tweenUpdate: Dispatched every time a TweenEffect
+ *      class calculates a new value.

+ *

+ *
+ *
The event object passed to the event listener for these events is of type TweenEvent.
+ *  The TweenEvent class  defines the property value, which contains
+ *  the tween value calculated by the effect.
+ *  For the Dissolve effect,
+ *  the TweenEvent.value property contains a Number between the values of the
+ *  Dissolve.alphaFrom and Dissolve.alphaTo properties.

+ *
+ *  @see mx.effects.Dissolve
+ *  @see mx.events.TweenEvent
+ */
+public class DissolveInstance extends TweenEffectInstance
+{
+    include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param target The Object to animate with this effect.
+	 */
+	public function DissolveInstance(target:Object)
+	{
+		super(target);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var overlay:UIComponent;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  alphaFrom
+	//----------------------------------
+
+	/**
+	 *  Initial transparency level between 0.0 and 1.0,
+	 *  where 0.0 means transparent and 1.0 means fully opaque.
+	 */
+	public var alphaFrom:Number;
+
+	//----------------------------------
+	//  alphaTo
+	//----------------------------------
+
+	/**
+	 *  Final transparency level between 0.0 and 1.0,
+	 *  where 0.0 means transparent and 1.0 means fully opaque.
+	 */
+	public var alphaTo:Number;
+
+	//----------------------------------
+	//  color
+	//----------------------------------
+
+	/**
+	 *  Hex value that represents the color of the floating rectangle
+	 *  that the effect displays over the target object.
+	 *
+	 *  The default value is the color specified by the target component's
+	 *  backgroundColor style property, or 0xFFFFFF, if
+	 *  backgroundColor is not set.
+	 */
+	public var color:uint = StyleManager.NOT_A_COLOR;
+
+	//----------------------------------
+	//  persistAfterEnd
+	//----------------------------------
+
+	/**
+	 *  @private
+	 */
+	mx_internal var persistAfterEnd:Boolean = false;
+
+	//----------------------------------
+	//  targetArea
+	//----------------------------------
+
+	/**
+	 *  The area of the target to play the effect upon.
+	 *  The dissolve overlay is drawn using this property's dimensions.
+	 *  UIComponents create an overlay over the entire component.
+	 *  Containers create an overlay over their content area,
+	 *  but not their chrome.
+	 */
+	public var targetArea:RoundedRectangle;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function initEffect(event:Event):void
+	{
+		super.initEffect(event);
+
+		switch (event.type)
+		{
+			case "childrenCreationComplete":
+			case FlexEvent.CREATION_COMPLETE:
+			case "resizeEnd":
+			case FlexEvent.SHOW:
+			case Event.ADDED:
+			{
+				if (isNaN(alphaFrom))
+					alphaFrom = 0;
+				if (isNaN(alphaTo))
+					alphaTo = target.alpha;
+				break;
+			}
+
+			case FlexEvent.HIDE:
+			case "resizeStart":
+			case Event.REMOVED:
+			{
+				if (isNaN(alphaFrom))
+					alphaFrom = target.alpha;
+				if (isNaN(alphaTo))
+					alphaTo = 0;
+				break;
+			}
+		}
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function play():void
+	{
+		super.play();
+
+		var values:PropertyChanges = propertyChanges;
+
+		// If nobody assigned a value, make this a "show" effect.
+		if (isNaN(alphaFrom) && isNaN(alphaTo))
+		{
+			// If we are in transition mode
+			if (values && values.end["alpha"] !== undefined)
+			{
+				alphaFrom = target.alpha;
+				alphaTo = values.end["alpha"];
+			}
+			else if (values && values.end["visible"] !== undefined)
+			{
+				alphaFrom = values.start["visible"] ? target.alpha : 0;
+				alphaTo = values.end["visible"] ? target.alpha : 0;
+			}
+			else
+			{
+				alphaFrom = 0;
+				alphaTo = target.alpha;
+			}
+		}
+		else if (isNaN(alphaFrom))
+		{
+			alphaFrom = (alphaTo == 0) ? target.alpha : 0;
+		}
+		else if (isNaN(alphaTo))
+		{
+			if (values && values.end["alpha"] !== undefined)
+				alphaTo = values.end["alpha"];
+			else
+				alphaTo = (alphaFrom == 0) ? target.alpha : 0;
+		}
+
+		// If nobody assigned a color, then use the target's background color.
+		if (color == StyleManager.NOT_A_COLOR)
+		{
+			color = 0xFFFFFF;
+			var bgColor:Number = target.getStyle("backgroundColor");
+			if (isNaN(bgColor) && target.parent)
+			{
+				bgColor = target.parent.getStyle("backgroundColor");
+			}
+			if (!isNaN(bgColor))
+			{
+				color = uint(bgColor);
+			}
+		}
+
+		// Capture the target's width and height before creating the overlay.
+		// Label is a subclass of UIComponent, so creating an overlay
+		// for the label will change the label's width and height.
+		var targetWidth:Number = target.width;
+		var targetHeight:Number = target.height;
+
+		target.addEventListener(ChildExistenceChangedEvent.OVERLAY_CREATED,
+								overlayCreatedHandler);
+
+		target.mx_internal::addOverlay(color, targetArea);
+		//overlay.cacheAsBitmap = true;
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function onTweenUpdate(value:Object):void
+	{
+		overlay.alpha = Number(value);
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function onTweenEnd(value:Object):void
+	{
+		super.onTweenEnd(value);
+
+		if (!mx_internal::persistAfterEnd)
+			target.mx_internal::removeOverlay();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event handlers
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *	@private
+	 */
+	private function overlayCreatedHandler(event:ChildExistenceChangedEvent):void
+	{
+		target.removeEventListener(ChildExistenceChangedEvent.OVERLAY_CREATED,
+								   overlayCreatedHandler);
+
+		event.stopImmediatePropagation();
+
+		overlay = UIComponent(event.relatedObject);
+
+		// Create a tween.
+		tween = createTween(this, 1.0 - alphaFrom,
+										 1.0 - alphaTo, duration);
+
+		// Set the animation to the initial value before the screen refreshes.
+		mx_internal::applyTweenStartValues();
+	}
+
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 7163
Author:   aharui@adobe.com
Date:     2009-05-21T02:19:55.813792Z

Log Message:
-----------
Initial checkin of frame 1 cleanup.  In an RSL linkage, more classes will now come from the RSL because they are no longer needed in frame 1, and the size of the application SWF will be smaller.

QE Notes: None
Doc Notes: Maybe.  All new classes should be undocumented, but it might be worth checking that and any changes to interfaces
Bugs:
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</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/framework/src/mx/core/EmbeddedFont.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ResourceModuleRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IMarshalSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/MustellaResultsParser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/DragManagerMarshalMixin.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/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.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/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/PopUpManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManagerChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
@@ -731,23 +731,12 @@
         // Calculate global position of label.
         var sm:ISystemManager = systemManager.topLevelSystemManager;
         var sbRoot:DisplayObject = sm.getSandboxRoot();
-        var screen:Rectangle;
+        var screen:Rectangle = sm.getVisibleApplicationRect();
         var pt:Point = new Point(0, 0);
         pt = localToGlobal(pt);
         pt = sbRoot.globalToLocal(pt);

         toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);
-
-        if (sm != sbRoot)
-        {
-            var request:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,
-                                    false, false,
-                                    "getVisibleApplicationRect");
-            sbRoot.dispatchEvent(request);
-            screen = Rectangle(request.value);
-        }
-        else
-            screen = sm.getVisibleApplicationRect();

         var screenRight:Number = screen.x + screen.width;
         pt.x = toolTip.x;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19722
Author:   egeorgie@adobe.com
Date:     2011-01-12T00:53:24.336848Z

Log Message:
-----------
Fix popups/tooltips and scaling bugs:
Slider tooltip renders far above under 2.0 scaling - http://bugs.adobe.com/jira/browse/SDK-28833
Mobile HSliderSkin dataTip sometimes stops following the thumb all the way to the right edge - http://bugs.adobe.com/jira/browse/SDK-28762
When the app is scaled, DropDownList shows the list at wrong place - http://bugs.adobe.com/jira/browse/SDK-28818

In this change:
- update popup/tooltip positioning code to work with scaling.

QE notes:  make another test pass on tooltips/pop-ups
Doc notes:
Bugs: SDK-28833, SDK-28762, SDK-28818
Reviewer: Alex
Tests run: full mustella cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<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/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/DragManagerImpl.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/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/PopUpUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
@@ -15,9 +15,10 @@
 import flash.display.DisplayObject;
 import flash.geom.Point;
 import flash.geom.Rectangle;
-import flash.utils.getQualifiedSuperclassName;
 import flash.utils.getDefinitionByName;
 import flash.utils.getQualifiedClassName;
+import flash.utils.getQualifiedSuperclassName;
+
 import mx.controls.DataGrid;
 import mx.controls.listClasses.BaseListData;
 import mx.controls.listClasses.IDropInListItemRenderer;
@@ -37,6 +38,7 @@
 import mx.styles.CSSStyleDeclaration;
 import mx.styles.IStyleClient;
 import mx.styles.StyleProtoChain;
+import mx.utils.PopUpUtil;

 use namespace mx_internal;

@@ -727,22 +729,15 @@
     {
         var toolTip:IToolTip = event.toolTip;

-        // Calculate global position of label.
-        var sm:ISystemManager = systemManager.topLevelSystemManager;
-        var sbRoot:DisplayObject = sm.getSandboxRoot();
-        var screen:Rectangle = sm.getVisibleApplicationRect(null, true);
-        var pt:Point = new Point(0, 0);
-        pt = localToGlobal(pt);
-        pt = sbRoot.globalToLocal(pt);
-
-        toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);
-
-        var screenRight:Number = screen.x + screen.width;
-        pt.x = toolTip.x;
-        pt.y = toolTip.y;
-        pt = sbRoot.localToGlobal(pt);
-        if (pt.x + toolTip.width > screenRight)
-            toolTip.move(toolTip.x - (pt.x + toolTip.width - screenRight), toolTip.y);
+        // We need to position the tooltip at same x coordinate,
+        // center vertically and make sure it doesn't overlap the screen.
+        // Call the helper function to handle this for us.
+        var pt:Point = PopUpUtil.positionOverComponent(this,
+                                                       systemManager,
+                                                       toolTip.width,
+                                                       toolTip.height,
+                                                       height / 2);
+        toolTip.move(pt.x, pt.y);
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11476
Author:   aharui@adobe.com
Date:     2009-11-05T20:39:26.552363Z

Log Message:
-----------
Viewstack wasn't dispatching events when selectedIndex changed if it started out empty and had a child added later.  It will now dispatch VALUE_COMMIT.  ISelectableList was modified to reflect that VALUE_COMMIT and/or CHANGE can be sent when selectedIndex changes.  ButtonBarBase now listens to both events.

QE Notes: Six ButtonBar bitmaps need regeneration as they will now have the first button selected
Doc Notes: ISelectableList added a new event
Bugs: SDK-23528
Reviewer: Ryan
API Change: Yes
Is noteworthy for integration: No
tests: checkintests mustella/gumbo/components/ButtonBar, mustella/containers/ViewStack.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISelectableList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as
@@ -24,6 +24,8 @@
 import mx.core.ISelectableList;
 import mx.core.IVisualElement;
 import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.events.IndexChangedEvent;
 import mx.managers.IFocusManagerComponent;

 import spark.components.ButtonBarButton;
@@ -123,10 +125,16 @@
     override public function set dataProvider(value:IList):void
     {
         if (dataProvider is ISelectableList)
-            dataProvider.removeEventListener(Event.CHANGE, dataProvider_changeHandler);
+        {
+            dataProvider.removeEventListener(FlexEvent.VALUE_COMMIT, dataProvider_changeHandler);
+            dataProvider.removeEventListener(IndexChangedEvent.CHANGE, dataProvider_changeHandler);
+        }

         if (value is ISelectableList)
-            value.addEventListener(Event.CHANGE, dataProvider_changeHandler);
+        {
+            value.addEventListener(FlexEvent.VALUE_COMMIT, dataProvider_changeHandler);
+            value.addEventListener(IndexChangedEvent.CHANGE, dataProvider_changeHandler);
+        }

         super.dataProvider = value;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5389
Author:   mhorn@adobe.com
Date:     2009-03-18T16:09:24.692896Z

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

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/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/CollectionEventKind.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/graphics/GradientBase.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/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Button.as
+++ frameworks/projects/mx/src/mx/controls/Button.as
@@ -160,7 +160,7 @@
  *  Number of pixels between the component's bottom border
  *  and the bottom of its content area.
  *
- *  @default 0
+ *  @default 2
  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -173,7 +173,7 @@
  *  Number of pixels between the component's top border
  *  and the top of its content area.
  *
- *  @default 0
+ *  @default 2
  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -588,10 +588,10 @@
  *    letterSpacing="0"
  *    overIcon="null"
  *    overSkin="mx.skins.halo.ButtonSkin"
- *    paddingBottom="0"
+ *    paddingBottom="2"
  *    paddingLeft="0"
  *    paddingRight="0"
- *    paddingTop="0"
+ *    paddingTop="2"
  *    repeatDelay="500"
  *    repeatInterval="35"
  *    selectedDisabledIcon="null"


AbstractMap.putAll implemented

AbstractMap.putAll implemented

--- src/main/org/shypl/common/collection/AbstractMap.as
+++ src/main/org/shypl/common/collection/AbstractMap.as
@@ -75,8 +75,10 @@
 		}

 		public function putAll(map:Object):void {
-			//TODO
-			throw new RuntimeException("TODO");
+			//noinspection JSValidateTypes
+			for (var key:Object in map) {
+				put(key, map[key]);
+			}
 		}

 		public function clear():void {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2711
Author:   jszeto@adobe.com
Date:     2008-08-01T21:28:09.563575Z

Log Message:
-----------
MXMLG-111 - Several shapes dont dispatch updateComplete event

All graphic elements now dispatch an updateComplete event after they have validated.

Bug: MXMLG-111
QA: Yes
Doc: Yes
Review: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/BitmapGraphic.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -29,6 +29,7 @@
 import mx.core.IInvalidating;
 import mx.core.mx_internal;
 import mx.core.UIComponentGlobals;
+import mx.events.FlexEvent;
 import mx.events.PropertyChangeEvent;
 import mx.events.PropertyChangeEventKind;
 import mx.graphics.IStroke;
@@ -179,7 +180,7 @@

 		alphaChanged = true;
 		notifyElementLayerChanged();
-		invalidateDisplayList();
+		invalidateProperties();
 	}

 	//----------------------------------
@@ -258,7 +259,7 @@

 		blendModeChanged = true;
 		notifyElementLayerChanged();
-        invalidateDisplayList();
+        invalidateProperties();
 	}

 	//----------------------------------
@@ -491,6 +492,7 @@

 		filtersChanged = true;
 		notifyElementLayerChanged();
+		invalidateProperties();
 	}

 	//----------------------------------
@@ -656,11 +658,7 @@
 		maskTypeChanged = true;
 		isMaskInElementSpace = false;
 		notifyElementLayerChanged();
-
-        // TODO EGeorgie: currently need to invalidate the display list,
-        // because the mask gets applied on updateDisplayList. Should it get
-        // applied on commit properties?
-		invalidateDisplayList();
+		invalidateProperties();
 	}

 	//----------------------------------
@@ -702,7 +700,7 @@
 		dispatchPropertyChangeEvent("maskType", oldValue, value);

 		maskTypeChanged = true;
-		invalidateDisplayList();
+		invalidateProperties();
 	}

 	//----------------------------------
@@ -1632,7 +1630,7 @@
 		visibleChanged = true;

         // TODO EGeorgie: should we redraw for visibility changes?
-		invalidateDisplayList();
+		invalidateProperties();
 	}

 	//--------------------------------------------------------------------------
@@ -1891,62 +1889,6 @@
         		_mask.transform.matrix = maskMatrix;
         		isMaskInElementSpace = true;
         	}
-		}
-	}
-
-  	/**
-     *  Documentation is not currently available.
-     */
-	protected function applyDisplayObjectProperties():void
-	{
-		if (displayObject)
-		{
-			if (alphaChanged)
-			{
-				alphaChanged = false;
-				displayObject.alpha = _alpha;
-			}
-
-
-			if (blendModeChanged)
-			{
-				blendModeChanged = true;
-				displayObject.blendMode = _blendMode;
-			}
-
-			if (filtersChanged)
-			{
-				filtersChanged = false;
-				displayObject.filters = _clonedFilters;
-			}
-
-			if (maskChanged)
-			{
-				maskChanged = false;
-				if (elementHost)
-				{
-					if (previousMask)
-					{
-						elementHost.removeMaskElement(previousMask, this);
-						if (displayObject)
-							displayObject.mask = null;
-					}
-					if (_mask)
-						elementHost.addMaskElement(_mask, this);
-				}
-			}
-
-			if (maskTypeChanged)
-			{
-				maskTypeChanged = false;
-				applyMaskType();
-			}
-
-			if (visibleChanged)
-			{
-				visibleChanged = false;
-				displayObject.visible = _visible;
-			}
 		}
 	}

@@ -2121,6 +2063,10 @@
             return;
         commitProperties();
         invalidatePropertiesFlag = false;
+
+        // If we aren't doing any more invalidation, send out an UpdateComplete event
+        if (!invalidatePropertiesFlag && !invalidateSizeFlag && !invalidateDisplayListFlag)
+        	dispatchUpdateComplete();
     }

     /**
@@ -2143,6 +2089,54 @@
      */
     protected function commitProperties():void
     {
+    	if (displayObject)
+		{
+			if (alphaChanged)
+			{
+				alphaChanged = false;
+				displayObject.alpha = _alpha;
+			}
+
+			if (blendModeChanged)
+			{
+				blendModeChanged = true;
+				displayObject.blendMode = _blendMode;
+			}
+
+			if (filtersChanged)
+			{
+				filtersChanged = false;
+				displayObject.filters = _clonedFilters;
+			}
+
+			if (maskChanged)
+			{
+				maskChanged = false;
+				if (elementHost)
+				{
+					if (previousMask)
+					{
+						elementHost.removeMaskElement(previousMask, this);
+						if (displayObject)
+							displayObject.mask = null;
+					}
+					if (_mask)
+						elementHost.addMaskElement(_mask, this);
+				}
+			}
+
+			if (maskTypeChanged)
+			{
+				maskTypeChanged = false;
+				applyMaskType();
+			}
+
+			if (visibleChanged)
+			{
+				visibleChanged = false;
+				displayObject.visible = _visible;
+			}
+		}
     }

     /**
@@ -2155,8 +2149,14 @@
         invalidateSizeFlag = false;

         var sizeChanging:Boolean = measureSizes();
+
         if (!sizeChanging || !includeInLayout)
+        {
+        	// If we aren't doing any more invalidation, send out an UpdateComplete event
+        	if (!invalidatePropertiesFlag && !invalidateSizeFlag && !invalidateDisplayListFlag)
+        		dispatchUpdateComplete();
             return;
+        }

         // Our size has changed, parent has to resize and run layout code
         invalidateParentSizeAndDisplayList();
@@ -2260,6 +2260,10 @@
         invalidateDisplayListFlag = false;

         updateDisplayList(_width, _height);
+
+        // If we aren't doing any more invalidation, send out an UpdateComplete event
+        if (!invalidatePropertiesFlag && !invalidateSizeFlag && !invalidateDisplayListFlag)
+        	dispatchUpdateComplete();
     }

     /**
@@ -2288,6 +2292,15 @@
                                          unscaledHeight:Number):void
     {
     }
+
+    /**
+     *  @private
+     *  Helper function to dispatch the UpdateComplete event
+     */
+    private function dispatchUpdateComplete():void
+	{
+		dispatchEvent(new FlexEvent(FlexEvent.UPDATE_COMPLETE));
+	}

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


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

--- frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as
+++ frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  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
+//
+//      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.
 //
 ////////////////////////////////////////////////////////////////////////////////


fixes one more mustella test

fixes one more mustella test

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/BusyIndicatorSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/BusyIndicatorSkin.as
@@ -177,6 +177,12 @@
 			}
 		}

+		override protected function measure():void
+		{
+			measuredHeight = hostComponent.height;
+			measuredWidth = hostComponent.width;
+		}
+
 		override protected function commitCurrentState():void
 		{
 			super.commitCurrentState();
@@ -188,6 +194,8 @@
 			{
 				stopRotation();
 			}
+			invalidateSize();
+			invalidateDisplayList();
 		}

 		/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 12085
Author:   klin@adobe.com
Date:     2009-11-21T20:42:53.350711Z

Log Message:
-----------
Reverting 12078 until I can fix the errors.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/ScrollBarTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -218,35 +218,35 @@
     //
     //--------------------------------------------------------------------------

-    /**
-     *  @private
-     */
+	/**
+	 *  @private
+	 */
     private var dataFormatter:NumberFormatter;

-    /**
-     *  @private
-     */
+	/**
+	 *  @private
+	 */
     private var animator:Animation = null;

-    /**
-     *  @private
-     */
+	/**
+	 *  @private
+	 */
     private var dataTipInitialPosition:Point;

-    /**
-     *  @private
-     */
+	/**
+	 *  @private
+	 */
     private var dataTipInstance:IDataRenderer;

-    /**
-     *  @private
-     */
+	/**
+	 *  @private
+	 */
     private var slideToValue:Number;
-
-    /**
-     *  @private
-     */
-    private var isKeyDown:Boolean = false;
+
+	/**
+	 *  @private
+	 */
+	private var isKeyDown:Boolean = false;

     /**
      *  @private
@@ -294,9 +294,9 @@
     //  dataTipformatFunction
     //---------------------------------

-    /**
-     *  @private
-     */
+	/**
+	 *  @private
+	 */
     private var _dataTipFormatFunction:Function;

     /**
@@ -333,9 +333,9 @@
         return _dataTipFormatFunction;
     }

-    /**
-     *  @private
-     */
+	/**
+	 *  @private
+	 */
     public function set dataTipFormatFunction(value:Function):void
     {
         _dataTipFormatFunction = value;
@@ -492,7 +492,7 @@
         // Don't draw the error skin
     }

-    //--------------------------------------------------------------------------
+	//--------------------------------------------------------------------------
     //
     //  Methods
     //
@@ -547,41 +547,39 @@
      */
     private function animationUpdateHandler(animation:Animation):void
     {
-        // FIXME (klin): Should the animation be setting the value
-        // as it goes like ScrollBar does? Should this behavior
-        // depend on liveDragging?
+		// FIXME (klin): Should the animation be setting the value
+		// as it goes like ScrollBar does? Should this behavior
+		// depend on liveDraggin?
         pendingValue = animation.currentValue["value"];
     }

     /**
      *  @private
      *  Handles end event from the Animation that runs the animated slide.
-     *  We dispatch the "changeEnd" event at this time, after the animation
+     *  We dispatch the "change" event at this time, after the animation
      *  is done since each animation occurs after a user interaction.
      */
     private function animationEndHandler(animation:Animation):void
     {
         setValue(slideToValue);
-
+
         dispatchEvent(new Event(Event.CHANGE));
-        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
-    }
-
-    /**
-     *  @private
-     *  Stops a running animation prematurely and sets the value
-     *  of the slider to the current pendingValue. We also dispatch
-     *  a "changeEnd" event since the user has started another interaction.
-     */
-    private function stopAnimation():void
-    {
-        animator.stop();
-
-        setValue(nearestValidValue(pendingValue, snapInterval));
-
-        dispatchEvent(new Event(Event.CHANGE));
-        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
-    }
+    }
+
+	/**
+	 *  @private
+	 *  Stops a running animation prematurely and sets the value
+	 *  of the slider to the current pendingValue. We also dispatch
+	 *  a "change" event since the user has started another interaction.
+	 */
+	private function stopAnimation():void
+	{
+		animator.stop();
+
+		setValue(nearestValidValue(pendingValue, snapInterval));
+
+		dispatchEvent(new Event(Event.CHANGE));
+	}

     //--------------------------------------------------------------------------
     //
@@ -594,32 +592,32 @@
      */
     override protected function thumb_mouseDownHandler(event:MouseEvent):void
     {
-        // finish previous animation
-        if (animator && animator.isPlaying)
-            stopAnimation();
-
+		// finish previous animation
+		if (animator && animator.isPlaying)
+			stopAnimation();
+
         super.thumb_mouseDownHandler(event);
         clickOffset = thumb.globalToLocal(new Point(event.stageX, event.stageY));
-
+
         // Popup a dataTip only if we have a SkinPart and the boolean flag is true
         if (dataTip && showDataTip && enabled)
         {
             dataTipInstance = IDataRenderer(createDynamicPartInstance("dataTip"));
-
-            dataTipInstance.data = formatDataTipText(
-                nearestValidValue(pendingValue, snapInterval));
-
-            var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
-
-            // Allow styles to be inherited from Slider.
-            if (tipAsUIComponent)
-            {
-                tipAsUIComponent.owner = this;
-                tipAsUIComponent.isPopUp = true;
-            }
-
-            systemManager.toolTipChildren.addChild(DisplayObject(dataTipInstance));
-
+
+			dataTipInstance.data = formatDataTipText(
+				nearestValidValue(pendingValue, snapInterval));
+
+			var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
+
+			// Allow styles to be inherited from Slider.
+			if (tipAsUIComponent)
+			{
+				tipAsUIComponent.owner = this;
+				tipAsUIComponent.isPopUp = true;
+			}
+
+			systemManager.toolTipChildren.addChild(DisplayObject(dataTipInstance));
+
             // Force the dataTip to render so that we have the correct size since
             // updateDataTip might need the size
             if (tipAsUIComponent)
@@ -648,14 +646,9 @@
         {
             dispatchEvent(new TrackBaseEvent(TrackBaseEvent.THUMB_DRAG));
             if (getStyle("liveDragging") === true)
-            {
                 setValue(newValue);
-                dispatchEvent(new Event(Event.CHANGE));
-            }
             else
-            {
                 pendingValue = newValue;
-            }
         }

         if (dataTipInstance && showDataTip)
@@ -683,10 +676,7 @@
     override protected function system_mouseUpHandler(event:Event):void
     {
         if ((getStyle("liveDragging") === false) && (value != pendingValue))
-        {
             setValue(pendingValue);
-            dispatchEvent(new Event(Event.CHANGE));
-        }

         if (dataTipInstance)
         {
@@ -704,9 +694,9 @@
      *  decreases the value by stepSize. The opposite for
      *  Right/Up arrows. The Home and End keys set the value
      *  to the min and max respectively.
-     *
-     *  We dispatch changing events when the keystroke
-     *  may both repeat and alter the value.
+	 *
+	 *  We dispatch changing events when the keystroke
+	 *  may both repeat and alter the value.
      */
     override protected function keyDownHandler(event:KeyboardEvent):void
     {
@@ -716,8 +706,8 @@
             return;

         if (animator && animator.isPlaying)
-            stopAnimation();
-
+			stopAnimation();
+
         // FIXME (hmuller): Provide a way to easily override the keyboard
         // behavior. This means having a callback in the subclasses
         // that tell the superclass all the positions in an array
@@ -731,18 +721,17 @@
             case Keyboard.DOWN:
             case Keyboard.LEFT:
             {
-                newValue = nearestValidValue(pendingValue - stepSize, snapInterval);
-
-                if (prevValue != newValue)
-                {
-                    if (!isKeyDown)
-                    {
-                        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
-                        isKeyDown = true;
-                    }
-                    setValue(newValue);
-                    dispatchEvent(new Event(Event.CHANGE));
-                }
+				newValue = nearestValidValue(pendingValue - stepSize, snapInterval);
+
+				if (prevValue != newValue)
+				{
+					if (!isKeyDown)
+					{
+						dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
+						isKeyDown = true;
+					}
+					setValue(newValue);
+				}
                 event.preventDefault();
                 break;
             }
@@ -750,18 +739,17 @@
             case Keyboard.UP:
             case Keyboard.RIGHT:
             {
-                newValue = nearestValidValue(pendingValue + stepSize, snapInterval);
-
-                if (prevValue != newValue)
-                {
-                    if (!isKeyDown)
-                    {
-                        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
-                        isKeyDown = true;
-                    }
-                    setValue(newValue);
-                    dispatchEvent(new Event(Event.CHANGE));
-                }
+				newValue = nearestValidValue(pendingValue + stepSize, snapInterval);
+
+				if (prevValue != newValue)
+				{
+					if (!isKeyDown)
+					{
+						dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
+						isKeyDown = true;
+					}
+                	setValue(newValue);
+				}
                 event.preventDefault();
                 break;
             }
@@ -769,8 +757,8 @@
             case Keyboard.HOME:
             {
                 value = minimum;
-                if (value != prevValue)
-                    dispatchEvent(new Event(Event.CHANGE));
+				if (value != prevValue)
+					dispatchEvent(new Event(Event.CHANGE));
                 event.preventDefault();
                 break;
             }
@@ -778,40 +766,40 @@
             case Keyboard.END:
             {
                 value = maximum;
-                if (value != prevValue)
-                    dispatchEvent(new Event(Event.CHANGE));
+				if (value != prevValue)
+					dispatchEvent(new Event(Event.CHANGE));
                 event.preventDefault();
                 break;
             }
         }
     }
-
-    /**
-     *  @private
-     *  Handle keyboard release events. Allows us to send out changeEnd
-     *  event.
-     */
-    override protected function keyUpHandler(event:KeyboardEvent) : void
-    {
-        switch (event.keyCode)
-        {
-            case Keyboard.DOWN:
-            case Keyboard.LEFT:
-            case Keyboard.UP:
-            case Keyboard.RIGHT:
-            {
-                if (isKeyDown)
-                {
-                    // Dispatch "change" event only after a repeat occurs.
-                    dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
-                    isKeyDown = false;
-                }
-                event.preventDefault();
-                break;
-            }
-        }
-    }
-
+
+	/**
+	 *  @private
+	 *  Handle keyboard release events. Allows us to send out exactly
+	 *  one change event per user gesture.
+	 */
+	override protected function keyUpHandler(event:KeyboardEvent) : void
+	{
+		switch (event.keyCode)
+		{
+			case Keyboard.DOWN:
+			case Keyboard.LEFT:
+			case Keyboard.UP:
+			case Keyboard.RIGHT:
+			{
+				if (isKeyDown)
+				{
+					// Dispatch "change" event only after a repeat occurs.
+					dispatchEvent(new Event(Event.CHANGE));
+					isKeyDown = false;
+				}
+				event.preventDefault();
+				break;
+			}
+		}
+	}
+
     /**
      *  @private
      *  Handle mouse-down events for the slider track. We
@@ -849,11 +837,11 @@
                     // FIXME (chaase): hard-coding easer for now - how to style it?
                     animator.easer = new Sine(0);
                 }
-
-                // Finish any current animation before we start the next one.
-                if (animator.isPlaying)
-                    stopAnimation();
-
+
+				// Finish any current animation before we start the next one.
+				if (animator.isPlaying)
+					stopAnimation();
+
                 // holds the final value to be set when animation ends
                 slideToValue = newValue;
                 animator.duration = slideDuration *
@@ -861,7 +849,7 @@
                 animator.motionPaths = new <MotionPath>[
                     new SimpleMotionPath("value", pendingValue, slideToValue)];

-                dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
+                dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
                 animator.play();
             }
             else


Made flickering faster.

Made flickering faster.


fixed issue with tracked properties not being marked as dirty if intialUpdateOnly was set to true

--- src/com/pblabs/networking/ghosting/Ghost.as
+++ src/com/pblabs/networking/ghosting/Ghost.as
@@ -179,7 +179,7 @@
          // For each property...
          for each(var tp:TrackedProperty in trackedProperties)
          {
-            if(tp.initialUpdateOnly)
+            if(tp.initialUpdateOnly && !_firstCheck)
                continue;

             // Get its current value.
@@ -198,6 +198,8 @@
                tp.lastValue = propVal;
             }
          }
+
+		 _firstCheck = false;

          // Set dirty bits based on what changed.
          markDirty(dirtyBits);
@@ -249,5 +251,6 @@
       }

       private var _protocol:NetRoot = null;
+	  private var _firstCheck:Boolean = true;
    }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22678
Author:   chiedozi@adobe.com
Date:     2011-09-21T23:38:44.961936Z

Log Message:
-----------
SplitViewNavigator now ends all ViewTransitions before showing or hiding its PopUp and when the application reorients.
Removed an unnecessary enter frame handler in FlipViewTransition

QE notes:
Doc notes:
Bugs: SDK-31566, SDK-31577
Reviewer: Max
Tests run: mustella-mobile, checkintests-mobile
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
@@ -199,6 +199,38 @@
      */
     private var verticalTransition:Boolean;

+    /**
+     *  @private
+     *  Flag used to determine whether the transition should wait a frame when
+     *  it receives the EFFECT_END event.  This is true by default.  It is only
+     *  set to false when the endTransitions() method is called.
+     */
+    private static var renderLastFrame:Boolean = true;
+
+    /**
+     *  @private
+     *  Private vector that stores all the active transitions.
+     */
+    private static var activeTransitions:Vector.<ViewTransitionBase> = new Vector.<ViewTransitionBase>();
+
+    /**
+     *  @private
+     *  Ends all currently active view transitions.
+     */
+    mx_internal static function endTransitions():void
+    {
+        // Prevent the transitions from waiting a frame when they receive the
+        // EFFECT_END event.  See effectComplete().
+        renderLastFrame = false;
+
+        // End all active transitions.  They will be removed from the vector
+        // in transitionComplete().
+        for (var i:int = 0; i < activeTransitions.length; i++)
+            activeTransitions[i].effect.end();
+
+        // Restore render flag
+        renderLastFrame = true;
+    }

     //--------------------------------------------------------------------------
     //
@@ -723,6 +755,7 @@
     {
         if (effect)
         {
+            activeTransitions.push(this);
             effect.addEventListener(EffectEvent.EFFECT_END, effectComplete);

             // Dispatch TRANSITION_START.
@@ -1109,6 +1142,8 @@
     protected function transitionComplete():void
     {
         cleanUp();
+
+        activeTransitions.splice(activeTransitions.indexOf(this), 1);

         if (hasEventListener(FlexEvent.TRANSITION_END))
             dispatchEvent(new FlexEvent(FlexEvent.TRANSITION_END));
@@ -1480,11 +1515,18 @@
         if (!consolidatedTransition)
             actionBarMoveEffect_effectUpdateHandler(null);

-        // We don't call transitionComplete just yet, we want to ensure
-        // that the last frame of animation actually gets rendered on screen
-        // before we clean up after ourselves.  This prevents a perceived
-        // stutter on the very last frame.
-        navigator.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
+        if (renderLastFrame)
+        {
+            // We don't call transitionComplete just yet, we want to ensure
+            // that the last frame of animation actually gets rendered on screen
+            // before we clean up after ourselves.  This prevents a perceived
+            // stutter on the very last frame.
+            navigator.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
+        }
+        else
+        {
+            enterFrameHandler(null);
+        }
     }

     /**
@@ -1492,9 +1534,10 @@
      */
     private function enterFrameHandler(event:Event):void
     {
-        navigator.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
+        if (event)
+            navigator.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
+
         effect = null;
-
         transitionComplete();
     }


ensure emergency switch down works correctly when NetStream is flushed

--- src/org/mangui/hls/loader/FragmentLoader.as
+++ src/org/mangui/hls/loader/FragmentLoader.as
@@ -186,8 +186,8 @@
                                 _metrics.duration = 1000*fragDuration;
                                 _metrics.loading_end_time = _metrics.parsing_end_time = _metrics.loading_request_time + 1000*expected/loadRate;
                                 _hls.dispatchEvent(new HLSEvent(HLSEvent.FRAGMENT_LOAD_EMERGENCY_ABORTED, _metrics));
+                                _streamBuffer.flushLastFragment(_fragCurrent.level,_fragCurrent.seqnum);
                                 _levelNext = _levelController.getnextlevel(_fragCurrent.level, bufferLen);
-                                _streamBuffer.flushLastFragment(_fragCurrent.level,_fragCurrent.seqnum);
                               // switch back to IDLE state to request new fragment at lowest level
                               _loadingState = LOADING_IDLE;
                             }


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

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

 package mx.automation.delegates.containers


Transferred from the Adobe Open Source Subversion Repository

Revision: 22423
Author:   tkraikit@adobe.com
Date:     2011-09-07T00:45:45.621725Z

Log Message:
-----------
* ASDoc fix
* use constant value for MIN_DATE_DEFAULT year in DateAndTimeProvider
* added check for invalid input type in DateAndTimeProvider.getItemIndex(Object)

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as
+++ frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as
@@ -36,7 +36,7 @@
     private static const MS_IN_DAY:Number = 1000 * 60 * 60 * 24;

     // default min/max date
-    private static const MIN_DATE_DEFAULT:Date = new Date(1601, 0, 1);
+    private static const MIN_DATE_DEFAULT:Date = new Date(DateTimeFormatterEx.MIN_YEAR, 0, 1);
     private static const MAX_DATE_DEFAULT:Date = new Date(9999, 11, 31, 23, 59, 59, 999);

     //--------------------------------------------------------------------------
@@ -175,17 +175,23 @@
      */
     override public function getItemIndex(item:Object):int
     {
-        if (!isNaN(item.data))
-        {
-            // set firstDate's hour/min/second to the same values
-            var dateObj:Date = new Date(item.data);
-            dateObj.hours = startDate.hours;
-            dateObj.minutes = startDate.minutes;
-            dateObj.seconds = startDate.seconds;
-            dateObj.milliseconds = startDate.milliseconds;
-
-            if (dateObj.time >= startDate.time && dateObj.time <= endDate.time)
-                return Math.round((dateObj.time - startDate.time) / MS_IN_DAY);
+        try
+        {
+            if (!isNaN(item.data))
+            {
+                // set firstDate's hour/min/second to the same values
+                var dateObj:Date = new Date(item.data);
+                dateObj.hours = startDate.hours;
+                dateObj.minutes = startDate.minutes;
+                dateObj.seconds = startDate.seconds;
+                dateObj.milliseconds = startDate.milliseconds;
+
+                if (dateObj.time >= startDate.time && dateObj.time <= endDate.time)
+                    return Math.round((dateObj.time - startDate.time) / MS_IN_DAY);
+            }
+        }
+        catch(error:Error)
+        {
         }

         return -1;


SDP: Debug log the SDP file

SDP: Debug log the SDP file

--- src/com/axis/rtspclient/SDP.as
+++ src/com/axis/rtspclient/SDP.as
@@ -22,7 +22,9 @@
       var success:Boolean = true;
       var currentMediaBlock:Object = sessionBlock;

-      for each (var line:String in content.toString().split("\n")) {
+      Logger.log(dataString);
+
+      for each (var line:String in dataString.split("\n")) {
         line = line.replace(/\r/, ''); /* Delimiter '\r\n' is allowed, if this is the case, remove '\r' too */
         if (0 === line.length) {
           /* Empty row (last row perhaps?), skip to next */


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

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

 package spark.skins.mobile.supportClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19972
Author:   sameer@adobe.com
Date:     2011-01-27T10:21:47.304564Z

Log Message:
-----------
https://bugs.adobe.com/jira/browse/FLEXDMV-2489
Made the specificity of AdvancedDataGridColumn as 10 so that it can get sorted correctly.
QE notes: Test CSS type selectors and class selectors - combination of headerStyleName in AdvancedDataGridColumn and Type selector for AdvancedDataGridHeaderRenderer
Doc notes: No
Bugs: https://bugs.adobe.com/jira/browse/FLEXDMV-2489
Reviewer: Sreeni
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridColumn.as

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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridColumn.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridColumn.as
@@ -1623,6 +1623,16 @@
         }

     }
+
+	/**
+	 * @private
+	 */
+	override public function get specificity():int
+	{
+		// Return 10 as there is a sorting mechanism based on specificity now
+		// and there could be ancestor specificity also!!
+		return 10;
+	}

     //--------------------------------------------------------------------------
     //
@@ -1809,7 +1819,7 @@

         return " ";
     }
-
+
     /**
      * @private
      *