Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -27,6 +27,11 @@

 /**
  *  Documentation is not currently available.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class HorizontalLayout extends LayoutBase
 {
@@ -81,6 +86,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function HorizontalLayout():void
     {
@@ -108,6 +118,11 @@
      *  just one element, the gap has no effect on the layout.
      *
      *  @default 6
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get gap():int
     {
@@ -139,6 +154,11 @@
      *  Returns the current number of visible elements.
      *
      *  @default -1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get columnCount():int
     {
@@ -154,6 +174,11 @@
      *  of visible columns.
      *
      *  @param value The number of visible columns.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function setColumnCount(value:int):void
     {
@@ -186,6 +211,11 @@
      *  then this property has no effect.
      *
      *  @default -1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get requestedColumnCount():int
     {
@@ -221,6 +251,11 @@
      *
      *  The default value of this property is the preferred width
      *  of the typicalLayoutElement.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get columnWidth():Number
     {
@@ -269,6 +304,11 @@
      *  layout elements' percentWidth.
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get variableColumnWidth():Boolean
     {
@@ -310,6 +350,11 @@
      *
      *  @see lastIndexInView
      *  @see inView
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get firstIndexInView():int
     {
@@ -337,6 +382,11 @@
      *
      *  @see firstIndexInView
      *  @see inView
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get lastIndexInView():int
     {
@@ -369,6 +419,11 @@
      *  This property does not affect the layout's measured size.
      *
      *  @default "top"
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get verticalAlign():String
     {
@@ -401,6 +456,11 @@
      *
      *  @see firstIndexInView
      *  @see lastIndexInview
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function setIndexInView(firstIndex:int, lastIndex:int):void
     {
@@ -431,6 +491,11 @@
      *  @return the percentage of the specified element that's in view.
      *  @see firstIndexInView
      *  @see lastIndexInView
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function inView(index:int):Number
     {
@@ -544,6 +609,11 @@
     *  scroll position.
     *
     *  @see setIndexInView
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 10
+    *  @playerversion AIR 1.5
+    *  @productversion Flex 4
     */
     override protected function scrollPositionChanged():void
     {
@@ -856,6 +926,11 @@
      *  As before the difference is due to the fact that flexible items are only
      *  guaranteed their minHeight.
      *
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 10
+    *  @playerversion AIR 1.5
+    *  @productversion Flex 4
     */
     override public function measure():void
     {
@@ -1126,6 +1201,11 @@
      *
      *  The return value is any extra space that's left over
      *  after growing all children to their maxWidth.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function distributeWidth(width:Number,
                                     height:Number,


Transferred from the Adobe Open Source Subversion Repository

Revision: 4622
Author:   hmuller@adobe.com
Date:     2009-01-22T20:56:42.845482Z

Log Message:
-----------
Many Bug fixes.

Setting a scrollbar's viewport now sets the viewport's clipContent flag to true.

DataGroup getRendererForItemAt(), getItemIndexForRenderer() are now public; were mx_internal.

QE Notes: tests that depend on mx_internal DataGroup getRendererForItemAt(), getItemIndexForRenderer() methods will break
Doc Notes: None
Bugs: sdk-18753, sdk-18217, sdk-18628, sdk-18659, sdk-18111, sdk18820, sdk18763
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as
@@ -561,7 +561,7 @@
             return;
         }

-        var scrollR:Rectangle = g.scrollRect;
+        var scrollR:Rectangle = getTargetScrollRect();
         if (!scrollR)
         {
             setIndexInView(0, n);
@@ -863,7 +863,15 @@
         var layoutTarget:GroupBase = target;
         if (!layoutTarget)
             return;
-        if (virtualLayout)
+
+        if (layoutTarget.numLayoutElements == 0)
+        {
+            layoutTarget.measuredWidth = 0;
+            layoutTarget.measuredHeight = 0;
+            layoutTarget.measuredMinWidth = 0;
+            layoutTarget.measuredMinHeight = 0;
+        }
+        else if (virtualLayout)
             measureVirtual(layoutTarget);
         else
             measureReal(layoutTarget);
@@ -885,7 +893,7 @@
            case VerticalAlign.JUSTIFY:
                return targetHeight;
            case VerticalAlign.CONTENT_JUSTIFY:
-               return contentHeight;
+               return Math.max(elt.getPreferredBoundsHeight(), contentHeight);
        }
        return elt.getPreferredBoundsHeight();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11063
Author:   hmuller@adobe.com
Date:     2009-10-21T21:20:27.765003Z

Log Message:
-----------
AsyncList/removeItemAt() now handles an IPE thrown by the list delegate.  AsyncListView/toArray() now queues requests for items that don't exist yet and reports pending items as expected.  AsyncListView/setItem() returns the old actual or pending value; null if no value exists.

QE notes: requires updated ItemPendingErrorSimulator.as
Doc notes: none
Bugs: sdk-23659, sdk-23644
Reviewer: Alex
Tests run: none
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/AsyncListView.as

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

--- frameworks/projects/framework/src/mx/collections/AsyncListView.as
+++ frameworks/projects/framework/src/mx/collections/AsyncListView.as
@@ -184,22 +184,27 @@

     /**
      *  @private
-     *  Delete the ListItemResponder at the specified index, if any.
+     *  Delete the ListItemResponder at the specified index, if any.
+     *  If a pending responder exists, return its item.
+     *
      *  This method assumes that the responder hasn't run yet, it sets
      *  the ListItemResponder index to -1 to prevent it from updating
      *  this AsyncListView later.
      */
-    private function deletePendingResponder(index:int):void
+    private function deletePendingResponder(index:int):Object
     {
         if ((index < 0) || (index >= pendingResponders.length))
-            return;
+            return null;

         const pendingResponder:ListItemResponder = pendingResponders[index];
         if (pendingResponder)
         {
             delete pendingResponders[index];
             ListItemResponder(pendingResponder).index = -1;
+            return pendingResponder.item;
         }
+
+        return null;
     }

     /**
@@ -606,6 +611,43 @@
     }

     /**
+     *  Removes the actual or pending item at the specified index and returns it.
+     *  All items whose index is greater than the specified index are shifted
+     *  to the left.
+     *
+     *
If there isn't an actual or pending item at the specified index, for
+     *  example because a call to getItemAt(index) hasn't caused the data to be
+     *  paged in, then the underlying list may throw an IPE.  The
+     *  implementation ignores the IPE and returns null.

+     *
+     *  @param index The list index from which to retrieve the item.
+     *  @throws RangeError if index < 0 or index >= length.
+     *  @return The item that was removed or null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function removeItemAt(index:int):Object
+    {
+        if (!list)
+            return null;
+
+        var item:Object = deletePendingResponder(index);
+        try
+        {
+            return list.removeItemAt(index);
+        }
+        catch (ipe:ItemPendingError)
+        {
+            // If list[index] doesn't exist yet, an IPE will be thrown.  There's nothing
+            // we can do about that, so ignore it.
+        }
+        return item;
+    }
+
+    /**
      *  @inheritDoc
      *
      *  @langversion 3.0
@@ -613,26 +655,21 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public function removeItemAt(index:int):Object
-    {
-        return (list) ? list.removeItemAt(index) : null;
-    }
-
-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
     public function setItemAt(item:Object, index:int):Object
     {
-        return (list) ? list.setItemAt(item, index) : null;
-    }
-
-    /**
-     *  @inheritDoc
+        if (!list)
+            return null;
+
+        const pendingResponder:ListItemResponder = pendingResponders[index];
+        const setItemValue:Object = list.setItemAt(item, index);
+        return (pendingResponder) ? pendingResponder.item : setItemValue;
+    }
+
+    /**
+     *  Returns an array with the same elements as this AsyncListView.  The array is initialized
+     *  by retrieving each item with getItemAt(), so pending items will be substituted where actual
+     *  values aren't available yet.   The array will not be updated when the ASyncList replaces
+     *  the pending items with actual (or failed) values.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -641,7 +678,13 @@
      */
     public function toArray():Array
     {
-        return (list) ? list.toArray() : [];
+        if (!list)
+            return [];
+
+        const a:Array = new Array(list.length);
+        for(var i:int = 0; i < a.length; i++)
+            a[i] = getItemAt(i);
+        return a;
     }


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

--- frameworks/projects/framework/src/mx/resources/IResourceBundle.as
+++ frameworks/projects/framework/src/mx/resources/IResourceBundle.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


FLEX-33902 reduce memory allocations

FLEX-33902 reduce memory allocations

--- frameworks/projects/framework/src/mx/resources/ResourceManager.as
+++ frameworks/projects/framework/src/mx/resources/ResourceManager.as
@@ -120,10 +120,12 @@
 				// won't have been initialized by SystemManager
 				// or FlexModuleFactory (since these don't get linked in)
 				// so the above call to getInstance() will throw an exception.
-				// In this situation, the ResourceManager simply creates
-				// its own ResourceManagerImpl.
+			}
+
+			// In this situation, the ResourceManager simply creates
+			// its own ResourceManagerImpl.
+			if (!instance)
 				instance = new ResourceManagerImpl();
-			}

             CONFIG::performanceInstrumentation
             {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4492
Author:   gosmith@adobe.com
Date:     2009-01-12T22:47:10.154251Z

Log Message:
-----------
Simplified how an accessibility class gets hooked into its corresponding component class.

We now do the hooking in the static method enableAccessibility(), which is called by code that is autogenerated by the compiler. Previously this method did nothing and the hooking happened at static initialization time. This allows us to remove the static var accessibilityHooked and the static method hookAccessibility() in each accessibility class.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Deepa and Alex

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LinkButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/RadioButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/PanelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/UIComponentAccProps.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TitleWindowAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/RadioButtonAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/RadioButtonAccImpl.as
@@ -19,44 +19,12 @@
 use namespace mx_internal;

 /**
- *  The RadioButtonAccimpl class is the accessibility class for RadioButton.
- *  This class inherits from the CheckBoxAccImpl.
- *
- *  @helpid 3008
- *  @tiptext This is the RadioButtonAccImpl Accessibility Class.
- *  @review
+ *  RadioButtonAccImpl is a subclass of AccessibilityImplementation
+ *  which implements accessibility for the RadioButton class.
  */
 public class RadioButtonAccImpl extends CheckBoxAccImpl
 {
     include "../core/Version.as";
-
-	//--------------------------------------------------------------------------
-	//
-	//  Class initialization
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 *  Static variable triggering the hookAccessibility() method.
-	 *  This is used for initializing RadioButtonAccImpl class to hook its
-	 *  createAccessibilityImplementation() method to RadioButton class
-	 *  before it gets called from UIComponent.
-	 */
-	private static var accessibilityHooked:Boolean = hookAccessibility();
-
-	/**
-	 *  @private
-	 *  Static method for swapping the createAccessibilityImplementation()
-	 *  method of RadioButton with the RadioButtonAccImpl class.
-	 */
-	private static function hookAccessibility():Boolean
-	{
-		RadioButton.createAccessibilityImplementation =
-			createAccessibilityImplementation;
-
-		return true;
-	}

 	//--------------------------------------------------------------------------
 	//
@@ -65,25 +33,31 @@
 	//--------------------------------------------------------------------------

 	/**
+	 *  Enables accessibility in the RadioButton class.
+	 *
+	 *
This method is called by application startup code
+	 *  that is autogenerated by the MXML compiler.
+	 *  Afterwards, when instances of RadioButton are initialized,
+	 *  their accessibilityImplementation property
+	 *  will be set to an instance of this class.

+	 */
+	public static function enableAccessibility():void
+	{
+		RadioButton.createAccessibilityImplementation =
+			createAccessibilityImplementation;
+	}
+
+	/**
 	 *  @private
-	 *  Method for creating the Accessibility class.
-	 *  This method is called from UIComponent.
-	 *  @review
+	 *  Creates a RadioButton's AccessibilityImplementation object.
+	 *  This method is called from UIComponent's
+	 *  initializeAccessibility() method.
 	 */
 	mx_internal static function createAccessibilityImplementation(
 								component:UIComponent):void
 	{
 		component.accessibilityImplementation =
 			new RadioButtonAccImpl(component);
-	}
-
-	/**
-	 *  Method call for enabling accessibility for a component.
-	 *  This method is required for the compiler to activate
-	 *  the accessibility classes for a component.
-	 */
-	public static function enableAccessibility():void
-	{
 	}

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 20844
Author:   jimurphy@adobe.com
Date:     2011-03-14T15:10:07.899037Z

Log Message:
-----------
block hero_private revs 20698,20699,20702 from being merged into trunk
revert 20839,20841,20842,20843

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodgeShader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>

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

--- frameworks/projects/spark/src/spark/formatters/NumberFormatter.as
+++ frameworks/projects/spark/src/spark/formatters/NumberFormatter.as
@@ -629,8 +629,7 @@
     }

     /**
-     *  Lists all of the locale ID names supported by this class. This is a list of locales supported by
-     *  the operating system, not a list of locales that the ResourceManager has resources for.
+     *  Lists all of the locale ID names supported by this class.
      *
      *  @return A vector of strings containing all of the locale ID names
      *         supported by this class and operating system.


Update HLSManifestParser.as

Update HLSManifestParser.as

Clarified comments on line 103/104

--- HLSPlugin/src/com/kaltura/hls/manifest/HLSManifestParser.as
+++ HLSPlugin/src/com/kaltura/hls/manifest/HLSManifestParser.as
@@ -100,8 +100,8 @@
 		 * multiplied by this multiplier.
 		 *
 		 * This keeps a live stream player from getting too out-of-sync with
-		 * a live stream to the point where the segments are no longer in
-		 * the server cache.
+		 * a live stream to the point where the segments are no longer available
+		 * from the server.
 		 */
 		public static var LIVE_STREAM_BUFFER_THRESHOLD_MULTIPLIER:Number = 3.0;


The exportDir conf property is relative to the conf's parent dir.

--- exporter/src/main/as/flump/export/AutomaticExporter.as
+++ exporter/src/main/as/flump/export/AutomaticExporter.as
@@ -158,6 +158,13 @@
             exit("No export directory specified.");
             return;
         }
