Transferred from the Adobe Open Source Subversion Repository

Revision: 19060
Author:   harishs@adobe.com
Date:     2010-12-06T17:34:15.020965Z

Log Message:
-----------
QE notes: Did checkintests, performed full cyclone run. There were 19 failures in mustella report. QE Judy (Mingzhou Gao and Joann Chung Anderson) confirmed that they are known problems.
Doc notes: As part of Sort and Sortfield updates, the asdoc comments were updated to reflect globalization changes.
Bugs: Fixed sdk-28493, 28691,28494, 28345, 28320, 28387, 28314, 28145
Reviewer: Gordon Smith
Tests run: cyclone, checkintests, bugs testfiles
Is noteworthy for integration: Sort and Sortfield updated with globalization support using the new spark globalization sort classes.
Number and CurrencyValidators support national digits and unicode minus symbols.
groupingPattern property dropped for Number and Currency Validators.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/NumberValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ICollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/bundles/en_US/validators.properties</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/DefaultCubeImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/SortTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/SortTests.mxml</path>

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

--- frameworks/projects/framework/src/mx/collections/ISortField.as
+++ frameworks/projects/framework/src/mx/collections/ISortField.as
@@ -0,0 +1,169 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-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 mx.collections
+{
+/**
+ *  The ISortField interface defines the interface for classes that
+ *  are used with ISort classes, to provide the sorting information
+ *  required to sort the specific fields or property a collection view.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 4.5
+ */
+public interface ISortField
+    {
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The options argument that is used with the Array.sortOn method.
+     *  Return -1 if this ISortField shouldn't be used in the method.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function get arraySortOnOptions():int;
+
+    /**
+     *  The function that compares two items during a sort of items for the
+     *  associated collection. If you specify a compareFunction
+     *  property in an ISort object, Flex ignores any
+     *  compareFunction properties of the ISort's ISortField
+     *  objects.
+     *
The compare function must have the following signature:

+     *
+     *
function myCompare(a:Object, b:Object):int

+     *
+     *
This function must return the following values:

+     *
+     *

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

+     *
0, if a equals b

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

+     *

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function get compareFunction():Function;
+    function set compareFunction(c:Function):void;
+
+    /**
+     *  Specifies whether this field should be sorted in descending
+     *  order.
+     *
+     *
 The default value is false (ascending).

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function get descending():Boolean;
+    function set descending(value:Boolean):void;
+
+    /**
+     *  The name of the field to be sorted.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function get name():String;
+    function set name(n:String):void;
+
+    /**
+     *  Specifies that if the field being sorted contains numeric
+     *  (number/int/uint) values, or string representations of numeric values,
+     *  the comparator use a numeric comparison.
+     *  If this property is false, fields with string
+     *  representations of numbers are sorted using string comparison,
+     *  so 100 precedes 99, because "1" is a lower string value than "9".
+     *  If this property is null, the first data item
+     *  is introspected to see if it is a number or string and the sort
+     *  proceeds based on that introspection
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function get numeric():Object;
+    function set numeric(value:Object):void;
+
+    /**
+     *  True if this ISortField uses a custom comparator function.
+     *
+     *  @see @compareFunction
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function get usingCustomCompareFunction():Boolean;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  A helper function called by the Sort class to set the
+     *  default comparison function to perform a comparison based on
+     *  one of three things: whether or not a custom compare function has
+     *  been set, the data type for the specified field or the the value of the
+     *  numeric property. If the the numeric property is true,
+     *  then a numeric comparison will be performed when sorting.
+     *
+     *  @param obj The object that contains the data. If the field name has
+     *  been set with the name property, then the name will be used to access
+     *  the data value from this object. Otherwise the object itself will
+     *  be used as the data value.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function initializeDefaultCompareFunction(obj:Object):void;
+
+    /**
+     *  Reverse the criteria for this sort field.
+     *  If the field was sorted in descending order, for example, sort it
+     *  in ascending order.
+     *
+     *
Note: an ICollectionView does not automatically update when the
+     *  ISortFields are modified; call its refresh() method to
+     *  update the view.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
+     */
+    function reverse():void;
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 16663
Author:   egeorgie@adobe.com
Date:     2010-06-24T21:23:01.776267Z

Log Message:
-----------
Tweak framework perf instrumentation

- Replace .toString() calls with name, since it's cheaper
- Add tolerance of 2 ms.

QE notes: None
Doc notes: None
Bugs: N/A
Reviewer: Ryan
Tests run: ant main, doc, checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/PerfUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/LayoutManager.as
+++ frameworks/projects/framework/src/mx/managers/LayoutManager.as
@@ -592,7 +592,7 @@

             CONFIG::performanceInstrumentation
             {
-                perfUtil.markEnd(Object(obj).toString() + ".validateProperties()", token, 2 /*tolerance*/);
+                perfUtil.markEnd(".validateProperties()", token, 2 /*tolerance*/, obj);
             }

             // Once we start, don't stop.
@@ -1046,7 +1046,7 @@

         CONFIG::performanceInstrumentation
         {
-            perfUtil.markEnd("validateClient(" + target + ")", token, 2 /*tolerance*/);
+            perfUtil.markEnd(" validateClient()", token, 2 /*tolerance*/, target);
         }
         // trace("<--- LayoutManager: validateClient --- target = " + target);
     }


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

--- frameworks/projects/mx/src/mx/accessibility/DataGridAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/DataGridAccImpl.as
@@ -0,0 +1,681 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.accessibility
+{
+
+import flash.accessibility.Accessibility;
+import flash.events.Event;
+import mx.collections.CursorBookmark;
+import mx.collections.IViewCursor;
+import mx.controls.DataGrid;
+import mx.controls.listClasses.IListItemRenderer;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+import mx.events.DataGridEvent;
+
+use namespace mx_internal;
+
+/**
+ *  The DataGridAccImpl class is the accessibility class for DataGrid.
+ *
+ *  @helpid 3009
+ *  @tiptext This is the DataGrid Accessibility Class.
+ *  @review
+ */
+public class DataGridAccImpl extends ListBaseAccImpl
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class initialization
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Static variable triggering the hookAccessibility() method.
+	 *  This is used for initializing DataGridAccImpl class to hook its
+	 *  createAccessibilityImplementation() method to DataGrid class
+	 *  before it gets called from UIComponent.
+	 */
+	private static var accessibilityHooked:Boolean = hookAccessibility();
+
+	/**
+	 *  @private
+	 *  Static method for swapping the createAccessibilityImplementation()
+	 *  method of DataGrid with the DataGridAccImpl class.
+	 */
+	private static function hookAccessibility():Boolean
+	{
+		DataGrid.createAccessibilityImplementation =
+			createAccessibilityImplementation;
+
+		return true;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private static const ROLE_SYSTEM_LISTITEM:uint = 0x22;
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_FOCUSED:uint = 0x00000004;
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_INVISIBLE:uint = 0x00008000;
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_OFFSCREEN:uint = 0x00010000;
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_SELECTABLE:uint = 0x00200000;
+
+	/**
+	 *  @private
+	 */
+	private static const STATE_SYSTEM_SELECTED:uint = 0x00000002;
+
+	/**
+	 *  @private
+	 *  Event emitted if 1 item is selected.
+	 */
+	private static const EVENT_OBJECT_FOCUS:uint = 0x8005;
+
+	/**
+	 *  @private
+	 *  Event emitted if 1 item is selected.
+	 */
+	private static const EVENT_OBJECT_SELECTION:uint = 0x8006;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Method for creating the Accessibility class.
+	 *  This method is called from UIComponent.
+	 *  @review
+	 */
+	mx_internal static function createAccessibilityImplementation(
+								component:UIComponent):void
+	{
+		component.accessibilityImplementation =
+			new DataGridAccImpl(component);
+	}
+
+	/**
+	 *  Method call for enabling accessibility for a component.
+	 *  This method is required for the compiler to activate
+	 *  the accessibility classes for a component.
+	 */
+	public static function enableAccessibility():void
+	{
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param master The UIComponent instance that this AccImpl instance
+	 *  is making accessible.
+	 */
+	public function DataGridAccImpl(master:UIComponent)
+	{
+		super(master);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  eventsToHandle
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *	Array of events that we should listen for from the master component.
+	 *  @review
+	 */
+	override protected function get eventsToHandle():Array
+	{
+		return super.eventsToHandle.concat([ DataGridEvent.ITEM_FOCUS_IN ]);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: AccessibilityImplementation
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Gets the role for the component.
+	 *
+	 *  @param childID Children of the component
+	 */
+	override public function get_accRole(childID:uint):uint
+	{
+		if (childID == 0)
+			return role;
+
+		return ROLE_SYSTEM_LISTITEM;
+	}
+
+	/**
+	 *  @private
+	 *  IAccessible method for returning the value of the ListItem/DataGrid
+	 *  which is spoken out by the screen reader
+	 *  The DataGrid should return the name of the currently selected item
+	 *  with m of n string as value when focus moves to DataGrid.
+	 *
+	 *  @param childID uint
+	 *
+	 *  @return Name String
+	 *  @review
+	 */
+	override public function get_accValue(childID:uint):String
+	{
+		var accValue:String;
+
+		var dataGrid:DataGrid = DataGrid(master);
+
+		if (childID == 0)
+		{
+			var row:int;
+			var item:Object;
+			var columns:Array;
+			var n:int;
+			var i:int;
+
+			if (!dataGrid.editable)
+			{
+				row = dataGrid.selectedIndex;
+				if (row > -1)
+				{
+					item = getItemAt(row);
+
+					if (item is String)
+					{
+						accValue = "Row " + (row + 1) + " of " +
+								   dataGrid.dataProvider.length + " " + item;
+					}
+					else
+					{
+						accValue = "Row " + (row + 1)  + " of " + dataGrid.dataProvider.length;
+						columns = dataGrid.columns;
+						n = columns.length;
+						for (i = 0; i < n; i++)
+						{
+							accValue += " " + columns[i].headerText + " " + columns[i].itemToLabel(item);
+						}
+					}
+				}
+			}
+			else
+			{
+				var coord:Object = dataGrid.editedItemPosition;
+				if (coord)
+				{
+					row = coord.rowIndex;
+					var col:int = coord.columnIndex;
+					item = getItemAt(row);
+
+					if (item is String)
+					{
+						accValue = "Row " + (row + 1) + " of " +
+								   dataGrid.dataProvider.length + " " + item;
+					}
+					else
+					{
+						columns = dataGrid.columns;
+						var itemName:String = columns[i].itemToLabel(item);
+						var headerText:String = columns[col].headerText;
+						accValue = "Row " + (row + 1) + " of " + dataGrid.dataProvider.length;
+
+						//if (dataGrid.selectable == true &&
+						//    dataGrid.isItemSelected(row.data))
+						{
+							n = columns.length;
+							for (i = 0; i < n; i++)
+							{
+								accValue += " " + columns[i].headerText + " " + columns[i].itemToLabel(item);
+							}
+						}
+
+						accValue += ", Editing " + headerText + " " +
+								  itemName;
+					}
+				}
+			}
+		}
+
+		return accValue;
+	}
+
+	/**
+	 *  @private
+	 *  IAccessible method for returning the state of the GridItem.
+	 *  States are predefined for all the components in MSAA.
+	 *  Values are assigned to each state.
+	 *  Depending upon the GridItem being Selected, Selectable, Invisible,
+	 *  Offscreen, a value is returned.
+	 *
+	 *  @param childID uint
+	 *
+	 *  @return State uint
+	 */
+	override public function get_accState(childID:uint):uint
+	{
+		var dataGrid:DataGrid = DataGrid(master);
+
+		var accState:uint = getState(childID);
+
+		var row:int;
+		var col:int;
+
+		// 1 to columnCount * Rows -> ItemRenderers
+		if (childID > 0)
+		{
+			var index:int = childID - 1;
+			if (!dataGrid.editable)
+			{
+				row = index;
+				if (row < dataGrid.verticalScrollPosition ||
+					row >= dataGrid.verticalScrollPosition
+						+ dataGrid.rowCount - (dataGrid.headerVisible ? 1 : 0))
+				{
+					accState |= (STATE_SYSTEM_OFFSCREEN | STATE_SYSTEM_INVISIBLE);
+				}
+				else
+				{
+					accState |= STATE_SYSTEM_SELECTABLE;
+
+					var renderer:IListItemRenderer = dataGrid.itemToItemRenderer(
+						getItemAt(row));
+
+					if (renderer && dataGrid.isItemSelected(renderer.data))
+						accState |= STATE_SYSTEM_SELECTED | STATE_SYSTEM_FOCUSED;
+				}
+			}
+			else
+			{
+				row = Math.floor(index / dataGrid.columns.length);
+				col = index % dataGrid.columns.length;
+
+				if (row < dataGrid.verticalScrollPosition ||
+					row >= dataGrid.verticalScrollPosition
+						+ dataGrid.rowCount - (dataGrid.headerVisible ? 1 : 0))
+				{
+					accState |= (STATE_SYSTEM_OFFSCREEN | STATE_SYSTEM_INVISIBLE);
+				}
+				else if (dataGrid.columns[col].editable)
+				{
+					accState |= STATE_SYSTEM_SELECTABLE;
+
+					var coord:Object = dataGrid.editedItemPosition;
+					if (coord &&
+						coord.rowIndex == row &&
+						coord.columnIndex == col)
+					{
+						accState |= STATE_SYSTEM_SELECTED | STATE_SYSTEM_FOCUSED;
+					}
+				}
+			}
+		}
+
+		return accState;
+	}
+
+	/**
+	 *  @private
+	 *  IAccessible method for executing the Default Action.
+	 *
+	 *  @param childID uint
+	 */
+	override public function accDoDefaultAction(childID:uint):void
+	{
+		var dataGrid:DataGrid = DataGrid(master);
+
+		if (childID > 0) // see if this check needs to be given
+		{
+			// Assuming childID is always ItemID + 1
+			// because getChildIDArray may not always be invoked.
+			var index:int = childID - 1;
+			// index is the (0 based) index of the elements after the headers
+
+			if (!dataGrid.editable)
+			{
+				// index is the row id
+				dataGrid.selectedIndex = index;
+			}
+			else
+			{
+				var row:int = Math.floor(index / dataGrid.columns.length);
+				var col:int = index % dataGrid.columns.length;
+
+				dataGrid.editedItemPosition = { rowIndex: row, columnIndex: col };
+			}
+		}
+	}
+
+	/**
+	 *  @private
+	 *  Method to return an array of childIDs.
+	 *
+	 *  @return Array
+	 */
+	override public function getChildIDArray():Array
+	{
+		var childIDs:Array = [];
+
+		var dataGrid:DataGrid = DataGrid(master);
+
+		if (dataGrid.dataProvider)
+		{
+			// 0 is DataGrid, 1 to columnCount * Rows -> ItemRenderers
+			var n:int = 0;
+			if (!dataGrid.editable) // non editable case (itemRenderers)
+				n = dataGrid.dataProvider.length;
+			else // editable case (rows)
+				n = dataGrid.columns.length * dataGrid.dataProvider.length;
+
+			for (var i:int = 0; i < n; i++)
+			{
+				childIDs[i] = i + 1;
+			}
+		}
+		return childIDs;
+	}
+
+	/**
+	 *  @private
+	 *  IAccessible method for returning the bounding box of the GridItem.
+	 *
+	 *  @param childID uint
+	 *
+	 *  @return Location Object
+	 */
+	override public function accLocation(childID:uint):*
+	{
+		var dataGrid:DataGrid = DataGrid(master);
+
+		var index:int = childID - 1;
+		var row:int;
+		var col:int;
+		var addHeader:int = dataGrid.headerVisible ? 1 : 0;
+
+		if (!dataGrid.editable)
+		{
+			row = index + addHeader;
+
+			if (row < dataGrid.verticalScrollPosition ||
+				row >= dataGrid.verticalScrollPosition + dataGrid.rowCount)
+			{
+				return null;
+			}
+
+			return dataGrid.indicesToItemRenderer(row - dataGrid.verticalScrollPosition, 0);
+
+		}
+		else
+		{
+			row = Math.floor(index / dataGrid.columns.length) + addHeader;
+			col = index % dataGrid.columns.length;
+
+			if (row < dataGrid.verticalScrollPosition ||
+				row >= dataGrid.verticalScrollPosition + dataGrid.rowCount)
+			{
+				return null;
+			}
+
+			return dataGrid.indicesToItemRenderer(row - dataGrid.verticalScrollPosition, col);
+		}
+	}
+
+	/**
+	 *  @private
+	 *  IAccessible method for returning the childFocus of the DataGrid.
+	 *
+	 *  @param childID uint
+	 *
+	 *  @return focused childID.
+	 */
+	override public function get_accFocus():uint
+	{
+		var dataGrid:DataGrid = DataGrid(master);
+
+		if (!dataGrid.editable)
+		{
+			var index:uint = dataGrid.selectedIndex;
+
+			return index >= 0 ? index + 1 : 0;
+		}
+		else
+		{
+			var coord:Object = dataGrid.editedItemPosition;
+			if (!coord)
+				return 0;
+
+			var row:int = coord.rowIndex;
+			var col:int = coord.columnIndex;
+
+			return dataGrid.columns.length * row + col + 1;
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  method for returning the name of the ListItem/DataGrid
+	 *  which is spoken out by the screen reader
+	 *  The ListItem should return the label as the name with m of n string and
+	 *  DataGrid should return the name specified in the AccessibilityProperties.
+	 *
+	 *  @param childID uint
+	 *
+	 *  @return Name String
+	 *  @review
+	 */
+	override protected function getName(childID:uint):String
+	{
+		var dataGrid:DataGrid = DataGrid(master);
+		// 0 -> DataGrid
+		if (childID == 0 || childID > dataGrid.dataProvider.length)
+			return "";
+
+		var name:String;
+
+
+
+		//1 to columnCount * Rows -> ItemRenderers
+		if (childID > 0) // see if this check needs to be given
+		{
+			// assuming childID is always ItemID + 1
+			// because getChildIDArray may not always be invoked.
+			var index:int = childID - 1;
+
+			// index is the (0 based) index of the elements after the headers
+			var row:int
+			var item:Object;
+			var columns:Array;
+			var n:int;
+			var i:int;
+
+			if (!dataGrid.editable)
+			{
+				// index is the row id
+				row = index;
+				item = getItemAt(index);
+				if (item is String)
+				{
+					name = "Row " + (row + 1) + " of " +
+						   dataGrid.dataProvider.length + " " + item;
+				}
+				else
+				{
+					name = "Row " + (row + 1)  + " of " + dataGrid.dataProvider.length;
+					columns = dataGrid.columns;
+					n = columns.length;
+					for (i = 0; i < n; i++)
+					{
+						name += " " + columns[i].headerText + " " + columns[i].itemToLabel(item);
+					}
+				}
+			}
+			else
+			{
+				row = Math.floor(index / dataGrid.columns.length);
+				var col:int = index % dataGrid.columns.length;
+
+				item = getItemAt(row);
+
+				// sometimes item may be an object.
+				if (item is String)
+				{
+					name = "Row " + (row + 1) + " of " +
+						   dataGrid.dataProvider.length + " " + item;
+				}
+				else
+				{
+					columns = dataGrid.columns;
+
+					var itemName:String = columns[i].itemToLabel(item);
+
+					var headerText:String = columns[col].headerText;
+
+					name = "Row " + (row + 1) + " of " + dataGrid.dataProvider.length;
+
+					//if (dataGrid.selectable == true && dataGrid.isItemSelected(row.data))
+					{
+						n = columns.length;
+						for (i = 0; i < columns.length; i++)
+						{
+							name += " " + columns[i].headerText + " " + columns[i].itemToLabel(item);
+						}
+					}
+
+					name += ", Editing " + headerText + " " +
+							itemName;
+				}
+			}
+		}
+
+		return name;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden event handlers: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Override the generic event handler.
+	 *  All AccImpl must implement this to listen
+	 *  for events from its master component.
+	 */
+	override protected function eventHandler(event:Event):void
+	{
+		var dataGrid:DataGrid = DataGrid(master);
+
+		switch (event.type)
+		{
+			case "change":
+			{
+				if (!dataGrid.editable)
+				{
+					var index:int = dataGrid.selectedIndex;
+					if (index >= 0)
+					{
+						var childID:uint = index + 1;
+
+						Accessibility.sendEvent(dataGrid, childID,
+												EVENT_OBJECT_FOCUS);
+
+						Accessibility.sendEvent(dataGrid, childID,
+												EVENT_OBJECT_SELECTION);
+					}
+				}
+				break;
+			}
+
+			case DataGridEvent.ITEM_FOCUS_IN:
+			{
+				if (dataGrid.editable)
+				{
+					var item:int = DataGridEvent(event).rowIndex;
+					var col:int = DataGridEvent(event).columnIndex;
+
+					Accessibility.sendEvent(dataGrid,
+									dataGrid.columns.length * item + col + 1,
+									EVENT_OBJECT_FOCUS);
+
+					Accessibility.sendEvent(dataGrid,
+									dataGrid.columns.length * item + col + 1,
+									EVENT_OBJECT_SELECTION);
+				}
+				break;
+			}
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private function getItemAt(index:int):Object
+	{
+		var iterator:IViewCursor = DataGrid(master).collectionIterator;
+		iterator.seek(CursorBookmark.FIRST, index);
+		return iterator.current;
+	}
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 6957
Author:   jimurphy@adobe.com
Date:     2009-05-15T16:11:59.737851Z

Log Message:
-----------
Merged beta1 revisions 6898,6906,6913,6915,6917,6926,6930 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/ImageHelper.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/flash-integration/FlexComponentKit.mxp</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/swf/FXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/ShapeHelper.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/HRule.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/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/GlowFilterNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/FlexComponentKit.mxi</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/TypeHelper.java</path>

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

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -434,12 +434,10 @@
 	/**
 	 *  @private
 	 */
-	override protected function commitSelectedIndex():Boolean
-    {
-    	var result:Boolean = super.commitSelectedIndex();
+	override protected function commitMultipleSelection():void
+    {
+    	super.commitMultipleSelection();
        	updateLabelElement();
-
-    	return result;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 5384
Author:   clucier@adobe.com
Date:     2009-03-18T14:54:24.654938Z

Log Message:
-----------
SDK-19990 – DropDownList was eating ENTER, preventing default button from firing, should only do so when drop down is open.
SDK-19988 – Editable data grid should disable default button since ENTER has a control specific meaning in edit mode.
SDK-19985 – Editable data grid was disabling default button globally but forgetting to restore it on focus out.

Also made a usability change after talking with Joanne (bless her little heart), when a control disables default button behavior (such as TextArea does , because ENTER means to insert a new line), we now make sure to de-emphasize the default button visually, to hint to the user that it’s not active.  Historically it was always emphasized but ENTER just never activated it.

QE Notes: Be aware that when a control disables defaultButton globally (FxTextArea does this), default button is no longer emphasized.
Doc Notes: None
Reviewer: Chet

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DropDownList.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/managers/FocusManager.as</path>

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

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -735,15 +735,21 @@
         }
         else if (event.keyCode == Keyboard.ENTER)
         {
-        	// Close the dropDown and eat the event
-            closeDropDown(true);
-            event.stopPropagation();
+            // Close the dropDown and eat the event if appropriate.
+            if (isOpen)
+            {
+                closeDropDown(true);
+                event.stopPropagation();
+            }
         }
         else if (event.keyCode == Keyboard.ESCAPE)
         {
-        	// Close the dropDown and eat the event
-            closeDropDown(false);
-            event.stopPropagation();
+            // Close the dropDown and eat the event if appropriate.
+            if (isOpen)
+            {
+                closeDropDown(false);
+                event.stopPropagation();
+            }
         }
         else if (event.keyCode == Keyboard.UP ||
                 event.keyCode == Keyboard.DOWN ||


Transferred from the Adobe Open Source Subversion Repository

Revision: 5573
Author:   jimurphy@adobe.com
Date:     2009-03-26T15:11:59.159776Z

Log Message:
-----------
-more updated package and class names that were missed in the first pass
-remove the mx folder

qa: probably
doc: this updated more asdoc comments so you may want to make sure that this pass made the correct updates
checkintests: pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layout/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/SetActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/IEaser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/DataGroupExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/pathSegments/PathSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/asdoc/en_US/mx/components/examples/FxToggleButtonExample.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/WipeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SetAction.as</path>

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

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -241,7 +241,7 @@
     private var _itemRenderer:IFactory;

     /**
-     *  @copy mx.components.DataGroup#itemRenderer
+     *  @copy spark.components.DataGroup#itemRenderer
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -271,7 +271,7 @@
     private var _itemRendererFunction:Function;

     /**
-     *  @copy mx.components.DataGroup#itemRendererFunction
+     *  @copy spark.components.DataGroup#itemRendererFunction
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/components/ToggleButton.as
+++ frameworks/projects/spark/src/spark/components/ToggleButton.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package flex.component
+package mx.components
 {

 import flash.events.Event;
@@ -39,7 +39,7 @@
 /**
  *  Documentation is not currently available.
  */
-public class ToggleButton extends Button
+public class FxToggleButton extends FxButton
 {
     include "../core/Version.as";

@@ -52,7 +52,7 @@
     /**
      *  Constructor.
      */
-    public function ToggleButton()
+    public function FxToggleButton()
 	{
 		super();

@@ -65,7 +65,7 @@
     //
     // -----------------------------------------------------------------------

-    protected static const selectedFlag:uint = Button.lastFlag << 1;
+    protected static const selectedFlag:uint = FxButton.lastFlag << 1;

 	protected static const lastFlag:uint = selectedFlag;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7693
Author:   rfrishbe@adobe.com
Date:     2009-06-09T23:06:34.640877Z

Log Message:
-----------
VideoPlayer fixes:

- When swapping skins, we need to make sure our video element was validated, otherwise it might start playing at a later date and/or our playhead info might not be correct.
- Fix a bug for how URL's containing a "?" are handled.
- Change VideoPlayerVolumeBar to use a normal dropshadow since the RectangularDropShadow class actually blocks mouse interactions
- Fix up live streaming

QE Notes: -
Doc Notes: -
Bugs: SDK-21696, SDK-21675, SDK-21328, SDK-21262
Reviewer: Deepa
tests: checkintest, mustella videoelement/videoplayer tests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/VideoDisplay.as
+++ frameworks/projects/spark/src/spark/components/VideoDisplay.as
@@ -14,7 +14,9 @@
 import fl.video.DynamicStream;
 import fl.video.DynamicStreamItem;
 import fl.video.MetadataEvent;
+import fl.video.NCManagerDynamicStream;
 import fl.video.VideoAlign;
+import fl.video.VideoError;
 import fl.video.VideoEvent;
 import fl.video.VideoPlayer;
 import fl.video.VideoScaleMode;
@@ -175,7 +177,10 @@
     public function VideoElement()
     {
         super();
-        VideoPlayer.iNCManagerClass = fl.video.NCManagerDynamicStream;
+
+        // set up the VideoPlayer's iNCManagerClass to point to our FlexNCManager,
+        // which is a private class
+        VideoPlayer.iNCManagerClass = FlexNCManager;

         // we wrap the VideoPlayer inside of another container because
         // the video player doesn't handle setting x/y correctly. we could allocate
@@ -793,7 +798,15 @@
             videoPlayerProperties = {autoRewind: videoPlayer.autoRewind,
                                      scaleMode: videoPlayer.scaleMode};

-            videoPlayer.stop();
+            // if we try to stop and are throwing away this video, just
+            // ignore any errors. This might happen if the connection went
+            // bad or something else and we're trying to throw it away anyways.
+            try
+            {
+                videoPlayer.stop();
+            } catch (e:VideoError) {};
+
+            // clear out old video player and close the connection
             videoPlayer.close();
             videoPlayer.clear();

@@ -948,6 +961,11 @@
                 sourceLastPlayed = source;

                 flvSource.uri = streamingSource.serverURI;
+
+                // if dealing with a live streaming video, set start = -1
+                // otherwise we don't worry about the start parameter
+                if (streamingSource.live)
+                    flvSource.start = -1;

                 var n:int = streamingSource.streamItems.length;
                 var item:StreamItem;
@@ -1200,3 +1218,109 @@
     }
 }
 }
+
+import fl.video.flvplayback_internal;
+import fl.video.NCManagerDynamicStream;
+import fl.video.VideoError;
+import fl.video.SMILManager;
+import fl.video.ParseResults;
+
+use namespace flvplayback_internal;
+
+/**
+ *  @private
+ *  We only have this class to fix a bug when handling "?"
+ *  in URLs.  Hopefully Strobe will fix this directly.
+ */
+class FlexNCManager extends NCManagerDynamicStream
+{
+    public function FlexNCManager()
+    {
+        super();
+    }
+
+    /**
+     * @copy INCManager#connectToURL()
+     * @see INCManager#connectToURL()
+     *
+     * @langversion 3.0
+     * @playerversion Flash 9.0.28.0
+     */
+    override public function connectToURL(url:String):Boolean {
+        //ifdef DEBUG
+        //debugTrace("connectToURL(" + url + ")");
+        //endif
+
+        // init
+        initOtherInfo();
+        _contentPath = url;
+        if (_contentPath == null || _contentPath == "") {
+            throw new VideoError(VideoError.INVALID_SOURCE);
+        }
+
+        // parse URL to determine what to do with it
+        var parseResults:ParseResults = parseURL(_contentPath);
+        if (parseResults.streamName == null || parseResults.streamName == "") {
+            throw new VideoError(VideoError.INVALID_SOURCE, url);
+        }
+
+        // connect to either rtmp or http or download and parse smil
+        var canReuse:Boolean;
+        if (parseResults.isRTMP) {
+            canReuse = canReuseOldConnection(parseResults);
+            _isRTMP = true;
+            _protocol = parseResults.protocol;
+            _streamName = parseResults.streamName;
+            _serverName = parseResults.serverName;
+            _wrappedURL = parseResults.wrappedURL;
+            _portNumber = parseResults.portNumber;
+            _appName = parseResults.appName;
+            if ( _appName == null || _appName == "" ||
+                 _streamName == null || _streamName == "" ) {
+                throw new VideoError(VideoError.INVALID_SOURCE, url);
+            }
+            _autoSenseBW = (_streamName.indexOf(",") >= 0);
+            return (canReuse || connectRTMP());
+        } else {
+            var name:String = parseResults.streamName;
+            if ( name.indexOf("?") < 0 &&
+                 (name.length < 4 || name.slice(-4).toLowerCase() != ".txt") &&
+                 (name.length < 4 || name.slice(-4).toLowerCase() != ".xml") &&
+                 (name.length < 5 || name.slice(-5).toLowerCase() != ".smil") ) {
+                canReuse = canReuseOldConnection(parseResults);
+                _isRTMP = false;
+                _streamName = name;
+                return (canReuse || connectHTTP());
+            }
+            // special flex case to deal with blah.flv?t=ojoj
+            else if ( name.indexOf("?") != -1 )
+            {
+                // common types of video files
+                var streamTypes:Array = ["mp4", "mov", "m4v", "m4a", "f4v", "3gp", "3g2", "flv"];
+                // if "?" then idx 0 should always be stream name, unless someone messed up URL
+                var preQueryString:String = name.split("?")[0];
+                // check extension and treat as vid file if exists
+                if (preQueryString.length >= 3 && streamTypes.indexOf(preQueryString.slice(-3).toLowerCase()) != -1)
+                {
+                    canReuse = canReuseOldConnection(parseResults);
+                    _isRTMP = false;
+                    _streamName = name;
+                    return (canReuse || connectHTTP());
+                }
+            }
+
+            if (name.indexOf("/fms/fpad") >= 0) {
+                try {
+                    return connectFPAD(name);
+                } catch (err:Error) {
+                    // just use SMILManager if there is any error
+                    //ifdef DEBUG
+                    //debugTrace("fpad error: " + err);
+                    //endif
+                }
+            }
+            _smilMgr = new SMILManager(this);
+            return _smilMgr.connectXML(name);
+        }
+    }
+}


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

--- frameworks/projects/spark/src/spark/layouts/TileOrientation.as
+++ frameworks/projects/spark/src/spark/layouts/TileOrientation.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 spark.layouts
 {


Still untested, but I saw this bug while reading my checkin.
BRAINS!

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

--- src/as/com/threerings/util/Log.as
+++ src/as/com/threerings/util/Log.as
@@ -213,7 +213,7 @@
             // cache miss- copy some parent spec's level...
             var modSpec :String = spec;
             do {
-                var dex :int = modSpec.indexOf(".");
+                var dex :int = modSpec.lastIndexOf(".");
                 if (dex == -1) {
                     modSpec = "";
                 } else {


Change version to 1.1.1

Change version to 1.1.1

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -110,7 +110,7 @@
         /**
          * Hold OVV version. Will past to JavaScript as well $ovv.version
          */
-        public static const RELEASE_VERSION: String = "1.1.0";
+        public static const RELEASE_VERSION: String = "1.1.1";

         ////////////////////////////////////////////////////////////


Require a reference to the ad on instantiation.

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -223,7 +223,7 @@
          * @param interval The number of milliseconds between polls to
          * JavaScript for viewability information. Defaults to 250.
          */
-        public function OVVAsset(beaconSwfUrl:String = null, id:String = null, adRef:DisplayObject=null) {
+        public function OVVAsset(adRef:DisplayObject, beaconSwfUrl:String = null, id:String = null) {
             if (!externalInterfaceIsAvailable()) {
                 dispatchEvent(new OVVEvent(OVVEvent.OVVError, {
                     "message": "ExternalInterface unavailable"


Fix client disconnect

Fix client disconnect

--- csi/flash/src/main/flex/org/shypl/biser/csi/client/Client.as
+++ csi/flash/src/main/flex/org/shypl/biser/csi/client/Client.as
@@ -60,7 +60,7 @@
 		}

 		public function disconnect():void {
-			if (!isConnecting() && !isConnecting()) {
+			if (!_connecting && !_connected) {
 				throw new IllegalStateException();
 			}
 			_connecting = false;


- change: Added support for backdating or predating the start time of CSS property transitions

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@688 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/css/transitions/CSSTransitionsManager.as
+++ src/reprise/css/transitions/CSSTransitionsManager.as
@@ -42,6 +42,7 @@
 		protected var m_defaultValues : Array;

 		protected var m_activeTransitions : Object;
+		protected var m_adjustedStartTimes : Object;
 		protected var m_target : EventDispatcher;
 		protected var m_frameDuration : int;

@@ -52,6 +53,7 @@
 		public function CSSTransitionsManager(target : EventDispatcher)
 		{
 			m_target = target;
+			m_adjustedStartTimes = {};
 		}

 		public function isActive() : Boolean
@@ -67,6 +69,12 @@
 		public function hasActiveTransitionForStyle(style : String) : Boolean
 		{
 			return m_activeTransitions && m_activeTransitions[style] != null;
+		}
+
+		public function registerAdjustedStartTimeForProperty(
+			startTime : int, property : String) : void
+		{
+			m_adjustedStartTimes[property] = startTime;
 		}

 		public function processTransitions(oldStyles : CSSDeclaration, newStyles : CSSDeclaration,
@@ -170,7 +178,8 @@
 						transition.duration = transitionDuration;
 						transition.delay = transitionDelay;
 						transition.easing = transitionEasing;
-						transition.startTime = frameTime;
+						transition.startTime =
+							m_adjustedStartTimes[transitionPropName] || frameTime;
 						transition.startValue = oldValue;
 						transition.endValue = targetValue;
 						m_activeTransitions[transitionPropName] = transition;
@@ -183,8 +192,9 @@
 					else if (transition.endValue != targetValue)
 					{
 						transition.easing = transitionEasing;
-						transition.updateValues(targetValue, transitionDuration,
-							transitionDelay, frameTime, m_frameDuration, this);
+						transition.updateValues(targetValue, transitionDuration, transitionDelay,
+							m_adjustedStartTimes[transitionPropName] || frameTime,
+							m_frameDuration, this);
 					}
 				}

@@ -280,6 +290,8 @@
 				m_target.dispatchEvent(allCompleteEvent);
 			}

+			m_adjustedStartTimes = {};
+
 			return styles;
 		}


fixed some typos (they weren't causing any problems, I just noticed them);

--- flexEditor/src/org/arisgames/editor/view/QuestsEditorView.as
+++ flexEditor/src/org/arisgames/editor/view/QuestsEditorView.as
@@ -65,9 +65,9 @@
         AppServices.getInstance().getQuestsByGameId(GameModel.getInstance().game.gameId, new Responder(handleLoadQuests, handleFault));
     }

-	public function handleRequiementsForActiveButtonClick(evt:MouseEvent):void
-	{
-		trace("QuestsEditorView: handleRequiementsForActiveButtonClick() called with Selected Index = '" + dg.selectedIndex + "'");
+	public function handleRequirementsForActiveButtonClick(evt:MouseEvent):void
+	{
+		trace("QuestsEditorView: handleRequirementsForActiveButtonClick() called with Selected Index = '" + dg.selectedIndex + "'");
 		this.openRequirementsEditor(AppConstants.REQUIREMENTTYPE_QUESTDISPLAY);

 	}
@@ -179,7 +179,7 @@
                     trace("&&&&& Checking j = '" + j + "'; Quest Id = '" + q.questId + "'");
                     if (isNaN(q.questId))
                     {
-                        trace("Found previusly added / saved quest.  Add Id to it and exiting method.");
+                        trace("Found previusly added / saved quest.  Add ID to it and exiting method.");
                         q.questId = qid;
                         quests.refresh();
                         return;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4921
Author:   jvroom@adobe.com
Date:     2009-02-10T22:15:20.383531Z

Log Message:
-----------
Bugs: LCDS-548 - Two more issues: if argumentNames was not set, we did not hit the special
case for a single XML parameter.  Secondly (and more importantly), if there was a single String
parameter and the content type was XML the String would get converted using the SimpleXMLEncoder
which escaped the string (and the request body would guaranteed to not be valid XML).
With this fix, a single String parameter is now fed in directly as the body of the HTTP
request when the content type is XML.

QA: yes, verify the bug is fixed

Doc: Could use a release note because of the behavioral change:

"There has been a minor behavior change to the HTTPService when you set
its contentType to 'application/xml'.  If you call 'send' with a single String parameter
that value is now treated as the XML String itself and placed directly into the request
body.  Previously the request body was formed by escaping all HTML control characters
found in the String."

Reviewers: Seth and Pete

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

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

--- frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as
+++ frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as
@@ -73,8 +73,6 @@
     {
         super(service, name);

-        argumentNames = [];
-
         _log = Log.getLogger("mx.rpc.http.HTTPService");

         concurrency = Concurrency.MULTIPLE;
@@ -586,7 +584,9 @@

         if (ctype == CONTENT_TYPE_XML)
         {
-            if (!(parameters is XMLNode) && !(parameters is XML))
+            if (parameters is String && xmlEncode == null)
+                paramsToSend = parameters as String;
+            else if (!(parameters is XMLNode) && !(parameters is XML))
             {
                 if (xmlEncode != null)
                 {


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

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

 package spark.effects.easing
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8483
Author:   smgilson@adobe.com
Date:     2009-07-09T17:52:48.367800Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/effects/easing/Linear.as
+++ frameworks/projects/spark/src/spark/effects/easing/Linear.as
@@ -40,7 +40,7 @@
  *  and adds the following tag attributes:

  *
  *

- *  <mx:Linear
+ *  <s:Linear
  *    id="ID"
  *    easeInFraction="0"
  *    easeOutFraction="0"


FLEX-34775 Improved unit tests.

FLEX-34775 Improved unit tests.

--- frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as
+++ frameworks/tests/unitTests/mx/collections/HierarchicalCollectionView_FLEX_34775_Tests.as
@@ -19,32 +19,35 @@

 package mx.collections
 {
+    import mx.collections.*;
+    import mx.utils.StringUtil;
+
     import org.flexunit.asserts.assertEquals;

-    public class HierarchicalCollectionView_FLEX_34775_Tests
-	{
-		private static var _utils:HierarchicalCollectionViewTestUtils = new HierarchicalCollectionViewTestUtils();
-		private static var _sut:HierarchicalCollectionView;
-		private var _level0:ArrayCollection;
-
-		[Before]
-		public function setUp():void
-		{
+    public class HierarchicalCollectionView_FLEX_34775_Test
+    {
+        private static var _utils:HierarchicalCollectionViewTestUtils = new HierarchicalCollectionViewTestUtils();
+        private static var _sut:HierarchicalCollectionView;
+        private var _level0:ArrayCollection;
+
+        [Before]
+        public function setUp():void
+        {
             _sut = generateHierarchyViewWithClosedNodes();
             _level0 = _utils.getRoot(_sut) as ArrayCollection;
-		}
-
-		[After]
-		public function tearDown():void
-		{
+        }
+
+        [After]
+        public function tearDown():void
+        {
             _sut = null;
             _level0 = null;
-		}
+        }

         [Test]
-        public function test_navigation_after_opening_hidden_node():void
+        public function test_navigation_after_trying_to_open_inaccessible_node():void
         {
             //given
             var company:DataNode = _level0.getItemAt(0) as DataNode;
@@ -53,27 +56,95 @@
             //when
             _sut.openNode(location);

-            var cursor:IViewCursor = _sut.createCursor();
+            //then
+            var stepsRequiredToNavigateStructure:int = attemptNavigation(_sut);
+            assertEquals(1, stepsRequiredToNavigateStructure);
+            assertEquals(1, _sut.length);
+        }
+
+        [Test]
+        public function test_navigation_after_trying_to_open_accessible_node():void
+        {
+            //given
+            var company:DataNode = _level0.getItemAt(0) as DataNode;
+            var location:DataNode = company.children.getItemAt(0) as DataNode;
+
+            //when
+            _sut.openNode(company);
+            _sut.openNode(location);
+
+            //then
+            var stepsRequiredToNavigateStructure:int = attemptNavigation(_sut);
+            assertEquals(3, stepsRequiredToNavigateStructure);
+            assertEquals(3, _sut.length);
+        }
+
+        [Test]
+        public function test_navigation_after_trying_to_open_previously_closed_node():void
+        {
+            //given
+            var company:DataNode = _level0.getItemAt(0) as DataNode;
+            var location:DataNode = company.children.getItemAt(0) as DataNode;
+
+            //when
+            _sut.openNode(company);
+            _sut.openNode(location);
+            _sut.closeNode(location);
+
+            //then
+            var stepsRequiredToNavigateStructure:int = attemptNavigation(_sut);
+            assertEquals(2, stepsRequiredToNavigateStructure);
+            assertEquals(2, _sut.length);
+        }
+
+        [Test]
+        public function test_navigation_after_trying_to_open_filtered_out_node():void
+        {
+            function filterOutLocationNode(node:DataNode):Boolean {
+                return node && node.label != locationNodeName;
+            };
+
+            const locationNodeName:String = StringUtil.trim(HIERARCHY_STRING.split("\n")[2]);
+
+            //given
+            var company:DataNode = _level0.getItemAt(0) as DataNode;
+            var location:DataNode = company.children.getItemAt(0) as DataNode;
+            _sut.openNode(company);
+            _sut.openNode(location);
+
+            //when
+            _sut.filterFunction = filterOutLocationNode;
+            _sut.refresh();
+
+            _sut.openNode(location);
+
+            //then
+            var stepsRequiredToNavigateStructure:int = attemptNavigation(_sut);
+            assertEquals(1, stepsRequiredToNavigateStructure);
+            assertEquals(1, _sut.length);
+        }
+
+        private function attemptNavigation(into:HierarchicalCollectionView):int
+        {
+            var cursor:IViewCursor = into.createCursor();
             var i:int = 0;
             while(!cursor.afterLast && i++ < 100)
             {
                 cursor.moveNext();
             }

-            //then
-            assertEquals(1, i);
-            assertEquals(1, _sut.length);
+            return i;
         }

-		private static function generateHierarchyViewWithClosedNodes():HierarchicalCollectionView
-		{
-			return _utils.generateHCV(_utils.generateHierarchySourceFromString(HIERARCHY_STRING));
-		}
+        private static function generateHierarchyViewWithClosedNodes():HierarchicalCollectionView
+        {
+            return _utils.generateHCV(_utils.generateHierarchySourceFromString(HIERARCHY_STRING));
+        }

-		private static const HIERARCHY_STRING:String = (<![CDATA[
-			Adobe
-			Adobe->London
-            Adobe->London->FlexDept
-		]]>).toString();
-	}
+        private static const HIERARCHY_STRING:String = (<![CDATA[
+                Adobe
+        Adobe->London
+        Adobe->London->FlexDept
+    ]]>).toString();
+    }
 }


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

--- frameworks/projects/advancedgrids/src/mx/olap/IOLAPDimension.as
+++ frameworks/projects/advancedgrids/src/mx/olap/IOLAPDimension.as
@@ -0,0 +1,179 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.olap
+{
+import mx.collections.ICollectionView;
+import mx.collections.IList;
+
+/**
+ *  The IOLAPDimension interface represents a dimension in an IOLAPCube instance.
+ *.
+ *  @see mx.olap.OLAPDimension
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IOLAPDimension extends IOLAPElement
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  attributes
+	//----------------------------------
+
+    /**
+     *  The attributes of this dimension, as a list of OLAPAttribute instances.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get attributes():IList;
+
+    //----------------------------------
+	//  cube
+	//----------------------------------
+
+    /**
+     *  The cube to which this dimension belongs.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get cube():IOLAPCube;
+
+    //----------------------------------
+	//  defaultMember
+	//----------------------------------
+
+    /**
+     *  The default member of this dimension.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get defaultMember():IOLAPMember;
+
+    //----------------------------------
+	//  hierarchies
+	//----------------------------------
+
+    /**
+     *  All the hierarchies for this dimension, as a list of IOLAPHierarchy instances.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get hierarchies():IList; // of IOLAPHierarchy
+
+    //----------------------------------
+	//  members
+	//----------------------------------
+
+    /**
+     *  Returns all the members of this dimension, as a list of IOLAPMember instances.
+     *
+     *  The returned list might represent remote data and therefore can throw
+     *  an ItemPendingError.
+     *
+     *  @param name The name of the hierarchy.
+     *
+     *  @return An IOLAPHierarchy instance representing the hierarchy,
+     *  or null if a hierarchy is not found.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get members():IList;
+
+    //----------------------------------
+	//  isMeasure
+	//----------------------------------
+
+    /**
+     * Contains true if this is the measures dimension,
+     * which holds all the measure members.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get isMeasure():Boolean;
+
+    //--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Returns the attribute with the given name within the dimension.
+     *
+     *  @param name The name of the attribute.
+     *
+     *  @return An IOLAPAttribute instance representing the attribute,
+     *  or null if an attribute is not found.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function findAttribute(name:String):IOLAPAttribute
+
+    /**
+     *  Returns the hierarchy with the given name within the dimension.
+     *
+     *  @param name The name of the hierarchy.
+     *
+     *  @return An IOLAPHierarchy instance representing the hierarchy,
+     *  or null if a hierarchy is not found.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function findHierarchy(name:String):IOLAPHierarchy;
+
+    /**
+     *  Returns the member with the given name within the dimension.
+     *
+     *  @param name The name of the member.
+     *
+     *  @return An IOLAPMember instance representing the member,
+     *  or null if a member is not found.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function findMember(name:String):IOLAPMember;
+}
+}


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

--- frameworks/projects/framework/src/mx/collections/ItemWrapper.as
+++ frameworks/projects/framework/src/mx/collections/ItemWrapper.as
@@ -0,0 +1,66 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections
+{
+
+/**
+ *  @private
+ *
+ *  The ItemWrapper class is a simple envelope for an item in a collection.
+ *  Its purpose is to provide a way of distinguishing between duplicate items
+ *  in a collection -- i.e., giving them unique IDs. It is used by data change
+ *  effects for classes derived by ListBase. Distinguishing between duplicate
+ *  elements is particularly important for data change effects because it is
+ *  necessary to assign common item renderers to common items in a collection
+ */
+public class ItemWrapper
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructs an instance of the wrapper with the specified data.
+	 *
+	 *  @param data The data element to be wrapped.
+	 */
+	public function ItemWrapper(data:Object)
+	{
+		super();
+		this.data = data;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  The data item being wrapped.
+	 */
+    public var data:Object;
+
+}
+
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

 package spark.core
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/filters/DropShadowFilter.as
+++ frameworks/projects/spark/src/spark/filters/DropShadowFilter.as
@@ -66,6 +66,10 @@
  *  />
  *  </pre>
  *
+ * @includeExample examples/DropShadowFilterExample.mxml
+ *
+ * @see flash.filters.DropShadowFilter
+ *
  * @langversion 3.0
  * @playerversion Flash 10
  * @playerversion AIR 1.5


Bug 707086: fix typo in changeset 6763:ad451f02f6ee (r=fklockii).

--- utils/abcdump.as
+++ utils/abcdump.as
@@ -421,7 +421,7 @@
                             s += '"' + abc.strings[readU32()].replace(/\n/g,"\\n").replace(/\t/g,"\\t") + '"'
                             break
                         case OP_pushnamespace:
-                            s += abc.namespaces[read32()]
+                            s += abc.namespaces[readU32()]
                             break
                         case OP_pushint:
                             var i:int = abc.ints[readU32()]