Transferred from the Adobe Open Source Subversion Repository

Revision: 3925
Author:   jimurphy@adobe.com
Date:     2008-10-28T15:28:25.006190Z

Log Message:
-----------
Merged gumbo_alpha revisions 3857-3860,3870,3872,3874-3876,3881,3884,3886,3889,3891,3893,3895,3908,3912 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxRotateEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxFadeEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/CubicBezierSegment.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/gumbo_alpha/frameworks/projects/flex4/src/mx/skins/spark/FxFocusSkin.as" copyfrom-rev="3895" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxFocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxVSliderExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/LineSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxListExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxMoveEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/PathSegment.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/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout_conversion.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxAnimateColorEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout_core.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxAnimateEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxCheckBoxExample.mxml</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/gumbo_alpha/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/DataGroupExample.mxml" copyfrom-rev="3895" action="A">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/DataGroupExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleDeclaration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/gumbo_alpha/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/GroupExample.mxml" copyfrom-rev="3895" action="A">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/GroupExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/QuadraticBezierSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxNumericStepperExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/effects/examples/FxResizeEffectExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxButtonExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxResize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxToggleButtonExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxSpinnerExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/PropertyValuesHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout_edit.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/TextViewExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxMove.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxHSliderExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -18,12 +18,14 @@

 import mx.core.IFactory;
 import mx.core.IFlexModuleFactory;
+import mx.core.IInvalidating;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.components.Skin;
 import mx.events.PropertyChangeEvent;
 import mx.managers.ISystemManager;
 import mx.modules.ModuleManager;
+import flash.display.DisplayObject;

 use namespace mx_internal;

@@ -180,6 +182,9 @@
     {
         if (skin)
             skin.setActualSize(unscaledWidth, unscaledHeight);
+
+        if (focusObj && focusObj is IInvalidating)
+            IInvalidating(focusObj).invalidateDisplayList();
     }

     /**
@@ -196,6 +201,38 @@
         }

         super.styleChanged(styleProp);
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal var focusObj:DisplayObject;
+
+    override public function drawFocus(isFocused:Boolean):void
+    {
+        if (isFocused)
+        {
+            // For some composite components, the focused object may not
+            // be "this". If so, we don't want to draw the focus.
+            if (focusManager.getFocus() != this)
+                return;
+
+            if (!focusObj)
+            {
+                var focusSkinClass:Class = getStyle("focusSkin");
+
+                if (focusSkinClass)
+                    focusObj = new focusSkinClass();
+
+                super.addChildAt(focusObj, 0);
+            }
+        }
+        else
+        {
+            if (focusObj)
+                super.removeChild(focusObj);
+            focusObj = null;
+        }
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3648
Author:   gruehle@adobe.com
Date:     2008-10-15T16:11:48.480801Z

Log Message:
-----------
Addendum to revision 3611 to protect against null systemManager.

Reviewer: Ryan

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -614,7 +614,9 @@
         }
         else
         {
-            myApplicationDomain = systemManager.loaderInfo.applicationDomain;
+            myApplicationDomain = systemManager ?
+                                    systemManager.loaderInfo.applicationDomain :
+                                    ApplicationDomain.currentDomain;
         }

         var type:Class = myApplicationDomain.getDefinition(className) as Class;


FIXED - FLEX-34230 StageText skins prevents garbage collection of component with TextInputs and TextAreas now, ScrollableStageText does not prevent GC anymore

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as
@@ -367,7 +367,7 @@
         super();

         _multiline = multiline;
-        stageText = StageTextPool.current.acquireStageText(this);
+        stageText = StageTextPool.current.acquireStageText(multiline);
         stageText.visible = false;

         if (!defaultStyles)
@@ -452,6 +452,11 @@
      *  editing.
      */
     protected var stageText:StageText;
+
+    /** @private
+     * last instance of stage text to be reused if added again to stage
+     */
+    protected var savedStageText: StageText = null;

     /**
      *  Flag indicating one or more styles have changed. If invalidateStyleFlag
@@ -1717,8 +1722,10 @@
         var needsRestore:Boolean = false;
         if (stageText == null)
         {
-            needsRestore = !StageTextPool.current.hasCachedStageText(this);
-            stageText = StageTextPool.current.acquireStageText(this);
+            stageText = StageTextPool.current.acquireStageText(multiline, savedStageText);
+            if (stageText !==  savedStageText)
+                needsRestore = true ;  // returned a different stageText, so needs to restore its properties
+            savedStageText = null;  // clear savedStageText
             stageText.visible = false;
         }

@@ -1788,7 +1795,8 @@
         stageText.removeEventListener(KeyboardEvent.KEY_DOWN, stageText_keyDownHandler);
         stageText.removeEventListener(KeyboardEvent.KEY_UP, stageText_keyUpHandler);

-        StageTextPool.current.releaseStageText(this, stageText);
+        StageTextPool.current.releaseStageText(stageText, multiline);
+        savedStageText = stageText;   // save for potential recycling
         stageText = null;

         if (proxy != null)
@@ -1999,11 +2007,22 @@

 import flash.events.TimerEvent;
 import flash.text.StageText;
-import flash.utils.Dictionary;
+import flash.text.StageTextInitOptions;
 import flash.utils.Timer;
-import flash.text.StageTextInitOptions;
-import spark.components.supportClasses.ScrollableStageText;
-
+
+/**  @private
+ * StageTextPool maintains a pool a StageText to avoid allocating a new StageText each time a TextInput  is added to stage.
+ *
+ * StageText are removed from the pool when a TextInput  is added to the stage and added back when it removed from stage.
+ *   If this causes the pool to grow
+ *  larger than its reserve size, this starts a timer to check and reduce
+ *  the size of the pool poolTimerInterval milliseconds later.
+ *  StageText are disposed before being purged  from the pool.
+ *
+ * Not that SST keeps a reference to its last used StageText in savedStageText property, when it's removed from stage.
+ * If the SST is added back to stage, it can reuse its saved StageText if it's also still in the pool (which means it has not been disposed, or used by anoter SST).
+ *
+ */
 class StageTextPool
 {
     //--------------------------------------------------------------------------
@@ -2030,11 +2049,11 @@
         return _current;
     }

