Transferred from the Adobe Open Source Subversion Repository

Revision: 17042
Author:   cframpto@adobe.com
Date:     2010-07-23T16:04:29.868893Z

Log Message:
-----------
PARB changes for DataGrid selection

removed from DG and/or Grid:
allSelectedCells()
allSelectedIndices()
selectionContainsOnlyCell()
selectionContainsOnlyCellRegion()
selectionContainsOnlyIndex()
selectionContainsOnlyIndices()

these read-only properties have been added to Grid:
selectedCell
selectedCells
selectedIndex
selectedIndices
selectedItem
selectedItems
selectionLength

new CellRegion and CellPosition classes.  Return Vector.<CellPosition> rather than Vector.<Object> for cell selection.

Signature of getCellsAt changed to return Vector.<CellPosition>
Signature of GridSelectionEvent changed to have one arg, selectionChange:CellRegion.

QE notes: API changes so expect some test breakage
Doc notes:
Bugs:
Reviewer: Hans
Tests run: none
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/GridSelection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridSelectionEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/CellRegion.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="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/CellPosition.as</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="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Tree.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/GridContainerBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -27,6 +27,7 @@
     import mx.events.FlexEvent;
     import mx.utils.ObjectUtil;

+    import spark.components.supportClasses.CellPosition;
     import spark.components.supportClasses.GridColumn;
     import spark.components.supportClasses.GridDimensions;
     import spark.components.supportClasses.GridLayout;
@@ -707,6 +708,10 @@
                 }
             }

+            // Reset the cursor here so that if it is set before commitProperties
+            // is run the change isn't wiped out.
+            caretRowIndex = caretColumnIndex = -1;
+
             columnsChanged = true;
             invalidateProperties();
             invalidateSize();
@@ -796,6 +801,10 @@
             if (newDataProvider)
                 newDataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, dataProvider_collectionChangeHandler, false, 0, true);

+            // Reset the cursor here so that if it is set before commitProperties
+            // is run the change isn't wiped out.
+            caretRowIndex = caretColumnIndex = -1;
+
             dataProviderChanged = true;
             invalidateProperties();
             invalidateSize();
@@ -1149,7 +1158,11 @@
         //----------------------------------

         /**
-         *  If true, a selection is required. TBDye
+         *  If true and the selectionMode is not
+         *  GridSelectionMode.NONE, an item must always be selected
+         *  in the grid.
+         *
+         *  @default false
          *
          *  @langversion 3.0
          *  @playerversion Flash 10
@@ -1318,6 +1331,219 @@
         }

         //----------------------------------
+        //  selectedCell
+        //----------------------------------
+
+        [Bindable("selectionChange")]
+        [Bindable("valueCommit")]
+
+        /**
+         *  If selectionMode is GridSelectionMode.SINGLE_CELL
+         *  or GridSelectionMode.MULTIPLE_CELLS, returns the first
+         *  selected cell starting at row 0 column 0 and progressing thru each
+         *  column in a row before moving to the next row.
+         *
+         *
When the user changes the selection by interacting with the
+         *  control, the control dispatches the selectionChange
+         *  event. When the user changes the selection programmatically, the
+         *  control dispatches the valueCommit event.

+         *
+         *  @default null
+         *
+         *  @return CellPosition of the first selected cell or null if there is
+         *  no cell selection.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 2.0
+         *  @productversion Flex 4.5
+         */
+        public function get selectedCell():CellPosition
+        {
+            var selectedCells:Vector.<CellPosition> = gridSelection.allCells();
+            return selectedCells.length ? selectedCells[0] : null;
+        }
+
+        //----------------------------------
+        //  selectedCells
+        //----------------------------------
+
+        [Bindable("selectionChange")]
+        [Bindable("valueCommit")]
+
+        /**
+         *  If selectionMode is GridSelectionMode.SINGLE_CELL
+         *  or GridSelectionMode.MULTIPLE_CELLS, returns a Vector
+         *  of CellPosition objects representing the positions of the selected
+         *  cells in the grid.
+         *
+         *
When the user changes the selection by interacting with the
+         *  control, the control dispatches the selectionChange
+         *  event. When the user changes the selection programmatically, the
+         *  control dispatches the valueCommit event.

+         *
+         *  @default []
+         *
+         *  @return Vector of CellPosition objects where each element represents
+         *  a selected cell.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 2.0
+         *  @productversion Flex 4.5
+         */
+        public function get selectedCells():Vector.<CellPosition>
+        {
+            return gridSelection.allCells();
+        }
+
+        //----------------------------------
+        //  selectedIndex
+        //----------------------------------
+
+        [Bindable("selectionChange")]
+        [Bindable("valueCommit")]
+
+        /**
+         *  If selectionMode is GridSelectionMode.SINGLE_ROW
+         *  or GridSelectionMode.MULTIPLE_ROWS, returns the
+         *  rowIndex of the first selected row.
+         *
+         *
When the user changes the selection by interacting with the
+         *  control, the control dispatches the selectionChange
+         *  event. When the user changes the selection programmatically, the
+         *  control dispatches the valueCommit event.

+         *
+         *  @default -1
+         *
+         *  @return rowIndex of first selected row or -1 if there are no
+         *  selected rows.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 2.0
+         *  @productversion Flex 4.5
+         */
+        public function get selectedIndex():int
+        {
+            var selectedRows:Vector.<int> = gridSelection.allRows();
+            return selectedRows.length ? selectedRows[0] : -1;
+        }
+
+        //----------------------------------
+        //  selectedIndices
+        //----------------------------------
+
+        [Bindable("selectionChange")]
+        [Bindable("valueCommit")]
+
+        /**
+         *  If selectionMode is GridSelectionMode.SINGLE_ROW
+         *  or GridSelectionMode.MULTIPLE_ROWS, returns a Vector of
+         *  the selected rows indices.  For all other selection modes, this
+         *  method has no effect.
+         *
+         *
When the user changes the selection by interacting with the
+         *  control, the control dispatches the selectionChange
+         *  event. When the user changes the selection programmatically, the
+         *  control dispatches the valueCommit event.

+         *
+         *  @default []
+         *
+         *  @return Vector of ints where each element is the index in
+         *  dataProvider of the selected row.
+         *
+         *  @see spark.components.Grid#dataProvider
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 2.0
+         *  @productversion Flex 4.5
+         */
+        public function get selectedIndices():Vector.<int>
+        {
+            return gridSelection.allRows();
+        }
+
+        //----------------------------------
+        //  selectedItem
+        //----------------------------------
+
+        [Bindable("selectionChange")]
+        [Bindable("valueCommit")]
+
+        /**
+         *  If selectionMode is GridSelectionMode.SINGLE_ROW
+         *  or GridSelectionMode.MULTIPLE_ROWS, returns the
+         *  item in the dataProvider that is currently selected or
+         *  undefined if not rows are selected.
+         *
+         *
When the user changes the selection by interacting with the
+         *  control, the control dispatches the selectionChange
+         *  event. When the user changes the selection programmatically, the
+         *  control dispatches the valueCommit event.

+         *  @default undefined
+         *
+         *  @return Vector of dataProvider items.
+         *
+         *  @see spark.components.Grid#dataProvider
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 2.0
+         *  @productversion Flex 4.5
+         */
+        public function get selectedItem():Object
+        {
+            var rowIndex:int = selectedIndex;
+            if (rowIndex == -1)
+                return undefined;
+
+            return getDataProviderItem(rowIndex);
+        }
+
+        //----------------------------------
+        //  selectedItems
+        //----------------------------------
+
+        [Bindable("selectionChange")]
+        [Bindable("valueCommit")]
+
+        /**
+         *  If selectionMode is GridSelectionMode.SINGLE_ROW
+         *  or GridSelectionMode.MULTIPLE_ROWS, returns a Vector of
+         *  the dataProvider items that are currently selected
+         *
+         *
When the user changes the selection by interacting with the
+         *  control, the control dispatches the selectionChange
+         *  event. When the user changes the selection programmatically, the
+         *  control dispatches the valueCommit event.

+         *  @default []
+         *
+         *  @return Vector of dataProvider items.
+         *
+         *  @see spark.components.Grid#dataProvider
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 2.0
+         *  @productversion Flex 4.5
+         */
+        public function get selectedItems():Vector.<Object>
+        {
+            var rowIndices:Vector.<int> = selectedIndices;
+            if (rowIndices.length == 0)
+                return undefined;
+
+            var items:Vector.<Object> = new Vector.<Object>();
+
+            for each (var rowIndex:int in rowIndices)
+                items.push(dataProvider.getItemAt(rowIndex));
+
+            return items;
+        }
+
+        //----------------------------------
         //  selectionIndicator
         //----------------------------------

