Transferred from the Adobe Open Source Subversion Repository

Revision: 8486
Author:   smgilson@adobe.com
Date:     2009-07-09T18:42:45.734868Z

Log Message:
-----------
Third checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Range.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/VScrollBar.as
+++ frameworks/projects/spark/src/spark/components/VScrollBar.as
@@ -58,7 +58,7 @@
  *

  *
  *  @mxml
- *
The <VScrollBar> tag inherits all of the tag
+ *
The <s:VScrollBar> tag inherits all of the tag
  *  attributes of its superclass and adds the following tag attributes:

  *
  *


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

--- frameworks/projects/spark/src/spark/effects/WipeDirection.as
+++ frameworks/projects/spark/src/spark/effects/WipeDirection.as
@@ -33,7 +33,7 @@
     //--------------------------------------------------------------------------

     /**
-     * Wipe direction that starts at the left and moves right
+     *  Wipe direction that starts at the left and moves right
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -43,7 +43,7 @@
     public static const RIGHT:String = "right";

     /**
-     * Wipe direction that starts at the bottom and moves up
+     *  Wipe direction that starts at the bottom and moves up
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -53,7 +53,7 @@
     public static const UP:String = "up";

     /**
-     * Wipe direction that starts at the right and moves left
+     *  Wipe direction that starts at the right and moves left
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -63,7 +63,7 @@
     public static const LEFT:String = "left";

     /**
-     * Wipe direction that starts at the top and moves down
+     *  Wipe direction that starts at the top and moves down
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 16822
Author:   deeptika@adobe.com
Date:     2010-07-07T06:16:32.586582Z

Log Message:
-----------
Removing deprecated API and their usage.

QE notes:
Doc notes:
Bugs: FLEXDMV-2463 (LineaSeries legendData marker are not working if the series has lineStroke to a SolidColorStroke)
FLEXDMV-2470 (Remove deprecation or Remove deprecated properties in charting)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/BarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/CartesianChartAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/renderers/AreaRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/AreaChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/HLOCSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/LineSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/PlotChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/BubbleSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/ColumnSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation/src/mx/automation/tabularData/CartesianChartTabularData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/CandlestickChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/HLOCChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/StackedSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/BarSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/LineChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/HLOCSeriesBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/ChartBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/BubbleChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/AreaSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/ColumnChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/renderers/HLOCItemRenderer.as</path>

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

--- frameworks/projects/charts/src/mx/charts/LineChart.as
+++ frameworks/projects/charts/src/mx/charts/LineChart.as
@@ -156,11 +156,7 @@
 			this.fill = new SolidColor(0xFFFFFF, 0);
 			this.calloutStroke = new Stroke(0x888888,2);
 			this.fontSize = 10;
-			this.horizontalAxisStyleName = "hangingCategoryAxis";
-			this.secondHorizontalAxisStyleName = "hangingCategoryAxis";
-			this.secondVerticalAxisStyleName = "blockNumericAxis";
 			this.textAlign = "left";
-			this.verticalAxisStyleName = "blockNumericAxis";
 			this.horizontalAxisStyleNames = ["hangingCategoryAxis"];
 			this.verticalAxisStyleNames = ["blockNumericAxis"];
 		}
@@ -210,26 +206,6 @@
 		// our style settings
 		initStyles();
 	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: CartesianChart
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	override protected function initSecondaryMode():void
-	{
-		super.initSecondaryMode();
-
-		if (!secondVerticalAxis)
-			secondVerticalAxis = new LinearAxis();
-
-		if (!secondVerticalAxisRenderer)
-			secondVerticalAxisRenderer = new AxisRenderer();
-	}
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12860
Author:   mhorn@adobe.com
Date:     2009-12-11T20:35:27.553353Z

Log Message:
-----------
asdoc updates for l10n

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/MXFTETextInput.as</path>
<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@1277897 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/mx/core/FTETextField.as
+++ frameworks/projects/spark/src/mx/core/FTETextField.as
@@ -65,6 +65,8 @@
 /**
  *  FTETextField is a Sprite which displays text by using the new
  *  Text Layout Framework to implement the old TextField API.
+ *
+ *  @see flash.text.TextField
  *
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
@@ -512,7 +514,7 @@

 	/*
 	 *  Workaround for a Flash Player problem.
-	 *  Don't read the scrollRect property if its value has not been set,
+     *  Don't read the scrollRect property if its value has not been set,
 	 *  because this will cause a large memory allocation.
 	 *  And ignore attempts to reset the scrollRect property to null
 	 *  (its default value) if we've never set it.
@@ -622,7 +624,7 @@
 	//----------------------------------

 	/**
-	 *  This property has no effect in FTETextField.
+	 *  This property has no effect in FTETextField
 	 *  because FTE uses a newer font renderer than TextField.
 	 *  Getting it will always return null
 	 *  and setting it will do nothing.
@@ -866,7 +868,7 @@
 	 *  because FTETextField does not support editing.
 	 *  Accessing it will throw a runtime error.
 	 *
-	 *  @copy flash.text.TextField#caretIndex
+	 *  @see flash.text.TextField#caretIndex
 	 *
 	 *  @playerversion Flash 10
 	 *  @playerversion AIR 1.5
@@ -972,7 +974,7 @@
 	 *  because FTETextField does not support editing.
 	 *  Accessing it will throw a runtime error.
 	 *
-	 *  @copy flash.text.TextField#displayAsPassword
+	 *  @see flash.text.TextField#displayAsPassword
 	 *
 	 *  @playerversion Flash 10
 	 *  @playerversion AIR 1.5
@@ -1035,7 +1037,7 @@
 	//----------------------------------

 	/**
-	 *  This property has no effect in FTETextField.
+	 *  This property has no effect in FTETextField
 	 *  because FTE uses a newer font renderer than TextField.
 	 *  Getting it will always return null
 	 *  and setting it will do nothing.
@@ -1380,7 +1382,7 @@
 	 *  because FTETextField does not support scrolling.
 	 *  Accessing it will throw a runtime error.
 	 *
-	 *  @copy flash.text.TextField#scrollV
+	 *  @see flash.text.TextField#scrollV
 	 *
 	 *  @playerversion Flash 10
 	 *  @playerversion AIR 1.5
@@ -1506,6 +1508,8 @@
 	/**
 	 *  @copy flash.text.TextField#styleSheet
 	 *
+     *  @see flash.text.StyleSheet
+     *
 	 *  @playerversion Flash 10
 	 *  @playerversion AIR 1.5
 	 *  @langversion 3.0
@@ -1706,7 +1710,7 @@
 	//----------------------------------

 	/**
-	 *  This property has no effect in FTETextField.
+	 *  This property has no effect in FTETextField
 	 *  because FTE uses a newer font renderer than TextField.
 	 *  Getting it will always return NaN
 	 *  and setting it will do nothing.
@@ -1777,7 +1781,7 @@
 	 *  or clipboard operations.
 	 *  Accessing it will throw a runtime error.
 	 *
-	 *  @copy flash.text.TextField#useRichTextClipboard
+	 *  @see flash.text.TextField#useRichTextClipboard
 	 *
 	 *  @playerversion Flash 10
 	 *  @playerversion AIR 1.5
@@ -1852,14 +1856,14 @@
 	private var _direction:String = "ltr";

 	/**
-	 *  The directionality of the text displayed by FTETextField.
+	 *  The directionality of the text displayed by the FTETextField.
 	 *
 	 *
The allowed values are "ltr" for left-to-right text,
 	 *  as in Latin-style scripts,
 	 *  and "rtl" for right-to-left text,
 	 *  as in Arabic and Hebrew.

 	 *
-	 *
Note: This property does not exist in the classic
+	 *
Note: This property does not exist in the
 	 *  flash.text.TextField API.

 	 *
 	 *  @default "ltr"
@@ -1914,12 +1918,12 @@

 	/**
 	 *  The ISWFContext instance that FTETextField
-	 *  uses for creating TextLines.
+	 *  uses for creating TextLine objects.
 	 *
 	 *
Set this if you need lines to be created in a different
 	 *  SWF context than the one containing the TLF code.

 	 *
-	 *
Note: This property does not exist in the classic
+	 *
Note: This property does not exist in the
 	 *  flash.text.TextField API.

 	 *
 	 *  @default null
@@ -2034,6 +2038,8 @@
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
 	 *
+     *  @param newText n/a
+     *
 	 *  @see flash.text.TextField#appendText()
 	 *
 	 *  @playerversion Flash 10
@@ -2049,6 +2055,10 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param charIndex n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getCharBoundaries()
 	 *
@@ -2066,6 +2076,11 @@
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
 	 *
+     *  @param x n/a
+     *  @param y n/a
+     *
+     *  @return n/a
+     *
 	 *  @see flash.text.TextField#getCharIndexAtPoint()
 	 *
 	 *  @playerversion Flash 10
@@ -2082,6 +2097,10 @@
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
 	 *
+     *  @param charIndex n/a
+     *
+     *  @return n/a
+     *
 	 *  @see flash.text.TextField#getFirstCharInParagraph()
 	 *
 	 *  @playerversion Flash 10
@@ -2097,6 +2116,12 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param x n/a
+     *
+     *  @param y n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getLineIndexAtPoint()
 	 *
@@ -2113,6 +2138,10 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param charIndex n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getLineIndexOfChar()
 	 *
@@ -2129,6 +2158,10 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param lineIndex n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getLineLength()
 	 *
@@ -2188,6 +2221,10 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param lineIndex n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getLineOffset()
 	 *
@@ -2204,6 +2241,10 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param lineIndex n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getLineText()
 	 *
@@ -2220,6 +2261,10 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param charIndex n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getParagraphLength()
 	 *
@@ -2236,6 +2281,12 @@
 	 *  This method has been implemented in FTETextField
 	 *  to simply return a copy of the defaultTextFormat,
 	 *  because FTETextField does not support formatting a range.
+     *
+     *  @param beginIndex n/a
+     *
+     *  @param endIndex n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getTextFormat()
 	 *
@@ -2257,6 +2308,8 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param value n/a
 	 *
  	 *  @see flash.text.TextField#replaceSelectedText()
 	 *
@@ -2273,6 +2326,12 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param beginIndex n/a
+     *
+     *  @param endIndex n/a
+     *
+     *  @param newText n/a
 	 *
 	 *  @see flash.text.TextField#replaceText()
 	 *
@@ -2290,6 +2349,10 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because FTETextField does not support selection.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param beginIndex n/a
+     *
+     *  @param endIndex n/a
 	 *
 	 *  @see flash.text.TextField#setSelection()
 	 *
@@ -2303,9 +2366,15 @@
 	}

 	/**
-	 *  This method has no effect on a FTETextField if beginIndex
-     *  or endIndex != -1
+     *  This method has no effect on a FTETextField if beginIndex
+     *  or endIndex does not equal -1
 	 *  because FTETextField does not support formatting a range.
+     *
+     *  @param format n/a
+     *
+     *  @param beginIndex n/a
+     *
+     *  @param endIndex n/a
 	 *
 	 *  @see flash.text.TextField#setTextFormat()
 	 *
@@ -2333,6 +2402,10 @@
 	 *  This method has not been implemented in FTETextField
 	 *  because very few components use it in TextField.
 	 *  It will throw a runtime error if called.
+     *
+     *  @param id n/a
+     *
+     *  @return n/a
 	 *
 	 *  @see flash.text.TextField#getImageReference()
 	 *


Transferred from the Adobe Open Source Subversion Repository

Revision: 10759
Author:   chaase@adobe.com
Date:     2009-09-30T20:29:28.049407Z

Log Message:
-----------
Fixes bug in transform effects on nested group structures. We would calculate the transform center based on outdated width/height information for a group (because we took those values prior to running layout on the group, so it was not sized correctly).

The fix is to add width/height to the list of properties that transform effects care about (‘affectedProperties’). Then at those times when we calculate the transform center, we will use these cached values (which are correct at start/end time) rather than going out to the object to grab a potentially wrong value.

QE notes:  Handful of Mustella tests fail due to the new values of relevantProperties/affectedProperties for transform effects. We now care about width/height properties, too.
Doc notes: None
Bugs: SDK-23346
Reviewer: Jason
Tests run: checkintests, Mustella spark/effects, mx/effects/Parallel, mx/effects/Sequence
Is noteworthy for integration: Yes, downstream teams care about this bug

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Rotate.as
+++ frameworks/projects/spark/src/spark/effects/Rotate.as
@@ -71,7 +71,8 @@
      *  @private
      */
     private static var AFFECTED_PROPERTIES:Array =