-      //--------------------------------------------------------------------------
-        //
-        //  Constructor
-        //
-        //--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------

     /**
      * @private
@@ -2048,8 +2067,6 @@
         //
         //--------------------------------------------------------------------------

-    private  var map_StyleableStageText_to_StageText:Dictionary = new Dictionary(true);
-    private  var map_StageText_to_StyleableStageText:Dictionary = new Dictionary(true);

     private  var multilinePool:Vector.<StageText> = new Vector.<StageText>();
     private  var multilinePoolTimer:Timer;
@@ -2066,32 +2083,34 @@
     //--------------------------------------------------------------------------

     /**
-     *  Acquires a StageText and removes it from the pool. If the host
-     *  StyleableStageText2 has recently released a StageText and that StageText
-     *  is still in the pool, that StageText will be returned.
-     */
-    public  function acquireStageText(host:ScrollableStageText):StageText
-    {
-        var result:StageText = map_StyleableStageText_to_StageText[host];
-
-        if (!result)
-        {
-            if (host.multiline)
+     *  Acquires a StageText and removes it from the pool.
+     *  if savedStageText is not null, will use it only if it is still in the pool (which means not disposed, and not used by someone else)
+     *  if savedStageText is null => always create a new instance.
+     */
+    public  function acquireStageText(multiline: Boolean, savedStageText: StageText = null):StageText
+    {
+        var result: StageText = null;
+        var pool: Vector.<StageText> = multiline ? multilinePool : singleLinePool;
+
+        if (savedStageText != null)
+        {
+            // reuse it if still in the pool.
+            var index: int;
+            index = pool.indexOf(savedStageText);
+            if (index >= 0)
             {
-                if (multilinePool.length == 0)
-                    while (multilinePool.length < poolReserve)
-                        multilinePool.push(new StageText(new StageTextInitOptions(true)));
-
-                result = multilinePool.pop();
+                result = savedStageText;
+                pool.splice(index, 1);
             }
-            else
-            {
-                if (singleLinePool.length == 0)
-                    while (singleLinePool.length < poolReserve)
-                        singleLinePool.push(new StageText(new StageTextInitOptions(false)));
-
-                result = singleLinePool.pop();
-            }
+        }
+
+        // not found or savedStageText was null,  always  create new
+        if (result == null)
+        {
+            if (pool.length == 0)
+                while (pool.length < poolReserve)
+                    pool.push(new StageText(new StageTextInitOptions(multiline)));
+            result = pool.pop();

             // The first time a StageText is acquired, it's guaranteed to have been
             // newly-created. Take that opportunity to stash away the StageText's
@@ -2132,50 +2151,20 @@
                     result[prop] = cleanProperties[prop];
             }
         }
-        else
-        {
-            var index:int;
-
-            if (host.multiline)
-            {
-                index = multilinePool.indexOf(result);
-                multilinePool.splice(index, 1);
-            }
-            else
-            {
-                index = singleLinePool.indexOf(result);
-                singleLinePool.splice(index, 1);
-            }
-        }
-
-        uncacheStageText(result);
-
         return result;
     }

-    /**
-     *  Returns true if the StageText that would be returned by acquireStageText
-     *  for the given StyleableStageText2 will be the same as the last StageText
-     *  it released.
-     */
-    public  function hasCachedStageText(host:ScrollableStageText):Boolean
-    {
-        return map_StyleableStageText_to_StageText[host] !== undefined;
-    }
-
-    /**
-     *  Puts a StageText back into the pool and caches the StyleableStageText2/
-     *  StageText pair so the same StageText may be returned if the
-     *  StyleableStageText2 re-acquires it. If this causes the pool to grow
+
+    /**
+     *  Puts a StageText back into the pool  when SST is removed from stage.
+     *  (note: the StageText has also been saved in the SST)
+     *  If this causes the pool to grow
      *  larger than its reserve size, this starts a timer to check and reduce
      *  the size of the pool poolTimerInterval milliseconds later.
      */
-    public  function releaseStageText(host:ScrollableStageText, stageText:StageText):void
-    {
-        map_StyleableStageText_to_StageText[host] = stageText;
-        map_StageText_to_StyleableStageText[stageText] = host;
-
-        if (host.multiline)
+    public function releaseStageText(stageText: StageText, multiline: Boolean): void
+    {
+        if (multiline)
         {
             multilinePool.push(stageText);

@@ -2222,39 +2211,14 @@
     /**
      *  Return the pool to its reserve size.
      */
-    private  function shrinkPool(multiline:Boolean):void
-    {
-        var oldStageText:StageText;
-
-        if (multiline)
-        {
-            while (multilinePool.length > poolReserve)
-            {
-                oldStageText = multilinePool.shift();
-                uncacheStageText(oldStageText);
-                oldStageText.dispose();
-            }
-        }
-        else
-        {
-            while (singleLinePool.length > poolReserve)
-            {
-                oldStageText = singleLinePool.shift();
-                uncacheStageText(oldStageText);
-                oldStageText.dispose();
-            }
-        }
-    }
-
-    /**
-     *  Remove a StageText and its last known StyleableStageText2 host from the
-     *  cache.
-     */
-    private  function uncacheStageText(stageText:StageText):void
-    {
-        var host:ScrollableStageText = map_StageText_to_StyleableStageText[stageText];
-
-        delete map_StyleableStageText_to_StageText[host];
-        delete map_StageText_to_StyleableStageText[stageText];
+    private function shrinkPool(multiline: Boolean): void
+    {
+        var oldStageText: StageText;
+        var pool: Vector.<StageText> = multiline ? multilinePool : singleLinePool;
+        while (pool.length > poolReserve)
+        {
+            oldStageText = pool.shift();
+            oldStageText.dispose();
+        }
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
663 paths were modified

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

--- frameworks/projects/framework/src/mx/core/RSLItem.as
+++ frameworks/projects/framework/src/mx/core/RSLItem.as
@@ -132,6 +132,11 @@
      *  @param url location of RSL to load
      *
      *  @param rootURL provides the url used to locate relative RSL urls.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function RSLItem(url:String, rootURL:String = null)
     {
@@ -166,6 +171,11 @@
      *
      *  @param rslErrorHandler Receives RSLEvent.RSL_ERROR events.
      *  May be null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function load(progressHandler:Function,
                          completeHandler:Function,


tweaked sysdelay descr

tweaked sysdelay descr

--- src/Modules/SysDelayClock.as
+++ src/Modules/SysDelayClock.as
@@ -40,7 +40,7 @@

 		override public function getDescription():String {
 			var edgeLength:int = configuration.value;
-			return "Outputs "+EDGE+" for the last "+edgeLength+" ticks out of every "+(U.state ? U.state.time.clockPeriod : '-')+"; outputs "+NO_EDGE+" the rest of the time."
+			return "Outputs "+EDGE+" for the last "+(edgeLength != 1 ? edgeLength + ' ticks' : 'tick')+" out of every "+(U.state ? U.state.time.clockPeriod : '-')+"; outputs "+NO_EDGE+" the rest of the time."
 		}

 		protected function get delayLength():int {


Check to make sure the method in the test-ordering actually, you know, exists, before trying to use it.

--- flash/org/windmill/astest/ASTest.as
+++ flash/org/windmill/astest/ASTest.as
@@ -173,6 +173,10 @@
         // Run the test
         // -----------
         try {
+          if (!(test.methodName in test.instance)) {
+            throw new Error('"' + test.methodName +
+                '" is not a valid method in' + test.instance.toString());
+          }
           test.instance[test.methodName].call(test.instance);
         }
         catch (e:Error) {
@@ -235,11 +239,13 @@
         var key:String;
         if ('order' in item.instance) {
           for each (key in item.instance.order) {
-            if (!key in methods) {
-              throw new Error(key + ' is not a method in ' + item.className);
+            // If the item specified in the 'order' list is an actual
+            // method, add it to the list -- if it doesn't actually exist
+            // (e.g., if the method has been commented out), just ignore it
+            if (key in methods) {
+              currTestList.push(createTestItem(methods[key], key));
+              delete methods[key];
             }
-            currTestList.push(createTestItem(methods[key], key));
-            delete methods[key];
           }
         }
         // Run any other methods in whatever order


Transferred from the Adobe Open Source Subversion Repository

Revision: 19724
Author:   jasonsj@adobe.com
Date:     2011-01-12T01:07:20.451197Z

Log Message:
-----------
Moved ActionBar font color style declaration to #titleDisplay part and subclasses of ButtonBase
Replaced MobileSkin usage of layoutMeasuredWidth/Height with minWidth/Height

QE notes: Some mustella baselines for ActionBar custom content will need to be regenerated. In particular, usage of TextInput with text content.
Doc notes:
Bugs:
SDK-28948 The default color for text in TextInput on ActionBar is white so it looks invisible
SDK-28953 Button width not adjusted as expected when changing percentWidth at runtime
Reviewer: rfrishbe, chiedozi
Tests run: checkintests
Is noteworthy for integration: No

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/supportClasses/TextAreaVScrollBarSkin.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/TextInputSkin.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/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationBackButtonSkin.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/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextAreaHScrollBarSkin.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/supportClasses/TabbedViewNavigatorButtonBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionRoundedButtonSkin.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>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as
@@ -75,8 +75,8 @@
                 layoutPaddingBottom = 10;
                 layoutPaddingLeft = 20;
                 layoutPaddingRight = 20;
-                layoutMeasuredWidth = 106;
-                layoutMeasuredHeight = 86;
+                minWidth = 106;
+                minHeight = 86;

                 break;
             }
@@ -87,8 +87,8 @@
                 layoutPaddingBottom = 8;
                 layoutPaddingLeft = 16;
                 layoutPaddingRight = 16;
-                layoutMeasuredWidth = 81;
-                layoutMeasuredHeight = 65;
+                minWidth = 81;
+                minHeight = 65;

                 break;
             }
@@ -100,8 +100,8 @@
                 layoutPaddingBottom = 5;
                 layoutPaddingLeft = 10;
                 layoutPaddingRight = 10;
-                layoutMeasuredWidth = 53;
-                layoutMeasuredHeight = 43;
+                minWidth = 53;
+                minHeight = 43;

                 break;
             }
@@ -132,17 +132,6 @@
     //--------------------------------------------------------------------------

     /**
-     *  @private
-     */
-    override protected function measure():void
-    {
-        super.measure();
-
-        measuredWidth = Math.max(layoutMeasuredWidth, measuredWidth);
-        measuredHeight =  Math.max(layoutMeasuredHeight, measuredHeight);
-    }
-
-    /**
      *  ActionBar buttons only draw chromeColor in the down state.
      */
     override protected function beginChromeColorFill(chromeColorGraphics:Graphics):void


Transferred from the Adobe Open Source Subversion Repository

Revision: 18831
Author:   cframpto@adobe.com
Date:     2010-11-29T16:31:45.165610Z

Log Message:
-----------
getCommonCharacterFormat() calls the SelectionManager version of this method if there is a SelectionManager (ie if editingMode allows editing or selection) so that any pending changes to the point format will be incorporated in the format.  Since we copied TLF's version of this method so we could use it when there wasn't a SelectionManager we missed their bug fix for the point format.

QE notes:
Doc notes:
Bugs: SDK-28435
Reviewer: Corey
Tests run: cyclone
Is noteworthy for integration:

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -393,9 +393,9 @@

     /**
      *  @private
-     *  To get the format of a character without using a SelectionManager.
-     *  The method should be kept in sync with the version in the
-     *  SelectionManager.
+     *  To get the format of a character.  Our API allows this operation even
+     *  when the editingMode does not permit either interactive selection or
+     *  editing.
      */
     mx_internal function getCommonCharacterFormat(
                                         anchorPosition:int,
@@ -406,13 +406,23 @@

         var textFlow:TextFlow = getTextFlowWithComposer();

-        var absoluteStart:int = getAbsoluteStart(anchorPosition, activePosition);
-        var absoluteEnd:int = getAbsoluteEnd(anchorPosition, activePosition);
-
-        var selRange:ElementRange =
-            ElementRange.createElementRange(textFlow, absoluteStart, absoluteEnd);
-
-        return selRange.getCommonCharacterFormat();
+        if (textFlow.interactionManager)
+        {
+            // If there is a selection manager use it so that the format
+            // will include any attributes set on a point selection but not
+            // yet applied.
+            return textFlow.interactionManager.getCommonCharacterFormat();
+        }
+        else
+        {
+            // ElementRange will order the selection points.  Since there isn't
+            // an interactionManager there is not a point selection to worry
+            // about.
+            var selRange:ElementRange =
+                ElementRange.createElementRange(textFlow, anchorPosition, activePosition);
+
+            return selRange.getCommonCharacterFormat();
+        }
     }

     /**
@@ -446,12 +456,10 @@
             return null;

         var textFlow:TextFlow = getTextFlowWithComposer();
-
-        var absoluteStart:int = getAbsoluteStart(anchorPosition, activePosition);
-        var absoluteEnd:int = getAbsoluteEnd(anchorPosition, activePosition);
-
+
+        // ElementRange will order the selection points.
         var selRange:ElementRange =
-            ElementRange.createElementRange(textFlow, absoluteStart, absoluteEnd);
+            ElementRange.createElementRange(textFlow, anchorPosition, activePosition);

         return selRange.getCommonParagraphFormat();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7539
Author:   cframpto@adobe.com
Date:     2009-06-03T21:41:04.560668Z

Log Message:
-----------
Integrate TLF 446. tcm.getText no longer appends terminator to the end of the string.  TCM.hasScrollRect is now private.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swz</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/libs/textLayout.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swf</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/tlf.properties</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -73,7 +73,7 @@
     /**
      *  @private
      */
-    //private var hasScrollRect:Boolean = false;
+    private var hasScrollRect:Boolean = false;

     /**
      *  @private


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

--- frameworks/projects/advancedgrids/src/mx/controls/olapDataGridClasses/OLAPDataGridGroupRenderer.as
+++ frameworks/projects/advancedgrids/src/mx/controls/olapDataGridClasses/OLAPDataGridGroupRenderer.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: 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@1263130 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/validators/SocialSecurityValidator.as
+++ frameworks/projects/framework/src/mx/validators/SocialSecurityValidator.as
@@ -0,0 +1,390 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-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.validators
+{
+
+import mx.managers.ISystemManager;
+import mx.managers.SystemManager;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+
+[ResourceBundle("validators")]
+
+/**
+ *  The SocialSecurityValidator class validates that a String
+ *  is a valid United States Social Security number.
+ *  It does not check whether it is an existing Social Security number.
+ *
+ *  @mxml
+ *
+ *
The <mx:SocialSecurityValidator> tag
+ *  inherits all of the tag attributes of its superclass,
+ *  and adds the following tag attributes:

+ *
+ *

+ *  <mx:SocialSecurityValidator
+ *    allowedFormatChars=" -"
+ *    invalidCharError="You entered invalid characters in your Social Security number."
+ *    wrongFormatError="The Social Security number must be 9 digits or in the form NNN-NN-NNNN."
+ *    zeroStartError="Invalid Social Security number; the number cannot start with 000."
+ *  />
+ *

+ *
+ *  @includeExample examples/SocialSecurityValidatorExample.mxml
+ */
+public class SocialSecurityValidator extends Validator
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Convenience method for calling a validator.
+	 *  Each of the standard Flex validators has a similar convenience method.
+	 *
+	 *  @param validator The SocialSecurityValidator instance.
+	 *
+	 *  @param value A field to validate.
+	 *
+	 *  @param baseField Text representation of the subfield
+	 *  specified in the value parameter.
+	 *  For example, if the value parameter specifies
+	 *  value.social, the baseField value is social.
+	 *
+	 *  @return An Array of ValidationResult objects, with one ValidationResult
+	 *  object for each field examined by the validator.
+	 *
+	 *  @see mx.validators.ValidationResult
+	 */
+	public static function validateSocialSecurity(
+								validator:SocialSecurityValidator,
+								value:Object,
+								baseField:String):Array
+	{
+		var results:Array = [];
+
+		// Resource-backed properties of the validator.
+		var allowedFormatChars:String = validator.allowedFormatChars;
+
+		var resourceManager:IResourceManager = ResourceManager.getInstance();
+
+		var hyphencount:int = 0;
+		var len:int = value.toString().length;
+		var checkForFormatChars:Boolean = false;
+
+		var n:int;
+		var i:int;
+
+		if ((len != 9) && (len != 11))
+		{
+			results.push(new ValidationResult(
+				true, baseField, "wrongFormat",
+				validator.wrongFormatError));
+			return results;
+		}
+
+		n = allowedFormatChars.length;
+		for (i = 0; i < n; i++)
+		{
+			if (DECIMAL_DIGITS.indexOf(allowedFormatChars.charAt(i)) != -1)
+			{
+				var message:String = resourceManager.getString(
+					"validators", "invalidFormatChars");
+				throw new Error(message);
+			}
+		}
+
+		if (len == 11)
+			checkForFormatChars = true;
+
+		for (i = 0; i < len; i++)
+		{
+			var allowedChars:String;
+			if (checkForFormatChars && (i == 3 || i == 6))
+				allowedChars = allowedFormatChars;
+			else
+				allowedChars = DECIMAL_DIGITS;
+
+			if (allowedChars.indexOf(value.charAt(i)) == -1)
+			{
+				results.push(new ValidationResult(
+					true, baseField, "invalidChar",
+					validator.invalidCharError));
+				return results;
+			}
+		}
+
+		if (value.substring(0, 3) == "000")
+		{
+			results.push(new ValidationResult(
+				true, baseField, "zeroStart",
+				validator.zeroStartError));
+			return results;
+		}
+
+		return results;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function SocialSecurityValidator()
+	{
+		super();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  allowedFormatChars
+	//----------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _allowedFormatChars:String;
+
+    /**
+	 *  @private
+	 */
+	private var allowedFormatCharsOverride:String;
+
+	[Inspectable(category="General", defaultValue="null")]
+
+	/**
+	 *  Specifies the set of formatting characters allowed in the input.
+	 *
+	 *  @default "()- .+" // ?????
+	 */
+	public function get allowedFormatChars():String
+	{
+		return _allowedFormatChars;
+	}
+
+    /**
+	 *  @private
+	 */
+	public function set allowedFormatChars(value:String):void
+	{
+		if (value != null)
+		{
+			var n:int = value.length;
+			for (var i:int = 0; i < n; i++)
+			{
+				if (DECIMAL_DIGITS.indexOf(value.charAt(i)) != -1)
+				{
+					var message:String = resourceManager.getString(
+						"validators", "invalidFormatChars");
+					throw new Error(message);
+				}
+			}
+		}
+
+		allowedFormatCharsOverride = value;
+
+		_allowedFormatChars = value != null ?
+							  value :
+							  resourceManager.getString(
+								  "validators",
+								  "socialSecurityValidatorAllowedFormatChars");
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties: Errors
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  invalidCharError
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the invalidCharError property.
+	 */
+	private var _invalidCharError:String;
+
+    /**
+	 *  @private
+	 */
+	private var invalidCharErrorOverride:String;
+
+	[Inspectable(category="Errors", defaultValue="null")]
+
+	/**
+	 *  Error message when the value contains characters
+	 *  other than digits and formatting characters
+	 *  defined by the allowedFormatChars property.
+	 *
+	 *  @default "You entered invalid characters in your Social Security number."
+	 */
+	public function get invalidCharError():String
+	{
+		return _invalidCharError;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set invalidCharError(value:String):void
+	{
+		invalidCharErrorOverride = value;
+
+		_invalidCharError = value != null ?
+							value :
+							resourceManager.getString(
+								"validators", "invalidCharErrorSSV");
+	}
+
+	//----------------------------------
+	//  wrongFormatError
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the wrongFormatError property.
+	 */
+	private var _wrongFormatError:String;
+
+    /**
+	 *  @private
+	 */
+	private var wrongFormatErrorOverride:String;
+
+	[Inspectable(category="Errors", defaultValue="null")]
+
+	/**
+	 *  Error message when the value is incorrectly formatted.
+	 *
+	 *  @default "The Social Security number must be 9 digits or in the form NNN-NN-NNNN."
+	 */
+	public function get wrongFormatError():String
+	{
+		return _wrongFormatError;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set wrongFormatError(value:String):void
+	{
+		wrongFormatErrorOverride = value;
+
+		_wrongFormatError = value != null ?
+							value :
+							resourceManager.getString(
+								"validators", "wrongFormatError");
+	}
+
+	//----------------------------------
+	//  zeroStartError
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the zeroStartError property.
+	 */
+	private var _zeroStartError:String;
+
+    /**
+	 *  @private
+	 */
+	private var zeroStartErrorOverride:String;
+
+	[Inspectable(category="Errors", defaultValue="null")]
+
+	/**
+	 *  Error message when the value contains an invalid Social Security number.
+	 *
+	 *  @default "Invalid Social Security number; the number cannot start with 000."
+	 */
+	public function get zeroStartError():String
+	{
+		return _zeroStartError;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set zeroStartError(value:String):void
+	{
+		zeroStartErrorOverride = value;
+
+		_zeroStartError = value != null ?
+						  value :
+						  resourceManager.getString(
+						      "validators", "zeroStartError");
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  @private
+     */
+	override protected function resourcesChanged():void
+	{
+		super.resourcesChanged();
+
+		allowedFormatChars = allowedFormatChars;
+
+		invalidCharError = invalidCharErrorOverride;
+		wrongFormatError = wrongFormatErrorOverride;
+		zeroStartError = zeroStartErrorOverride;
+	}
+
+	/**
+     *  Override of the base class doValidation() method
+     *  to validate a Social Security number.
+     *
+	 *
You do not call this method directly;
+	 *  Flex calls it as part of performing a validation.
+	 *  If you create a custom Validator class, you must implement this method.

+	 *
+     *  @param value Object to validate.
+     *
+	 *  @return An Array of ValidationResult objects, with one ValidationResult
+	 *  object for each field examined by the validator.
+	 */
+	override protected function doValidation(value:Object):Array
+    {
+		var results:Array = super.doValidation(value);
+
+		// Return if there are errors
+		// or if the required property is set to false and length is 0.
+		var val:String = value ? String(value) : "";
+		if (results.length > 0 || ((val.length == 0) && !required))
+			return results;
+		else
+		    return SocialSecurityValidator.validateSocialSecurity(this, value, null);
+    }
+}
+
+}


finished async for natural jenks

finished async for natural jenks

--- WeaveData/src/weave/data/BinningDefinitions/NaturalJenksBinningDefinition.as
+++ WeaveData/src/weave/data/BinningDefinitions/NaturalJenksBinningDefinition.as
@@ -24,16 +24,17 @@
 	import mx.utils.ObjectUtil;

 	import weave.api.WeaveAPI;
-	import weave.api.registerLinkableChild;
-	import weave.api.reportError;
 	import weave.api.core.ILinkableHashMap;
 	import weave.api.data.IAttributeColumn;
 	import weave.api.data.IPrimitiveColumn;
 	import weave.api.data.IQualifiedKey;
+	import weave.api.getCallbackCollection;
+	import weave.api.registerLinkableChild;
+	import weave.api.reportError;
 	import weave.core.LinkableNumber;
 	import weave.data.BinClassifiers.NumberClassifier;
 	import weave.utils.AsyncSort;
-	import weave.utils.VectorUtils;
+	import weave.utils.VectorUtils;

 	/**
 	 * Implemented from Doug Curl (javascript) and Daniel J Lewis (python implementation) and  Simon Georget (Geostats)
@@ -57,6 +58,7 @@

 		private var _output:ILinkableHashMap = null;
 		private var _column:IAttributeColumn = null;
+		private var asyncSort:AsyncSort = new AsyncSort();
 		override public function generateBinClassifiersForColumn(column:IAttributeColumn):void
 		{
 			_output = output;
@@ -66,8 +68,36 @@

 			_previousSortedValues.length = 0;

-			_sortedValues = getSortedNumbersFromColumn(_column);
-
+			_keys = column ? column.keys : [];
+			_sortedValues = new Array(_keys.length);
+			_keyCount = 0;
+
+			WeaveAPI.StageUtils.startTask(this,_getValueFromKeys,WeaveAPI.TASK_PRIORITY_PARSING,_handleValuesFromKeys);
+
+		}
+
+		private var _keyCount:int = 0;
+		private var _keys:Array = [];
+		private function _getValueFromKeys():Number
+		{
+			if(_keyCount>=_keys.length)
+				return 1;
+			_sortedValues[_keyCount] = _column.getValueFromKey(_keys[_keyCount],Number);
+			_keyCount ++;
+			if(_keyCount>=_keys.length)
+				return 1;
+			else
+				return _keyCount/_keys.length;
+		}
+
+		private function _handleValuesFromKeys():void
+		{
+			getCallbackCollection(asyncSort).addImmediateCallback(this,_handleSortedKeys);
+			asyncSort.beginSort(_sortedValues,ObjectUtil.numericCompare);
+		}
+
+		private function _handleSortedKeys():void
+		{
 			VectorUtils.copy(_sortedValues,_previousSortedValues);

 			_mat1 = [];
@@ -101,7 +131,6 @@
 			_count = 2;

 			WeaveAPI.StageUtils.startTask(this,_iterateJenksBreaks,WeaveAPI.TASK_PRIORITY_PARSING,_handleJenksBreaks);
-
 		}

 		private var _previousSortedValues:Array = [];
@@ -109,12 +138,13 @@
 		private var _mat1:Array = [];
 		private var _mat2:Array = [];
 		private var _count:int = 2;
-		private var _m:int = 1;
+		private var _m:Number = 0;
 		private var _v:Number = 0;
 		private var _s1:Number = 0;
 		private var _s2:Number = 0;
-
 		private var _w:Number = 0;
+		private var _p:Number = 2;
+
 		private function _iterateJenksBreaks(returnTime:int):Number
 		{
 			for (; _count < _sortedValues.length + 1; _count++)
@@ -122,13 +152,15 @@
 				_s1= 0;
 				_s2= 0;
 				_w= 0;
-				_m =1;
-
+				if(_m==0)
+				{
+					_m =1;
+				}
 				for(; _m < _count + 1; _m++)
 				{
 					if(getTimer()>returnTime)
 					{
-						return 0;
+						return _count/(_sortedValues.length+1);
 					}
 					var i3:Number = _count - _m +1;
 					var val:Number = _sortedValues[i3-1];
@@ -141,16 +173,19 @@
 					var i4:Number= i3 -1;
 					if(i4 !=0)
 					{
-						for (var p:Number = 2; p < numOfBins.value + 1; p++)
+						_p = 2;
+						for (; _p < numOfBins.value + 1; _p++)
 						{
-							if((_mat2[_count][p]) >= (_v + _mat2[i4][p-1]))
+
+							if((_mat2[_count][_p]) >= (_v + _mat2[i4][_p-1]))
 							{
-								_mat1[_count][p] = i3;
-								_mat2[_count][p] = _v +_mat2[i4][p-1];
+								_mat1[_count][_p] = i3;
+								_mat2[_count][_p] = _v +_mat2[i4][_p-1];
 							}
 						}
 					}
 				}
+				_m = 0;
 				_mat1[_count][1] = 1;
 				_mat2[_count][1] = _v;
 			}
@@ -159,22 +194,22 @@

 		private function _handleJenksBreaks():void
 		{
+			var countNum:Number = numOfBins.value;
 			var kClassCount:Number =  _sortedValues.length;
 			var kClass:Array = [];

-			for(var i:int = 0; i < numOfBins.value +1; i++)
+			for(var i:int = 0; i < countNum +1; i++)
 			{
 				kClass.push(0);
 			}

 			//this is the last number in the array
-			kClass[numOfBins.value] = _sortedValues[_sortedValues.length -1];
+			kClass[countNum] = _sortedValues[_sortedValues.length -1];

 			//this is the first numer in the array
 			kClass[0] = _sortedValues[0];

-			var countNum:Number = numOfBins.value;

 			while (countNum >=2)
 			{


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/CartesianDataCanvas.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/CartesianDataCanvas.as
@@ -1,3 +1,14 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/StackedSeries.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/StackedSeries.as
@@ -0,0 +1,935 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Copyright (C) 2003-2006 Adobe Macromedia Software LLC and its licensors.
+//  All Rights Reserved. The following is Source Code and is subject to all
+//  restrictions on such code as contained in the End User License Agreement
+//  accompanying this product.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.chartClasses
+{
+
+import flash.display.DisplayObject;
+import flash.geom.Point;
+import flash.geom.Rectangle;
+import flash.utils.Dictionary;
+
+import mx.charts.ChartItem;
+import mx.charts.HitData;
+import mx.core.IUIComponent;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ *  Stacked Series serves as the common base class
+ *  for all of the stacking set series (BarSet, ColumnSet, and AreaSet).
+ *  A StackedSeries accepts an Array of sub-series elements and does
+ *  the appropriate calculations to stack them vertically so that each series
+ *  renders the sum of the previous series's data plus its own value.
+ *  This class is not intended for direct use.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class StackedSeries extends Series
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function StackedSeries()
+    {
+        super();
+
+        dataTransform = new CartesianTransform();
+
+        invalidateProperties();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var _seriesDirty:Boolean = true;
+
+    /**
+     *  The summed totals of the stacked positive values.
+     *  This property contains a Dictionary whose keys are the values
+     *  represented by the child series along the primary axis
+     *  (for example, x axis values for a ColumnSeries, y axis values for a BarSeries),
+     *  and whose values are the summed total of all the positive child series values
+     *  at that key.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected var posTotalsByPrimaryAxis:Dictionary;
+
+    /**
+     *  The summed totals of the stacked negative values.
+     *  This property contains a Dictionary whose keys are the values
+     *  represented by the child series along the primary axis
+     *  (for example, x axis values for a ColumnSeries, y axis values for a BarSeries),
+     *  and whose values are the summed total of all the negative child series values
+     *  at that key.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected var negTotalsByPrimaryAxis:Dictionary;
+
+    /**
+     *  The maximum sum represented by this stacked series.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected var stackedMaximum:Number;
+
+    /**
+     *  The minimum sum represented by this stacked series.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected var stackedMinimum:Number;
+
+    /**
+     *  @private
+     */
+    private var stackingDirty:Boolean = true;
+
+    /**
+     *  @private
+     */
+    private var _bAxesDirty:Boolean = false;
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties: ChartElement
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  workingDataProvider
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function processNewDataProvider(value:Object):void
+    {
+        super.processNewDataProvider(value);
+
+        var n:int = _series.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            IChartElement(_series[i]).chartDataProvider = dataProvider;
+        }
+    }
+
+    //--------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------
+
+    //----------------------------------
+    //  allowNegativeForStacked
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the allowNegativeForStacked property.
+     */
+    private var _allowNegativeForStacked:Boolean = false;
+
+    [Inspectable]
+
+    /**
+     *  Setting this property to true will stack positive
+     *  and negative values separately
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get allowNegativeForStacked():Boolean
+    {
+        return _allowNegativeForStacked;
+    }
+
+    /**
+     *  @private
+     */
+    public function set allowNegativeForStacked(value:Boolean):void
+    {
+        invalidateStacking();
+        invalidateSeries();
+
+        _allowNegativeForStacked = value;
+    }
+
+    //----------------------------------
+    //  horizontalAxis
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the horizontalAxis property.
+     */
+    private var _horizontalAxis:IAxis;
+
+    [Inspectable(category="Data")]
+
+    /**
+     *  Defines the labels, tick marks, and data position
+     *  for items on the x-axis.
+     *  Use either the LinearAxis class or the CategoryAxis class
+     *  to set the properties of the horizontalAxis as a child tag in MXML
+     *  or create a LinearAxis or CategoryAxis object in ActionScript.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get horizontalAxis():IAxis
+    {
+        return _horizontalAxis;
+    }
+
+    /**
+     *  @private
+     */
+    public function set horizontalAxis(value:IAxis):void
+    {
+        _horizontalAxis = value;
+        _bAxesDirty = true;
+
+        invalidateData();
+        invalidateProperties();
+    }
+
+    //----------------------------------
+    //  series
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the series property.
+     */
+    private var _series:Array = [];
+
+    [Inspectable]
+
+    /**
+     *  An array of sub-series managed by this stacking set.
+     *  These series are rendered according to the stacking behavior
+     *  of this stacking set as defined by the value
+     *  of the type property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get series():Array
+    {
+        return _series;
+    }
+
+    /**
+     *  @private
+     */
+    public function set series(value:Array):void
+    {
+        _series = value == null ? [] : value;
+
+        invalidateSeries();
+
+        var s:ChartBase = chart;
+        if (s)
+            s.invalidateSeriesStyles();
+    }
+
+    //----------------------------------
+    //  type
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the type property.
+     */
+    private var _type:String;
+
+    [Inspectable]
+
+    /**
+     *  The grouping behavior of this series.
+     *  All stacking series support "overlaid",
+     *  "stacked", and "100%".
+     *  When the type property is "overlaid",
+     *  all sub-series are rendererd normally, with no special behavior applied.
+     *  When the type property is "stacked",
+     *  each sub-series is rendered as the sum of its data
+     *  plus the values of all previous series.
+     *  When the type property is "100%",
+     *  each sub-series is rendered as its portion of the total sum
+     *  of all series.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get type():String
+    {
+        return _type;
+    }
+
+    /**
+     *  @private
+     */
+    public function set type(value:String):void
+    {
+        invalidateStacking();
+        invalidateSeries();
+
+        _type = value;
+    }
+
+    //----------------------------------
+    //  verticalAxis
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the verticalAxis property.
+     */
+    private var _verticalAxis:IAxis;
+
+    [Inspectable(category="Data")]
+
+    /**
+     *  Defines the labels, tick marks, and data position
+     *  for items on the y-axis.
+     *  Use either the LinearAxis class or the CategoryAxis class
+     *  to set the properties of the horizontalAxis as a child tag in MXML
+     *  or create a LinearAxis or CategoryAxis object in ActionScript.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get verticalAxis():IAxis
+    {
+        return _verticalAxis;
+    }
+
+    /**
+     *  @private
+     */
+    public function set verticalAxis(value:IAxis):void
+    {
+        _verticalAxis = value;
+        _bAxesDirty = true;
+
+        invalidateData();
+        //invalidateChildOrder();
+        invalidateProperties();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        updateStacking();
+
+        if (_seriesDirty)
+        {
+            _seriesDirty = false;
+            buildSubSeries();
+        }
+
+        if (_bAxesDirty)
+        {
+            if (dataTransform)
+            {
+                if (_horizontalAxis)
+                {
+                    _horizontalAxis.chartDataProvider = dataProvider;
+                    CartesianTransform(dataTransform).setAxis(
+                        CartesianTransform.HORIZONTAL_AXIS,_horizontalAxis);
+                }
+
+                if (_verticalAxis)
+                {
+                    _verticalAxis.chartDataProvider = dataProvider;
+                    CartesianTransform(dataTransform).setAxis(
+                        CartesianTransform.VERTICAL_AXIS, _verticalAxis);
+                }
+            }
+            _bAxesDirty = false;
+        }
+
+        var parentChart:Object = chart;
+        if (parentChart && parentChart is CartesianChart)
+        {
+            var c:CartesianChart = CartesianChart(parentChart);
+            if (!_horizontalAxis)
+            {
+                if (c.secondSeries.indexOf(this) != -1 && c.secondHorizontalAxis)
+                {
+                    if (dataTransform.axes[CartesianTransform.HORIZONTAL_AXIS] != c.secondHorizontalAxis)
+                        CartesianTransform(dataTransform).setAxis(
+                            CartesianTransform.HORIZONTAL_AXIS,c.secondHorizontalAxis);
+                }
+                else if (dataTransform.axes[CartesianTransform.HORIZONTAL_AXIS] != c.horizontalAxis)
+                        CartesianTransform(dataTransform).setAxis(
+                            CartesianTransform.HORIZONTAL_AXIS,c.horizontalAxis);
+            }
+
+            if (!_verticalAxis)
+            {
+                if (c.secondSeries.indexOf(this) != -1 && c.secondVerticalAxis)
+                {
+                    if (dataTransform.axes[CartesianTransform.VERTICAL_AXIS] != c.secondVerticalAxis)
+                        CartesianTransform(dataTransform).setAxis(
+                            CartesianTransform.VERTICAL_AXIS,c.secondVerticalAxis);
+                }
+                else if (dataTransform.axes[CartesianTransform.VERTICAL_AXIS] != c.verticalAxis)
+                        CartesianTransform(dataTransform).setAxis(
+                            CartesianTransform.VERTICAL_AXIS, c.verticalAxis);
+            }
+        }
+        dataTransform.elements = [this];
+    }
+
+    /**
+     *  @private
+     */
+    override public function dataToLocal(... dataValues):Point
+    {
+        var data:Object = {};
+        var da:Array = [ data ];
+        var n:int = dataValues.length;
+
+        if (n > 0)
+        {
+            data["d0"] = dataValues[0];
+            dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS).
+                mapCache(da, "d0", "v0");
+        }
+
+        if (n > 1)
+        {
+            data["d1"] = dataValues[1];
+            dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).
+                mapCache(da, "d1", "v1");
+        }
+
+        dataTransform.transformCache(da,"v0","s0","v1","s1");
+
+        return new Point(data.s0 + this.x,
+                         data.s1 + this.y);
+    }
+
+    /**
+     *  @private
+     */
+    override public function localToData(v:Point):Array
+    {
+        var values:Array = dataTransform.invertTransform(
+                                            v.x - this.x,
+                                            v.y - this.y);
+        return values;
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        var n:int = numChildren;
+        for (var i:int = 0; i < n; i++)
+        {
+            IUIComponent(getChildAt(i)).setActualSize(unscaledWidth,
+                                                     unscaledHeight);
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: ChartElement
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function describeData(dimension:String,
+                                          requiredFields:uint):Array
+    {
+        updateStacking();
+        validateData();
+
+        var desc:DataDescription;
+        var result:Array = [];
+        var n:int;
+        var i:int;
+
+        if (type == "100%")
+        {
+            if (dimension == CartesianTransform.VERTICAL_AXIS)
+            {
+                desc = new DataDescription();
+                desc.min = 0;
+                desc.max = 100;
+                result = [ desc ];
+            }
+            else
+            {
+                n = series.length;
+                for (i = 0; i < n; i++)
+                {
+                    result = result.concat(
+                        series[i].describeData(dimension, requiredFields));
+                }
+            }
+        }
+
+        else if (type == "stacked")
+        {
+            if (dimension == CartesianTransform.VERTICAL_AXIS)
+            {
+                var vCache:Array = [{ value: stackedMinimum}, { value: stackedMaximum }];
+                dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).
+                    mapCache(vCache, "value", "number");
+                desc = new DataDescription();
+                desc.min = vCache[0].number;
+                desc.max = vCache[1].number;
+                result = [ desc ];
+            }
+            else
+            {
+                n = series.length;
+                for (i = 0; i < n; i++)
+                {
+                    result = result.concat(
+                        series[i].describeData(dimension, requiredFields));
+                }
+            }
+        }
+
+        else
+        {
+            n = series.length;
+            for (i = 0; i < n; i++)
+            {
+                result = result.concat(
+                    series[i].describeData(dimension, requiredFields));
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     *  @private
+     */
+    override public function findDataPoints(x:Number, y:Number,
+                                            sensitivity:Number):Array
+    {
+        var hds:Array = super.findDataPoints(x, y, sensitivity);
+
+        var n:int = hds.length;
+        if (n > 0 && (_type == "stacked" || _type == "100%"))
+        {
+            for (var i:int = 0; i < n; i++)
+            {
+                hds[i].dataTipFunction = formatDataTip;
+            }
+        }
+
+        return hds;
+    }
+    /**
+     *  @private
+     */
+    override public function getAllDataPoints():Array
+    {
+        var hds:Array = super.getAllDataPoints();
+
+        var n:int = hds.length;
+        if (n > 0 && (_type == "stacked" || _type == "100%"))
+        {
+            for (var i:int = 0; i < n; i++)
+            {
+                hds[i].dataTipFunction = formatDataTip;
+            }
+        }
+
+        return hds;
+    }
+
+    /**
+     *  @private
+     */
+    override public function chartStateChanged(oldState:uint, v:uint):void
+    {
+        updateData();
+
+        super.chartStateChanged(oldState,v);
+    }
+
+    /**
+     *  @private
+     */
+    override public function mappingChanged():void
+    {
+        var n:int = numChildren;
+        for (var i:int = 0; i < n; i++)
+        {
+            var c:IChartElement = getChildAt(i) as IChartElement;
+            if (c)
+                c.mappingChanged();
+        }
+
+        super.mappingChanged();
+    }
+
+    /**
+     *  @private
+     */
+    override public function claimStyles(styles:Array,
+                                         firstAvailable:uint):uint
+    {
+        var n:int = _series.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            var c:IChartElement = _series[i];
+            firstAvailable = c.claimStyles(styles, firstAvailable);
+        }
+
+        return firstAvailable;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: Series
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override mx_internal function clearSeriesItemsState(clear:Boolean, state:String = ChartItem.NONE):void
+    {
+        super.clearSeriesItemsState(clear,state);
+        var s:Series;
+        var j:int;
+        for (j = 0; j < series.length; j++)
+        {
+            s = series[j];
+            s.clearSeriesItemsState(clear,state);
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override public function get legendData():Array
+    {
+        var keyItems:Array = [];
+
+        var n:int = _series.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            var ld:Object = _series[i].legendData;
+            if (ld)
+                keyItems = keyItems.concat(ld);
+        }
+
+        return keyItems;
+    }
+
+    /**
+     *  @private
+     */
+    override public function getItemsInRegion(r:Rectangle):Array
+    {
+        var j:int;
+        var arrItems:Array;
+        var arrAllItems:Array = [];
+        var s:Series;
+
+        for (j = 0; j < series.length; j++)
+        {
+            s = series[j];
+            arrItems = s.getItemsInRegion(r);
+            arrAllItems = arrAllItems.concat(arrItems);
+        }
+        return arrAllItems;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Call this method to trigger a call to the buildSubSeries()
+     *  method on the next call to the commitProperties() method.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function invalidateSeries():void
+    {
+        if (_seriesDirty == false)
+        {
+            _seriesDirty = true;
+
+            invalidateProperties();
+        }
+    }
+
+    /**
+     *  Call this method to trigger a regeneration of the stacked values
+     *  on the next call to the commitProperties() method.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function invalidateStacking():void
+    {
+        if (stackingDirty == false)
+        {
+            stackingDirty = true;
+
+            invalidateProperties();
+        }
+    }
+
+    /**
+     *  Applies any customization to a sub-series
+     *  when building the stacking behavior.
+     *  By default, this method assigns the inherited data providers
+     *  to the sub-series.
+     *  Derived classes can override this method
+     *  to apply further customization.
+     *
+     *  @param g The chart element to customize.
+     *
+     *  @param i The sub-series' position in the series array.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function customizeSeries(g:IChartElement, i:uint):void
+    {
+        g.chartDataProvider = dataProvider;
+    }
+
+    /**
+     *  Processes the Array of sub-series for display, when necessary.
+     *  This method ensures that all sub-series are added as children of this
+     *  stacking set, and applies any per-series customization that is necessary
+     *  (for example, assigning inherited data providers or clustering properties).
+     *
This method is also responsible for informing the chart that series
+     *  have changed and, as a result, implicit series styles must be reassigned.
+     *  This method is called automatically by the stacking set, when necessary.
+     *  Instead of calling this method directly,
+     *  you should consider calling the invalidateSeries() method.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function buildSubSeries():void
+    {
+        while (numChildren > 0)
+        {
+            removeChildAt(0);
+        }
+
+        for (var i:int = _series.length - 1; i >= 0; i--)
+        {
+            var g:IChartElement = IChartElement(_series[i]);
+            customizeSeries(g, i);
+            addChild(g as DisplayObject);
+        }
+
+        var s:ChartBase = chart;
+        if (s)
+            s.invalidateSeriesStyles();
+    }
+
+    /**
+     *  Iterates over the individual sub-series to build the stacked values.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function updateStacking():void
+    {
+        if (stackingDirty == false)
+            return;
+
+        var stacker:StackedSeries = null;
+
+        if (!_series)
+            return;
+
+        if (_type == "stacked" || _type == "100%")
+            stacker = this;
+
+        var n:int = _series.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            if (_series[i] is IStackable)
+                _series[i].stacker = stacker;
+        }
+
+        if (_type == "stacked" || _type == "100%")
+            stack();
+
+        stackingDirty = false;
+    }
+
+    /**
+     *  Updates the series data, and uses the values of the series data
+     *  it is stacking on top of so it can stack correctly.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function stack():void
+    {
+        var n:int = _series.length;
+        var i:int;
+        var series:IStackable2;
+        var obj:Object;
+
+        posTotalsByPrimaryAxis = new Dictionary(false);
+        negTotalsByPrimaryAxis = new Dictionary(false);
+        stackedMaximum = 0;
+
+        var previousSeries:IStackable2 = null;
+        for (i = 0; i < n; i++)
+        {
+            series = _series[i];
+            if (_type == "stacked" && _allowNegativeForStacked)
+            {
+                obj = series.stackAll(posTotalsByPrimaryAxis,negTotalsByPrimaryAxis, previousSeries);
+                stackedMaximum = Math.max(stackedMaximum, obj.maxValue);
+                stackedMinimum = isNaN(stackedMinimum) ? obj.minValue : Math.min(stackedMinimum, obj.minValue);
+            }
+            else
+            {
+                stackedMaximum = Math.max(stackedMaximum,series.stack(posTotalsByPrimaryAxis,previousSeries));
+                if (_type == "100%")
+                    stackedMinimum = 0;
+                else
+                {
+                    var cachedDataDescriptions:Array = Series(series).describeData(CartesianTransform.VERTICAL_AXIS,
+                                            DataDescription.REQUIRED_MIN_MAX | DataDescription.REQUIRED_BOUNDED_VALUES);
+                    if (cachedDataDescriptions.length)
+                        stackedMinimum = isNaN(stackedMinimum) ? cachedDataDescriptions[0].min :
+                                                        Math.min(stackedMinimum, cachedDataDescriptions[0].min);
+                }
+            }
+            previousSeries = series;
+        }
+
+        var totals:Dictionary = _type == "100%" ? posTotalsByPrimaryAxis : null;
+
+        for (i = 0; i < n; i++)
+        {
+            series = _series[i];
+            series.stackTotals = totals;
+        }
+    }
+
+    /**
+     *  Provides custom text for DataTip objects.
+     *  Stacking sets override the DataTip text of their contained sub-series
+     *  to display additional information related to the stacking behavior.
+     *  Derived classes must override this method to define custom DataTip text.
+     *
+     *  @param hitData The hitData object in the stack.
+     *
+     *  @return The custom text for the DataTip. The default is the empty string. You must
+     *  override this method to provide a custom DataTip.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function formatDataTip(hitData:HitData):String
+    {
+        return "";
+    }
+}
+
+}


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

--- frameworks/projects/framework/src/mx/collections/errors/CursorError.as
+++ frameworks/projects/framework/src/mx/collections/errors/CursorError.as
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections.errors
+{
+
+/**
+ *  This error is thrown by a collection Cursor.
+ *  Errors of this class are thrown by classes
+ *  that implement the IViewCursor interface.
+ */
+public class CursorError extends Error
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    // Constructor.
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param message A message providing information about the error cause.
+     */
+    public function CursorError(message:String)
+    {
+        super(message);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
663 paths were modified

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

--- frameworks/projects/framework/src/mx/managers/PopUpManagerChildList.as
+++ frameworks/projects/framework/src/mx/managers/PopUpManagerChildList.as
@@ -19,6 +19,11 @@
  *  methods.
  *
  *  @see PopUpManager
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public final class PopUpManagerChildList
 {
@@ -33,6 +38,11 @@
 	/**
 	 *  Indicates that the popup is placed in the same child list as the
 	 *  application.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const APPLICATION:String = "application";

@@ -40,12 +50,22 @@
 	 *  Indicates that the popup is placed in the popup child list
 	 *  which will cause it to float over other popups in the application
 	 *  layer.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const POPUP:String = "popup";

 	/**
 	 *  Indicates that the popup is placed in whatever child list the
 	 *  parent component is in.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const PARENT:String = "parent";
 }


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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.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
 {


runtime: add cond tests

runtime: add cond tests

--- test/stutter/StutterTest.as
+++ test/stutter/StutterTest.as
@@ -1,6 +1,7 @@
 package stutter
 {
 	import org.flexunit.assertThat;
+	import org.hamcrest.Matcher;
 	import org.hamcrest.collection.array;
 	import org.hamcrest.collection.emptyArray;
 	import org.hamcrest.object.equalTo;
@@ -17,6 +18,26 @@
 		{
 			runtime = new StutterRunTime();
 			reader = new StutterReader();
+		}
+
+		private function eval(expression:String):*
+		{
+			reader.load(expression);
+
+			var sexp:*;
+			var result:*;
+
+			while (reader.hasTokens() && (sexp = reader.parse()))
+			{
+				result = runtime.eval(sexp);
+			}
+
+			return result;
+		}
+
+		private function assert(expression:String, result:*):void
+		{
+			assertThat(expression, eval(expression), result is Matcher ? result : equalTo(result));
 		}

 		[Test]
@@ -74,9 +95,25 @@
 			assertThat('false?', eval('(and (eq 2 2) (eq 3 4))'), equalTo(FALSE));
 		}

-		private function eval(expression:String):*
+		[Test]
+		public function cond_():void
 		{
-			return runtime.eval(reader.read(expression));
+			assert('(cond)', FALSE);
+			assert('(cond (t 1))', 1);
+			assert('(cond (nil 1) (t 2))', 2);
+			assert('(cond (else 3))', 3);
+			assert('(cond ((= 1 2) 3) (else 4))', 4);
+
+			eval(<![CDATA[
+
+				(label cond-test (quote (lambda (x)
+					(cond ((= x 1) 1)
+					  	  ((= x 2) 2)
+					  	  ((= x 3) 3)))))
+
+				]]>.toString());
+
+			assert('(cond-test 3)', 3);
 		}
 	}
 }


OFC-550	System should start with the first form when going from one plot to another

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/EntityFormPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/EntityFormPresenter.as
@@ -135,12 +135,12 @@
 			_view.dropDownList.selectedItem = entity;
 			_view.entity = entity;
 			if(entity != null) {
+				selectFirstTab();
 				if(_view.internalContainer.visible) {
 					//internal container already visible, call programmatically the showEffect
 					_view.showFormEffect.play([_view.internalContainer]);
 				} else {
 					_view.internalContainer.visible = true;
-					selectFirstTab();
 				}
 			} else if(_view.entityDefinition == null || _view.entityDefinition.multiple) {
 				_view.internalContainer.visible = false;


changed forgot email text to make sense now that we can change passwords

--- flexEditor/src/org/arisgames/editor/forms/ForgotAccountInformationFormView.as
+++ flexEditor/src/org/arisgames/editor/forms/ForgotAccountInformationFormView.as
@@ -68,7 +68,7 @@
     private function handleForgotPassword(obj:Object):void
     {
         trace("handleForgotPassword called with event: " + obj);
-        Alert.show("Your password has been reset and emailed to the email address on file for this account.", "Password Reset");
+        Alert.show("An email has been sent with instructions to change your password.", "Password Reset");
     }

     private function handleFault(obj:Object):void


Transferred from the Adobe Open Source Subversion Repository

Revision: 11276
Author:   rfrishbe@adobe.com
Date:     2009-10-29T20:25:24.283032Z

Log Message:
-----------
Turning the default of ItemRenderer's autoDrawBackground property to true.  This is part of the changes outlined here: http://opensource.adobe.com/wiki/display/flexsdk/Item+Renderer+Changes

This will break existing ItemRenderers because now we are drawing a rectangular background for rollover/selection/caretting that was not being drawn before.  Existing item renderers should be updated to either opt out of this new behavior by explicitly setting autoDrawBackground to false or by updating their ItemRenderers to expect this behavior.

QE notes: Most tests should have already been updated.  If tests with item renderers are broken, please update them.
Doc notes: -
Bugs: -
Reviewer: Pete F.
Tests run: checkintests
Is noteworthy for integration: Yes

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
@@ -104,7 +104,7 @@
      *  @private
      *  storage for the autoDrawBackground property
      */
-    private var _autoDrawBackground:Boolean = false;
+    private var _autoDrawBackground:Boolean = true;

     /**
      *  Whether the item renderer should handle drawing the
@@ -117,7 +117,7 @@
      *  selectionColor)
      *  and the state that the item renderer is in.

      *
-     *  @default false
+     *  @default true
      */
     public function get autoDrawBackground():Boolean
     {


Removed a join() that was causing a stack overflow on Mac. Still investigating root cause and why it does not appear on the PC, but, in the meantime it allows the tests to happen without a stack overflow.

--- FlexUnit4/src/org/flexunit/experimental/theories/internals/ParameterizedAssertionError.as
+++ FlexUnit4/src/org/flexunit/experimental/theories/internals/ParameterizedAssertionError.as
@@ -46,7 +46,10 @@
 		 */
 		public function ParameterizedAssertionError( targetException:Error, methodName:String, ...params ) {
 			this.targetException = targetException;
-			super( methodName + " " + ( params as Array ).join( ", " ) );
+			//super( methodName + " " + ( params as Array ).join( ", " ) );
+			//This blows up on Mac FP10... I believe the params may be getting a this pointer causing a stack overflow.
+			//For the moment, we will only pass the methodname until this is resolved
+			super( methodName );
 		}

 //		public function equals( obj:Object ):Boolean {


Summary: Fix height resizing for multiline text fields

New Features:

Bugs Fixed: N/A

Technical Reviewer: max
QA Reviewer: pablo
Doc Reviewer: n/a

Documentation:

Release Notes:

Details: Multiline inputtext fields don't resize their height as they wrap
while the user is inputting text. There needs to be code to update the view
height when the text changes

Tests: See attached

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@3501 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c