+        var exportDir :File = _confFile.parent.resolvePath(_conf.exportDir);
+        println("Exporting to " + exportDir.nativePath + "...");
+        if (exportDir.exists && !exportDir.isDirectory) {
+            exit("Configured export directory exists as a file!");
+            return;
+        }
+        if (!exportDir.exists) exportDir.createDirectory();

         var hasCombined :Boolean = false;
         var hasSingle :Boolean = false;
@@ -167,7 +174,7 @@
             if (hasCombined && hasSingle) break;
         }
         try {
-            var publisher :Publisher = new Publisher(new File(_conf.exportDir), _conf, projectName);
+            var publisher :Publisher = new Publisher(exportDir, _conf, projectName);
             // if we have one or more combined export format, publish them
             if (hasCombined) {
                 println("Exporting combined formats...");


Transferred from the Adobe Open Source Subversion Repository

Revision: 13276
Author:   dloverin@adobe.com
Date:     2010-01-05T15:18:31.560408Z

Log Message:
-----------
Min/Max size fixes for AIR Window and WindowedApplication.

AIR won’t allow you to set the min width greater than the current max width (same is true for height). You also can’t set the max width less than the current min width (same is true for height). The code that sets nativeWindow.minSize and nativeWindow.maxSize has been modified to take this into account.

QE notes: None.
Doc notes: None.
Bugs: SDK-24566
Reviewer: Corey
Tests run: checkintests, apollo/spark/components/Window.as, apollo/spark/components/WindowedApplication.as, apollo/Window, apollo/WindowedApplication
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>

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

--- frameworks/projects/airframework/src/mx/core/Window.as
+++ frameworks/projects/airframework/src/mx/core/Window.as
@@ -2307,14 +2307,43 @@
             sm.addWindow(this);
         }

+        // AIR won't allow you to set the min width greater than the current
+        // max width (same is true for height). You also can't set the max
+        // width less than the current min width (same is true for height).
+        // This makes the updating of the new minSize and maxSize a bit tricky.
+        if (minWidthChanged || minHeightChanged || maxWidthChanged || maxHeightChanged)
+        {
+            var minSize:Point = nativeWindow.minSize;
+            var maxSize:Point = nativeWindow.maxSize;
+            var newMinWidth:Number  = minWidthChanged  ? _minWidth  + chromeWidth()  : minSize.x;
+            var newMinHeight:Number = minHeightChanged ? _minHeight + chromeHeight() : minSize.y;
+            var newMaxWidth:Number  = maxWidthChanged  ? _maxWidth  + chromeWidth()  : maxSize.x;
+            var newMaxHeight:Number = maxHeightChanged ? _maxHeight + chromeHeight() : maxSize.y;
+
+            if (minWidthChanged || minHeightChanged)
+            {
+                // If the new min size is greater than the old max size, then
+                // we need to set the new max size now.
+                if ((maxWidthChanged && newMinWidth > minSize.x) ||
+                    (maxHeightChanged && newMinHeight > minSize.y))
+                {
+                    nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);
+                }
+
+                nativeWindow.minSize = new Point(newMinWidth, newMinHeight);
+            }
+
+            // Set the max width or height if it is not already set. The max
+            // width and height could have been set above when setting minSize
+            // but the max size would have been rejected by AIR if it were less
+            // than the old min size.
+            if (newMaxWidth != maxSize.x || newMaxHeight != maxSize.y)
+                nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);
+        }
+
         // minimum width and height
         if (minWidthChanged || minHeightChanged)
         {
-            var newMinWidth:Number = minWidthChanged ? _minWidth + chromeWidth() : nativeWindow.minSize.x;
-            var newMinHeight:Number = minHeightChanged ? _minHeight + chromeHeight() : nativeWindow.minSize.y;
-
-            nativeWindow.minSize = new Point(newMinWidth, newMinHeight);
-
             if (minWidthChanged)
             {
                 minWidthChanged = false;
@@ -2334,11 +2363,6 @@
         // maximum width and height
         if (maxWidthChanged || maxHeightChanged)
         {
-            var newMaxWidth:Number = maxWidthChanged ? _maxWidth + chromeWidth() : nativeWindow.maxSize.x;
-            var newMaxHeight:Number = maxHeightChanged ? _maxHeight + chromeHeight() : nativeWindow.maxSize.y;
-
-            nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);
-
             if (maxWidthChanged)
             {
                 maxWidthChanged = false;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.graphics
 {


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

--- frameworks/projects/mx/src/mx/effects/easing/Linear.as
+++ frameworks/projects/mx/src/mx/effects/easing/Linear.as
@@ -17,6 +17,11 @@
  *  linear motion with Flex effect classes.
  *
  *  For more information, see http://www.robertpenner.com/profmx.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class Linear
 {
@@ -41,6 +46,11 @@
      *  @param d Specifies the duration of the effect, in milliseconds.
      *
      *  @return Number corresponding to the position of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public static function easeNone(t:Number, b:Number,
 									c:Number, d:Number):Number
@@ -61,6 +71,11 @@
      *  @param d Specifies the duration of the effect, in milliseconds.
      *
      *  @return Number corresponding to the position of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public static function easeIn(t:Number, b:Number,
 								  c:Number, d:Number):Number
@@ -81,6 +96,11 @@
      *  @param d Specifies the duration of the effect, in milliseconds.
      *
      *  @return Number corresponding to the position of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public static function easeOut(t:Number, b:Number,
 								   c:Number, d:Number):Number
@@ -103,6 +123,11 @@
      *  @param d Specifies the duration of the effect, in milliseconds.
      *
      *  @return Number corresponding to the position of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	public static function easeInOut(t:Number, b:Number,
 									 c:Number, d:Number):Number


Transferred from the Adobe Open Source Subversion Repository

Revision: 18593
Author:   cframpto@adobe.com
Date:     2010-11-15T22:02:08.684719Z

Log Message:
-----------
On a dp REFRESH or RESET, if there is a caret position, it will stick to the data item if it is still in the collection and ensureCellIsVisible() will be called to keep the caret in view.  For a REFRESH, if the caret is not in the collection, the existing scroll position is maintained.  For a RESET, if the caret is not in the collection, reset the caret and scroll back up to vsp=0.  Fix a loop in ensureCellIsVisible() - a column which is not visible will never be visible.

QE notes:
Doc notes:
Bugs: SDK-28406, SDK-28456, SDK-28483
Reviewer: Hans, Kevin
Tests run: many many many cyclones
Is noteworthy for integration:

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

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -217,6 +217,13 @@

     /**
      *  @private
+     *  Cache the dataItem that goes with the caretRowIndex so we can find the
+     *  rowIndex of the caret after a collection refresh event.
+     */
+    private var caretSelectedItem:Object = null;
+
+    /**
+     *  @private
      *  True while updateDisplayList is running.  Use to disable invalidateSize(),
      *  invalidateDisplayList() here and in the GridLayer class.
      */
@@ -2886,7 +2893,7 @@
         }

         // A cell's index as defined by LayoutBase it's just its position
-        // in the row-major linear ordering of the grid's cells.
+        // in the row-major linear ordering of the grid's cells.
         const elementIndex:int = (rowIndex * columnsLength) + columnIndex;

         // Iterate until we've scrolled elementIndex at least partially into view.
@@ -2897,8 +2904,13 @@
                 validateNow();
             else
                 break;  // fixed row heights, and we're only scrolling vertically
-        }
-        while(!isCellVisible(rowIndex, columnIndex))
+
+            // After a validate, if there isn't at least one visible row and
+            // one visible column, bail!
+            if (getVisibleRowIndices().length == 0 || getVisibleColumnIndices().length == 0)
+                return;
+        }
+        while (!isCellVisible(scrollVertically ? rowIndex : -1, scrollHorizontally ? columnIndex : -1));

         // At this point we've only ensured that the requested cell is at least
         // partially visible.  Ensure that it's completely visible.
@@ -3259,9 +3271,14 @@
                 caretRowIndex = _dataProvider.length - 1;
             if (_columns && caretColumnIndex >= _columns.length)
                 caretColumnIndex =  _columns.length - 1;
+
+            caretSelectedItem =
+                _dataProvider && _caretRowIndex >= 0 ?
+                _dataProvider.getItemAt(_caretRowIndex) : null;
+
             dispatchCaretChangeEvent();
-            caretChanged = false;
-        }
+            caretChanged = false;
+         }
     }

     /**
@@ -3565,8 +3582,8 @@
         const oldCaretRowIndex:int = caretRowIndex;
         const location:int = event.location;
         var itemsLength:int;
-
-        // this should stay in sync with updateCaretForColumnsChange
+        var newCaretRowIndex:int;
+
         switch (event.kind)
         {
             case CollectionEventKind.ADD:
@@ -3598,14 +3615,65 @@
             case CollectionEventKind.REPLACE:
             case CollectionEventKind.UPDATE:
                 break;
-
+
             case CollectionEventKind.REFRESH:
+            {
+                newCaretRowIndex =
+                            caretSelectedItem ?
+                            _dataProvider.getItemIndex(caretSelectedItem) : -1;
+
+                // Caret sticks to item if possible and ensure it is totally
+                // visible by scrolling vertically if necessary.
+                if (newCaretRowIndex != -1)
+                {
+                    caretRowIndex = newCaretRowIndex;
+                    ensureCellIsVisible(caretRowIndex, -1);
+                }
+                else
+                {
+                    // No caret.  Maintain the existing scroll position if
+                    // within the current data.
+
+                    var oldVsp:int = verticalScrollPosition;
+
+                    validateNow();
+
+                    // If variable row heights the height is
+                    // approximate so the scroll position may not be
+                    // in exactly the same place.
+
+                    const cHeight:Number = Math.ceil(gridDimensions.getContentHeight());
+                    const maximum:int = Math.max(cHeight - height, 0);
+                    verticalScrollPosition = (oldVsp > maximum) ? maximum : oldVsp;
+                }
+                break;
+            }
+
             case CollectionEventKind.RESET:
-                initializeCaretPosition();
-                horizontalScrollPosition = 0;
-                verticalScrollPosition = 0;
+            {
+                newCaretRowIndex =
+                    caretSelectedItem ?
+                    _dataProvider.getItemIndex(caretSelectedItem) : -1;
+
+                // Caret sticks to item if possible and ensure it is totally
+                // visible by scrolling vertically if necessary.
+                if (newCaretRowIndex != -1)
+                {
+                    caretRowIndex = newCaretRowIndex;
+                    ensureCellIsVisible(caretRowIndex, -1);
+                }
+
+                // No caret item so reset caret and vsp.
+                else
+                {
+                    caretRowIndex = _dataProvider.length > 0 ? 0 : -1;
+                    verticalScrollPosition = 0;
+                }
+
                 break;
-        }
+            }
+        }
+
     }

     /**
@@ -3618,8 +3686,6 @@
         const oldCaretColumnIndex:int = caretColumnIndex;
         const location:int = event.location;
         var itemsLength:int;
-
-        // this should stay in sync with updateCaretForDataProviderChange

         switch (event.kind)
         {
@@ -3652,9 +3718,9 @@

             case CollectionEventKind.REFRESH:
             case CollectionEventKind.RESET:
-                initializeCaretPosition();
+                // maintain row position
+                caretColumnIndex = _columns && _columns.length > 0 ? 0 : -1;
                 horizontalScrollPosition = 0;
-                verticalScrollPosition = 0;
                 break;
         }
     }
@@ -3735,19 +3801,19 @@
             gridLayout.dataProviderCollectionChanged(event);

         if (gridSelection)
-            gridSelection.dataProviderCollectionChanged(event);
-
-        // ToDo:  do we need to do any scrolling to keep either the hover
-        // indicator or the caret indicator visible?
+            gridSelection.dataProviderCollectionChanged(event);
+
+        if (gridDimensions && hoverRowIndex != -1)
+            updateHoverForDataProviderChange(event);
+
+        // The data has changed so need to do this here so the grid dimensions
+        // will be accurate if setting the caret requires scrolling.
+        invalidateSize();
+        invalidateDisplayList();

         if (caretRowIndex != -1)
             updateCaretForDataProviderChange(event);
-
-        if (gridDimensions && hoverRowIndex != -1)
-            updateHoverForDataProviderChange(event);
-
-        invalidateSize();
-        invalidateDisplayList();
+
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -9,23 +9,24 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package mx.components
+package spark.components
 {
 import flash.events.KeyboardEvent;
 import flash.events.MouseEvent;
 import flash.geom.Point;
 import flash.ui.Keyboard;

-import mx.components.baseClasses.FxListBase;
+import spark.components.supportClasses.ListBase;
 import mx.core.ClassFactory;
-import mx.components.IItemRenderer;
+import spark.components.IItemRenderer;
+import spark.components.supportClasses.ItemRenderer;
 import mx.core.IVisualElement;
-import mx.events.RendererExistenceEvent;
+import spark.events.RendererExistenceEvent;
 import mx.events.FlexEvent;
-import mx.layout.HorizontalLayout;
-import mx.layout.VerticalLayout;
+import spark.layout.HorizontalLayout;
+import spark.layout.VerticalLayout;
 import mx.managers.IFocusManagerComponent;
-import mx.skins.spark.FxDefaultItemRenderer;
+import spark.skins.default.DefaultItemRenderer;

 /**
@@ -82,11 +83,11 @@
 //  Other metadata
 //--------------------------------------

-[IconFile("FxList.png")]
+[IconFile("List.png")]
 [DefaultTriggerEvent("selectionChanged")]

 /**
- *  The FxList control displays a vertical list of items.
+ *  The List control displays a vertical list of items.
  *  Its functionality is very similar to that of the SELECT
  *  form element in HTML.
  *  If there are more items than can be displayed at once, it
@@ -97,14 +98,14 @@
  *  The user can select one or more items from the list, depending
  *  on the value of the allowMultipleSelection property.
  *
- *  @includeExample examples/FxListExample.mxml
+ *  @includeExample examples/ListExample.mxml
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class FxList extends FxListBase implements IFocusManagerComponent
+public class List extends ListBase implements IFocusManagerComponent
 {
     include "../core/Version.as";

@@ -128,13 +129,13 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function FxList()
+    public function List()
     {
         super();

         // This listener handles the arrow keys.   It runs at capture time
         // so that can cancel - Event.preventDefault() - events we've processed
-        // before they're seen by the skin's FxScroller
+        // before they're seen by the skin's Scroller
         addEventListener(KeyboardEvent.KEY_DOWN, list_keyDownHandler, true);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 12327
Author:   smgilson@adobe.com
Date:     2009-12-01T18:17:23.194369Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -235,6 +235,7 @@
  *    borderVisible="true"
  *    contentBackgroundColor="0xFFFFFF"
  *    dragIndicator="ListItemDragProxy"
+ *    dropIndicatorSkin="ListDropIndicator"
  *    rollOverColor="0xCEDBEF"
  *    selectionColor="0xA8C6EE"
  *    symbolColor="0x000000"
@@ -408,7 +409,7 @@
      *  Use the hasFocusableChildren property with Flex applications.
      *  Do not use the tabChildren property.

      *
-     *
This is usually false because most components
+     *
This property is usually false because most components
      *  either receive focus themselves or delegate focus to a single
      *  internal sub-component and appear as if the component has
      *  received focus. You may choose to set this to true on a  List
@@ -1617,7 +1618,7 @@
     }

     /**
-     *  Releases the dropIndicator instance that is currently set in the layout.
+     *  Releases the dropIndicator instance that is currently set in the layout.
      *
      *  @return Returns the dropIndicator that was removed.
      *
@@ -1979,9 +1980,9 @@
      *  into view.
      *
      *  If the data item at the specified index is not completely
-     *  visible, the List will scroll until it is brought into
+     *  visible, the List scrolls until it is brought into
      *  view. If the data item is already in view, no additional
-     *  scrolling will occur.
+     *  scrolling occurs.
      *
      *  @param index The index of the data item.
      *
@@ -2159,9 +2160,9 @@
     /**
      *  Tries to find the next item in the data provider that
      *  starts with the character in the eventCode parameter.
-     *  You can override this to do fancier typeahead lookups. The search
-     *  starts at the selectedIndex location; if it reaches
-     *  the end of the data provider it starts over from the beginning.
+     *  You can override this method to perform custom typeahead lookups.
+     *  The search starts at the selectedIndex location.
+     *  If it reaches the end of the data provider, it starts over from the beginning.
      *
      *  @param eventCode The key that was pressed on the keyboard.
      *  @return true if a match was found.
@@ -2183,8 +2184,8 @@
     /**
      *  Finds an item in the list based on a String,
      *  and moves the selection to it. The search
-     *  starts at the selectedIndex location; if it reaches
-     *  the end of the data provider it starts over from the beginning.
+     *  starts at the selectedIndex location.
+     *  If it reaches the end of the data provider, it starts over from the beginning.
      *
      *  @param str The String to match.
      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 16737
Author:   rfrishbe@adobe.com
Date:     2010-06-30T05:59:18.451053Z

Log Message:
-----------
Fixing a few bugs around list selection and improving the user interaction.

FXM-59:  we weren't properly selecting an item after the first one was selected.

FXM-43: if selecting the item causes a view transition that the first view gets validated before the transition occurs.

Improved user interaction by visually de-selecting the selected item if another one is possibly selected (we don't know if it's a scroll or a selection until mouseup, but we provide visual clues along the way for the user)

QE notes: None
Doc notes: None
Bugs: FXM-43, FXM-59
Reviewer: Chiedo code reviewed the view transition issue--the rest will be code reviewed later
Tests run: checkintests, mustella List/ListDND (some mustella failed for me but the same failed on a clean build on my machine)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -547,6 +547,9 @@
      *  If true multiple selection is enabled.
      *  When switched at run time, the current selection
      *  is cleared.
+     *
+     *  This should not be turned on when inputMode
+     *  is touch.
      *
      *  @default false
      *
@@ -1190,8 +1193,10 @@
     {
         if (getStyle("inputMode") == "touch")
         {
-            if (pendingSelectionOnMouseUp && mouseDownIndex == index && mouseDownSelectTimer && !mouseDownSelectTimer.running)
-                return true;
+            // if we could be selecting, only show selection for that one item...don't even show
+            // it for the actual selectedIndex
+            if (pendingSelectionOnMouseUp && mouseDownSelectTimer && !mouseDownSelectTimer.running)
+                return mouseDownIndex == index;
         }

         return isItemIndexSelected(index);
@@ -1628,6 +1633,12 @@
         {
             // select item visually now
             itemSelected(mouseDownIndex, true);
+
+            // deselect old selected item
+            if (selectedIndex != NO_SELECTION)
+            {
+                itemSelected(selectedIndex, false);
+            }
         }
     }

@@ -1690,7 +1701,7 @@
             {
                 setSelectedIndices(calculateSelectedIndices(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey), true);
             }
-            else if (getStyle("inputMode") == "touch" && selectedIndex == NO_SELECTION)
+            else if (getStyle("inputMode") == "touch")
             {
                 setSelectedIndex(mouseDownIndex, true);
             }
@@ -1978,9 +1989,19 @@
             mouseDownCancelledFromScroll = true;

             // remove visual selection indicator
-            mouseDownSelectTimer.stop();
+            if (mouseDownSelectTimer)
+                mouseDownSelectTimer.stop();
             mouseDownSelectTimer = null;
+
+            // unselect what we thought was selected
             itemSelected(mouseDownIndex, false);
+
+            // reselect what actually is selected
+            if (selectedIndex != NO_SELECTION)
+            {
+                itemSelected(selectedIndex, true);
+            }
+
             mouseDownIndex = -1;
             mouseDownPoint = null;
             pendingSelectionOnMouseUp = false;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17966
Author:   clucier@adobe.com
Date:     2010-09-30T20:28:43.233959Z

Log Message:
-----------
labelField now special cases the empty string to mean that no label value will be obtained from the associated data.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/LabelUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>

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

--- frameworks/projects/spark/src/spark/utils/LabelUtil.as
+++ frameworks/projects/spark/src/spark/utils/LabelUtil.as
@@ -12,6 +12,8 @@
 package spark.utils
 {

+import  mx.core.FlexVersion;
+
 /**
  *  The LabelUtil class is used by components to determine the correct
  *  text to display for their renderers or sub-parts.
@@ -46,7 +48,9 @@
      *
      *  @param item The data item. Null items return the empty string.
      *
-     *  @param labelField The field in the data item to return.
+     *  @param labelField The field in the data item to return. If labelField is set
+     *  to an empty string (""), no field will be considered on the data item
+     *  to represent label.
      *
      *  @param labelFunction A function that takes the data item
      *  as a single parameter and returns a String.
@@ -98,6 +102,10 @@
         if (item is String)
             return String(item);

+        // special case for empty labelField
+        if (labelField == "" && FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
+            return "";
+
         try
         {
             if (item !== null)


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

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

 package mx.effects.effectClasses
 {


Fix for localToWorld update when every parent transform has hasChanged to true but the localToWorld of the node is not up to date.

--- src/aerys/minko/scene/controller/TransformController.as
+++ src/aerys/minko/scene/controller/TransformController.as
@@ -221,7 +221,7 @@
                 childLocalToWorld
                     .copyFrom(childTransform)
                     .append(localToWorld);
-
+
                 if (childFlags & FLAG_LOCK_TRANSFORMS)
                     childLocalToWorld.unlock();

@@ -257,16 +257,16 @@

         private function updateAncestorsAndSelfLocalToWorld(nodeId : uint) : void
         {
-            var dirtyRoot   : int           = -1;
+           	//var dirtyRoot   : int           = -1;
             var tmpNodeId   : int           = nodeId;
             var path        : Vector.<uint> = new <uint>[];
             var numNodes    : uint          = 0;

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

                 path[numNodes] = tmpNodeId;
                 ++numNodes;
@@ -274,9 +274,9 @@
                 tmpNodeId = _parentId[tmpNodeId];
             }

-            if (dirtyRoot >= 0)
+            //if (dirtyRoot >= 0)
                 updateLocalToWorldPath(path);
-//                updateLocalToWorld(dirtyRoot, nodeId);
+			//updateLocalToWorld(dirtyRoot, nodeId);
         }

         private function targetAddedHandler(ctrl	: TransformController,


A package should not depend on classes defined in itself.

--- src/com/epolyakov/linkreportanalyzer/data/LinkReport.as
+++ src/com/epolyakov/linkreportanalyzer/data/LinkReport.as
@@ -207,19 +207,21 @@
 				packageDefinition.children.push(childDefinition);
 				packageDefinition.isExternal &&= childDefinition.isExternal;
 			}
-			addDefinitionVector(packageDefinition.dependencies, classDefinition.dependencies);
-			addDefinitionVector(packageDefinition.prerequisites, classDefinition.prerequisites);
+			addPackageDependencies(packageDefinition.id, packageDefinition.dependencies, classDefinition.dependencies);
+			addPackageDependencies(packageDefinition.id, packageDefinition.prerequisites, classDefinition.prerequisites);

 			packageDefinition.size += classDefinition.size;
 			packageDefinition.optimizedSize += classDefinition.optimizedSize;
 			packageDefinition.modified = Math.max(packageDefinition.modified, classDefinition.modified);
 		}

-		private function addDefinitionVector(existing:Vector.<Definition>, additional:Vector.<Definition>):void
+		private function addPackageDependencies(packageId:String, existing:Vector.<Definition>,
+												additional:Vector.<Definition>):void
 		{
 			for each (var d:Definition in additional)
 			{
-				if (existing.indexOf(d) < 0)
+				// Ad only new definitions from other packages
+				if (existing.indexOf(d) < 0 && d.id.indexOf(packageId) < 0)
 				{
 					existing.push(d);
 				}


Some documentation.

Some documentation.

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

--- src/as/com/threerings/util/ClassUtil.as
+++ src/as/com/threerings/util/ClassUtil.as
@@ -27,11 +27,17 @@

 public class ClassUtil
 {
+    /**
+     * Get the full class name, e.g. "com.threerings.util.ClassUtil".
+     */
     public static function getClassName (obj :Object) :String
     {
         return getQualifiedClassName(obj).replace("::", ".");
     }