-        ["rotationZ", "postLayoutRotationZ"];
+        ["rotationZ", "postLayoutRotationZ",
+         "width", "height"];

     private static var RELEVANT_STYLES:Array = [];


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

--- frameworks/projects/automation/src/mx/automation/delegates/core/ScrollControlBaseAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/core/ScrollControlBaseAutomationImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


support for apples AudioSampleEntry box with soundversion 1 & 2

--- src/main/actionscript/com/castlabs/dash/boxes/SampleEntry.as
+++ src/main/actionscript/com/castlabs/dash/boxes/SampleEntry.as
@@ -50,14 +50,25 @@

     protected function parseMp4a(ba:ByteArray):void {

-        // skip
-        ba.position += 16;
+        ba.position += 6;
+
+        var soundVersion:uint;
+        soundVersion = ba.readUnsignedShort();
+
+
+        ba.position += 8;

         channelCount = ba.readUnsignedShort();
         sampleSize = ba.readUnsignedShort();

         // skip
         ba.position += 8;
+        if (soundVersion==1) {
+            ba.position += 16;
+        }
+        if (soundVersion==2) {
+            ba.position += 36;
+        }

         _data = parseMp4aData(ba);
     }


Lost a casting

Lost a casting

--- frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Point.as
+++ frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Point.as
@@ -49,7 +49,7 @@
 	}
 	override public function subtract(v:flash.geom.Point):org.apache.flex.geom.Point
 	{
-		return (super.subtract(v));
+		return org.apache.flex.geom.Point(super.subtract(v));
 	}

 	override public function add(v:flash.geom.Point):org.apache.flex.geom.Point


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

--- frameworks/projects/advancedgrids/src/mx/collections/SummaryField.as
+++ frameworks/projects/advancedgrids/src/mx/collections/SummaryField.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 22561
Author:   smgilson@adobe.com
Date:     2011-09-14T19:12:37.612519Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/events/ModuleEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/advancedgrids/src/mx/events/AdvancedDataGridEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/Callout.as
+++ frameworks/projects/mobilecomponents/src/spark/components/Callout.as
@@ -143,6 +143,8 @@
  *  @see spark.skins.mobile.CalloutSkin
  *  @see spark.components.ContentBackgroundAppearance
  *  @see spark.components.CalloutPosition
+ *
+ *  @includeExample examples/CalloutExample.mxml -noswf
  *
  *  @langversion 3.0
  *  @playerversion AIR 3


Transferred from the Adobe Open Source Subversion Repository

Revision: 4958
Author:   rfrishbe@adobe.com
Date:     2009-02-13T23:07:46.243121Z

Log Message:
-----------
Change the initialization sequence of FxComponent and Group.  Basically now children (including the skin) should get created at createChildren() time and follow the correct lifecycle pattern.  Unfortunately, this change got mingled in with all my PARB changes, so I'm submitting a bunch of PARB changes for Group, DataGroup, FxContainer, and FxDataContainer, outlined below:

1.     New event classes/names for Group/FxContainer and DataGroup ("elementAdd" and "elementRemove" event of type ElementExistenceEvent for Group/FxContainer and "rendererAdd" and "rendererRemove" event of type RendererExistenceEvent for DataGroup). It was just one event class of ItemExistenceChangedEvent before.
2.     LayoutBase.clipContent->clipAndEnableScrolling (same with IViewport.clipContent and GroupBase.clipContent)
3.     GroupBase.getLayoutELementAt()->getElementAt()
4.     GroupBase.numLayoutElements -> numElements.
5.     LayoutBase.virtualLayout -> useVirtualLayout
6.     ScrollUnit constants are now changed to be uints instead of typed as ScrollUnit.  This means the signature for getHorizontalScrollPositionDelta(unit:ScrollUnit):Number has changed to getHorizontalScrollPositionDelta(scrollUnit:uint):Number (and ditto for getVerticalScrollPositionDelta())
7.  DataGroup.getRendererForItemAt() -> getElementAt()
8.  DataGroup.getItemIndexForRenderer() -> getElementIndex()