@@ -1358,6 +1584,35 @@
         }

         //----------------------------------
+        //  selectionLength (delegates to gridSelection.selectionLength)
+        //----------------------------------
+
+        [Bindable("selectionChange")]
+        [Bindable("valueCommit")]
+
+        /**
+         *  If selectionMode is GridSelectionMode.SINGLE_ROW
+         *  or GridSelectionMode.MULTIPLE_ROWS, returns the
+         *  number of selected rows, and if selectionMode is
+         *  GridSelectionMode.SINGLE_CELLS
+         *  or GridSelectionMode.MULTIPLE_CELLS, returns the
+         *  number of selected cells.
+         *
+         *  @default 0
+         *
+         *  @return Number of selected rows or cells.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 2.0
+         *  @productversion Flex 4.5
+         */
+        public function get selectionLength():int
+        {
+            return gridSelection.selectionLength;
+        }
+
+        //----------------------------------
         //  selectionMode (delegates to gridSelection.selectionMode)
         //----------------------------------

@@ -1365,13 +1620,23 @@
         [Inspectable(category="General", enumeration="none,row,multipleRows,cell,multipleCells", defaultValue="row")]

         /**
-         *  @copy spark.components.supportClasses.GridSelection#selectionMode
-         *
+         *  The selection mode of the control.  Possible values are:
+         *  GridSelectionMode.MULTIPLE_CELLS,
+         *  GridSelectionMode.MULTIPLE_ROWS,
+         *  GridSelectionMode.NONE,
+         *  GridSelectionMode.SINGLE_CELL, and
+         *  GridSelectionMode.SINGLE_ROW.
+         *
+         *
Changing the selectionMode causes the current selection to be
+         *  cleared and the caretRowIndex and caretColumnIndex to be set to -1.

+         *
+         *  @default GridSelectionMode.SINGLE_ROW
+         *
          *  @see spark.components.supportClasses.GridSelectionMode
          *
          *  @langversion 3.0
          *  @playerversion Flash 10
-         *  @playerversion AIR 1.5
+         *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
         public function get selectionMode():String
@@ -1494,16 +1759,31 @@
         //--------------------------------------------------------------------------

         /**
-         *  Selects all rows and removes the caret, if selectionMode
-         *  is GridSelectionMode.MULTIPLE_ROWS, or all cells, if
-         *  selectionMode is GridSelectionMode.MULTIPLE_CELLS.
-         *  For all other selection modes, this method has no effect.
-         *
-         *
If rows or columns are inserted after this method is called, the
-         *  new rows or cells will be selected.

+         *  If selectionMode is
+         *  GridSelectionMode.MULTIPLE_ROWS, selects all rows and
+         *  removes the caret or if selectionMode is
+         *  GridSelectionMode.MULTIPLE_CELLS selects all cells
+         *  and removes the caret.  For all other selection modes, this method
+         *  has no effect.
+         *
+         *
To clear the selection use clearSelection.

+         *
+         *
If items are added to the dataProvider or
+         *  columns are added after this method is called, the
+         *  new rows or cells in the new column will be selected.  This implicit
+         *  mode ends when the selection is cleared using
+         *  clearSelection or reset using one of
+         *  setSelectedCell, setSelectedCells,
+         *  setSelectedIndex, setSelectedIndices.

          *
          *  @return True if the selection changed.
          *
+         *  @see spark.components.Grid#clearSelection
+         *  @see spark.components.Grid#setSelectedCell
+         *  @see spark.components.Grid#setSelectedCells
+         *  @see spark.components.Grid#setSelectedIndex
+         *  @see spark.components.Grid#setSelectedIndices
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10
          *  @playerversion AIR 2.0
@@ -1579,33 +1859,9 @@
          *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
-        public function selectionContainsIndex(index:int):Boolean
-        {
-            return gridSelection.containsRow(index);
-        }
-
-        /**
-         *  If selectionMode is GridSelectionMode.SINGLE_ROW
-         *  or GridSelectionMode.MULTIPLE_ROWS, returns true if the row
-         *  at index> is in only item in current selection.
-         *
-         *
The rowIndex is the index in dataProvider
-         *  of the item containing the selected cell.

-         *
-         *  @param rowIndex The 0-based row index of the row.
-         *
-         *  @return True if the selection contains just this row.
-         *
-         *  @see spark.components.Grid#dataProvider
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10
-         *  @playerversion AIR 2.0
-         *  @productversion Flex 4.5
-         */
-        public function selectionContainsOnlyIndex(index:int):Boolean
-        {
-            return gridSelection.containsOnlyRow(index);
+        public function selectionContainsIndex(rowIndex:int):Boolean
+        {
+            return gridSelection.containsRow(rowIndex);
         }

         /**
@@ -1613,7 +1869,7 @@
          *  GridSelectionMode.MULTIPLE_ROWS, returns true if the rows
          *  in indices are in the current selection.
          *
-         *  @param indices Vector of 0-based row indices to include in selection.
+         *  @param rowIndices Vector of 0-based row indices to include in selection.
          *
          *  @return True if the current selection contains these rows.
          *
@@ -1624,30 +1880,9 @@
          *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
-        public function selectionContainsIndices(indices:Vector.<int>):Boolean
-        {
-            return gridSelection.containsRows(indices);
-        }
-
-        /**
-         *  If selectionMode is
-         *  GridSelectionMode.MULTIPLE_ROWS, returns true if the rows
-         *  in indices are the only items in the current selection.
-         *
-         *  @param indices Vector of 0-based row indices to include in selection.
-         *
-         *  @return True if the current selection contains just these rows.
-         *
-         *  @see spark.components.Grid#dataProvider
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10
-         *  @playerversion AIR 2.0
-         *  @productversion Flex 4.5
-         */
-        public function selectionContainsOnlyIndices(indices:Vector.<int>):Boolean
-        {
-            return gridSelection.containsOnlyRows(indices);
+        public function selectionContainsIndices(rowIndices:Vector.<int>):Boolean
+        {
+            return gridSelection.containsRows(rowIndices);
         }

         /**
@@ -1674,12 +1909,12 @@
          *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
-        public function setSelectedIndex(index:int):Boolean
-        {
-            const selectionChanged:Boolean = gridSelection.setRow(index);
+        public function setSelectedIndex(rowIndex:int):Boolean
+        {
+            const selectionChanged:Boolean = gridSelection.setRow(rowIndex);
             if (selectionChanged)
             {
-                caretRowIndex = index;
+                caretRowIndex = rowIndex;
                 caretColumnIndex = -1;

                 invalidateDisplayList()
@@ -1712,12 +1947,12 @@
          *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
-        public function addSelectedIndex(index:int):Boolean
-        {
-            const selectionChanged:Boolean = gridSelection.addRow(index);
+        public function addSelectedIndex(rowIndex:int):Boolean
+        {
+            const selectionChanged:Boolean = gridSelection.addRow(rowIndex);
             if (selectionChanged)
             {
-                caretRowIndex = index;
+                caretRowIndex = rowIndex;
                 caretColumnIndex = -1;

                 invalidateDisplayList()
@@ -1751,12 +1986,12 @@
          *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
-        public function removeSelectedIndex(index:int):Boolean
-        {
-            const selectionChanged:Boolean = gridSelection.removeRow(index);
+        public function removeSelectedIndex(rowIndex:int):Boolean
+        {
+            const selectionChanged:Boolean = gridSelection.removeRow(rowIndex);
             if (selectionChanged)
             {
-                caretRowIndex = index;
+                caretRowIndex = rowIndex;
                 caretColumnIndex = -1;

                 invalidateDisplayList()
@@ -1775,7 +2010,7 @@
          *
Each element in the Vector is an index in dataProvider
          *  of an item to include in the selection.

          *
-         *  @param indices Vector of 0-based row indices to include in selection.
+         *  @param rowIndices Vector of 0-based row indices to include in selection.
          *
          *  @return True if no errors, or false if any of the indices
          *  are invalid or the selectionMode is invalid.
@@ -1787,12 +2022,12 @@
          *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
-        public function selectIndices(indices:Vector.<int>):Boolean
-        {
-            const selectionChanged:Boolean = gridSelection.setRows(indices);
+        public function setSelectedIndices(rowIndices:Vector.<int>):Boolean
+        {
+            const selectionChanged:Boolean = gridSelection.setRows(rowIndices);
             if (selectionChanged)
             {
-                caretRowIndex = indices[indices.length - 1];
+                caretRowIndex = rowIndices[rowIndices.length - 1];
                 caretColumnIndex = -1;

                 invalidateDisplayList()
@@ -1801,30 +2036,7 @@

             return selectionChanged;
         }
-
-        /**
-         *  Returns a Vector of the selected rows indices,
-         *  if selectionMode is GridSelectionMode.SINGLE_ROW
-         *  or GridSelectionMode.MULTIPLE_ROWS.
-         *  For all other selection modes, this method has no effect.
-         *
-         *  @default []
-         *
-         *  @return Vector of ints.  Each element is the index in
-         *  dataProvider of the selected item.
-         *
-         *  @see spark.components.Grid#dataProvider
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10
-         *  @playerversion AIR 2.0
-         *  @productversion Flex 4.5
-         */
-        public function allSelectedIndices():Vector.<int>
-        {
-            return gridSelection.allRows();
-        }
-
+
         //----------------------------------
         //  selection for cells
         //----------------------------------
@@ -1858,9 +2070,9 @@
         }

         /**
-         *  If selectionMode is GridSelectionMode.SINGLE_CELL
-         *  or GridSelectionMode.MULTIPLE_CELLS, returns true if the cell
-         *  is the only item in the current selection.
+         *  If selectionMode is
+         *  GridSelectionMode.MULTIPLE_CELLS, returns true if the cells
+         *  in the cell region are in the current selection.
          *
          *
The rowIndex must be between 0 and the
          *  length of dataProvider.  The columnIndex
@@ -1870,7 +2082,14 @@
          *
          *  @param columnIndex The 0-based column index of the cell.
          *
-         *  @return True if the current selection contains just this cell.
+         *  @param rowCount Number of rows, starting at rowIndex to
+         *  include in the cell region.
+         *
+         *  @param columnCount Number of columns, starting at
+         *  columnIndex to include in the cell region.
+         *
+         *  @return True if the current selection contains all the cells in the cell
+         *  region.
          *
          *  @see spark.components.Grid#columns
          *  @see spark.components.Grid#dataProvider
@@ -1880,84 +2099,10 @@
          *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
-        public function selectionContainsOnlyCell(rowIndex:int, columnIndex:int):Boolean
-        {
-            return gridSelection.containsOnlyCell(rowIndex, columnIndex);
-        }
-
-        /**
-         *  If selectionMode is
-         *  GridSelectionMode.MULTIPLE_CELLS, returns true if the cells
-         *  in the cell region are in the current selection.
-         *
-         *
The rowIndex must be between 0 and the
-         *  length of dataProvider.  The columnIndex
-         *  must be between 0 and the length of columns.

-         *
-         *  @param rowIndex The 0-based row index of the cell.
-         *
-         *  @param columnIndex The 0-based column index of the cell.
-         *
-         *  @param rowCount Number of rows, starting at rowIndex to
-         *  include in the cell region.
-         *
-         *  @param columnCount Number of columns, starting at
-         *  columnIndex to include in the cell region.
-         *
-         *  @return True if the current selection contains all the cells in the cell
-         *  region.
-         *
-         *  @see spark.components.Grid#columns
-         *  @see spark.components.Grid#dataProvider
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10
-         *  @playerversion AIR 2.0
-         *  @productversion Flex 4.5
-         */
         public function selectionContainsCellRegion(rowIndex:int, columnIndex:int,
                                                     rowCount:int, columnCount:int):Boolean
         {
             return gridSelection.containsCellRegion(rowIndex, columnIndex,
-                rowCount, columnCount);
-        }
-
-        /**
-         *  If selectionMode is
-         *  GridSelectionMode.MULTIPLE_CELLS, returns true if the cells
-         *  in the cell region are the only items the current selection.
-         *
-         *
The rowIndex must be between 0 and the
-         *  length of dataProvider.  The columnIndex
-         *  must be between 0 and the length of columns.

-         *
-         *  @param rowIndex The 0-based row index of the cell.
-         *
-         *  @param columnIndex The 0-based column index of the cell.
-         *
-         *  @param rowCount Number of rows, starting at rowIndex to
-         *  include in the cell region.
-         *
-         *  @param columnCount Number of columns, starting at
-         *  columnIndex to include in the cell region.
-         *
-         *  @return True if the cells in the cell region are the only items in
-         *  current selection.
-         *
-         *  @see spark.components.Grid#columns
-         *  @see spark.components.Grid#dataProvider
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10
-         *  @playerversion AIR 2.0
-         *  @productversion Flex 4.5
-         */
-        public function selectionContainsOnlyCellRegion(rowIndex:int,
-                                                        columnIndex:int,
-                                                        rowCount:int,
-                                                        columnCount:int):Boolean
-        {
-            return gridSelection.containsOnlyCellRegion(rowIndex, columnIndex,
                 rowCount, columnCount);
         }

@@ -2152,43 +2297,7 @@

             return selectionChanged;
         }
