Transferred from the Adobe Open Source Subversion Repository

Revision: 7295
Author:   dsubrama@adobe.com
Date:     2009-05-26T23:59:25.112903Z

Log Message:
-----------
-Add in caret support to Spark List. Our default renderers draw a thin 1px blue line (same color as selection color) around items that are currently in focus.
-Selection and careted item stay in-sync unless the Ctrl key is down in which you can caret away on your own.
-With careting (current item in focus) comes the itemFocusChanged event.
-Add in more states to ItemRenderer, which now supports: normal, hovered, selected, normalAndCaret, hoveredAndCaret, selectedAndCaret.
-Because of the addition of a hasState() method on IStateClient2, IR's that don't support the above-mentioned states won't RTE!
-findKey support like in Halo, for Spark List
-Null check for Line when generating DAPI-2 stroke

Reviewers: Ryan for caret stuff, Ryan/Corey for hasState() impl
Doc: Yes
QA: Yes
Checkintests: Pass

Modified Paths:
--------------
<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/skins/default/DefaultItemRenderer.mxml</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/core/IStateClient2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Line.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.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/projects/flex4/src/spark/skins/default/DefaultComplexItemRenderer.mxml</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/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/framework/src/mx/core/IStateClient2.as
+++ frameworks/projects/framework/src/mx/core/IStateClient2.as
@@ -24,34 +24,13 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public interface IStateClient2 extends IEventDispatcher
+public interface IStateClient2 extends IEventDispatcher, IStateClient
 {
     //--------------------------------------------------------------------------
     //
     //  Properties
     //
     //--------------------------------------------------------------------------
-
-
-    //----------------------------------
-    //  currentState
-    //----------------------------------
-
-    /**
-     *  The current view state.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get currentState():String;
-
-    /**
-     *  @private
-     */
-    function set currentState(value:String):void;
-

     //----------------------------------
     //  states
@@ -95,6 +74,22 @@
      *  @private
      */
     function set transitions(value:Array):void;
+
+    /**
+     *  Determines whether the specified state has been defined on this
+     *  UIComponent.
+     *
+     *  @param stateName The name of the state being checked.
+     *
+     *  @return Whether or not the specified state has been defined
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function hasState(stateName:String):Boolean
+
 }

 }


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

--- frameworks/projects/framework/src/mx/core/RSLListLoader.as
+++ frameworks/projects/framework/src/mx/core/RSLListLoader.as
@@ -40,6 +40,11 @@
      *  @param rslList Array of RSLs to load.
 	 *  Each entry in the array is of type RSLItem or CdRSLItem.
      *  The RSLs will be loaded from index 0 to the end of the array.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function RSLListLoader(rslList:Array)
     {
@@ -129,6 +134,11 @@
 	 *
      *  @param rslErrorHandler Receives RSLEvent.RSL_ERROR events.
 	 *  May be null.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
  	public function load(progressHandler:Function,
 	                     completeHandler:Function,
@@ -149,6 +159,11 @@

     /**
      *  Increments the current index and loads the next RSL.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     private function loadNext():void
     {
@@ -179,6 +194,11 @@
      *
      *  @return The current item at index in the list,
 	 *  or null if there is no item at that index.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getItem(index:int):RSLItem
     {
@@ -193,6 +213,11 @@
      *  Gets the index of the currently loading RSL.
      *
      *  @return The index of the currently loading RSL.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getIndex():int
     {
@@ -205,6 +230,11 @@
 	*  When the load() method is called the RSLs will be loaded.
     *
     *  @return The total number of RSLs in this object
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
     */
     public function getItemCount():int
     {
@@ -216,6 +246,11 @@
      *
      *  @return true if all the RSLs have been loaded,
 	 *  false otherwise.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function isDone():Boolean
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17876
Author:   tan@adobe.com
Date:     2010-09-27T17:34:08.606973Z

Log Message:
-----------
Adding copyright to some files that were missing them.

QE notes: N/A
Doc notes:
Bugs: SDK-27968
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/filters/BaseFilter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/ComboBoxButtonSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DropDownListButtonSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/rpc/src/mx/rpc/http/SerializationFilter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/filters/BaseDimensionFilter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/ConstraintLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/EffectEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/filters/IBitmapFilter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/sparkskins/src/mx/skins/spark/ContainerBorderSkin.as</path>

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

--- frameworks/projects/framework/src/mx/events/EffectEvent.as
+++ frameworks/projects/framework/src/mx/events/EffectEvent.as
@@ -1,3 +1,14 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
 package mx.events
 {


Revert "FLEX-34222 fix selection reverting to previous typed values when second value (not in list) is entered"

This reverts commit 05ea4798b51a03ef94576f17512473296a5d42a1.

--- frameworks/projects/spark/src/spark/components/ComboBox.as
+++ frameworks/projects/spark/src/spark/components/ComboBox.as
@@ -672,7 +672,6 @@
             }
             else
             {
-				selectedItem = textInput.text;
                 super.changeHighlightedSelection(CUSTOM_SELECTED_ITEM);
             }
         }
@@ -981,7 +980,7 @@
                 if (selectedItem != null)
                     textInput.text = itemToLabel(selectedItem);
                 else
-                	textInput.text = "";
+                textInput.text = "";
             }
             changeHighlightedSelection(selectedIndex);
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18023
Author:   aharui@adobe.com
Date:     2010-10-05T22:09:32.510025Z

Log Message:
-----------
Initial implementation of prompts in TextInput, TextArea, ComboBox.

QE notes: XD input still pending so don't take bitmaps just yet.
Doc notes: see new APIs
Bugs: SDK-20959
Reviewer: Corey
Tests run: checkintests mustella/gumbo/ComboBox, TextInput, TextArea
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/TextInputSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/ComboBoxTextInputSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/TextAreaSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/defaults.css</path>

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

--- frameworks/projects/spark/src/spark/components/ComboBox.as
+++ frameworks/projects/spark/src/spark/components/ComboBox.as
@@ -412,6 +412,39 @@
      */
     public var openOnInput:Boolean = true;

+    //----------------------------------
+    //  prompt
+    //----------------------------------
+
+    private var _prompt:String;
+    private var promptChanged:Boolean;
+
+    /**
+     *  @default null
+     *
+     *  Text to be displayed if/when the actual
+     *  text property is a null or empty string.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function get prompt():String
+    {
+        return _prompt;
+    }
+
+    /**
+     *  @private
+     */
+    public function set prompt(value:String):void
+    {
+        _prompt = value;
+        promptChanged = true;
+        invalidateProperties();
+    }
+
     //--------------------------------------------------------------------------
     //  restrict
     //--------------------------------------------------------------------------
@@ -651,6 +684,12 @@
                 maxCharsChanged = false;
             }

