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

--- frameworks/projects/charts/src/mx/charts/chartClasses/CartesianTransform.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/CartesianTransform.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.charts.chartClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 16375
Author:   dloverin@adobe.com
Date:     2010-06-01T14:55:16.969621Z

Log Message:
-----------
SparkDownloadProgressBar fixes.

SparkDownloadProgressBar:
Reset _startTime in initProgressHandler() so the elapsedTime check  in showDisplayForInit() is relative to when init started, not the start of the download. This keeps the download progress bar from popping up just before the application loads.

DownloadProgressBar:
If an rsl size is zero then provide an average rsl size so we initially have a rough estimate of how much we have to download. Until an rsl actually starts to load its size will be zero. So initially the total download size is just the application size. Then as the rsls start to load the total download size continues to increase but the progress bar is already at 100%. Providing an rsl estimate gives the progress bar something to move forward to. For small applications the progress bar didn’t used to show up even when the 700 ms threshold had elapsed.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Glenn
Tests run: checkintests, Mustella DownloadProgressBar
Is noteworthy for integration: No

Modified Paths:
--------------
<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/preloaders/SparkDownloadProgressBar.as</path>

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

--- frameworks/projects/framework/src/mx/preloaders/SparkDownloadProgressBar.as
+++ frameworks/projects/framework/src/mx/preloaders/SparkDownloadProgressBar.as
@@ -763,6 +763,8 @@
     protected function showDisplayForDownloading(elapsedTime:int,
                                               event:ProgressEvent):Boolean
     {
+//        trace("showDisplayForDownloading: elapsedTime = " + elapsedTime);
+//        trace("showDisplayForDownloading:" + event.bytesLoaded + " " +  event.bytesTotal + " " +  (event.bytesLoaded < event.bytesTotal / 2));
         return elapsedTime > 700 &&
             event.bytesLoaded < event.bytesTotal / 2;
     }
@@ -787,6 +789,7 @@
      */
     protected function showDisplayForInit(elapsedTime:int, count:int):Boolean
     {
+//        trace("showDisplayForInit: elapsedTime = " + elapsedTime + " count = " + count);
         return elapsedTime > 300 && count == 2;
     }

