Transferred from the Adobe Open Source Subversion Repository

Revision: 3057
Author:   jimurphy@adobe.com
Date:     2008-09-02T15:18:38.819662Z

Log Message:
-----------
Merged 3.0.x revisions [2966,2969,2995,3004,3018-3019,3023,3029-3030,3046,3049,3052] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ModalWindowRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/PopUpRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/DividedBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SizeRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/InterManagerRequest.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterManagerRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FocusRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/dividedBoxClasses/BoxDivider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootDragEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/SandboxMouseEvent.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxMouseEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/EventUtil.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootMouseEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeRequest.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ComboBox.as
+++ frameworks/projects/mx/src/mx/controls/ComboBox.as
@@ -46,7 +46,7 @@
 import mx.events.FlexEvent;
 import mx.events.FlexMouseEvent;
 import mx.events.ListEvent;
-import mx.events.SandboxRootMouseEvent;
+import mx.events.SandboxMouseEvent;
 import mx.events.ScrollEvent;
 import mx.events.ScrollEventDetail;
 import mx.managers.PopUpManager;
@@ -1535,8 +1535,8 @@

             _dropdown.addEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE, dropdown_mouseOutsideHandler);
             _dropdown.addEventListener(FlexMouseEvent.MOUSE_WHEEL_OUTSIDE, dropdown_mouseOutsideHandler);
-            _dropdown.addEventListener(SandboxRootMouseEvent.MOUSE_DOWN_SOMEWHERE, dropdown_mouseOutsideHandler);
-            _dropdown.addEventListener(SandboxRootMouseEvent.MOUSE_WHEEL_SOMEWHERE, dropdown_mouseOutsideHandler);
+            _dropdown.addEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE, dropdown_mouseOutsideHandler);
+            _dropdown.addEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE, dropdown_mouseOutsideHandler);

             if (_dropdown.parent == null)  // was popped up then closed
                 PopUpManager.addPopUp(_dropdown, this);
@@ -1810,7 +1810,7 @@
                 close(event);
             }
         }
-        else if (event is SandboxRootMouseEvent)
+        else if (event is SandboxMouseEvent)
         {
             close(event);
         }
@@ -2050,8 +2050,8 @@
         {
             _dropdown.removeEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE, dropdown_mouseOutsideHandler);
             _dropdown.removeEventListener(FlexMouseEvent.MOUSE_WHEEL_OUTSIDE, dropdown_mouseOutsideHandler);
-            _dropdown.removeEventListener(SandboxRootMouseEvent.MOUSE_DOWN_SOMEWHERE, dropdown_mouseOutsideHandler);
-            _dropdown.removeEventListener(SandboxRootMouseEvent.MOUSE_WHEEL_SOMEWHERE, dropdown_mouseOutsideHandler);
+            _dropdown.removeEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE, dropdown_mouseOutsideHandler);
+            _dropdown.removeEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE, dropdown_mouseOutsideHandler);

             PopUpManager.removePopUp(_dropdown);
             _dropdown = null;


Transferred from the Adobe Open Source Subversion Repository

Revision: 807
Author:   mhorn@adobe.com
Date:     2008-03-13T20:42:31.384362Z

Log Message:
-----------
Many minor ASDoc updates.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ComboBox.as
+++ frameworks/projects/mx/src/mx/controls/ComboBox.as
@@ -798,7 +798,7 @@
         if (value >= 0)
             selectionChanged = true;

-		implicitSelectedIndex = false;
+        implicitSelectedIndex = false;
         invalidateDisplayList();

         // value committed event needs the text to be set
@@ -905,7 +905,7 @@
         dispatchEvent(new Event("dropdownFactoryChanged"));
     }

-	//----------------------------------
+    //----------------------------------
     //  dropDownStyleFilters
     //----------------------------------

@@ -915,9 +915,9 @@
      *  @see mx.styles.StyleProxy
      *  @review
      */
