Transferred from the Adobe Open Source Subversion Repository

Revision: 12280
Author:   smgilson@adobe.com
Date:     2009-11-30T17:45:36.448234Z

Log Message:
-----------
ASDoc updates in preperation for localization

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/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/WipeDirection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CrossFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Rotate3D.as
+++ frameworks/projects/spark/src/spark/effects/Rotate3D.as
@@ -56,6 +56,8 @@
  *    angleZTo="no default"
  *  />
  *  </pre>
+ *
+ *  @includeExample examples/Rotate3DEffectExample.mxml
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 11502
Author:   mhorn@adobe.com
Date:     2009-11-06T15:54:05.630109Z

Log Message:
-----------
ASDoc update for l10n bug fix

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as

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

--- frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as
+++ frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as
@@ -20,6 +20,10 @@
  *  The event lets objects in other sandboxes know what is going on in this sandbox.
  *  The events are informational in nature as opposed to a SWFBridgeRequest,
  *  which request an object do something on its behalf.
+ *
+ *
This class defines event constants that refer to "activation".
+ *  In this case, activation means one of the components in the application can receive the keyboard
+ *  input focus. When an application is activated, the component that last had focus receives focus again.

  *
  *  @langversion 3.0
  *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 10606
Author:   egeorgie@adobe.com
Date:     2009-09-25T23:01:50.455888Z

Log Message:
-----------
White space cleanup.

Doc notes: None
Bugs: None
Reviewer: Evtim
Tests run: build
Is noteworthy for integration: Nope

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</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/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.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/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/testWheel.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/spark/src/spark/components/PopUpAnchor.as
+++ frameworks/projects/spark/src/spark/components/PopUpAnchor.as
@@ -403,7 +403,7 @@
         }

         // Get the new registration point based on the adjusted position
-        if(adjustedPosition != null)
+        if (adjustedPosition != null)
         {
             var adjustedRegPoint:Point = new Point();
             var adjustedBounds:Rectangle = new Rectangle();
@@ -483,10 +483,10 @@
             _popUp.styleName = this
         }*/

-        if(popUp == null)
+        if (popUp == null)
             return;

-        if(DisplayObject(popUp).parent == null && displayPopUp)
+        if (DisplayObject(popUp).parent == null && displayPopUp)
         {
             PopUpManager.addPopUp(popUp,this,false);
             popUpIsDisplayed = true;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4737
Author:   hmuller@adobe.com
Date:     2009-01-29T19:59:54.250675Z

Log Message:
-----------
Fixed CENTER,RIGHT alignment in virtual VERTICAL,HORIZONTAL

QE Notes:
Doc Notes: None
Bugs: sdk-18659
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -912,17 +912,18 @@
     }

     //  - virtual layout only -
-    private function calculateElementX(elt:ILayoutElement, eltWidth:Number, contentWidth:Number):Number
+    private function calculateElementX(elt:ILayoutElement, eltWidth:Number, containerWidth:Number):Number
     {
        switch(horizontalAlign)
        {
            case HorizontalAlign.CENTER:
-               return (contentWidth - eltWidth) * 0.5;
+               return (containerWidth - eltWidth) * 0.5;
            case HorizontalAlign.RIGHT:
-               return contentWidth - eltWidth;
+               return containerWidth - eltWidth;
        }
        return 0;  // HorizontalAlign.LEFT
     }
