Transferred from the Adobe Open Source Subversion Repository

Revision: 5067
Author:   smgilson@adobe.com
Date:     2009-02-25T16:21:22.849704Z

Log Message:
-----------
In preparation for adding ASDoc version tags for Flex, remove old tags from AIR files

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/WindowExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as
+++ frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as
@@ -22,162 +22,161 @@
  *  The skin for the close button in the TitleBar
  *  of a WindowedApplication or Window.
  *
- *  @playerversion AIR 1.1
  */
 public class WindowCloseButtonSkin extends UIComponent
 {
     include "../../core/Version.as";

-	//--------------------------------------------------------------------------
-	//
-	//  Class assets
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Class assets
+    //
+    //--------------------------------------------------------------------------

-	[Embed(source="../../../../assets/mac_close_up.png")]
+    [Embed(source="../../../../assets/mac_close_up.png")]
     private static var macCloseUpSkin:Class;

     [Embed(source="../../../../assets/win_close_up.png")]
     private static var winCloseUpSkin:Class;
-
-	[Embed(source="../../../../assets/mac_close_over.png")]
-	private static var macCloseOverSkin:Class;
-
-	[Embed(source="../../../../assets/win_close_over.png")]
-	private static var winCloseOverSkin:Class;
+
+    [Embed(source="../../../../assets/mac_close_over.png")]
+    private static var macCloseOverSkin:Class;
+
+    [Embed(source="../../../../assets/win_close_over.png")]
+    private static var winCloseOverSkin:Class;

-  	[Embed(source="../../../../assets/mac_close_down.png")]
+    [Embed(source="../../../../assets/mac_close_down.png")]
     private static var macCloseDownSkin:Class;

     [Embed(source="../../../../assets/win_close_down.png")]
     private static var winCloseDownSkin:Class;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  Constructor.
-	 */
-	public function WindowCloseButtonSkin()
-	{
-		super();
+    /**
+     *  Constructor.
+     */
+    public function WindowCloseButtonSkin()
+    {
+        super();

-		isMac = Capabilities.os.substring(0,3) == "Mac";
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Variables
-	//
-	//--------------------------------------------------------------------------
+        isMac = Capabilities.os.substring(0,3) == "Mac";
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
-	private var isMac:Boolean;
-
-	/**
-	 *  @private
-	 */
-	private var skinImage:Image;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden properties: UIComponent
-	//
-	//--------------------------------------------------------------------------
+    /**
+     *  @private
+     */
+    private var isMac:Boolean;
+
+    /**
+     *  @private
+     */
+    private var skinImage:Image;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties: UIComponent
+    //
+    //--------------------------------------------------------------------------

-	//----------------------------------
-	//  measuredHeight
-	//----------------------------------
+    //----------------------------------
+    //  measuredHeight
+    //----------------------------------

-	/**
-	 *  @private
-	 */
-	override public function get measuredHeight():Number
-	{
-		if (skinImage.measuredHeight)
-			return skinImage.measuredHeight;
-		else
-			return 13;
-	}
+    /**
+     *  @private
+     */
+    override public function get measuredHeight():Number
+    {
+        if (skinImage.measuredHeight)
+            return skinImage.measuredHeight;
+        else
+            return 13;
+    }

-	//----------------------------------
-	//  measuredWidth
-	//----------------------------------
+    //----------------------------------
+    //  measuredWidth
+    //----------------------------------

-	/**
-	 *  @private
-	 */
-	override public function get measuredWidth():Number
-	{
-		if (skinImage.measuredWidth)
-			return skinImage.measuredWidth;
-		else
-			return 12;
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: UIComponent
-	//
-	//--------------------------------------------------------------------------
+    /**
+     *  @private
+     */
+    override public function get measuredWidth():Number
+    {
+        if (skinImage.measuredWidth)
+            return skinImage.measuredWidth;
+        else
+            return 12;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
-	override protected function createChildren():void
-	{
-		skinImage = new Image();
-		addChild(skinImage);
+    /**
+     *  @private
+     */
+    override protected function createChildren():void
+    {
+        skinImage = new Image();
+        addChild(skinImage);

-		initializeStates();
+        initializeStates();

-		skinImage.setActualSize(12, 13);
-		skinImage.move(0, 0);
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Methods
-	//
-	//--------------------------------------------------------------------------
+        skinImage.setActualSize(12, 13);
+        skinImage.move(0, 0);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
-	private function initializeStates():void
-	{
-		var upState:State = new State();
-		upState.name = "up";
-		var upProp:SetProperty = new SetProperty();
-		upProp.name = "source";
-		upProp.target = skinImage;
-		upProp.value = isMac ? macCloseUpSkin : winCloseUpSkin;
-		upState.overrides.push(upProp);
-		states.push(upState);
-
-		var downState:State = new State();
-		downState.name = "down";
-		var downProp:SetProperty = new SetProperty();
-		downProp.name = "source";
-		downProp.target = skinImage;
-		downProp.value = isMac ? macCloseDownSkin : winCloseDownSkin;
-		downState.overrides.push(downProp);
-		states.push(downState);
-
-		var overState:State = new State();
-		overState.name = "over";
-		var overProp:SetProperty = new SetProperty();
-		overProp.name = "source";
-		overProp.target = skinImage;
-		overProp.value = isMac ? macCloseOverSkin : winCloseOverSkin;
-		overState.overrides.push(overProp);
-		states.push(overState);
-	}
+    /**
+     *  @private
+     */
+    private function initializeStates():void
+    {
+        var upState:State = new State();
+        upState.name = "up";
+        var upProp:SetProperty = new SetProperty();
+        upProp.name = "source";
+        upProp.target = skinImage;
+        upProp.value = isMac ? macCloseUpSkin : winCloseUpSkin;
+        upState.overrides.push(upProp);
+        states.push(upState);
+
+        var downState:State = new State();
+        downState.name = "down";
+        var downProp:SetProperty = new SetProperty();
+        downProp.name = "source";
+        downProp.target = skinImage;
+        downProp.value = isMac ? macCloseDownSkin : winCloseDownSkin;
+        downState.overrides.push(downProp);
+        states.push(downState);
+
+        var overState:State = new State();
+        overState.name = "over";
+        var overProp:SetProperty = new SetProperty();
+        overProp.name = "source";
+        overProp.target = skinImage;
+        overProp.value = isMac ? macCloseOverSkin : winCloseOverSkin;
+        overState.overrides.push(overProp);
+        states.push(overState);
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18444
Author:   cframpto@adobe.com
Date:     2010-11-04T14:32:20.154567Z

Log Message:
-----------
Fix a flash integration layoutDirection bug, a popup layoutDirection bug when in v3 compatibility mode, and added missing parens on logical expression in if-clause so order of precedence would be what was intended.

QE notes:
Doc notes:
Bugs: SDK28419, SDK-26473, SDK-26205
Reviewer: Hans
Tests run: cyclone
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridSelection.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridSelection.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridSelection.as
@@ -1123,8 +1123,8 @@
         _selectionLength = rowCount * columnCount;

         if (preserveSelection &&
-            selectionMode == GridSelectionMode.SINGLE_ROW ||
-            selectionMode == GridSelectionMode.SINGLE_CELL)
+            (selectionMode == GridSelectionMode.SINGLE_ROW ||
+            selectionMode == GridSelectionMode.SINGLE_CELL))
         {
             selectedItem = grid.dataProvider.getItemAt(rowIndex);
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19487
Author:   hmuller@adobe.com
Date:     2010-12-20T21:28:58.850707Z

Log Message:
-----------
Fix for SDK-28616/A, DataGrid now uses the Spark versions of Sort and SortField.  The fix took more time than expected because s:SortFields must be wired into the style hierarchy so that they inherit the "locale" style.

QE notes: Jody has excluded two failing tests
Doc notes:
Bugs:
Reviewer: Kevin
Tests run: checkin, mustella
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridSortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridSortField.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridSortField.as
@@ -12,7 +12,7 @@
 package spark.components.gridClasses
 {

-import mx.collections.SortField;
+import spark.collections.SortField;

 [ExcludeClass]

@@ -41,9 +41,9 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public function GridSortField(name:String=null, caseInsensitive:Boolean=false, descending:Boolean=false, numeric:Object=null)
+    public function GridSortField(name:String=null, descending:Boolean=false, numeric:Object=null)
     {
-        super(name, caseInsensitive, descending, numeric);
+        super(name, descending, numeric);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5762
Author:   jimurphy@adobe.com
Date:     2009-03-30T19:25:21.583080Z

Log Message:
-----------
airframework update:
mx.core.FxWindowApplication -> spark.components.windowClasses.WindowedApplication
should have been:
mx.core.FxWindowApplication -> spark.components.WindowedApplication

add back classes to spark-manifest.xml that got nixed during the manifest merge and update related effects classes that were not being compiled because of this omission.

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk/frameworks</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/default/WindowedApplicationSkin.mxml</path>
<path kind="dir" action="M">/flex/sdk/trunk/frameworks/projects/flex4</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/effectClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/spark-air-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/AIRFrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/WindowedApplication.as" copyfrom-rev="5757" action="A">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="dir" action="M">/flex/sdk/trunk/frameworks/projects/framework</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Move.as
+++ frameworks/projects/spark/src/spark/effects/Move.as
@@ -37,7 +37,7 @@
  */
 public class AnimateTransformMove extends AnimateTransform
 {
-    include "../../spark.core.Version.as";
+    include "../core/Version.as";

     public function AnimateTransformMove(target:Object=null)
     {


Adds PickerBuilder and NumericStepperBuilderConditionalOperator: Adds support for "null" arguments

--- test/skein/binding/operators/conditional/ConditionalOperatorTest.as
+++ test/skein/binding/operators/conditional/ConditionalOperatorTest.as
@@ -20,6 +20,8 @@
     {
         assertEquals(1, new ConditionalOperator(true).ifTrue(1).ifFalse(2).getValue());
         assertEquals(2, new ConditionalOperator(false).ifTrue(1).ifFalse(2).getValue());
+
+        assertEquals("test", new ConditionalOperator(false).ifTrue(null).ifFalse("test").getValue());
     }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 789
Author:   mhorn@adobe.com
Date:     2008-03-12T17:27:25.160912Z

Log Message:
-----------
Minor ASDoc changes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>

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

--- frameworks/projects/mx/src/mx/controls/HRule.as
+++ frameworks/projects/mx/src/mx/controls/HRule.as
@@ -23,11 +23,11 @@
  *  The shadow color of the line.
  *

  *
If strokeWidth is 1, shadowColor
- *	  does nothing.

+ *    does nothing.

  *
If strokeWidth is 2, shadowColor is
- *	  the color of the bottom line.

+ *    the color of the bottom line.

  *
If strokeWidth is greater than 2, shadowColor
- *	  is the color of the bottom and right edges of the rectangle.

+ *    is the color of the bottom and right edges of the rectangle.

  *

  *
  *  @default 0xEEEEEE
@@ -38,11 +38,11 @@
  *  The color of the line.
  *

  *
If strokeWidth is 1, strokeColor is
- *	  the color of the entire line.

+ *    the color of the entire line.

  *
If strokeWidth is 2, strokeColor is
- *	  the color of the top line.

+ *    the color of the top line.

  *
If strokeWidth is greater than 2, strokeColor is
- *	  the color of the top and left edges of the rectangle.

+ *    the color of the top and left edges of the rectangle.

  *

  *
  *  @default 0xC4CCCC
@@ -53,18 +53,18 @@
  *  The thickness of the rule in pixels.
  *

  *
If strokeWidth is 1,
- *	  the rule is a 1-pixel-wide line.

+ *    the rule is a 1-pixel-wide line.

  *
If strokeWidth is 2,
- *	  the rule is two adjacent 1-pixel-wide horizontal lines.

+ *    the rule is two adjacent 1-pixel-wide horizontal lines.

  *
If strokeWidth is greater than 2,
- *	  the rule is a hollow rectangle with 1-pixel-wide edges.

+ *    the rule is a hollow rectangle with 1-pixel-wide edges.

  *

  *
  *  @default 2
  */
 [Style(name="strokeWidth", type="Number", format="Length", inherit="yes")]
-	// Note: stroke-width is inheriting in SVG,
-	// although border-width is not inheriting in CSS
+    // Note: stroke-width is inheriting in SVG,
+    // although border-width is not inheriting in CSS

 //--------------------------------------
 //  Other metadata
@@ -121,128 +121,128 @@
  */
 public class HRule extends UIComponent
 {
-	include "../core/Version.as";
-
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	private static const DEFAULT_PREFERRED_WIDTH:Number = 100;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *	Constructor
-	 */
-	public function HRule()
-	{
-		super();
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: UIComponent
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	override protected function measure():void
-	{
-		super.measure();
-
-		measuredWidth = DEFAULT_PREFERRED_WIDTH;
-		measuredHeight = getStyle("strokeWidth");
-	}
-
-	/**
-	 *  @private
-	 *  The appearance of our horizontal rule is inspired by
-	 *  the leading browser's rendering of HTML's
.
-	 *
-	 *  The only reliable way to draw the 1-pixel lines that are
-	 *  the borders of the horizontal rule is by filling rectangles!
-	 *  Otherwise, very short lines become antialised, probably because
-	 *  the Player is trying to render an endcap.
-	 */
-	override protected function updateDisplayList(unscaledWidth:Number,
-												  unscaledHeight:Number):void
-	{
-		super.updateDisplayList(unscaledWidth, unscaledHeight);
-
-		var g:Graphics = graphics;
-
-		g.clear();
-
-		// Look up the style properties
-		var strokeColor:Number = getStyle("strokeColor");
-		var shadowColor:Number = getStyle("shadowColor");
-		var strokeWidth:Number = getStyle("strokeWidth");
-
-		// The thickness of the stroke shouldn't be greater than
-		// the unscaledHeight of the bounding rectangle.
-		if (strokeWidth > unscaledHeight)
-			strokeWidth = unscaledHeight;
-
-		// The horizontal rule extends from the left edge
-		// to the right edge of the bounding rectangle and
-		// is vertically centered within the bounding rectangle.
-		var left:Number = 0;
-		var top:Number = (unscaledHeight - strokeWidth) / 2;
-		var right:Number = unscaledWidth;
-		var bottom:Number = top + strokeWidth;
-
-		if (strokeWidth == 1)
-		{
-			// **************
-
-			g.beginFill(strokeColor);
-			g.drawRect(left, top, unscaledWidth, bottom-top);
-			g.endFill();
-		}
-		else if (strokeWidth == 2)
-		{
-			// **************
-			// oooooooooooooo
-
-			g.beginFill(strokeColor);
-			g.drawRect(left, top, unscaledWidth, 1);
-			g.endFill();
-
-			g.beginFill(shadowColor);
-			g.drawRect(left, bottom - 1, unscaledWidth, 1);
-			g.endFill();
-		}
-		else if (strokeWidth > 2)
-		{
-			// *************o
-			// *            o
-			// oooooooooooooo
-
-			g.beginFill(strokeColor);
-			g.drawRect(left, top, unscaledWidth - 1, 1);
-			g.endFill();
-
-			g.beginFill(shadowColor);
-			g.drawRect(right - 1, top, 1, bottom - top - 1);
-			g.drawRect(left, bottom - 1, unscaledWidth, 1);
-			g.endFill();
-
-			g.beginFill(strokeColor);
-			g.drawRect(left, top + 1, 1, bottom - top - 2);
-			g.endFill();
-		}
-	}
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private static const DEFAULT_PREFERRED_WIDTH:Number = 100;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function HRule()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function measure():void
+    {
+        super.measure();
+
+        measuredWidth = DEFAULT_PREFERRED_WIDTH;
+        measuredHeight = getStyle("strokeWidth");
+    }
+
+    /**
+     *  @private
+     *  The appearance of our horizontal rule is inspired by
+     *  the leading browser's rendering of HTML's
.
+     *
+     *  The only reliable way to draw the 1-pixel lines that are
+     *  the borders of the horizontal rule is by filling rectangles!
+     *  Otherwise, very short lines become antialised, probably because
+     *  the Player is trying to render an endcap.
+     */
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        var g:Graphics = graphics;
+
+        g.clear();
+
+        // Look up the style properties
+        var strokeColor:Number = getStyle("strokeColor");
+        var shadowColor:Number = getStyle("shadowColor");
+        var strokeWidth:Number = getStyle("strokeWidth");
+
+        // The thickness of the stroke shouldn't be greater than
+        // the unscaledHeight of the bounding rectangle.
+        if (strokeWidth > unscaledHeight)
+            strokeWidth = unscaledHeight;
+
+        // The horizontal rule extends from the left edge
+        // to the right edge of the bounding rectangle and
+        // is vertically centered within the bounding rectangle.
+        var left:Number = 0;
+        var top:Number = (unscaledHeight - strokeWidth) / 2;
+        var right:Number = unscaledWidth;
+        var bottom:Number = top + strokeWidth;
+
+        if (strokeWidth == 1)
+        {
+            // **************
+
+            g.beginFill(strokeColor);
+            g.drawRect(left, top, unscaledWidth, bottom-top);
+            g.endFill();
+        }
+        else if (strokeWidth == 2)
+        {
+            // **************
+            // oooooooooooooo
+
+            g.beginFill(strokeColor);
+            g.drawRect(left, top, unscaledWidth, 1);
+            g.endFill();
+
+            g.beginFill(shadowColor);
+            g.drawRect(left, bottom - 1, unscaledWidth, 1);
+            g.endFill();
+        }
+        else if (strokeWidth > 2)
+        {
+            // *************o
+            // *            o
+            // oooooooooooooo
+
+            g.beginFill(strokeColor);
+            g.drawRect(left, top, unscaledWidth - 1, 1);
+            g.endFill();
+
+            g.beginFill(shadowColor);
+            g.drawRect(right - 1, top, 1, bottom - top - 1);
+            g.drawRect(left, bottom - 1, unscaledWidth, 1);
+            g.endFill();
+
+            g.beginFill(strokeColor);
+            g.drawRect(left, top + 1, 1, bottom - top - 2);
+            g.endFill();
+        }
+    }
 }

 }


now preventing infinite recursion in get keys().

--- WeaveData/src/weave/data/AttributeColumns/EquationColumn.as
+++ WeaveData/src/weave/data/AttributeColumns/EquationColumn.as
@@ -246,10 +246,12 @@
 			// return all the keys of all columns in the variables list
 			if (_allKeysTriggerCount != variables.triggerCounter)
 			{
+				_allKeys = null;
+				_allKeysTriggerCount = variables.triggerCounter; // prevent infinite recursion
+
 				_allKeys = ColumnUtils.getAllKeys(variables.getObjects(IAttributeColumn));
-				_allKeysTriggerCount = variables.triggerCounter;
-			}
-			return _allKeys;
+			}
+			return _allKeys || [];
 		}

 		/**


Bugfix in URLLoaderResource: `load(null)` isn't *really* the way to stop URLLoader activity. If you don't count stopping code execution via an exception window (in debug players only), that is.

--- src/reprise/external/URLLoaderResource.as
+++ src/reprise/external/URLLoaderResource.as
@@ -109,17 +109,22 @@

 		protected override function doCancel() : void
 		{
-			m_loader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, loader_httpStatus);
-			m_loader.removeEventListener(Event.COMPLETE, loader_complete);
-			m_loader.load(null);
-			m_loader = null;
+			if (m_isExecuting)
+			{
+				m_loader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, loader_httpStatus);
+				m_loader.removeEventListener(Event.COMPLETE, loader_complete);
+				m_loader.close();
+				m_loader = null;
+			}
 		}

 		// LoadVars event
 		protected function loader_complete(event : Event) : void
 		{
 			m_data = m_loader.data;
+			m_loader.removeEventListener(HTTPStatusEvent.HTTP_STATUS, loader_httpStatus);
+			m_loader.removeEventListener(Event.COMPLETE, loader_complete);
 			onData(true);
 		}
 	}
-}+}


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

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


added Weave.prototype.triggerAll(filter)

--- WeaveJS/src/Weave.as
+++ WeaveJS/src/Weave.as
@@ -525,8 +525,18 @@
 		 */
 		public function triggerColumns():void
 		{
-			Weave.getDescendants(root, getDefinition('ReferencedColumn'))
-				.forEach(function(column:ILinkableObject):void { getCallbacks(column).triggerCallbacks(); });
+			triggerAll('ReferencedColumn');
+		}
+
+		/**
+		 * For testing purposes.
+		 */
+		public function triggerAll(filter:*):void
+		{
+			if (filter is String)
+				filter = getDefinition(filter);
+			Weave.getDescendants(root, JS.asClass(filter))
+				.forEach(function(obj:ILinkableObject):void { getCallbacks(obj).triggerCallbacks(); });
 		}
 	}
 }


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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


Transferred from the Adobe Open Source Subversion Repository

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/ResizeInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/ResizeInstance.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 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.
 //
 ////////////////////////////////////////////////////////////////////////////////
 package spark.effects.supportClasses


Restart stream when setting configuration

Only force the stream to start buffering if the stream is playing.

--- src/Player.as
+++ src/Player.as
@@ -157,7 +157,9 @@
         config.buffer = iconfig.buffer;
         if (this.ns) {
           this.ns.bufferTime = config.buffer;
-          this.client.forceBuffering();
+          if (this.currentState === 'playing') {
+            this.client.forceBuffering();
+          }
         }
       }


FLEX-14454 Fix loop condition and rename local vars to length for readability

--- frameworks/projects/framework/src/mx/effects/Tween.as
+++ frameworks/projects/framework/src/mx/effects/Tween.as
@@ -151,19 +151,20 @@
      */
     private static function removeTweenAt(index:int):void
     {
-        if (index >= activeTweens.length || index < 0)
+		var length:int = activeTweens.length;
+
+		if (index >= length || index < 0)
             return;
-
+
         activeTweens.splice(index, 1);

-        var n:int = activeTweens.length;
-        for (var i:int = index; i < n; i++)
+        for (var i:int = index; i < length; i++)
         {
             var curTween:Tween = Tween(activeTweens[i]);
             curTween.id--;
         }

-        if (n == 0)
+        if (length == 0)
         {
             intervalTime = NaN;
             timer.reset();
@@ -184,14 +185,14 @@
      */
     private static function timerHandler(event:TimerEvent):void
     {
-        var needToLayout:Boolean = false;
-
+        var needToLayout:Boolean = false;
         var oldTime:Number = intervalTime;
+		var length:int = activeTweens.length;
+
         intervalTime = getTimer();
+

-        var n:int = activeTweens.length;
-
-        for (var i:int = n; i >= 0; i--)
+        for (var i:int = length-1; i >= 0; i--)
         {
             var tween:Tween = Tween(activeTweens[i]);
             if (tween)


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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:
--------------
147 paths were modified

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

--- frameworks/projects/rpc/src/mx/rpc/soap/WebService.as
+++ frameworks/projects/rpc/src/mx/rpc/soap/WebService.as
@@ -43,6 +43,11 @@
  * document has loaded successfully.
  *
  * @eventType mx.rpc.soap.LoadEvent.LOAD
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Event(name="load", type="mx.rpc.soap.LoadEvent")]

@@ -51,6 +56,11 @@
 /**
  * The WebService class provides access to SOAP-based web services on remote
  * servers.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public dynamic class WebService extends AbstractWebService
 {
@@ -70,6 +80,11 @@
      * name in the services-config.xml file.
      *
      * @param rootURL The root URL of the WebService.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function WebService(destination:String = null, rootURL:String = null)
     {
@@ -107,6 +122,11 @@
      * The location of the WSDL document for this WebService. If you use a
      * relative URL, make sure that the rootURL has been specified
      * or that you created the WebService in MXML.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get wsdl():String
     {
@@ -130,6 +150,11 @@
      *
      * @return Returns true if the WebService is ready to load a WSDL;
      * otherwise, returns false.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function canLoadWSDL():Boolean
     {
@@ -151,6 +176,11 @@
      * get the Operation instead.
      * @param name Name of the Operation.
      * @return Operation that executes for this name.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function getOperation(name:String):mx.rpc.AbstractOperation
     {
@@ -174,6 +204,11 @@
      *
      * @param uri If the wsdl hasn't been specified previously, it may be
      * specified here.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function loadWSDL(uri:String = null):void
     {
@@ -232,6 +267,11 @@
      * channels assigned.
      *
      * @return Returns a String representation of the WebService.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function toString():String
     {
@@ -335,6 +375,11 @@
     * Initializes a new Operation.
     *
     * @param operation The Operation to initialize.
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
     */
     protected function initializeOperation(operation:Operation):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 13363
Author:   gosmith@adobe.com
Date:     2010-01-08T01:35:33.958261Z

Log Message:
-----------
Improved ASDoc for UIFTETextField and FTETextField.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>

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

--- frameworks/projects/spark/src/mx/core/FTETextField.as
+++ frameworks/projects/spark/src/mx/core/FTETextField.as
@@ -64,7 +64,7 @@

 /**
  *  FTETextField is a Sprite which displays text by using the new
- *  Text Layout Framework to implement the old TextField API.
+ *  Flash Text Engine to implement the old TextField API.
  *
  *  @see flash.text.TextField
  *


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package spark.effects
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6215
Author:   smgilson@adobe.com
Date:     2009-04-23T17:12:57.259499Z

Log Message:
-----------
ASDoc updates for effect classes

Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/KeyFrame.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/WipeDirection.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/CrossFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Rotate.as
+++ frameworks/projects/spark/src/spark/effects/Rotate.as
@@ -16,15 +16,36 @@
 import spark.effects.supportClasses.AnimateTransformInstance;

 /**
- * This class is a utility wrapper around the AnimateTransform effect, exposing the
- * properties that make sense for someone wishing to merely rotate a target object
- * in the xy plane around some transform center.
+ *  The AnimateTransformRotate effect rotates a target object
+ *  in the x, y plane around the transform center.
+ *
+ *
If you specify any two of the angle values (angleFrom, angleTo,
+ *  or angleBy), Flex calculates the third.
+ *  If you specify all three, Flex ignores the angleBy value.

  *
- *
Like all AnimateTransform-based effects, this effect will only work on subclasses
- * of UIComponent and GraphicElement, as these effects depend on specific
- * transform functions in those classes. Also, all of these effects run one single
- * effect instance on any given target at a time, which means that they will
- * share the transform center set by any of the contributing effects.

+ *
Like all AnimateTransform-based effects, this effect will only work on subclasses
+ *  of UIComponent and GraphicElement, as these effects depend on specific
+ *  transform functions in those classes.

+ *
+ *  @mxml
+ *
+ *
The <mx:AnimateTransformRotate> tag
+ *  inherits all of the tag attributes of its of its superclass,
+ *  and adds the following tag attributes:

+ *
+ *

+ *  <mx:AnimateTransformRotate
+ *    id="ID"
+ *    angleBy="val"
+ *    angleFrom="val"
+ *    angleTo="val"
+ *   />
+ *

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class AnimateTransformRotate extends AnimateTransform
 {
@@ -37,9 +58,14 @@
     //--------------------------------------------------------------------------

     /**
-     * Constructor.
+     *  Constructor.
      *
-     * @param target The Object to animate with this effect.
+     *  @param target The Object to animate with this effect.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function AnimateTransformRotate(target:Object=null)
     {
@@ -60,9 +86,14 @@
     [Inspectable(category="General")]

     /**
-     * The starting angle of rotation of the target object,
-     * expressed in degrees.
-     * Valid values range from 0 to 360.
+     *  The starting angle of rotation of the target object,
+     *  in degrees.
+     *  Valid values range from 0 to 360.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var angleFrom:Number;

@@ -73,16 +104,21 @@
     [Inspectable(category="General")]

     /**
-     * The ending angle of rotation of the target object,
-     * expressed in degrees.
-     * Values can be either positive or negative.
+     *  The ending angle of rotation of the target object,
+     *  in degrees.
+     *  Values can be either positive or negative.
      *
-     *
If the value of angleTo is less
-     * than the value of angleFrom,
-     * the target rotates in a counterclockwise direction.
-     * Otherwise, it rotates in clockwise direction.
-     * If you want the target to rotate multiple times,
-     * set this value to a large positive or small negative number.

+     *
If the value of angleTo is less
+     *  than the value of angleFrom,
+     *  the target rotates in a counterclockwise direction.
+     *  Otherwise, it rotates in clockwise direction.
+     *  If you want the target to rotate multiple times,
+     *  set this value to a large positive or small negative number.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var angleTo:Number;

@@ -93,14 +129,19 @@
     [Inspectable(category="General")]

     /**
-     * Degrees by which to rotate the target object. Value
-     * may be negative.
+     *  Degrees by which to rotate the target object. Value
+     *  may be negative.
      *
-     *
If the value of angleBy is negative,
-     * the target rotates in a counterclockwise direction.
-     * Otherwise, it rotates in clockwise direction.
-     * If you want the target to rotate multiple times,
-     * set this value to a large positive or small negative number.

+     *
If the value of angleBy is negative,
+     *  the target rotates in a counterclockwise direction.
+     *  Otherwise, it rotates in clockwise direction.
+     *  If you want the target to rotate multiple times,
+     *  set this value to a large positive or small negative number.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var angleBy:Number;


changed to use in operator

changed to use in operator

--- frameworks/projects/airspark/src/spark/components/Window.as
+++ frameworks/projects/airspark/src/spark/components/Window.as
@@ -1774,7 +1774,7 @@
         init.type = _type;
         init.systemChrome = _systemChrome;
         init.transparent = _transparent;
-		if (init.hasOwnProperty("renderMode"))
+		if ("renderMode" in init)
        		init["renderMode"] = _renderMode;
         return init;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12748
Author:   mhorn@adobe.com
Date:     2009-12-09T21:26:16.240925Z

Log Message:
-----------
missed one file

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/MXFTETextInput.as

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

--- frameworks/projects/spark/src/mx/controls/MXFTETextInput.as
+++ frameworks/projects/spark/src/mx/controls/MXFTETextInput.as
@@ -164,7 +164,7 @@
     //----------------------------------

     /**
-     *  Documentation is not currently available.
+     *  @inheritDoc
      */
     public function get fontContext():IFlexModuleFactory
     {
@@ -184,7 +184,7 @@
     //----------------------------------

     /**
-     *  Documentation is not currently available.
+     *  @inheritDoc
      */
     public function get horizontalScrollPosition():Number
     {
@@ -249,7 +249,7 @@
     private var _parentDrawsFocus:Boolean = false;

     /**
-     *  Documentation is not currently available.
+     *  @inheritDoc
      */
     public function get parentDrawsFocus():Boolean
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 21805
Author:   hmuller@adobe.com
Date:     2011-08-03T22:58:56.225755Z

Log Message:
-----------
DataGroup now supports recycling renderers when itemRendererFunction is specified.

QE notes: two tests have been excluded
Doc notes:
Bugs: SDK-27727
Reviewer: Evtim
Tests run: checkin, mustella
Is noteworthy for integration: yes

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

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -15,6 +15,7 @@
 import flash.events.Event;
 import flash.geom.PerspectiveProjection;
 import flash.geom.Rectangle;
+import flash.utils.Dictionary;
 import flash.utils.getQualifiedClassName;

 import mx.collections.IList;
@@ -180,6 +181,19 @@
     private static const LAYERING_ENABLED:uint =    0x1;
     private static const LAYERING_DIRTY:uint =      0x2;

+    /**
+     *  @private
+     *  The following variables are used to track free virtual item renderers.
+     *  When an item renderer is created an entry is added to rendererToFactoryMap
+     *  so when it's time to move the renderer to the freeRendererMap "free list",
+     *  we can store it with the other renderers produced by the same factory (IFactory).
+     *  The value of rendererToFactoryMap[renderer] is a factory, the value of
+     *  freeRendererMap[factory] is the vector of free renderers produced by factory.
+     */
+    private var rendererToFactoryMap:Dictionary = new Dictionary(true);
+    private var freeRendererMap:Dictionary = new Dictionary();
+    private var addedVirtualRenderer:Boolean = false;  // see createVirtualRendererForItem()
+
     //--------------------------------------------------------------------------
     //
     //  Overridden properties
@@ -476,12 +490,6 @@
      *

      *    function myItemRendererFunction(item:Object):IFactory

      *
-     *
Currently, when using itemRendererFunction with a virtual layout
-     *  (useVirtualLayout=true), item renderer recycling
-     *  is turned off.  Because of this, using itemRendererFunction
-     *  can cause a performance degredation and is not recommended for mobile.
-     *  This may be fixed in future versions of Flex.

-     *
      *  @default null
      *
      *  @langversion 3.0
@@ -661,11 +669,11 @@
             virtualRendererIndices.length = 0;
             oldVirtualRendererIndices.length = 0;

-            for (var i:int = freeRenderers.length - 1; i >= 0; i--)
-            {
-                var myItemRenderer:IVisualElement = freeRenderers.pop() as IVisualElement;
-                super.removeChild(myItemRenderer as DisplayObject);
-            }
+            const freeRenderers:Vector.<IVisualElement> = allFreeRenderers();
+            for each (var renderer:IVisualElement in freeRenderers)
+                super.removeChild(renderer as DisplayObject);
+
+            resetFreeRenderers();
         }
         else
         {
@@ -795,66 +803,167 @@
     //--------------------------------------------------------------------------

     /**
-     *  Create the item renderer for the item, if needed.
+     *  Return the item renderer factory for the specified item, if any.  Prefer
+     *  itemRendererFunction over itemRenderer.
+     */
+    private function itemToRendererFactory(item:Object):IFactory
+    {
+        if (itemRendererFunction != null)
+            return itemRendererFunction(item);
+
+        return itemRenderer;
+    }
+
+    /**
+     *  Return a new renderer created with the specified factory and add an entry for it
+     *  to rendererToFactoryMap so that we can free and allocate it later.
+     */
+    private function createRenderer(factory:IFactory):IVisualElement
+    {
+        const element:IVisualElement = factory.newInstance() as IVisualElement;
+        rendererToFactoryMap[element] = factory;
+        return element;
+    }
+
+    /**
+     *  If a vector of free renderers exists for the specified factory, remove
+     *  one and return it.
+     */
+    private function allocateRenderer(factory:IFactory):IVisualElement
+    {
+        const renderers:Vector.<IVisualElement> = freeRendererMap[factory] as Vector.<IVisualElement>;
+        if (renderers)
+        {
+            const element:IVisualElement = renderers.pop();
+            if (renderers.length == 0)
+                delete freeRendererMap[factory];
+            if (element)
+                return element;
+        }
+
+        return null;
+    }
+
+    /**
+     *  Add the specified renderer to the rendererToFactoryMap.
+     */
+    private function freeRenderer(renderer:IVisualElement):void
+    {
+        if (!renderer)
+            return;
+
+        const factory:IFactory = rendererToFactoryMap[renderer];
+        if (!factory)
+            return;
+
+        var freeRenderers:Vector.<IVisualElement> = freeRendererMap[factory];
+        if (!freeRenderers)
+        {
+            freeRenderers = new Vector.<IVisualElement>();
+            freeRendererMap[factory] = freeRenderers;
+        }
+        freeRenderers.push(renderer);
+    }
+
+    /**
+     *  @private
+     *  Return a vector of all of the renderers in freeRendererMap.
+     */
+    private function allFreeRenderers():Vector.<IVisualElement>
+    {
+        const rv:Vector.<IVisualElement> = new Vector.<IVisualElement>();
+
+        for each (var v:Vector.<IVisualElement> in freeRendererMap)
+        {
+            for each (var e:IVisualElement in v)
+                rv.push(e);
+        }
+
+        return rv;
+    }
+
+    /**
+     *  @private
+     *  Reset the private free renderers data.
+     */
+    private function resetFreeRenderers():void
+    {
+        rendererToFactoryMap = new Dictionary(true);
+        freeRendererMap = new Dictionary();
+    }
+
+    /**
+     *  @private
+     *  Throw an error which indicates that we were unable to create an item renderer
+     *  for the specified dataProvide and we weren't able to use the item as an
+     *  item renderer.
+     */
+    private function throwCreateRendererFailedError(item:Object):void
+    {
+        var err:String;
+        if (item is IVisualElement || item is DisplayObject)
+            err = resourceManager.getString("components", "cannotDisplayVisualElement");
+        else
+            err = resourceManager.getString("components", "unableToCreateRenderer", [item]);
+
+        throw new Error(err);
+    }
+
+    /**
+     *  @private
+     *  Create or reuse an item renderer for the specified dataProvider item.  This method is
+     *  used by getVirtualLayoutElementAt(), i.e. when useVirtualLayout=true.
      *
-     *
The rules to create a visual item are:

-     *

if itemRendererFunction is defined, call
-     *  it to get the renderer factory and instantiate it

-     *
if itemRenderer is defined, instantiate one

-     *
if item is an IVisualElement and a DisplayObject, use
-     *  it directly

-     *
-     *  @param item The data element.
-     *
-     *  @return The renderer that represents the data element.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
+     *  This method actually "returns" two values: the renderer itself and a flag that indicates
+     *  if the renderer was newly added.   The second value is actually just a variable.  Each
+     *  time this method is called it sets addedVirtualRenderer.
+     */
+    private function createVirtualRendererForItem(item:Object, failRTE:Boolean=true):IVisualElement
+    {
+        var renderer:IVisualElement = null;
+
+        const rendererFactory:IFactory = itemToRendererFactory(item);
+        if (rendererFactory)
+            renderer = allocateRenderer(rendererFactory);  // use a free renderer
+
+        if (!renderer && rendererFactory)
+        {
+            renderer = createRenderer(rendererFactory);
+            addedVirtualRenderer = true;
+        }
+
+        if (!renderer && (item is IVisualElement) && (item is DisplayObject))
+        {
+            renderer = IVisualElement(item);
+            addedVirtualRenderer = true;
+        }
+
+        if (!renderer && failRTE)
+            throwCreateRendererFailedError(item);
+
+        return renderer;
+    }
+
+    /**
+     *  @private
+     *  Create an item renderer for the specified dataProvider item.   This method is used
+     *  when useVirtualLayout=false.
      */
     private function createRendererForItem(item:Object, failRTE:Boolean=true):IVisualElement
     {
-        var myItemRenderer:IVisualElement;
-
-        // Rules for lookup:
-        // 1. if itemRendererFunction is defined, call it to get the renderer factory and instantiate it
-        // 2. if itemRenderer is defined, instantiate one
-        // 3. if item is an IVisualElement and a DisplayObject, use it directly
-
-        // 1. if itemRendererFunction is defined, call it to get the renderer factory and instantiate it
-        if (itemRendererFunction != null)
-        {
-            var rendererFactory:IFactory = itemRendererFunction(item);
-
-            // if the function returned a factory, use that.
-            // otherwise, if it returned null, try using the item directly
-            if (rendererFactory)
-                myItemRenderer = rendererFactory.newInstance();
-            else if (item is IVisualElement && item is DisplayObject)
-                myItemRenderer = IVisualElement(item);
-        }
-
-        // 2. if itemRenderer is defined, instantiate one
-        if (!myItemRenderer && itemRenderer)
-            myItemRenderer = itemRenderer.newInstance();
-
-        // 3. if item is an IVisualElement and a DisplayObject, use it directly
-        if (!myItemRenderer && item is IVisualElement && item is DisplayObject)
-            myItemRenderer = IVisualElement(item);
-
-        // Couldn't find item renderer.  Throw an RTE.
-        if (!myItemRenderer && failRTE)
-        {
-            var err:String;
-            if (item is IVisualElement || item is DisplayObject)
-                err = resourceManager.getString("components", "cannotDisplayVisualElement");
-            else
-                err = resourceManager.getString("components", "unableToCreateRenderer", [item]);
-            throw new Error(err);
-        }
-
-        return myItemRenderer;
+        var renderer:IVisualElement = null;
+
+        const rendererFactory:IFactory = itemToRendererFactory(item);
+        if (rendererFactory)
+            renderer = createRenderer(rendererFactory);
+
+        if (!renderer && (item is IVisualElement) && (item is DisplayObject))
+            renderer = IVisualElement(item);
+
+        if (!renderer && failRTE)
+            throwCreateRendererFailedError(item);
+
+        return renderer;
     }

     /**
@@ -864,7 +973,6 @@
      *  called by commitProperties().
      *
      *  Reuse as many of the IItemRenderer renderers in indexToRenders as possible.
-     *  Note that if itemRendererFunction was specified, we can reuse any of them.
      */
     private function createItemRenderers():void
     {
@@ -873,10 +981,6 @@
             removeAllItemRenderers();
             return;
         }
-
-        // Can't reuse renderers if ...
-        if ((itemRenderer == null) || (itemRendererFunction != null))
-            removeAllItemRenderers();   // indexToRenderer.length = 0

         if (layout && layout.useVirtualLayout)
         {
@@ -891,6 +995,7 @@
             // The item renderers will be created lazily, at updateDisplayList() time
             invalidateSize();
             invalidateDisplayList();
+
             return;
         }

@@ -1192,24 +1297,6 @@
      *  See invalidateSize() and updateDisplayList().
      */
     private var virtualLayoutUnderway:Boolean = false;
-
-    /**
-     *  @private
-     *  freeRenderers - IRs that were created by getLayoutElementAt() but
-     *  are no longer in view.   They'll be reused by getLayoutElementAt().
-     *  The list is updated by finishVirtualLayout().
-     */
-    private var freeRenderers:Array = new Array();
-
-    /**
-     *  @private
-     *  True if it's OK to recycle virtual item renderers.   More about
-     *  the conditions under which recyling can work at getVirtualElementAt().
-     */
-    private function isRecyclingOK():Boolean
-    {
-        return (itemRendererFunction == null) && (itemRenderer != null);
-    }

     /**
      *  @private
@@ -1266,8 +1353,6 @@
         // Remove the old ItemRenderers that aren't new ItemRenderers and if
         // recycling is possible, add them to the freeRenderers list.

-        const recyclingOK:Boolean = isRecyclingOK();
-
         for each (var vrIndex:int in oldVirtualRendererIndices)
         {
             // Skip renderers that are still in view.
@@ -1280,13 +1365,13 @@

             // Free or remove the IR.
             var item:Object = (dataProvider.length > vrIndex) ? dataProvider.getItemAt(vrIndex) : null;
-            if (recyclingOK && (item != elt) && (elt is IDataRenderer))
+            if ((item != elt) && (elt is IDataRenderer))
             {
                 // IDataRenderer(elt).data = null;  see https://bugs.adobe.com/jira/browse/SDK-20962
                 elt.includeInLayout = false;
                 elt.visible = false;

-                freeRenderers.push(elt);
+                freeRenderer(elt);
             }
             else if (elt)
             {
@@ -1326,10 +1411,7 @@
      */
     mx_internal function clearFreeRenderers():void
     {
-        const freeRenderersLength:int = freeRenderers.length;
-        for (var i:int = 0; i < freeRenderersLength; i++)
-            freeRenderers[i] = null;
-        freeRenderers.length = 0;
+        resetFreeRenderers();
     }

     /**
@@ -1409,26 +1491,6 @@

     /**
      *  @private
-     *
-     *  Currently, item renderers ("IRs") can only be recycled if they're all
-     *  of the same type, they implement IDataRenderer, and they're all
-     *  produced - by the itemRenderer factory - with the same initial
-     *  configuration.  We can't ever really guarantee this however the case
-     *  for which we're assuming that it's true is when just the itemRenderer
-     *  is specified.  Even in this case, for recycling to work the
-     *  itemRenderer (factory) must be essentially stateless, the IRs
-     *  appearance must be based exclusively on its data.  For this reason
-     *  we're also defeating recycling of IRs that don't implement
-     *  IDataRenderer, see endVirtualLayout().  Although one could recycle
-     *  these IRs, doing so would imply that either all of the IRs were
-     *  the same, or that some did implement IDataRenderer and others
-     *  did not.   We can't handle the latter, and a DataGroup where
-     *  all items are the same wouldn't be worth the trouble.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
      */
     override public function getVirtualElementAt(index:int, eltWidth:Number=NaN, eltHeight:Number=NaN):IVisualElement
     {
@@ -1442,25 +1504,15 @@
             if (virtualRendererIndices.indexOf(index) == -1)
                 virtualRendererIndices.push(index);

-            var createdIR:Boolean = false;
             const item:Object = dataProvider.getItemAt(index);

+            addedVirtualRenderer = false;  // set by createVirtualRendererForItem()
             if (!elt)
             {
-                if (isRecyclingOK() && (freeRenderers.length > 0))
-                {
-                    elt = freeRenderers.pop();
-                    elt.visible = true;
-                    elt.includeInLayout = true;
-                }
-                else
-                {
-                    elt = createRendererForItem(item);
-                    createdIR = true;
-                }
-
+                elt = createVirtualRendererForItem(item);
+                elt.visible = true;
+                elt.includeInLayout = true;
                 indexToRenderer[index] = elt;
-
                 addItemRendererToDisplayList(DisplayObject(elt));
                 setUpItemRenderer(elt, index, item);
             }
@@ -1485,7 +1537,7 @@
             if (!isNaN(eltWidth) || !isNaN(eltHeight))
                 elt.setLayoutBoundsSize(eltWidth, eltHeight);

-            if (createdIR)
+            if (addedVirtualRenderer)
                 dispatchEvent(new RendererExistenceEvent(RendererExistenceEvent.RENDERER_ADD, false, false, elt, index, item));
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 21849
Author:   hmuller@adobe.com
Date:     2011-08-04T23:48:37.166248Z

Log Message:
-----------
State change handling for DataGroup dataProvider items.

QE notes:
Doc notes:
Bugs: SDK-31033
Reviewer: Evtim
Tests run: checkin, mustella
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -901,13 +901,22 @@
     private function throwCreateRendererFailedError(item:Object):void
     {
         var err:String;
-        if (item is IVisualElement || item is DisplayObject)
+        if (itemIsRenderer(item))
             err = resourceManager.getString("components", "cannotDisplayVisualElement");
         else
             err = resourceManager.getString("components", "unableToCreateRenderer", [item]);

         throw new Error(err);
-    }
+    }
+
+    /**
+     *  @private
+     *  True if the specified dataProvider item would serve as a renderer.
+     */
+    private function itemIsRenderer(item:Object):Boolean
+    {
+        return (item is IVisualElement) && (item is DisplayObject);
+    }

     /**
      *  @private
@@ -932,7 +941,7 @@
             addedVirtualRenderer = true;
         }

-        if (!renderer && (item is IVisualElement) && (item is DisplayObject))
+        if (!renderer && itemIsRenderer(item))
         {
             renderer = IVisualElement(item);
             addedVirtualRenderer = true;
@@ -957,7 +966,7 @@
         if (rendererFactory)
             renderer = createRenderer(rendererFactory);

-        if (!renderer && (item is IVisualElement) && (item is DisplayObject))
+        if (!renderer && itemIsRenderer(item))
             renderer = IVisualElement(item);

         if (!renderer && failRTE)
@@ -1010,11 +1019,15 @@
         {
             var item:Object = dataProvider.getItemAt(index);
             var renderer:IVisualElement = indexToRenderer[index] as IVisualElement;
-            if (renderer)
+
+            // If the (new) item is-a renderer and the old renderer is a different
+            // DisplayObject, then we can't reuse the old renderer.
+
+            if (renderer && (!itemIsRenderer(item) || (item == renderer)))
             {
                 setUpItemRenderer(renderer, index, item);
             }
-            else // can't reuse this renderer
+            else
             {
                 removeRendererAt(index);
                 itemAdded(item, index);


Transferred from the Adobe Open Source Subversion Repository

Revision: 3021
Author:   gosmith@adobe.com
Date:     2008-08-28T01:56:25.254704Z

Log Message:
-----------
Integrated TCAL SWCs from Build 159 to get scrolling improvements.

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

Modified Paths:
--------------
<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/libs/text_importExport.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/text_model.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/text_edit.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/events/TextOperationEvent.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextInput.as
+++ frameworks/projects/spark/src/spark/components/TextInput.as
@@ -26,8 +26,8 @@
 //--------------------------------------

 /**
- *  Dispached after the selectionAnchorIndex and/or
- *  selectionActiveIndex properties have changed
+ *  Dispached after the selectionAnchorPosition and/or
+ *  selectionActivePosition properties have changed
  *  due to a user interaction.
  */
 [Event(name="selectionChange", type="flash.events.Event")]
@@ -100,45 +100,45 @@
     //--------------------------------------------------------------------------

 	//----------------------------------
-	//  selectionActiveIndex
-    //----------------------------------
-
-	/**
-	 *  @private
-	 */
-	private var _selectionActiveIndex:int = -1;
-
-	/**
-	 *  @private
-	 */
-	private var selectionActiveIndexChanged:Boolean = false;
+	//  selectionActivePosition
+    //----------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _selectionActivePosition:int = -1;
+
+	/**
+	 *  @private
+	 */
+	private var selectionActivePositionChanged:Boolean = false;

 	[Bindable("selectionChange")]

 	/**
-	 *  The active index of the selection.
+	 *  The active position of the selection.
 	 *  The "active" point is the end of the selection
 	 *  which is changed when the selection is extended.
-	 *  The active index may be either the start
+	 *  The active position may be either the start
 	 *  or the end of the selection.
 	 *
 	 *  @default -1
 	 */
-	public function get selectionActiveIndex():int
-	{
-		return _selectionActiveIndex;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set selectionActiveIndex(value:int):void
-	{
-		if (value == _selectionActiveIndex)
+	public function get selectionActivePosition():int
+	{
+		return _selectionActivePosition;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set selectionActivePosition(value:int):void
+	{
+		if (value == _selectionActivePosition)
 			return;

-		_selectionActiveIndex = value;
-		selectionActiveIndexChanged = true;
+		_selectionActivePosition = value;
+		selectionActivePositionChanged = true;

 		invalidateProperties();

@@ -146,45 +146,45 @@
 	}

 	//----------------------------------
-	//  selectionAnchorIndex
-    //----------------------------------
-
-	/**
-	 *  @private
-	 */
-	private var _selectionAnchorIndex:int = -1;
-
-	/**
-	 *  @private
-	 */
-	private var selectionAnchorIndexChanged:Boolean = false;
+	//  selectionAnchorPosition
+    //----------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _selectionAnchorPosition:int = -1;
+
+	/**
+	 *  @private
+	 */
+	private var selectionAnchorPositionChanged:Boolean = false;

 	[Bindable("selectionChange")]

 	/**
-	 *  The anchor index of the selection.
+	 *  The anchor position of the selection.
 	 *  The "anchor" point is the stable end of the selection
 	 *  when the selection is extended.
-	 *  The anchor index may be either the start
+	 *  The anchor position may be either the start
 	 *  or the end of the selection.
 	 *
 	 *  @default -1
 	 */
-	public function get selectionAnchorIndex():int
-	{
-		return _selectionAnchorIndex;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set selectionAnchorIndex(value:int):void
-	{
-		if (value == _selectionAnchorIndex)
+	public function get selectionAnchorPosition():int
+	{
+		return _selectionAnchorPosition;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set selectionAnchorPosition(value:int):void
+	{
+		if (value == _selectionAnchorPosition)
 			return;

-		_selectionAnchorIndex = value;
-		selectionAnchorIndexChanged = true;
+		_selectionAnchorPosition = value;
+		selectionAnchorPositionChanged = true;

 		invalidateProperties();

@@ -312,16 +312,16 @@
 			textChanged = false;
 		}

-		if (selectionAnchorIndexChanged)
-		{
-			textView.selectionAnchorIndex = _selectionAnchorIndex;
-			selectionAnchorIndexChanged = false
-		}
-
-		if (selectionActiveIndexChanged)
-		{
-			textView.selectionActiveIndex = _selectionActiveIndex;
-			selectionActiveIndexChanged = false
+		if (selectionAnchorPositionChanged)
+		{
+			textView.selectionAnchorPosition = _selectionAnchorPosition;
+			selectionAnchorPositionChanged = false
+		}
+
+		if (selectionActivePositionChanged)
+		{
+			textView.selectionActivePosition = _selectionActivePosition;
+			selectionActivePositionChanged = false
 		}
 	}

@@ -387,8 +387,8 @@
 	private function textView_selectionChangeHandler(event:Event):void
 	{
 		// Update our storage variables for the selection indices.
-		_selectionAnchorIndex = textView.selectionAnchorIndex;
-		_selectionActiveIndex = textView.selectionActiveIndex;
+		_selectionAnchorPosition = textView.selectionAnchorPosition;
+		_selectionActivePosition = textView.selectionActivePosition;

 		// Redispatch the event that came from the TextView.
 		dispatchEvent(event);


Transferred from the Adobe Open Source Subversion Repository

Revision: 6440
Author:   jszeto@adobe.com
Date:     2009-04-30T21:48:25.862370Z

Log Message:
-----------
DropDownList, DropDownController and PopUpAnchor API Changes

DropDownList changes:
- Changed open/close events from type mx.events.DropdownEvent to spark.events.DropDownEvent
- Changed button (skin part) to openButton
- Removed DropDownControllerClass property
- Changed dropDownController from public to protected
- Remove initializeDropDownController

DropDownController changes:
- Changed button to openButton
- Changed button_buttonDownHandler to openButton_buttonDownHandler
- Changed systemManager_mouseDownHandler argument from type MouseEvent to type Event
- Changed focusOutHandler to processFocusOut
- Changed keyDownHandler to processKeyDown

PopUp changes:
- Renamed class to PopUpAnchor
- Added autoSizePopUpHeight and autoSizePopUpWidth
- Changed open to displayPopUp
- Changed content to popUp
- Changed placement to popUpPosition
- Changed updateContentTransform to updatePopUpTransform
- Added "center" and "exact" popUpPosition values
- Only add the popUp to the PopUpManager if the PopUpAnchor is attached to the stage
- Fixed sizing of the popUp by setting the width/height instead of calling setActualSize
- Only apply transform changes to the popUp if it is currently displayed

Other changes:
- Added spark.events.DropDownEvent to replace mx.events.DropdownEvent
- Applied API updates to VideoPlayer sub-components and skins
- Fixed bug in SkinnableComponent when setting a skinPart to null
- Replaced List.list_keyDownHandler with inherited keyDownHandler function

QE Notes: API Changes
Doc Notes: API Changes
Bugs: None
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/DropDownEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/DropDownListSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUp.as" copyfrom-rev="6423" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUp.as</path>

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

--- frameworks/projects/spark/src/spark/events/DropDownEvent.as
+++ frameworks/projects/spark/src/spark/events/DropDownEvent.as
@@ -0,0 +1,167 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 spark.events
+{
+
+import flash.events.Event
+
+/**
+ *  The DropDownEvent class represents the event object passed to
+ *  the event listener for the open and close events.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class DropDownEvent extends Event
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  The DropDownEvent.CLOSE constant defines the value of the
+	 *  type property of the event object for a close event.
+	 *
+	 *
The properties of the event object have the following values:

+	 *

+	 *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *
triggerEvent	A value indicating the
+     *       type of input action that triggered the event.

+	 *

+	 *
+     *  @eventType close
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public static const CLOSE:String = "close";
+
+	/**
+	 *  The DropDownEvent.OPEN constant defines the value of the
+	 *  type property of the event object for a open event.
+	 *
+	 *
The properties of the event object have the following values:

+	 *

+	 *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *
triggerEvent	A value indicating the
+     *       type of input action that triggered the event.

+	 *

+	 *
+     *  @eventType open
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public static const OPEN:String = "open";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble
+	 *  up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior
+	 *  associated with the event can be prevented.
+	 *
+	 *  @param triggerEvent A value indicating the
+     *  type of input action that triggered the event
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function DropDownEvent(type:String, bubbles:Boolean = false,
+                                  cancelable:Boolean = false,
+                                  triggerEvent:Event = null)
+	{
+		super(type, bubbles, cancelable);
+		this.triggerEvent = triggerEvent;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  triggerEvent
+	//----------------------------------
+
+	/**
+	 *  If the control is opened or closed in response to a user action,
+	 *  this property contains a value indicating the type of input action.
+	 *  The value is either InteractionInputType.MOUSE
+	 *  or InteractionInputType.KEYBOARD.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public var triggerEvent:Event;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: Event
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function clone():Event
+	{
+		return new DropDownEvent(type, bubbles, cancelable, triggerEvent);
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/RotateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/RotateInstance.as
@@ -9,11 +9,11 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package mx.effects.effectClasses
+package spark.effects.supportClasses
 {

-import mx.effects.AnimationProperty;
-import mx.events.AnimationEvent;
+import spark.effects.AnimationProperty;
+import spark.events.AnimationEvent;

 //  Let (phi) be angle between r=(Ox,Oy - Cx,Cy) and -X Axis.
 //   (theta) be clockwise further angle of rotation.
@@ -49,7 +49,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class FxRotateInstance extends FxAnimateInstance
+public class RotateInstance extends AnimateInstance
 {
     include "../../core/Version.as";

@@ -69,7 +69,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function FxRotateInstance(target:Object)
+    public function RotateInstance(target:Object)
     {
         super(target);
         affectsConstraints = true;


fix reload timer too small

fix reload timer too small

--- src/com/mangui/HLS/streaming/ManifestLoader.as
+++ src/com/mangui/HLS/streaming/ManifestLoader.as
@@ -113,7 +113,7 @@
                 _type = HLSTypes.VOD;
             } else {
                 _type = HLSTypes.LIVE;
-                var timeout:Number = Math.max(100,_reload_playlists_timer + _fragmentDuration - getTimer());
+                var timeout:Number = Math.max(100,_reload_playlists_timer + 1000*_fragmentDuration - getTimer());
                 Log.txt("Live Playlist parsing finished: reload in " + timeout + " ms");
                 _timeoutID = setTimeout(_loadPlaylists,timeout);
             }


PenTool no longer gets keys from non-SelectablePlotLayers.

Change-Id: Ibf336f38a26dce6e8c9f5baba779a10cb92dfb03

--- WeaveUI/src/weave/ui/PenTool.as
+++ WeaveUI/src/weave/ui/PenTool.as
@@ -55,6 +55,7 @@
 	import weave.utils.CustomCursorManager;
 	import weave.utils.SpatialIndex;
 	import weave.visualization.layers.PlotLayerContainer;
+	import weave.visualization.layers.SelectablePlotLayer;
 	import weave.visualization.plotters.styles.SolidFillStyle;
 	import weave.visualization.tools.SimpleVisTool;

@@ -546,7 +547,7 @@

 			var key:IQualifiedKey;
 			var keys:Dictionary = new Dictionary();
-			var layers:Array = visualization.layers.getObjects();
+			var layers:Array = visualization.layers.getObjects(SelectablePlotLayer);
 			var shapes:Array = WeaveAPI.CSVParser.parseCSV(coords.value);
 			for each (var shape:Array in shapes)
 			{
@@ -560,7 +561,7 @@
 				}
 				_simpleGeom.setVertices(_tempArray);

-				for each (var layer:IPlotLayer in layers)
+				for each (var layer:SelectablePlotLayer in layers)
 				{
 					var spatialIndex:SpatialIndex = layer.spatialIndex as SpatialIndex;
 					var overlappingKeys:Array = spatialIndex.getKeysGeometryOverlapGeometry(_simpleGeom);