-
-        /**
-         *  Returns a Vector of Objects representing the selected cells,
-         *  if selectionMode is GridSelectionMode.SINGLE_CELL
-         *  or GridSelectionMode.MULTIPLE_CELLS.
-         *  For all other selection modes, this method has no effect.
-         *
-         *
Each element in the Vector is an object which contains a
-         *  rowIndex and a columnIndex property:

-         *
-         *

-         *      { rowIndex : r, columnIndex : c }
-         *

-         *
-         *
The rowIndex is the index in dataProvider
-         *  of the item containing the selected cell.  The columnIndex
-         *  is the index in columns of the column containing the
-         *  selected cell.

-         *
-         *  @default []
-         *
-         *  @return Vector of objects which each contain a rowIndex and a
-         *  columnIndex property and the corresponding values.
-         *
-         *  @see spark.components.Grid#columns
-         *  @see spark.components.Grid#dataProvider
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10
-         *  @playerversion AIR 2.0
-         *  @productversion Flex 4.5
-         */
-        public function allSelectedCells():Vector.<Object>
-        {
-            return gridSelection.allCells();
-        }
-
+
         //--------------------------------------------------------------------------
         //
         //  GridLayout Cover Methods, Properties
@@ -2307,7 +2416,7 @@
          *  @playerversion AIR 2.0
          *  @productversion Flex 4.5
          */
-        public function getCellsAt(x:Number, y:Number, w:Number, h:Number):Vector.<Object>
+        public function getCellsAt(x:Number, y:Number, w:Number, h:Number):Vector.<CellPosition>
         {
             return gridLayout.getCellsAt(x, y, w, h);
         }
@@ -2376,14 +2485,7 @@
                     if (columnsChanged && _columns)
                         gridDimensions.columnCount = _columns.length;
                 }
-
-                // Don't wipe out a pending caret change.
-                if (!caretChanged)
-                {
-                    caretRowIndex = -1;
-                    caretColumnIndex = -1;
-                }
-
+
                 dataProviderChanged = false;
                 columnsChanged = false;
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 14565
Author:   chaase@adobe.com
Date:     2010-03-04T01:17:59.106140Z

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

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

Modified Paths:
--------------
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/MaskEffectInstance.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -1104,6 +1104,12 @@
             // Going from a null selection, add all
             addedItems = _proposedSelectedIndices;
         }
+
+        // Commit _selectedIndices before calling itemSelected() because
+        // selecting item renderers may cause updates that will check
+        // the value of _selectedIndices. Setting it first makes the
+        // indices consistent with the new selection values on the items.
+        _selectedIndices = _proposedSelectedIndices;

         // De-select the old items that were selected
         if (removedItems.length > 0)