Other changes:
 - Change IVisualElement interface so that it's smaller now.  It also extends ILayoutElement now.  The properties removed from IVisualElement are: rotation, rotationX, rotationY, rotationZ, transformX, transformY, offsets, x, y, z, scaleX, scaleY, scaleZ, explicitWidth, explicitMinWidth, explicitMaxWidth, explicitHeight, explicitMinHeight, explicitMaxHeight)
-  Fix in DataGroup so we don’t remove/add elements if we’re gonna do it later anyways.  I also need to do some other work in here around cleaning up of renderers.
- AddItems fix around handling IVisualElementContainers more effeciently
- get mxmlContent now returns a copy of the Array rather than the one we're using internally
- Had to update mustella since there was special case logic for dealing with getLayoutElementAt().  I added this logic for getElementAt(), which replaces that method.

QE Notes: Thanks for changing all the tests and working on the cyclone
Doc Notes: Made some ASDoc changes to some core classes to move the comments into the interfaces.  I did update the comments a bit as well.
Bugs: SDK-18115, SDK-19004
Reviewer: Jason, Glenn, Hans for initialization sequence change and Hans for all PARB changes
tests: checkintests, all mustella tests

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/ItemExistenceChangedEvent.as" copyfrom-rev="4812" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/ElementExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/RendererExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/events/ItemExistenceChangedEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/ScrollUnit.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/mustella.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -25,15 +25,13 @@
 import mx.core.IVisualElementContainer;
 import mx.core.IUIComponent;
 import mx.core.IViewport;
-import mx.core.ScrollUnit;
 import mx.events.FlexEvent;
-import mx.events.ItemExistenceChangedEvent;
+import mx.events.ElementExistenceEvent;
 import mx.events.PropertyChangeEvent;
 import mx.layout.BasicLayout;
 import mx.layout.LayoutBase;
 import mx.managers.IFocusManagerContainer;
 import mx.utils.BitFlagUtil;
-

 /**
  *  Dispatched after the content for this component has been created. With deferred
@@ -45,18 +43,20 @@
 [Event(name="contentCreationComplete", type="mx.events.FlexEvent")]

 /**
- *  Dispatched when an item is added to the component.
+ *  Dispatched when a visual element is added to the content holder.
+ *  event.element is the visual element that was added.
  *
- *  @eventType mx.events.ItemExistenceChangedEvent.ITEM_ADD
+ *  @eventType mx.events.ElementExistenceEvent.ELEMENT_ADD
  */
-[Event(name="itemAdd", type="mx.events.ItemExistenceChangedEvent")]
+[Event(name="elementAdd", type="mx.events.ElementExistenceEvent")]

 /**
- *  Dispatched when an item is removed from the component.
+ *  Dispatched when a visual element is removed to the content holder.
+ *  event.element is the visual element that's being removed.
  *
- *  @eventType mx.events.ItemExistenceChangedEvent.ITEM_REMOVE
+ *  @eventType mx.events.ElementExistenceEvent.ELEMENT_REMOVE
  */
-[Event(name="itemRemove", type="mx.events.ItemExistenceChangedEvent")]
+[Event(name="elementRemove", type="mx.events.ElementExistenceEvent")]

 include "../styles/metadata/AdvancedCharacterFormatTextStyles.as"
 include "../styles/metadata/AdvancedContainerFormatTextStyles.as"
@@ -120,7 +120,7 @@
     /**
      *  @private
      */
-    private static const CLIP_CONTENT_PROPERTY_FLAG:uint = 1 << 0;
+    private static const CLIP_AND_ENABLE_SCROLLING_PROPERTY_FLAG:uint = 1 << 0;

     /**
      *  @private
@@ -209,9 +209,9 @@
                     _placeHolderGroup.mxmlContent = _mxmlContent;

                 _placeHolderGroup.addEventListener(
-                    ItemExistenceChangedEvent.ITEM_ADD, contentGroup_itemAddedHandler);
+                    ElementExistenceEvent.ELEMENT_ADD, contentGroup_elementAddedHandler);
                 _placeHolderGroup.addEventListener(
-                    ItemExistenceChangedEvent.ITEM_REMOVE, contentGroup_itemRemovedHandler);
+                    ElementExistenceEvent.ELEMENT_REMOVE, contentGroup_elementRemovedHandler);
             }
             return _placeHolderGroup;
         }
@@ -253,32 +253,32 @@
     //--------------------------------------------------------------------------

     //----------------------------------
-    //  clipContent
-    //----------------------------------
-
-    /**
-     *  @inheritDoc
-     */
-    public function get clipContent():Boolean
+    //  clipAndEnableScrolling
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     */
+    public function get clipAndEnableScrolling():Boolean
     {
         return (contentGroup)
-            ? contentGroup.clipContent
-            : contentGroupProperties.clipContent;
-    }
-
-    /**
-     *  @private
-     */
-    public function set clipContent(value:Boolean):void
+            ? contentGroup.clipAndEnableScrolling
+            : contentGroupProperties.clipAndEnableScrolling;
+    }
+
+    /**
+     *  @private
+     */
+    public function set clipAndEnableScrolling(value:Boolean):void
     {
         if (contentGroup)
         {
-            contentGroup.clipContent = value;
+            contentGroup.clipAndEnableScrolling = value;
             contentGroupProperties = BitFlagUtil.update(contentGroupProperties as uint,
-                                                        CLIP_CONTENT_PROPERTY_FLAG, true);
+                                                        CLIP_AND_ENABLE_SCROLLING_PROPERTY_FLAG, true);
         }
         else
-            contentGroupProperties.clipContent = value;
+            contentGroupProperties.clipAndEnableScrolling = value;
     }

     //----------------------------------
@@ -378,26 +378,10 @@

     private var _mxmlContent:Array;

-    /**
-     *  @copy mx.components.Group#content
-     */
     [ArrayElementType("mx.core.IVisualElement")]
-    [Bindable]
-    public function get mxmlContent():Array
-    {
-        // Make sure deferred content is created, if needed
-        createContentIfNeeded();
-
-        if (contentGroup)
-            return contentGroup.mxmlContent;
-        else if (_placeHolderGroup)
-            return _placeHolderGroup.mxmlContent;
-        else
-            return _mxmlContent;
-    }
-
-    /**
-     *  @private
+
+    /**
+     *  @copy mx.components.Group#mxmlContent
      */
     public function set mxmlContent(value:Array):void
     {
@@ -412,7 +396,6 @@
             _placeHolderGroup.mxmlContent = value;
     }

-
     //----------------------------------
     //  mxmlContentFactory
     //----------------------------------
@@ -432,14 +415,6 @@
     /**
      *  A factory object that creates the initial value for the
      *  content property.
-     */
-    public function get mxmlContentFactory():IDeferredInstance
-    {
-        return _mxmlContentFactory;
-    }
-
-    /**
-     *  @private
      */
     public function set mxmlContentFactory(value:IDeferredInstance):void
     {
@@ -575,19 +550,19 @@
     /**
      *  @inheritDoc
      */
-    public function getHorizontalScrollPositionDelta(unit:ScrollUnit):Number
+    public function getHorizontalScrollPositionDelta(scrollUnit:uint):Number
     {
         return (contentGroup) ?
-            contentGroup.getHorizontalScrollPositionDelta(unit) : 0;
-    }
-
-    /**
-     *  @inheritDoc
-     */
-    public function getVerticalScrollPositionDelta(unit:ScrollUnit):Number
+            contentGroup.getHorizontalScrollPositionDelta(scrollUnit) : 0;
+    }
+
+    /**
+     *  @inheritDoc
+     */
+    public function getVerticalScrollPositionDelta(scrollUnit:uint):Number
     {
         return (contentGroup) ?
-            contentGroup.getVerticalScrollPositionDelta(unit) : 0;
+            contentGroup.getVerticalScrollPositionDelta(scrollUnit) : 0;
     }

     //--------------------------------------------------------------------------