+    /**
+     * Get the class name with the last part of the package, e.g. "util.ClassUtil".
+     */
     public static function shortClassName (obj :Object) :String
     {
         var s :String = getQualifiedClassName(obj);
@@ -40,6 +46,9 @@
         return s.replace("::", ".");
     }

+    /**
+     * Get just the class name, e.g. "ClassUtil".
+     */
     public static function tinyClassName (obj :Object) :String
     {
         var s :String = getClassName(obj);


adjust whether to build with hHiPE support

--- otp.replace.as
+++ otp.replace.as
@@ -46,6 +46,12 @@
 . "$LOCAL_ENV_DIR/otp.install.base"
 . "$LOCAL_ENV_DIR/otp.source.version"

+if [[ $otp_vsn_major -gt 16 ]]
+then
+    hipe_modes='false true'
+else
+    hipe_modes='false'
+fi
 arch_flags='-m64 -march=core2 -mcx16'
 arch_flags='-m64 -march=native -mcx16'
 case "$os_type" in
@@ -55,6 +61,7 @@
         ccands='icc /usr/bin/cc gcc cc'
         cccands='/usr/bin/c++ g++ c++'
         config_os='--enable-darwin-64bit --with-cocoa'
+        hipe_modes='false'
         ;;
     linux )
         ccands='icc gcc cc'