+            if (promptChanged)
+            {
+                textInput.prompt = _prompt;
+                promptChanged = false;
+            }
+
             if (restrictChanged)
             {
                 textInput.restrict = _restrict;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19674
Author:   cframpto@adobe.com
Date:     2011-01-10T21:50:40.535000Z

Log Message:
-----------
Add sortChanging and sortChange events to DataGrid for interactive sorting.  For now, until PARB'ed, change sortByColumns() signature to
    public function sortByColumns(columnIndices:Vector.<int>, isInteractive:Boolean=false):Boolean
Fix some doc nits in the other grid events.

QE notes:
Doc notes:
Bugs: SDK-28617
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/events/GridCaretEvent.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/events/GridSortEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -54,6 +54,7 @@
 import spark.events.GridEvent;
 import spark.events.GridSelectionEvent;
 import spark.events.GridSelectionEventKind;
+import spark.events.GridSortEvent;

 use namespace mx_internal;

@@ -449,7 +450,7 @@
  *
This event is dispatched when the user interacts with the control.
  *  When you change the selection programmatically,
  *  the component does not dispatch the selectionChange event.
- *  It dispatches the valueCommit event instead.

+ *  In either case it dispatches the valueCommit event as well.

  *
  *  @eventType spark.events.GridSelectionEvent.SELECTION_CHANGE
  *
@@ -459,6 +460,44 @@
  *  @productversion Flex 4.5
  */
 [Event(name="selectionChange", type="spark.events.GridSelectionEvent")]
+
+/**
+ *  Dispatched before the sort has been applied to the data provder's collection.
+ *  Calling the preventDefault() method
+ *  on the event prevents the sort from being applied.
+ *  Alternatively you can modify the columnIndices and
+ *  newSortFields paramters of the event if you want to change the default
+ *  behavior of the sort.
+ *
+ *
This event is dispatched when the user interacts with the control.
+ *  When you sort the data provider's collection programmatically,
+ *  the component does not dispatch the sortChanging event.

+ *
+ *  @eventType spark.events.GridSelectionEvent.SORT_CHANGING
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+ */
+[Event(name="sortChanging", type="spark.events.GridSortEvent")]
+
+/**
+ *  Dispatched after the sort has been applied to the data provder's collection.
+ *
+ *
This event is dispatched when the user interacts with the control.
+ *  When you sort the data provider's collection programmatically,
+ *  the component does not dispatch the sortChanging event.
+ *  In either case it dispatches the valueCommit event as well.

+ *
+ *  @eventType spark.events.GridSelectionEvent.SELECTION_CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+ */
+[Event(name="sortChange", type="spark.events.GridSortEvent")]

 //--------------------------------------
 //  Edit Events
@@ -3467,14 +3506,26 @@
      *
      *  @param columnIndices The indices of the columns by which to sort the dataProvider.
      *
-     *  @return true if the dataProvider can be sorted with the provided column indices.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public function sortByColumns(columnIndices:Vector.<int>):Boolean
+     *  @param isInteractive If true, GridSortEvent.SORT_CHANGING and
+     *  GridSortEvent.SORT_CHANGE events are dispatched and the column header group
+     *  visibleSortIndicatorIndices is updated with columnIndices.
+     *
+     *  @return true if the dataProvider was sorted with the provided
+     *  column indicies.
+     *
+     *  @see spark.components.DataGrid#dataProvider
+     *  @see spark.components.gridClasses.GridColumn#sortCompareFunction
+     *  @see spark.components.gridClasses.GridColumn#sortDescending
+     *  @see spark.components.gridClasses.GridColumn#sortField
+     *  @see spark.components.gridClasses.GridColumnHeaderGroup#visibleSortIndicatorIndices
+     *  @see spark.events.GridSortEvent
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function sortByColumns(columnIndices:Vector.<int>, isInteractive:Boolean=false):Boolean
     {
         const dataProvider:ICollectionView = this.dataProvider as ICollectionView;
         if (!dataProvider)
@@ -3486,14 +3537,50 @@
         else
             sort = new Sort();

-        var sortFields:Array = createSortFields(columnIndices, sort.fields);
+        var sortFields:Array = createSortFields(columnIndices, sort.fields, isInteractive);
         if (!sortFields)
             return false;

+        var oldSortFields:Array = (dataProvider.sort) ? dataProvider.sort.fields : null;
+
+        // Dispatch the "changing" event. If preventDefault() is called
+        // on this event, the sort operation will be cancelled.  If columnIndices or
+        // sortFields are changed, the new values will be used.
+        if (isInteractive)
+        {
+            // This is a shallow copy which means only the pointers to the ISortField objects
+            // are copied to the new Array, not the ISortField objects themselves.
+            if (oldSortFields)
+                oldSortFields = oldSortFields.concat();
+
+            if (hasEventListener(GridSortEvent.SORT_CHANGING))
+            {
+                const changingEvent:GridSortEvent =
+                    new GridSortEvent(GridSortEvent.SORT_CHANGING,
+                        false, true,
+                        columnIndices,
+                        oldSortFields,  /* intended to be read-only but no way to enforce this */
+                        sortFields);
+
+                // The event was cancelled so don't sort.
+                if (!dispatchEvent(changingEvent))
+                    return false;
+
+                // Update the sort columns since they might have changed.
+                columnIndices = changingEvent.columnIndices;
+                if (!columnIndices)
+                    return false;
+
+                // Update the new sort fields since they might have changed.
+                sortFields = changingEvent.newSortFields;
+                if (!sortFields)
+                    return false;
+            }
+        }
+
         // Remove each old SortField that's not a member of the new sortFields Array
         // as a "styleClient" of this DataGrid.

-        const oldSortFields:Array = (dataProvider.sort) ? dataProvider.sort.fields : null;
         if (oldSortFields)
         {
             for each (var oldSortField:ISortField in oldSortFields)
@@ -3520,22 +3607,47 @@

         dataProvider.sort = sort;
         dataProvider.refresh();
+
+        if (isInteractive)
+        {
+            // Dispatch the "change" event.
+            if (hasEventListener(GridSortEvent.SORT_CHANGE))
+            {
+                const changeEvent:GridSortEvent =
+                    new GridSortEvent(GridSortEvent.SORT_CHANGE,
+                        false, true,
+                        columnIndices,
+                        oldSortFields, sortFields);
+                dispatchEvent(changeEvent);
+            }
+
+            // Update the visible sort indicators.
+            if (columnHeaderGroup)
+                columnHeaderGroup.visibleSortIndicatorIndices = columnIndices;
+        }
+
+        // Dispatch the "valueCommit" event.
+        dispatchFlexEvent(FlexEvent.VALUE_COMMIT);
+
         return true;
     }
-
+
     /**
      *  @private
      *  This function builds an array of SortFields based on the column
      *  indices given. The direction is based on the current value of
-     *  sortDescending from the column.
-     */
-    private function createSortFields(columnIndices:Vector.<int>, previousFields:Array):Array
+     *  sortDescending from the column.  If preservePrevious is true,
+     *  previousFields will be considered read-only and, if necessary,
+     *  SortFields will be recreated rather than reused.
+     */
+    private function createSortFields(columnIndices:Vector.<int>, previousFields:Array,
+                                      preservePrevious:Boolean):Array
     {
         if (columnIndices.length == 0)
             return null;

         var fields:Array = new Array();
-
+
         for each (var columnIndex:int in columnIndices)
         {
             var col:GridColumn = this.getColumnAt(columnIndex);
@@ -3559,18 +3671,18 @@
             // we've sorted by this column in the previous sort.
             if (!sortField && previousFields)
                 sortField = findSortField(dataField, previousFields, isComplexDataField);
-
+            else
+                preservePrevious = false;
+
             // Previously sorted column, so flip sortDescending.
             if (sortField)
-            {
                 sortDescending = !sortField.descending;
-            }
-            else
-            {
-                // Create a SortField from the column.
+
+            // Create a SortField from the column.  If the sortField was found in the
+            // previousFields and we need to preserve them, create a new sort field for the column.
+            if (!sortField || preservePrevious)
                 sortField = col.sortField;
-            }
-
+
             col.sortDescending = sortDescending;
             sortField.descending = sortDescending;
             fields.push(sortField);
@@ -4277,8 +4389,9 @@

         const columnIndices:Vector.<int> = Vector.<int>([column.columnIndex]);

-        if (sortByColumns(columnIndices))
-            columnHeaderGroup.visibleSortIndicatorIndices = columnIndices;
+        // If the sort isn't cancelled, will also update the columnHeaderGroup
+        // visibleSortIndiciatorIndices.
+        sortByColumns(columnIndices, true);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 17063
Author:   cframpto@adobe.com
Date:     2010-07-26T21:22:18.087520Z

Log Message:
-----------
RTE - grid.selectedItem should be accessed as property not method.  Fix typo in Grid ASdocs.

QE notes:
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/DataGrid.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -275,7 +275,7 @@
     public function get selectedItem():Object
     {
         if (grid)
-            return grid.selectedItem();
+            return grid.selectedItem;

         return (dataProvider && (selectedIndex > 0)) ?
                 dataProvider.getItemAt(selectedIndex) : undefined;


Transferred from the Adobe Open Source Subversion Repository

Revision: 3670
Author:   gosmith@adobe.com
Date:     2008-10-15T23:26:37.608871Z

Log Message:
-----------
The interaction of the 'text' and 'content' properties is now working as intended. If you set one and wait for the updateComplete event, you can now get the other. (In the meantime, the other is null.) If you set both at the same time, 'content' wins.

Also, setting the 'text' or the 'content' of a TextView now causes the selection range to be reset to (-1, -1), which means "no selection".

Reviewer: Deepa
Bugs: SDK-16035, SDK-16359, SDK-17307
QA: Please test the interaction of the 'text' and 'content' properties in TextGraphic, TextView, and TextArea.
Doc: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -28,6 +28,7 @@
 import flashx.tcal.formats.IParagraphFormat;
 import flashx.tcal.formats.ParagraphFormat;

+import mx.core.mx_internal;
 import mx.graphics.graphicsClasses.TextFlowComposer;
 import mx.graphics.graphicsClasses.TextGraphicElement;
 import mx.utils.TextUtil;
@@ -149,6 +150,60 @@
 	 */
 	private var contentChanged:Boolean = false;

+    /**
+     *  @private
+     *  This flag is set to true if the 'text' needs to be extracted
+     *  from the 'content'.
+     */
+    private var textInvalid:Boolean = false;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  text
+	//----------------------------------
+
+	/**
+	 *  @private
+	 */
+    override public function get text():String
+    {
+        // Extracting the plaintext from a TextFlow is somewhat expensive,
+        // as it involves iterating over the leaf FlowElements in the TextFlow.
+        // Therefore we do this extraction only when necessary, namely when
+        // you set the 'content' and then get the 'text'.
+        if (textInvalid)
+        {
+            mx_internal::_text = TextUtil.extractText(textFlow);
+            textInvalid = false;
+        }
+
+        return mx_internal::_text;
+    }
+
+	/**
+	 *  @private
+	 */
+    override public function set text(value:String):void
+    {
+		// If 'text' is being set after 'content', ignore it
+        // because 'content' has precedence.
+        if (contentChanged)
+            return;
+
+        // Setting 'text' temporarily causes 'content' to become null.
+        // Later, after the 'text' has been committed into the TextFlow,
+        // getting 'content' will return the TextFlow.
+        _content = null;
+        contentChanged = false;
+
+        super.text = value;
+    }
+
 	//--------------------------------------------------------------------------
 	//
 	//  Properties
@@ -179,6 +234,12 @@
 	{
 		if (value != _content)
 		{
+            // Setting 'content' temporarily causes 'text' to become null.
+            // Later, after the 'content' has been committed into the TextFlow,
+            // getting 'text' will extract the text from the TextFlow.
+            mx_internal::_text = null;
+            textChanged = false;
+
 			var oldValue:Object = _content;
 			_content = value;
 			dispatchPropertyChangeEvent("content", oldValue, value);
@@ -323,48 +384,47 @@
 	 */
 	private function createTextFlow():TextFlow
 	{
-		if (contentChanged || textChanged)
-        {
-            if (contentChanged)
-		    {
-                if (content is TextFlow)
-                {
-                    textFlow = TextFlow(content);
-                }
-                else if (content is Array)
-                {
-                    textFlow = new TextFlow();
-                    textFlow.mxmlChildren = content as Array;
-                }
-                else if (content is FlowElement)
-                {
-                    textFlow = new TextFlow();
-                    textFlow.mxmlChildren = [ content ];
-                }
-			    else if (content is String)
-			    {
-				    textFlow = importMarkup(String(content));
-			    }
-			    else if (content == null)
-			    {
-				    textFlow = createEmptyTextFlow();
-			    }
-                else
-                {
-                    throw new Error("invalid content");
-                }
-		    }
-		    else if (textChanged)
-		    {
-			    if (text != null && text != "")
-			    {
-				    textFlow = TextFilter.importToFlow(text, TextFilter.PLAIN_TEXT_FORMAT);
-			    }
-			    else
-			    {
-				    textFlow = createEmptyTextFlow();
-			    }
+        if (contentChanged)
+		{
+            if (_content is TextFlow)
+            {
+                textFlow = TextFlow(_content);
             }
+            else if (_content is Array)
+            {
+                textFlow = new TextFlow();
+                textFlow.mxmlChildren = _content as Array;
+            }
+            else if (_content is FlowElement)
+            {
+                textFlow = new TextFlow();
+                textFlow.mxmlChildren = [ _content ];
+            }
+			else if (_content is String)
+			{
+				textFlow = importMarkup(String(_content));
+			}
+			else if (_content == null)
+			{
+				textFlow = createEmptyTextFlow();
+			}
+            else
+            {
+                throw new Error("invalid content");
+            }
+            textInvalid = true;
+		}
+		else if (textChanged)
+		{
+            var t:String = mx_internal::_text;
+            if (t != null && t != "")
+			{
+				textFlow = TextFilter.importToFlow(t, TextFilter.PLAIN_TEXT_FORMAT);
+			}
+			else
+			{
+				textFlow = createEmptyTextFlow();
+			}
         }

  		contentChanged = false;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12633
Author:   dsubrama@adobe.com
Date:     2009-12-08T00:08:59.596563Z

Log Message:
-----------
Metadata nits as requested by Builder/Catalyst.

Vertical/HorizontalLayout paddingLeft/Right/Top/Bottom properties do not need the minValue field since its perfectly legal to have negative padding values.

Spark text classes need the [Inspectable(category="General")] metadata for the text property.

QE notes: None
Doc notes: None
Bugs: SDK-24565
Reviewer: Hans
Tests run: Checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -428,6 +428,7 @@
     //----------------------------------
     //  text
     //----------------------------------
+    [Inspectable(category="General")]

     // Compiler will strip leading and trailing whitespace from text string.
     [CollapseWhiteSpace]


Transferred from the Adobe Open Source Subversion Repository

Revision: 3785
Author:   pdehaan@adobe.com
Date:     2008-10-21T18:57:25.569996Z

Log Message:
-----------
Add ASDoc class level examples for FxTextArea, FxTextInput, and TextView classes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -35,6 +35,8 @@

 /**
  *  Documentation is not currently available.
+ *
+ *  @includeExample examples/FxTextAreaExample.mxml
  */
 public class FxTextArea extends FxTextBase
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3528
Author:   gruehle@adobe.com
Date:     2008-10-09T00:10:59.153602Z

Log Message:
-----------
New Spark skins for Gumbo components. The wireframe skins will be re-packaged into a theme in a future checkin.

The default font for all Gumbo components is Arial 12 normal weight. In order to avoid conflict with the default font for Halo components, the Gumbo text styles are defined on three type selectors: FxButton, FxTextBase, and FxTextBox. If you want to change the default font for Gumbo components, you'll need to change it in all three selectors. This is a temporary solution until we have Spark skins for our Halo components.

This checkin also includes a workaround for SDK-17222. The workaround is to include a reference to FxHScrollBar and FxVScrollBar in FxTextArea, and a reference to FxScroller in FxList. This is a temporary workaround that will be removed when the bug is fixed.

Note: the files in the flex4test project have not been updated for the rename. This checkin does not resolve that issue.

Bugs: SDK-16302, SDK-16297, SDK-16444, SDK-16629, SDK-16779, SDK-16052
QE: These skins are the current definition of the spark look and feel. There are some discrepancies with the XD specs that XD will be resolving (eg all fonts are Arial 12)

Modified Paths:
--------------
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxDefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollBarDownButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets/SpinnerDownArrow.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVScrollBarSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets/ScrollLeftArrow.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHSliderTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollBarUpButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets/SpinnerUpArrow.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxSpinnerIncrButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets/ScrollDownArrow.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHScrollBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets/RadioDot.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets/ScrollRightArrow.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets/ScrollUpArrow.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxNumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxSpinnerDecrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVScrollBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/flex4/flex4test_testScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollBarRightButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxTextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxToggleButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/assets/CheckMark.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxSpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxCheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollBarLeftButtonSkin.mxml</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/skins/spark/FxHSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHSliderThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxRadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVScrollBarTrackSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -13,14 +13,10 @@
 {

 import flash.events.Event;
-import flash.events.FocusEvent;
-import flashx.tcal.formats.LineBreak;
-
-import mx.events.TextOperationEvent;
-import mx.core.ScrollPolicy;
-import mx.components.TextView;
+
 import mx.components.baseClasses.FxScrollBar;
 import mx.components.baseClasses.FxTextBase;
+import mx.core.ScrollPolicy;

 //--------------------------------------
 //  Other metadata
@@ -39,6 +35,10 @@
 public class FxTextArea extends FxTextBase
 {
     include "../core/Version.as";
+
+    // Force a dependency on FxHScrollBar and FxVScrollBar to work around bug SDK-17222
+    private static var hScrollDep:FxHScrollBar;
+    private static var vScrollDep:FxVScrollBar;

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationValidatorBase.as
+++ frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationValidatorBase.as
@@ -1,4 +1,21 @@
-
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// This file is originally available in mx:validators code. Minor changes were
+// made to use this in spark validators. The changes done are
+// 1. removed the inheritance from IMXMLObject class and instead inherits from
+//    GlobalizationBase
+// 2. removed the private variable document.
+// 3. removed initialize() method.
+//
 package spark.validators.supportClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22564
Author:   tkraikit@adobe.com
Date:     2011-09-14T19:50:07.656843Z

Log Message:
-----------
Update ASDoc "@productversion Flex 4.5.2" => "@productversion Flex 4.6"

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/OnDemandDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/graphics/BitmapScaleMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/FlexVersion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/FormatPattern.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/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/mobiletheme/src/spark/skins/mobile/CalloutActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListScrollerSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ToggleSwitchSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImageSource.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/DataGroup.as</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/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>
<path kind="file" action="M">/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/projects/mobiletheme/src/spark/skins/mobile/StageTextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/CalendarDate.as</path>
<path kind="file" action="M">/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/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/DateTimeFormatterEx.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as
+++ frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as
@@ -22,7 +22,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 public class DateAndTimeProvider extends OnDemandDataProvider
 {
@@ -51,7 +51,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function DateAndTimeProvider(locale:String, start:Date, end:Date,
                                         today:Date = null)
@@ -125,7 +125,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     override public function get length():int
     {
@@ -143,7 +143,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     override public function getItemAt(index:int, prefetch:int=0):Object
     {
@@ -171,7 +171,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     override public function getItemIndex(item:Object):int
     {
@@ -202,7 +202,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     override public function toArray():Array
     {


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

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

 package mx.controls.olapDataGridClasses
 {


little changes

little changes

--- HLSPlugin/src/org/denivip/osmf/plugins/HLSSettings.as
+++ HLSPlugin/src/org/denivip/osmf/plugins/HLSSettings.as
@@ -3,9 +3,9 @@
 	public class HLSSettings
 	{
 		// Buffer control
-		public static var hlsBufferSizePause	:Number = 512;
-		public static var hlsBufferSizeBig		:Number = 128;
-		public static var hlsBufferSizeDef		:Number = 32;//OSMFSettings.hdsMinimumBufferTime;
+		public static var hlsBufferSizePause	:Number = 128;
+		public static var hlsBufferSizeBig		:Number = 64;
+		public static var hlsBufferSizeDef		:Number = 24;//OSMFSettings.hdsMinimumBufferTime;

 		// reload/load playlist troubles
 		public static var hlsMaxReloadRetryes	:int = 5;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.collections
 {


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

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

 package mx.automation.tabularData
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package spark.components.gridClasses
 {


Added overrides for hitTestObject and hitTestPoint

git-svn-id: 6aa7ccb0a2048310a30f08a72aaff4ca39d980ed@105 91848ab2-c4ae-4e4f-8e6a-6a52ea0dccc3

--- flare.util/flare/display/DirtySprite.as
+++ flare.util/flare/display/DirtySprite.as
@@ -1,9 +1,9 @@
 package flare.display
 {
-	import flash.events.Event;
+	import flash.display.DisplayObject;
 	import flash.display.Sprite;
 	import flash.display.Stage;
-	import flash.display.DisplayObject;
+	import flash.events.Event;
 	import flash.geom.Rectangle;

 	/**
@@ -155,6 +155,26 @@
 		}

 		/**
+		 * If dirty, either sprite is re-rendered before hit-testing.
+		 */
+		public override function hitTestObject(obj:DisplayObject):Boolean
+		{
+			if (_dirty == DIRTY) { _dirty = VISIT; render(); }
+			var ds:DirtySprite = obj as DirtySprite;
+			if (ds && ds._dirty == DIRTY) { ds._dirty = VISIT; ds.render(); }
+			return super.hitTestObject(obj);
+		}
+
+		/**
+		 * If dirty, this sprite is re-rendered before hit-testing.
+		 */
+		public override function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean=false):Boolean
+		{
+			if (_dirty == DIRTY) { _dirty = VISIT; render(); }
+			return super.hitTestPoint(x, y, shapeFlag);
+		}
+
+		/**
 		 * Draw this sprite's graphical content. Subclasses should
 		 * override this method with custom drawing code.
 		 */


Transferred from the Adobe Open Source Subversion Repository

Revision: 9708
Author:   cframpto@adobe.com
Date:     2009-08-27T20:22:38.464977Z

Log Message:
-----------
Add TLFTextInput which allows Halo controls to use the spark FTE/TLF-based TextInput component wherever a Halo TextInput can be used.

This is done by introducing a new style for Halo called textInputClass.  In the global selector, in defaults.css, it defaults to mx.controls.TextInput.  This style only applies for Flex version 4 and up.

To use TLFText apply the new TLFText.css style sheet as a theme to your application.  Alternatively you may apply this style sheet in your application but you will see compiler warnings for any unused selectors.

Note that mx.controls.TLFTextInput lives in spark.swc since it is build on spark.components.TextInput.

Modified ColorPicker, DateField, ComboBox, NumericStepper and TextInput to look at the textInputClass field to determine whether to use a Halo TextInput or a Spark TextInput.

QE notes:
Doc notes:
Bugs:
Reviewer: Gordon
Tests run: mx ColorPicker,DateField,ComboBox,NumericStepper and TextInput as well as checkintests
one ColorPicker_events_toolTipHide failed - the timer does fire eventually but it seems to take much longer than the hideDelay=10000.
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManagerComponent.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/TLFText.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ComboBox.as
+++ frameworks/projects/mx/src/mx/controls/ComboBox.as
@@ -1480,8 +1480,8 @@

             if (editable)
             {
-                textInput.getTextField().setSelection(0, textInput.text.length);
-                textInput.getTextField().scrollH = 0;
+                textInput.selectRange(0, textInput.text.length);
+                textInput.horizontalScrollPosition = 0;
             }

             if (_dropdown)


fix changing the property to 0

fix changing the property to 0

--- src/aerys/minko/render/DrawCallBindingsConsumer.as
+++ src/aerys/minko/render/DrawCallBindingsConsumer.as
@@ -58,7 +58,7 @@

 		public function setProperty(propertyName : String, value : Object) : void
 		{
-			if (!value)
+			if (value === null)
 				return;

 			if (!_enabled)
@@ -74,4 +74,4 @@
 				binding.set(_cpuConstants, _vsConstants, _fsConstants, _fsTextures, value);
 		}
 	}
-}+}


Removed the use of ArrayCollection in RosterGroup.

--- src/org/igniterealtime/xiff/data/im/RosterGroup.as
+++ src/org/igniterealtime/xiff/data/im/RosterGroup.as
@@ -3,63 +3,72 @@
  */
 package org.igniterealtime.xiff.data.im
 {
-	/*
-	 * Copyright (C) 2008
-	 * Jive Software
-
+	/**
+	 * Represents the groups in users roster.
 	 */
-
-	import mx.collections.ArrayCollection;
-	import mx.collections.Sort;
-	import mx.collections.SortField;
-
-	public class RosterGroup extends ArrayCollection
+	public class RosterGroup
 	{
 		public var label:String;
 		public var shared:Boolean = false;

-		public function RosterGroup(l:String)
+		private var _items:Array = [];
+
+		/**
+		 * Create a new group with the given name
+		 * @param	name
+		 */
+		public function RosterGroup(name:String)
 		{
-			var s:Sort = new Sort();
-		    s.fields = [new SortField("displayName", true)];
-		    sort = s;
-		    refresh();
-			label = l;
+			label = name;
 		}

-		public override function addItem(item:Object):void
+		/**
+		 * Insert a new roster item if it does not already exists in this group
+		 * @param	item
+		 */
+		public function addItem(item:RosterItemVO):void
 		{
-			if(!item is RosterItemVO)
-				throw new Error("Assertion Failure: attempted to add something other than a RosterItemVO to a RosterGroup");
-			if(source.indexOf(item) == -1)
-				super.addItem(item);
-		}
-
-		public function removeItem(item:RosterItemVO):void
-		{
-			var itemIndex:int = getItemIndex(item);
-			if(itemIndex >= 0)
-				removeItemAt(itemIndex);
-			else
+			if (_items.indexOf(item) == -1)
 			{
-				itemIndex =	source.indexOf(item);
-				if(itemIndex >= 0)
-					source.splice(itemIndex, 1);
+				_items.push(item);
 			}
 		}

-		public override function set filterFunction(f:Function):void
+		/**
+		 * Remove the given roster item from this group.
+		 * @param	item
+		 */
+		public function removeItem(item:RosterItemVO):void
 		{
-			throw new Error("Setting the filterFunction on RosterGroup is not allowed; Wrap it in a ListCollectionView and filter that.");
+			var index:int = _items.indexOf(item);
+			if (index != -1)
+			{
+				_items.splice(index, 1);
+			}
 		}
-
-		private function sortContacts(item1:RosterItemVO, item2:RosterItemVO, fields:Array = null):int
+
+		/**
+		 * Does the given item exists in this group?
+		 * @param	item
+		 * @return
+		 */
+		public function contains(item:RosterItemVO):Boolean
 		{
-			if(item1.displayName.toLowerCase() < item2.displayName.toLowerCase())
-				return -1;
-			else if(item1.displayName.toLowerCase() > item2.displayName.toLowerCase())
-				return 1;
-			return 0;
+			var value:Boolean = false;
+			var index:int = _items.indexOf(item);
+			if (index != -1)
+			{
+				value = true;
+			}
+			return value;
+		}
+
+		/**
+		 * Roster items in this group.
+		 */
+		public function get items():Array
+		{
+			return _items;
 		}
 	}
 }


abcdump - Add missing tag names (r+rreitmai)

--- utils/abcdump.as
+++ utils/abcdump.as
@@ -1319,17 +1319,25 @@
         "ImportAssets2",        // 71

         "DoABC",                // 72
-        "73 (invalid)",         // 73
-        "74 (invalid)",         // 74
-        "75 (invalid)",         // 75
+        "DefineFontAlignZones", // 73
+        "CSMSettings",          // 74
+        "DefineFont3",          // 75
         "SymbolClass",          // 76
         "Metadata",             // 77
-        "78 (invalid)",         // 78
-        "79 (invalid)",         // 79
+        "DefineScalingGrid",    // 78
+        "DefineDeviceVideo",    // 79
         "80 (invalid)",         // 80
         "81 (invalid)",         // 81
         "DoABC2",               // 82
-        "83 (invalid)"          // 83
+        "DefineShape4",         // 83
+        "DefineMorphShape2",    // 84
+        "PlaceImagePrivate",    // 85
+        "DefineSceneAndFrameLabelData", // 86
+        "DefineBinaryData",     // 87
+        "DefineFontName",       // 88
+        "StartSound",           // 89
+        "DefineBitsJPEG64",     // 90
+        "DefineFont4",          // 91
     ]

@@ -1361,7 +1369,11 @@
                 if (((length = h & 0x3F) == 0x3F))
                     length = data.readInt();

-                infoPrint(tagNames[type]+" "+length+"b "+int(100*length/data.length)+"%")
+                var tagN = tagNames[type]
+                if (type >= tagNames.length)
+                    tagN = type+" (unknown)"
+
+                infoPrint(tagN+" "+length+"b "+int(100*length/data.length)+"%")
                 switch (type)
                 {
                 case 0: return


Added suggestion to look at memory to single-op

--- src/Levels/BasicTutorials/OpTutorial.as
+++ src/Levels/BasicTutorials/OpTutorial.as
@@ -15,7 +15,8 @@
 			info = "From this level onward, your goal will be to go through memory, starting at 0, and execute every instruction there.\n\n"
 			info = "Instructions are made up of four numbers. The first number, the opcode, says what type of instruction it is. "
 			info += "The other three, the source, target, & destination, have meanings that vary by opcode.\n\n"
-			info += "Every level has a fixed set of instruction types, but several permutations will be generated to test your solution.";
+			info += "Every level has a fixed set of instruction types, but several permutations will be generated to test your solution. ";
+			info += "Click 'Memory' in the top bar to see examples.";
 			useModuleRecord = false;
 		}


Add accessors and upate drawCall

Add accessors and upate drawCall

A Accessors on :
	- indexStream
	- vertexStreams
M Update drawcall after an access on indexStream

--- src/aerys/minko/scene/node/mesh/Mesh.as
+++ src/aerys/minko/scene/node/mesh/Mesh.as
@@ -60,13 +60,28 @@
 			effectChangedHandler(_effect);
 		}

+		public function get vertexStreams() : Vector.<IVertexStream>
+		{
+			return _vertexStreams;
+		}
+
+		public function get indexStream() : IndexStream
+		{
+			return _indexStream;
+		}
+		public function set indexStream(value : IndexStream) : void
+		{
+			_indexStream = value;
+			updateDrawCalls();
+		}
+
 		public function Mesh(effect			: Effect,
-							 vertexStreams	: Vector.<IVertexStream>,
-							 indexStream	: IndexStream	= null)
+							 vertexStreams	: Vector.<IVertexStream>	= null,
+							 indexStream	: IndexStream				= null)
 		{
 			super();

-			_vertexStreams = vertexStreams;
+			_vertexStreams = vertexStreams || new Vector.<IVertexStream>();
 			_indexStream = indexStream;

 			initialize();
@@ -103,6 +118,15 @@

 		private function effectChangedHandler(effect : Effect, property : String = null) : void
 		{
+			updateDrawCalls();
+			_bindings.clear();
+		}
+
+		private function updateDrawCalls() : void
+		{
+			if (!_indexStream)
+				return ;
+
 			var passes		: Vector.<ActionScriptShader>	= _effect.passes;
 			var numPasses 	: int 							= passes.length;

@@ -118,7 +142,7 @@
 					computeTangentSpace(StreamUsage.STATIC);
 				}
 				else if (components.indexOf(VertexComponent.NORMAL) >= 0
-						 && _vertexStreams[0].getStreamByComponent(VertexComponent.NORMAL) == null)
+					&& _vertexStreams[0].getStreamByComponent(VertexComponent.NORMAL) == null)
 				{
 					computeNormals(StreamUsage.STATIC);
 				}
@@ -126,8 +150,6 @@
 				drawCall.setStreams(_vertexStreams, _indexStream);
 				_drawCalls[i] = drawCall;
 			}
-
-			_bindings.clear();
 		}

 		public function clone() : Mesh


Transferred from the Adobe Open Source Subversion Repository

Revision: 8023
Author:   aharui@adobe.com
Date:     2009-06-19T23:37:02.437061Z

Log Message:
-----------
Frame1 cleanup part 2 (final part AFAIK).  MarshallPLan (now MarshallingSupport) is now opt-in.  All SWFs using Marshalling must use -includes=mx.managers.systemClasses.MarshallingSupport on the command line.

QE Notes: None
Doc Notes: None
Bugs: N/A
Reviewer: Joan cyclone
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as" copyfrom-rev="7988" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>

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

--- frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as
@@ -53,6 +53,11 @@
 import mx.managers.ISystemManagerChildManager;
 import mx.managers.SystemManagerGlobals;
 import mx.managers.SystemManagerProxy;
+import mx.managers.marshalClasses.CursorManagerMarshalMixin;
+import mx.managers.marshalClasses.DragManagerMarshalMixin;
+import mx.managers.marshalClasses.FocusManagerMarshalMixin;
+import mx.managers.marshalClasses.PopUpManagerMarshalMixin;
+import mx.managers.marshalClasses.ToolTipManagerMarshalMixin;
 import mx.utils.EventUtil;
 import mx.utils.NameUtil;
 import mx.utils.SecurityUtil;
@@ -62,7 +67,7 @@
 [ExcludeClass]
 [Mixin]

-public class MarshallPlan implements IMarshalSystemManager, ISWFBridgeProvider
+public class MarshallingSupport implements IMarshalSystemManager, ISWFBridgeProvider
 {
     include "../../core/Version.as";

@@ -74,8 +79,35 @@

 	public static function init(fbs:IFlexModuleFactory):void
 	{
-		Singleton.registerClass("mx.managers::IMarshalSystemManager", MarshallPlan);
-	}
+		Singleton.registerClass("mx.managers::IMarshalSystemManager", MarshallingSupport);
+	}
+
+    /**
+     *  @private
+     */
+    private static function weakDependency():void { CursorManagerMarshalMixin};
+
+    /**
+     *  @private
+     */
+    private static function weakDependency2():void { DragManagerMarshalMixin };
+
+    /**
+     *  @private
+     */
+    private static function weakDependency3():void { FocusManagerMarshalMixin };
+
+    /**
+     *  @private
+     */
+    private static function weakDependency4():void { PopUpManagerMarshalMixin };
+
+    /**
+     *  @private
+     */
+    private static function weakDependency5():void { ToolTipManagerMarshalMixin };
+
+

 	//--------------------------------------------------------------------------
 	//
@@ -91,7 +123,7 @@
          *  Flash Player instantiates an instance of this class,
 	 *  causing this constructor to be called.</p>
 	 */
-	public function MarshallPlan(systemManager:ISystemManager = null)
+	public function MarshallingSupport(systemManager:ISystemManager = null)
 	{
 		super();

@@ -102,8 +134,8 @@

 		systemManager.addEventListener(FlexEvent.CREATION_COMPLETE, appCreationCompleteHandler);

-		systemManager.addEventListener(EventListenerRequest.ADD_EVENT_LISTENER_REQUEST, systemManagerEventListenerRequestHandler);
-		systemManager.addEventListener(EventListenerRequest.REMOVE_EVENT_LISTENER_REQUEST, systemManagerEventListenerRequestHandler);
+		systemManager.addEventListener("addEventListener", addEventListenerHandler);
+		systemManager.addEventListener("removeEventListener", removeEventListenerHandler);
 		systemManager.addEventListener("getVisibleApplicationRect", getVisibleApplicationRectHandler);
 		systemManager.addEventListener("deployMouseShields", deployMouseShieldsHandler);
 		systemManager.addEventListener("getScreen", Stage_resizeHandler);
@@ -211,7 +243,7 @@
             return _bridgeToFocusManager;
         else if (systemManager.topLevelSystemManager)
         {
-            var topMP:MarshallPlan = MarshallPlan(systemManager.topLevelSystemManager.
+            var topMP:MarshallingSupport = MarshallingSupport(systemManager.topLevelSystemManager.
                         getImplementation("mx.managers::IMarshalSystemManager"));
             return topMP.bridgeToFocusManager;
         }
@@ -224,7 +256,7 @@
             _bridgeToFocusManager = bridgeToFMDictionary;
         else if (systemManager.topLevelSystemManager)
         {
-            var topMP:MarshallPlan = MarshallPlan(systemManager.topLevelSystemManager.
+            var topMP:MarshallingSupport = MarshallingSupport(systemManager.topLevelSystemManager.
                         getImplementation("mx.managers::IMarshalSystemManager"));
             topMP.bridgeToFocusManager = bridgeToFMDictionary;
         }
@@ -1968,8 +2000,8 @@
 	{
 		if (!systemManager.isTopLevel() && systemManager.topLevelSystemManager)
 		{
-			var mp:MarshallPlan =
-				MarshallPlan(systemManager.topLevelSystemManager.getImplementation("mx.managers::IMarshalSystemManager"));
+			var mp:MarshallingSupport =
+				MarshallingSupport(systemManager.topLevelSystemManager.getImplementation("mx.managers::IMarshalSystemManager"));
 			mp.addChildBridgeListeners(bridge);
 			return;
 		}
@@ -2001,8 +2033,8 @@
 	{
 		if (!systemManager.isTopLevel() && systemManager.topLevelSystemManager)
 		{
-			var mp:MarshallPlan =
-				MarshallPlan(systemManager.topLevelSystemManager.getImplementation("mx.managers::IMarshalSystemManager"));
+			var mp:MarshallingSupport =
+				MarshallingSupport(systemManager.topLevelSystemManager.getImplementation("mx.managers::IMarshalSystemManager"));

 			mp.removeChildBridgeListeners(bridge);
 			return;
@@ -2036,8 +2068,8 @@
 	{
 		if (!systemManager.isTopLevel() && systemManager.topLevelSystemManager)
 		{
-			var mp:MarshallPlan =
-				MarshallPlan(systemManager.topLevelSystemManager.getImplementation("mx.managers::IMarshalSystemManager"));
+			var mp:MarshallingSupport =
+				MarshallingSupport(systemManager.topLevelSystemManager.getImplementation("mx.managers::IMarshalSystemManager"));

 			mp.addParentBridgeListeners();
 			return;
@@ -2069,8 +2101,8 @@
 	{
 		if (!systemManager.isTopLevel() && systemManager.topLevelSystemManager)
 		{
-			var mp:MarshallPlan =
-				MarshallPlan(systemManager.topLevelSystemManager.getImplementation("mx.managers::IMarshalSystemManager"));
+			var mp:MarshallingSupport =
+				MarshallingSupport(systemManager.topLevelSystemManager.getImplementation("mx.managers::IMarshalSystemManager"));

 			mp.removeParentBridgeListeners();
 			return;
@@ -2796,19 +2828,19 @@
 	}

-	private function systemManagerEventListenerRequestHandler(request:EventListenerRequest):void
-	{
-		if (request.type == EventListenerRequest.ADD_EVENT_LISTENER_REQUEST)
-		{
-            if (!addEventListener(request.eventType, request.listener, request.useCapture,
+	private function addEventListenerHandler(request:DynamicEvent):void
+	{
+        if (!addEventListener(request.eventType, request.listener, request.useCapture,
                                 request.priority, request.useWeakReference))
-                request.preventDefault();
-        }
-        else
-        {
-            if (!removeEventListener(request.eventType, request.listener, request.useCapture))
-                request.preventDefault();
-        }
+            request.preventDefault();
+    }
+
+
+	private function removeEventListenerHandler(request:DynamicEvent):void
+    {
+        if (!removeEventListener(request.eventType, request.listener, request.useCapture))
+            request.preventDefault();
+
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22331
Author:   chiedozi@adobe.com
Date:     2011-08-31T20:24:20.892533Z

Log Message:
-----------
Attempting to fix another regression in ViewTransition performance

QE notes:
Doc notes:
Bugs: SDK-31209
Reviewer: Evtim
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
@@ -354,9 +354,6 @@
             {
                 startViewProps.cgIncludeInLayout = startView.contentGroup.includeInLayout;
                 startView.contentGroup.includeInLayout = false;
-
-                startViewProps.cgCacheAsBitmap = startView.contentGroup.cacheAsBitmap;
-                startView.contentGroup.cacheAsBitmap = true;
             }

             if (mode != SlideViewTransitionMode.COVER)
@@ -379,9 +376,6 @@
             {
                 endViewProps.cgIncludeInLayout = endView.contentGroup.includeInLayout;
                 endView.contentGroup.includeInLayout = false;
-
-                endViewProps.cgCacheAsBitmap = endView.contentGroup.cacheAsBitmap;
-                endView.contentGroup.cacheAsBitmap = true;
             }

             if (mode != SlideViewTransitionMode.UNCOVER)
@@ -392,7 +386,7 @@
             }

             if (mode == SlideViewTransitionMode.UNCOVER)
-                setComponentChildIndex(endView, navigator, 0);
+                setComponentChildIndex(endView, navigator, 0);
         }

         var slideDistance:Number;
@@ -404,27 +398,27 @@
         switch (direction)
         {
             case ViewTransitionDirection.DOWN:
-                animatedProperty = "y";
+                animatedProperty = "$y";
                 slideDistance = navigator.height;
                 slideOffset = -navigator.contentGroup[animatedProperty];
                 verticalTransition = true;
                 break;

             case ViewTransitionDirection.UP:
-                animatedProperty = "y";
+                animatedProperty = "$y";
                 slideDistance = -navigator.height;
                 slideOffset = navigator.contentGroup[animatedProperty];
                 verticalTransition = true;
                 break;

             case ViewTransitionDirection.RIGHT:
-                animatedProperty = "x";
+                animatedProperty = "$x";
                 slideDistance = navigator.width;
                 break;

             case ViewTransitionDirection.LEFT:
             default:
-                animatedProperty = "x";
+                animatedProperty = "$x";
                 slideDistance = -navigator.width;
                 break;
         }
@@ -724,10 +718,7 @@
                 startView.y = startViewProps.y;

                 if (startView.contentGroup)
-                {
                     startView.contentGroup.includeInLayout = startViewProps.cgIncludeInLayout;
-                    startView.contentGroup.cacheAsBitmap = startViewProps.cgCacheAsBitmap;
-                }
             }

             if (endView)
@@ -736,13 +727,13 @@
                 endView.cacheAsBitmap = endViewProps.cacheAsBitmap;

                 if (endView.contentGroup)
-                {
                     endView.contentGroup.includeInLayout = endViewProps.cgIncludeInLayout;
-                    endView.contentGroup.cacheAsBitmap = endViewProps.cgCacheAsBitmap;
-                }
+
                 endViewProps = null;
             }
-            moveEffect.removeEventListener("effectUpdate", effectUpdateHandler);
+
+            if (moveEffect)
+                moveEffect.removeEventListener("effectUpdate", effectUpdateHandler);
             moveEffect = null;
         }
         else


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

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

 package spark.components.supportClasses
 {


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

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

 package mx.automation.delegates.charts
 {


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

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/LineSeriesAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/LineSeriesAutomationImpl.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 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: 10870
Author:   cframpto@adobe.com
Date:     2009-10-05T18:23:10.599724Z

Log Message:
-----------
In the past when the width (or maxWidth) wasn’t specified we told TLF that the width was our default maxWidth=10000.  This had implications especially when the text was rtl or textAlign != left because it aligned over a width of 10000. With this change we let TLF measure.  It will figure out the widest line and use that for the width.  Text will be aligned on that width.  So if there is only one line, and no explicit width, left, center and right alignment all look the same.

Truncation results will be slightly different now if there isn’t an explicit width.  We will let TLF measure the width and it will use that width for the truncation.  Depending on whether the last line is the widest line or not, it may have to remove some of the text to make room for the truncation indicator.

QE notes: there are a handful of RichText and Label failures as a result of this change - Ella approved the submit.
Doc notes:
Bugs: SDK-22909
Reviewer: Gordon
Tests run: checkintests, TextArea, TextInput, NumericStepper, RichText, Label
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -103,6 +103,7 @@
         var width:Number = textDisplay.width;
         var height:Number = textDisplay.height;

+        // (FIXME) cframpto: is this still really needed?
         if (!textDisplay.autoSize && (isNaN(width) || isNaN(height)))
             return false;  // just measuring!

@@ -112,8 +113,8 @@
         // a scroll rect but if lineBreak="explicit" the text may need
         // to be clipped.
         if (scrollX == 0 && scrollY == 0 &&
-            contentBounds.width <= width &&
-            contentBounds.height <= height)
+            contentBounds.right <= width &&
+            contentBounds.bottom <= height)
         {
             // skip the scrollRect
             if (hasScrollRect)
@@ -147,6 +148,8 @@
     			alpha = styleableContainer.getStyle("backgroundAlpha");
     		}
     	}
+        // TODO (cframpto):  Adjust for RL text.  See
+        // ContainerController.attachTransparentBackgroundForHit().
         var g:Graphics = container.graphics;
         g.clear();
         g.lineStyle();


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.controls.colorPickerClasses
 {


fix 160/480 path names

fix 160/480 path names

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as
@@ -81,7 +81,7 @@
 				// Note provisional may need changes
 				borderClass = spark.skins.mobile640.assets.SpinnerListContainerBackground;
 				selectionIndicatorClass = spark.skins.mobile640.assets.SpinnerListContainerSelectionIndicator;
-				shadowClass = spark.skins.mobile40.assets.SpinnerListContainerShadow;
+				shadowClass = spark.skins.mobile640.assets.SpinnerListContainerShadow;

 				cornerRadius = 20;
 				borderThickness = 3;
@@ -126,7 +126,7 @@
 			{
 				borderClass = spark.skins.mobile120.assets.SpinnerListContainerBackground;
 				selectionIndicatorClass = spark.skins.mobile120.assets.SpinnerListContainerSelectionIndicator;
-				shadowClass = spark.skins.mobile10.assets.SpinnerListContainerShadow;
+				shadowClass = spark.skins.mobile120.assets.SpinnerListContainerShadow;

 				cornerRadius = 4;
 				borderThickness = 1;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package spark.components.supportClasses


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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.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.components
 {


invoke method

invoke method

--- testSrc/com/kemsky/TestStream.as
+++ testSrc/com/kemsky/TestStream.as
@@ -971,9 +971,6 @@
             assertEquals(xm.first.pageCount, "238");
             assertEquals(xm.second.name(), "book");
             assertEquals(xm.second.pageCount, "115");
-
-            var s:Stream = $(test);
-            trace(s);
         }


Added shortcuts handling

Added shortcuts handling

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/DropDownInputFieldPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/DropDownInputFieldPresenter.as
@@ -1,6 +1,8 @@
 package org.openforis.collect.presenter {
 	import flash.events.Event;
 	import flash.events.FocusEvent;
+	import flash.events.KeyboardEvent;
+	import flash.ui.Keyboard;

 	import mx.binding.utils.BindingUtils;
 	import mx.binding.utils.ChangeWatcher;
@@ -42,6 +44,7 @@

 			_view.dropDownList.addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
 			_view.dropDownList.addEventListener(Event.CHANGE, changeHandler);
+			_view.dropDownList.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);

 			ChangeWatcher.watch(_view, "dataProvider", dataProviderChangeHandler);
 			BindingUtils.bindSetter(activePhaseSetter, Application, ["activeRecord", "step"]);
@@ -120,6 +123,26 @@
 			}
 		}

+		override protected function keyDownHandler(event:KeyboardEvent):void {
+			var item:Object = null;
+			var char:String = String.fromCharCode(event.charCode);
+			switch(char) {
+				case SHORTCUT_BLANK_ON_FORM:
+					item = BLANK_ON_FORM_ITEM;
+					break;
+				case SHORTCUT_DASH_ON_FORM:
+					item = DASH_ON_FORM_ITEM;
+					break;
+				case SHORTCUT_ILLEGIBLE:
+					item = ILLEGIBLE_ITEM;
+					break;
+			}
+			if(item != null) {
+				_view.dropDownList.selectedItem = item;
+				applyValue();
+			}
+		}
+
 		protected function getItem(value:*):Object {
 			var dataProvider:IList = _view.dropDownList.dataProvider;
 			var dataField:String = _view.dataField;


Fix SKIP exit code.

Fix SKIP exit code.

	* src/tests/bin/uobject-check.as: Use the symbolic value.

--- sdk-remote/src/tests/bin/uobject-check.as
+++ sdk-remote/src/tests/bin/uobject-check.as
@@ -39,6 +39,6 @@
 # otherwise if it works, a server is launched, and will run endlessly.
 run "urbi-launch --start" $urbi_launch --start /dev/null ||
   case $? in
-    (72) error 77 "urbi-launch cannot find libuobject";;
+    (72) error SKIP "urbi-launch cannot find libuobject";;
   esac
 xrun "urbi-launch $me --version" "$urbi_launch" --start $me.la -- --version