@@ -974,6 +977,7 @@
      */
     protected function rslCompleteHandler(event:RSLEvent):void
     {
+        //trace("rsl " + event.rslIndex + " of " + event.rslTotal);
     }

     /**
@@ -1036,7 +1040,12 @@
      */
     protected function initProgressHandler(event:Event):void
     {
+        // make elapsed time relative the time we started init.
+        if (_initProgressCount == 0)
+            _startTime = getTimer();
+
         var elapsedTime:int = getTimer() - _startTime;
+
         _initProgressCount++;

         if (!_showingDisplay &&


Transferred from the Adobe Open Source Subversion Repository

Revision: 12733
Author:   smgilson@adobe.com
Date:     2009-12-09T18:19:48.608649Z

Log Message:
-----------
ASDoc l10n prep

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/treeClasses/MXTreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IRepeater.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/listClasses/MXItemRenderer.as</path>

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

--- frameworks/projects/spark/src/mx/controls/treeClasses/MXTreeItemRenderer.as
+++ frameworks/projects/spark/src/mx/controls/treeClasses/MXTreeItemRenderer.as
@@ -83,8 +83,10 @@

     /**
      *  If supplied, the component that will be used as the Tree's
-     *  disclosure control.  Clicking on this control will result
-     *  in TreeEvents and the click event will not be propagated
+     *  disclosure control.
+     *  Clicking on this control dispatches
+     *  the tree events, such as itemClose and itemOpen,
+     *  and the click event is not propagated
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 18173
Author:   jasonsj@adobe.com
Date:     2010-10-15T17:03:20.801634Z

Log Message:
-----------
Mobile Theme Initial check-in

* New light-look visuals from XD
* Changed airmobile-config.xml to use standalone Mobile theme instead of Spark overlay
* Added theme="spark, mobile" where spark was already white-listed and support is implemented and/or planned for Mobile/spark.css (see https://zerowing.corp.adobe.com/display/flexmobile/Mobile+Theme+Styles+Spec)
* MobileSkin has symbolColor and chromeColor support. Override beginChromeColorFill and drawChromeColor when defining custom chromeColor visuals.
* CheckBox and RadioButton now have chromeColor and symbolColor support
* Added textShadowColor and textShadowAlpha support to Button and ActionBar
* Added chromeColor support to HScrollBar and VScrollBar

QE notes: All mobile skins have been updaetd.
Doc notes: Update mobile skinning documentation for new APIs
Bugs:
SDK-28043 Investigate usage of "viewWidth", "viewHeight" for the Flex Mobile Skin Assets
SDK-27609 Mobile scroll bar skins should use chromeColor
SDK-27646 cornerradius has no effect on button in mobile application
Reviewer: gruehle
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/VScrollBarTrackSkin.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/defaults.css</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/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_symbol.fxg</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/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarButtonSkinBase.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/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TextInput_border.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_down.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.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/assets/RadioButton_upSelected.fxg</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/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_down.fxg</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/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_downSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/themes/Mobile/spark.css</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/airmobile-config.xml</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/assets/RadioButton_downSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
@@ -64,7 +64,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="focusAlpha", type="Number", inherit="no", theme="spark", minValue="0.0", maxValue="1.0")]
+[Style(name="focusAlpha", type="Number", inherit="no", theme="spark, mobile", minValue="0.0", maxValue="1.0")]

 /**
  *  @copy spark.components.supportClasses.GroupBase#style:focusColor
@@ -76,7 +76,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="focusColor", type="uint", format="Color", inherit="yes", theme="spark")]
+[Style(name="focusColor", type="uint", format="Color", inherit="yes", theme="spark, mobile")]

 /**
  *  Class or instance to use as the default icon.
@@ -109,7 +109,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="iconPlacement", type="String", enumeration="top,bottom,right,left", inherit="no", theme="spark")]
+[Style(name="iconPlacement", type="String", enumeration="top,bottom,right,left", inherit="no", theme="spark, mobile")]

 /**
  *  When there is a touchDelay, and the touch interaction is complete (user mouseUp) before


added filter and reverse functionality

added filter and reverse functionality

Change-Id: I20be2ccd72728343c4ad69027c32870ad6fff12a

--- WeaveUI/src/weave/ui/VariableListController.as
+++ WeaveUI/src/weave/ui/VariableListController.as
@@ -159,6 +159,8 @@
 		private const _dynamicObjectWatcher:LinkableWatcher = newLinkableChild(this, LinkableWatcher, updateDataProvider, true);
 		private const _childListWatcher:LinkableWatcher = newLinkableChild(this, LinkableWatcher, updateDataProvider);
 		private var _labelFunction:Function = null;
+		private var _filterFunction:Function = null;
+		private var _reverse:Boolean = false;

 		public function get hashMap():ILinkableHashMap
 		{
@@ -210,7 +212,12 @@
 			else if (hashMap)
 			{
 				setNameColumnHeader();
-				_editor.dataProvider = hashMap.getObjects();
+				var objects:Array = hashMap.getObjects();
+				if (_filterFunction != null)
+					objects = objects.filter(_filterFunction);
+				if (_reverse)
+					objects = objects.reverse();
+				_editor.dataProvider = objects;
 			}
 			else
 				_editor.dataProvider = null;
@@ -302,6 +309,23 @@
 			refreshLabels();
 		}

+		public function set filterFunction(value:Function):void
+		{
+			if (value != null && value.length < 3)
+				value = function(item:*, i:*, a:*):* { return value(item); }
+			_filterFunction = value;
+			updateDataProvider();
+		}
+
+		public function set reverse(value:Boolean):void
+		{
+			if (_reverse != value)
+			{
+				_reverse = value;
+				updateDataProvider();
+			}
+		}
+
 		private function updateHashMapNameOrder():void
 		{
 			if (!_editor)
@@ -319,6 +343,8 @@
 					if (object)
 						newNameOrder[i] = hashMap.getName(object);
 				}
+				if (_reverse)
+					newNameOrder.reverse();
 				hashMap.setNameOrder(newNameOrder);
 			}
 		}


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 18791
Author:   clucier@adobe.com
Date:     2010-11-23T02:20:29.092523Z

Log Message:
-----------
Replacing Animate with Move, as it increases full screen transitions from around 20 fps to 40 fps in some instances.

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
@@ -430,15 +430,15 @@
         // Validate to ensure our snapshots are rendered.
         transitionGroup.validateNow();

-        // Construction animation sequence.
-        var animation:Animate = new Animate();
-        var vector:Vector.<MotionPath> = new Vector.<MotionPath>();
-        vector.push(new SimpleMotionPath(animatedProperty, null, null, slideDistance));
-        animation.motionPaths = vector;
+        // Construct animation sequence.
+        var animation:Move = new Move();
+        if (verticalTransition)
+            animation.yBy = slideDistance;
+        else
+            animation.xBy = slideDistance;
+        animation.targets = slideTargets;
         animation.easer = easer;
-        animation.targets = slideTargets;
         animation.duration = duration;
-
         return animation;
     }


Fix RTE described in FLEX-33385. titeText is optional part.

git-svn-id: f8d5f742b420a6a114b58659a4f85f335318e53c@1454944 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/airspark/src/spark/components/windowClasses/TitleBar.as
+++ frameworks/projects/airspark/src/spark/components/windowClasses/TitleBar.as
@@ -448,7 +448,9 @@

         if (titleChanged)
         {
-            titleText.text = _title;
+			if (titleText) {
+            	titleText.text = _title;
+			}
             titleChanged = false;
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20003
Author:   eday@adobe.com
Date:     2011-01-28T18:58:55.975754Z

Log Message:
-----------
Bug fixes in Scroller and SliderBase

- Better handling of device orientation changes and invalid scroll positions
- Drag threshhold values ("slop") are DPI-independent
- Added event thinning to sliders

QE notes:
Doc notes:
Bugs: SDK-29281, SDK-29223, SDK-29213, SDK-29201
Reviewer: Glenn, Ryan
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -16,8 +16,10 @@
 import flash.events.Event;
 import flash.events.KeyboardEvent;
 import flash.events.MouseEvent;
+import flash.events.TimerEvent;
 import flash.geom.Point;
 import flash.ui.Keyboard;
+import flash.utils.Timer;

 import mx.core.IDataRenderer;
 import mx.core.IFactory;
@@ -259,6 +261,32 @@
      */
     private var clickOffset:Point;

+    /**
+     *  @private
+     *  Local coordinates of most recent mouse move.
+     */
+    private var mostRecentMousePoint:Point;
+
+    /**
+     *  @private
+     *  Timer used to do drag scrolling.
+     */
+    private var dragTimer:Timer = null;
+
+    /**
+     *  @private
+     *  True when there's a pending mouse move (stored in mostRecentMousePoint)
+     *  that needs to be handled in the dragTimer handler.
+     */
+    private var dragPending:Boolean = false;
+
+    /**
+     *  @private
+     *  Maximum number of times per second we will change the slider position
+     *  and update the display while dragging.
+     */
+    private static const MAX_DRAG_RATE:Number = 30;
+
     //--------------------------------------------------------------------------
     //
     //  Overridden properties
@@ -589,7 +617,7 @@
     //  Overridden event handlers
     //
     //--------------------------------------------------------------------------
-
+
     /**
      *  @private
      */
@@ -635,6 +663,45 @@
             updateDataTip(dataTipInstance, dataTipInitialPosition);
         }
     }