@@ -1125,9 +1131,7 @@
             }
         }

-        // Commit the selected indices and put _proposedSelectedIndices
-        // back to its default value.
-        _selectedIndices = _proposedSelectedIndices;
+        // Put _proposedSelectedIndices back to its default value.
         _proposedSelectedIndices = new Vector.<int>();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8406
Author:   dsubrama@adobe.com
Date:     2009-07-06T22:55:27.066206Z

Log Message:
-----------
Address 2 issues with List:

1. http://bugs.adobe.com/jira/browse/SDK-22102 - make ensureIndexIsVisible() public instead of protected. I beefed up the ASDoc comment as well.

2. Make the List wireframe skin clip and size itself the same way the default List skin does. List wireframe skin just had a bad hardcoded width/height that was making the DataGroup larger then necessary. Now the List wireframe skin and default List skin are in-sync.

QA: Yes - any mustella tests with bitmap compares of a Spark List using the wireframe skin (and having scrollbars) will need to be re-gen'ed because of point #2 above.
Doc: No
Checkintests: Pass
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ListSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -814,8 +814,13 @@
     }

     /**
+     *  A convenience method that handles scrolling a data item
+     *  into view.
+     *
      *  If the data item at the specified index is not completely
-     *  visible, scroll until it is completely visible.
+     *  visible, the List will scroll until it is brought into
+     *  view. If the data item is already in view, no additional
+     *  scrolling will occur.
      *
      *  @param index The index of the data item.
      *
@@ -824,7 +829,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    protected function ensureIndexIsVisible(index:int):void
+    public function ensureIndexIsVisible(index:int):void
     {
         if (!layout)
             return;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package spark.skins.mobile
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18115
Author:   gruehle@adobe.com
Date:     2010-10-08T23:37:39.582350Z

Log Message:
-----------
Mobile text bug fixes:
* Add anti-alias style support to MobileTextField
* After truncating text, make sure scrollH is 0
* Make sure text field size is set properly when editing is enabled
* Copied focus skin logic from Skin/SparkSkin into MobileSkin

QE notes: -
Doc notes: -
Bugs: SDK-27987, SDK-27928, SDK-27926, SDK-28041, SDK-27945
Reviewer: Ryan, Jason San Jose
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/HighlightBitmapCaptureSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/IHighlightBitmapCaptureClient.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as
@@ -11,9 +11,19 @@

 package spark.skins.mobile.supportClasses
 {
+import flash.display.DisplayObject;
+
 import mx.core.IFlexDisplayObject;
 import mx.core.ILayoutElement;
 import mx.core.UIComponent;
+import mx.core.mx_internal;
+
+import spark.components.supportClasses.SkinnableComponent;
+import spark.core.DisplayObjectSharingMode;
+import spark.core.IGraphicElement;
+import spark.skins.IHighlightBitmapCaptureClient;
+
+use namespace mx_internal;

 /**
  *  Actionscript based skin for mobile applications. This skin is the
@@ -25,7 +35,7 @@
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
-public class MobileSkin extends UIComponent
+public class MobileSkin extends UIComponent implements IHighlightBitmapCaptureClient
 {

     //--------------------------------------------------------------------------
@@ -136,5 +146,162 @@
             part.height = height;
         }
     }
+
+	/**
+	 *  List of id's of items that should be excluded when rendering the focus ring.
+	 *  Only items of type DisplayObject or GraphicElement should be excluded. Items
+	 *  of other types will be ignored.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 2.5
+	 *  @productversion Flex 4.5
+	 */
+	public function get focusSkinExclusions():Array
+	{
+		return null;
+	}
+
+	private static var exclusionAlphaValues:Array;
+
+	private static var oldContentBackgroundAlpha:Number;
+	private static var contentBackgroundAlphaSetLocally:Boolean;
+
+	/**
+	 *  Called before a bitmap capture is made for this skin. The default implementation
+	 *  excludes items in the focusSkinExclusions array.
+	 */
+	public function beginHighlightBitmapCapture():Boolean
+	{
+		var exclusions:Array = focusSkinExclusions;
+		if (!exclusions)
+		{
+			if (("hostComponent" in this) && this["hostComponent"] is SkinnableComponent)
+				exclusions = SkinnableComponent(this["hostComponent"]).suggestedFocusSkinExclusions;
+		}
+		var exclusionCount:Number = (exclusions == null) ? 0 : exclusions.length;
+
+		/* we'll store off the previous alpha of the exclusions so we
+		can restore them when we're done
+		*/
+		exclusionAlphaValues = [];
+		var needRedraw:Boolean = false;
+
+		for (var i:int = 0; i < exclusionCount; i++)
+		{
+			// skip if the part isn't there
+			if (!(exclusions[i] in this))
+				continue;
+
+			var ex:Object = this[exclusions[i]];
+			/* we're going to go under the covers here to try and modify alpha with the least
+			amount of disruption to the component.  For UIComponents, we go to Sprite's alpha property;
+			*/
+			if (ex is UIComponent)
+			{
+				exclusionAlphaValues[i] = (ex as UIComponent).$alpha;
+				(ex as UIComponent).$alpha = 0;
+			}
+			else if (ex is DisplayObject)
+			{
+				exclusionAlphaValues[i] = (ex as DisplayObject).alpha;
+				(ex as DisplayObject).alpha = 0;
+			}
+			else if (ex is IGraphicElement)
+			{
+				/* if we're lucky, the IGE has its own DisplayObject, and we can just trip its alpha.
+				If not, we're going to have to set it to 0, and force a redraw of the whole component */
+				var ge:IGraphicElement = ex as IGraphicElement;
+				if (ge.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
+				{
+					exclusionAlphaValues[i] = ge.displayObject.alpha;
+					ge.displayObject.alpha = 0;
+				}
+				else
+				{
+					exclusionAlphaValues[i] = ge.alpha;
+					ge.alpha = 0;
+					needRedraw = true;
+				}
+			}
+		}
+
+		// If we have a mostly-transparent content background, temporarily bump
+		// up the contentBackgroundAlpha so the captured bitmap includes an opaque
+		// snapshot of the background.
+		if (getStyle("contentBackgroundAlpha") < 0.5)
+		{
+			if (styleDeclaration && styleDeclaration.getStyle("contentBackgroundAlpha") !== null)
+				contentBackgroundAlphaSetLocally = true;
+			else
+				contentBackgroundAlphaSetLocally = false;
+			oldContentBackgroundAlpha = getStyle("contentBackgroundAlpha");
+			setStyle("contentBackgroundAlpha", 0.5);
+			needRedraw = true;
+		}
+
+		/* if we excluded an IGE without its own DO, we need to update the component before grabbing the bitmap */
+		return needRedraw;
+	}
+
+	/**
+	 *  Called after a bitmap capture is made for this skin. The default implementation
+	 *  restores the items in the focusSkinExclusions array.
+	 */
+	public function endHighlightBitmapCapture():Boolean
+	{
+		var exclusions:Array = focusSkinExclusions;
+		if (!exclusions)
+		{
+			if (this["hostComponent"] is SkinnableComponent)
+				exclusions = SkinnableComponent(this["hostComponent"]).suggestedFocusSkinExclusions;
+		}
+		var exclusionCount:Number = (exclusions == null) ? 0 : exclusions.length;
+		var needRedraw:Boolean = false;
+
+		for (var i:int=0; i < exclusionCount; i++)
+		{
+			// skip if the part isn't there
+			if (!(exclusions[i] in this))
+				continue;
+
+			var ex:Object = this[exclusions[i]];
+			if (ex is UIComponent)
+			{
+				(ex as UIComponent).$alpha = exclusionAlphaValues[i];
+			}
+			else if (ex is DisplayObject)
+			{
+				(ex as DisplayObject).alpha = exclusionAlphaValues[i];
+			}
+			else if (ex is IGraphicElement)
+			{
+				var ge:IGraphicElement = ex as IGraphicElement;
+				if (ge.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
+				{
+					ge.displayObject.alpha = exclusionAlphaValues[i];
+				}
+				else
+				{
+					ge.alpha = exclusionAlphaValues[i];
+					needRedraw = true;
+				}
+			}
+		}
+
+		exclusionAlphaValues = null;
+
+		if (!isNaN(oldContentBackgroundAlpha))
+		{
+			if (contentBackgroundAlphaSetLocally)
+				setStyle("contentBackgroundAlpha", oldContentBackgroundAlpha);
+			else
+				clearStyle("contentBackgroundAlpha");
+			needRedraw = true;
+			oldContentBackgroundAlpha = NaN;
+		}
+
+		return needRedraw;
+	}
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18556
Author:   cframpto@adobe.com
Date:     2010-11-12T18:18:29.899950Z

Log Message:
-----------
The grid item renderers are using UIFTETextField and UITextField in a non-standard way.  Both are intended to inherit their styles from their parents.  They don't support setStyle() and a few of the styles (direction, locale) are actually properties so when set with MXML, the compiler finds the properties rather than the styles.  In DefaultGridItemRenderer kludge in support for direction and locale.  For both renderers, layoutDirection must be inherited so hide the layoutDirection property and style metadata from FlashBuilder and add this info to the doc.

QE notes:
Doc notes:
Bugs: SDK-28290
Reviewer: Hans, Kevin
Tests run: cyclone
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as
+++ frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as
@@ -41,7 +41,7 @@
     import spark.components.gridClasses.GridColumn;

     use namespace mx_internal;
-
+
     /**
      *  @private
      *  Distance by which this textfield is inset from the edges of the cell.
@@ -76,7 +76,7 @@
      */
     private var inSetLayoutBoundsSize:Boolean = false;

-
+
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -861,25 +861,26 @@
     //--------------------------------------------------------------------------

     /**
-     *  @private
+     * @private
      */
     public function get layoutDirection():String
     {
-        return getStyle("layoutDirection");
-    }
-
-    /**
-     *  @private
+        return getStyle("layoutDirection");
+    }
+
+    /**
+     * @private
+     * layoutDirection should not be set directly on this
+     * UIFTETextField.
+     * It will inherit layoutDirection from its parent.
      */
     public function set layoutDirection(value:String):void
     {
-        // Set the value to null to inherit the layoutDirection.
-        if (value == null)
-            setStyle("layoutDirection", undefined);
-        else
-            setStyle("layoutDirection", value);
-    }
-
+    }
+
+    /**
+     * @private
+     */
     public function invalidateLayoutDirection():void
     {
     }


avoid closing export window to avoid closing devtools

--- WeaveUI/src/weave/menus/ExportMenu.as
+++ WeaveUI/src/weave/menus/ExportMenu.as
@@ -77,12 +77,6 @@

 		public static function export():void
 		{
-			// clear all old window pointers because it gets very slow otherwise
-			JavaScript.exec(
-				jsVars(true),
-				'window[WEAVE_EXTERNAL_TOOLS][windowName].window.close();'
-			);
-
 			ExternalTool.launch(WeaveAPI.globalHashMap, url, windowName);
 		}


- bugfix: Tooltips weren't properly updated on change of their target element

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

--- src/reprise/ui/renderers/AbstractTooltip.as
+++ src/reprise/ui/renderers/AbstractTooltip.as
@@ -11,6 +11,7 @@

 package reprise.ui.renderers
 {
+	import reprise.events.DisplayEvent;
 	import reprise.controls.Label;
 	import reprise.core.reprise;
 	import reprise.css.propertyparsers.DisplayPosition;
@@ -119,10 +120,15 @@

 		public function setMousedComponent(mousedComponent:UIComponent):void
 		{
+			m_mousedComponent && m_mousedComponent.removeEventListener(
+				DisplayEvent.VALIDATION_COMPLETE, mousedEvent_validationComplete);
 			m_mousedComponent = mousedComponent;
-			refreshSelectorPath();
-		}
-
+			m_mousedComponent && m_mousedComponent.addEventListener(
+				DisplayEvent.VALIDATION_COMPLETE, mousedEvent_validationComplete);
+			validateElement(true, true);
+			updatePosition();
+		}
+
 		public function mousedComponent():UIComponent
 		{
 			return m_mousedComponent;
@@ -137,8 +143,14 @@
 		{
 			return m_tooltipDataProvider;
 		}
-
-
+
+		override public function remove(...args : *) : void
+		{
+			m_mousedComponent && m_mousedComponent.removeEventListener(
+				DisplayEvent.VALIDATION_COMPLETE, mousedEvent_validationComplete);
+			super.remove(args);
+		}
+

 		/***************************************************************************
 		*							protected methods								   *
@@ -173,14 +185,17 @@
 				basePathParts.push(m_selectorPath.split(' ').pop());
 				m_selectorPath = basePathParts.join(' ');
 			}
+			log("m_selectorPath: " + (m_selectorPath));
 			if (m_selectorPath != oldPath)
 			{
+				log("m_selectorPathChanged: " + (m_selectorPathChanged));
 				m_selectorPathChanged = true;
 				return;
 			}
 			m_selectorPathChanged = false;
-		}
-
+			log("m_selectorPathChanged: " + (m_selectorPathChanged));
+		}
+
 		protected override function resolveContainingBlock() : void
 		{
 			m_containingBlock = m_rootElement;
@@ -227,5 +242,19 @@
 			super.validateAfterChildren();
 			applyOutOfFlowChildPositions();
 		}
+
+		protected function mousedEvent_validationComplete(event : DisplayEvent) : void
+		{
+			m_mousedComponent.document.addEventListener(
+				DisplayEvent.DOCUMENT_VALIDATION_COMPLETE, document_validationComplete);
+		}
+
+		protected function document_validationComplete(event : DisplayEvent) : void
+		{
+			m_mousedComponent.document.removeEventListener(
+				DisplayEvent.DOCUMENT_VALIDATION_COMPLETE, document_validationComplete);
+			validateElement(true, true);
+			updatePosition();
+		}
 	}
 }


Minor changes on timer handler.

Minor changes on timer handler.

--- basicplayer/PlayerVideo.as
+++ basicplayer/PlayerVideo.as
@@ -101,10 +101,11 @@
 		}

 		private function timerHandler(e:TimerEvent):void {
-			if (_stream != null) {
-				updateTime(getTime());
-				updateBuffer(100 * _stream.bytesLoaded / _stream.bytesTotal, 0);
-			}
+			if (_stream == null)
+				return;
+			updateTime(getTime());
+			// TODO: if _stream.bytesTotal is increasing, send something else as buffer percent
+			updateBuffer(100 * _stream.bytesLoaded / _stream.bytesTotal, 0);
 		}

 		private function getTime():Number {


Load ExternalInterface if available

Load ExternalInterface if available

--- src/Impetus.as
+++ src/Impetus.as
@@ -7,6 +7,12 @@
     {
         public function Impetus():void
         {
+            if(ExternalInterface.available)
+            {
+                ExternalInterface.addCallback('getPlayer', getPlayer);
+
+                ExternalInterface.call("console.log", "Impetus loaded. (https://github.com/JWhile/Impetus)");
+            }
         }
     }
 }


Save url

Save url

Implemented property to save the url which is needed to manage muting
and unmuting of the microphone.

--- src/com/axis/audioclient/AxisTransmit.as
+++ src/com/axis/audioclient/AxisTransmit.as
@@ -24,6 +24,8 @@
     private var authState:String = 'none';
     private var authOpts:Object = {};

+    private var savedUrl:String = null;
+
     public function AxisTransmit() {
     }

@@ -43,11 +45,20 @@
       }
     }

-    public function start(iurl:String):void {
+    public function start(iurl:String = null):void {
       if (conn.connected) {
         trace('already connected');
         return;
       }
+
+      var currentUrl:String = (iurl) ? iurl : savedUrl;
+
+      if (!currentUrl) {
+        trace("no url provided");
+        return;
+      }
+
+      this.savedUrl = currentUrl;

       var mic:Microphone = Microphone.getMicrophone();
       mic.rate = 16;
@@ -55,7 +66,7 @@
       mic.addEventListener(StatusEvent.STATUS, onMicStatus);
       mic.addEventListener(SampleDataEvent.SAMPLE_DATA, onMicSampleData);

-      this.urlParsed = url.parse(iurl);
+      this.urlParsed = url.parse(currentUrl);

       conn = new Socket();
       conn.addEventListener(Event.CONNECT, onConnected);


fixed width vs height bug

fixed width vs height bug

--- WeaveCore/src/weave/core/UIUtils.as
+++ WeaveCore/src/weave/core/UIUtils.as
@@ -127,7 +127,7 @@
 			while (coords.length)
 			{
 				if (normalizedCoords)
-					g.lineTo(sprite.width * coords.shift(), sprite.width * coords.shift());
+					g.lineTo(sprite.width * coords.shift(), sprite.height * coords.shift());
 				else
 					g.lineTo(coords.shift(), coords.shift());
 			}


Updated timeout error message in TimeoutCommand to be the same as the rest of AsUnit.

--- as3/src/asunit/framework/async/TimeoutCommand.as
+++ as3/src/asunit/framework/async/TimeoutCommand.as
@@ -46,7 +46,7 @@
 		}

 		protected function onTimeoutComplete(event:TimerEvent):void {
-			sendError(new IllegalOperationError('Asynchronous command timed out.'));
+			sendError(new IllegalOperationError("Timeout (" + duration + "ms) exceeded on an asynchronous operation."));
 		}

 		protected function sendError(error:Error):void {


Fixed screen offset to adhere to current scale.

--- net/flashpunk/Screen.as
+++ net/flashpunk/Screen.as
@@ -67,8 +67,8 @@
 			_matrix.tx = -_originX * _matrix.a;
 			_matrix.ty = -_originY * _matrix.d;
 			if (_angle != 0) _matrix.rotate(_angle);
-			_matrix.tx += _originX + _x;
-			_matrix.ty += _originY + _y;
+			_matrix.tx += _originX * _scaleX * _scale + _x;
+			_matrix.ty += _originY * _scaleX * _scale + _y;
 			_sprite.transform.matrix = _matrix;
 		}


fixed null error

fixed null error

--- WeaveJS/src/weavejs/util/AsyncSort.as
+++ WeaveJS/src/weavejs/util/AsyncSort.as
@@ -127,7 +127,7 @@
 		public function beginSort(arrayToSort:*, compareFunction:Function = null):void
 		{
 			// initialize
-			compare = compareFunction;
+			compare = compareFunction || primitiveCompare;
 			original = arrayToSort || [];
 			source = original;
 			length = original.length;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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

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

--- frameworks/projects/rpc/src/mx/messaging/Consumer.as
+++ frameworks/projects/rpc/src/mx/messaging/Consumer.as
@@ -37,6 +37,12 @@
  *  Dispatched when a message is received by the Consumer.
  *
  *  @eventType mx.messaging.events.MessageEvent.MESSAGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion BlazeDS 4
+ *  @productversion LCDS 3
  */
 [Event(name="message", type="mx.messaging.events.MessageEvent")]

@@ -60,6 +66,12 @@
  *    timestamp="No default."
  *  />
  *

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion BlazeDS 4
+ *  @productversion LCDS 3
  */
 public class Consumer extends AbstractConsumer
 {
@@ -95,6 +107,12 @@
      *       trace("-App recieved message: " + msg.toString());
      *   }
      *   </listing>
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
 	public function Consumer(messageType:String="flex.messaging.messages.AsyncMessage")
 	{
@@ -133,6 +151,12 @@
 	 *
 	 *
The remote destination must understand the value of the selector
 	 *  expression.

+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion BlazeDS 4
+	 *  @productversion LCDS 3
 	 */
 	public function get selector():String
 	{
@@ -178,6 +202,12 @@

     /**
      *  Provides access to the subtopic for the remote destination that the MessageAgent uses.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function get subtopic():String
     {
@@ -188,6 +218,12 @@
 	 *  Setting the subtopic when the Consumer is connected and
 	 *  subscribed has the side effect of unsubscribing and resubscribing
 	 *  the Consumer.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion BlazeDS 4
+	 *  @productversion LCDS 3
 	 */
     public function set subtopic(value:String):void
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/rpc/src/mx/rpc/AsyncResponder.as
+++ frameworks/projects/rpc/src/mx/rpc/AsyncResponder.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: 8591
Author:   clucier@adobe.com
Date:     2009-07-15T19:39:05.785983Z

Log Message:
-----------
Fix for SDK-18328 - NumericStepper not stripping leading zeroes upon commit.
Bugs: SDK-18328
QE Notes: None
Doc Notes: None
Reviewer: Deepa

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>

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

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -637,7 +637,8 @@
         else
             inputValue = Number(textDisplay.text);

-        if (textDisplay.text == "" || (inputValue != value &&
+        if ((textDisplay.text && textDisplay.text.length != value.toString().length)
+            || textDisplay.text == "" || (inputValue != value &&
             (Math.abs(inputValue - value) >= 0.000001 || isNaN(inputValue))))
         {
             setValue(nearestValidValue(inputValue, snapInterval));


qnd: support mp4 intelli-seek

qnd: support mp4 intelli-seek

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

--- kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
+++ kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
@@ -586,7 +586,7 @@
 					if (!_sequenceProxy.vo.isInSequence &&_isPrePlaySeek)
 					{
 						//for rtmp the seek will be performed after player is in "playing" state
-						if (_mediaProxy.vo.deliveryType == StreamerType.HTTP && _mediaProxy.vo.keyframeValuesArray)
+						if (_mediaProxy.vo.deliveryType == StreamerType.HTTP && (_mediaProxy.vo.keyframeValuesArray || isMP4Stream()))
 						{
 							_pausedPending = true;
 							doIntelliSeek(_offset);
@@ -1358,17 +1358,26 @@
 		 *
 		 */
 		private function isMP4Stream():Boolean {
-			if (_mediaProxy.vo.kalturaMediaFlavorArray && _mediaProxy.vo.selectedFlavorId)
-			{
-				for each (var flavor:KalturaFlavorAsset in _mediaProxy.vo.kalturaMediaFlavorArray)
-				{
-					if (flavor.id==_mediaProxy.vo.selectedFlavorId)
-					{
-						if (flavor.fileExt=="mp4")
-							return true;
-
-						return false;
-					}
+			if (_mediaProxy.vo.kalturaMediaFlavorArray)
+			{
+				if (_mediaProxy.vo.selectedFlavorId)
+				{
+					for each (var flavor:KalturaFlavorAsset in _mediaProxy.vo.kalturaMediaFlavorArray)
+					{
+						if (flavor.id==_mediaProxy.vo.selectedFlavorId)
+						{
+							if (flavor.fileExt=="mp4")
+								return true;
+
+							return false;
+						}
+					}
+				}
+				//if we don't have selected flavor ID we are playing the first one
+				else if (_mediaProxy.vo.kalturaMediaFlavorArray.length)
+				{
+					if ((_mediaProxy.vo.kalturaMediaFlavorArray[0] as KalturaFlavorAsset).fileExt=="mp4")
+						return true;
 				}
 			}


remove ParserOptions.loadDependencies, parser should now use ParserOptions.dependencyLoaderFunction != null instead

--- src/aerys/minko/type/loader/parser/ParserOptions.as
+++ src/aerys/minko/type/loader/parser/ParserOptions.as
@@ -19,15 +19,14 @@
 	 */
 	public final class ParserOptions
 	{
-		private var _loadDependencies			: Boolean	= false;
-		private var _dependencyLoaderFunction	: Function	= defaultDependencyLoaderFunction;
-        private var _loadSkin                   : Boolean   = false;
-		private var _skinningMethod				: uint		= SkinningMethod.SHADER_DUAL_QUATERNION;
-		private var _mipmapTextures				: Boolean	= true;
-		private var _meshEffect					: Effect	= null;
-		private var _vertexStreamUsage			: uint		= 0;
-		private var _indexStreamUsage			: uint		= 0;
-		private var _parser						: Class		= null;
+		private var _dependencyLoaderFunction	: Function;
+        private var _loadSkin                   : Boolean;
+		private var _skinningMethod				: uint;
+		private var _mipmapTextures				: Boolean;
+		private var _meshEffect					: Effect;
+		private var _vertexStreamUsage			: uint;
+		private var _indexStreamUsage			: uint;
+		private var _parser						: Class;

 		public function get skinningMethod() : uint
 		{
@@ -99,16 +98,6 @@
 			_dependencyLoaderFunction = value;
 		}

-		public function get loadDependencies() : Boolean
-		{
-			return _loadDependencies;
-		}
-
-		public function set loadDependencies(value : Boolean) : void
-		{
-			_loadDependencies = value;
-		}
-
         public function get loadSkin() : Boolean
         {
             return _loadSkin;
@@ -122,7 +111,6 @@
 		public function clone() : ParserOptions
 		{
 			return new ParserOptions(
-				_loadDependencies,
 				_dependencyLoaderFunction,
                 _loadSkin,
 				_skinningMethod,
@@ -134,8 +122,7 @@
 			);
 		}

-		public function ParserOptions(loadDependencies			: Boolean 	= false,
-									  dependencyLoaderClosure	: Function 	= null,
+		public function ParserOptions(dependencyLoaderFunction	: Function 	= null,
                                       loadSkin                  : Boolean 	= true,
 									  skinningMethod			: uint		= 2,
 									  mipmapTextures			: Boolean 	= true,
@@ -144,8 +131,7 @@
 									  indexStreamUsage			: uint 		= 0,
 									  parser					: Class 	= null)
 		{
-			_loadDependencies			= loadDependencies;
-			_dependencyLoaderFunction	= dependencyLoaderClosure || _dependencyLoaderFunction;
+			_dependencyLoaderFunction	= dependencyLoaderFunction || defaultDependencyLoaderFunction;
             _loadSkin                   = loadSkin;
 			_skinningMethod				= skinningMethod;
 			_mipmapTextures				= mipmapTextures;


Fixing DTS PTS issue

Fixing DTS PTS issue

--- HLSPlugin/src/com/kaltura/hls/m2ts/M2TSToFLVConverter.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/M2TSToFLVConverter.as
@@ -682,7 +682,7 @@
 					{
 						_avcVCL = false;
 						_avcAccessUnitStarted = false;
-						sendCompleteAVCFLVTag(pts, dts);
+						sendCompleteAVCFLVTag(_avcPTS, _avcDTS);
 					}

 					if(!_avcAccessUnitStarted)


Transferred from the Adobe Open Source Subversion Repository

Revision: 21542
Author:   jasonsj@adobe.com
Date:     2011-07-12T00:59:38.807520Z

Log Message:
-----------
Revert 21536

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/.flexLibProperties</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/mobile/views/TestCalloutButton.mxml</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/utils/PopUpUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/.actionScriptProperties</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutButtonSkin.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/mobile/scripts/CalloutButtonTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-app.xml</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as
@@ -273,8 +273,6 @@

             // This will create the skin and attach it
             PopUpManager.addPopUp(this, owner, modal);
-
-            positionPopUp();
         }

         // Change state *after* we pop up, as the skin needs to go be in the initial "closed"
@@ -285,20 +283,6 @@
             skin.addEventListener(FlexEvent.STATE_CHANGE_COMPLETE, stateChangeComplete_handler);
         else
             stateChangeComplete_handler(null); // Call directly
-    }
-
-    /**
-     *  Positions the popUp after the popUp is added to PopUpManager but before any
-     *  state transitions occur.
-     *
-     *  @langversion 3.0
-     *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
-     */
-    protected function positionPopUp():void
-    {
-        // subclasses will implement custom positioning
-        // e.g. PopUpManager.centerPopUp()
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -14,7 +14,7 @@
 import flash.events.Event;

 import mx.events.FlexEvent;
-import mx.events.ItemExistenceChangedEvent;
+import mx.events.RendererExistenceEvent;

 import mx.collections.IList;
 import mx.components.FxDataContainer;
@@ -315,12 +315,12 @@
             validateNow();
         }

-        if (!dataGroup || dataGroup.numLayoutElements == 0)
+        if (!dataGroup || dataGroup.numElements == 0)
             return super.baselinePosition;

         // Obtain reference to newly generated item element which will be used
         // to compute the baseline.
-        var listItem:Object = dataGroup.getRendererForItemAt(0);
+        var listItem:Object = dataGroup.getElementAt(0);
         if (!listItem)
             return super.baselinePosition;


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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -32,8 +32,6 @@
  - Add setCaretIndex protected setter
  	- Should set currentCaretIndex
  	- Call itemInCaret
-
-
 */

 /**


REOPENED - issue REPRISE-35: Implement CSS properties background-position-x and background-position-y and change background-position to be a shortcut for them.
http://j.fork.de:8080/browse/REPRISE-35

Should work now, untested though

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

--- src/reprise/css/propertyparsers/Background.as
+++ src/reprise/css/propertyparsers/Background.as
@@ -35,6 +35,8 @@
 			backgroundColor : {parser : strToColorProperty, transition : ColorTransitionVO},
 			backgroundRepeat : {parser : strToStringProperty},
 			backgroundPosition : {parser : parseBackgroundPosition},
+			backgroundPositionX : {parser : strToIntProperty},
+			backgroundPositionY : {parser : strToIntProperty},
 			backgroundAttachment : {parser : strToStringProperty},
 			backgroundRenderer : {parser : strToStringProperty},
 			backgroundBlendMode : {parser : strToStringProperty},
@@ -57,6 +59,11 @@

 		public static var TRANSITION_SHORTCUTS : Object	=
 		{
+			backgroundPosition :
+			[
+				'backgroundPositionX',
+				'backgroundPositionY'
+			],
 			backgroundScale9Rect :
 			[
 				'backgroundScale9RectTop',


Remove this version...

Remove this version...

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

--- src/as/com/threerings/presents/client/ResultAdapter.as
+++ src/as/com/threerings/presents/client/ResultAdapter.as
@@ -1,52 +0,0 @@
-// $Id$
-//
-// Narya library - tools for developing networked games
-// Copyright (C) 2002-2007 Three Rings Design, Inc., All Rights Reserved
-// http://www.threerings.net/code/narya/
-//
-// This library is free software; you can redistribute it and/or modify it
-// under the terms of the GNU Lesser General Public License as published
-// by the Free Software Foundation; either version 2.1 of the License, or
-// (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-package com.threerings.presents.client {
-
-/**
- * Results listener that passes on notifications to function objects.
- */
-public class ResultAdapter extends InvocationAdapter
-    implements InvocationService_ResultListener
-{
-    /**
-     * Creates a new adapter.
-     * @param failed function to call when requestFailed is called. Must not be null.
-     * @param processed optional function to call when requestProcessed is called.
-     */
-    public function ResultAdapter (
-        failed :Function, processed :Function = null)
-    {
-        super(failed);
-        _processed = processed;
-    }
-
-    /** @inheritDoc */
-    // documentation inherited from interface ResultListener
-    public function requestProcessed (obj :Object) :void
-    {
-        if (_processed != null) {
-            _processed(obj);
-        }
-    }
-
-    protected var _processed :Function;
-}
-}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19167
Author:   smgilson@adobe.com
Date:     2010-12-08T21:07:50.821383Z

Log Message:
-----------
first ASDoc pass on view transitions

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/CrossFadeViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ZoomViewTransitionMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransitionMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionDirection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ZoomViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransitionMode.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionDirection.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionDirection.as
@@ -17,7 +17,6 @@
  *  the direction of a view transition.
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -30,22 +29,38 @@
     //--------------------------------------------------------------------------

     /**
-     * Transition animates upward.
+     *  Transition animates upward.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public static const UP:String = "up";

     /**
-     * Transition animates downward.
+     *  Transition animates downward.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public static const DOWN:String = "down";

     /**
-     * Transition animates to the left.
+     *  Transition animates to the left.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public static const LEFT:String = "left";

     /**
-     * Transition animates to the right.
+     *  Transition animates to the right.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public static const RIGHT:String = "right";
 }


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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2011 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


rename requirement to plaque/script

rename requirement to plaque/script

--- flexEditor/src/org/arisgames/editor/util/AppConstants.as
+++ flexEditor/src/org/arisgames/editor/util/AppConstants.as
@@ -80,17 +80,17 @@

     // Requirement Options
     public static const REQUIREMENT_PLAYER_HAS_ITEM_DATABASE:String = "PLAYER_HAS_ITEM";
-    public static const REQUIREMENT_PLAYER_HAS_ITEM_HUMAN:String = "Player Has At Least qty of an Item";
+    public static const REQUIREMENT_PLAYER_HAS_ITEM_HUMAN:String = "Player Has At Least Qty of an Item";
     public static const REQUIREMENT_PLAYER_DOES_NOT_HAVE_ITEM_DATABASE:String = "PLAYER_DOES_NOT_HAVE_ITEM";
-    public static const REQUIREMENT_PLAYER_DOES_NOT_HAVE_ITEM_HUMAN:String = "Player Has Less Than qty of an Item";
+    public static const REQUIREMENT_PLAYER_DOES_NOT_HAVE_ITEM_HUMAN:String = "Player Has Less Than Qty of an Item";
     public static const REQUIREMENT_PLAYER_VIEWED_ITEM_DATABASE:String = "PLAYER_VIEWED_ITEM";
     public static const REQUIREMENT_PLAYER_VIEWED_ITEM_HUMAN:String = "Player Viewed Item";
     public static const REQUIREMENT_PLAYER_HAS_NOT_VIEWED_ITEM_DATABASE:String = "PLAYER_HAS_NOT_VIEWED_ITEM";
     public static const REQUIREMENT_PLAYER_HAS_NOT_VIEWED_ITEM_HUMAN:String = "Player Never Viewed Item";
     public static const REQUIREMENT_PLAYER_VIEWED_NODE_DATABASE:String = "PLAYER_VIEWED_NODE";
-    public static const REQUIREMENT_PLAYER_VIEWED_NODE_HUMAN:String = "Player Viewed Plaque";
+    public static const REQUIREMENT_PLAYER_VIEWED_NODE_HUMAN:String = "Player Viewed Plaque/Script";
     public static const REQUIREMENT_PLAYER_HAS_NOT_VIEWED_NODE_DATABASE:String = "PLAYER_HAS_NOT_VIEWED_NODE";
-    public static const REQUIREMENT_PLAYER_HAS_NOT_VIEWED_NODE_HUMAN:String = "Player Never Viewed Plaque";
+    public static const REQUIREMENT_PLAYER_HAS_NOT_VIEWED_NODE_HUMAN:String = "Player Never Viewed Plaque/Script";
     public static const REQUIREMENT_PLAYER_VIEWED_NPC_DATABASE:String = "PLAYER_VIEWED_NPC";
     public static const REQUIREMENT_PLAYER_VIEWED_NPC_HUMAN:String = "Player Greeted By Character";
     public static const REQUIREMENT_PLAYER_HAS_NOT_VIEWED_NPC_DATABASE:String = "PLAYER_HAS_NOT_VIEWED_NPC";


Revert "Fix for issue FLEX-34320"

Revert "Fix for issue FLEX-34320"

This reverts commit 798194db5eaf9aa28db4fd6027f78b40bb15800d.

--- frameworks/projects/framework/src/mx/collections/Sort.as
+++ frameworks/projects/framework/src/mx/collections/Sort.as
@@ -392,27 +392,23 @@
         {
             compareForFind = this.compareFunction;
             // configure the search criteria
-				if (values && fields.length > 0)
+            if (values && fieldList.length > 0)
             {
                 fieldsForCompare = [];
                 //build up the fields we can compare, if we skip a field in the
                 //middle throw an error.  it is ok to not have all the fields
                 //though
-					var field:ISortField;
+                var fieldName:String;
                 var hadPreviousFieldName:Boolean = true;
-					for (var i:int = 0; i < fields.length; i++)
+                for (var i:int = 0; i < fieldList.length; i++)
                 {
-						field = fields[i];
-						if (field)
+                    fieldName = fieldList[i];
+                    if (fieldName)
                     {
                         var hasFieldName:Boolean = false;
 						try
                         {
-								hasFieldName = field.compareFunction != null;
-
-								if ( !hasFieldName ) {
-									hasFieldName = values[field.name] !== undefined;
-								}
+                            hasFieldName = values[fieldName] !== undefined;
                         }
                         catch(e:Error)
                         {
@@ -422,12 +418,12 @@
                             if (!hadPreviousFieldName)
                             {
                                 message = resourceManager.getString(
-										"collections", "findCondition", [ field.name ]);
+                                    "collections", "findCondition", [ fieldName ]);
                                 throw new SortError(message);
                             }
                             else
                             {
-									fieldsForCompare.push(field);
+                                fieldsForCompare.push(fieldName);
                             }
                         }
                         else


Transferred from the Adobe Open Source Subversion Repository

Revision: 2861
Author:   egeorgie@adobe.com
Date:     2008-08-15T23:52:48.544706Z

Log Message:
-----------
Add 'resizeMode' property to the Group. Setting this to "Scale" will turn on the 'resize-by-scale' behavior.

Reviewed by Glenn

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/ResizeMode.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/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/LayoutItemUIC.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -5845,7 +5845,7 @@
         }

     }
-
+
     //--------------------------------------------------------------------------
     //
     //  Methods: Measurement
@@ -5882,6 +5882,17 @@
     }

     /**
+     *  @return Returns true when the measureSizes() code can skip the call to
+     *  measure(). For example this is usually true when both explicitWidth and
+     *  explicitHeight are set. For path, this is true when the bounds of the path
+     *  have not changed.
+     */
+    protected function skipMeasure():Boolean
+    {
+        return !isNaN(explicitWidth) && !isNaN(explicitHeight);
+    }
+
+    /**
      *  @private
      */
     private function measureSizes():Boolean
@@ -5901,8 +5912,15 @@
         // If an object's width and height have been explicitly specified,
         // then the explicitWidth and explicitHeight properties contain
         // Numbers (as opposed to NaN)
-        if (isNaN(explicitWidth) ||
-            isNaN(explicitHeight))
+
+
+        if (skipMeasure())
+        {
+            invalidateSizeFlag = false;
+            _measuredMinWidth = 0;
+            _measuredMinHeight = 0;
+        }
+        else
         {
             var xScale:Number = Math.abs(scaleX);
             var yScale:Number = Math.abs(scaleY);
@@ -5946,12 +5964,6 @@
                 _measuredMinHeight *= yScale;
                 _measuredHeight *= yScale;
             }
-        }
-        else
-        {
-            invalidateSizeFlag = false;
-            _measuredMinWidth = 0;
-            _measuredMinHeight = 0;
         }

         adjustSizesForScaleChanges();


Updated link to custom map instructions.

--- flexEditor/src/org/arisgames/editor/view/CustomMapsEditorView.as
+++ flexEditor/src/org/arisgames/editor/view/CustomMapsEditorView.as
@@ -447,7 +447,7 @@

 		protected function handleInstructionsButton(event:MouseEvent):void
 		{
-			var loc:String = "https://docs.google.com/document/d/1A4QvrjyTlzstbWmUDrvI-CpYGYo9zMinIyX1z7EJfhE/"; //GWS: PUT INSTRUCTIONS ON GOOGLE DOC AND LINK TO IT HERE
+			var loc:String = "https://docs.google.com/document/d/1A4QvrjyTlzstbWmUDrvI-CpYGYo9zMinIyX1z7EJfhE/edit";
 			navigateToURL(new URLRequest(loc),"_blank");
 		}


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

--- frameworks/projects/framework/src/mx/graphics/IStroke.as
+++ frameworks/projects/framework/src/mx/graphics/IStroke.as
@@ -17,6 +17,11 @@

 /**
  *  Defines the interface that classes that define a line must implement.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface IStroke
 {
@@ -33,6 +38,11 @@
 	/**
 	 *  The line weight, in pixels.
 	 *  For many chart lines, the default value is 1 pixel.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function get weight():Number;

@@ -68,6 +78,11 @@
      *  </ul>
      *
      *  @default LineScaleMode.NORMAL
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     function get scaleMode():String;

@@ -81,6 +96,11 @@
 	 *  Applies the properties to the specified Graphics object.
 	 *
 	 *  @param g The Graphics object to apply the properties to.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function apply(g:Graphics):void;