+

     /**
      *  @private
@@ -951,12 +952,12 @@
      *  following is true:
      *
      *  - If horizontalAlign is "center" then x is set so that the element's preferred
-     *  width is centered within the contentWidth:
-     *      x = (contentWidth - layoutElementWidth) * 0.5
+     *  width is centered within the larger of the contentWidth, target width:
+     *      x = (Math.max(contentWidth, target.width) - layoutElementWidth) * 0.5
      *
      *  - If horizontalAlign is "right" the x is set so that the element's right
      *  edge is aligned with the the right edge of the content:
-     *      x = (contentWidth - layoutElementWidth)
+     *      x = (Math.max(contentWidth, target.width) - layoutElementWidth)
      *
      *  Implementation note: unless horizontalAlign is either "justify" or
      *  "left", the layout elements' x or width depends on the contentWidth.
@@ -984,6 +985,7 @@

         layoutTarget.beginVirtualLayout(startIndex);
         var contentWidth:Number = llv.minorSize;
+        var containerWidth:Number = Math.max(contentWidth, targetWidth);
         var y:Number = llv.start(startIndex);
         var index:int = startIndex;

@@ -994,7 +996,7 @@
             var elt:ILayoutElement = layoutTarget.getLayoutElementAt(index);
             var h:Number = (isNaN(fixedRowHeight)) ? elt.getPreferredBoundsHeight() : fixedRowHeight;
             var w:Number = calculateElementWidth(elt, targetWidth, contentWidth);
-            var x:Number = calculateElementX(elt, w, contentWidth);
+            var x:Number = calculateElementX(elt, w, containerWidth);
             elt.setLayoutBoundsPosition(x, y);
             elt.setLayoutBoundsSize(w, h);
             llv.cacheDimensions(index, elt);
@@ -1007,13 +1009,14 @@
         if (llv.minorSize != contentWidth)
         {
             contentWidth = llv.minorSize;
+            containerWidth = Math.max(contentWidth, targetWidth);
             if ((horizontalAlign != HorizontalAlign.LEFT) && (horizontalAlign != HorizontalAlign.JUSTIFY))
             {
                 for (index = startIndex; index <= endIndex; index++)
                 {
                     elt = layoutTarget.getLayoutElementAt(index);
                     w = calculateElementWidth(elt, targetWidth, contentWidth);
-                    x = calculateElementX(elt, w, contentWidth);
+                    x = calculateElementX(elt, w, containerWidth);
                     elt.setLayoutBoundsPosition(x, elt.getLayoutBoundsY());
                     elt.setLayoutBoundsSize(w, elt.getLayoutBoundsHeight());
                 }
@@ -1039,7 +1042,7 @@
         // If horizontalAlign is left, we don't need to figure out the contentWidth
         // Otherwise the contentWidth is used to position the element and even size
         // the element if it's "contentJustify" or "justify".
-        var contentWidth:Number = targetWidth;
+        var containerWidth:Number = targetWidth;

         // TODO: in the center or right case, we end up calculating percentWidth
         // twice.  Once here for the contentWidth and once in distributeHeight
@@ -1058,7 +1061,7 @@
                 else
                     layoutElementWidth = layoutElement.getPreferredBoundsWidth();

-                contentWidth = Math.max(contentWidth, layoutElementWidth);
+                containerWidth = Math.max(containerWidth, layoutElementWidth);
             }
         }

@@ -1070,7 +1073,7 @@
         if (horizontalAlign == HorizontalAlign.JUSTIFY)
             restrictedWidth = targetWidth;
         else if (horizontalAlign == HorizontalAlign.CONTENT_JUSTIFY)
-            restrictedWidth = contentWidth;
+            restrictedWidth = containerWidth;

         distributeHeight(targetWidth, targetHeight, restrictedWidth);

@@ -1103,7 +1106,7 @@
                 continue;

             // Set the layout element's position
-            var x:Number = (contentWidth - layoutElement.getLayoutBoundsWidth()) * hAlign;
+            var x:Number = (containerWidth - layoutElement.getLayoutBoundsWidth()) * hAlign;
             layoutElement.setLayoutBoundsPosition(x, y);

             // Update maxX,Y, first,lastVisibleIndex, and y


Transferred from the Adobe Open Source Subversion Repository

Revision: 3339
Author:   hmuller@adobe.com
Date:     2008-09-24T20:46:33.738343Z

Log Message:
-----------
Added Vertical,HorizontalLayout::updateScrollPosition() overrides
that reset first,lastIndexInView.

QE: No
Doc: No
Checkintests: Pass
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -11,8 +11,9 @@

 package flex.layout
 {
+import flash.display.DisplayObject;
+import flash.geom.Point;
 import flash.geom.Rectangle;
-import flash.display.DisplayObject;
 import flash.events.Event;
 import flash.events.EventDispatcher;

@@ -379,11 +380,11 @@
 	 */
 	public function inView(index:int):Number
 	{
-		var vp:GroupBase = GroupBase(target);
-	    if (!vp)
+		var g:GroupBase = GroupBase(target);
+	    if (!g)
 	        return 0.0;

-        var li:ILayoutItem = vp.getLayoutItemAt(index);
+        var li:ILayoutItem = g.getLayoutItemAt(index);
         if ((li == null) || !li.includeInLayout)
             return 0.0;

@@ -399,8 +400,8 @@
             return 1.0;

         // index is first (r0) or last (r1) visible row
-        var y0:Number = vp.verticalScrollPosition;
-        var y1:Number = y0 + vp.height;
+        var y0:Number = g.verticalScrollPosition;
+        var y1:Number = y0 + g.height;
         var iy0:Number = li.actualPosition.y;
         var iy1:Number = iy0 + li.actualSize.y;
         if (iy0 >= iy1)  // item has 0 or negative height
@@ -411,9 +412,76 @@
             return (iy1 - y0) / (iy1 - iy0);
         else
             return (y1 - iy0) / (iy1 - iy0);
-	}
-
-
+	}
+
+	/**
+	 *  Binary search for the first layout item that contains y.
+	 *
+	 *  This function considers both the item's actual bounds and
+	 *  the gap that follows it to be part of the item.  The search
+	 *  covers index i0 through i1 (inclusive).
+	 *
+	 *  This function is intended for variable height items.
+	 *
+	 *  Returns the index of the item that contains y, or -1.
+	 *
+	 *  Implementation note: currently the inclusion test is slightly
+	 *  incorrect, since we're comparing y with the _closed_ interval
+	 *  from p.y to p.y + s.y + gap.  This is to accomodate checking the
+	 *  "bottom" of the scrollRect, see the computation of i1 in
+	 *  scrollPositionChanged.  One alternative that would restore
+	 *  the more correct open ended interval, would be to check
+	 *  the bottom of the scrollRect less some infintesimally small
+	 *  amount.
+	 *
+	 * @private
+	 */
+	private static function findIndexAt(y:Number, gap:int, g:GroupBase, i0:int, i1:int):int
+	{
+	    var index:int = (i0 + i1) / 2;
+        var item:ILayoutItem = g.getLayoutItemAt(index);
+	    var p:Point = item.actualPosition;
+        var s:Point = item.actualSize;
+        // TBD: deal with null item, includeInLayout false.
+        if ((y >= p.y) && (y <= p.y + s.y + gap))
+            return index;
+        else if (i0 == i1)
+            return -1;
+        else if (y < p.y)
+            return findIndexAt(y, gap, g, i0, Math.max(i0, index-1));
+        else
+            return findIndexAt(y, gap, g, Math.min(index+1, i1), i1);
+	}
+
+   /**
+    *  Updates the first,lastIndexInView properties per the new
+    *  scroll position.
+    *
+    *  @see setIndexInView
+    */
+    override protected function scrollPositionChanged():void
+    {
+        super.scrollPositionChanged();
+
+        var g:GroupBase = target;
+        if (!g)
+            return;
+
+        var r:Rectangle = g.scrollRect;
+        if (!r)
+        {
+            // TBD: find first/last non-null includeInLayout items
+        }
+        // TBD: special case for variableRowHeight false
+        else
+        {
+	        var n:int = Math.max(g.numLayoutItems - 1, 0);
+	        var i0:int = findIndexAt(r.y + gap, gap, g, 0, n);
+	        var i1:int = findIndexAt(r.bottom, gap, g, 0, n);
+	        setIndexInView(i0, i1);
+        }
+    }
+
     private function variableRowHeightMeasure(layoutTarget:GroupBase):void
     {
         var minWidth:Number = 0;


fix TransformController.updateAncestorsAndSelfLocalToWorld() to read the flags properly

--- src/aerys/minko/scene/controller/TransformController.as
+++ src/aerys/minko/scene/controller/TransformController.as
@@ -192,7 +192,8 @@

             while (nodeId >= 0)
             {
-                if ((_transforms[nodeId] as Matrix4x4)._hasChanged || !_flags[nodeId])
+                if ((_transforms[nodeId] as Matrix4x4)._hasChanged
+                    || !(_flags[nodeId] & FLAG_INIT_LOCAL_TO_WORLD))
                     dirtyRoot = nodeId;

                 nodeId = _parentId[nodeId];


Added to do at likely origin of stack overflow issue

--- FlexUnit4/src/org/flexunit/experimental/runners/statements/MethodCompleteWithParamsStatement.as
+++ FlexUnit4/src/org/flexunit/experimental/runners/statements/MethodCompleteWithParamsStatement.as
@@ -97,6 +97,7 @@
 				sendComplete( e );
 			} catch ( e:Error ) {
 				//trace( e.getStackTrace() );
+				//TODO: Trace from this point forward to determine why stack overflow is happening in ParameterizedAssertionError
 				var newError:Error = anchor.reportParameterizedError(e, complete.getArgumentStrings(anchor.nullsOk()));
 				sendComplete( newError );
 			}


fix wrong values for GeometrySanitizer.INDEX_LIMIT and GeometrySanitizer.VERTEX_LIMIT

--- src/aerys/minko/render/geometry/GeometrySanitizer.as
+++ src/aerys/minko/render/geometry/GeometrySanitizer.as
@@ -16,11 +16,8 @@
 	 */
 	public final class GeometrySanitizer
 	{
-//		public static const INDEX_LIMIT		: uint = 524270;
-//		public static const VERTEX_LIMIT	: uint = 65535;
-
-		public static const INDEX_LIMIT		: uint = 5242;
-		public static const VERTEX_LIMIT	: uint = 6553;
+		public static const INDEX_LIMIT		: uint = 524270;
+		public static const VERTEX_LIMIT	: uint = 65535;

 		public static function isValid(indexData		: ByteArray,
 									   vertexData		: ByteArray,


Add an easy way to initialize.
Jeez, this whole thing could *almost* go away if we moved to flash 10
and used Vector, but of course, there's no way to get the type of
Vector. Maybe there is, with describeType(). Can't experiment now.
I'd fall out of my chair if there were.
We need to know in case sending an empty array to the server,
it's still gotta be the right type (with non-empty we could
try examining the first element).

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5742 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/io/TypedArray.as
+++ src/as/com/threerings/io/TypedArray.as
@@ -55,9 +55,13 @@
     /**
      * A factory method to create a TypedArray for holding objects of the specified type.
      */
-    public static function create (of :Class) :TypedArray
+    public static function create (of :Class, initialValues :Array = null) :TypedArray
     {
-        return new TypedArray(getJavaType(of));
+        var ta :TypedArray = new TypedArray(getJavaType(of));
+        if (initialValues != null) {
+            ta.addAll(initialValues);
+        }
+        return ta;
     }

     /**


Force updating the bounding box on VertexStream creation.

--- src/aerys/minko/render/geometry/stream/VertexStream.as
+++ src/aerys/minko/render/geometry/stream/VertexStream.as
@@ -90,7 +90,7 @@

 			_data = value;
 			_changed.execute(this);
-			updateMinMax();
+			updateMinMax(true);
 		}

 		public function get locked() : Boolean
@@ -819,7 +819,7 @@
 			// make sure the ByteArray position is at the end of the buffer
 			bytes.position = start + formatIn.numBytesPerVertex * count * dwordSize;

-			stream._data = data;
+			stream.data = data;

 			return stream;
 		}


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

--- frameworks/projects/framework/src/mx/logging/LogEventLevel.as
+++ frameworks/projects/framework/src/mx/logging/LogEventLevel.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.logging
 {


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

--- frameworks/projects/mx/src/mx/accessibility/MenuBarAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/MenuBarAccImpl.as
@@ -24,6 +24,11 @@
 /**
  *  MenuBarAccImpl is a subclass of AccessibilityImplementation
  *  which implements accessibility for the MenuBar class.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class MenuBarAccImpl extends AccImpl
 {
@@ -104,6 +109,11 @@
 	 *  Afterwards, when instances of MenuBar are initialized,
 	 *  their accessibilityImplementation property
 	 *  will be set to an instance of this class.

+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static function enableAccessibility():void
 	{
@@ -135,6 +145,11 @@
 	 *
 	 *  @param master The UIComponent instance that this AccImpl instance
 	 *  is making accessible.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function MenuBarAccImpl(master:UIComponent)
 	{
@@ -173,6 +188,11 @@
 	 *  Gets the role for the component.
 	 *
 	 *  @param childID uint
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	override public function get_accRole(childID:uint):uint
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 4597
Author:   dloverin@adobe.com
Date:     2009-01-20T18:26:14.900402Z

Log Message:
-----------
FxApplication clean up.
Clean up ASDoc comments and change DisplayObject.name from “application” to “fxApplication”.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Ryan
tests: checkintests, gumbo/core/Group

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

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -40,7 +40,7 @@
 //--------------------------------------

 /**
- *  Dispatched after the Application has been initialized,
+ *  Dispatched after the FxApplication has been initialized,
  *  processed by the LayoutManager, and attached to the display list.
  *
  *  @eventType mx.events.FlexEvent.APPLICATION_COMPLETE
@@ -84,18 +84,20 @@
 [ResourceBundle("core")]

 /**
- *  Flex defines a default, or Application, container that lets you start
+ *  Flex defines a default, or FxApplication, container that lets you start
  *  adding content to your application without explicitly defining
  *  another container.
  *
  *  @mxml
  *
- *
The <Application> tag inherits all of the tag
+ *
The <FxApplication> tag inherits all of the tag
  *  attributes of its superclass and adds the following tag attributes:

  *
  *

- *  <Application
+ *  <FxApplication
  *    Properties
+ *    backgroundColor="white"
+ *    colorCorrection="default"
  *    frameRate="24"
  *    pageTitle"No default"
  *    preloader="No default"
@@ -133,7 +135,7 @@
      */
     public function FxApplication()
     {
-        name = "application";
+        name = "fxApplication";

         UIComponentGlobals.layoutManager = ILayoutManager(
             Singleton.getInstance("mx.managers::ILayoutManager"));
@@ -170,19 +172,19 @@

     /**
      *  @private
-     *  This flag indicates whether the width of the Application instance
+     *  This flag indicates whether the width of the FxApplication instance
      *  can change or has been explicitly set by the developer.
      *  When the stage is resized we use this flag to know whether the
-     *  width of the Application should be modified.
+     *  width of the FxApplication should be modified.
      */
     private var resizeWidth:Boolean = true;

     /**
      *  @private
-     *  This flag indicates whether the height of the Application instance
+     *  This flag indicates whether the height of the FxApplication instance
      *  can change or has been explicitly set by the developer.
      *  When the stage is resized we use this flag to know whether the
-     *  height of the Application should be modified.
+     *  height of the FxApplication should be modified.
      */
     private var resizeHeight:Boolean = true;

@@ -234,8 +236,10 @@
     *  The value of the stage's colorCorrection property. If this application
     *  does not have access to the stage's colorCorrection property,
     *  the value of the colorCorrection property will be reported as
-    *  null. Also, only the main application is allowed to set the colorCorrection
-    *  property.
+    *  null. Only the main application is allowed to set the colorCorrection
+    *  property. If a sub-application's needs to set the color correction property it will
+    *  need to set it via the main application's instance, either directly using an object
+    *  instance or via an event (there is no framework event for this purpose).
     *
     *  @default ColorCorrection.DEFAULT
     */
@@ -275,7 +279,7 @@
     //--------------------------------------------------------------------------

     // These declarations correspond to the MXML-compile-time attributes
-    // allowed on the <Application> tag. These attributes affect the MXML
+    // allowed on the <FxApplication> tag. These attributes affect the MXML
     // compiler, but they aren't actually used in the runtime framework.
     // The declarations appear here in order to provide metadata about these
     // attributes for FlexBuilder.
@@ -475,14 +479,14 @@

     /**
      *  An Object containing name-value
-     *  pairs representing the parameters provided to this Application.
+     *  pairs representing the parameters provided to this FxApplication.
      *
      *
You can use a for-in loop to extract all the names and values
      *  from the parameters Object.

      *
      *
There are two sources of parameters: the query string of the
-     *  Application's URL, and the value of the FlashVars HTML parameter
-     *  (this affects only the main Application).

+     *  FxApplication's URL, and the value of the FlashVars HTML parameter
+     *  (this affects only the main FxApplication).

      */
     public function get parameters():Object
     {
@@ -501,7 +505,7 @@
     mx_internal var _url:String;

     /**
-     *  The URL from which this Application's SWF file was loaded.
+     *  The URL from which this FxApplication's SWF file was loaded.
      */
     public function get url():String
     {
@@ -528,9 +532,9 @@
      *  using MXML, not using ActionScript, as the following example shows:

      *
      *

-     *    <Application viewSourceURL="http://path/to/source">
+     *    <FxApplication viewSourceURL="http://path/to/source">
      *      ...
-     *    </Application>

+     *    </FxApplication>

      *
      */
     public function get viewSourceURL():String
@@ -557,7 +561,7 @@
      */
     override public function initialize():void
     {
-        // trace("app initialize app");
+        // trace("FxApp initialize FxApp");

         var sm:ISystemManager = systemManager;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17493
Author:   jszeto@adobe.com
Date:     2010-08-27T00:01:51.991154Z

Log Message:
-----------
Mobile disable toolTips

SDK-27595 - Disable ToolTips when using InteractionMode.TOUCH

In Application, if the interactionMode is touch, then turn off tooltips.

A developer can turn on tooltips by setting ToolTipManager.enabled = true in their application startup code.

QE notes: none
Doc notes: We need to document that tooltips are not supported.
Bugs: SDK-27595
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -27,6 +27,7 @@

 import mx.core.FlexGlobals;
 import mx.core.IInvalidating;
+import mx.core.InteractionMode;
 import mx.core.Singleton;
 import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
@@ -34,6 +35,7 @@
 import mx.managers.IActiveWindowManager;
 import mx.managers.ILayoutManager;
 import mx.managers.ISystemManager;
+import mx.managers.ToolTipManager;
 import mx.styles.CSSStyleDeclaration;
 import mx.styles.StyleManager;
 import mx.utils.BitFlagUtil;
@@ -1178,6 +1180,21 @@

         return state;
     }
+
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        super.styleChanged(styleProp);
+
+        if (!styleProp || styleProp == "styleName" || styleProp == "interactionMode")
+        {
+            // Turn off tooltip support for all mobile applications
+            ToolTipManager.enabled = getStyle("interactionMode") != InteractionMode.TOUCH;
+        }
+    }

     //----------------------------------
     //  unscaledHeight


Transferred from the Adobe Open Source Subversion Repository

Revision: 6630
Author:   jszeto@adobe.com
Date:     2009-05-05T05:06:48.999066Z

Log Message:
-----------
Improved positioning logic for PopUpAnchor

SDK-20821 - DropDownList does not position dropDown to the left of anchor button when needed

Made some improvements to the PopUpAnchor positioning logic. It now uses the following algorithm:
- If the popUp does not fit on the screen, then reverse the popUpPosition (ex. below -> above, left-> right)
- If the popUp still does not fit on the screen, then go back to the original popUpPosition
- Adjust the position in the horizontal and vertical directions enough for the popUp to fit on the screen

The positioning logic does not handle rotation, but it does handle scale.

Added a protected function positionPopUp whose default implementation performs the above logic. Subclasses can override this to perform their own positioning algorithm.

Moved the CompoundTransform.decomposeMatrix function into the MatrixUtil class.

QE Notes: N/A
Doc Notes: N/A
Bugs: SDK-20821
Reviewer: Deepa

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>

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

--- frameworks/projects/spark/src/spark/components/PopUpAnchor.as
+++ frameworks/projects/spark/src/spark/components/PopUpAnchor.as
@@ -25,6 +25,9 @@

 import mx.core.IFlexDisplayObject;
 import mx.core.IFactory;
+
+import flash.geom.Rectangle;
+import mx.utils.MatrixUtil;

 use namespace mx_internal;

@@ -66,6 +69,13 @@
 	private var popUpIsDisplayed:Boolean = false;
 	private var addedToStage:Boolean = false;

+	private static var decomposition:Vector.<Number> = new Vector.<Number>();
+	decomposition.push(0);
+	decomposition.push(0);
+	decomposition.push(0);
+	decomposition.push(0);
+	decomposition.push(0);
+
 	//--------------------------------------------------------------------------
     //
     //  Properties
@@ -301,14 +311,108 @@
 	 *  or when updatePopUpTransform() is called. Override this function to
 	 *  alter the position of the popUp.
 	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	protected function positionPopUp():void
-	{
-
+	 *  @return The absolute position of the popUp in the global coordinate system
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
+	 */
+	protected function positionPopUp():Point
+	{
+		// This implementation doesn't handle rotation
+		var matrix:Matrix = $transform.concatenatedMatrix;
+		var regPoint:Point = new Point();
+
+		var popUpBounds:Rectangle = new Rectangle();
+		determinePosition(popUpPosition, popUp.width, popUp.height,
+						  matrix, regPoint, popUpBounds);
+
+		var adjustedPosition:String;
+
+		// Position the popUp in the opposite direction if it
+		// does not fit on the screen.
+		if (screen)
+		{
+			switch(popUpPosition)
+			{
+				case "below" :
+					if (popUpBounds.bottom > screen.bottom)
+						adjustedPosition = "above";
+					break;
+				case "above" :
+					if (popUpBounds.top < screen.top)
+						adjustedPosition = "below";
+					break;
+				case "left" :
+					if (popUpBounds.left < screen.left)
+						adjustedPosition = "right";
+					break;
+				case "right" :
+					if (popUpBounds.right > screen.right)
+						adjustedPosition = "left";
+					break;
+			}
+		}
+
+		// Get the new registration point based on the adjusted position
+		if(adjustedPosition != null)
+		{
+			var adjustedRegPoint:Point = new Point();
+			var adjustedBounds:Rectangle = new Rectangle();
+			determinePosition(adjustedPosition, popUp.width, popUp.height,
+							  matrix, adjustedRegPoint, adjustedBounds);
+
+			if (screen)
+			{
+				// If we adjusted the position but the popUp still doesn't fit,
+				// then revert to the original position.
+				switch(adjustedPosition)
+				{
+					case "below" :
+						if (popUpBounds.bottom > screen.bottom)
+							adjustedPosition = null;
+						break;
+					case "above" :
+						if (popUpBounds.top < screen.top)
+							adjustedPosition = null;
+						break;
+					case "left" :
+						if (popUpBounds.left < screen.left)
+							adjustedPosition = null;
+						break;
+					case "right" :
+						if (popUpBounds.right > screen.right)
+							adjustedPosition = null;
+						break;
+				}
+			}
+
+			if (adjustedPosition != null)
+			{
+				regPoint = adjustedRegPoint;
+				popUpBounds = adjustedBounds;
+			}
+		}
+
+		MatrixUtil.decomposeMatrix(decomposition, matrix, 0, 0);
+		var concatScaleX:Number = decomposition[3];
+		var concatScaleY:Number = decomposition[4];
+
+		// If the popUp still doesn't fit, then nudge it
+		// so it is completely on the screen. Make sure to include scale.
+
+		if (popUpBounds.top < screen.top)
+			regPoint.y += (screen.top - popUpBounds.top) / concatScaleY;
+		else if (popUpBounds.bottom > screen.bottom)
+			regPoint.y -= (popUpBounds.bottom - screen.bottom) / concatScaleY;
+
+		if (popUpBounds.left < screen.left)
+			regPoint.x += (screen.left - popUpBounds.left) / concatScaleX;
+		else if (popUpBounds.right > screen.right)
+			regPoint.x -= (popUpBounds.right - screen.right) / concatScaleX;
+
+		return matrix.transformPoint(regPoint);
 	}

 	//--------------------------------------------------------------------------
@@ -357,14 +461,13 @@
 				popUpFactory.reset();
 			}*/
 		}
-
-
-	}
-
-	/**
-	 *  @private
-	 */
-	private function determinePosition(placement:String,popUpWidth:Number,popUpHeight:Number,registrationPoint:Point):void
+	}
+
+	/**
+	 *  @private
+	 */
+	mx_internal function determinePosition(placement:String, popUpWidth:Number, popUpHeight:Number,
+										   matrix:Matrix, registrationPoint:Point, bounds:Rectangle):void
 	{
 		switch(placement)
 		{
@@ -392,6 +495,20 @@
 				// already 0,0
 				break;
 		}
+
+		var globalTL:Point = matrix.transformPoint(registrationPoint);
+		registrationPoint.y += popUp.height;
+		var globalBL:Point = matrix.transformPoint(registrationPoint);
+		registrationPoint.x += popUp.width;
+		var globalBR:Point = matrix.transformPoint(registrationPoint);
+		registrationPoint.y -= popUp.height;
+		var globalTR:Point = matrix.transformPoint(registrationPoint);
+		registrationPoint.x -= popUp.width;
+
+		bounds.left = Math.min(globalTL.x, globalBL.x, globalBR.x, globalTR.x);
+		bounds.right = Math.max(globalTL.x, globalBL.x, globalBR.x, globalTR.x);
+		bounds.top = Math.min(globalTL.y, globalBL.y, globalBR.y, globalTR.y);
+		bounds.bottom = Math.max(globalTL.y, globalBL.y, globalBR.y, globalTR.y);
 	}

 	/**
@@ -404,54 +521,19 @@

 		var m:Matrix = $transform.concatenatedMatrix;

-		var registrationPoint:Point = new Point();
 		var popUpWidth:Number = autoSizePopUpWidth ? unscaledWidth : popUp.getPreferredBoundsWidth(false);
 		var popUpHeight:Number = autoSizePopUpHeight ? unscaledHeight : popUp.getPreferredBoundsHeight(false);

-		determinePosition(popUpPosition,popUpWidth,popUpHeight,registrationPoint);
-		var globalTL:Point = m.transformPoint(registrationPoint);
-		registrationPoint.x += popUpWidth;
-		registrationPoint.y += popUpHeight;
-		var globalBR:Point = m.transformPoint(registrationPoint);
-		var adjustedPlacement:String;
-
-		if (screen)
-		{
-			switch(popUpPosition)
-			{
-				case "below":
-					if(globalBR.y > screen.bottom)
-						adjustedPlacement = "above";
-					break;
-				case "above":
-					if(globalTL.y < screen.top)
-						adjustedPlacement = "below";
-					break;
-				case "left":
-					if(globalBR.x < screen.left)
-						adjustedPlacement = "right";
-					break;
-				case "right":
-					if(globalTL.y > screen.right)
-						adjustedPlacement = "left";
-					break;
-			}
-		}
-
-		if(adjustedPlacement != null)
-		{
-			determinePosition(adjustedPlacement,popUpWidth,popUpHeight,registrationPoint);
-			globalTL = m.transformPoint(registrationPoint);
-		}
-
 		// Set the dimensions explicitly because UIComponents always set themselves to their
-		// measured / explicit dimensions if they are parented by the SystemManager.
+		// measured / explicit dimensions if they are parented by the SystemManager.
 		popUp.width = popUpWidth;
 		popUp.height = popUpHeight;

+		var popUpPoint:Point = positionPopUp();
+
 		// Position the popUp.
-		m.tx = globalTL.x;
-		m.ty = globalTL.y;
+		m.tx = popUpPoint.x;
+		m.ty = popUpPoint.y;
 		popUp.setLayoutMatrix(m,false);
 	}

@@ -497,5 +579,6 @@
 		addedToStage = false;
 		// TODO (jszeto) Remove popup from PopUpManager
 	}
+
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3387
Author:   hmuller@adobe.com
Date:     2008-09-26T21:11:36.963833Z

Log Message:
-----------
Added support for page and step scrolling in Scroller.  The workhorse
for this change is a new pair of LayoutBase methods:

  verticalScrollPositionDelta(unit:uint):Number
  horizontalScrollPositionDelta(unit:uint):Number

The "scrolling unit" parameter is a flash.ui.Keyboard constant, one of
UP/DOWN (LEFT,RIGHT) PAGE_UP,DOWN, HOME,END.  Adding the delta value
to the corresponding IViewport scroll position property produces the
scroll.  For example:

  var dy:Number = vp.verticalScrollPositionDelta(Keyboard.PAGE_DOWN);
  vp.verticalScrollPosition += dy;

This example scrolls IViewport vp down by a page.  The API is defined
in terms of "delta" offsets, rather than just adjusting the scroll
position directly, to make it easy to animate the scroll position
properties.

The implementation of these methods in the layout classes deals with
variable size rows/columns, partial visibility, etc.  For example, if
you page down in a VerticalLayout when the current last row is only
partially visible, then adding the verticalScrollPositionDelta to the
verticalScrollPosition will top justify the last row.  If the last row
is completely visible, then the delta is bigger: enough to top justify
the row _below_ the current last row.

Presently the Scroller's scrollbars do not support page/step
scrolling per the new API.  One can only drive the new API
with the keyboard, and then only when some descendant of the
viewport has the focus.

Note also: in the next version of this code, the scrollPositionDelta methods
will be defined by IViewport.

QE: No
Doc: No
Checkintests: Pass
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -16,6 +16,7 @@
 import flash.geom.Rectangle;
 import flash.events.Event;
 import flash.events.EventDispatcher;
+import flash.ui.Keyboard;

 import flex.core.GroupBase;
 import flex.graphics.IGraphicElement;
@@ -482,6 +483,130 @@
         }
     }

+   /**
+    *  Returns the actual position/size Rectangle of the first non-null
+    *  includeInLayout item, beginning with the item at index i.
+    *
+    *  Returns null if no such item can be found.
+    *
+    *  @private
+    */
+    private static function itemScan(g:GroupBase, i:int, dir:int):Rectangle
+    {
+    	var n:int = g.numLayoutItems;
+    	while((i >= 0) && (i < n))
+    	{
+    	   var item:ILayoutItem = g.getLayoutItemAt(i);
+    	   if (item && item.includeInLayout)
+    	   {
+	           var p:Point = item.actualPosition;
+	           var s:Point = item.actualSize;
+	           return new Rectangle(p.x, p.y, s.x, s.y);
+    	   }
+    	   i += dir;
+    	}
+    	return null;
+    }
+
+    /**
+     *  Overrides the default handling of UP/DOWN and
+     *  PAGE_UP, PAGE_DOWN.
+     *
+     *

+     *
+     *

+     *  UP
+     *  If the firstIndexInView item is partially visible then top justify
+     *  it, otherwise top justify the item at the previous index.
+     *

+     *
+     *

+     *  DOWN
+     *  If the lastIndexInView item is partially visible, then bottom justify
+     *  it, otherwise bottom justify the item at the following index.
+     *

+     *
+     *  PAGE_UP
+     *

+     *  If the firstIndexInView item is partially visible, then bottom
+     *  justify it, otherwise bottom justify item at the previous index.
+     *

+     *
+     *

+     *  PAGE_DOWN
+     *  If the lastIndexInView item is partially visible, then top
+     *  justify it, otherwise top justify item at the following index.
+     *

+     *
+     *

+     *
+     *  @see firstIndexInView
+     *  @see lastIndexInView
+     *  @see verticalScrollPosition
+     */
+    override public function verticalScrollPositionDelta(unit:uint):Number
+    {
+        var g:GroupBase = target;
+        if (!g)
+            return 0;
+
+        var maxIndex:int = g.numLayoutItems -1;
+        if (maxIndex < 0)
+            return 0;
+
+        var scrollR:Rectangle = g.scrollRect;
+        if (!scrollR)
+            return 0;
+
+        var maxDelta:Number = g.contentHeight - scrollR.height - scrollR.y;
+        var minDelta:Number = -scrollR.y;
+        var itemR:Rectangle;
+        var firstIndex:int;
+        var lastIndex:int;
+
+        switch (unit)
+        {
+            case Keyboard.UP:
+            {
+                firstIndex = firstIndexInView;
+                if (inView(firstIndex) >= 1)
+                   firstIndex = Math.max(0, firstIndex -1);
+                itemR = itemScan(g, firstIndex, -1);
+                return (itemR) ? Math.max(minDelta, itemR.top - scrollR.top) : 0;
+            }
+
+            case Keyboard.DOWN:
+            {
+            	lastIndex = lastIndexInView;
+            	if (inView(lastIndex) >= 1)
+            	   lastIndex = Math.min(maxIndex, lastIndex + 1);
+            	itemR = itemScan(g, lastIndex, +1);
+            	return (itemR) ? Math.min(maxDelta, itemR.bottom - scrollR.bottom) : 0;
+            }
+
+            case Keyboard.PAGE_UP:
+            {
+                firstIndex = firstIndexInView;
+                if (inView(firstIndex) >= 1)
+                   firstIndex = Math.max(0, firstIndex -1);
+                itemR = itemScan(g, firstIndex, -1);
+                return (itemR) ? Math.max(minDelta, itemR.bottom - scrollR.bottom) : 0;
+            }
+
+            case Keyboard.PAGE_DOWN:
+            {
+                lastIndex = lastIndexInView;
+                if (inView(lastIndex) >= 1)
+                   lastIndex = Math.min(maxIndex, lastIndex + 1);
+                itemR = itemScan(g, lastIndex, +1);
+                return (itemR) ? Math.min(maxDelta, itemR.top - scrollR.y) : 0;
+            }
+
+            default:
+                return super.verticalScrollPositionDelta(unit);
+        }
+    }
+
     private function variableRowHeightMeasure(layoutTarget:GroupBase):void
     {
         var minWidth:Number = 0;


Removed unused import.

Removed unused import.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5507 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/util/ParameterUtil.as
+++ src/as/com/threerings/util/ParameterUtil.as
@@ -29,8 +29,6 @@

 import flash.net.URLLoader;
 import flash.net.URLRequest;
-
-import flash.system.Capabilities;

 /**
  * A utility for loading parameters from an XML file when run from


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

--- frameworks/projects/automation/src/mx/automation/delegates/controls/VideoDisplayAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/controls/VideoDisplayAutomationImpl.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.
 //
 ////////////////////////////////////////////////////////////////////////////////


now setting the viewport width/height in the scene bindings at every frame in RenderingController.sceneEnterFrameHandler()

--- src/aerys/minko/scene/controller/scene/RenderingController.as
+++ src/aerys/minko/scene/controller/scene/RenderingController.as
@@ -294,7 +294,12 @@
 												target 		: BitmapData,
 												time		: Number) : void
 		{
-			_scene.bindings.setProperty("time", time);
+			//_scene.bindings.setProperty("time", time);
+			_scene.bindings.setProperties({
+				time			: time,
+				viewportWidth	: viewport.width,
+				viewportHeight	: viewport.height
+			});
 		}

 		private function sceneExitFrameHandler(scene 	: Scene,


Update RenderingController.as

Update RenderingController.as

--- src/aerys/minko/scene/controller/scene/RenderingController.as
+++ src/aerys/minko/scene/controller/scene/RenderingController.as
@@ -302,7 +302,7 @@
 				previous = pass;

 				// sort draw calls if necessary
-				if (pass.settings.depthSortDrawCalls)
+				if (pass.settings.depthSortDrawCalls && numCalls > 1)
 				{
 					for (var drawCallId : uint = 0; drawCallId < numCalls; ++drawCallId)
 						sortValues[drawCallId] = -(calls[drawCallId] as DrawCall).depth;


use Strings for states

use Strings for states

--- runtime/src/main/as/flump/display/Movie.as
+++ runtime/src/main/as/flump/display/Movie.as
@@ -365,7 +365,7 @@
     /** @private */
     protected var _frame :int = NO_FRAME, _stopFrame :int = NO_FRAME;
     /** @private */
-    protected var _state :int = PLAYING;
+    protected var _state :String = PLAYING;
     /** @private */
     protected var _playTime :Number = 0;
     /** @private */
@@ -388,9 +388,9 @@

     private static const NO_FRAME :int = -1;

-    private static const STOPPED :int = 0;
-    private static const PLAYING_CHILDREN_ONLY :int = 1;
-    private static const PLAYING :int = 2;
+    private static const STOPPED :String = "STOPPED";
+    private static const PLAYING_CHILDREN_ONLY :String = "PLAYING_CHILDREN_ONLY";
+    private static const PLAYING :String = "PLAYING";
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 14900
Author:   deeptika@adobe.com
Date:     2010-03-22T11:02:50.703900Z

Log Message:
-----------
Merging revision 14899 from 4.x branch

Setting ChartLabel's layoutDirection to LTR always, as it is similar to TextBase / RichEditableText etc.. that are mentioned on the LayoutMirroring spec.

Also using newly added LayoutDirection constants file.

QE notes:
Doc notes:
Bugs: FLEXDMV-2361 ([Mirroring] Axis titles are inverted and unreadable when layoutDirection is rtl)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/series/BarSeries.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/chartClasses/ChartBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/chartClasses/ChartLabel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/series/ColumnSeries.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/series/PieSeries.as</path>

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/ChartBase.as
@@ -5032,7 +5032,7 @@
 		proxyOrigin = globalToLocal(proxyOrigin);

 		var xOffset:Number;
-		if(layoutDirection == "rtl")
+		if(layoutDirection == LayoutDirection.RTL)
 			xOffset = - (proxyOrigin.x + event.localX);
 		else
 			xOffset = - (proxyOrigin.x - event.localX);


Transferred from the Adobe Open Source Subversion Repository

Revision: 3084
Author:   gosmith@adobe.com
Date:     2008-09-03T21:36:10.316853Z

Log Message:
-----------
The Gumbo TextArea now supports scrolling.

When the Scroller component is ready for use, TextAreaSkin will use it, but for now I've made TextArea have optional skin parts named horizontalScrollBar and verticalScrollBar. Their presence or absence is determined by new properties, horizontalScrollPolicy and verticalScrollPolicy, which can be "on" or "off". (An "auto" setting is not yet supported, but will be for Scroller.) By default the vertical scroll bar is on and the horizontal scroll bar is off.

Also, TextArea no longer extends TextInput. Instead both extend a new TextBase class.

Reviewer: Deepa and Glenn
Bugs: -
QA: No
Doc: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/TextAreaSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextInput.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -24,6 +24,7 @@
 import flash.text.engine.TextLine;

 import flex.events.TextOperationEvent;
+import flex.intf.IViewport;
 import flex.utils.TextUtil;

 import mx.core.UIComponent;
@@ -92,7 +93,7 @@
 /**
  *  The TextView class ...
  */
-public class TextView extends UIComponent
+public class TextView extends UIComponent implements IViewport
 {
     include "../core/Version.as";

@@ -1220,6 +1221,8 @@
      */
     private var horizontalScrollPositionChanged:Boolean = false;

+    [Bindable("scrollPositionChanged")]
+
     /**
      *  Documentation is not currently available.
      */
@@ -1414,6 +1417,8 @@
      */
     private var verticalScrollPositionChanged:Boolean = false;

+    [Bindable("scrollPositionChanged")]
+
     /**
      *  Documentation is not currently available.
      */
@@ -1785,17 +1790,19 @@
             CompositionCompletionEvent.COMPOSITION_COMPLETE,
             textFlow_compositionCompleteHandler);

+        textFlow.addEventListener(Event.SCROLL, textFlow_scrollHandler);
+
         textFlow.addEventListener(
             SelectionEvent.SELECTION_CHANGE,
-            editManager_selectionChangeHandler);
+            textFlow_selectionChangeHandler);

         textFlow.addEventListener(
             FlowOperationEvent.FLOW_OPERATION_BEGIN,
-            editManager_flowOperationBeginHandler);
+            textFlow_flowOperationBeginHandler);

         textFlow.addEventListener(
             FlowOperationEvent.FLOW_OPERATION_END,
-            editManager_flowOperationEndHandler);
+            textFlow_flowOperationEndHandler);
     }

     /**
@@ -2001,6 +2008,8 @@

     /**
      *  @private
+     *  Called when the TextFlow dispatches a 'compositionComplete' event
+     *  when it has recomposed the text into TextLines.
      */
     private function textFlow_compositionCompleteHandler(
                                     event:CompositionCompletionEvent):void