@@ -642,11 +617,11 @@

             var newContentGroupProperties:uint = 0;

-            if (contentGroupProperties.clipContent !== undefined)
-            {
-                contentGroup.clipContent = contentGroupProperties.clipContent;
+            if (contentGroupProperties.clipAndEnableScrolling !== undefined)
+            {
+                contentGroup.clipAndEnableScrolling = contentGroupProperties.clipAndEnableScrolling;
                 newContentGroupProperties = BitFlagUtil.update(newContentGroupProperties,
-                                                                 CLIP_CONTENT_PROPERTY_FLAG, true);
+                                                               CLIP_AND_ENABLE_SCROLLING_PROPERTY_FLAG, true);
             }

             if (contentGroupProperties.layout !== undefined)
@@ -673,18 +648,18 @@
             contentGroupProperties = newContentGroupProperties;

             contentGroup.addEventListener(
-                ItemExistenceChangedEvent.ITEM_ADD, contentGroup_itemAddedHandler);
+                ElementExistenceEvent.ELEMENT_ADD, contentGroup_elementAddedHandler);
             contentGroup.addEventListener(
-                ItemExistenceChangedEvent.ITEM_REMOVE, contentGroup_itemRemovedHandler);
+                ElementExistenceEvent.ELEMENT_REMOVE, contentGroup_elementRemovedHandler);
             contentGroup.addEventListener(
                 PropertyChangeEvent.PROPERTY_CHANGE, contentGroup_propertyChangeHandler);

             if (_placeHolderGroup)
             {
                 _placeHolderGroup.removeEventListener(
-                    ItemExistenceChangedEvent.ITEM_ADD, contentGroup_itemAddedHandler);
+                    ElementExistenceEvent.ELEMENT_ADD, contentGroup_elementAddedHandler);
                 _placeHolderGroup.removeEventListener(
-                    ItemExistenceChangedEvent.ITEM_REMOVE, contentGroup_itemRemovedHandler);
+                    ElementExistenceEvent.ELEMENT_REMOVE, contentGroup_elementRemovedHandler);

                 _placeHolderGroup = null;
             }
@@ -699,9 +674,9 @@
         if (instance == contentGroup)
         {
             contentGroup.removeEventListener(
-                ItemExistenceChangedEvent.ITEM_ADD, contentGroup_itemAddedHandler);
+                ElementExistenceEvent.ELEMENT_ADD, contentGroup_elementAddedHandler);
             contentGroup.removeEventListener(
-                ItemExistenceChangedEvent.ITEM_REMOVE, contentGroup_itemRemovedHandler);
+                ElementExistenceEvent.ELEMENT_REMOVE, contentGroup_elementRemovedHandler);
             contentGroup.removeEventListener(
                 PropertyChangeEvent.PROPERTY_CHANGE, contentGroup_propertyChangeHandler);

@@ -709,8 +684,8 @@

             var newContentGroupProperties:Object = {};

-            if (BitFlagUtil.isSet(contentGroupProperties as uint, CLIP_CONTENT_PROPERTY_FLAG))
-                newContentGroupProperties.clipContent = contentGroup.clipContent;
+            if (BitFlagUtil.isSet(contentGroupProperties as uint, CLIP_AND_ENABLE_SCROLLING_PROPERTY_FLAG))
+                newContentGroupProperties.clipAndEnableScrolling = contentGroup.clipAndEnableScrolling;

             if (BitFlagUtil.isSet(contentGroupProperties as uint, LAYOUT_PROPERTY_FLAG))
                 newContentGroupProperties.layout = contentGroup.layout;
@@ -723,16 +698,18 @@

             contentGroupProperties = newContentGroupProperties;

-            if (contentGroup.mxmlContent)
+            var myMxmlContent:Array = contentGroup.mxmlContent;
+
+            if (myMxmlContent)
             {
                 _placeHolderGroup = new Group();

-                _placeHolderGroup.mxmlContent = contentGroup.mxmlContent;
+                _placeHolderGroup.mxmlContent = myMxmlContent;

                 _placeHolderGroup.addEventListener(
-                    ItemExistenceChangedEvent.ITEM_ADD, contentGroup_itemAddedHandler);
+                    ElementExistenceEvent.ELEMENT_ADD, contentGroup_elementAddedHandler);
                 _placeHolderGroup.addEventListener(
-                    ItemExistenceChangedEvent.ITEM_REMOVE, contentGroup_itemRemovedHandler);
+                    ElementExistenceEvent.ELEMENT_REMOVE, contentGroup_elementRemovedHandler);
             }

             // TODO: Need to force the contentGroup to removeChild on its content children