@@ -118,14 +125,14 @@
 PATH="$ERL_TOP/bin:$PATH"
 export  ERL_TOP PATH

-for hipe in false true
+for hipe in $hipe_modes
 do
     if $hipe
     then
-        otp_label="$otp_name-h1"
+        otp_label="${otp_name}h"
         hipe_flag='--enable-hipe'
     else
-        otp_label="$otp_name-h0"
+        otp_label="$otp_name"
         hipe_flag='--disable-hipe'
     fi
     otp_dest="$otp_install_base/$otp_label"


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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22355
Author:   mijordan@adobe.com
Date:     2011-09-01T17:21:00.555844Z

Log Message:
-----------
Fix for SDK-30749 Modal popup do not behave in a modal fashion.

The fix prevents content underneath a modal pop-up from being voiced by a screen reader.  The fix also removes redundant code from AlertAccImpl that caused issues with Alerts launched by sub-applications under the Marshall Plan.

QE notes: Must be verified manually with a screen reader or other MSAA client.
Doc notes:
Bugs:  SDK-30749
Reviewer:  Max Vujovic, Carol
Tests run: checkin, mustella
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/accessibility/AlertAccImpl.as</path>

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

--- frameworks/projects/mx/src/mx/accessibility/AlertAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/AlertAccImpl.as
@@ -167,10 +167,6 @@
 			{
 				titleBar = Alert(master).getTitleBar();

-				systemManager.document.accessibilityProperties.silent = false;
-
-				Accessibility.updateProperties();
-
 				Accessibility.sendEvent(titleBar,0,AccConst.EVENT_SYSTEM_DIALOGEND);
 				Accessibility.sendEvent(titleBar,0,AccConst.EVENT_OBJECT_REORDER);
 				Accessibility.sendEvent(titleBar,0,AccConst.EVENT_OBJECT_DESTROY);
@@ -186,12 +182,6 @@

 			case "creationComplete":
 			{
-				if (!systemManager.document.accessibilityProperties)
-				{
-					systemManager.document.accessibilityProperties = new AccessibilityProperties();
-				}
-				systemManager.document.accessibilityProperties.silent = true;
-
 				master.$visible = true;

 				titleBar = Alert(master).getTitleBar();
@@ -200,8 +190,6 @@
 				Alert(master).alertForm.textField.tabIndex = 0;

    				UIComponent(titleBar).$visible = true;
-
-				Accessibility.updateProperties();

 				Accessibility.sendEvent(titleBar, 0, AccConst.EVENT_SYSTEM_DIALOGSTART);
 				Accessibility.sendEvent(titleBar, 0, AccConst.EVENT_OBJECT_REORDER);


Transferred from the Adobe Open Source Subversion Repository

Revision: 12784
Author:   hmuller@adobe.com
Date:     2009-12-10T15:32:14.762242Z

Log Message:
-----------
Added >= 1.0 metadata for Power exponent property.

QE notes:
Doc notes:
Bugs: sdk-24594
Reviewer: Chet
Tests run:
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as

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

--- frameworks/projects/spark/src/spark/effects/easing/Power.as
+++ frameworks/projects/spark/src/spark/effects/easing/Power.as
@@ -52,14 +52,15 @@
      *  @productversion Flex 4
      */
     private var _exponent:Number;
+
+    [Inspectable(minValue="1.0")]
+
     /**
      *  The exponent used in the easing calculation.
      *  The higher the value of the exponent property,
      *  the greater the acceleration and deceleration.
      *  For example, to get quadratic behavior, set exponent to 2.
      *  To get cubic behavior, set exponent to 3.
-     *  A value of 1 represents linear motion, and a value of 0
-     *  returns 1 from the ease() method.
      *
      *  @default 2
      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 4030
Author:   clucier@adobe.com
Date:     2008-11-06T18:54:43.093125Z

Log Message:
-----------
Addressing a few FxAnimateFilter bugs.
Doc Notes: None
Bugs: None
Reviewer: Chet

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/ShaderFilter.as</path>

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

--- frameworks/projects/spark/src/spark/filters/ShaderFilter.as
+++ frameworks/projects/spark/src/spark/filters/ShaderFilter.as
@@ -372,6 +372,21 @@

     /**
      * @private
+     * Required to support property 'in' operator.
+     */
+    override flash_proxy function hasProperty(name:*):Boolean
+    {
+        if (!_shader || !name || name == "")
+            return false;
+
+        var index:int = name.indexOf("_");
+        var prefix:String = (index > 0) ? name.substring(0, index) : name;
+
+        return (name in _shader || name in _shader.data || prefix in _shader.data);
+    }
+
+    /**
+     * @private
      * Apply our queued properties once our shader instance has
      * been constructed and initialized from its bytecode.
      */
@@ -423,7 +438,7 @@
                 var index:int = indexForDimension(propertyInfo.type, dimension);
                 if (index != -1)
                 {
-                    var currentValue:Array = propertyInfo.value;
+                    var currentValue:Array = propertyInfo.value ? propertyInfo.value : new Array();
                     currentValue[index] = value;
                     propertyInfo.value = currentValue;
                     return;


Remove unused fields (ServiceDirectoryBuilder).

--- src/com/esri/builder/components/serviceBrowser/supportClasses/ServiceDirectoryBuilder.as
+++ src/com/esri/builder/components/serviceBrowser/supportClasses/ServiceDirectoryBuilder.as
@@ -50,9 +50,6 @@

     private static const DEFAULT_REQUEST_TIMEOUT_IN_SECONDS:Number = 10;

-    private var count:int;
-    private var searchType:String;
-
     private var serviceDirectoryBuildRequest:ServiceDirectoryBuildRequest;
     private var hasCrossDomain:Boolean;
     private var crossDomainRequest:HTTPService;


Update in setting the target of CommandBinding.

--- actionscript-cafe/src/main/flex/org/servebox/cafe/core/command/CommandBinding.as
+++ actionscript-cafe/src/main/flex/org/servebox/cafe/core/command/CommandBinding.as
@@ -13,8 +13,6 @@
 		private var _command : ICommand;

 		private var _target : IEventDispatcher;
-
-		private var _triggerEvents : String;

 		private var _arTriggerEvents : Array;

@@ -66,38 +64,52 @@

 		public function set target(value:IEventDispatcher):void
 		{
-			clearEvents();
+            clearEvents( _target );
 			_target = value;
+            replaceEvents();
 			dispatchEvent( new Event("target_Change") );
-			for each( var e : String in _arTriggerEvents )
-			{
-				_target.addEventListener( e, triggerFired );
-			}
+
 		}

 		[Bindable]
 		public function get triggerEvents():String
 		{
-			return _triggerEvents;
+            if (_arTriggerEvents == null)
+            {
+               _arTriggerEvents = [];
+            }
+			return _arTriggerEvents.join(",");
 		}

 		public function set triggerEvents(value:String):void
 		{
-			clearEvents();
-			_triggerEvents = value;
 			_arTriggerEvents = value.split(",");
+            replaceEvents();
 		}

-		private function clearEvents() : void
+		private function replaceEvents() : void
+        {
+            clearEvents();
+            if( _target != null )
+            {
+                for each( var e : String in _arTriggerEvents )
+                {
+                    _target.addEventListener( e, triggerFired );
+                }
+            }
+        }
+
+		private function clearEvents( targetOverride : IEventDispatcher = null) : void
 		{
-			if( _target == null )
+            var t : IEventDispatcher = ( targetOverride != null ? targetOverride : _target);
+			if( t == null )
 			{
 				// The target invoker is not set, no need to clear the events.
 				return;
 			}
 			for each( var e : String in _arTriggerEvents )
 			{
-				_target.removeEventListener( e, triggerFired );
+				t.removeEventListener( e, triggerFired );
 			}
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

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

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

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

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

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

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

--- frameworks/projects/advancedgrids/src/mx/collections/Grouping.as
+++ frameworks/projects/advancedgrids/src/mx/collections/Grouping.as
@@ -0,0 +1,324 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections
+{
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[DefaultProperty("fields")]
+
+/**
+ *  The Grouping class defines the fields in the data provider of
+ *  the AdvancedDataGrid control used to group data. You use this
+ *  class to create groups when the input data to the AdvancedDataGrid control
+ *  has a flat structure.
+ *
+ *
To populate the AdvancedDataGrid control with grouped data,
+ *  you create an instance of the GroupingCollection class from your flat data,
+ *  and then pass that GroupingCollection instance to the data provider
+ *  of the AdvancedDataGrid control.
+ *  To specify the grouping fields of your flat data,
+ *  you pass a Grouping instance to
+ *  the GroupingCollection.grouping property.
+ *  The Grouping instance contains an Array of GroupingField instances,
+ *  one per grouping field.

+ *
+ *
The following example uses the Grouping class to define
+ *  two grouping fields: Region and Territory.

+ *
+ *

+ *  <mx:AdvancedDataGrid id="myADG"
+ *    <mx:dataProvider>
+ *      <mx:GroupingCollection id="gc" source="{dpFlat}">
+ *        <mx:grouping>
+ *          <mx:Grouping>
+ *            <mx:GroupingField name="Region"/>
+ *            <mx:GroupingField name="Territory"/>
+ *          </mx:Grouping>
+ *        </mx:grouping>
+ *      </mx:GroupingCollection>
+ *    </mx:dataProvider>
+ *
+ *    <mx:columns>
+ *      <mx:AdvancedDataGridColumn dataField="Region"/>
+ *      <mx:AdvancedDataGridColumn dataField="Territory"/>
+ *      <mx:AdvancedDataGridColumn dataField="Territory_Rep"/>
+ *      <mx:AdvancedDataGridColumn dataField="Actual"/>
+ *      <mx:AdvancedDataGridColumn dataField="Estimate"/>
+ *    </mx:columns>
+ *  </mx:AdvancedDataGrid>
+ *

+ *
+ *  @mxml
+ *
+ *  The <mx.Grouping> tag defines the following tag attributes:

+ *
+ *

+ *  <mx:Grouping
+ *  Properties
+ *    compareFunction="No default"
+ *    fields="null"
+ *    groupingObjectFunction="No default"
+ *    label="GroupLabel"
+ *  />
+ *

+ *
+ *  @see mx.controls.AdvancedDataGrid
+ *  @see mx.collections.GroupingCollection
+ *  @see mx.collections.GroupingField
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class Grouping
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function Grouping():void
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //---------------------------------
+    //  label
+    //---------------------------------
+
+    /**
+     *  The name of the field added to the flat data
+     *  to create the hierarchy.
+     *  The value of the top nodes (nodes representing the group fields)
+     *  in every group will be represented
+     *  by this property.
+     *  Use this property to specify a different name.
+     *
+     *  @default GroupLabel
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var label:String = "GroupLabel";
+
+    //---------------------------------
+    //  compareFunction
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the compareFunction property.
+     */
+    private var _compareFunction:Function;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The method used to compare items when sorting.
+     *  If you specify this property, Flex ignores any compareFunction
+     *  properties that you specify in the SortField objects that you
+     *  use in this class.
+     *
+     *
The compare function must have the following signature:

+     *

+     *     function [name](a:Object, b:Object, fields:Array=null):int

+     *
+     *
This function must return the following:

+     *

+     *
-1, if a should appear before b in
+     *        the sorted sequence.

+     *
0, if a equals b.

+     *
1, if a should appear after b in the
+     *        sorted sequence.

+     *

+     *
+     *
To return to the internal comparison function, set this value to
+     *  null.

+     *
+     *
The fields Array specifies the object fields
+     *  to compare.
+     *  Typically, the algorithm will compare properties until the field list is
+     *  exhausted or a non-zero value can be returned.
+     *  For example:

+     *
+     *

+     *    function myCompare(a:Object, b:Object, fields:Array=null):int
+     *    {
+     *        var result:int = 0;
+     *        var i:int = 0;
+     *        var propList:Array = fields ? fields : internalPropList;
+     *        var len:int = propList.length;
+     *        var propName:String;
+     *        while (result == 0 && (i < len))
+     *        {
+     *            propName = propList[i];
+     *            result = compareValues(a[propName], b[propName]);
+     *            i++;
+     *        }
+     *        return result;
+     *    }
+     *
+     *    function compareValues(a:Object, b:Object):int
+     *    {
+     *        if (a == null && b == null)
+     *            return 0;
+     *
+     *        if (a == null)
+     *          return 1;
+     *
+     *        if (b == null)
+     *           return -1;
+     *
+     *        if (a < b)
+     *            return -1;
+     *
+     *        if (a > b)
+     *            return 1;
+     *
+     *        return 0;
+     *    }

+     *
+     *
The default value is an internal compare function that can perform
+     *  a string, numeric, or date comparison in ascending or descending order,
+     *  with case-sensitive or case-insensitive string comparisons.
+     *  Specify your own function only if you need a custom comparison algorithm.
+     *  This is normally only the case if a calculated field is used in a display.

+     *
+     *
Alternatively, you can specify separate compare functions for each sort
+     *  field by using the SortField class compare property.
+     *  This way you can use the default comparison for some fields and a custom
+     *  comparison for others.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get compareFunction():Function
+    {
+        return _compareFunction;
+    }
+
+    /**
+     *  @private
+     */
+    public function set compareFunction(value:Function):void
+    {
+        _compareFunction = value;
+    }
+
+    //----------------------------------
+    //  fields
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the fields property.
+     */
+    private var _fields:Array;
+
+    [Inspectable(category="General", arrayType="mx.collections.GroupingField")]
+
+    /**
+     *  An Array of GroupingField objects that specifies the fields
+     *  used to group the data.
+     *  The order of the GroupingField objects in the Array determines
+     *  field priority order when sorting.
+     *
+     *  @default null
+     *
+     *  @see GroupingField
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get fields():Array
+    {
+        return _fields;
+    }
+
+    /**
+     *  @private
+     */
+    public function set fields(value:Array):void
+    {
+        _fields = value;
+    }
+
+    //---------------------------------
+    //  groupingObjectFunction
+    //---------------------------------
+
+    /**
+     *  A callback function to run on each group node to determine the
+     *  grouping object.
+     *  By default, a new Object will be created for group nodes.
+     *
+     *
You can supply a groupingObjectFunction that provides the
+     *  appropriate Object for group nodes.

+     *
+     *
The method signature is:

+     *

+     *  myGroupObjectFunction(label:String):Object

+     *
+     *
Where label contains the value that will be
+     *  shown for that group node.
+     *  The function returns an Object which will be used for group nodes.

+     *
+     *  For example, a groupingObjectFunction which returns an Object
+     *  containing a "name" property with value as "Bob" can be written as -
+     *

+     *  private function groupObjFunction(label:String):Object
+     *  {
+     *      var obj:Object = {};
+     *      obj.name = "Bob";
+     *
+     *      return obj;
+     *  }
+     *

+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var groupingObjectFunction:Function;
+}
+
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20661
Author:   mhorn@adobe.com
Date:     2011-03-07T21:41:06.124806Z

Log Message:
-----------
ASdoc updates

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/GlobalizationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/CollatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/SortingCollator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/MatchingCollator.as</path>

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

--- frameworks/projects/spark/src/spark/globalization/StringTools.as
+++ frameworks/projects/spark/src/spark/globalization/StringTools.as
@@ -44,6 +44,11 @@
  *  @includeExample examples/StringToolsExample.mxml
  *
  *  @see flash.globalization.StringTools
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
  */
 public class StringTools extends GlobalizationBase
 {
@@ -281,7 +286,7 @@
      *  @param s String to convert to lowercase.
      *  @return The converted lowercase string.
      *
-     *  @see StringTools
+     *  @see flash.globalization.StringTools
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.1
@@ -317,7 +322,7 @@
      *  @param s String to convert to uppercase.
      *  @return The converted uppercase string.
      *
-     *  @see StringTools
+     *  @see flash.globalization.StringTools
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.1
@@ -342,7 +347,7 @@
     }

     /**
-     *  @copy spark.globalization.SupportedClasses.CollatorBase#getAvailableLocaleIDNames
+     *  @copy spark.globalization.supportClasses.CollatorBase#getAvailableLocaleIDNames
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.1


Adding a child to UIContainer now forces updateDisplaylist too

--- src/org/openPyro/core/UIContainer.as
+++ src/org/openPyro/core/UIContainer.as
@@ -178,6 +178,7 @@
 				control.doOnAdded()
 			}
 			displayListInvalidated = true;
+			forceInvalidateDisplayList=true;
 			invalidateSize();
 			return ch;


Transferred from the Adobe Open Source Subversion Repository

Revision: 16390
Author:   clucier@adobe.com
Date:     2010-06-02T00:31:33.544783Z

Log Message:
-----------
PARB changes and bug fixes for Image and BitmapImage.

QE notes:  None
Doc notes:  None
Bugs: SDK-26596, SDK-26594, SDK-26561, SDK-26562, SDK-26567, SDK-26568, SDK-26571, SDK-26572, SDK-26575, SDK-26583, SDK-26584
Reviewer:  Ryan
Tests run:  Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/LoaderInvalidationEvent.as" copyfrom-rev="16350" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/LoaderInvalidationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/IContentLoader.as" copyfrom-rev="16350" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/IContentLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/ContentCache.as" copyfrom-rev="16350" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/ContentCache.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ImageSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/contentLoader/ContentRequest.as" copyfrom-rev="16350" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/ContentRequest.as</path>

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

--- frameworks/projects/spark/src/spark/core/ContentRequest.as
+++ frameworks/projects/spark/src/spark/core/ContentRequest.as
@@ -9,18 +9,21 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package spark.core.contentLoader
+package spark.core
 {

 import flash.display.Loader;
 import flash.display.LoaderInfo;
 import flash.events.Event;
 import flash.events.EventDispatcher;
+import flash.events.HTTPStatusEvent;
 import flash.events.IOErrorEvent;
 import flash.events.ProgressEvent;
 import flash.events.SecurityErrorEvent;
 import flash.net.URLRequest;
 import flash.system.LoaderContext;
+
+import spark.events.LoaderInvalidationEvent;

 import mx.core.mx_internal;
 use namespace mx_internal;
@@ -145,7 +148,7 @@
     /**
      * @private
      */
-    protected var _content:*;
+    protected var _content:Object;

     /**
      *  Returns reference to contained content. This
@@ -158,7 +161,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4.5
      */
-    public function get content():*
+    public function get content():Object
     {
         return _content;
     }
@@ -166,7 +169,7 @@
     /**
      * @private
      */
-    public function set content(value:*):void
+    public function set content(value:Object):void
     {
         removeLoaderListeners();
         _content = value;
@@ -180,8 +183,8 @@
     /**
      *  Read-only flag. Returns true if content is
      *  considered fully loaded and accessible.
-	 *
-	 *  @default false.
+     *
+     *  @default false.
      */
     public function get complete():Boolean
     {
@@ -211,6 +214,7 @@
             _content.addEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
             _content.addEventListener(ProgressEvent.PROGRESS, dispatchEvent);
             _content.addEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
+            _content.addEventListener(HTTPStatusEvent.HTTP_STATUS, dispatchEvent);
         }
     }

@@ -225,6 +229,7 @@
             _content.removeEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
             _content.removeEventListener(ProgressEvent.PROGRESS, dispatchEvent);
             _content.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
+            _content.removeEventListener(HTTPStatusEvent.HTTP_STATUS, dispatchEvent);
         }
     }

@@ -245,18 +250,18 @@
             removeLoaderListeners();
         }
     }
-
-	/**
-	 * @private
-	 */
-	mx_internal function content_ioErrorHandler(e:Event):void
-	{
-		if (e.target == _content)
-		{
-			if (hasEventListener(IOErrorEvent.IO_ERROR))
-				dispatchEvent(e);
-		}
-	}
+
+    /**
+     * @private
+     */
+    mx_internal function content_ioErrorHandler(e:Event):void
+    {
+        if (e.target == _content)
+        {
+            if (hasEventListener(IOErrorEvent.IO_ERROR))
+                dispatchEvent(e);
+        }
+    }

     /**
      * @private
@@ -283,4 +288,4 @@
     }

 }
-}+}


Fixing bug: now correctly writing lengths for outgoing messages longer than 125 bytes.

--- AS3WebSocket/src/com/worlize/websocket/WebSocketFrame.as
+++ AS3WebSocket/src/com/worlize/websocket/WebSocketFrame.as
@@ -226,6 +226,14 @@
 				// encode the length directly into the two-byte frame header
 				secondByte |= (_length & 0x7F);
 			}
+			else if (_length > 125 && _length <= 0xFFFF) {
+				// Use 16-bit length
+				secondByte |= 126;
+			}
+			else if (_length > 0xFFFF) {
+				// Use 64-bit length
+				secondByte |= 127;
+			}

 			// build the frame header
 			frameHeader.writeByte(firstByte);


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

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

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 11095
Author:   eitan@ascender.com
Date:     2009-10-22T23:34:03.596935Z

Log Message:
-----------
Added changes in spark components to use AccImpl.

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/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/ButtonBar.as
+++ frameworks/projects/spark/src/spark/components/ButtonBar.as
@@ -38,6 +38,8 @@
 use namespace mx_internal;  //ListBase and List share selection properties that are mx_internal

 [IconFile("ButtonBar.png")]
+
+[AccessibilityClass(implementation="spark.accessibility.ButtonBarAccImpl")]

 /**
  *  The ButtonBar control defines a horizontal group of
@@ -109,6 +111,17 @@

     //--------------------------------------------------------------------------
     //
+    //  Class mixins
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Placeholder for mixin by ButtonBarAccImpl.
+     */
+    mx_internal static var createAccessibilityImplementation:Function;
+    //--------------------------------------------------------------------------
+    //
     //  Constructor
     //
     //--------------------------------------------------------------------------
@@ -377,6 +390,18 @@

         super.setCurrentCaretIndex(value);
     }
+
+     /**
+     *  @private
+     *  Called by the initialize() method of UIComponent
+     *  to hook in the accessibility code.
+     */
+    override protected function initializeAccessibility():void
+    {
+        if (createAccessibilityImplementation != null)
+            createAccessibilityImplementation(this);
+    }
+

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