@@ -2022,12 +2031,34 @@

     /**
      *  @private
-     *  Called when the EditManager dispatches a 'selectionChange' event.
-     */
-    private function editManager_selectionChangeHandler(
+     *  Called when the TextFlow dispatches a 'scroll' event
+     *  as it autoscrolls.
+     */
+    private function textFlow_scrollHandler(event:Event):void
+    {
+        var newHorizontalScrollPosition:Number =
+            textFlow.controller.horizontalScrollPosition;
+        var newVerticalScrollPosition:Number =
+            textFlow.controller.verticalScrollPosition;
+
+        if (newHorizontalScrollPosition != _horizontalScrollPosition ||
+            newVerticalScrollPosition != _verticalScrollPosition)
+        {
+            _horizontalScrollPosition = newHorizontalScrollPosition;
+            _verticalScrollPosition = newVerticalScrollPosition;
+
+            dispatchEvent(new Event("scrollPositionChanged"))
+        }
+    }
+
+    /**
+     *  @private
+     *  Called when the TextFlow dispatches a 'selectionChange' event.
+     */
+    private function textFlow_selectionChangeHandler(
                         event:SelectionEvent):void
     {
-        _selectionAnchorPosition = textFlow.interactionManager.anchorPosition; // event.target isn't useful
+        _selectionAnchorPosition = textFlow.interactionManager.anchorPosition;
         _selectionActivePosition = textFlow.interactionManager.activePosition;

         dispatchEvent(new Event("selectionChange"));
@@ -2035,10 +2066,10 @@

     /**
      *  @private
-     *  Called when the EditManager dispatches an 'operationEnd' event
+     *  Called when the TextFlow dispatches an 'operationEnd' event
      *  before an editing operation.
      */
-    private function editManager_flowOperationBeginHandler(
+    private function textFlow_flowOperationBeginHandler(
                         event:FlowOperationEvent):void
     {
         //trace("operationBegin");
@@ -2073,10 +2104,10 @@

     /**
      *  @private
-     *  Called when the EditManager dispatches an 'operationEnd' event
+     *  Called when the TextFlow dispatches an 'operationEnd' event
      *  after an editing operation.
      */
-    private function editManager_flowOperationEndHandler(
+    private function textFlow_flowOperationEndHandler(
                         event:FlowOperationEvent):void
     {
         //trace("operationEnd");


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 5135
Author:   egeorgie@adobe.com
Date:     2009-03-02T18:07:53.499277Z

Log Message:
-----------
PARB changes to FxButton
- FxButton is no longer IDataRenderer
- FxToggleButton is no longer ISelectableRenderer
- FxButtonBar's default skin now uses a subclass of FxToggleButton that implements both IDataRenderer and ISelectableRenderer
- "labelField" name of skin parts changed to "labelElement" for all Spark skins.
- Some minor tweaks, renames

QE Notes: None
Doc Notes:
Bugs: None
Reviewer: Glenn
tests: checkintests, mustella (QA ran a cyclone and failing tests are excluded)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxFocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxDefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxToggleButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxCheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxRadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
@@ -133,7 +133,7 @@
     }

     //----------------------------------
-    //  labelField
+    //  labelElement
     //----------------------------------

     /**
@@ -145,7 +145,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var labelField:TextGraphicElement;
+    public var labelElement:TextGraphicElement;

     //--------------------------------------------------------------------------
     //
@@ -162,13 +162,13 @@
      */
     override public function get baselinePosition():Number
     {
-        if (!mx_internal::validateBaselinePosition() || !labelField)
+        if (!mx_internal::validateBaselinePosition() || !labelElement)
             return super.baselinePosition;

-        var labelPosition:Point = globalToLocal(labelField.parent.localToGlobal(
-            new Point(labelField.x, labelField.y)));
+        var labelPosition:Point = globalToLocal(labelElement.parent.localToGlobal(
+            new Point(labelElement.x, labelElement.y)));

-        return labelPosition.y + labelField.baselinePosition;
+        return labelPosition.y + labelElement.baselinePosition;
     }

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


Made SingleImagePlotter implement IPlotterWithGeometries so that it
can be used with getOverlappingQKeys. Its data is currently a
point--might be better to make it a polygon. Formatted some of the
code.

Tested with kyle.xml by adding a marker over a state in the map and
calling selectRecords("marker") through javascript and observing that
it worked.

Change-Id: I856519b3b3f5a3af56205b254553ebdfb006ecb2

--- WeaveUI/src/weave/visualization/plotters/SingleImagePlotter.as
+++ WeaveUI/src/weave/visualization/plotters/SingleImagePlotter.as
@@ -1,3 +1,22 @@
+/*
+    Weave (Web-based Analysis and Visualization Environment)
+    Copyright (C) 2008-2011 University of Massachusetts Lowell
+
+    This file is a part of Weave.
+
+    Weave is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License, Version 3,
+    as published by the Free Software Foundation.
+
+    Weave is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with Weave.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
 package weave.visualization.plotters
 {
 	import flash.display.Bitmap;
@@ -6,47 +25,67 @@
 	import flash.geom.Point;
 	import flash.net.URLRequest;

-	import mx.controls.Alert;
 	import mx.core.BitmapAsset;
 	import mx.rpc.events.FaultEvent;
 	import mx.rpc.events.ResultEvent;

 	import weave.api.WeaveAPI;
+	import weave.api.data.IQualifiedKey;
+	import weave.api.data.ISimpleGeometry;
 	import weave.api.getCallbackCollection;
 	import weave.api.primitives.IBounds2D;
 	import weave.api.registerLinkableChild;
 	import weave.api.reportError;
-	import weave.core.ErrorManager;
+	import weave.api.ui.IPlotterWithGeometries;
 	import weave.core.LinkableNumber;
 	import weave.core.LinkableString;
 	import weave.core.SessionManager;
-	import weave.data.AttributeColumns.RunningTotalColumn;
-	import weave.primitives.Bounds2D;
+	import weave.primitives.SimpleGeometry;
 	import weave.utils.BitmapText;
-	import weave.utils.BitmapUtils;
-
-	public class SingleImagePlotter extends AbstractPlotter
+
+	/**
+	 * A plotter for drawing a single image onto a tool.
+	 *
+	 * @author skolman
+	 * @author kmonico
+	 */
+	public class SingleImagePlotter extends AbstractPlotter implements IPlotterWithGeometries
 	{
 		public function SingleImagePlotter()
 		{
 		}

-
-		public const horizontalAlign:LinkableString =  registerLinkableChild(this,new LinkableString(BitmapText.HORIZONTAL_ALIGN_LEFT));
+		/**
+		 * The horizontal alignment used for any text.
+		 */
+		public const horizontalAlign:LinkableString =  registerLinkableChild(this, new LinkableString(BitmapText.HORIZONTAL_ALIGN_LEFT));
+		/**
+		 * The vertical alignment used for any text.
+		 */
 		public const verticalAlign:LinkableString = registerLinkableChild(this, new LinkableString(BitmapText.VERTICAL_ALIGN_TOP));

-		public const dataX:LinkableNumber = registerLinkableChild(this,new LinkableNumber());
-		public const dataY:LinkableNumber = registerLinkableChild(this,new LinkableNumber());
-
-		public const dataWidth:LinkableNumber = registerLinkableChild(this,new LinkableNumber());
-		public const dataHeight:LinkableNumber = registerLinkableChild(this,new LinkableNumber());
-
-		public const imageURL:LinkableString = registerLinkableChild(this,new LinkableString(),handleImageURLChange);
-
-		private var _tempDataBounds:IBounds2D;
-		private var _tempScreenBounds:IBounds2D;
-		private var imageBitmapData:BitmapData;
-		private var translationMatrix:Matrix = new Matrix();
+		/**
+		 * The X coordinate in original unprojected data coordinates.
+		 */
+		public const dataX:LinkableNumber = registerLinkableChild(this, new LinkableNumber());
+		/**
+		 * The Y coordinate in original unprojected data coordinates.
+		 */
+		public const dataY:LinkableNumber = registerLinkableChild(this, new LinkableNumber());
+
+		/**
+		 * The width of the image in unprojected data coordinates.
+		 */
+		public const dataWidth:LinkableNumber = registerLinkableChild(this, new LinkableNumber());
+		/**
+		 * The height of the image in unprojected data coordinates.
+		 */
+		public const dataHeight:LinkableNumber = registerLinkableChild(this, new LinkableNumber());
+
+		/**
+		 * The URL of the image to download.
+		 */
+		public const imageURL:LinkableString = registerLinkableChild(this, new LinkableString(), handleImageURLChange);

 		[Embed(source='/weave/resources/images/red-circle.png')]
 		private var defaultImageSource:Class;
@@ -56,13 +95,13 @@
 			_tempDataBounds = dataBounds;
 			_tempScreenBounds = screenBounds;

-			if(isNaN(dataX.value) || isNaN(dataY.value) )
+			if(isNaN(dataX.value) || isNaN(dataY.value))
 				return;

 			if(imageBitmapData == null)
 			{
 				if(imageURL.value)
-					WeaveAPI.URLRequestUtils.getContent(new URLRequest(imageURL.value),handleImageRequest,handleImageFaultRequest,imageURL.value);
+					WeaveAPI.URLRequestUtils.getContent(new URLRequest(imageURL.value), handleImageRequest, handleImageFaultRequest, imageURL.value);
 				else
 				{
 					var image:BitmapAsset = new defaultImageSource() as BitmapAsset;
@@ -79,16 +118,13 @@

 		private function plotBitmapData(destination:BitmapData):void
 		{
-			var tempPoint:Point = new Point(dataX.value,dataY.value);
-			_tempDataBounds.projectPointTo(tempPoint,_tempScreenBounds);
-
+			var tempPoint:Point = new Point(dataX.value, dataY.value);
+			_tempDataBounds.projectPointTo(tempPoint, _tempScreenBounds);

 			translationMatrix.identity();
-

 			var xOffset:Number=0;
 			var yOffset:Number=0;
-

 			switch (verticalAlign.value)
 			{
@@ -97,7 +133,7 @@
 					yOffset = 0;
 					break;
 				case BitmapText.VERTICAL_ALIGN_CENTER:
-					yOffset = -imageBitmapData.height/2;
+					yOffset = -imageBitmapData.height / 2;
 					break;
 				case BitmapText.VERTICAL_ALIGN_BOTTOM:
 					yOffset = -imageBitmapData.height;
@@ -111,7 +147,7 @@
 					xOffset = 0;
 					break;
 				case BitmapText.HORIZONTAL_ALIGN_CENTER:
-					xOffset = -imageBitmapData.width/2;
+					xOffset = -imageBitmapData.width / 2;
 					break;
 				case BitmapText.HORIZONTAL_ALIGN_RIGHT: // x is aligned to right side of text
 					xOffset = -imageBitmapData.width;
@@ -119,12 +155,14 @@
 			}
 			translationMatrix.translate(xOffset,yOffset);

-			var scaleWidth:Number = _tempScreenBounds.getWidth() / _tempDataBounds.getWidth()/imageBitmapData.width*dataWidth.value;
-			var scaleHeight:Number = -_tempScreenBounds.getHeight() / _tempDataBounds.getHeight()/imageBitmapData.height*dataHeight.value;
+			var scaleWidth:Number = dataWidth.value * _tempScreenBounds.getWidth() / _tempDataBounds.getWidth() / imageBitmapData.width;
+			var scaleHeight:Number = dataHeight.value * -_tempScreenBounds.getHeight() / _tempDataBounds.getHeight() / imageBitmapData.height;
+
 			if(isNaN(dataWidth.value))
 			{
-				scaleWidth =1;
-			}
+				scaleWidth = 1;
+			}
+
 			if(isNaN(dataHeight.value))
 			{
 				scaleHeight = 1;
@@ -132,22 +170,36 @@

 			translationMatrix.scale(scaleWidth, scaleHeight);

-			translationMatrix.translate(tempPoint.x,tempPoint.y);
-			destination.draw(imageBitmapData,translationMatrix);
-		}
-
+			translationMatrix.translate(tempPoint.x, tempPoint.y);
+			destination.draw(imageBitmapData, translationMatrix);
+		}
+
+		public function getGeometriesFromRecordKey(recordKey:IQualifiedKey, minImportance:Number = 0, bounds:IBounds2D = null):Array
+		{
+			// there are no keys in this plotter
+			return [];
+		}
+
+		public function getBackgroundGeometries():Array
+		{
+			var simpleGeom:ISimpleGeometry = new SimpleGeometry(SimpleGeometry.POINT);
+			var p1:Point = new Point(dataX.value, dataY.value);
+			_tempArray.length = 0;
+			_tempArray.push(p1);
+			(simpleGeom as SimpleGeometry).setVertices(_tempArray);
+
+			return [simpleGeom];
+		}
+
 		private function handleImageRequest(event:ResultEvent,token:Object=null):void
 		{
-
 			if((WeaveAPI.SessionManager as SessionManager).objectWasDisposed(this))
-					return;
+				return;
 			if((token as String)== imageURL.value)
 			{
-			imageBitmapData = (event.result as Bitmap).bitmapData;
-			getCallbackCollection(this).triggerCallbacks();
-			}
-
-
+				imageBitmapData = (event.result as Bitmap).bitmapData;
+				getCallbackCollection(this).triggerCallbacks();
+			}
 		}

 		private function handleImageFaultRequest(event:FaultEvent,token:Object=null):void
@@ -159,5 +211,12 @@
 		{
 			imageBitmapData = null;
 		}
+
+		// temporary objects
+		private var _tempDataBounds:IBounds2D;
+		private var _tempScreenBounds:IBounds2D;
+		private const _tempArray:Array = [];
+		private var imageBitmapData:BitmapData;
+		private var translationMatrix:Matrix = new Matrix();
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12478
Author:   gosmith@adobe.com
Date:     2009-12-04T01:03:50.724937Z

Log Message:
-----------
The partAdded() and partRemoved() methods of Spark components now dispatch new events named "partAdded" and "partRemoved", of type SkinPartEvent. The accessibility implementation classes will soon use these events to know when skin parts are added and removed so that they can attach and remove event handlers appropriately. This mechanism may change in a future release, so developers should not depend on these undocumented events.

I've made sure that all overrides of partAdded() and partRemoved() call the supermethod so that they dispatch these events.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/SkinPartEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -837,6 +837,8 @@
      */
     override protected function partAdded(partName:String, instance:Object):void
     {
+		super.partAdded(partName, instance);
+
         if (instance == contentGroup)
         {
             if (_contentModified)
@@ -914,6 +916,8 @@
      */
     override protected function partRemoved(partName:String, instance:Object):void
     {
+		super.partRemoved(partName, instance);
+
         if (instance == contentGroup)
         {
             contentGroup.removeEventListener(


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

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

 package mx.automation.delegates.controls
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17360
Author:   chiedozi@adobe.com
Date:     2010-08-18T00:07:57.520197Z

Log Message:
-----------
ViewNavigator now executes navigation operations a frame later to allow renderers to properly redraw themselves before creating a view (SDK-27068).
Refactored some of the session persistence logic out of the application classes into ViewNavigatorBase.
The label, icon and activeView properties now exist on ViewNavigatorBase

QE notes:
Doc notes:
Bugs: SDK-27068
Reviewer: Ryan
Tests run: checkintests
Is noteworthy for integration:

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as
@@ -15,8 +15,6 @@
 import flash.utils.IDataInput;
 import flash.utils.IDataOutput;
 import flash.utils.IExternalizable;
-import flash.utils.getDefinitionByName;
-import flash.utils.getQualifiedClassName;

 import spark.components.supportClasses.ViewHistoryData;

@@ -88,65 +86,6 @@
     //--------------------------------------------------------------------------

     //----------------------------------
-    //  firstView
-    //----------------------------------
-
-    /**
-     *  The class name of the first view that should be created when a navigator
-     *  initializes itself.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public var firstView:Class;
-
-    //----------------------------------
-    //  firstViewData
-    //----------------------------------
-
-    /**
-     *  This is the initialization data to pass to the first view that is created
-     *  by a navigator.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public var firstViewData:Object;
-
-    //----------------------------------
-    //  icon
-    //----------------------------------
-
-    /**
-     *  Returns the icon that should be used when this stack is represented
-     *  by a visual component.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public var icon:Class;
-
-    //----------------------------------
-    //  label
-    //----------------------------------
-
-    /**
-     *  The label to be used when this stack is represented by a visual component.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public var label:String;
-
-    //----------------------------------
     //  length
     //----------------------------------

@@ -271,16 +210,7 @@
      */
     public function writeExternal(output:IDataOutput):void
     {
-        // The write order must always match the read order.  Make sure that
-        // writeExternal() and readExternal() process properties in the same order.
-        output.writeObject(firstViewData);
-        output.writeObject(label);
         output.writeObject(_source);
-
-        // Can't store class names in a shared object, need to save the
-        // class name instead.
-        output.writeObject(getQualifiedClassName(icon));
-        output.writeObject(getQualifiedClassName(firstView));
     }

     /**
@@ -296,18 +226,7 @@
      */
     public function readExternal(input:IDataInput):void
     {
-        // The write order must always match the read order.  Make sure that
-        // writeExternal() and readExternal() process properties in the same order.
-        firstViewData = input.readObject();
-        label = input.readObject();
         _source = input.readObject() as Vector.<ViewHistoryData>;
-
-        // Need to get the class names from the saved strings.
-        var className:String = input.readObject();
-        icon = (className == "null") ? null : getDefinitionByName(className) as Class;
-
-        className = input.readObject();
-        firstView = (className == "null") ? null : getDefinitionByName(className) as Class;
     }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19747
Author:   smgilson@adobe.com
Date:     2011-01-13T20:18:32.550401Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/NumberValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationValidatorBase.as</path>

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

--- frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationValidatorBase.as
+++ frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationValidatorBase.as
@@ -46,9 +46,9 @@
  *  @eventType mx.events.ValidationResultEvent.VALID
  *
  *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
  */
 [Event(name="valid", type="mx.events.ValidationResultEvent")]

@@ -58,9 +58,9 @@
  *  @eventType mx.events.ValidationResultEvent.INVALID
  *
  *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
  */
 [Event(name="invalid", type="mx.events.ValidationResultEvent")]

@@ -72,12 +72,13 @@
 [ResourceBundle("validators")]

 /**
- *  The GlobalizationValidatorBase class is the base class for all validators
- *  in the spark namespace. This class implements the ability for a validator
+ *  The GlobalizationValidatorBase class is the base class for all Spark validators.
+ *  This class implements the ability for a validator
  *  to make a field required, which means that the user must enter a value in
- *  the field or the validation fails. This also enables or diables the
- *  validator. Any class inheriting from this MUST override the
- *  createWorkingInstance() method.
+ *  the field or the validation fails.
+ *  This class also enables or disables the validator.
+ *  Any class inheriting from this class must override the
+ *  createWorkingInstance() method.
  *
  *  @mxml
  *
@@ -104,9 +105,9 @@
  *  @includeExample examples/SimpleValidatorExample.mxml
  *
  *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
  */
 public class GlobalizationValidatorBase extends GlobalizationBase
              implements IValidator
@@ -123,9 +124,9 @@
      *  Constructor.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function GlobalizationValidatorBase()
     {
@@ -156,9 +157,9 @@
      *  for the triggerEvent.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function get actualTrigger():IEventDispatcher
     {
@@ -181,9 +182,9 @@
      *  to notify about the validation result.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function get actualListeners():Array
     {
@@ -219,9 +220,9 @@
      *  @default true
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get enabled():Boolean
     {
@@ -260,9 +261,9 @@
      *
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */

     /* This behavior has been removed.
@@ -275,9 +276,9 @@
      *  and displays an Alert box containing the validation error message.

      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get listener():Object
     {
@@ -316,9 +317,9 @@
      *  @default null
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get property():String
     {
@@ -346,9 +347,9 @@
      *  @default true
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public var required:Boolean = true;

@@ -374,9 +375,9 @@
      *  @copy mx.core.UIComponent#resourceManager
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function get resourceManager():IResourceManager
     {
@@ -410,9 +411,9 @@
      *  @default null
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get source():Object
     {
@@ -460,15 +461,10 @@
      *  should contain a cardNumber and a cardType
      *  property.
      *
-     *
Subclasses of the GlobalizationValidatorBase class that
-     *  validate multiple data fields (like CreditCardValidator and
-     *  DateValidator)
-     *  should assign this property in their constructor.

-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected var subFields:Array = [];

@@ -493,9 +489,9 @@
      *  validation executes.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get trigger():IEventDispatcher
     {
@@ -535,9 +531,9 @@
      *  set triggerEvent to the empty string ("").
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get triggerEvent():String
     {
@@ -587,9 +583,9 @@
      *  @default "This field is required."
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get requiredFieldError():String
     {
@@ -644,9 +640,9 @@
      *  @see mx.validators.ValidationResult
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function validate(
                         value:Object = null,
@@ -689,9 +685,9 @@
      *  The Array is empty if all validators succeed.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public static function validateAll(validators:Array):Array
     {
@@ -729,9 +725,9 @@
      *  in response to having new resource values.

      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function resourcesChanged():void
     {
@@ -749,9 +745,9 @@
      *  internally.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function addListenerHandler():void
     {
@@ -780,13 +776,11 @@
      *  removeListenerHandler() method and then the
      *  addListenerHandler method if
      *  the value of one of their listeners or sources changes.
-     *  The CreditCardValidator and DateValidator classes use this function
-     *  internally.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function removeListenerHandler():void
     {
@@ -816,9 +810,9 @@
      *  @return true if value is not null.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function isRealValue(value:Object):Boolean
     {
@@ -826,17 +820,14 @@
     }

     /**
-     *  Returns the Object to validate. Subclasses, such as the
-     *  CreditCardValidator and DateValidator classes,
-     *  override this method because they need
-     *  to access the values from multiple subfields.
+     *  Returns the Object to validate.
      *
      *  @return The Object to validate.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function getValueFromSource():Object
     {
@@ -882,9 +873,9 @@
      *  @see mx.validators.ValidationResult
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function doValidation(value:Object):Array
     {
@@ -902,10 +893,6 @@
      *  Internally, this function takes the results from the
      *  doValidation() method and puts it into a
      *  ValidationResultEvent object.
-     *  Subclasses, such as the RegExpValidator class,
-     *  should override this function if they output a subclass
-     *  of ValidationResultEvent objects, such as the RegExpValidationResult
-     *  objects, and needs to populate the object with additional information.
      *  You never call this function directly, and you should rarely
      *  override it.
      *
@@ -915,9 +902,9 @@
      *  validate() method.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     protected function handleResults(errorResults:Array):ValidationResultEvent
     {