@@ -760,12 +737,12 @@
         {
             mxmlContentCreated = true;

-            if (mxmlContentFactory)
+            if (_mxmlContentFactory)
             {
                 // TODO (rfrishbe): If we have compiler support for deferred content
                 // to do autotype conversion (do I create a single object,
                 // an array, or an IList in the function)
-                var deferredContent:Object = mxmlContentFactory.getInstance();
+                var deferredContent:Object = _mxmlContentFactory.getInstance();
                 if (deferredContent is Array)
                     mxmlContent = deferredContent as Array;
                 else
@@ -790,23 +767,17 @@
     //
     //--------------------------------------------------------------------------

-    private function contentGroup_itemAddedHandler(event:ItemExistenceChangedEvent):void
-    {
-        if (event.relatedObject is IVisualElement)
-        {
-            IVisualElement(event.relatedObject).owner = this;
-        }
+    private function contentGroup_elementAddedHandler(event:ElementExistenceEvent):void
+    {
+        event.element.owner = this

         // Re-dispatch the event
         dispatchEvent(event);
     }

-    private function contentGroup_itemRemovedHandler(event:ItemExistenceChangedEvent):void
-    {
-        if (event.relatedObject is IVisualElement)
-        {
-            IVisualElement(event.relatedObject).owner = null;
-        }
+    private function contentGroup_elementRemovedHandler(event:ElementExistenceEvent):void
+    {
+        event.element.owner = null;

         // Re-dispatch the event
         dispatchEvent(event);


Bugfix in AbstractPlayer media looping

Bugfix in AbstractPlayer media looping

--- src/reprise/media/AbstractPlayer.as
+++ src/reprise/media/AbstractPlayer.as
@@ -567,8 +567,8 @@
 		{
 			if (m_options & OPTIONS_LOOP)
 			{
-				stop();
 				dispatchEvent(new CommandEvent(CommandEvent.COMPLETE));
+				seek(0);
 				play();
 				return;
 			}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

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

 package mx.automation.delegates.controls
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20155
Author:   chiedozi@adobe.com
Date:     2011-02-04T23:55:58.818364Z

Log Message:
-----------
Developers can now use the preinitialize handler to register custom class aliases when using persistApplicationState on a ViewNavigator based application

QE notes:
Doc notes:
Bugs:SDK-29408
Reviewer: Ryan
Tests run:
Is noteworthy for integration: No

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
@@ -307,8 +307,9 @@
     {
         _persistNavigatorState = value;

-        // Register the necessary class aliases and load the shared object
-        if (_persistNavigatorState && !_persistenceInitialized)
+        // If this flag is set to true at runtime, we will need to initialize
+        // the persistence manager if it hasn't been already
+        if (initialized && _persistNavigatorState && !_persistenceInitialized)
             initializePersistenceManager();
     }

@@ -760,6 +761,8 @@

         if (persistNavigatorState)
         {
+            initializePersistenceManager();
+
             // Dispatch event for loading persistence data
             var eventDispatched:Boolean = true;
             if (hasEventListener(FlexEvent.NAVIGATOR_STATE_LOADING))
@@ -793,7 +796,9 @@
         registerClassAlias("ViewDescriptor", ViewDescriptor);
         registerClassAlias("NavigationStack", NavigationStack);

-        // Initialize and load the persisted data
+        // Initialize and load the persisted data.  The persistence manager
+        // will automatically be allocated in the persistenceManager getter
+        // called below
         persistenceManager.load();

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 4290
Author:   shodgson@adobe.com
Date:     2008-12-11T22:24:37.087871Z

Log Message:
-----------
Bug: BLZ-288 - Consumer is only receiving first pushed message when Consumer and RemoteObject that is used to push the messages use different channel sets but same channel.
QA: Yes
Doc: No
Checkintests Pass: Yes

Details:
* The bug app was arguably generating bogus test data (messages with duplicate ids), and 99.9% of applications won't be configured this way (using multiple ChannelSets with overlapping Channels, pointing at the same server) but it's still worth making this work just right anyways.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as

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

--- frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as
+++ frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as
@@ -189,7 +189,7 @@
             // If this was the last Consumer using this ChannelSet stop listening for message events
             // and blow away the ref-count.
             consumer.channelSet.removeEventListener(MessageEvent.MESSAGE, messageHandler);
-            _channelSetRefCounts[consumer.channelSet] = null;
+            delete _channelSetRefCounts[consumer.channelSet];

             // And clean up the duplicate message delivery barrier if necessary.
             if (_consumerDuplicateMessageBarrier[consumer.id] != null)
@@ -221,35 +221,44 @@
                 Log.getLogger("mx.messaging.Consumer").debug("'{0}' received pushed message for consumer but no longer subscribed: {1}", event.message.clientId, event.message);
             return;
         }
-
+
+        // Determine how many of these will actually redispatch the same event from the shared underlying channel.
         if (event.target.currentChannel.channelSets.length > 1)
-        {
-            // If two (or more) ChannelSets share an underlying Channel instance and the channel receives
-            // a message for a Consumer, it will dispatch a MessageEvent. Both ChannelSets will
-            // be listening for this event and each will redispatch it. At this level
-            // we need to ensure that a message targeted to a single Consumer is only processed once even
-            // though we'll receive more than one MessageEvent (one per ChannelSet instances connected to
-            // the same underlying Channel).
-            // We do this by recording the most recent message Id received over the currently connected Channel
-            // for the target Consumer and blocking repeat processing. When the Consumer moves to an unsubscribed
-            // state its corresponding barrier is cleaned up.
-            // This (miss?)configuration can be accomplished manually in client code but most clients won't
-            // configure things this way in which case we'll skip to the faster code path below.
-            var consumerId:String = consumer.id;
-            if (_consumerDuplicateMessageBarrier[consumerId] == null)
-                _consumerDuplicateMessageBarrier[consumerId] = {};
+        {
+            var count:int = 0;
+            for each (var cs:ChannelSet in event.target.currentChannel.channelSets)
+            {
+                if (_channelSetRefCounts[cs] != null)
+                    ++count;
+            }
+
+            if (count > 1)
+            {
+                // We need to dispatch this message to the target Consumer only once and filter out
+                // the duplicate events.
+                if (_consumerDuplicateMessageBarrier[consumer.id] == null)
+                {
+                    // Record the number of times we will receive a message event for this message.
+                    _consumerDuplicateMessageBarrier[consumer.id] = [event.messageId, count];
+
+                    // Dispatch once - only the first time we see this message for this Consumer.
+                    consumer.messageHandler(event);
+                }
+
+                // Cleanup.
+                var duplicateDispatchGuard:Array = _consumerDuplicateMessageBarrier[consumer.id];
+                if (duplicateDispatchGuard[0] == event.messageId)
+                {
+                    if (--duplicateDispatchGuard[1] == 0)
+                        delete _consumerDuplicateMessageBarrier[consumer.id];
+                }

-            var channelId:String = event.target.currentChannel.id;
-            if (_consumerDuplicateMessageBarrier[consumerId][channelId] != event.messageId)
-            {
-                _consumerDuplicateMessageBarrier[consumerId][channelId] = event.messageId;
-                consumer.messageHandler(event);
+                return; // Exit early.
             }
         }
-        else // Only one ChannelSet so we don't need to worry about this.
-        {
-            consumer.messageHandler(event);
-        }
+
+        // Only one ChannelSet so we don't need to worry about this.
+        consumer.messageHandler(event);
     }

 }


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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkPopUpAnchorAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkPopUpAnchorAutomationImpl.as
@@ -1,3 +1,21 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
 package spark.automation.delegates.components
 {
     import flash.display.DisplayObject;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as
+++ frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as
@@ -0,0 +1,633 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.containers.utilityClasses
+{
+
+import mx.core.Container;
+import mx.core.IUIComponent;
+import mx.core.FlexVersion;
+
+[ExcludeClass]
+
+/**
+ *  @private
+ *  The Flex class is for internal use only.
+ */
+public class Flex
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  This function sets the width of each child
+	 *  so that the widths add up to spaceForChildren.
+	 *  Each child is set to its preferred width
+	 *  if its percentWidth is zero.
+	 *  If it's percentWidth is a positive number
+	 *  the child grows depending on the size of its parent
+	 *  The height of each child is set to its preferred height.
+	 *  The return value is any extra space that's left over
+	 *  after growing all children to their maxWidth.
+	 *
+	 *  @param parent The parent container of the children.
+	 *
+	 *  @param spaceForChildren The space that is to be
+	 *  distributed across all the children.
+	 *
+	 *  @param h height for all children.
+	 *
+	 *  @result Any extra space that's left over
+	 *  after growing all children to their maxWidth.
+	 */
+	public static function flexChildWidthsProportionally(
+								parent:Container,
+								spaceForChildren:Number,
+								h:Number):Number
+	{
+		var spaceToDistribute:Number = spaceForChildren;
+		var totalPercentWidth:Number = 0;
+		var childInfoArray:Array = [];
+		var childInfo:FlexChildInfo;
+		var child:IUIComponent;
+		var i:int;
+
+		// If the child is flexible, store information about it in the
+		// childInfoArray. For non-flexible children, just set the child's
+		// width and height immediately.
+		//
+		// Also calculate the sum of all widthFlexes, and calculate the
+		// sum of the width of all non-flexible children.
+		var n:int = parent.numChildren;
+		for (i = 0; i < n; i++)
+		{
+			child = IUIComponent(parent.getChildAt(i));
+
+			var percentWidth:Number = child.percentWidth;
+			var percentHeight:Number = child.percentHeight;
+			var height:Number;
+
+			if (!isNaN(percentHeight) && child.includeInLayout)
+			{
+				height = Math.max(child.minHeight,
+					Math.min(child.maxHeight,
+					((percentHeight >= 100) ? h : h * percentHeight / 100)));
+			}
+			else
+			{
+				height = child.getExplicitOrMeasuredHeight();
+			}
+
+			if (!isNaN(percentWidth) && child.includeInLayout)
+			{
+				totalPercentWidth += percentWidth;
+
+				childInfo = new FlexChildInfo();
+				childInfo.percent = percentWidth;
+				childInfo.min = child.minWidth;
+				childInfo.max = child.maxWidth;
+				childInfo.height = height;
+				childInfo.child = child;
+
+				childInfoArray.push(childInfo);
+			}
+			else
+			{
+				var width:Number = child.getExplicitOrMeasuredWidth();
+				// if scaled and zoom is playing, best to let the sizes be non-integer
+				// otherwise the rounding creates an error that accumulates in some components like List
+				if (child.scaleX == 1 && child.scaleY == 1)
+				{
+					child.setActualSize(Math.floor(width),
+										Math.floor(height));
+				}
+				else
+				{
+					child.setActualSize(width, height);
+				}
+
+				if (child.includeInLayout)
+				{
+					// Need to account for the actual child width since
+					// setActualSize may trigger a Resize effect, which
+					// could change the size of the component.
+					spaceToDistribute -= child.width;
+				}
+			}
+		}
+
+		// Distribute the extra space among the children.
+		if (totalPercentWidth)
+		{
+			spaceToDistribute = flexChildrenProportionally(spaceForChildren,
+				spaceToDistribute, totalPercentWidth, childInfoArray);
+
+			// Set the widths and heights of the flexible children
+			n = childInfoArray.length;
+			for (i = 0; i < n; i++)
+			{
+				childInfo = childInfoArray[i];
+				child = childInfo.child;
+
+				// if scaled and zoom is playing, best to let the sizes be non-integer
+				// otherwise the rounding creates an error that accumulates in some components like List
+				if (child.scaleX == 1 && child.scaleY == 1)
+				{
+					child.setActualSize(Math.floor(childInfo.size),
+										Math.floor(childInfo.height));
+				}
+				else
+				{
+					child.setActualSize(childInfo.size, childInfo.height);
+				}
+			}
+
+			if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0)
+        	{
+            	distributeExtraWidth(parent, spaceForChildren);
+        	}
+		}
+
+		return spaceToDistribute;
+	}
+
+	/**
+	 *  This function sets the height of each child
+	 *  so that the heights add up to spaceForChildren.
+	 *  Each child is set to its preferred height
+	 *  if its percentHeight is zero.
+	 *  If its percentHeight is a positive number,
+	 *  the child grows (or shrinks) to consume its share of extra space.
+	 *  The width of each child is set to its preferred width.
+	 *  The return value is any extra space that's left over
+	 *  after growing all children to their maxHeight.
+	 *
+	 *  @param parent The parent container of the children.
+	 *
+	 *  @param spaceForChildren The space that is to be
+	 *  distributed across all children .
+	 *
+	 *  @param w width for all children.
+	 */
+	public static function flexChildHeightsProportionally(
+								parent:Container,
+								spaceForChildren:Number,
+								w:Number):Number
+	{
+		var spaceToDistribute:Number = spaceForChildren;
+		var totalPercentHeight:Number = 0;
+		var childInfoArray:Array = [];
+		var childInfo:FlexChildInfo;
+		var child:IUIComponent;
+		var i:int;
+
+		// If the child is flexible, store information about it in the
+		// childInfoArray. For non-flexible children, just set the child's
+		// width and height immediately.
+		//
+		// Also calculate the sum of all percentHeights, and calculate the
+		// sum of the height of all non-flexible children.
+		var n:int = parent.numChildren;
+		for (i = 0; i < n; i++)
+		{
+			child = IUIComponent(parent.getChildAt(i));
+
+			var percentWidth:Number = child.percentWidth;
+			var percentHeight:Number = child.percentHeight;
+			var width:Number;
+
+			if (!isNaN(percentWidth) && child.includeInLayout)
+			{
+				width = Math.max(child.minWidth,
+					Math.min(child.maxWidth,
+					((percentWidth >= 100) ? w : w * percentWidth / 100)));
+			}
+			else
+			{
+				width = child.getExplicitOrMeasuredWidth();
+			}
+
+			if (!isNaN(percentHeight) && child.includeInLayout)
+			{
+				totalPercentHeight += percentHeight;
+
+				childInfo = new FlexChildInfo();
+				childInfo.percent = percentHeight;
+				childInfo.min = child.minHeight;
+				childInfo.max = child.maxHeight;
+				childInfo.width = width;
+				childInfo.child = child;
+
+				childInfoArray.push(childInfo);
+			}
+			else
+			{
+				var height:Number = child.getExplicitOrMeasuredHeight();
+				// if scaled and zoom is playing, best to let the sizes be non-integer
+				// otherwise the rounding creates an error that accumulates in some components like List
+				if (child.scaleX == 1 && child.scaleY == 1)
+				{
+					child.setActualSize(Math.floor(width),
+										Math.floor(height));
+				}
+				else
+				{
+					child.setActualSize(width, height);
+				}
+
+				if (child.includeInLayout)
+				{
+					// Need to account for the actual child height since
+					// setActualSize may trigger a Resize effect, which
+					// could change the size of the component.
+					spaceToDistribute -= child.height;
+				}
+			}
+		}
+
+		// Distribute the extra space among the children.
+		if (totalPercentHeight)
+		{
+			spaceToDistribute = flexChildrenProportionally(spaceForChildren,
+				spaceToDistribute, totalPercentHeight, childInfoArray);
+
+			// Set the widths and heights of the flexible children
+			n = childInfoArray.length;
+			for (i = 0; i < n; i++)
+			{
+				childInfo = childInfoArray[i];
+				child = childInfo.child;
+
+				// if scaled and zoom is playing, best to let the sizes be non-integer
+				// otherwise the rounding creates an error that accumulates in some components like List
+				if (child.scaleX == 1 && child.scaleY == 1)
+				{
+					child.setActualSize(Math.floor(childInfo.width),
+										Math.floor(childInfo.size));
+				}
+				else
+				{
+					child.setActualSize(childInfo.width, childInfo.size);
+				}
+			}
+
+			if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_3_0)
+        	{
+            	distributeExtraHeight(parent, spaceForChildren);
+        	}
+		}
+
+		return spaceToDistribute;
+	}
+
+	/**
+	 *  This function distributes excess space among the flexible children.
+	 *  It does so with a view to keep the children's overall size
+	 *  close the ratios specified by their percent.
+	 *
+	 *  @param spaceForChildren The total space for all children
+	 *
+	 *  @param spaceToDistribute The space that needs to be distributed
+	 *  among the flexible children.
+	 *
+	 *  @param childInfoArray An array of Objects. When this function
+	 *  is called, each object should define the following properties:
+	 *  - percent: the percentWidth or percentHeight of the child (depending
+	 *  on whether we're growing in a horizontal or vertical direction)
+	 *  - min: the minimum width (or height) for that child
+	 *  - max: the maximum width (or height) for that child
+	 *
+	 *  @return When this function finishes executing, a "size" property
+	 *  will be defined for each child object. The size property contains
+	 *  the portion of the spaceToDistribute to be distributed to the child.
+	 *  Ideally, the sum of all size properties is spaceToDistribute.
+	 *  If all the children hit their minWidth/maxWidth/minHeight/maxHeight
+	 *  before the space was distributed, then the remaining unused space
+	 *  is returned. Otherwise, the return value is zero.
+	 */
+	public static function flexChildrenProportionally(
+								spaceForChildren:Number,
+								spaceToDistribute:Number,
+								totalPercent:Number,
+								childInfoArray:Array):Number
+	{
+		// The algorithm iterivately attempts to break down the space that
+		// is consumed by "flexible" containers into ratios that are related
+		// to the percentWidth/percentHeight of the participating containers.
+
+		var numChildren:int = childInfoArray.length;
+		var flexConsumed:Number; // space consumed by flexible compontents
+		var done:Boolean;
+
+		// We now do something a little tricky so that we can
+		// support partial filling of the space. If our total
+		// percent < 100% then we can trim off some space.
+		var unused:Number = spaceToDistribute -
+							(spaceForChildren * totalPercent / 100);
+		if (unused > 0)
+			spaceToDistribute -= unused;
+
+		// Continue as long as there are some remaining flexible children.
+		// The "done" flag isn't strictly necessary, except that it catches
+		// cases where round-off error causes totalPercent to not exactly
+		// equal zero.
+		do
+		{
+			flexConsumed = 0; // space consumed by flexible compontents
+			done = true; // we are optimistic
+
+			// Space for flexible children is the total amount of space
+			// available minus the amount of space consumed by non-flexible
+			// components.Divide that space in proportion to the percent
+			// of the child
+			var spacePerPercent:Number = spaceToDistribute / totalPercent;
+
+			// Attempt to divide out the space using our percent amounts,
+			// if we hit its limit then that control becomes 'non-flexible'
+			// and we run the whole space to distribute calculation again.
+			for (var i:int = 0; i < numChildren; i++)
+			{
+				var childInfo:FlexChildInfo = childInfoArray[i];
+
+				// Set its size in proportion to its percent.
+				var size:Number = childInfo.percent * spacePerPercent;
+
+				// If our flexiblity calc say grow/shrink more than we are
+				// allowed, then we grow/shrink whatever we can, remove
+				// ourselves from the array for the next pass, and start
+				// the loop over again so that the space that we weren't
+				// able to consume / release can be re-used by others.
+				if (size < childInfo.min)
+				{
+					var min:Number = childInfo.min;
+					childInfo.size = min;
+
+					// Move this object to the end of the array
+					// and decrement the length of the array.
+					// This is slightly expensive, but we don't expect
+					// to hit these min/max limits very often.
+					childInfoArray[i] = childInfoArray[--numChildren];
+					childInfoArray[numChildren] = childInfo;
+
+					totalPercent -= childInfo.percent;
+					spaceToDistribute -= min;
+					done = false;
+					break;
+				}
+				else if (size > childInfo.max)
+				{
+					var max:Number = childInfo.max;
+					childInfo.size = max;
+
+					childInfoArray[i] = childInfoArray[--numChildren];
+					childInfoArray[numChildren] = childInfo;
+
+					totalPercent -= childInfo.percent;
+					spaceToDistribute -= max;
+					done = false;
+					break;
+				}
+				else
+				{
+					// All is well, let's carry on...
+					childInfo.size = size;
+					flexConsumed += size;
+				}
+			}
+		}
+		while (!done);
+
+		return Math.max(0, Math.floor(spaceToDistribute - flexConsumed))
+	}
+
+	/**
+	 *  This function distributes excess space among the flexible children
+	 *  because of rounding errors where we want to keep children's dimensions
+	 *  full pixel amounts.  This only distributes the extra space
+	 *  if there was some rounding down and there are still
+	 *  flexible children.
+	 *
+	 *  @param parent The parent container of the children.
+	 *
+	 *  @param spaceForChildren The total space for all children
+	 */
+	public static function distributeExtraHeight(
+								parent:Container,
+								spaceForChildren:Number):void
+	{
+		// We should only get here after distributing the majority of the
+		// space already.  This is done in flexChildHeightsProportionally.
+		// Strategy here is to keep adding 1 pixel at a time to each
+		// component that's flexible (percentHeight defined and hasn't
+		// reached maxHeight yet).  We could use another approach where
+		// we add more than a pixel at a time, but we'd have to first
+		// calculate exactly how many flexible components we have first
+		// and see how much space we can add to them without hitting
+		// their maxHeight.  Since we're just dealing with rounding
+		// issues, we should only make one pass here (if we hit maxHeight
+		// problems, we might make more than one, but not many more).
+
+		// We just distribute from the top-down and don't care about
+		// who was "rounded down the most"
+
+		// First check if we should distribute any extra space.  To do
+		// this, we check to see if someone suffers from rounding error.
+		var n:int = parent.numChildren;
+		var wantToGrow:Boolean = false;
+		var i:int;
+		var percentHeight:Number;
+		var spaceToDistribute:Number = spaceForChildren;
+		var spaceUsed:Number = 0;
+		var child:IUIComponent;
+		var childHeight:Number;
+		var wantSpace:Number;
+
+		for (i = 0; i < n; i++)
+		{
+			child = IUIComponent(parent.getChildAt(i));
+
+			if (!child.includeInLayout)
+				continue;
+
+			childHeight = child.height;
+			percentHeight = child.percentHeight;
+
+			spaceUsed += childHeight;
+
+			if (!isNaN(percentHeight))
+			{
+				wantSpace = Math.ceil(percentHeight/100 * spaceForChildren);
+
+				if (wantSpace > childHeight)
+					wantToGrow = true;
+			}
+		}
+
+		// No need to distribute extra size
+		if (!wantToGrow)
+			return;
+
+		// Start distributing...
+		spaceToDistribute -= spaceUsed;
+
+		// If we still have components that will let us
+		// distribute to them
+		var stillFlexibleComponents:Boolean = true;
+
+		while (stillFlexibleComponents && spaceToDistribute > 0)
+		{
+			// Start optimistically
+			stillFlexibleComponents = false;
+
+			for (i = 0; i < n; i++)
+			{
+				child = IUIComponent(parent.getChildAt(i));
+				childHeight = child.height;
+				percentHeight = child.percentHeight
+
+				// if they have a percentHeight, and we won't reach their
+				// maxHeight by giving them one more pixel, then
+				// give them a pixel
+				if (!isNaN(percentHeight) &&
+						child.includeInLayout &&
+						childHeight < child.maxHeight)
+				{
+					wantSpace = Math.ceil(percentHeight/100 * spaceForChildren);
+
+					if (wantSpace > childHeight)
+					{
+						child.setActualSize(child.width, childHeight+1);
+						spaceToDistribute--;
+						stillFlexibleComponents = true;
+
+						if (spaceToDistribute == 0)
+							return;
+					}
+				}
+			}
+		}
+	}
+
+	/**
+	 *  This function distributes excess space among the flexible children
+	 *  because of rounding errors where we want to keep children's dimensions
+	 *  full pixel amounts.  This only distributes the extra space
+	 *  if there was some rounding down and there are still
+	 *  flexible children.
+	 *
+	 *  @param parent The parent container of the children.
+	 *
+	 *  @param spaceForChildren The total space for all children
+	 */
+	public static function distributeExtraWidth(
+								parent:Container,
+								spaceForChildren:Number):void
+	{
+		// We should only get here after distributing the majority of the
+		// space already.  This is done in flexChildWidthsProportionally.
+		// Strategy here is to keep adding 1 pixel at a time to each
+		// component that's flexible (percentWidth defined and hasn't
+		// reached maxWidth yet).  We could use another approach where
+		// we add more than a pixel at a time, but we'd have to first
+		// calculate exactly how many flexible components we have first
+		// and see how much space we can add to them without hitting
+		// their maxWidth.  Since we're just dealing with rounding
+		// issues, we should only make one pass here (if we hit maxWidth
+		// problems, we might make more than one, but not many more).
+
+		// We just distribute from the top-down and don't care about
+		// who was "rounded down the most"
+
+		// First check if we should distribute any extra space.  To do
+		// this, we check to see if someone suffers from rounding error.
+		var n:int = parent.numChildren;
+		var wantToGrow:Boolean = false;
+		var i:int;
+		var percentWidth:Number;
+		var spaceToDistribute:Number = spaceForChildren;
+		var spaceUsed:Number = 0;
+		var child:IUIComponent;
+		var childWidth:Number;
+		var wantSpace:Number;
+
+		for (i = 0; i < n; i++)
+		{
+			child = IUIComponent(parent.getChildAt(i));
+
+			if (!child.includeInLayout)
+				continue;
+
+			childWidth = child.width;
+			percentWidth = child.percentWidth;
+
+			spaceUsed += childWidth;
+
+			if (!isNaN(percentWidth))
+			{
+				wantSpace = Math.ceil(percentWidth/100 * spaceForChildren);
+
+				if (wantSpace > childWidth)
+					wantToGrow = true;
+			}
+		}
+
+		// No need to distribute extra size
+		if (!wantToGrow)
+			return;
+
+		// Start distributing...
+		spaceToDistribute -= spaceUsed;
+
+		// If we still have components that will let us
+		// distribute to them
+		var stillFlexibleComponents:Boolean = true;
+
+		while (stillFlexibleComponents && spaceToDistribute > 0)
+		{
+			// Start optimistically
+			stillFlexibleComponents = false;
+
+			for (i = 0; i < n; i++)
+			{
+				child = IUIComponent(parent.getChildAt(i));
+				childWidth = child.width;
+				percentWidth = child.percentWidth
+
+				// if they have a percentWidth, and we won't reach their
+				// maxWidth by giving them one more pixel, then
+				// give them a pixel
+				if (!isNaN(percentWidth) &&
+						child.includeInLayout &&
+						childWidth < child.maxWidth)
+				{
+					wantSpace = Math.ceil(percentWidth / 100 * spaceForChildren);
+
+					if (wantSpace > childWidth)
+					{
+						child.setActualSize(childWidth  +1, child.height);
+						spaceToDistribute--;
+						stillFlexibleComponents = true;
+
+						if (spaceToDistribute == 0)
+							return;
+					}
+				}
+			}
+		}
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10076
Author:   gruehle@adobe.com
Date:     2009-09-09T01:04:12.115272Z

Log Message:
-----------
Redo fix for SDK-23080, since the last one introduced more problems.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RectangularDropShadow.as

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

--- frameworks/projects/framework/src/mx/graphics/RectangularDropShadow.as
+++ frameworks/projects/framework/src/mx/graphics/RectangularDropShadow.as
@@ -563,9 +563,9 @@
 		// Copy the corners of the shadow bitmap onto the graphics object
 		if (leftShadow || topShadow)
 		{
-			var tlWidth:Number = Math.min(tlRadius + leftThickness + distance,
+			var tlWidth:Number = Math.min(tlRadius + widthThickness,
 										  maxCornerWidth);
-			var tlHeight:Number = Math.min(tlRadius + topThickness + distance,
+			var tlHeight:Number = Math.min(tlRadius + heightThickness,
 										   maxCornerHeight);

 			matrix.tx = x - leftThickness;
@@ -578,9 +578,9 @@

 		if (rightShadow || topShadow)
 		{
-			var trWidth:Number = Math.min(trRadius + rightThickness + distance,
+			var trWidth:Number = Math.min(trRadius + widthThickness,
 										  maxCornerWidth);
-			var trHeight:Number = Math.min(trRadius + topThickness + distance,
+			var trHeight:Number = Math.min(trRadius + heightThickness,
 										   maxCornerHeight);

 			matrix.tx = x + width + rightThickness - shadow.width;
@@ -595,9 +595,9 @@

 		if (leftShadow || bottomShadow)
 		{
-			var blWidth:Number = Math.min(blRadius + leftThickness + distance,
+			var blWidth:Number = Math.min(blRadius + widthThickness,
 										  maxCornerWidth);
-			var blHeight:Number = Math.min(blRadius + bottomThickness + distance,
+			var blHeight:Number = Math.min(blRadius + heightThickness,
 										   maxCornerHeight);

 			matrix.tx = x - leftThickness;
@@ -612,9 +612,9 @@

 		if (rightShadow || bottomShadow)
 		{
-			var brWidth:Number = Math.min(brRadius + rightThickness + distance,
+			var brWidth:Number = Math.min(brRadius + widthThickness,
 										  maxCornerWidth);
-			var brHeight:Number = Math.min(brRadius + bottomThickness + distance,
+			var brHeight:Number = Math.min(brRadius + heightThickness,
 										   maxCornerHeight);

 			matrix.tx = x + width + rightThickness - shadow.width;
@@ -697,10 +697,10 @@
 		// Create a Shape containing a round rectangle that the
 		// specified corner radii and very short sides.
 		var roundRectWidth:Number = Math.max(tlRadius, blRadius) +
-								    2 * distance +
+								    3 * distance +
 									Math.max(trRadius, brRadius);
 		var roundRectHeight:Number = Math.max(tlRadius, trRadius) +
-									 2 * distance +
+									 3 * distance +
 									 Math.max(blRadius, brRadius);

 		if (roundRectWidth < 0 || roundRectHeight < 0)


Transferred from the Adobe Open Source Subversion Repository

Revision: 6205
Author:   gruehle@adobe.com
Date:     2009-04-23T01:38:10.074915Z

Log Message:
-----------
Add Spark download progress bar. This one operates a bit differently than the Halo version. When the file is being downloaded, the track expands. When the app is initializing, the bar expands in the track. It does not contain any text.

The Halo DLPB is still available. If you want to use it, add 'preloader="mx.preloaders.DownloadProgressBar"' to your Application tag.

Bugs: n/a
QA: Yes, ready for testing
Doc: The new preloaderBaseColor property added to both Application classes includes a first pass at ASDoc comments.
Reviewer: Alex

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/SparkDownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>

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

--- frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as
+++ frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as
@@ -157,7 +157,7 @@
 	 *  Cached RoundedRectangle returned by the barRect getter.
 	 */
 	private var _barRect:RoundedRectangle = barRect;
-
+
 	/**
 	 *  @private
 	 */
@@ -238,18 +238,15 @@
 	 *  in the initializing phase.  This should be an integer
 	 *  greater or equal to 4 (and note that if it is greater than 4
 	 *  you might have an inefficiency in your initialization code)
-	 *  The default is 12 because it is hard to need more phases
-	 *  than that and if we set it smaller, someone would notice
-	 *  occasional overruns.
-	 *
-	 *  @default 12
+	 *
+	 *  @default 6
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 9
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 4
 	 */
-	protected var initProgressTotal:uint = 12;
+	protected var initProgressTotal:uint = 6;

 	//--------------------------------------------------------------------------
 	//
@@ -1680,7 +1677,7 @@
 			var loaded:Number = 100 * _initProgressCount /
 								(initProgressTotal - _displayStartCount);

-			setProgress(loaded, 100);
+			setProgress(Math.min(loaded, 100), 100);
 		}
 	}

@@ -1770,7 +1767,7 @@
 	protected function get labelFormat():TextFormat
 	{
 		var tf:TextFormat = new TextFormat();
-		tf.color = 0x000000;
+		tf.color = 0x000000;
 		tf.font = "Verdana";
 		tf.size = 10;
 		return tf;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19878
Author:   gruehle@adobe.com
Date:     2011-01-21T22:32:28.954977Z

Log Message:
-----------
Text bug fixes:
* Make sure insertion point is at the end of the text after calling appendText()
* TextAreaSkin honors lineBreak style

QE notes: none
Doc notes: none
Bugs: SDK-29206, SDK-29138
Reviewer: Ryan
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -170,7 +170,7 @@
             textDisplay.styleName = this;
             textDisplay.multiline = true;
             textDisplay.editable = true;
-            textDisplay.wordWrap = true;
+            textDisplay.lineBreak = getStyle("lineBreak");
 			textDisplay.useTightTextBounds = false;

             // on iOS, resize the TextField and let the native control handle scrolling


Transferred from the Adobe Open Source Subversion Repository

Revision: 14966
Author:   klin@adobe.com
Date:     2010-03-23T21:53:53.095287Z

Log Message:
-----------
Merge 14965 from 4.x to trunk.

Fix for http://bugs.adobe.com/jira/browse/SDK-25909 and another underlying List/Tree/DataGrid issue. The bug was that the dragProxy for a TileList and HorizontalList didn't have the right layoutDirection causing it to be incorrectly positioned. While investigating the issue, I found that there was some fallout from changing SpriteAsset. The selection and rollover highlights on a List were disappearing. It turns out that List and DataGrid create their own SpriteAssets for creating certain indicators (like highlight and selection), while Tree creates it to wrap the disclosureIcon.

The fix for first bug is to set the layoutDirection of the dragProxy to “rtl” when the dragInitiator is also "rtl". It doesn’t inherit the layoutDirection because it is a child of the systemManager. I’ve also included the fix for the fallout from SpriteAsset by setting layoutDirection on those specific instances to null (inheriting) instead of their default “ltr”.

QE notes: Need updates to mirrored Tree bitmaps.
Doc notes: No
Bugs: SDK-25909
Reviewer: Jason
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>

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

--- frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as
@@ -18,15 +18,16 @@
 import flash.events.MouseEvent;
 import flash.geom.Point;
 import flash.geom.Rectangle;
-import flash.utils.getDefinitionByName;
+
 import mx.controls.Tree;
 import mx.controls.listClasses.BaseListData;
 import mx.controls.listClasses.IDropInListItemRenderer;
 import mx.controls.listClasses.IListItemRenderer;
 import mx.core.IDataRenderer;
 import mx.core.IFlexDisplayObject;
-import mx.core.IFlexModuleFactory
+import mx.core.IFlexModuleFactory;
 import mx.core.IFontContextComponent;
+import mx.core.ILayoutDirectionElement;
 import mx.core.IToolTip;
 import mx.core.IUITextField;
 import mx.core.SpriteAsset;
@@ -34,7 +35,6 @@
 import mx.core.UITextField;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
-import mx.events.InterManagerRequest;
 import mx.events.ToolTipEvent;
 import mx.events.TreeEvent;
 import mx.managers.ISystemManager;
@@ -376,6 +376,10 @@
                     disclosureIcon = disclosureInstance;
                 }

+                // Let the disclosureIcon inherit the layoutDirection
+                if (disclosureIcon is ILayoutDirectionElement)
+                    ILayoutDirectionElement(disclosureIcon).layoutDirection = null;
+
                 addChild(disclosureIcon as DisplayObject);
                 disclosureIcon.addEventListener(MouseEvent.MOUSE_DOWN,
                         disclosureIcon_mouseDownHandler);