Transferred from the Adobe Open Source Subversion Repository

Revision: 10332
Author:   hmuller@adobe.com
Date:     2009-09-16T23:24:55.421539Z

Log Message:
-----------
Added Scroller.measuredSizeIncludesScrollBars property and changed TextAreaSkin
to set this property to false.

After a dataProvider change DataGroup/commitProperties() now resets the scrollPositions
-after- the new ItemRenderers have been created with initializeDataProviders().

QE Notes: Mustella TextArea, DataGroup, Scroller, and List tests pass.
Doc Notes:
Bugs: sdk-22890, sdk-22469, sdk-23175
Reviewer: Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
@@ -13,7 +13,6 @@
 {
 import flash.geom.Point;

-import mx.core.IInvalidating;
 import mx.core.IUIComponent;
 import mx.core.ScrollPolicy;
 import mx.utils.MatrixUtil;
@@ -247,54 +246,56 @@

     /**
      * @private
-     *  Computes the union of the preferred size of the visible
-     *  scrollbars and the viewport.
+     *  Computes the union of the preferred size of the visible scrollbars
+     *  and the viewport if target.measuredSizeIncludesScrollbars=true, otherwise
+     *  it's just the preferred size of the viewport.
      *
      *  This becomes the ScrollerSkin's measuredWidth,Height.
      *
-     *  The ScrollerSkin's minimum size is only big enough to
-     *  acccomodate the visible scrollbars.
-     *
      *  The viewport does not contribute to the minimum size unless its
      *  explicit size has been set.
      */
     override public function measure():void
     {
-        var scroller:Scroller = getScroller();
+        const scroller:Scroller = getScroller();
         if (!scroller)
             return;

-        var minViewportInset:Number = scroller.minViewportInset;
+        const minViewportInset:Number = scroller.minViewportInset;
+        const measuredSizeIncludesScrollBars:Boolean = scroller.measuredSizeIncludesScrollBars;
+
         var measuredW:Number = minViewportInset;
         var measuredH:Number = minViewportInset;

-        var hsb:ScrollBar = scroller.horizontalScrollBar;
+        const hsb:ScrollBar = scroller.horizontalScrollBar;
         var showHSB:Boolean = false;
         var hAuto:Boolean = false;
-        switch(scroller.getStyle("horizontalScrollPolicy"))
-        {
-            case ScrollPolicy.ON:
-                if (hsb) showHSB = true;
-                break;
-            case ScrollPolicy.AUTO:
-                if (hsb) showHSB = hsb.visible;
-                hAuto = true;
-                break;
-        }
-
-        var vsb:ScrollBar = scroller.verticalScrollBar;
+        if (measuredSizeIncludesScrollBars)
+            switch(scroller.getStyle("horizontalScrollPolicy"))
+            {
+                case ScrollPolicy.ON:
+                    if (hsb) showHSB = true;
+                    break;
+                case ScrollPolicy.AUTO:
+                    if (hsb) showHSB = hsb.visible;
+                    hAuto = true;
+                    break;
+            }
+
+        const vsb:ScrollBar = scroller.verticalScrollBar;
         var showVSB:Boolean = false;
         var vAuto:Boolean = false;
-        switch(scroller.getStyle("verticalScrollPolicy"))
-        {
-           case ScrollPolicy.ON:
-                if (vsb) showVSB = true;
-                break;
-            case ScrollPolicy.AUTO:
-                if (vsb) showVSB = vsb.visible;
-                vAuto = true;
-                break;
-        }
+        if (measuredSizeIncludesScrollBars)
+            switch(scroller.getStyle("verticalScrollPolicy"))
+            {
+               case ScrollPolicy.ON:
+                    if (vsb) showVSB = true;
+                    break;
+                case ScrollPolicy.AUTO:
+                    if (vsb) showVSB = vsb.visible;
+                    vAuto = true;
+                    break;
+            }

         measuredH += (showHSB) ? hsbRequiredHeight() : minViewportInset;
         measuredW += (showVSB) ? vsbRequiredWidth() : minViewportInset;
@@ -310,25 +311,33 @@
         var viewport:IViewport = scroller.viewport;
         if (viewport)
         {
-            var contentSize:Point = getLayoutContentSize(viewport);
-
-            var viewportPreferredW:Number =  viewport.getPreferredBoundsWidth();
-            var viewportContentW:Number = contentSize.x;
-            var viewportW:Number = viewport.getLayoutBoundsWidth();  // "current" size
-            var currentSizeNoHSB:Boolean = !isNaN(viewportW) && ((viewportW + SDT) > viewportContentW);
-            if (hAuto && !showHSB && ((viewportPreferredW + SDT) <= viewportContentW) && currentSizeNoHSB)
-                measuredW += viewportW;
+            if (measuredSizeIncludesScrollBars)
+            {
+                var contentSize:Point = getLayoutContentSize(viewport);
+
+                var viewportPreferredW:Number =  viewport.getPreferredBoundsWidth();
+                var viewportContentW:Number = contentSize.x;
+                var viewportW:Number = viewport.getLayoutBoundsWidth();  // "current" size
+                var currentSizeNoHSB:Boolean = !isNaN(viewportW) && ((viewportW + SDT) > viewportContentW);
+                if (hAuto && !showHSB && ((viewportPreferredW + SDT) <= viewportContentW) && currentSizeNoHSB)
+                    measuredW += viewportW;
+                else
+                    measuredW += Math.max(viewportPreferredW, (showHSB) ? hsb.getMinBoundsWidth() : 0);
+
+                var viewportPreferredH:Number = viewport.getPreferredBoundsHeight();
+                var viewportContentH:Number = contentSize.y;
+                var viewportH:Number = viewport.getLayoutBoundsHeight();  // "current" size
+                var currentSizeNoVSB:Boolean = !isNaN(viewportH) && ((viewportH + SDT) > viewportContentH);
+                if (vAuto && !showVSB && ((viewportPreferredH + SDT) <= viewportContentH) && currentSizeNoVSB)
+                    measuredH += viewportH;
+                else
+                    measuredH += Math.max(viewportPreferredH, (showVSB) ? vsb.getMinBoundsHeight() : 0);
+            }
             else
-                measuredW += Math.max(viewportPreferredW, (showHSB) ? hsb.getMinBoundsWidth() : 0);
-
-            var viewportPreferredH:Number = viewport.getPreferredBoundsHeight();
-            var viewportContentH:Number = contentSize.y;
-            var viewportH:Number = viewport.getLayoutBoundsHeight();  // "current" size
-            var currentSizeNoVSB:Boolean = !isNaN(viewportH) && ((viewportH + SDT) > viewportContentH);
-            if (vAuto && !showVSB && ((viewportPreferredH + SDT) <= viewportContentH) && currentSizeNoVSB)
-                measuredH += viewportH;
-            else
-                measuredH += Math.max(viewportPreferredH, (showVSB) ? vsb.getMinBoundsHeight() : 0);
+            {
+                measuredW += viewport.getPreferredBoundsWidth();
+                measuredH += viewport.getPreferredBoundsHeight();
+            }
         }

         var minW:Number = minViewportInset * 2;
@@ -353,7 +362,7 @@
         g.measuredMinWidth = Math.ceil(minW);
         g.measuredMinHeight = Math.ceil(minH);
     }
-
+
     /**
      *  @private
      *  Arrange the viewport and scrollbars conventionally within


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/graphics/BitmapFill.as
+++ frameworks/projects/framework/src/mx/graphics/BitmapFill.as
@@ -32,6 +32,11 @@
  *  @see flash.display.Bitmap
  *  @see flash.display.BitmapData
  *  @see flash.display.DisplayObject
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class BitmapFill extends EventDispatcher implements IFill
 {
@@ -45,6 +50,11 @@

  	/**
 	 *  Constructor.
+ 	 *
+ 	 *  @langversion 3.0
+ 	 *  @playerversion Flash 9
+ 	 *  @playerversion AIR 1.1
+ 	 *  @productversion Flex 3
  	 */
 	public function BitmapFill()
  	{
@@ -81,6 +91,11 @@
 	 *  Scaling and rotation of the bitmap are performed around this point.
 	 *
 	 *  @default 0
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get originX():Number
 	{
@@ -108,6 +123,11 @@
 	 *  Scaling and rotation of the bitmap are performed around this point.
 	 *
 	 *  @default 0
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get originY():Number
 	{
@@ -133,6 +153,11 @@
 	 *  This adjustment is performed after rotation and scaling.
 	 *
 	 *  @default 0
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get offsetX():Number
 	{
@@ -158,6 +183,11 @@
 	 *  This adjustment is performed after rotation and scaling.
 	 *
 	 *  @default 0
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get offsetY():Number
 	{
@@ -186,6 +216,11 @@
 	 *  Set to false to end the fill at the edge of the region.
 	 *
 	 *  @default true
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get repeat():Boolean
 	{
@@ -216,6 +251,11 @@
 	 *  Valid values range from 0.0 to 360.0.
 	 *
 	 *  @default 0
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get rotation():Number
 	{
@@ -247,6 +287,11 @@
 	 *  If 1.0, the bitmap is filled at its natural size.
 	 *
 	 *  @default 1.0
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get scaleX():Number
 	{
@@ -278,6 +323,11 @@
 	 *  If 1.0, the bitmap is filled at its natural size.
 	 *
 	 *  @default 1.0
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get scaleY():Number
 	{
@@ -319,6 +369,11 @@
 	 *

 	 *
 	 *  @default null
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get source():Object
 	{
@@ -394,6 +449,11 @@
 	 *  when filling with it.
 	 *
 	 *  @default false
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get smooth():Boolean
 	{
@@ -420,6 +480,11 @@

     /**
      *  The x position transform point of the fill.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get transformX():Number
     {
@@ -449,6 +514,11 @@

     /**
      *  The y position transform point of the fill.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get transformY():Number
     {
@@ -480,6 +550,11 @@

     /**
      *  The distance by which to translate each point along the x axis.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get x():Number
     {
@@ -510,6 +585,11 @@

      /**
      *  The distance by which to translate each point along the y axis.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get y():Number
     {


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

--- frameworks/projects/mx/src/mx/styles/metadata/SkinStyles.as
+++ frameworks/projects/mx/src/mx/styles/metadata/SkinStyles.as
@@ -1,28 +1,4 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

-/**
- *  Color of the border.
- *  The following controls support this style: Button, CheckBox,
- *  ComboBox, MenuBar,
- *  NumericStepper, ProgressBar, RadioButton, ScrollBar, Slider, and any
- *  components that support the borderStyle style.
- *  The default value depends on the component class;
- *  if not overridden for the class, the default value is 0xB7BABC.
- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
 [Style(name="borderColor", type="uint", format="Color", inherit="no", theme="halo")]

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 5274
Author:   hmuller@adobe.com
Date:     2009-03-12T20:59:18.862074Z

Log Message:
-----------
This commit just exists to provide an explanation for SVN 5270, which I accidentally
committed without a commit message.

Added two public methods to LayoutBase: elemementAdded(index), and elementRemoved(index).
They give GroupBase subclasses a way to sync the layout with dynamic changes, so that
the layout can keep cached state up to date.   Presently Vertical,HorizontalLayout
use these methods when useVirtualLayout=true, to keep the LinearLayoutVector cache
of element sizes up to date.

[This Commit] Added some comments.

QE Notes:
Doc Notes:
Bugs: sdk-19287, sdk-19423
Reviewer: Evtim

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

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -933,6 +933,8 @@

         if (layout && layout.useVirtualLayout)
         {
+            // The next time updateDisplayList() runs, virtualLayoutStart,EndIndex
+            // will become oldVirtualLayoutStart,End index.   See finishVirtualLayout().
             if ((index >= virtualLayoutStartIndex) && (index <= virtualLayoutEndIndex))
             {
                 virtualLayoutEndIndex += 1;
@@ -979,6 +981,8 @@
         var myItemRenderer:IVisualElement = indexToRenderer[index];
         if (layout && layout.useVirtualLayout)
         {
+            // The next time updateDisplayList() runs, virtualLayoutStart,EndIndex
+            // will become oldVirtualLayoutStart,End index.   See finishVirtualLayout().
             if ((index >= virtualLayoutStartIndex) && (index <= virtualLayoutEndIndex))
             {
                 virtualLayoutEndIndex -= 1;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12625
Author:   mhorn@adobe.com
Date:     2009-12-07T21:50:25.279856Z

Log Message:
-----------
asdoc updates for l10n; add examples

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/filters/ShaderFilter.as
+++ frameworks/projects/spark/src/spark/filters/ShaderFilter.as
@@ -94,7 +94,9 @@
  * @example Simple ShaderFilter example:
  * <listing version="3.0">
  * <?xml version="1.0"?>
- * <Application xmlns="http://ns.adobe.com/mxml/2009">
+ * <s:Application
+ *    xmlns:s="library://ns.adobe.com/flex/spark"
+ *    xmlns:fx="http://ns.adobe.com/mxml/2009">
  *
  *     <!-- The hypothetical 'spherize' shader applied below has two input parameters, 'center' and 'radius'
  *          with the following attributes:
@@ -114,14 +116,14 @@
  *              description: "radius"
  *     -->
  *
- *     <Label text="ABCDEF">
- *         <filters>
- *             <ShaderFilter shader="@Embed(source='shaders/spherize.pbj')"
+ *     <s:Label text="ABCDEF">
+ *         <s:filters>
+ *             <s:ShaderFilter shader="@Embed(source='shaders/spherize.pbj')"
  *                 radius="25" center_x="50" center_y="15" />
- *        </filters>
- *     </Label>
+ *        </s:filters>
+ *     </s:Label>
  *
- * </Application>
+ * </s:Application>
  * </listing>
  *
  *  @langversion 3.0


comment visitor responsible for automated CPU/GPU balancing in ShaderGraph because of poor performnaces of evalexp on the CPU

--- src/aerys/minko/render/shader/compiler/graph/ShaderGraph.as
+++ src/aerys/minko/render/shader/compiler/graph/ShaderGraph.as
@@ -189,7 +189,7 @@
 			RESOLVE_CONSTANT		.process(this);	// resolve constant computation
 			CONSTANT_PACKER			.process(this);	// pack constants [0,0,0,1] => [0,1].xxxy
 			REMOVE_USELESS			.process(this);	// remove some useless operations (add 0, mul 0, mul 1...)
-			RESOLVE_PARAMETRIZED	.process(this);	// replace computations that depend on parameters by evalexp parameters
+//			RESOLVE_PARAMETRIZED	.process(this);	// replace computations that depend on parameters by evalexp parameters
 //			MATRIX_TRANSFORMATION	.process(this);	// replace ((vector * matrix1) * matrix2) by vector * (matrix1 * matrix2) to save registers on GPU
 			COPY_INSERTER			.process(this);	// ensure there are no operations between constants
 			SPLITTER				.process(this);	// clone nodes that are shared between vertex and fragment shader


Remove unnecessary trace

Remove unnecessary trace

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/Application.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/Application.as
@@ -100,7 +100,6 @@
 				stage.align = StageAlign.TOP_LEFT;
 				stage.scaleMode = StageScaleMode.NO_SCALE;
 				stage.quality = StageQuality.HIGH_16X16_LINEAR;
-				trace("working");
 			}

             loaderInfo.addEventListener(flash.events.Event.INIT, initHandler);


fix image loading on the SWF side

fix image loading on the SWF side

--- frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ImageView.as
+++ frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ImageView.as
@@ -90,7 +90,7 @@
 			_model = value.getBeadByType(IImageModel) as IImageModel;
 			_model.addEventListener("urlChanged",handleUrlChange);

-//			handleUrlChange(null);
+			handleUrlChange(null);
 		}

 		/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 21319
Author:   build@adobe.com
Date:     2011-06-01T17:45:41.136089Z

Log Message:
-----------
Version update to 4.5.2

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/airspark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_air/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/flex-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_spark/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark_dmv/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/rpc/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/charts/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_flashflexkit/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/automation_dmv/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/build.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/modules/compiler/src/java/flex2/tools/VersionInfo.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/airframework/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/advancedgrids/src/mx/core/Version.as</path>

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

--- frameworks/projects/advancedgrids/src/mx/core/Version.as
+++ frameworks/projects/advancedgrids/src/mx/core/Version.as
@@ -15,4 +15,4 @@
  *  @private
  *  Version string for this class.
  */
-mx_internal static const VERSION:String = "4.5.1.0";
+mx_internal static const VERSION:String = "4.5.2.0";


Transferred from the Adobe Open Source Subversion Repository

Revision: 14744
Author:   klin@adobe.com
Date:     2010-03-12T23:33:39.865284Z

Log Message:
-----------
Merge revision 14741 from 4.x to trunk.

Adding ILayoutDirectionElement to address issues with non-styled components such as embedded bitmaps. Also, addressed issues with changing layoutDirection at runtime.

-Added ILayoutDirectionElement.as with the layoutDirection property and invalidateLayoutDirection(). I took them out of IVisualElement.
-Moved the mirroring code from FlexBitmap to BitmapAsset as well as SpriteAsset. Also, implemented ILayoutDirectionElement in both.
-Addressed issues with layoutDirection changing at runtime by adding logic in UIComponent and Container to call invalidateLayoutDirection() on all of their ILayoutDirectionElement children.
-Updated various other components to use the new interface.
-Updated the dependency checker.

QE notes: No
Doc notes: No
Bugs: SDK-25656, SDK-25685, SDK-25726, SDK-25758 , SDK-25776 , SDK-25784 , SDK-25791, SDK-25806
Reviewer: Jason, Carol
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SpriteAsset.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexBitmap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/BitmapAsset.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutDirection.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/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/core/ILayoutDirectionElement.as" copyfrom-rev="14741" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutDirectionElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/framework/src/mx/core/BitmapAsset.as
+++ frameworks/projects/framework/src/mx/core/BitmapAsset.as
@@ -13,7 +13,9 @@
 {

 import flash.display.BitmapData;
-import mx.core.FlexBitmap;
+import flash.display.DisplayObjectContainer;
+import flash.events.Event;
+import flash.geom.Matrix;

 /**
  *  BitmapAsset is a subclass of the flash.display.Bitmap class
@@ -91,7 +93,7 @@
  *  @productversion Flex 3
  */
 public class BitmapAsset extends FlexBitmap
-                         implements IFlexAsset, IFlexDisplayObject
+                         implements IFlexAsset, IFlexDisplayObject, ILayoutDirectionElement
 {
     include "../core/Version.as";

@@ -121,6 +123,172 @@
                                 smoothing:Boolean = false)
     {
         super(bitmapData, pixelSnapping, smoothing);
+
+        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_0)
+            this.addEventListener(Event.ADDED, addedHandler);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    private var mirror:Boolean = false;
+    private var origMatrix:Matrix;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  x
+    //----------------------------------
+
+    private var _x:Number = 0;
+
+    /**
+     *  @private
+     *  In the mirroring case, we restore the old transform matrix,
+     *  call the superclass' setter to recalculate the transform matrix,
+     *  and call validateTransformMatrix to de-mirror the matrix.
+     *  This ensures that the right matrix values are used when
+     *  de-mirroring.
+     */
+    override public function set x(value:Number):void
+    {
+        if (mirror)
+        {
+            transform.matrix = origMatrix;
+            super.x = value;
+            _x = value;
+            validateTransformMatrix();
+        }
+        else
+        {
+            super.x = value;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override public function get x():Number
+    {
+        // FIXME(hmuller): by default get x returns transform.matrix.tx rounded to the nearest 20th.
+        // should do the same here, if we're returning _x.
+        return (mirror) ? _x : super.x;
+    }
+
+    //----------------------------------
+    //  width
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function set width(value:Number):void
+    {
+        if (mirror)
+        {
+            transform.matrix = origMatrix;
+            super.width = value;
+            // Store new scaleX/Y since setting width may modify them
+            _scaleX = super.scaleX;
+            _scaleY = super.scaleY;
+            validateTransformMatrix();
+        }
+        else
+        {
+            super.width = value;
+        }
+    }
+
+    //----------------------------------
+    //  height
+    //----------------------------------
+
+    /**
+     *  @private
+     *  We must override height as well because setting
+     *  height will force scaleX to be positive in the transform
+     *  matrix.
+     */
+    override public function set height(value:Number):void
+    {
+        if (mirror)
+        {
+            transform.matrix = origMatrix;
+            super.height = value;
+            // Store new scaleX/Y since setting height may modify them
+            _scaleX = super.scaleX;
+            _scaleY = super.scaleY;
+            validateTransformMatrix();
+        }
+        else
+        {
+            super.height = value;
+        }
+    }
+
+    //----------------------------------
+    //  scaleX
+    //----------------------------------
+
+    private var _scaleX:Number;
+
+    /**
+     *  @private
+     */
+    override public function set scaleX(value:Number):void
+    {
+        if (mirror)
+        {
+            transform.matrix = origMatrix;
+            super.scaleX = value;
+            _scaleX = value;
+            validateTransformMatrix();
+        }
+        else
+        {
+            super.scaleX = value;
+        }
+    }
+
+    override public function get scaleX():Number
+    {
+        return (mirror) ? _scaleX : super.scaleX;
+    }
+
+    //----------------------------------
+    //  scaleY
+    //----------------------------------
+
+    private var _scaleY:Number;
+
+    /**
+     *  @private
+     */
+    override public function set scaleY(value:Number):void
+    {
+        if (mirror)
+        {
+            transform.matrix = origMatrix;
+            super.scaleY = value;
+            _scaleY = value;
+            validateTransformMatrix();
+        }
+        else
+        {
+            super.scaleY = value;
+        }
+    }
+
+    override public function get scaleY():Number
+    {
+        return (mirror) ? _scaleY : super.scaleY;
     }

     //--------------------------------------------------------------------------
@@ -128,6 +296,34 @@
     //  Properties
     //
     //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  layoutDirection
+    //----------------------------------
+
+    private var _layoutDirection:String = LayoutDirection.LTR;
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.1
+     */
+    public function get layoutDirection():String
+    {
+        return _layoutDirection;
+    }
+
+    public function set layoutDirection(value:String):void
+    {
+        if (value == _layoutDirection)
+            return;
+
+        _layoutDirection = value;
+        invalidateLayoutDirection();
+    }

     //----------------------------------
     //  measuredHeight
@@ -179,6 +375,55 @@
      *  @inheritDoc
      *
      *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4.1
+     */
+    public function invalidateLayoutDirection():void
+    {
+        // We check the closest parent's layoutDirection property
+        // set our mirror property and update our transform matrix
+        // accordingly.
+        var p:DisplayObjectContainer = parent;
+
+        while (p)
+        {
+            if (p is ILayoutDirectionElement)
+            {
+                // If this element's layoutDirection doesn't match its parent's, then
+                // set the mirror flag.
+                const oldMirror:Boolean = mirror;
+                mirror = (_layoutDirection != null) &&
+                    (_layoutDirection != ILayoutDirectionElement(p).layoutDirection);
+
+                if (mirror != oldMirror)
+                {
+                    if (mirror)
+                    {
+                        // Set backing variables to current state
+                        _scaleX = super.scaleX;
+                        _scaleY = super.scaleY;
+                        _x = super.x;
+                        validateTransformMatrix();
+                    }
+                    else
+                    {
+                        // origMatrix has been initialized in validateTransformMatrix
+                        // because we weren't matching our parent's layoutDirection before.
+                        transform.matrix = origMatrix;
+                    }
+                }
+                break;
+            }
+
+            p = p.parent;
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
@@ -202,6 +447,33 @@
         width = newWidth;
         height = newHeight;
     }
+
+    /**
+     *  @private
+     */
+    private function addedHandler(event:Event):void
+    {
+        invalidateLayoutDirection();
+    }
+
+    /**
+     *  @private
+     *  Modifies the transform matrix so that this bitmap
+     *  will not be mirrored if a parent is mirrored.
+     */
+    private function validateTransformMatrix():void
+    {
+        // Save copy of current matrix
+        origMatrix = transform.matrix.clone();
+
+        // Create new de-mirrored transform matrix
+        const mirrorMatrix:Matrix = transform.matrix;
+        mirrorMatrix.translate(-mirrorMatrix.tx, 0);
+        mirrorMatrix.scale(-1, 1);
+        mirrorMatrix.translate(_x + width, 0);
+
+        transform.matrix = mirrorMatrix;
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3424
Author:   chaase@adobe.com
Date:     2008-09-30T18:42:28.699528Z

Log Message:
-----------
Fix for sdk-17115. A rotated component would inadvertently rotate the display object used for focus. Switching focus to other non-rotated components would show the rotated focus object by mistake.

Reviewed by Glenn
tests: checkintests

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -7039,6 +7039,7 @@
             else
             {
                 pt = new Point(obj.x - thickness, obj.y - thickness);
+                DisplayObject(focusObj).rotation = 0;
             }

             if (obj.parent == this)


Transferred from the Adobe Open Source Subversion Repository

Revision: 6609
Author:   gruehle@adobe.com
Date:     2009-05-04T22:47:31.285324Z

Log Message:
-----------
Add theme attribute to theme-specific style metadata.

Example of a halo-specific style:
[Style(name="cornerRadius", type="Number", format="Length", inherit="no", theme="halo")]

Example of a spark-specific style:
[Style(name="baseColor", type="uint", format="Color", inherit="yes", theme="spark")]

Style metadata without a theme attribute is theme-agnostic, and works with either spark or halo.

Bugs: SDK-20606

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/FillStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SkinStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BarColorStyle.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/framework/src/mx/controls/CheckBox.as</path>
<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/flex4/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/IconColorStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SelectedFillColorsStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -794,7 +794,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="baseColor", type="uint", format="Color", inherit="yes")]
+[Style(name="baseColor", type="uint", format="Color", inherit="yes", theme="spark")]

 /**
  *  Color of the component highlight when validation fails.
@@ -867,7 +867,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-[Style(name="themeColor", type="uint", format="Color", inherit="yes")]
+[Style(name="themeColor", type="uint", format="Color", inherit="yes", theme="halo")]

 //--------------------------------------
 //  Effects


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

 package spark.core
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3509
Author:   jimurphy@adobe.com
Date:     2008-10-07T18:19:17.646255Z

Log Message:
-----------
Rename of flex -> mx.

For compatibility reasons it was decided that the new functionality remain integrated with the old framework, although we will continue to build two separate SWCs, one with primarily existing framework classes, and one with new Flex 4 classes. This change removes duplicate names from the Flex 4 framework to avoid class name overlapping with the old framework code.  The naming overlap consists of two major areas:  New Components, and New Effects

Modified Paths:
--------------
386 paths were modified

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

--- frameworks/projects/spark/src/spark/effects/AddAction.as
+++ frameworks/projects/spark/src/spark/effects/AddAction.as
@@ -9,13 +9,13 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package flex.effects
+package mx.effects
 {

 import flash.display.DisplayObjectContainer;

-import flex.core.Group;
-import flex.effects.effectClasses.AddActionInstance;
+import mx.components.Group;
+import mx.effects.effectClasses.AddActionInstance;

 import mx.core.mx_internal;
 import mx.effects.Effect;


HSP3Dishランタイムの更新

HSP3Dishランタイムの更新

git-svn-id: 667ccd08e5f160307f6512a0947301cac150914e@1081 ceb3ebad-0e53-d446-8596-a45b2b8d79cd

--- package/win32/common/hsp3dish.as
+++ package/win32/common/hsp3dish.as
@@ -215,6 +215,106 @@
 #define global REQ_DEFAULT_DAMPER (SYSREQ_DEFAULT_DAMPER)
 #define global REQ_DEFAULT_FRICTION (SYSREQ_DEFAULT_FRICTION)

-
 #endif

+;
+;	es sprite header for HSP3Dish
+;
+#ifndef __essprite__
+#define __essprite__
+
+#regcmd 9
+#cmd gpreset $60
+#cmd es_ini $200
+#cmd es_window $201
+#cmd es_area $202
+#cmd es_size $203
+#cmd es_pat $204
+#cmd es_link $205
+#cmd es_clear $206
+#cmd es_new $207
+#cmd es_get $208
+#cmd es_setp $209
+#cmd es_find $20a
+#cmd es_check $20b
+#cmd es_offset $20c
+#cmd es_set $20d
+#cmd es_flag $20e
+#cmd es_chr $20f
+#cmd es_type $210
+#cmd es_kill $211
+#cmd es_pos $212
+#cmd es_posd $213
+#cmd es_apos $214
+#cmd es_aposd $215
+#cmd es_adir $216
+#cmd es_aim $217
+#cmd es_draw $218
+#cmd es_gravity $219
+#cmd es_bound $21a
+#cmd es_blink $21b
+#cmd es_effect $21c
+#cmd es_move $21d
+#cmd es_setpri $21e
+#cmd es_put $21f
+#cmd es_ang $220
+#cmd es_sin $221
+#cmd es_cos $222
+#cmd es_dist $223
+#cmd es_opt $224
+#cmd es_exnew $225
+#cmd es_patanim $226
+#cmd es_getpos $227
+#cmd es_bgmap $228
+#cmd es_putbg $229
+#cmd es_bgmes $22a
+#cmd es_parent $22b
+#cmd es_modaxis $22c
+
+
+#define global es_fmes mes
+#define global es_bye
+
+#define global ESI_FLAG 0
+#define global ESI_POSX 1
+#define global ESI_POSY_2
+#define global ESI_SPDX 3
+#define global ESI_SPDY 4
+#define global ESI_PRGCOUNT 5
+#define global ESI_ANIMECOUNT 6
+#define global ESI_CHRNO 7
+#define global ESI_TYPE 8
+#define global ESI_ACCELX 9
+#define global ESI_ACCELY 10
+#define global ESI_BOUNCEPOW 11
+#define global ESI_BOUNCEFLAG 12
+#define global ESI_OPTION 13
+#define global ESI_PRIORITY 14
+#define global ESI_ALPHA 15
+#define global ESI_FADEPRM 16
+#define global ESI_ZOOMX 17
+#define global ESI_ZOOMY 18
+#define global ESI_ROTZ 19
+
+#define global ESSPFLAG_NONE (0)
+#define global ESSPFLAG_STATIC (0x100)
+#define global ESSPFLAG_MOVE (0x200)
+#define global ESSPFLAG_GRAVITY (0x400)
+#define global ESSPFLAG_BGLINK (0x800)
+#define global ESSPFLAG_NOWIPE (0x1000)
+#define global ESSPFLAG_XBOUNCE (0x2000)
+#define global ESSPFLAG_YBOUNCE (0x4000)
+#define global ESSPFLAG_BLINK (0x8000)
+#define global ESSPFLAG_NODISP (0x10000)
+
+#define global ESSPPAT_1SHOT (0x1000)
+
+#define global ESSPOPT_NONE (0)
+#define global ESSPOPT_EXTDISP (1)
+#define global ESSPOPT_FADEIN (4)
+#define global ESSPOPT_FADEOUT (8)
+#define global ESSPOPT_ADDCOLOR (16)
+#define global ESSPOPT_SUBCOLOR (32)
+
+#endif
+


flashlsOSMF.swf: fix bitrate computation related to #97

--- src/org/mangui/osmf/plugins/traits/HLSDynamicStreamTrait.as
+++ src/org/mangui/osmf/plugins/traits/HLSDynamicStreamTrait.as
@@ -32,7 +32,7 @@
             if (index > numDynamicStreams - 1 || index < 0) {
                 throw new RangeError(OSMFStrings.getString(OSMFStrings.STREAMSWITCH_INVALID_INDEX));
             }
-            var bitrate : Number = _hls.levels[index].bitrate / 1024;
+            var bitrate : Number = _hls.levels[index].bitrate / 1000;
             CONFIG::LOGGING {
             Log.debug("HLSDynamicStreamTrait:getBitrateForIndex(" + index + ")=" + bitrate);
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20435
Author:   eday@adobe.com
Date:     2011-02-23T23:28:15.708264Z

Log Message:
-----------
Fix for SDK-29521.
- Flip transition no longer leaves views unnecessarily in advanced layout mode.
- Slide transition forces validation as necessary for views in advanced layout mode.

QE notes:
Doc notes:
Bugs: SDK-29521
Reviewer: Evtim, Corey
Tests run: checkintests, full cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as
@@ -653,7 +653,7 @@
         startView.includeInLayout = false;

         // Disable end view layout.
-        endViewProps = { includeInLayout:endView.includeInLayout };
+        endViewProps = { includeInLayout:endView.includeInLayout, usesAdvancedLayout:(endView._layoutFeatures != null) };
         endView.includeInLayout = false;

         // Save our end view's transform matrix.
@@ -710,6 +710,7 @@

         // Disable layout for our targetNavigator temporarily.
         navigatorProps.targetNavigatorIncludeInLayout = targetNavigator.includeInLayout;
+        navigatorProps.usesAdvancedLayout = (targetNavigator._layoutFeatures != null);
         targetNavigator.includeInLayout = false;
     }

@@ -817,6 +818,11 @@
             if (endView)
             {
                 endView.includeInLayout = endViewProps.includeInLayout;
+
+                // Restore the end view to normal layout mode if if
+                // that's the mode it was in before the transition.
+                if (!endViewProps.usesAdvancedLayout)
+                    endView.clearAdvancedLayoutFeatures();
                 endViewProps = null;
             }
         }
@@ -832,6 +838,11 @@

             // Restore targetNavigator properties.
             targetNavigator.includeInLayout = navigatorProps.targetNavigatorIncludeInLayout;
+
+            // Restore the target navigator to normal layout mode if
+            // that's the mode it was in before the transition.
+            if (!navigatorProps.usesAdvancedLayout)
+                targetNavigator.clearAdvancedLayoutFeatures();
         }

         transitionGroup = null;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5331
Author:   dloverin@adobe.com
Date:     2009-03-16T20:29:20.872892Z

Log Message:
-----------
FxApplication related API changes.

1. Rename ApplicationGlobals.application -> FlexGlobals.topLevelApplication
2. Application.application will be deprecated. FlexGlobals.topLevelApplication will be the recommend alternative.
3. Application.application will return null if the top-level application is not of type Application or a subclass of Application.
4. Change the FxApplication.backgroundColor property from type Object to uint.

QE Notes: None
Doc Notes: None
Bugs: sdk-19677
Reviewer: Ryan
tests: checkintests, Application mustella tests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/ActivatorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ApplicationGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/src/haloclassic/ActivatorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/ActivatorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/checkinapp/ProductDetail.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Glow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.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/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ApplicationGlobals.as" copyfrom-rev="5314" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexGlobals.as</path>

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

--- frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as
@@ -20,7 +20,7 @@
 import flash.net.URLRequest;
 import flash.utils.Dictionary;
 import flash.utils.Timer;
-import mx.core.ApplicationGlobals;
+import mx.core.FlexGlobals;
 import mx.core.mx_internal;
 import mx.core.Singleton;
 import mx.events.BrowserChangeEvent;
@@ -237,8 +237,8 @@
         if (appID)
             return;

-        if (!("historyManagementEnabled" in ApplicationGlobals.application) ||
-            !ApplicationGlobals.application.historyManagementEnabled)
+        if (!("historyManagementEnabled" in FlexGlobals.topLevelApplication) ||
+            !FlexGlobals.topLevelApplication.historyManagementEnabled)
             return;

         var loaderInfo:LoaderInfo;
@@ -331,8 +331,8 @@
      */
     public function register(obj:IHistoryManagerClient):void
     {
-        if (!("historyManagementEnabled" in ApplicationGlobals.application) ||
-            !ApplicationGlobals.application.historyManagementEnabled)
+        if (!("historyManagementEnabled" in FlexGlobals.topLevelApplication) ||
+            !FlexGlobals.topLevelApplication.historyManagementEnabled)
             return;

         // Ensure that this object isn't already registered.
@@ -503,8 +503,8 @@
      */
     public function unregister(obj:IHistoryManagerClient):void
     {
-        if (!("historyManagementEnabled" in ApplicationGlobals.application) ||
-            !ApplicationGlobals.application.historyManagementEnabled)
+        if (!("historyManagementEnabled" in FlexGlobals.topLevelApplication) ||
+            !FlexGlobals.topLevelApplication.historyManagementEnabled)
             return;

         // Find the index of the object in the Array of all
@@ -544,8 +544,8 @@
      */
     public function save():void
     {
-        if (!("historyManagementEnabled" in ApplicationGlobals.application) ||
-            !ApplicationGlobals.application.historyManagementEnabled)
+        if (!("historyManagementEnabled" in FlexGlobals.topLevelApplication) ||
+            !FlexGlobals.topLevelApplication.historyManagementEnabled)
             return;

         var haveState:Boolean = false;
@@ -588,7 +588,7 @@
         if (haveState)
         {
             pendingQueryString = queryString;
-            ApplicationGlobals.application.callLater(this.submitQuery);
+            FlexGlobals.topLevelApplication.callLater(this.submitQuery);
         }
     }

@@ -602,8 +602,8 @@
         {
             BrowserManager.getInstance().setFragment(pendingQueryString);
             pendingQueryString = null;
-            if ("resetHistory" in ApplicationGlobals.application)
-                ApplicationGlobals.application.resetHistory = true;
+            if ("resetHistory" in FlexGlobals.topLevelApplication)
+                FlexGlobals.topLevelApplication.resetHistory = true;
         }
     }

@@ -627,8 +627,8 @@
         var p:String;
         var crc:String;

-        if (!("historyManagementEnabled" in ApplicationGlobals.application) ||
-            !ApplicationGlobals.application.historyManagementEnabled)
+        if (!("historyManagementEnabled" in FlexGlobals.topLevelApplication) ||
+            !FlexGlobals.topLevelApplication.historyManagementEnabled)
             return;

         var pieces:Array = event.url.split(PROPERTY_SEPARATOR);


Transferred from the Adobe Open Source Subversion Repository

Revision: 1634
Author:   dloverin@adobe.com
Date:     2008-05-09T16:36:32.810382Z

Log Message:
-----------
Change from pt-to-pt message to relay.

Removed the property ISandboxBridgeGroup.topLevelSystemManagerBridge, fixed up references to pass message to parent and the event handler would forward the message to the parent.

SystemManager.broadcastEvent() will only set the requestor to the immediate parent or child bridge. The recipient of the message no longer knows who the original sender was.

QA: Verify FocusManager and PopUpManager work as well as before with one level of children.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/events/PopupRequest.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/events/SandboxBridgeEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/core/ProxyEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/sandbox/SandboxBridgeGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/events/SandboxBridgeRequest.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/marshall-plan-3.0.x/frameworks/projects/framework/src/mx/sandbox/ISandboxBridgeGroup.as</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as
+++ frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as
@@ -92,11 +92,11 @@

 	private function proxyMouseDownHandler(event:MouseEvent):void
 	{
-		// Tell the top-level system manager we are active.
+		// Tell our parent system manager we are active.
 		var sm:ISystemManager2 = ISystemManager2(_systemManager);
-		if (sm.sandboxBridgeGroup && sm.sandboxBridgeGroup.topLevelSystemManagerBridge)
-		{
-			var bridge:IEventDispatcher = sm.sandboxBridgeGroup.topLevelSystemManagerBridge;
+		if (sm.sandboxBridgeGroup && sm.sandboxBridgeGroup.parentBridge)
+		{
+			var bridge:IEventDispatcher = sm.sandboxBridgeGroup.parentBridge;
 			var bridgeEvent:SandboxBridgeEvent = new SandboxBridgeEvent(SandboxBridgeEvent.ACTIVATE_WINDOW,
 																	    false, false,
 	       																sm.sandboxBridgeGroup.parentBridge,
@@ -242,7 +242,7 @@
 		// trace("SM Proxy: deactivate " + f );

 		var sm:ISystemManager2 = ISystemManager2(_systemManager);
-		var bridge:IEventDispatcher = sm.sandboxBridgeGroup ? sm.sandboxBridgeGroup.topLevelSystemManagerBridge : null;
+		var bridge:IEventDispatcher = sm.sandboxBridgeGroup ? sm.sandboxBridgeGroup.parentBridge : null;
 		if (bridge)
 		{
 			var bridgeEvent:SandboxBridgeEvent = new SandboxBridgeEvent(SandboxBridgeEvent.DEACTIVATE_WINDOW,


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/controls/sliderClasses/SliderLabel.as
+++ frameworks/projects/mx/src/mx/controls/sliderClasses/SliderLabel.as
@@ -28,6 +28,11 @@
  *  @see mx.controls.sliderClasses.Slider
  *  @see mx.controls.sliderClasses.SliderDataTip
  *  @see mx.controls.sliderClasses.SliderThumb
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class SliderLabel extends Label
 {
@@ -41,6 +46,11 @@

 	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function SliderLabel()
 	{


re #67: we almost have video

re #67: we almost have video

git-svn-id: 5c313c7b604ce6bf72d7224b35e7462ee01c5e2b@116 7a690eda-67ec-4556-b061-4c86d960b817

--- exe/SWPlayer/src/eu/screenwerk/player/SWVideoPlayer.as
+++ exe/SWPlayer/src/eu/screenwerk/player/SWVideoPlayer.as
@@ -35,13 +35,16 @@
 			this.width = parent.width;
 			this.height = parent.height;

-			var video_file:File = Application.application.sw_dir.resolvePath(this.sw_id + '.video');
+			//var video_file:File = Application.application.sw_dir.resolvePath(this.sw_id + '.video');
+			var video_file:File = Application.application.sw_dir.resolvePath('caption_video.flv');

-		    var mywidget:MediaWidget=new MediaWidget();
-		    mywidget.width=parent.width;
-		    mywidget.height = parent.height;
+		    var mywidget:MediaWidget = new MediaWidget();
+		    mywidget.width = this.width;
+		    mywidget.height = this.height;
 		    trace ( video_file.nativePath );
+		    //mywidget.source = video_file.url;
 		    this.addChild(mywidget);
+		    mywidget.removeEmailToWindow();
  		}

 		private function _stop(event:Event):void


Don't crash if we have no movies to play

--- exporter/src/main/as/flump/export/PreviewController.as
+++ exporter/src/main/as/flump/export/PreviewController.as
@@ -67,10 +67,12 @@
                 displayLibraryItem(_controls.textures.selectedItem.texture);
         });

-        // Play the first movie
-        _controls.movies.selectedIndex = 0;
-        // Grumble, wish setting the index above would fire the listener
-        displayLibraryItem(lib.movies[0].libraryItem);
+        if (lib.movies.length > 0) {
+            // Play the first movie
+            _controls.movies.selectedIndex = 0;
+            // Grumble, wish setting the index above would fire the listener
+            displayLibraryItem(lib.movies[0].libraryItem);
+        }
     }

     protected function displayLibraryItem (name :String) :void {


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

--- frameworks/projects/mx/src/mx/containers/ControlBar.as
+++ frameworks/projects/mx/src/mx/containers/ControlBar.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2004-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.
+//  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: 16787
Author:   cframpto@adobe.com
Date:     2010-07-02T01:39:01.535135Z

Log Message:
-----------
The following changes apply to Spark DataGrid only.   Code reviews have been deferred until the implementation is closer to completion.

SDK-26832.  dispatchEvent needs to handle the case where either columnIndex and/or rowIndex is -1 which might be the case for a roll out event.  Only dispatch a roll over event if both the columnIndex and rowIndex are valid.

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

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -2445,12 +2445,12 @@
             const gridDimensions:GridDimensions = GridLayout(layout).gridDimensions;
             const eventRowIndex:int = gridDimensions.getRowIndexAt(eventGridXY.x, eventGridXY.y);
             const eventColumnIndex:int = gridDimensions.getColumnIndexAt(eventGridXY.x, eventGridXY.y);
-
+
             if ((eventRowIndex != rollRowIndex) || (eventColumnIndex != rollColumnIndex))
             {
                 if ((rollRowIndex != -1) || (rollColumnIndex != -1))
                     dispatchGridEvent(event, GridEvent.GRID_ROLL_OUT, eventGridXY, rollRowIndex, rollColumnIndex);
-                if ((eventRowIndex != -1) || (eventColumnIndex != -1))
+                if ((eventRowIndex != -1) && (eventColumnIndex != -1))
                     dispatchGridEvent(event, GridEvent.GRID_ROLL_OVER, eventGridXY, eventRowIndex, eventColumnIndex);
                 rollRowIndex = eventRowIndex;
                 rollColumnIndex = eventColumnIndex;
@@ -2571,8 +2571,8 @@
             if (isEventTargetExcluded(mouseEvent))
                 return;

-            const column:GridColumn = getGridColumn(columnIndex);
-            const item:Object = getDataProviderItem(rowIndex);
+            const column:GridColumn = columnIndex >= 0 ? getGridColumn(columnIndex) : null;
+            const item:Object = rowIndex >= 0 ? getDataProviderItem(rowIndex) : null;
             const itemRenderer:IVisualElement = getVisibleItemRenderer(rowIndex, columnIndex);
             const bubbles:Boolean = mouseEvent.bubbles;
             const cancelable:Boolean = mouseEvent.cancelable;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10876
Author:   egeorgie@adobe.com
Date:     2009-10-05T22:20:07.936303Z

Log Message:
-----------
Add support for drag-and-drop from Spark List to Spark List.

- List drop related handlers
- LayoutBase APIs
- VerticalLayout DND support

Notes:
- ListSkin is not final.
- Drag-scrolling not yet implemented.

QE notes: Only VerticalLayout works, HorizontalLayout still not implemented.
Doc notes: None
Bugs: None
Reviewer: Deepa
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/DropLocation.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -20,18 +20,23 @@

 import mx.core.DragSource;
 import mx.core.EventPriority;
+import mx.core.IFactory;
 import mx.core.IFlexDisplayObject;
+import mx.core.IUID;
 import mx.core.IVisualElement;
 import mx.core.mx_internal;
 import mx.events.DragEvent;
 import mx.events.SandboxMouseEvent;
 import mx.managers.DragManager;
 import mx.managers.IFocusManagerComponent;
+import mx.utils.ObjectUtil;
+import mx.utils.UIDUtil;

 import spark.components.supportClasses.ListBase;
 import spark.core.NavigationUnit;
 import spark.events.IndexChangeEvent;
 import spark.events.RendererExistenceEvent;
+import spark.layouts.supportClasses.DropLocation;

 use namespace mx_internal;  //ListBase and List share selection properties that are mx_internal

@@ -259,6 +264,20 @@
     //
     //--------------------------------------------------------------------------

+    [SkinPart(required="false", type="flash.display.DisplayObject")]
+
+    /**
+     *  A skin part that defines a drop indicator. The drop indicator is resized
+     *  and positioned by the layout to outline the insert location when dragging
+     *  over the List.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public var dropIndicator:IFactory;
+
     //----------------------------------
     //  scroller
     //----------------------------------
@@ -425,6 +444,73 @@
     public function set dragMoveEnabled(value:Boolean):void
     {
         _dragMoveEnabled = value;
+    }
+
+    //----------------------------------
+    //  dropEnabled
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the dropEnabled property.
+     */
+    private var _dropEnabled:Boolean = false;
+
+    [Inspectable(defaultValue="false")]
+
+    /**
+     *  A flag that indicates whether dragged items can be dropped onto the
+     *  control.
+     *
+     *
If you set this property to true,
+     *  the control accepts all data formats, and assumes that
+     *  the dragged data matches the format of the data in the data provider.
+     *  If you want to explicitly check the data format of the data
+     *  being dragged, you must handle one or more of the drag events,
+     *  such as dragEnter and dragOver,
+     *  and call the DragEvent's preventDefault() method
+     *  to customize the way the list class accepts dropped data.

+     *
+     *
When you set dropEnabled to true,
+     *  Flex automatically calls the showDropFeedback()
+     *  and hideDropFeedback() methods to display the drop
+     *  indicator.

+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get dropEnabled():Boolean
+    {
+        return _dropEnabled;
+    }
+
+    /**
+     *  @private
+     */
+    public function set dropEnabled(value:Boolean):void
+    {
+        if (value == _dropEnabled)
+            return;
+        _dropEnabled = value;
+
+        if (_dropEnabled)
+        {
+            addEventListener(DragEvent.DRAG_ENTER, dragEnterHandler, false, EventPriority.DEFAULT_HANDLER);
+            addEventListener(DragEvent.DRAG_EXIT, dragExitHandler, false, EventPriority.DEFAULT_HANDLER);
+            addEventListener(DragEvent.DRAG_OVER, dragOverHandler, false, EventPriority.DEFAULT_HANDLER);
+            addEventListener(DragEvent.DRAG_DROP, dragDropHandler, false, EventPriority.DEFAULT_HANDLER);
+        }
+        else
+        {
+            removeEventListener(DragEvent.DRAG_ENTER, dragEnterHandler, false);
+            removeEventListener(DragEvent.DRAG_EXIT, dragExitHandler, false);
+            removeEventListener(DragEvent.DRAG_OVER, dragOverHandler, false);
+            removeEventListener(DragEvent.DRAG_DROP, dragDropHandler, false);
+        }
     }

     //----------------------------------
@@ -1007,9 +1093,14 @@

         var dragSource:DragSource = new DragSource();
         addDragData(dragSource);
-        // FIXME (egeorgie): customizeable alpha? Move to the default dragSource class?
-        const imageAlpha:Number = 0.8;
-        DragManager.doDrag(this, dragSource, event, createDragIndicator(), 0, 0, 0.8, dragMoveEnabled);
+        DragManager.doDrag(this,
+                           dragSource,
+                           event,
+                           createDragIndicator(),
+                           0 /*xOffset*/,
+                           0 /*yOffset*/,
+                           0.8 /*imageAlpha*/,
+                           dragMoveEnabled);
     }

     /**
@@ -1114,7 +1205,7 @@
     private function copySelectedItemsForDragDrop():Vector.<Object>
     {
         // Copy the vector so that we don't modify the original
-        // since selectedIndices returns a reference.
+         // since selectedIndices returns a reference.
         var draggedIndices:Vector.<int> = selectedIndices.slice(0, selectedIndices.length);
         var result:Vector.<Object> = new Vector.<Object>(draggedIndices.length);

@@ -1238,6 +1329,305 @@
         removeMouseHandlersForDragStart();
     }

+    //--------------------------------------------------------------------------
+    //
+    //  Drop methods
+    //
+    //--------------------------------------------------------------------------
+
+    private function calculateDropLocation(event:DragEvent):DropLocation
+    {
+        // Verify data format
+        if (!enabled || !event.dragSource.hasFormat("orderedItems"))
+            return null;
+
+        // Calculate the drop location
+        return layout.calculateDropLocation(event);
+    }
+
+    /**
+     *  Handles DragEvent.DRAG_ENTER events.  This method
+     *  determines if the DragSource object contains valid elements and uses
+     *  the DragManager.showDropFeedback() method to set up the
+     *  UI feedback as well as the layout's showDropIndicator()
+     *  method to display the drop indicator and initiate drag scrolling.
+     *
+     *  @param event The DragEvent object.
+     *
+     *  @see spark.layouts.LayoutBase#showDropIndicator
+     *  @see spark.layouts.LayoutBase#hideDropIndicator
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function dragEnterHandler(event:DragEvent):void
+    {
+        if (event.isDefaultPrevented())
+            return;
+
+        var dropLocation:DropLocation = calculateDropLocation(event);
+        if (dropLocation)
+        {
+            DragManager.acceptDragDrop(this);
+
+            // Create the dropIndicator instance. The layout will take care of
+            // parenting, sizing, positioning and validating the dropIndicator.
+            if (dropIndicator)
+                layout.dropIndicator = DisplayObject(createDynamicPartInstance("dropIndicator"));
+
+            // Show drop indicator
+            layout.showDropIndicator(dropLocation);
+
+            // Show focus
+            drawFocusAnyway = true;
+            drawFocus(true);
+
+            // Notify manager we can drop
+            DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
+        }
+        else
+        {
+            DragManager.showFeedback(DragManager.NONE);
+        }
+    }
+
+    /**
+     *  Handles DragEvent.DRAG_OVER events. This method
+     *  determines if the DragSource object contains valid elements and uses
+     *  the showDropFeedback() method to set up the UI feedback
+     *  as well as the layout's showDropIndicator() method
+     *  to display the drop indicator and initiate drag scrolling.
+     *
+     *  @param event The DragEvent object.
+     *
+     *  @see spark.layouts.LayoutBase#showDropIndicator
+     *  @see spark.layouts.LayoutBase#hideDropIndicator
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function dragOverHandler(event:DragEvent):void
+    {
+        if (event.isDefaultPrevented())
+            return;
+
+        var dropLocation:DropLocation = calculateDropLocation(event);
+        if (dropLocation)
+        {
+            // Show drop indicator
+            layout.showDropIndicator(dropLocation);
+
+            // Show focus
+            drawFocusAnyway = true;
+            drawFocus(true);
+
+            // Notify manager we can drop
+            DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
+        }
+        else
+        {
+            // Hide if previously showing
+            layout.hideDropIndicator();
+
+            // Hide focus
+            drawFocus(false);
+            drawFocusAnyway = false;
+
+            // Notify manager we can't drop
+            DragManager.showFeedback(DragManager.NONE);
+        }
+    }
+
+    /**
+     *  Handles DragEvent.DRAG_EXIT events. This method hides
+     *  the UI feedback by calling the hideDropFeedback() method
+     *  and also hides the drop indicator by calling the layout's
+     *  hideDropIndicator() method.
+     *
+     *  @param event The DragEvent object.
+     *
+     *  @see spark.layouts.LayoutBase#showDropIndicator
+     *  @see spark.layouts.LayoutBase#hideDropIndicator
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function dragExitHandler(event:DragEvent):void
+    {
+        if (event.isDefaultPrevented())
+            return;
+
+        // Hide if previously showing
+        layout.hideDropIndicator();
+
+        // Hide focus
+        drawFocus(false);
+        drawFocusAnyway = false;
+
+        // Destroy the dropIndicator instance
+        layout.dropIndicator = null;
+    }
+
+    /**
+     *  Handles DragEvent.DRAG_DROP events. This method  hides
+     *  the drop feedback by calling the hideDropFeedback() method.
+     *
+     *
If the action is a COPY,
+     *  then this method makes a deep copy of the object
+     *  by calling the ObjectUtil.copy() method,
+     *  and replaces the copy's uid property (if present)
+     *  with a new value by calling the UIDUtil.createUID() method.

+     *
+     *  @param event The DragEvent object.
+     *
+     *  @see mx.utils.ObjectUtil
+     *  @see mx.utils.UIDUtil
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function dragDropHandler(event:DragEvent):void
+    {
+        if (event.isDefaultPrevented())
+            return;
+
+        // Hide the drop indicator
+        layout.hideDropIndicator();
+
+        // Hide focus
+        drawFocus(false);
+        drawFocusAnyway = false;
+
+        // Get the dropLocation
+        var dropLocation:DropLocation = calculateDropLocation(event);
+        if (!dropLocation)
+            return;
+
+        // Find the dropIndex
+        var dropIndex:int = dropLocation.dropIndex;
+
+        // Make sure the manager has the appropriate action
+        DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
+
+        var dragSource:DragSource = event.dragSource;
+        var items:Vector.<Object> = dragSource.dataForFormat("orderedItems") as Vector.<Object>;
+
+        var caretIndex:int = -1;
+        if (dragSource.hasFormat("orderedItemsCaretIndex"))
+            caretIndex = event.dragSource.dataForFormat("orderedItemsCaretIndex") as int;
+
+        // If we are reordering the list, remove the items now,
+        // adjusting the dropIndex in the mean time.
+        // If the items are drag moved to this list from a different list,
+        // the drag initiator will remove the items when it receives the
+        // DragEvent.DRAG_COMPLETE event.
+        if (dragMoveEnabled &&
+            event.action == DragManager.MOVE &&
+            event.dragInitiator == this)
+        {
+            var indices:Vector.<int> = selectedIndices;
+            indices.sort(compareValues);
+
+            // Remove the previously selected items
+            for (var i:int = indices.length - 1; i >= 0; i--)
+            {
+                if (indices[i] < dropIndex)
+                    dropIndex--;
+                dataProvider.removeItemAt(indices[i]);
+            }
+        }
+
+        // Drop the items at the dropIndex
+        var newSelection:Vector.<int> = new Vector.<int>();
+
+        // Update the selection with the index of the caret item
+        if (caretIndex != -1)
+            newSelection.push(dropIndex + caretIndex);
+
+        var copyItems:Boolean = (event.action == DragManager.COPY);
+        for (i = 0; i < items.length; i++)
+        {
+            // Get the item, clone if needed
+            var item:Object = items[i];
+            if (copyItems)
+                item = copyItemWithUID(item);
+
+            // Copy the data
+            dataProvider.addItemAt(items[i], dropIndex + i);
+
+            // Update the selection
+            if (i != caretIndex)
+                newSelection.push(dropIndex + i);
+        }
+
+        // Set the selection
+        selectedIndices = newSelection;
+
+        // Scroll the caret index in view
+        if (caretIndex != -1)
+        {
+            // Sometimes we may need to scroll several times as for virtual layouts
+            // this is not guaranteed to bring in the element in view the first try
+            // as some items in between may not be loaded yet and their size is only
+            // estimated.
+            var delta:Point;
+            var loopCount:int = 0;
+            while (loopCount++ < 10)
+            {
+                validateNow();
+                delta = layout.getScrollPositionDeltaToElement(dropIndex + caretIndex);
+                if (!delta || (delta.x == 0 && delta.y == 0))
+                    break;
+                layout.horizontalScrollPosition += delta.x;
+                layout.verticalScrollPosition += delta.y;
+            }
+        }
+    }
+
+    /**
+     *  Makes a deep copy of the object by calling the
+     *  ObjectUtil.copy() method, and replaces
+     *  the copy's uid property (if present) with a
+     *  new value by calling the UIDUtil.createUID() method.
+     *
+     *
This method is used for a drag and drop copy.

+     *
+     *  @param item The item to copy.
+     *
+     *  @return The copy of the object.
+     *
+     *  @see mx.utils.ObjectUtil
+     *  @see mx.utils.UIDUtil
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function copyItemWithUID(item:Object):Object
+    {
+        var copyObj:Object = ObjectUtil.copy(item);
+
+        if (copyObj is IUID)
+        {
+            IUID(copyObj).uid = UIDUtil.createUID();
+        }
+        else if (copyObj is Object && "mx_internal_uid" in copyObj)
+        {
+            copyObj.mx_internal_uid = UIDUtil.createUID();
+        }
+
+        return copyObj;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Event Handlers


Transferred from the Adobe Open Source Subversion Repository

Revision: 10925
Author:   dsubrama@adobe.com
Date:     2009-10-08T01:52:06.333135Z

Log Message:
-----------
Redo the implementation of dragging & selection being handled upon mouseDown in List. Evtim will fix up the behavior such that in a multi-select action, mousing down in a selected item will drag the selected set while mousing down in a non-selected item will select that item anew.

QA: Yes, but don't include in those 3 tests till Evtim checks in, hopefully tomorrow
Doc: No
Checkintests: Pass
Other tests: List tests pass, List D&D tests pass with 3 exclusions.
Noteworthy for Integration: No

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/List.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -385,23 +385,6 @@
             removeEventListener(DragEvent.DRAG_START, dragStartHandler, false);
             removeEventListener(DragEvent.DRAG_COMPLETE, dragCompleteHandler, false);
         }
-
-        if (dataGroup)
-        {
-            // FIXME (egeorgie): Figure out a more efficient way to iterate through the item renderers.
-            var count:int = dataGroup.numElements;
-            for (var i:int = 0; i < count; i++)
-            {
-                var renderer:IItemRenderer = dataGroup.getElementAt(i) as IItemRenderer;
-                if (renderer)
-                {
-                    if (_dragEnabled)
-                        renderer.addEventListener(MouseEvent.MOUSE_DOWN, item_mouseDownHandler);
-                    else
-                        renderer.removeEventListener(MouseEvent.MOUSE_DOWN, item_mouseDownHandler);
-                }
-            }
-        }
     }

     //----------------------------------
@@ -1007,7 +990,7 @@
                         {
                             interval.splice(0, 0, selectedIndices[0]);
                             return interval;
-                    }
+                        }
                     }
                     else
                     {
@@ -1050,7 +1033,7 @@
         {
             // A contiguous selection action has occurred. Figure out which new
             // indices to add to the selection interval and return that.
-            var start:int = (!isEmpty(selectedIndices)) ? selectedIndices[0] : 0;
+            var start:int = (!isEmpty(selectedIndices)) ? selectedIndices[selectedIndices.length - 1] : 0;
             var end:int = index;
             if (start < end)
             {
@@ -1221,9 +1204,11 @@

     /**
      *  Handles MouseEvent.MOUSE_DOWN events from any of the
-     *  item renderers. This method remembers the mouse down point and
+     *  item renderers. This method handles the updating and commitment
+     *  of selection as well as remembers the mouse down point and
      *  attaches MouseEvent.MOUSE_MOVE and
-     *  MouseEvent.MOUSE_UP listeners.
+     *  MouseEvent.MOUSE_UP listeners in order to handle
+     *  drag gestures.
      *
      *  @param event The MouseEvent object.
      *
@@ -1234,8 +1219,38 @@
      */
     protected function item_mouseDownHandler(event:MouseEvent):void
     {
+        // Handle the fixup of selection
+        var newIndex:Number;
+
+        if (!allowMultipleSelection)
+        {
+            // Single selection case, set the selectedIndex
+            newIndex = dataGroup.getElementIndex(event.currentTarget as IVisualElement);
+
+            var currentRenderer:IItemRenderer;
+            if (caretIndex >= 0)
+            {
+                currentRenderer = dataGroup.getElementAt(caretIndex) as IItemRenderer;
+                if (currentRenderer)
+                    currentRenderer.showsCaret = false;
+            }
+
+            // Check to see if we're deselecting the currently selected item
+            if (event.ctrlKey && selectedIndex == newIndex)
+                selectedIndex = NO_SELECTION;
+                // Otherwise, select the new item
+            else
+                selectedIndex = newIndex;
+        }
+        else
+        {
+            // Multiple selection is handled by the helper method below
+            selectedIndices = calculateSelectedIndicesInterval(event.currentTarget as IVisualElement, event.shiftKey, event.ctrlKey);
+        }
+
+        // Handle any drag gestures that may have been started
         var renderer:IItemRenderer = event.currentTarget as IItemRenderer;
-        if (!renderer || !renderer.selected)
+        if (!renderer || !dragEnabled)
             return;

         mouseDownPoint = event.target.localToGlobal(new Point(event.localX, event.localY));
@@ -1646,9 +1661,7 @@
         if (!renderer)
             return;

-        renderer.addEventListener(MouseEvent.CLICK, item_clickHandler);
-        if (dragEnabled)
-            renderer.addEventListener(MouseEvent.MOUSE_DOWN, item_mouseDownHandler);
+        renderer.addEventListener(MouseEvent.MOUSE_DOWN, item_mouseDownHandler);
     }

     /**
@@ -1663,44 +1676,7 @@
         if (!renderer)
             return;

-        renderer.removeEventListener(MouseEvent.CLICK, item_clickHandler);
-        if (dragEnabled)
-            renderer.removeEventListener(MouseEvent.MOUSE_DOWN, item_mouseDownHandler);
-    }
-
-    /**
-     *  @private
-     *  Called when an item is clicked.
-     */
-    protected function item_clickHandler(event:MouseEvent):void
-    {
-        var newIndex:Number;
-
-        if (!allowMultipleSelection)
-        {
-            // Single selection case, set the selectedIndex
-            newIndex = dataGroup.getElementIndex(event.currentTarget as IVisualElement);
-
-            var currentRenderer:IItemRenderer;
-            if (caretIndex >= 0)
-            {
-                currentRenderer = dataGroup.getElementAt(caretIndex) as IItemRenderer;
-                if (currentRenderer)
-                    currentRenderer.showsCaret = false;
-            }
-
-            // Check to see if we're deselecting the currently selected item
-            if (event.ctrlKey && selectedIndex == newIndex)
-                selectedIndex = NO_SELECTION;
-            // Otherwise, select the new item
-            else
-                selectedIndex = newIndex;
-        }
-        else
-        {
-            // Multiple selection is handled by the helper method below
-            selectedIndices = calculateSelectedIndicesInterval(event.currentTarget as IVisualElement, event.shiftKey, event.ctrlKey);
-        }
+        renderer.removeEventListener(MouseEvent.MOUSE_DOWN, item_mouseDownHandler);
     }

     /**