-	protected function get dropDownStyleFilters():Object
-	{
-    	return null;
+    protected function get dropDownStyleFilters():Object
+    {
+        return null;
     }

     //----------------------------------
@@ -1288,7 +1288,7 @@
         if (collectionChanged)
         {
             if (selectedIndex == -1 && implicitSelectedIndex && _prompt == null)
-            	selectedIndex = 0;
+                selectedIndex = 0;
             selectedIndexChanged = true;
             collectionChanged = false;
         }
@@ -1319,6 +1319,8 @@
      *  labelField property, returns the contents of the property.

      *
If the item has a label property, returns its value.

      *

+     *
+     *  @param item The object that contains the value to convert to a label. If the item is null, this method returns the empty string.
      */
     public function itemToLabel(item:Object):String
     {
@@ -1414,7 +1416,7 @@
         {
             var dropDownStyleName:String = getStyle("dropDownStyleName");
             if (dropDownStyleName == null )
-				dropDownStyleName = getStyle("dropdownStyleName");
+                dropDownStyleName = getStyle("dropdownStyleName");

             _dropdown = dropdownFactory.newInstance();
@@ -1425,25 +1427,25 @@
             if (itemRenderer)
                 _dropdown.itemRenderer = itemRenderer;

-			if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
-			{
-            	_dropdown.styleName = this;
-   			}
+            if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
+            {
+                _dropdown.styleName = this;
+            }

             if (dropDownStyleName)
             {
-            	if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
-            	{
-	                var styleDecl:CSSStyleDeclaration =
-	                    StyleManager.getStyleDeclaration("." + dropDownStyleName);
-
-	                if (styleDecl)
-	                    _dropdown.styleDeclaration = styleDecl;
-             	}
-             	else
-             	{
-             		_dropdown.styleName = dropDownStyleName;
-             	}
+                if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
+                {
+                    var styleDecl:CSSStyleDeclaration =
+                        StyleManager.getStyleDeclaration("." + dropDownStyleName);
+
+                    if (styleDecl)
+                        _dropdown.styleDeclaration = styleDecl;
+                }
+                else
+                {
+                    _dropdown.styleName = dropDownStyleName;
+                }
             }
             else if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_3_0)
             {
@@ -1664,7 +1666,7 @@
     //  Overridden event handlers
     //
     //--------------------------------------------------------------------------
-	private var implicitSelectedIndex:Boolean = false;
+    private var implicitSelectedIndex:Boolean = false;
     /**
      *  @private
      */
@@ -1684,11 +1686,11 @@
             {
                 // Special case: Empty dataProvider.
                 if (!selectedIndexChanged && !selectedItemChanged)
-				{
-					super.selectedIndex = -1;
-					implicitSelectedIndex = true;
-					invalidateDisplayList();
-				}
+                {
+                    super.selectedIndex = -1;
+                    implicitSelectedIndex = true;
+                    invalidateDisplayList();
+                }
                 // if the combobox is non-editable remove the text
                 // we don't want to remove the text if it is editable as user might
                 // have typed something.


Stop RTE with DataGrid inside ViewStack

Stop RTE with DataGrid inside ViewStack

--- frameworks/projects/mx/src/mx/controls/DataGrid.as
+++ frameworks/projects/mx/src/mx/controls/DataGrid.as
@@ -3589,6 +3589,10 @@
     protected function drawVerticalLine(s:Sprite, colIndex:int, color:uint, x:Number):void
     {
         var contentHolder:ListBaseContentHolder = s.parent.parent as ListBaseContentHolder;
+
+		if (isNaN(contentHolder.height))
+			return;
+
         //draw our vertical lines
         var g:Graphics = s.graphics;
         g.lineStyle();


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/rpc/src/mx/utils/HexEncoder.as
+++ frameworks/projects/rpc/src/mx/utils/HexEncoder.as
@@ -0,0 +1,174 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-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.utils
+{
+
+import flash.utils.ByteArray;
+
+
+[ExcludeClass]
+
+/**
+ *  Documentation is not currently available.
+ *  Ported to ActionScript from flex/messaging/util/Hex.java
+ *  @private
+ */
+public class HexEncoder
+{
+    /**
+     *  @private
+     *  Set encodingStyle to this value to encode using upper case 'A'-'F'.
+     */
+    public static const UPPER_CASE:String = "upper";
+
+    /**
+     *  @private
+     *  Set encodingStyle to this value to encode using lower case 'a'-'f'.
+     */
+    public static const LOWER_CASE:String = "lower";
+
+    /**
+     *  @private
+     *  The default encoding style for all HexEncoders.
+     */
+    public static var encodingStyle:String = UPPER_CASE;
+
+    /**
+     *  @private
+     *  Constructor.
+     */
+    public function HexEncoder()
+    {
+        super();
+        _buffers = [];
+        _buffers.push([]);
+    }
+
+    /**
+     *  @private
+     *  The encoding style for this HexEncoder instance.
+     *  If not set, the default static encodingStyle is used.
+     */
+    public var encodingStyle:String;
+
+    /**
+     *  @private
+     */
+    public function encode(data:ByteArray, offset:uint = 0, length:uint = 0):void
+    {
+        if (length == 0)
+            length = data.length;
+
+        if (offset < length)
+        {
+            data.position = offset;
+        }
+
+        var style:String = (this.encodingStyle != null) ? this.encodingStyle : HexEncoder.encodingStyle;
+        // Validate style; coerce invalid values to UPPER.
+        if (style != UPPER_CASE && style != LOWER_CASE)
+            style = UPPER_CASE;
+
+        var digits:Array = (style == UPPER_CASE) ? UPPER_CHAR_CODES : LOWER_CHAR_CODES;
+
+        while (data.bytesAvailable > 0)
+        {
+            encodeBlock(data.readByte(), digits);
+        } // while
+    }
+
+    /**
+     *  @private
+     */
+    public function drain():String
+    {
+        var result:String = "";
+
+        for (var i:uint = 0; i < _buffers.length; i++)
+        {
+            var buffer:Array = _buffers[i] as Array;
+            result += String.fromCharCode.apply(null, buffer);
+        }
+
+        _buffers = [];
+        _buffers.push([]);
+
+        return result;
+    }
+
+    /**
+     *  @private
+     */
+    public function flush():String
+    {
+        return drain();
+    }
+
+    /**
+     *  @private
+     */
+    private function encodeBlock(_work:int, digits:Array):void
+    {
+        var currentBuffer:Array = _buffers[_buffers.length - 1] as Array;
+        if (currentBuffer.length >= MAX_BUFFER_SIZE)
+        {
+            currentBuffer = [];
+            _buffers.push(currentBuffer);
+        }
+
+        currentBuffer.push(digits[(_work & 0xF0) >>> 4]);
+        currentBuffer.push(digits[(_work & 0x0F)]);
+    }
+
+    /**
+     *  An Array of buffer Arrays.
+     *  @private
+     */
+    private var _buffers:Array;
+
+    /**
+     *  @private
+     */
+    private var _work:int = 0;
+
+    /**
+     * This value represents a safe number of characters (i.e. arguments) that
+     * can be passed to String.fromCharCode.apply() without exceeding the AVM+
+     * stack limit.
+     *
+     * @private
+     */
+    private static const MAX_BUFFER_SIZE:uint = 65535;
+
+    /*
+        '0', '1', '2', '3', '4', '5', '6', '7',
+        '8', '9', 'A', 'B', 'C', 'D', 'E', 'F',
+     */
+    private static const UPPER_CHAR_CODES:Array =
+    [
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 65, 66, 67, 68, 69, 70,
+    ];
+
+    /*
+        '0', '1', '2', '3', '4', '5', '6', '7',
+        '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'
+     */
+    private static const LOWER_CHAR_CODES:Array =
+    [
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 97, 98, 99, 100, 101, 102
+    ];
+
+}
+
+}


qnd: v3.6.4

qnd: v3.6.4

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@82926 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- kdp3Lib/src/com/kaltura/kdpfl/ApplicationFacade.as
+++ kdp3Lib/src/com/kaltura/kdpfl/ApplicationFacade.as
@@ -31,7 +31,7 @@
 		/**
 		 * The current version of the KDP.
 		 */
-		public var kdpVersion : String = "v3.6.3";
+		public var kdpVersion : String = "v3.6.4";

 		/**
 		 * save any mediator name that is registered to this array in order to delete at any time


added error message for date columns that do not conform to a single date format.

--- WeaveData/src/weave/data/AttributeColumns/DateColumn.as
+++ WeaveData/src/weave/data/AttributeColumns/DateColumn.as
@@ -54,7 +54,6 @@
 		private var _stringToNumberFunction:Function = null;
 		private var _numberToStringFunction:Function = null;
 		private var _dateFormat:String = null;
-		private var _useFlascc:Boolean = true;

 		/**
 		 * @inheritDoc
@@ -102,7 +101,6 @@
 			}

 			_dateFormat = convertDateFormat_as_to_c(_dateFormat);
-			//_useFlascc = _dateFormat && _dateFormat.indexOf('%') >= 0;

 			// compile the number format function from the metadata
 			_stringToNumberFunction = null;
@@ -141,6 +139,12 @@
 			_uniqueKeys.length = 0;
 			_reportedError = false;

+			if (!_dateFormat)
+			{
+				_reportedError = true;
+				reportError(lang('No common date format could be determined from the column values. Attribute Column: {0}', Compiler.stringify(_metadata)));
+			}
+
 			// high priority because not much can be done without data
 			WeaveAPI.StageUtils.startTask(this, _asyncIterate, WeaveAPI.TASK_PRIORITY_HIGH, _asyncComplete);
 		}
@@ -160,14 +164,14 @@

 		private function parseDate(string:String):Date
 		{
-			if (_useFlascc)
+			if (_dateFormat)
 				return weave.flascc.date_parse(string, _dateFormat);
-			return StandardLib.parseDate(string, _dateFormat);
+			return new Date(string);
 		}

 		private function formatDate(value:Object):String
 		{
-			if (_useFlascc)
+			if (_dateFormat)
 				return weave.flascc.date_format(value as Date || new Date(value), _dateFormat);
 			return StandardLib.formatDate(value, _dateFormat);
 		}


fixed issue #29 in SuperTabNavigator re: relative positiong

--- src/flexlib/containers/SuperTabNavigator.as
+++ src/flexlib/containers/SuperTabNavigator.as
@@ -568,6 +568,17 @@
 				tabBar.setStyle("paddingTop", 0);
 				tabBar.setStyle("paddingBottom", 0);

+				//this is a bit of a hack. We don't want tabBar to inherit the left, right, top, or bottom
+				//styles from SuperTabNavigator. So we disable the use of left, right, top, or bottom on SuperTabBar
+				//if it's used in SuperTabNavigator
+				//fixes issue 29: http://code.google.com/p/flexlib/issues/detail?id=29
+				tabBar.setStyle("left", NaN);
+				tabBar.setStyle("right", NaN);
+				tabBar.setStyle("top", NaN);
+				tabBar.setStyle("bottom", NaN);
+
+
+
 				(tabBar as SuperTabBar).closePolicy = SuperTab.CLOSE_ROLLOVER;
 			}

@@ -800,6 +811,8 @@
 	    override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void
 	    {
+
+

 	        //We need to calculate the tab widths first, so we call super.updateDisplayList later
@@ -889,9 +902,11 @@
 				canvasWidth -= popupButton.width;
 			}

+			canvas.move(0,0);
 			canvas.width = canvasWidth;
 			canvas.height = th;
 			canvas.explicitButtonHeight = th - 1;
+			canvas.verticalScrollPolicy = ScrollPolicy.OFF;

 			if(pw <= canvasWidth) {
 				canvas.horizontalScrollPosition = 0;


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

--- frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as
+++ frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as
@@ -24,6 +24,11 @@
  *  that you can use with bindable Flex properties.
  *  These methods let you define an event handler that is executed
  *  whenever a bindable property is updated.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ChangeWatcher
 {
@@ -114,6 +119,11 @@
      *  watcher's state.
      *
      *  @see mx.events.PropertyChangeEvent
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function watch(host:Object, chain:Object,
                                  handler:Function,
@@ -154,6 +164,11 @@
      *
      *  @return true if host exposes
      *  any change events on name.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function canWatch(host:Object, name:String,
                                     commitOnly:Boolean = false):Boolean
@@ -176,6 +191,11 @@
      *
      *  @return Object of the form { eventName: isCommitting, ... }
      *  containing all change events for the property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function getEvents(host:Object, name:String,
                                      commitOnly:Boolean = false):Object
@@ -217,6 +237,11 @@
      *  @param Object to inspect.
      *
      *  @return true if Object has no properties.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private static function isEmpty(obj:Object):Boolean
     {
@@ -237,6 +262,11 @@
      *  Constructor.
      *  Not for public use. This method is called only from the watch() method.
      *  See the watch() method for parameter usage.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function ChangeWatcher(access:Object, handler:Function,
                                   commitOnly:Boolean = false,
@@ -264,30 +294,55 @@
      *  Host object.
      *  Volatile; may be reset, and will fluctuate in non-root watchers
      *  due to property value changes.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private var host:Object;

     /**
      *  Name of watched property.
      *  Nonvolatile.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private var name:String;

     /**
      *  Optional user-supplied getter function.
      *  Nonvolatile.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private var getter:Function;

     /**
      *  User-supplied event handler function.
      *  Nonvolatile.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private var handler:Function;

     /**
      *  True iff watching only committing events.
      *  Nonvolatile.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private var commitOnly:Boolean;

@@ -295,12 +350,22 @@
      *  If watching a chain, this is a watcher on the next property
      *  in the chain: next.host == host[name].
      *  Null otherwise. Nonvolatile.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private var next:ChangeWatcher;

     /**
      *  Object { <event-name>: <is-committing>, ... } for current host[name].
      *  Volatile; varies with host.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private var events:Object;

@@ -319,6 +384,11 @@
      *  is strong or weak. A strong reference (the default) prevents
      *  the host from being garbage-collected. A weak reference does
      *  not.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var useWeakReference:Boolean;

@@ -334,6 +404,11 @@
      *  You can use the reset() method to reattach
      *  the ChangeWatcher instance, or watch the same property
      *  or chain on a different host object.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function unwatch():void
     {
@@ -349,6 +424,11 @@
      *

      *
      *  @return The current value of the watched property or property chain.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getValue():Object
     {
@@ -363,6 +443,11 @@
      *  Sets the handler function.
      *
      *  @param handler The handler function. This argument must not be null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function setHandler(handler:Function):void
     {
@@ -380,6 +465,11 @@
      *
      *  @return true if each watcher in the chain is attached
      *  to at least one change event.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function isWatching():Boolean
     {
@@ -393,6 +483,11 @@
      *
      *  @param newHost The new host of the property.
      *  See the watch() method for more information.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function reset(newHost:Object):void
     {


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

--- frameworks/projects/framework/src/mx/events/EventListenerRequest.as
+++ frameworks/projects/framework/src/mx/events/EventListenerRequest.as
@@ -23,6 +23,11 @@
  *  SystemManager picks up the event and redispatches it from itself.
  *  In general, this request is generated because some other code called
  *  the addEventListener() method for one of the approved events on its SystemManager.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class EventListenerRequest extends SWFBridgeRequest
 {
@@ -36,11 +41,21 @@

 	/**
 	 *  Request to add an event listener.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const ADD_EVENT_LISTENER_REQUEST:String = "addEventListenerRequest";

 	/**
 	 *  Request to remove an event listener.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static const REMOVE_EVENT_LISTENER_REQUEST:String = "removeEventListenerRequest";

@@ -58,6 +73,11 @@
      	*  @param event The event to marshal.
      	*
      	*  @return An EventListenerRequest that defines the new event.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static function marshal(event:Event):EventListenerRequest
 	{
@@ -94,6 +114,11 @@
 	 *  @param useWeakReference Determines whether the reference to the listener is strong or weak.
 	 *
 	 *  @see flash.events.IEventDispatcher#addEventListener
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function EventListenerRequest(type:String, bubbles:Boolean = false,
 										 cancelable:Boolean = true,
@@ -131,6 +156,11 @@
      *  to addEventListener().
      *
 	 *  @see flash.events.IEventDispatcher#addEventListener
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get priority():int
 	{
@@ -151,6 +181,11 @@
      *  to addEventListener().
      *
 	 *  @see flash.events.IEventDispatcher#addEventListener
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get useCapture():Boolean
 	{
@@ -170,6 +205,11 @@
 	 *  The type of the event to listen to.
      *
 	 *  @see flash.events.Event#type
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get eventType():String
 	{
@@ -190,6 +230,11 @@
      *  to addEventListener().
      *
 	 *  @see flash.events.IEventDispatcher#addEventListener
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function get useWeakReference():Boolean
 	{


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

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

 package mx.controls.sliderClasses
 {


qnd: when creating  multirequest response, create directly as XML (not via string) (fixes a bug in KDP on chrome - Michal)

git-svn-id: 8a2ccb88241e16c78017770bc38d91d6d5396a5a@91848 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- generator/sources/as3/com/kaltura/delegates/MultiRequestDelegate.as
+++ generator/sources/as3/com/kaltura/delegates/MultiRequestDelegate.as
@@ -58,10 +58,9 @@
 				var myInst : Object = new cls(null , null);

 				//build the result as a regular result
-				var xml : String = "<result><result>";
-				xml += result.result.item[i].children().toString();
-				xml +="</result></result>";
-				var res : XML = new XML(xml);
+				var res:XML = new XML("<result><result/></result>");
+                res.result.appendChild(result.result.item[i].children());
+
 				try {
 					var obj : Object = (myInst as WebDelegateBase).parse( res );
 					resArr.push( obj );


FragmentLoader.as : add a LOADING_COMPLETED state and handle it from the Timer

--- src/org/mangui/hls/loader/FragmentLoader.as
+++ src/org/mangui/hls/loader/FragmentLoader.as
@@ -98,6 +98,7 @@
         private static const LOADING_STALLED : int = 3;
         private static const LOADING_FRAGMENT_IO_ERROR : int = 4;
         private static const LOADING_KEY_IO_ERROR : int = 5;
+        private static const LOADING_COMPLETED : int = 6;

         /** Create the loader. **/
         public function FragmentLoader(hls : HLS, audioTrackController : AudioTrackController, streamBuffer : StreamBuffer) : void {
@@ -206,18 +207,17 @@
                             _loading_state = _loadnextfragment(_level, _frag_previous);
                         }
                     }
-                    if (_loading_state == LOADING_STALLED) {
-                        /* next consecutive fragment not found:
-                        it could happen on live playlist :
-                        - if bandwidth available is lower than lowest quality needed bandwidth
-                        - after long pause */
-                        CONFIG::LOGGING {
-                            Log.warn("loading stalled: restart playback");
-                        }
-                        /* seek to force a restart of the playback session  */
-                        seek(-1);
-                        return;
-                    }
+                    break;
+                case LOADING_STALLED:
+                    /* next consecutive fragment not found:
+                    it could happen on live playlist :
+                    - if bandwidth available is lower than lowest quality needed bandwidth
+                    - after long pause */
+                    CONFIG::LOGGING {
+                        Log.warn("loading stalled: restart playback");
+                    }
+                    /* seek to force a restart of the playback session  */
+                    seek(-1);
                     break;
                 // if key loading failed
                 case  LOADING_KEY_IO_ERROR:
@@ -237,6 +237,16 @@
                         calling _loadfragment will also reload key */
                         _loadfragment(_frag_current);
                         _loading_state = LOADING_IN_PROGRESS;
+                    }
+                    break;
+                case LOADING_COMPLETED:
+                    _hls.dispatchEvent(new HLSEvent(HLSEvent.LAST_VOD_FRAGMENT_LOADED));
+                    // stop loading timer as well, as no other fragments can be loaded
+                    _timer.stop();
+                    break;
+                default:
+                    CONFIG::LOGGING {
+                        Log.error("invalid loading state:" + _loading_state);
                     }
                     break;
             }
@@ -648,13 +658,14 @@

             if (_pts_analyzing == false) {
                 if (last_seqnum == _levels[level].end_seqnum) {
-                    // if last segment was last fragment of VOD playlist, notify last fragment loaded event, and return
+                    // if last segment of level already loaded, return
                     if (_hls.type == HLSTypes.VOD) {
-                        _hls.dispatchEvent(new HLSEvent(HLSEvent.LAST_VOD_FRAGMENT_LOADED));
-                        // stop loading timer as well, as no other fragments can be loaded
-                        _timer.stop();
-                    }
-                    return LOADING_WAITING_LEVEL_UPDATE;
+                        // if VOD playlist, loading is completed
+                        return LOADING_COMPLETED;
+                    } else {
+                        // if live playlist, loading is pending on manifest update
+                        return LOADING_WAITING_LEVEL_UPDATE;
+                    }
                 } else {
                     // if previous segment is not the last one, increment it to get new seqnum
                     new_seqnum = last_seqnum + 1;


handle fragments with no tags as generic IO error

retry load mechanism will then be applied, and fragment will be skipped if retries fail
related to https://github.com/mangui/flashls/issues/429

--- src/org/mangui/hls/loader/FragmentLoader.as
+++ src/org/mangui/hls/loader/FragmentLoader.as
@@ -421,7 +421,7 @@
             the one in memory is from SN [50-60], and we are trying to load SN50.
              */
             CONFIG::LOGGING {
-                Log.error("I/O Error while loading fragment:" + message);
+                Log.warn("I/O Error while loading fragment:" + message);
             }
             if (HLSSettings.fragmentLoadMaxRetry == -1 || _fragRetryCount < HLSSettings.fragmentLoadMaxRetry) {
                 _loadingState = LOADING_FRAGMENT_IO_ERROR;
@@ -522,9 +522,6 @@

         /** frag load completed. **/
         private function _fragLoadCompleteHandler(event : Event) : void {
-            // load complete, reset retry counter
-            _fragRetryCount = 0;
-            _fragRetryTimeout = 1000;
             var fragData : FragmentData = _fragCurrent.data;
             if (fragData.bytes == null) {
                 CONFIG::LOGGING {
@@ -983,9 +980,13 @@
             var fragData : FragmentData = _fragCurrent.data;
             var fragLevelIdx : int = _fragCurrent.level;
             if ((_demux.audioExpected && !fragData.audio_found) && (_demux.videoExpected && !fragData.video_found)) {
-                hlsError = new HLSError(HLSError.FRAGMENT_PARSING_ERROR, _fragCurrent.url, "error parsing fragment, no tag found");
-                _hls.dispatchEvent(new HLSEvent(HLSEvent.ERROR, hlsError));
-            }
+                // handle it like a IO error
+                _fraghandleIOError("error parsing fragment, no tag found");
+                return;
+            }
+            // parsing complete, reset retry counter
+            _fragRetryCount = 0;
+            _fragRetryTimeout = 1000;
             CONFIG::LOGGING {
                 if (fragData.audio_found) {
                     Log.debug("m/M audio PTS:" + fragData.pts_min_audio + "/" + fragData.pts_max_audio);


formatting

formatting

--- src/org/mangui/hls/stream/FragmentLoader.as
+++ src/org/mangui/hls/stream/FragmentLoader.as
@@ -775,9 +775,9 @@
         /** Store the manifest data. **/
         private function _levelLoadedHandler(event : HLSEvent) : void {
             _last_loaded_level = event.level;
-            if(_loading_state == LOADING_WAITING_LEVEL_UPDATE && _last_loaded_level == _level) {
+            if (_loading_state == LOADING_WAITING_LEVEL_UPDATE && _last_loaded_level == _level) {
                 _loading_state = LOADING_IDLE;
-               // speed up loading of new fragment
+                // speed up loading of new fragment
                 _timer.start();
             }
         };
@@ -812,33 +812,30 @@
             for each (tag in tags) {
                 tag.pts = PTS.normalize(ref_pts, tag.pts);
                 tag.dts = PTS.normalize(ref_pts, tag.dts);
-                switch( tag.type )
-                {
-                case FLVTag.AAC_HEADER:
-                case FLVTag.AAC_RAW:
-                case FLVTag.MP3_RAW:
-                    fragData.audio_found = true;
-                    fragData.tags_audio_found = true;
-                    fragData.tags_pts_min_audio = Math.min(fragData.tags_pts_min_audio, tag.pts);
-                    fragData.tags_pts_max_audio = Math.max(fragData.tags_pts_max_audio, tag.pts);
-                    fragData.pts_min_audio = Math.min(fragData.pts_min_audio, tag.pts);
-                    fragData.pts_max_audio = Math.max(fragData.pts_max_audio, tag.pts);
-                    break;
-
-                case FLVTag.AVC_HEADER:
-                case FLVTag.AVC_NALU:
-                case FLVTag.DISCONTINUITY:
-                    fragData.video_found = true;
-                    fragData.tags_video_found = true;
-                    fragData.tags_pts_min_video = Math.min(fragData.tags_pts_min_video, tag.pts);
-                    fragData.tags_pts_max_video = Math.max(fragData.tags_pts_max_video, tag.pts);
-                    fragData.pts_min_video = Math.min(fragData.pts_min_video, tag.pts);
-                    fragData.pts_max_video = Math.max(fragData.pts_max_video, tag.pts);
-                    break;
-
-                case FLVTag.METADATA:
-                default:
-                    break;
+                switch( tag.type ) {
+                    case FLVTag.AAC_HEADER:
+                    case FLVTag.AAC_RAW:
+                    case FLVTag.MP3_RAW:
+                        fragData.audio_found = true;
+                        fragData.tags_audio_found = true;
+                        fragData.tags_pts_min_audio = Math.min(fragData.tags_pts_min_audio, tag.pts);
+                        fragData.tags_pts_max_audio = Math.max(fragData.tags_pts_max_audio, tag.pts);
+                        fragData.pts_min_audio = Math.min(fragData.pts_min_audio, tag.pts);
+                        fragData.pts_max_audio = Math.max(fragData.pts_max_audio, tag.pts);
+                        break;
+                    case FLVTag.AVC_HEADER:
+                    case FLVTag.AVC_NALU:
+                    case FLVTag.DISCONTINUITY:
+                        fragData.video_found = true;
+                        fragData.tags_video_found = true;
+                        fragData.tags_pts_min_video = Math.min(fragData.tags_pts_min_video, tag.pts);
+                        fragData.tags_pts_max_video = Math.max(fragData.tags_pts_max_video, tag.pts);
+                        fragData.pts_min_video = Math.min(fragData.pts_min_video, tag.pts);
+                        fragData.pts_max_video = Math.max(fragData.pts_max_video, tag.pts);
+                        break;
+                    case FLVTag.METADATA:
+                    default:
+                        break;
                 }
                 fragData.tags.push(tag);
             }
@@ -936,7 +933,8 @@
                 _hls.dispatchEvent(new HLSEvent(HLSEvent.ERROR, hlsError));
             }
             if (fragData.audio_found) {
-                null; // just to stop the compiler warning
+                null;
+                // just to stop the compiler warning
                 CONFIG::LOGGING {
                     Log.debug("m/M audio PTS:" + fragData.pts_min_audio + "/" + fragData.pts_max_audio);
                 }


fix: OverlayManager.removeAll shouldnt remove the modal sprite

--- src/org/openPyro/managers/OverlayManager.as
+++ src/org/openPyro/managers/OverlayManager.as
@@ -115,9 +115,10 @@

 		public function removeAll():void{
-			while(_overlayDisplayObject.numChildren > 0){
-				_overlayDisplayObject.removeChildAt(0);
+			while(_overlayDisplayObject.numChildren > 1){
+				_overlayDisplayObject.removeChildAt(1);
 			}
+			bgSprite.visible = false;
 		}

 		private function onBaseStageResize(event:Event):void{


Panel sizing uses explicitWidth/Height to determine how to place and size its components. If no explicit dimension is given, the Panel is sized according to its components in that dimension.

--- frameworks/as/src/org/apache/flex/html/staticControls/beads/PanelView.as
+++ frameworks/as/src/org/apache/flex/html/staticControls/beads/PanelView.as
@@ -80,29 +80,36 @@

 		}

-		private var controlBarArea:ControlBar;
-
 		private function changeHandler(event:Event):void
 		{
 			var metrics:UIMetrics = BeadMetrics.getMetrics(_strand);

-			var w:Number = Math.max(titleBar.width,actualParent.width+metrics.left+metrics.right,controlBar?controlBar.width:0);
+			var w:Number = UIBase(_strand).explicitWidth;
+			if (isNaN(w)) w = Math.max(titleBar.width,actualParent.width+metrics.left+metrics.right,controlBar?controlBar.width:0);

-			var h:Number = titleBar.height + actualParent.height + (controlBar ? controlBar.height : 0) +
+			var h:Number = UIBase(_strand).explicitHeight;
+			if (isNaN(h)) h = titleBar.height + actualParent.height + (controlBar ? controlBar.height : 0) +
 				metrics.top + metrics.bottom;

 			titleBar.x = 0;
 			titleBar.y = 0;
 			titleBar.width = w;

-			actualParent.x = metrics.left;
-			actualParent.y = titleBar.y + titleBar.height + metrics.top;
+			var remainingHeight:Number = h - titleBar.height;

 			if( controlBar ) {
 				controlBar.x = 0;
-				controlBar.y = actualParent.y + actualParent.height + metrics.bottom;
+				controlBar.y = h - controlBar.height;
+				//controlBar.y = actualParent.y + actualParent.height + metrics.bottom;
 				controlBar.width = w;
+
+				remainingHeight -= controlBar.height;
 			}
+
+			actualParent.x = metrics.left;
+			actualParent.y = titleBar.y + titleBar.height + metrics.top;
+			actualParent.width = w;
+			actualParent.height = remainingHeight - metrics.top - metrics.bottom;

 			UIBase(_strand).width = w;
 			UIBase(_strand).height = h;


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

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

 package spark.components.gridClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18012
Author:   klin@adobe.com
Date:     2010-10-05T00:00:22.476120Z

Log Message:
-----------
First pass for implementing column visibility. GridColumn's visible property works now except when toggling at run time. I've also changed the way we determine a column's width. Now, we first look at the explicit width, then the typical width, and finally, the default width of 150.

Grid.as
-Added two internal methods that calculate the next and previous column.visible==true column index.

GridLayout.as
-Modified the loops to loop through column.visible==true columns instead of all the columns.

GridDimensions.as
-Fixed getColumnWidth() and other methods to fall back on the typical cell width.
-The methods will now skip columns with a typical cell width of 0 (meaning they are column.visible==false).

ColumnHeaderBarLayout.as
-Modified updateDisplayList to only create renderers for the column.visible==true columns.

QE notes: No
Doc notes: No
Bugs: No
Reviewer: Hans
Tests run: cyclone server
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ColumnHeaderBarLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -383,6 +383,16 @@
                 performanceStatistics.updateDisplayListStartTime = startTime;
         }

+        const columns:IList = grid.columns;
+        if (!columns)
+            return;
+
+        // Find the index of the last GridColumn.visible==true column
+
+        const lastVisibleColumnIndex:int = grid.getPreviousVisibleColumnIndex(grid.columns.length);
+        if (lastVisibleColumnIndex < 0)
+            return;
+
         // Layout the item renderers and compute new values for visibleRowIndices et al

         oldVisibleRowIndices = visibleRowIndices;
@@ -429,13 +439,12 @@
         // Layout the row and column separators.

         const lastRowIndex:int = paddedRowCount - 1;
-        const lastColumnIndex:int = gridDimensions.columnCount - 1;

         visibleRowSeparators = layoutLinearElements(grid.rowSeparator, grid.overlayLayer,
             visibleRowSeparators, oldVisibleRowIndices, visibleRowIndices, layoutRowSeparator, lastRowIndex);

         visibleColumnSeparators = layoutLinearElements(grid.columnSeparator, grid.overlayLayer,
-            visibleColumnSeparators, oldVisibleColumnIndices, visibleColumnIndices, layoutColumnSeparator, lastColumnIndex);
+            visibleColumnSeparators, oldVisibleColumnIndices, visibleColumnIndices, layoutColumnSeparator, lastVisibleColumnIndex);

         // HACK
         var dg:DataGrid = grid.gridOwner as DataGrid;
@@ -580,7 +589,9 @@
 		const startCellX:Number = gridDimensions.getCellX(0 /* rowIndex */, firstVisibleColumnIndex);
 		const columnGap:int = gridDimensions.columnGap;

-		for (var columnIndex:int = firstVisibleColumnIndex; (width > 0) && (columnIndex < columnCount); columnIndex++)
+		for (var columnIndex:int = firstVisibleColumnIndex;
+            (width > 0) && (columnIndex >= 0) && (columnIndex < columnCount);
+            columnIndex = grid.getNextVisibleColumnIndex(columnIndex))
 		{
             var cellHeight:Number = gridDimensions.getTypicalCellHeight(columnIndex);
 			var cellWidth:Number = gridDimensions.getTypicalCellWidth(columnIndex);
@@ -626,6 +637,7 @@
         const columnCount:int = gridDimensions.columnCount;
         const columnGap:int = gridDimensions.columnGap;
         const requestedColumnCount:int = grid.requestedColumnCount;
+        var measuredColumnCount:int = 0;

         for (var columnIndex:int = 0; (columnIndex < columnCount); columnIndex++)
         {
@@ -633,13 +645,24 @@
             var cellWidth:Number = gridDimensions.getTypicalCellWidth(columnIndex);

             var column:GridColumn = getGridColumn(columnIndex);
+
+            // GridColumn.visible==false columns have a typical size of (0,0)
+            // to distinguish them from the GridColumn.visible==true columns
+            // that aren't in view yet.
+            if (!column.visible)
+            {
+                gridDimensions.setTypicalCellWidth(columnIndex, 0);
+                gridDimensions.setTypicalCellHeight(columnIndex, 0);
+                continue;
+            }
+
             if (!isNaN(column.width))
             {
                 cellWidth = column.width;
                 gridDimensions.setTypicalCellWidth(columnIndex, cellWidth);
             }

-            var needTypicalRenderer:Boolean = (requestedColumnCount == -1) || (columnIndex < requestedColumnCount);
+            var needTypicalRenderer:Boolean = (requestedColumnCount == -1) || (measuredColumnCount < requestedColumnCount);
             if (needTypicalRenderer && (isNaN(cellWidth) || isNaN(cellHeight)))
             {
                 var renderer:IGridItemRenderer = createTypicalItemRenderer(columnIndex);
@@ -655,6 +678,7 @@
                 }
                 freeGridElement(renderer);
             }
+            measuredColumnCount++;
         }
     }

@@ -687,8 +711,10 @@
         const startCellX:Number = gridDimensions.getCellX(0 /* rowIndex */, firstVisibleColumnIndex);
         var availableWidth:Number = width;
         var flexibleColumnCount:uint = 0;
-
-        for (var columnIndex:int = firstVisibleColumnIndex; (availableWidth > 0) && (columnIndex < columnCount); columnIndex++)
+
+        for (var columnIndex:int = firstVisibleColumnIndex;
+             (availableWidth > 0) && (columnIndex >= 0) && (columnIndex < columnCount);
+             columnIndex = grid.getNextVisibleColumnIndex(columnIndex))
         {
             var columnWidth:Number = gridDimensions.getTypicalCellWidth(columnIndex);
             var gridColumn:GridColumn = getGridColumn(columnIndex);
@@ -725,7 +751,9 @@

         const columnWidthDelta:Number = Math.ceil(availableWidth / flexibleColumnCount);

-        for (columnIndex = firstVisibleColumnIndex; (columnIndex < columnCount) && (availableWidth >= 1.0); columnIndex++)
+        for (columnIndex = firstVisibleColumnIndex;
+             (columnIndex >= 0) && (columnIndex < columnCount) && (availableWidth >= 1.0);
+             columnIndex = grid.getNextVisibleColumnIndex(columnIndex))
         {
             gridColumn = getGridColumn(columnIndex);

@@ -805,8 +833,11 @@

         const newVisibleColumnIndices:Vector.<int> = new Vector.<int>();
         var availableWidth:Number = width;
-
-        for (colIndex = startColIndex; (availableWidth > 0) && (colIndex >= 0) && (colIndex < colCount); colIndex++)
+        var column:GridColumn;
+
+        for (colIndex = startColIndex;
+             (availableWidth > 0) && (colIndex >= 0) && (colIndex < colCount);
+             colIndex = grid.getNextVisibleColumnIndex(colIndex))
         {
             newVisibleColumnIndices.push(colIndex);
             var columnWidth:Number = gridDimensions.getColumnWidth(colIndex);
@@ -836,7 +867,7 @@
                 if (!renderer)
                 {
                     var dataItem:Object = getDataProviderItem(rowIndex);
-                    var column:GridColumn = getGridColumn(colIndex);
+                    column = getGridColumn(colIndex);
                     var factory:IFactory = itemToRenderer(column, dataItem);
                     renderer = allocateGridElement(factory) as IGridItemRenderer;
                 }
@@ -2157,6 +2188,10 @@
         // Invalid row or column.
         if (dataItem == null || column == null)
             return null;
+
+        // column is GridColumn.visible==false
+        if (!column.visible)
+            return null;

         const factory:IFactory = itemToRenderer(column, dataItem);
         const renderer:IGridItemRenderer = factory.newInstance() as IGridItemRenderer;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18759
Author:   aharui@adobe.com
Date:     2010-11-20T00:51:17.751649Z

Log Message:
-----------
Set estimated sizes on the renderers based on column width, and use validateClient instead of validateNow so the renderer will use the new estimated size.  This fixes a bug where a long string might measure quite differently from its typical item.  The new layout logic requires that estimated sizes be accurate enough that measurements won't vary too much from actual layout size

QE notes: none
Doc notes: none
Bugs: SDK-28587
Reviewer: Hans
Tests run: checkintests mustella/gumbo/components/DataGrid
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -18,15 +18,19 @@
 import mx.collections.IList;
 import mx.core.ClassFactory;
 import mx.core.IFactory;
+import mx.core.IContainerInvalidating;
 import mx.core.IInvalidating;
 import mx.core.IUITextField;
 import mx.core.IVisualElement;
 import mx.core.IVisualElementContainer;
 import mx.core.Singleton;
+import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
 import mx.events.CollectionEvent;
 import mx.events.CollectionEventKind;
 import mx.events.PropertyChangeEvent;
+import mx.managers.ILayoutManagerClient;
+import mx.managers.ILayoutManagerContainerClient;

 import spark.components.DataGrid;
 import spark.components.Grid;
@@ -2034,8 +2038,28 @@
         {
             if (!isNaN(width) || !isNaN(height))
             {
+                var oldcw:Number = renderer.estimatedWidth;
+                var oldch:Number = renderer.estimatedHeight;
+                renderer.setEstimatedSize(width, height);
+                if (renderer is ILayoutManagerContainerClient)
+                {
+                    var sameWidth:Boolean = isNaN(width) && isNaN(oldcw) || width == oldcw;
+                    var sameHeight:Boolean = isNaN(height) && isNaN(oldch) || height == oldch;
+                    if (!(sameHeight && sameWidth))
+                    {
+                        if (renderer is IContainerInvalidating)
+                            IContainerInvalidating(renderer).invalidateEstimatedSizesOfChildren();
+                        ILayoutManagerContainerClient(renderer).validateEstimatedSizesOfChildren();
+                    }
+                }
+
                 if (validatingElt)
-                    validatingElt.validateNow();
+                {
+                    if (validatingElt is ILayoutManagerClient)
+                        UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(validatingElt), true);
+                    else
+                        validatingElt.validateNow();
+                }
                 renderer.setLayoutBoundsSize(width, height);
             }
             if (validatingElt)


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/events/ResizeEvent.as
+++ frameworks/projects/framework/src/mx/events/ResizeEvent.as
@@ -0,0 +1,128 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+
+import flash.events.Event;
+
+/**
+ *  Represents event objects that are dispatched when the size of a Flex
+ *  component changes.
+ *
+ *  @see mx.core.UIComponent
+ */
+public class ResizeEvent extends Event
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  The ResizeEvent.RESIZE constant defines the value of the
+	 *  type property of the event object for a resize event.
+	 *
+     *
The properties of the event object have the following values:

+	 *

+	 *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

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

+     *
oldHeight	The previous height of the object, in pixels.

+     *
oldWidth	The previous width of the object, in pixels.

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

+	 *

+	 *
+     *  @eventType resize
+	 */
+	public static const RESIZE:String = "resize";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble
+	 *  up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior
+	 *  associated with the event can be prevented.
+	 *
+	 *  @param oldWidth The previous width of the object, in pixels.
+	 *
+	 *  @param oldHeight The previous height of the object, in pixels.
+	 */
+	public function ResizeEvent(type:String, bubbles:Boolean = false,
+							    cancelable:Boolean = false,
+							    oldWidth:Number = NaN, oldHeight:Number = NaN)
+	{
+		super(type, bubbles, cancelable);
+
+		this.oldWidth = oldWidth;
+		this.oldHeight = oldHeight;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  oldHeight
+	//----------------------------------
+
+	/**
+	 *  The previous height of the object, in pixels.
+	 */
+	public var oldHeight:Number;
+
+	//----------------------------------
+	//  oldWidth
+	//----------------------------------
+
+	/**
+	 *  The previous width of the object, in pixels.
+	 */
+	public var oldWidth:Number;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: Event
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function clone():Event
+	{
+		return new ResizeEvent(type, bubbles, cancelable, oldWidth, oldHeight);
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 695
Author:   smgilson@adobe.com
Date:     2008-02-29T19:28:33.314028Z

Log Message:
-----------
Add WSDLLoadEvent.as and XMLLoadEvent.as to ASDoc

Checkin Test Passed: Yes
QA: No
Bug:
Doc: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/XMLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as
+++ frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as
@@ -18,13 +18,23 @@
 [ExcludeClass]

 /**
- * This event is dispatched when a WSDL XML document has loaded sucessfully.
- * @private
+ *  The WSDLLoadEvent class represents the event object for the event dispatched
+ *  when a WSDL XML document has loaded successfully.
  */
 public class WSDLLoadEvent extends XMLLoadEvent
 {
     /**
-     * Creates a new SchemaLoadEvent.
+     * Constructor.
+     *
+     * @param type The event type; indicates the action that caused the event.
+     *
+     * @param bubbles Specifies whether the event can bubble up the display list hierarchy.
+     *
+     * @param cancelable Specifies whether the behavior associated with the event can be prevented.
+     *
+     * @param wsdl The full WSDL document.
+     *
+     * @param location The path used to load the document.
      */
     public function WSDLLoadEvent(type:String, bubbles:Boolean = false,
         cancelable:Boolean = true, wsdl:WSDL = null, location:String = null)
@@ -44,7 +54,7 @@
     public var wsdl:WSDL

     /**
-     * Returns a copy of this WSDLLoadEvent.
+     * Returns a copy of this WSDLLoadEvent object.
      */
     override public function clone():Event
     {
@@ -52,7 +62,7 @@
     }

     /**
-     * Returns a String representation of this WSDLLoadEvent.
+     * Returns a String representation of this WSDLLoadEvent object.
      */
     override public function toString():String
     {
@@ -69,6 +79,29 @@
         return new WSDLLoadEvent(LOAD, false, true, wsdl, location);
     }

+    /**
+     * The LOAD constant defines the value of the type property of the event object
+     * for a wsdlLoad event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	true

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

+     *
location	The path used to load the document.

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

+     *
wsdl	The full WSDL document.

+     *

+     *
+     * @eventType result
+     */
     public static const LOAD:String = "wsdlLoad";
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3066
Author:   hmuller@adobe.com
Date:     2008-09-03T00:37:53.096113Z

Log Message:
-----------
Scroller prototype.  In theory this version should support scrolling
Group or an object that implements IViewport.  The scrolling policy
is effectively "auto".

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/intf/IViewport.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ScrollerSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -0,0 +1,105 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 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 flex.component
+{
+	import flex.core.SkinnableComponent;
+	import flex.core.Group;
+	import flex.intf.IViewport;
+
+
+[DefaultProperty("viewport")]
+
+public class Scroller extends SkinnableComponent
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+	public function Scroller()
+	{
+		super();
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  viewport - default property
+    //----------------------------------
+
+    private var _viewport:IViewport;
+
+    [Bindable]
+
+    public function get viewport():IViewport
+    {
+        return _viewport;
+    }
+
+    public function set viewport(value:IViewport):void
+    {
+        if (value == _viewport)
+            return;
+        _viewport = value;
+        installViewport();
+    }
+
+    private function installViewport():void
+    {
+        if (viewportHolder)
+        {
+            if (viewportHolder.numItems > 0)     // remove the old viewport
+        	   viewportHolder.removeItemAt(0);
+        	if (_viewport)                       // add the new viewport
+        	   viewportHolder.addItemAt(_viewport, 0);
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    override protected function partAdded(partName:String, instance:*):void
+    {
+    	super.partAdded(partName, instance);
+    	if (instance == viewportHolder)
+    	    installViewport();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // SkinParts
+    //
+    //--------------------------------------------------------------------------
+
+    [SkinPart]
+    public var viewportHolder:Group;
+
+    [SkinPart]
+    public var verticalScrollBar:VScrollBar;
+
+    [SkinPart]
+    public var horizontalScrollBar:HScrollBar;
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19893
Author:   jszeto@adobe.com
Date:     2011-01-22T01:38:40.553706Z

Log Message:
-----------
Mobile SoftKeyboard Support bug fix

Fixed a bug when on a Nexus One, the predictive text overlay would cover the text field. The solution is to always auto-scroll if we get a softKeyboard ACTIVATE event and the keyboard rect size has changed.

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

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

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -735,8 +735,13 @@

     /**
      *  @private
-     */
-    private var isSoftKeyboardActive:Boolean = false;
+     */
+    private var oldSoftKeyboardHeight:Number = NaN;
+
+    /**
+     *  @private
+     */
+    private var oldSoftKeyboardWidth:Number = NaN;

     //--------------------------------------------------------------------------
     //
@@ -2496,10 +2501,14 @@

         if (keyboardRect.width > 0 && keyboardRect.height > 0)
         {
-            if (lastFocusedElement && !isSoftKeyboardActive && ensureElementIsVisibleForSoftKeyboard)
+            if (lastFocusedElement && ensureElementIsVisibleForSoftKeyboard &&
+                (keyboardRect.height != oldSoftKeyboardHeight ||
+                 keyboardRect.width != oldSoftKeyboardWidth))
                 ensureElementIsVisible(lastFocusedElement);

-            isSoftKeyboardActive = true;
+            oldSoftKeyboardHeight = keyboardRect.height;
+            oldSoftKeyboardWidth = keyboardRect.width;
+
         }
     }

@@ -2512,7 +2521,8 @@
     {
         // Adjust the scroll position after the application's size is restored.
         adjustScrollPositionAfterSoftKeyboardDeactivate();
-        isSoftKeyboardActive = false;
+        oldSoftKeyboardHeight = NaN;
+        oldSoftKeyboardWidth = NaN;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 21981
Author:   cframpto@adobe.com
Date:     2011-08-15T18:54:28.190117Z

Log Message:
-----------
First pass of ASdoc corrections/additions for StageText.  Want to see results from tomorrow morning's ASdoc build.

QE notes:
Doc notes:
Bugs: SDK-31078, SDK-31109, SDK-31015, SDK-31127, SDK-31107, SDK-31113
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -81,20 +81,25 @@
  *  which builds on the Flash Text Engine (FTE).
  *  In combination, these layers provide text editing with
  *  high-quality international typography and layout.

- *
- *
The skin for the mobile theme uses the StyleableTextField class instead of RichEditableText.
- *  As a result, TLF-only features are not supported in the mobile theme including
- *  TextFlow, right-to-left or bidirectional text, and advanced text
- *  styles.

- *
- *
The TextArea control does not include any user interface for changing
- *  the formatting of the text but contains
- *  APIs that you can use to programmatically format text.
- *  For example, you can create a
- *  a button that, when clicked, makes the selected text bold.

- *
+ *
+ *
The TextArea skin for the mobile theme uses the StyleableStageText class instead
+ *  of RichEditableText.
+ *  Since StyleableStageText uses native text fields it allows for better text entry and
+ *  manipulation experiences on mobile devices however there are some
+ *  limitations that you should consider.
+ *  Because StageText is not capable of measuring text, the TextArea must be given explicit,
+ *  percent-based, or constraint-based width and height.

+ *
+ *
The soft-keyboard-specific properties, autoCapitalize
+ *  autoCorrect, returnKeyLabel and softKeyboardType
+ *  are keyboard hints supported in the mobile theme.
+ *  If a soft-keyboard is present but does not support a feature represented by the
+ *  hint, the hint is ignored.
+ *  In mobile environments with only hardware keyboards, these hints are ignored.
+ *

+ *
  *
The most important differences between Spark TextArea and the
- *  MX/mobile TextArea control are as follows:
+ *  MX TextArea control are as follows:
  *

  *
Spark TextArea offers better typography, better support
  *        for international languages, and better text layout.

@@ -131,6 +136,12 @@
  *  In this example, the MXML compiler sets the TextArea content
  *  property, causing a TextFlow object to be created from the FlowElements that you specify.

  *
+ *
The TextArea control does not include any user interface for changing
+ *  the formatting of the text but contains
+ *  APIs that you can use to programmatically format text.
+ *  For example, you can create a
+ *  a button that, when clicked, makes the selected text bold.

+ *
  *
The default text formatting is determined by CSS styles
  *  such as fontFamily
  *  and fontSize.
@@ -182,7 +193,7 @@
  *  and a Scroller control to provide scrollbars.
  *  The RichEditableText can be accessed as textDisplay
  *  and the Scroller as scroller. When used with the mobile theme, this control uses
- *  the StyleableTextField class to display and edit text.

+ *  the StyleableStageText class to display and edit text.

  *
  *
The Spark TextArea
  *  can display left-to-right (LTR) text, such as French,
@@ -254,11 +265,13 @@
  *  @see #text
  *  @see #textFlow
  *  @see spark.components.TextInput
- *  @see spark.skins.spark.TextAreaSkin
  *  @see spark.components.RichText
  *  @see spark.components.RichEditableText
  *  @see spark.components.Scroller
  *  @see spark.components.Label
+ *  @see spark.skins.mobile.StageTextAreaSkin
+ *  @see spark.skins.mobile.TextAreaSkin
+ *  @see spark.skins.spark.TextAreaSkin
  *
  *  @includeExample examples/TextAreaExample.mxml
  *


Moved stack

Moved stack

--- src/Menu/LevelDisplay.as
+++ src/Menu/LevelDisplay.as
@@ -60,7 +60,7 @@
 			var cpuAdvanced:LevelModule = addSuccessor(Level.L_CPU_Advanced, cpuBasic, cpuBranch.layout.dim.y + cpuLoad.layout.dim.y + MODULE_SPACING.y * 2);
 			var cpuFull:LevelModule = addSuccessor(Level.L_CPU_Full, cpuBranch, doubleOp.layout.dim.y + MODULE_SPACING.y);

-			addSuccessor(Level.L_CPU_Stack, cpuFull);
+			addSuccessor(Level.L_CPU_Stack, cpuFull, - MODULE_SPACING.y * 2);

 			var d0:LevelModule = addSuccessor(Level.L_DTutorial_0, cpuBasic, -(doubleOp.layout.dim.y + MODULE_SPACING.y) * 2);
 			var d1:LevelModule = addSuccessor(Level.L_DTutorial_1, d0);


AJS-27 - Minor changes

AJS-27 - Minor changes

--- org.openwms.core/org.openwms.core.domain.as/src/main/flex/org/openwms/core/domain/system/usermanagement/User.as
+++ org.openwms.core/org.openwms.core.domain.as/src/main/flex/org/openwms/core/domain/system/usermanagement/User.as
@@ -65,7 +65,7 @@
          *
          * @param value The password
          */
-        override public function set password(value : String) : void {
+        public function set password(value : String) : void {
             ;
         }


Added isEmpty

Added isEmpty

git-svn-id: 27326a786375daad9d33dc990c6f272e4c8f567c@945 fda5f131-174c-0410-8613-e0905860106b

--- org.openwms/trunk/source/org.openwms.common.domain.as/src/main/flex/org/openwms/common/domain/values/Barcode.as
+++ org.openwms/trunk/source/org.openwms.common.domain.as/src/main/flex/org/openwms/common/domain/values/Barcode.as
@@ -37,5 +37,10 @@
         {
             return this.value;
         }
+
+        public function isEmpty():Boolean
+        {
+        	return ((this.value == null||this.value.length == 0) ? true : false);
+        }
     }
 }


Fix for testComplex

Fix for testComplex

--- as3/xobjas3-test/src/tests/TestBasics.as
+++ as3/xobjas3-test/src/tests/TestBasics.as
@@ -45,21 +45,21 @@
     */
     public function testComplex():void
     {
-        var typedDecoder:XObjXMLDecoder = new XObjXMLDecoder();
+        var typedDecoder:XObjXMLDecoder = new XObjXMLDecoder({prop: Array});
         var xmlInput:XMLDocument = new XMLDocument(testData.complex);
         var o:* = typedDecoder.decodeXML(xmlInput);

         assertTrue(o.top is Object);
-        assertTrue(o.top.prop.subprop is Array);
+        assertTrue(o.top.prop is Array);

         // check array content
-        for (var i:int=0; i<o.top.prop.subprop.length; i++)
+        for (var i:int=0; i<o.top.prop.length; i++)
         {
-            assertTrue(o.top.prop.subprop[i] is XObjString);
-            assertTrue(o.top.prop.subprop[i].toString() == ['asdf', 'fdsa', 'zxcv '][i]);
+            assertTrue(o.top.prop[i] is XObjString);
+            assertTrue(o.top.prop[i].toString() == ['asdf', 'fdsa', 'zxcv '][i]);
         }

-        var typedEncoder:XObjXMLEncoder = new XObjXMLEncoder();
+        var typedEncoder:XObjXMLEncoder = new XObjXMLEncoder({subprop: XObjString});
         var xmlOutput:XMLDocument = typedEncoder.encodeObject(o.top, null, "top");

         assertTrue("encode matches input", compareXML(xmlOutput, xmlInput));


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/IPropertyChangeNotifier.as
+++ frameworks/projects/framework/src/mx/core/IPropertyChangeNotifier.as
@@ -0,0 +1,84 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+import flash.events.IEventDispatcher;
+
+/**
+ *  The IPropertyChangeNotifier interface defines a marker
+ *  interface.
+ *  Classes that support this interface declare support for event propagation
+ *  in a specialized manner.
+ *  Classes that implement this interface must dispatch events for each property
+ *  of this class and any nested classes publicly exposed as properties.
+ *  For those properties that are anonymous (complex and not strongly typed),
+ *  implementing classes provide custom support or directly use the
+ *  ObjectProxy class.
+ *  Implementors of this interface should use the
+ *  PropertyChangeEvent.createUpdateEvent() method to construct an
+ *  appropriate update event for dispatch.
+ *  @example
+ *

+ *
+ * function set myProperty(value:Object):void
+ * {
+ *    var oldValue:IPropertyChangeNotifier = _myProperty;
+ *    var newValue:IPropertyChangeNotifier = value;
+ *
+ *    // Need to ensure to dispatch changes on the new property.
+ *    // Listeners use the source property to determine which object
+ *    // actually originated the event.
+ *    // In their event handler code, they can tell if an event has been
+ *    // propagated from deep within the object graph by comparing
+ *    // event.target and event.source. If they are equal, then the property
+ *    // change is at the surface of the object. If they are not equal, the
+ *    // property change is somewhere deeper in the object graph.
+ *    newValue.addEventListener(
+ *                PropertyChangeEvent.PROPERTY_CHANGE,
+ *                dispatchEvent);
+ *
+ *    // need to stop listening for events from the old property
+ *    oldValue.removeEventListener(
+ *                PropertyChangeEvent.PROPERTY_CHANGE,
+ *                dispatchEvent);
+ *
+ *    _myProperty = newValue;
+ *
+ *    // now notify anyone that is listening
+ *    if (dispatcher.hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+ *    {
+ *         var event:PropertyChangeEvent =
+ *                         PropertyChangeEvent.createUpdateEvent(
+ *                                                       this,
+ *                                                       "myProperty",
+ *                                                       newValue,
+ *                                                       oldValue);
+ *        dispatchEvent(event);
+ *     }
+ *  }
+ *
+ *
+ *

+ */
+public interface IPropertyChangeNotifier extends IEventDispatcher, IUID
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+	// Inherits uid property from IUID
+}
+
+}


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

--- frameworks/projects/framework/src/mx/events/FocusRequestDirection.as
+++ frameworks/projects/framework/src/mx/events/FocusRequestDirection.as
@@ -18,6 +18,11 @@
  *  request and with the FocusManager moveFocus() method.
  *
  *  @see SWFBridgeRequest
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public final class FocusRequestDirection
 {
@@ -32,24 +37,44 @@
     /**
      *  Move the focus forward to the next control in the tab loop as if the
 	 *  TAB key were pressed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const FORWARD:String = "forward";

     /**
      *  Move the focus backward to the previous control in the tab loop as if
 	 *  the SHIFT+TAB keys were pressed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const BACKWARD:String = "backward";

     /**
      *  Move the focus to the top/first control in the tab loop as if the
 	 *  TAB key were pressed when no object had focus in the tab loop
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const TOP:String = "top";

     /**
      *  Move the focus to the bottom/last control in the tab loop as if the
 	 *  SHIFT+TAB key were pressed when no object had focus in the tab loop
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static const BOTTOM:String = "bottom";


Transferred from the Adobe Open Source Subversion Repository

Revision: 10155
Author:   peterson@adobe.com
Date:     2009-09-11T16:20:57.425901Z

Log Message:
-----------
Added information about channel fault codes to the ASDoc comment for the faultCode property. Addresses bug BLZ-35.

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

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

--- frameworks/projects/rpc/src/mx/messaging/events/ChannelFaultEvent.as
+++ frameworks/projects/rpc/src/mx/messaging/events/ChannelFaultEvent.as
@@ -180,8 +180,17 @@
      *  faultDetails properties.
      *
      *
The format of the fault codes are provided by the remote destination,
-     *  but will typically have the following form: host.operation.error
-     *  e.g. "Server.Connect.Failed"

+     *  but will typically have the following form: host.operation.error
+     * or Channel.operation.error.
+     *  For example, "Server.Connect.Failed" and Channel.Connect.Failed.

+     *

+     * Channel.Connect.Failed is issued by the Channel class and its subclasses
+     * (RTMPChannel, AMFChannel, HTTPChannel, and so forth) whenever there is an issue
+     * in a Channel's connect attempts to the remote destination. Channel.Call.Failed is
+     * issued by the AMFChannel when the channel is already connected but it gets a
+     * Call.Failed code from its underlying NetConnection.
+     * Only the AMFChannel class listens for NetConnection.Call.Failed, which gets
+     * converted to Channel.Call.Failed.
      *
      *  @see #faultString
      *  @see #faultDetail


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

--- frameworks/projects/automation/src/AutomationClasses.as
+++ frameworks/projects/automation/src/AutomationClasses.as
@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+
+/**
+ *  @private
+ *  In some projects, this class is used to link additional classes
+ *  into the SWC beyond those that are found by dependency analysis
+ *  starting from the classes specified in manifest.xml.
+ *  This project has no manifest file (because there are no MXML tags
+ *  corresponding to any classes in it) so all the classes linked into
+ *  the SWC are found by a dependency analysis starting from the classes
+ *  listed here.
+ */
+internal class AutomationClasses
+{
+	import mx.automation.AutomationLicesneHandler;AutomationLicesneHandler;
+	import mx.automation.delegates.containers.AccordionAutomationImpl; AccordionAutomationImpl;
+	import mx.automation.delegates.containers.ApplicationAutomationImpl; ApplicationAutomationImpl;
+	import mx.automation.delegates.containers.BoxAutomationImpl; BoxAutomationImpl;
+	import mx.automation.delegates.containers.CanvasAutomationImpl; CanvasAutomationImpl;
+	import mx.automation.delegates.containers.DividedBoxAutomationImpl; DividedBoxAutomationImpl;
+	import mx.automation.delegates.containers.FormAutomationImpl; FormAutomationImpl;
+	import mx.automation.delegates.containers.FormItemAutomationImpl; FormItemAutomationImpl;
+	import mx.automation.delegates.containers.PanelAutomationImpl; PanelAutomationImpl;
+	import mx.automation.delegates.containers.TabNavigatorAutomationImpl; TabNavigatorAutomationImpl;
+	import mx.automation.delegates.containers.ViewStackAutomationImpl; ViewStackAutomationImpl;
+	import mx.automation.delegates.controls.AlertAutomationImpl; AlertAutomationImpl;
+	import mx.automation.delegates.controls.AlertFormAutomationImpl; AlertFormAutomationImpl;
+	import mx.automation.delegates.controls.ButtonAutomationImpl; ButtonAutomationImpl;
+	import mx.automation.delegates.controls.ButtonBarAutomationImpl; ButtonBarAutomationImpl;
+	import mx.automation.delegates.controls.CheckBoxAutomationImpl; CheckBoxAutomationImpl;
+	import mx.automation.delegates.controls.ColorPickerAutomationImpl; ColorPickerAutomationImpl;
+	import mx.automation.delegates.controls.ComboBaseAutomationImpl; ComboBaseAutomationImpl;
+	import mx.automation.delegates.controls.ComboBoxAutomationImpl; ComboBoxAutomationImpl;
+	import mx.automation.delegates.controls.DataGridAutomationImpl; DataGridAutomationImpl;
+	import mx.automation.delegates.controls.DataGridItemRendererAutomationImpl; DataGridItemRendererAutomationImpl;
+	import mx.automation.delegates.controls.DateChooserAutomationImpl; DateChooserAutomationImpl;
+	import mx.automation.delegates.controls.DateFieldAutomationImpl; DateFieldAutomationImpl;
+	import mx.automation.delegates.controls.LabelAutomationImpl; LabelAutomationImpl;
+	import mx.automation.delegates.controls.LinkBarAutomationImpl; LinkBarAutomationImpl;
+	import mx.automation.delegates.controls.ListAutomationImpl; ListAutomationImpl;
+	import mx.automation.delegates.controls.ListBaseAutomationImpl; ListBaseAutomationImpl;
+	import mx.automation.delegates.controls.ListBaseContentHolderAutomationImpl; ListBaseContentHolderAutomationImpl;
+	import mx.automation.delegates.controls.ListItemRendererAutomationImpl; ListItemRendererAutomationImpl;
+	import mx.automation.delegates.controls.MenuAutomationImpl; MenuAutomationImpl;
+	import mx.automation.delegates.controls.MenuBarAutomationImpl; MenuBarAutomationImpl;
+	import mx.automation.delegates.controls.MenuBarItemAutomationImpl; MenuBarItemAutomationImpl;
+	import mx.automation.delegates.controls.MenuItemRendererAutomationImpl; MenuItemRendererAutomationImpl;
+	import mx.automation.delegates.controls.NavBarAutomationImpl; NavBarAutomationImpl;
+	import mx.automation.delegates.controls.NumericStepperAutomationImpl; NumericStepperAutomationImpl;
+	import mx.automation.delegates.controls.PopUpButtonAutomationImpl; PopUpButtonAutomationImpl;
+	import mx.automation.delegates.controls.ProgressBarAutomationImpl; ProgressBarAutomationImpl;
+	import mx.automation.delegates.controls.RadioButtonAutomationImpl; RadioButtonAutomationImpl;
+	import mx.automation.delegates.controls.ScrollBarAutomationImpl; ScrollBarAutomationImpl;
+	import mx.automation.delegates.controls.SliderAutomationImpl; SliderAutomationImpl;
+	import mx.automation.delegates.controls.SWFLoaderAutomationImpl; SWFLoaderAutomationImpl;
+	import mx.automation.delegates.controls.TextAreaAutomationImpl; TextAreaAutomationImpl;
+	import mx.automation.delegates.controls.TextInputAutomationImpl; TextInputAutomationImpl;
+	import mx.automation.delegates.controls.TileBaseAutomationImpl; TileBaseAutomationImpl;
+	import mx.automation.delegates.controls.TileListItemRendererAutomationImpl; TileListItemRendererAutomationImpl;
+	import mx.automation.delegates.controls.ToggleButtonBarAutomationImpl; ToggleButtonBarAutomationImpl;
+	import mx.automation.delegates.controls.ToolTipAutomationImpl; ToolTipAutomationImpl;
+	import mx.automation.delegates.controls.TreeAutomationImpl; TreeAutomationImpl;
+	import mx.automation.delegates.controls.TreeItemRendererAutomationImpl; TreeItemRendererAutomationImpl;
+	import mx.automation.delegates.controls.VideoDisplayAutomationImpl; VideoDisplayAutomationImpl;
+	import mx.automation.delegates.core.ContainerAutomationImpl; ContainerAutomationImpl;
+	import mx.automation.delegates.core.RepeaterAutomationImpl; RepeaterAutomationImpl;
+	import mx.automation.delegates.core.ScrollControlBaseAutomationImpl; ScrollControlBaseAutomationImpl;
+	import mx.automation.delegates.core.UIComponentAutomationImpl; UIComponentAutomationImpl;
+	import mx.automation.delegates.core.UITextFieldAutomationImpl; UITextFieldAutomationImpl;
+	import mx.automation.delegates.DragManagerAutomationImpl; DragManagerAutomationImpl;
+	// Maintain alphabetical order
+}
+
+}