+
+    /**
+     *  @private
+     */
+    private function handleMousePoint(p:Point):void
+    {
+        var newValue:Number = pointToValue(p.x - clickOffset.x, p.y - clickOffset.y);
+        newValue = nearestValidValue(newValue, snapInterval);
+
+        if (newValue != pendingValue)
+        {
+            dispatchEvent(new TrackBaseEvent(TrackBaseEvent.THUMB_DRAG));
+            if (getStyle("liveDragging") === true)
+            {
+                setValue(newValue);
+                dispatchEvent(new Event(Event.CHANGE));
+            }
+            else
+            {
+                pendingValue = newValue;
+            }
+        }
+
+        if (dataTipInstance && showDataTip)
+        {
+            dataTipInstance.data = formatDataTipText(pendingValue);
+
+            // Force the dataTip to render so that we have the correct size since
+            // updateDataTip might need the size
+            var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
+            if (tipAsUIComponent)
+            {
+                tipAsUIComponent.validateNow();
+                tipAsUIComponent.setActualSize(tipAsUIComponent.getExplicitOrMeasuredWidth(),tipAsUIComponent.getExplicitOrMeasuredHeight());
+            }
+
+            updateDataTip(dataTipInstance, dataTipInitialPosition);
+        }
+    }

     /**
      *  @private
@@ -643,49 +710,81 @@
     {
         if (!track)
             return;
-
-        var p:Point = track.globalToLocal(new Point(event.stageX, event.stageY));
-        var newValue:Number = pointToValue(p.x - clickOffset.x, p.y - clickOffset.y);
-        newValue = nearestValidValue(newValue, snapInterval);
-
-        if (newValue != pendingValue)
-        {
-            dispatchEvent(new TrackBaseEvent(TrackBaseEvent.THUMB_DRAG));
-            if (getStyle("liveDragging") === true)
-            {
-                setValue(newValue);
-                dispatchEvent(new Event(Event.CHANGE));
-            }
-            else
-            {
-                pendingValue = newValue;
-            }
-        }
-
-        if (dataTipInstance && showDataTip)
-        {
-            dataTipInstance.data = formatDataTipText(pendingValue);
-
-            // Force the dataTip to render so that we have the correct size since
-            // updateDataTip might need the size
-            var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
-            if (tipAsUIComponent)
-            {
-                tipAsUIComponent.validateNow();
-                tipAsUIComponent.setActualSize(tipAsUIComponent.getExplicitOrMeasuredWidth(),tipAsUIComponent.getExplicitOrMeasuredHeight());
-            }
-
-            updateDataTip(dataTipInstance, dataTipInitialPosition);
-        }
-
-        event.updateAfterEvent();
-    }
-
+
+        mostRecentMousePoint = track.globalToLocal(new Point(event.stageX, event.stageY));
+        if (!dragTimer)
+        {
+            dragTimer = new Timer(1000/MAX_DRAG_RATE, 0);
+            dragTimer.addEventListener(TimerEvent.TIMER, dragTimerHandler);
+        }
+
+        if (!dragTimer.running)
+        {
+            // This changes the slider value and invalidates the display list.
+            handleMousePoint(mostRecentMousePoint);
+            event.updateAfterEvent();
+
+            // Start the periodic timer that will do subsequent drag
+            // scrolling if necessary.
+            dragTimer.start();
+
+            // No additional mouse events received yet, so no scrolling pending.
+            dragPending = false;
+        }
+        else
+        {
+            dragPending = true;
+        }
+    }
+
+    /**
+     *  @private
+     *  Used to periodically change the slider value during a drag gesture.
+     */
+    private function dragTimerHandler(event:TimerEvent):void
+    {
+        if (dragPending)
+        {
+            // This changes the slider value and invalidates the display list.
+            handleMousePoint(mostRecentMousePoint);
+
+            // Call updateAfterEvent() to make sure it looks smooth
+            event.updateAfterEvent();
+
+            // No scroll is pending now.
+            dragPending = false;
+        }
+        else
+        {
+            // The timer elapsed with no mouse events, so we'll
+            // just turn the timer off for now.  It will get turned
+            // back on if another mouse event comes in.
+            dragTimer.stop();
+        }
+    }
+
     /**
      *  @private
      */
     override protected function system_mouseUpHandler(event:Event):void
     {
+        if (dragTimer)
+        {
+            if (dragPending)
+            {
+                // This changes the slider value and invalidates the display list.
+                handleMousePoint(mostRecentMousePoint);
+
+                // Call updateAfterEvent() to make sure it looks smooth
+                if (event is MouseEvent)
+                    MouseEvent(event).updateAfterEvent();
+            }
+            // The drag gesture is over, so we no longer need the timer.
+            dragTimer.stop();
+            dragTimer.removeEventListener(TimerEvent.TIMER, dragTimerHandler);
+            dragTimer = null;
+        }
+
         if ((getStyle("liveDragging") === false) && (value != pendingValue))
         {
             setValue(pendingValue);


Stop DataGridView from resizing if the size of the strand is 0x0.

--- frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/DataGridView.as
+++ frameworks/projects/HTML/asjs/src/org/apache/flex/html/beads/DataGridView.as
@@ -166,15 +166,26 @@
 		 */
 		private function handleSizeChanges(event:Event):void
 		{
+			var useWidth:Number = _listArea.width;
+			var useHeight:Number = _listArea.height;
+
+			if (host.width > 0) {
+				useWidth = host.width;
+			}
+
 			_header.x = 0;
 			_header.y = 0;
-			_header.width = host.width;
+			_header.width = useWidth;
 			_header.height = 25;
+
+			if (host.height > 0) {
+				useHeight = host.height - _header.height;
+			}

 			_listArea.x = 0;
 			_listArea.y = 26;
-			_listArea.width = host.width;
-			_listArea.height = host.height - _header.height;
+			_listArea.width = useWidth;
+			_listArea.height = useHeight;

 			var sharedModel:IDataGridModel = _strand.getBeadByType(IBeadModel) as IDataGridModel;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7836
Author:   chaase@adobe.com
Date:     2009-06-15T14:37:21.379918Z

Log Message:
-----------
PARB changes for effects. This includes various property renames, a couple of class renames, moving 3 classes to a sub-package, and various doc cleanups. This also includes changing a handful of Array properties to typed Vectors.

QE: This breaks Mustella due to the renames
Doc: Docs will need to be updated to reflect the changes as well
Bugs: None
Reviewer: Jason
Tests: checkintests, Thermo's transitionbug test

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/utils/BitmapUtil.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as" copyfrom-rev="7748" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EasingFraction.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/KeyFrame.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/RGBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/RepeatBehavior.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as" copyfrom-rev="7748" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/IInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/CallActionInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as" copyfrom-rev="7748" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/CrossFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as" copyfrom-rev="7748" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/HSBColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/CrossFade.pbk</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/WipeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/ResizeInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/ResizeInstance.as
@@ -10,11 +10,14 @@
 ////////////////////////////////////////////////////////////////////////////////
 package spark.effects.supportClasses
 {
+import __AS3__.vec.Vector;
+
 import flash.events.Event;

 import mx.core.IUIComponent;

-import spark.effects.SimpleMotionPath;
+import spark.effects.animation.MotionPath;
+import spark.effects.animation.SimpleMotionPath;

 /**
  *  The ResizeInstance class implements the instance class
@@ -250,13 +253,13 @@
     {
         calculateDimensionChanges();

-        motionPaths =
-            [new SimpleMotionPath("width", widthFrom, widthTo, duration, widthBy),
-             new SimpleMotionPath("height", heightFrom, heightTo, duration, heightBy)];
+        motionPaths = new <MotionPath>[
+            new SimpleMotionPath("width", widthFrom, widthTo, duration, widthBy),
+            new SimpleMotionPath("height", heightFrom, heightTo, duration, heightBy)];

         // Also animate any size-related constraints that change between
         // transition states
-        if (propertyChanges && !disableConstraints)
+        if (propertyChanges && !disableLayout)
         {
             var wStart:* = propertyChanges.start["width"];
             var wEnd:* = propertyChanges.end["width"];


Add finding of copyable fields in superclasses.

--- dolly-framework/src/main/actionscript/dolly/Copier.as
+++ dolly-framework/src/main/actionscript/dolly/Copier.as
@@ -55,7 +55,18 @@
 	}

 	dolly_internal static function findCopyableFieldsForType(type:Type):Vector.<Field> {
-		const result:Vector.<Field> = getCopyableFieldsOfType(type);
+		var result:Vector.<Field> = getCopyableFieldsOfType(type);
+
+		var superType:Type;
+		var superTypeCopyableFields:Vector.<Field>;
+
+		for each(var superTypeName:String in type.extendsClasses) {
+			superType = Type.forName(superTypeName);
+			superTypeCopyableFields = getCopyableFieldsOfType(superType);
+			if (superTypeCopyableFields.length > 0) {
+				result = result.concat(superTypeCopyableFields);
+			}
+		}

 		return result;
 	}


Rename argument's name.

Rename argument's name.

--- dolly-framework/src/main/actionscript/dolly/Copier.as
+++ dolly-framework/src/main/actionscript/dolly/Copier.as
@@ -16,7 +16,7 @@

 public class Copier {

-	private static function getCopyableFieldsOfType(type:Type, foundFieldsMap:Dictionary):Vector.<Field> {
+	private static function getCopyableFieldsOfType(type:Type, foundFields:Dictionary):Vector.<Field> {
 		const result:Vector.<Field> = new Vector.<Field>();

 		var variable:Variable;
@@ -25,16 +25,16 @@
 		const isTypeCloneable:Boolean = type.hasMetadata(MetadataName.COPYABLE);
 		if (isTypeCloneable) {
 			for each(variable in type.variables) {
-				if (!foundFieldsMap[variable.name] && !variable.isStatic) {
-					foundFieldsMap[variable.name] = variable;
+				if (!foundFields[variable.name] && !variable.isStatic) {
+					foundFields[variable.name] = variable;
 					result.push(variable);
 				}
 			}
 			for each(accessor in type.accessors) {
-				if (!foundFieldsMap[accessor.name]
+				if (!foundFields[accessor.name]
 						&& !accessor.isStatic
 						&& accessor.access == AccessorAccess.READ_WRITE) {
-					foundFieldsMap[accessor.name] = accessor;
+					foundFields[accessor.name] = accessor;
 					result.push(accessor);
 				}
 			}
@@ -43,19 +43,19 @@
 			for each(var metadataContainer:IMetadataContainer in metadataContainers) {
 				if (metadataContainer is Variable) {
 					variable = metadataContainer as Variable;
-					if (!foundFieldsMap[variable.name]
+					if (!foundFields[variable.name]
 							&& !variable.isStatic
 							&& variable.hasMetadata(MetadataName.COPYABLE)) {
-						foundFieldsMap[variable.name] = variable;
+						foundFields[variable.name] = variable;
 						result.push(variable);
 					}
 				} else if (metadataContainer is Accessor) {
 					accessor = metadataContainer as Accessor;
-					if (!foundFieldsMap[accessor.name]
+					if (!foundFields[accessor.name]
 							&& !accessor.isStatic
 							&& accessor.access == AccessorAccess.READ_WRITE
 							&& accessor.hasMetadata(MetadataName.COPYABLE)) {
-						foundFieldsMap[accessor.name] = accessor;
+						foundFields[accessor.name] = accessor;
 						result.push(accessor);
 					}
 				}