Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/framework/src/mx/collections/SortField.as
+++ frameworks/projects/framework/src/mx/collections/SortField.as
@@ -1,7 +1,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
 //  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2007 Adobe Systems Incorporated
+//  Copyright 2005-2010 Adobe Systems Incorporated
 //  All Rights Reserved.
 //
 //  NOTICE: Adobe permits you to use, modify, and distribute this file
@@ -15,47 +15,50 @@
 import flash.events.Event;
 import flash.events.EventDispatcher;
 import mx.collections.errors.SortError;
-import mx.core.mx_internal;
 import mx.managers.ISystemManager;
 import mx.managers.SystemManager;
 import mx.resources.IResourceManager;
 import mx.resources.ResourceManager;
 import mx.utils.ObjectUtil;

-use namespace mx_internal;
-
 [ResourceBundle("collections")]
-
+
 /**
  *  Provides the sorting information required to establish a sort on a field
- *  or property in an existing view.
- *  Typically the sort is defined for collections of complex items, that is items
- *  in which the sort is performed on properties of those objects.
+ *  or property in a collection view.
+ *  Typically the sort is defined for collections of complex items, that is
+ *  items in which the sort is performed on properties of those objects.
  *  As in the following example:
- *
+ *
  *

  *     var col:ICollectionView = new ArrayCollection();
  *     col.addItem({first:"Anders", last:"Dickerson"});
- *     var sort:Sort = new Sort();
+ *     var sort:ISort = new Sort();
  *     sort.fields = [new SortField("first", true)];
  *     col.sort = sort;
  *

- *
+ *
  *  There are situations in which the collection contains simple items, like
  *  String, Date, Boolean, etc.
  *  In this case, sorting should be applied to the simple type directly.
  *  When constructing a sort for this situation only a single sort field is
  *  required and should not have a name specified.
  *  For example:
- *
+ *
  *

  *     var col:ICollectionView = new ArrayCollection();
  *     col.addItem("California");
  *     col.addItem("Arizona");
- *     var sort:Sort = new Sort();
+ *     var sort:ISort = new Sort();
  *     sort.fields = [new SortField(null, true)];
  *     col.sort = sort;
  *

+ *
+ *
By default the comparison provided by the SortField class does
+ *  not provide correct language specific
+ *  sorting for strings.  For this type of sorting please see the
+ *  spark.collections.Sort and
+ *  spark.collections.SortField classes.

  *
  *  @mxml
  *
@@ -71,13 +74,18 @@
  *  numeric="null"
  *  />
  *

- *
+ *
+ *  @see mx.collections.ICollectionView
+ *  @see mx.collections.Sort
+ *  @see spark.collections.Sort
+ *  @see spark.collections.SortField
+
  *  @langversion 3.0
  *  @playerversion Flash 9
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public class SortField extends EventDispatcher
+public class SortField extends EventDispatcher implements ISortField
 {
     include "../core/Version.as";

@@ -93,13 +101,13 @@
      *  @param name The name of the property that this field uses for
      *              comparison.
      *              If the object is a simple type, pass null.
-     *  @param caseInsensitive When sorting strings, tells the comparitor
+     *  @param caseInsensitive When sorting strings, tells the comparator
      *              whether to ignore the case of the values.
      *  @param descending Tells the comparator whether to arrange items in
      *              descending order.
-     *  @param numeric Tells the comparitor whether to compare sort items as
+     *  @param numeric Tells the comparator whether to compare sort items as
      *              numbers, instead of alphabetically.
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -125,12 +133,12 @@
     //
     //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 *  Used for accessing localized Error messages.
-	 */
-	private var resourceManager:IResourceManager =
-									ResourceManager.getInstance();
+    /**
+     *  @private
+     *  Used for accessing localized Error messages.
+     */
+    private var resourceManager:IResourceManager =
+                                    ResourceManager.getInstance();

     //--------------------------------------------------------------------------
     //
@@ -139,6 +147,34 @@
     //--------------------------------------------------------------------------

     //---------------------------------
+    //  arraySortOnOptions
+    //---------------------------------
+
+    /**
+    *  @inheritDoc
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
+    */
+    public function get arraySortOnOptions():int
+    {
+        if (usingCustomCompareFunction
+            || name == null
+            || _compareFunction == xmlCompare
+            || _compareFunction == dateCompare)
+        {
+            return -1;
+        }
+        var options:int = 0;
+        if (caseInsensitive) options |= Array.CASEINSENSITIVE;
+        if (descending) options |= Array.DESCENDING;
+        if (numeric == true || _compareFunction == numericCompare) options |= Array.NUMERIC;
+        return options;
+    }
+
+    //---------------------------------
     //  caseInsensitive
     //---------------------------------

@@ -148,14 +184,14 @@
      */
     private var _caseInsensitive:Boolean;

-     [Inspectable(category="General")]
-     [Bindable("caseInsensitiveChanged")]
+    [Inspectable(category="General")]
+    [Bindable("caseInsensitiveChanged")]

     /**
      *  Specifies whether the sort for this field should be case insensitive.
      *
      *  @default false
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -193,29 +229,35 @@
     /**
      *  The function that compares two items during a sort of items for the
      *  associated collection. If you specify a compareFunction
-	 *  property in a Sort object, Flex ignores any compareFunction
-	 *  properties of the Sort's SortField objects.
+     *  property in an ISort object, Flex ignores any
+     *  compareFunction properties of the ISort's SortField
+     *  objects.
      *
The compare function must have the following signature:

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

      *
      *
This function must return the following values:

-	 *
-	 *

+     *
+     *

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

      *
0, if a equals b

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

      *

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

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

      *
+     *  Note if you need, language specific sorting then consider using the
+     *  spark.collections.SortField class.
+     *
+     *  @see spark.collections.SortField
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -236,33 +278,6 @@
     }

     //---------------------------------
-    //  usingCustomCompareFunction
-    //---------------------------------
-
-    private var _usingCustomCompareFunction:Boolean;
-
-    /**
-     * True if this SortField uses a custom comparitor function.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    mx_internal function get usingCustomCompareFunction():Boolean
-    {
-        return _usingCustomCompareFunction;
-    }
-
-    mx_internal function internalCompare(a:Object, b:Object):int
-    {
-        var result:int = compareFunction(a, b);
-        if (descending)
-            result *= -1;
-        return result;
-    }
-
-    //---------------------------------
     //  descending
     //---------------------------------

@@ -273,14 +288,11 @@
     private var _descending:Boolean;

     [Inspectable(category="General")]
-     [Bindable("descendingChanged")]
-
-    /**
-     *  Specifies whether the this field should be sorted in descending
-     *  order.
-     *
-     *
 The default value is false (ascending).

-     *
+    [Bindable("descendingChanged")]
+
+    /**
+     *  @inheritDoc
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -314,13 +326,13 @@
     private var _name:String;

     [Inspectable(category="General")]
-     [Bindable("nameChanged")]
-
-    /**
-     *  The name of the field to be sorted.
+    [Bindable("nameChanged")]
+
+    /**
+     *  @inheritDoc
      *
      *  @default null
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -351,21 +363,13 @@
     private var _numeric:Object;

     [Inspectable(category="General")]
-     [Bindable("numericChanged")]
-
-    /**
-     *  Specifies that if the field being sorted contains numeric
-     *  (number/int/uint) values, or string representations of numeric values,
-	 *  the comparitor use a numeric comparison.
-     *  If this property is false, fields with string representations
-	 *  of numbers are sorted using strings comparison, so 100 precedes 99,
-	 *  because "1" is a lower string value than "9".
-     *  If this property is null, the first data item
-	 *  is introspected to see if it is a number or string and the sort
-	 *  proceeds based on that introspection
+    [Bindable("numericChanged")]
+
+    /**
+     *  @inheritDoc
      *
      *  @default false
-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -388,44 +392,51 @@
         }
     }

-    //--------------------------------------------------------------------------
-    //
-    // Methods
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-    * Build up the options argument that could be used to Array.sortOn.
-    * Return -1 if this SortField shouldn't be used in the method.
-    *
-    *  @langversion 3.0
-    *  @playerversion Flash 9
-    *  @playerversion AIR 1.1
-    *  @productversion Flex 3
-    */
-    mx_internal function getArraySortOnOptions():int
-    {
-        if (usingCustomCompareFunction
-            || name == null
-            || _compareFunction == xmlCompare
-            || _compareFunction == dateCompare)
-        {
-            return -1;
-        }
-        var options:int = 0;
-        if (caseInsensitive) options |= Array.CASEINSENSITIVE;
-        if (descending) options |= Array.DESCENDING;
-        if (numeric == true || _compareFunction == numericCompare) options |= Array.NUMERIC;
-        return options;
-    }
-
-    /**
-     *  @private
-     *  This method allows us to determine what underlying data type we need to
-     *  perform comparisions on and set the appropriate compare method.
-     *  If an option like numeric is set it will take precedence over this aspect.
-     */
-    mx_internal function initCompare(obj:Object):void
+    //---------------------------------
+    //  usingCustomCompareFunction
+    //---------------------------------
+
+    private var _usingCustomCompareFunction:Boolean;
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get usingCustomCompareFunction():Boolean
+    {
+        return _usingCustomCompareFunction;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  A pretty printer for Sort that lists the sort fields and their
+     *  options.
+     */
+    override public function toString():String
+    {
+        return ObjectUtil.toString(this);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @inheritDoc
+     */
+    public function initializeDefaultCompareFunction(obj:Object):void
     {
         // if the compare function is not already set then we can set it
         if (!usingCustomCompareFunction)
@@ -475,11 +486,11 @@
                                 test = value.toString();
                             }
                             catch(error2:Error)
-							{
-							}
+                            {
+                            }
                             if (!test || test == "[object Object]")
                             {
-								_compareFunction = nullCompare;
+                                _compareFunction = nullCompare;
                             }
                         }
                     break;
@@ -496,14 +507,8 @@
     }

     /**
-     * Reverse the criteria for this sort field.
-     * If the field was sorted in descending order, for example, sort it
-     * in ascending order.
-     *
-     *
Note: an ICollectionView does not automatically update when the
-     * SortFields are modified; call its refresh() method to
-     * update the view.

-     *
+     *  @inheritDoc
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -514,38 +519,27 @@
         descending = !descending;
     }

-    /**
-     *  @private
-     *  A pretty printer for Sort that lists the sort fields and their
-     *  options.
-     */
-    override public function toString():String
-    {
-        return ObjectUtil.toString(this);
-    }
-
-
-    //--------------------------------------------------------------------------
-    //
-    // Internal Comparators
-    //
-    //--------------------------------------------------------------------------
-
+    //--------------------------------------------------------------------------
+    //
+    //  Private Methods
+    //
+    //--------------------------------------------------------------------------
+
     private function nullCompare(a:Object, b:Object):int
-	{
-		var value:Object;
-		var left:Object;
-		var right:Object;
-
-		var found:Boolean = false;
-
-		// return 0 (ie equal) if both are null
-		if (a == null && b == null)
-		{
-			return 0;
-		}
-
-		// we need to introspect the data a little bit
+    {
+        var value:Object;
+        var left:Object;
+        var right:Object;
+
+        var found:Boolean = false;
+
+        // return 0 (ie equal) if both are null
+        if (a == null && b == null)
+        {
+            return 0;
+        }
+
+        // we need to introspect the data a little bit
         if (_name)
         {
             try
@@ -554,7 +548,7 @@
             }
             catch(error:Error)
             {
-			}
+            }

             try
             {
@@ -562,12 +556,12 @@
             }
             catch(error:Error)
             {
-			}
-        }
-
-		// return 0 (ie equal) if both are null
-		if (left == null && right == null)
-			return 0;
+            }
+        }
+
+        // return 0 (ie equal) if both are null
+        if (left == null && right == null)
+            return 0;

         if (left == null && !_name)
             left = a;
@@ -575,52 +569,51 @@
         if (right == null && !_name)
             right = b;

-
+
         var typeLeft:String = typeof(left);
         var typeRight:String = typeof(right);

-		if (typeLeft == "string" || typeRight == "string")
-		{
-				found = true;
+        if (typeLeft == "string" || typeRight == "string")
+        {
+                found = true;
                 _compareFunction = stringCompare;
-		}
-		else if (typeLeft == "object" || typeRight == "object")
-		{
-			if (left is Date || right is Date)
-			{
-				found = true;
-				_compareFunction = dateCompare
-			}
-		}
-		else if (typeLeft == "xml" || typeRight == "xml")
-		{
-				found = true;
+        }
+        else if (typeLeft == "object" || typeRight == "object")
+        {
+            if (left is Date || right is Date)
+            {
+                found = true;
+                _compareFunction = dateCompare
+            }
+        }
+        else if (typeLeft == "xml" || typeRight == "xml")
+        {
+                found = true;
                 _compareFunction = xmlCompare;
-		}
-		else if (typeLeft == "number" || typeRight == "number"
-				 || typeLeft == "boolean" || typeRight == "boolean")
-		{
-				found = true;
+        }
+        else if (typeLeft == "number" || typeRight == "number"
+                 || typeLeft == "boolean" || typeRight == "boolean")
+        {
+                found = true;
                 _compareFunction = numericCompare;
-		}
-
-		if (found)
-		{
-			return _compareFunction(left, right);
-		}
-		else
-		{
-			var message:String = resourceManager.getString(
-				"collections", "noComparatorSortField", [ name ]);
-			throw new SortError(message);
-		}
-	}
-
-
-    /**
-     * Pull the numbers from the objects and call the implementation.
-     *
+        }
+
+        if (found)
+        {
+            return _compareFunction(left, right);
+        }
+        else
+        {
+            var message:String = resourceManager.getString(
+                "collections", "noComparatorSortField", [ name ]);
+            throw new SortError(message);
+        }
+    }
+
+    /**
+     *  Pull the numbers from the objects and call the implementation.
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -650,8 +643,8 @@
     }

     /**
-     * Pull the date objects from the values and compare them.
-     *
+     *  Pull the date objects from the values and compare them.
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -681,8 +674,8 @@
     }

     /**
-     * Pull the strings from the objects and call the implementation.
-     *
+     *  Pull the strings from the objects and call the implementation.
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -712,10 +705,10 @@
     }

     /**
-     * Pull the values out fo the XML object, then compare
-     * using the string or numeric comparator depending
-     * on the numeric flag.
-     *
+     *  Pull the values out fo the XML object, then compare
+     *  using the string or numeric comparator depending
+     *  on the numeric flag.
+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -750,8 +743,5 @@
             return ObjectUtil.stringCompare(sa, sb, _caseInsensitive);
         }
     }
-
-
 }
-
 }


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

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

 package mx.core
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/skins/halo/BusyCursor.as
+++ frameworks/projects/framework/src/mx/skins/halo/BusyCursor.as
@@ -0,0 +1,134 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.skins.halo
+{
+
+import flash.display.DisplayObject;
+import flash.display.Graphics;
+import flash.display.InteractiveObject;
+import flash.display.Shape;
+import flash.display.Sprite;
+import flash.events.Event;
+import mx.core.FlexShape;
+import mx.core.FlexSprite;
+import mx.styles.CSSStyleDeclaration;
+import mx.styles.StyleManager;
+
+/**
+ *  Defines the appearance of the cursor that appears while an operation is taking place. For example,
+ *  while the SWFLoader class loads an asset.
+ */
+public class BusyCursor extends FlexSprite
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function BusyCursor()
+	{
+		super();
+
+		var cursorManagerStyleDeclaration:CSSStyleDeclaration =
+			StyleManager.getStyleDeclaration("CursorManager");
+
+		var cursorClass:Class =
+			cursorManagerStyleDeclaration.getStyle("busyCursorBackground");
+
+		var cursorHolder:DisplayObject = new cursorClass();
+		if (cursorHolder is InteractiveObject)
+			InteractiveObject(cursorHolder).mouseEnabled = false;
+		addChild(cursorHolder);
+
+		var xOff:Number = -0.5;
+		var yOff:Number = -0.5;
+
+		var g:Graphics;
+
+		// Create the minute hand.
+		minuteHand = new FlexShape();
+		minuteHand.name = "minuteHand";
+		g = minuteHand.graphics;
+		g.beginFill(0x000000);
+		g.moveTo(xOff, yOff);
+		g.lineTo(1 + xOff, 0 + yOff);
+		g.lineTo(1 + xOff, 5 + yOff);
+		g.lineTo(0 + xOff, 5 + yOff);
+		g.lineTo(0 + xOff, 0 + yOff);
+		g.endFill();
+		addChild(minuteHand);
+
+		// Create the hour hand.
+		hourHand = new FlexShape();
+		hourHand.name = "hourHand";
+		g = hourHand.graphics;
+		g.beginFill(0x000000);
+		g.moveTo(xOff, yOff);
+		g.lineTo(4 + xOff, 0 + yOff);
+		g.lineTo(4 + xOff, 1 + yOff);
+		g.lineTo(0 + xOff, 1 + yOff);
+		g.lineTo(0 + xOff, 0 + yOff);
+		g.endFill();
+		addChild(hourHand);
+
+		addEventListener(Event.ADDED, handleAdded);
+		addEventListener(Event.REMOVED, handleRemoved);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var minuteHand:Shape;
+
+	/**
+	 *  @private
+	 */
+	private var hourHand:Shape;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event Handlers
+	//
+	//--------------------------------------------------------------------------
+	private function handleAdded(event:Event):void
+	{
+		addEventListener(Event.ENTER_FRAME, enterFrameHandler);
+	}
+
+	private function handleRemoved(event:Event):void
+	{
+		removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
+	}
+
+	/**
+	 *  @private
+	 */
+	private function enterFrameHandler(event:Event):void
+	{
+		minuteHand.rotation += 12;
+		hourHand.rotation += 1;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 3171
Author:   hmuller@adobe.com
Date:     2008-09-10T21:45:25.044021Z

Log Message:
-----------
Updated the viewport API per feedback from the Scroller/Viewport spec
review.  The previous Halo-esque API for specifying the desired number
of visible colunms in a HorizontalLayout or visible rows in a
VerticalLayout has been simplified.  I've itemized the changes for
VerticalLayout below; the HorizontalLayout changes are similar:

- The rowCount property is now read-only and Bindable.  It's value is
always the actual number of visible rows.  Note also: although
"visibleRowCount" might have more precise, Halo used the unqualifed
name.

- A new property called requestedRowCount has been added.  It indicates
how many rows should be visible and is used exclusively by the layout's
measure() method.

- The protected explicitRowCount property has been removed.

The Horizontal and VerticalLayout classes now extend EventDispatcher
to enable binding.

QE: This change will break tests that set the row,columnCount layout properties
Doc: No
Checkintests: Pass
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -12,18 +12,20 @@
 package flex.layout
 {
 import flash.geom.Rectangle;
+import flash.events.EventDispatcher;

 import flex.core.Group;
 import flex.intf.ILayout;
 import flex.intf.ILayoutItem;

 import mx.containers.utilityClasses.Flex;
+import mx.events.PropertyChangeEvent;

 /**
  *  Documentation is not currently available.
  */
-public class VerticalLayout implements ILayout
+public class VerticalLayout extends EventDispatcher implements ILayout
 {
     include "../core/Version.as";

@@ -86,6 +88,15 @@
     //----------------------------------
     //  gap
     //----------------------------------
+    private function invalidateTargetSizeAndDisplayList():void
+    {
+        var layoutTarget:Group = target;
+        if (layoutTarget != null)
+        {
+            layoutTarget.invalidateSize();
+            layoutTarget.invalidateDisplayList();
+        }
+    }

     private var _gap:int = 6;

@@ -106,39 +117,63 @@
      */
     public function set gap(value:int):void
     {
-        if (_gap == value) return;
+        if (_gap == value)
+            return;

 		_gap = value;
- 	   	var layoutTarget:Group = target;
-    	if (layoutTarget != null)
-    	{
-        	layoutTarget.invalidateSize();
-            layoutTarget.invalidateDisplayList();
-    	}
-    }
-
-    //----------------------------------
-    //  explicitRowCount
-    //----------------------------------
-
-    /**
-     *  The row count requested by explicitly setting
-     *  rowCount.
-     */
-    protected var explicitRowCount:int = -1;
+        invalidateTargetSizeAndDisplayList();
+    }

     //----------------------------------
     //  rowCount
     //----------------------------------

     private var _rowCount:int = -1;
-
+
+    [Bindable("propertyChange")]
     [Inspectable(category="General")]
+
+    /**
+     *  Specifies the number of visible items..
+     *
+     *  @default -1
+     */
+    public function get rowCount():int
+    {
+        return _rowCount;
+    }
+
+    /**
+     *  Sets the rowCount property without causing
+     *  invalidation.
+     *
+     *  This method is intended to be used by subclass updateDisplayList()
+     *  methods to sync the rowCount property with the actual number
+     *  of visible rows.
+     *
+     *  @param value The number of visible rows.
+     */
+    protected function setRowCount(value:int):void
+    {
+        if (_rowCount == value)
+            return;
+        var oldValue:int = _rowCount;
+        _rowCount = value;
+        dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "rowCount", oldValue, value));
+    }
+
+    //----------------------------------
+    //  requestedRowCount
+    //----------------------------------
+
+    private var _requestedRowCount:int = -1;
+
+    [Inspectable(category="General")]

     /**
      *  Specifies the number of items to display.
      *
-     *  If rowCount is -1, then all of them items are displayed.
+     *  If requestedRowCount is -1, then all of the items are displayed.
      *
      *  This value implies the layout's measuredHeight.
      *
@@ -147,41 +182,23 @@
      *
      *  @default -1
      */
-    public function get rowCount():int
-    {
-        return _rowCount;
+    public function get requestedRowCount():int
+    {
+        return _requestedRowCount;
     }

     /**
      *  @private
      */
-    public function set rowCount(value:int):void
-    {
-        explicitRowCount = value;
-
-        if (_rowCount != value)
-        {
-            setRowCount(value);
- 		   	var layoutTarget:Group = target;
-        	if (layoutTarget != null)
-        	{
-            	layoutTarget.invalidateSize();
-	            layoutTarget.invalidateDisplayList();
-        	}
-        }
-    }
-
-    /**
-     *  Sets the rowCount property without causing
-     *  invalidation or setting the explicitRowCount
-     *  property, which permanently locks in the number of rows.
-     *
-     *  @param v The row count.
-     */
-    protected function setRowCount(v:int):void
-    {
-        _rowCount = v;
-    }
+    public function set requestedRowCount(value:int):void
+    {
+        if (_requestedRowCount == value)
+            return;
+
+        _requestedRowCount = value;
+        invalidateTargetSizeAndDisplayList();
+    }
+

     //----------------------------------
     //  explicitRowHeight
@@ -222,12 +239,7 @@
         if (_rowHeight != value)
         {
             setRowHeight(value);
- 		   	var layoutTarget:Group = target;
-        	if (layoutTarget != null)
-        	{
-            	layoutTarget.invalidateSize();
-	            layoutTarget.invalidateDisplayList();
-        	}
+            invalidateTargetSizeAndDisplayList();
         }
     }

@@ -280,15 +292,13 @@
      */
     public function set variableRowHeight(value:Boolean):void
     {
-        if (value == _variableRowHeight) return;
+        if (value == _variableRowHeight)
+            return;

         _variableRowHeight = value;
- 		var layoutTarget:Group = target;
-        if (layoutTarget != null) {
-    		layoutTarget.invalidateSize();
-        	layoutTarget.invalidateDisplayList();
-        }
-    }
+        invalidateTargetSizeAndDisplayList();
+    }
+

     private function variableRowHeightMeasure(layoutTarget:Group):void
     {
@@ -298,7 +308,7 @@
         var preferredHeight:Number = 0;
         var visibleHeight:Number = 0;
         var visibleRows:uint = 0;
-        var explicitRowCount:int = explicitRowCount;
+        var reqRows:int = requestedRowCount;

         var count:uint = layoutTarget.numLayoutItems;
         var totalCount:uint = count; // How many items will be laid out
@@ -314,9 +324,9 @@
             preferredWidth = Math.max(preferredWidth, li.preferredSize.x);
             preferredHeight += li.preferredSize.y;

-            var vrr:Boolean = (explicitRowCount != -1) && (visibleRows < explicitRowCount);
-
-            if (vrr || (explicitRowCount == -1))
+            var vrr:Boolean = (reqRows != -1) && (visibleRows < reqRows);
+
+            if (vrr || (reqRows == -1))
             {
                 var mw:Number =  hasPercentWidth(li) ? li.minSize.x : li.preferredSize.x;
                 var mh:Number = hasPercentHeight(li) ? li.minSize.y : li.preferredSize.y;
@@ -340,7 +350,7 @@
         }

         layoutTarget.measuredWidth = preferredWidth;
-        layoutTarget.measuredHeight = (explicitRowCount == -1) ? preferredHeight : visibleHeight;
+        layoutTarget.measuredHeight = (reqRows == -1) ? preferredHeight : visibleHeight;

         layoutTarget.measuredMinWidth = minWidth;
         layoutTarget.measuredMinHeight = minHeight;
@@ -363,8 +373,9 @@
       			rowHeight = layoutTarget.getLayoutItemAt(0).preferredSize.y;
         	setRowHeight(rowHeight);
         }
-
-        var visibleRows:uint = (explicitRowCount == -1) ? rows : explicitRowCount;
+
+        var reqRows:int = requestedRowCount;
+        var visibleRows:uint = (reqRows == -1) ? rows : reqRows;
         var contentHeight:Number = (rows * rowHeight) + ((rows > 1) ? (gap * (rows - 1)) : 0);
         var visibleHeight:Number = (visibleRows * rowHeight) + ((visibleRows > 1) ? (gap * (visibleRows - 1)) : 0);

@@ -438,8 +449,8 @@
         // TODO EGeorgie: horizontalAlign
         var hAlign:Number = 0;

-        // If rowCount wasn't set, then as the LayoutItems are positioned
-        // we'll count how many rows fall within the layoutTarget's scrollRect
+        // As the LayoutItems are positioned, we'll count how many rows
+        // fall within the layoutTarget's scrollRect
         var visibleRows:uint = 0;
         var minVisibleY:Number = layoutTarget.verticalScrollPosition;
         var maxVisibleY:Number = minVisibleY + unscaledHeight;
@@ -458,12 +469,11 @@
             var dy:Number = lo.actualSize.y;
             maxX = Math.max(maxX, x + dx);
             maxY = Math.max(maxY, y + dy);
-            if ((explicitRowCount == -1) && (y < maxVisibleY) && ((y + dy) > minVisibleY))
+            if ((y < maxVisibleY) && ((y + dy) > minVisibleY))
             	visibleRows += 1;
             y += dy + gap;
         }
-        if (explicitRowCount == -1)
-        	setRowCount(visibleRows);
+        setRowCount(visibleRows);
         layoutTarget.setContentSize(maxX, maxY);
     }


removed semicolon in regexp with unicast in STATE_SETUP

--- src/com/axis/rtspclient/RTSPClient.as
+++ src/com/axis/rtspclient/RTSPClient.as
@@ -312,7 +312,7 @@
         if (state === STATE_SETUP) {
           /* this is not the case when falling through, e.g. SETUP of first track */
           if (!(/^RTP\/AVP\/TCP;/.test(parsed.headers["transport"]) &&
-        	/unicast;/.test(parsed.headers["transport"]) &&
+        	/unicast/.test(parsed.headers["transport"]) &&
         	/interleaved=/.test(parsed.headers["transport"]) )){
             dispatchEvent(new ClientEvent(ClientEvent.STOPPED));
             connectionBroken = true;


[FragmentLoader] Only use max video tags available to fix a Fragment

We assumed that current and emergency Fragments would have headers at
same PTS, but it seems this may not be the case. Fortunately if we are
fixing a Fragment all we need are video tags up to that PTS, regardless
of others.

We add some extra checking to be sure nothing strange happens.

--- src/com/pivotshare/hls/loader/FragmentLoader.as
+++ src/com/pivotshare/hls/loader/FragmentLoader.as
@@ -1313,10 +1313,12 @@
                 if ((isNonIDRLevelUp   && HLSSettings.recoverFromNonIDRLevelUp) ||
                     (isNonIDRLevelDown && HLSSettings.recoverFromNonIDRLevelDown)) {

+                    // Setting isComplete here to prevent any weird race conditions
+                    var isComplete = _emergencyFragmentDemuxedStream.complete;
                     _emergencyFragment = _emergencyFragmentDemuxedStream.getFragment();

-                    // It's already been found
-                    if (!isNaN(_emergencyFragment.data.pts_min_video_header)) {
+                    // We have the necessary tags to fix
+                    if (_emergencyFragment.data.pts_max_video >= _fragCurrent.data.pts_min_video_header) {
                         CONFIG::LOGGING {
                             Log.debug("FragmentLoader#_onDemuxComplete: Fragment[" +
                                 _fragCurrent.level + "][" + _fragCurrent.seqnum + "] Will splice with previous Level for IDR start");
@@ -1332,18 +1334,29 @@
                         _emergencyFragmentDemuxedStream.close();
                         _emergencyFragmentDemuxedStream.removeEventListener(Event.COMPLETE, _onEmergencyDemuxedStreamComplete);
                         _emergencyFragmentDemuxedStream = null;
-
-                    } else { // bail leaving _emergencyFragment callback to recall this callback :(
+                    }
+                    else if (!isComplete) { // bail leaving _emergencyFragment callback to recall this callback :(

                         // TODO: Edge where this may not complete in time - do we force buffer or drop fix?
                         _emergencyFragmentDemuxedStream.addEventListener(Event.COMPLETE, _onEmergencyDemuxedStreamComplete);

                         CONFIG::LOGGING {
                             Log.debug("FragmentLoader#_onDemuxComplete: Fragment[" +
-                                _fragCurrent.level + "][" + _fragCurrent.seqnum + "] Cannot splice this non-IDR Fragment just yet");
+                                _fragCurrent.level + "][" + _fragCurrent.seqnum +
+                                "] Cannot splice this non-IDR Fragment just yet. bytesLoaded / bytesTotal: " +
+                                _emergencyFragment.data.bytesLoaded + ' / ' +
+                                _emergencyFragment.data.bytesTotal);
                         }

                         return;
+                    }
+                    else {
+
+                        CONFIG::LOGGING {
+                            Log.error("FragmentLoader#_onDemuxComplete: Fragment[" +
+                                _fragCurrent.level + "][" + _fragCurrent.seqnum +
+                                "] Emergency Fragment did not have necessary video (???)");
+                        }
                     }
                 }
                 else if (HLSSettings.removePreIDRVideoTags) {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4281
Author:   cframpto@adobe.com
Date:     2008-12-10T20:47:53.209400Z

Log Message:
-----------
1.  In Container.keyDownHandler() and CursorManagerImpl.mouseDownHandler() check for Gumbo text using a soft-link to TextView as well as Halo TextField.
2. In FxTextBase.focusInHandler() show focus ring on editable text per XD.
3.  In TextUtil.unobsureTextFlow() fix line break issues.  substring() should have been substr().  When trying to match the text in the span with the text string, use the length of the span's text rather than the length of the leaf, since the leaf could include an added paragraph terminator which isn't in the text string.

QE Notes: New functionality to test.
Doc Notes: None
Bugs: SDK-17306, SDK-16063, SDK-17762, SDK-17763, SDK-17923, SDK-17917
Reviewer: Gordon and Alex

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/utils/TextUtil.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/core/Container.as</path>

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -24,6 +24,7 @@
 import flash.events.MouseEvent;
 import flash.geom.Point;
 import flash.geom.Rectangle;
+import flash.system.ApplicationDomain;
 import flash.text.TextField;
 import flash.text.TextLineMetrics;
 import flash.ui.Keyboard;
@@ -383,6 +384,10 @@
         tabEnabled = false;

         showInAutomationHierarchy = false;
+
+        // If available, get soft-link to the TextView class to use in keyDownHandler().
+        if (ApplicationDomain.currentDomain.hasDefinition("mx.components.TextView"))
+            textViewClass = Class(ApplicationDomain.currentDomain.getDefinition("mx.components.TextView"));
     }

     //--------------------------------------------------------------------------
@@ -518,6 +523,12 @@
      *  Keeps track of the number of mouse events we are listening for
      */
     private var mouseEventReferenceCount:int = 0;
+
+    /**
+     *  @private
+     *  Soft-link to TextView class object, if available.
+     */
+    private var textViewClass:Class;

     //--------------------------------------------------------------------------
     //
@@ -4954,8 +4965,10 @@
     {
         // If a text field currently has focus, it is handling all arrow keys.
         // We shouldn't also scroll this Container.
+        // ToDo: replace with universal scrolling scheme that provides same
+        // experience as browser.
         var focusObj:Object = getFocus();
-        if (focusObj is TextField)
+        if ((focusObj is TextField) || (textViewClass && focusObj is textViewClass))
             return;

         var direction:String;
@@ -5062,7 +5075,7 @@
             }
         }
     }
-
+
     //--------------------------------------------------------------------------
     //
     //  Event handlers


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

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

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPElement.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPElement.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 4170
Author:   egeorgie@adobe.com
Date:     2008-11-23T21:12:27.092823Z

Log Message:
-----------
1.	mx.layout.ILayoutItem gets renamed to mx.layout.ILayoutElement
2.	get actualPosition() -> getLayoutPositionX(postTransform:Boolean=true):Number, getLayoutPositionY(postTransform:Boolean=true):Number
3.	get actualSize() -> getLayoutWidth(postTransform:Boolean=true):Number, getLayoutHeight(postTransform:Boolean=true):Number
4.	get preferredSize() -> getPreferredWidth(postTransform:Boolean=true):Number, getPreferredHeight(postTransform:Boolean=true):Number
5.	get minSize() -> getMinWidth(postTransform:Boolean=true):Number, getMinHeight(postTransform:Boolean=true):Number
6.	get maxSize() -> getMaxWidth(postTransform:Boolean=true):Number, getMaxHeight(postTransform:Boolean=true):Number
7.	setActualSize() -> setlayoutSize(width:Number=NaN, height:Number=NaN, postTransform:Boolean=true):void
8.	setActualPosition() -> setLayoutPosition(width:Number=NaN, height:Number=NaN, postTransform:Boolean=true):void
10.     Add support for custom 3D layouts by exposing access to transform matrices through the ILayoutElement interface.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Hans
tests: checkintests, mustella (gumbo/components)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout_tester.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutItem.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/graphics/GraphicTags_checkintests.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFactory.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFactory.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemFDO.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as" copyfrom-rev="4137" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementUIC.as</path>

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

--- frameworks/projects/spark/src/spark/components/HScrollBar.as
+++ frameworks/projects/spark/src/spark/components/HScrollBar.as
@@ -14,8 +14,8 @@
 import mx.components.baseClasses.FxScrollBar;
 import mx.core.ScrollUnit;
 import mx.core.IViewport;
-import mx.layout.ILayoutItem;
-import mx.layout.LayoutItemFactory;
+import mx.layout.ILayoutElement;
+import mx.layout.LayoutElementFactory;
 import mx.events.PropertyChangeEvent;
 import mx.events.ResizeEvent;

@@ -109,9 +109,9 @@
         if (thumb)
         {
             var trackPos:Number = track ? track.x : 0;
-            var layoutItem:ILayoutItem = LayoutItemFactory.getLayoutItemFor(thumb);
-            layoutItem.setActualPosition(Math.round(trackPos + thumbPos),
-                                         layoutItem.actualPosition.y);
+            var layoutElement:ILayoutElement = LayoutElementFactory.getLayoutElementFor(thumb);
+            layoutElement.setLayoutPosition(Math.round(trackPos + thumbPos),
+                                            layoutElement.getLayoutPositionY());
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10006
Author:   gruehle@adobe.com
Date:     2009-09-03T22:04:47.081899Z

Log Message:
-----------
Initial checkin of the "More styles for Spark skins" feature. Details here:
http://opensource.adobe.com/wiki/display/flexsdk/More+Styles+for+Spark+Skins

There are some known issues:
* Panel bottom corners not rounded correctly when the panel has a control bar
* cornerRadius on Tab and DateChooser non functional
* cornerRadius values > 4 have drawing artifacts in the "down" state of Button and button-like components
* TextInput/TextArea incorrectly list lineBreak and verticalAlign as valid styles

This checkin also includes a couple minor unrelated bug fixes:
* Remove MiniDebugTarget. This is a logging target that used MiniDebug, which hasn't worked since Flex 1.5
* Fix RTEs when setting focusSkin to null
* Optimization: don't measure skins if the host component has explicit sizes

QE notes: Yes, many baseline images will need to be regenerated
Doc notes: New ASDoc comments should be scrubbed
Bugs: SDK-22931, SDK-22798, SDK-22217, SDK-19358
Reviewer: Jason
Tests run: checkintests, cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperIncrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/PopUpButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/SparkChromeWindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/WindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/targets/MiniDebugTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperDecrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerDecrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatorContent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/BasicTests.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/EditableComboBoxSkin.mxml</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/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/SparkSkinForHalo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/TextInputBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerIncrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/halo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/PanelBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RectangularDropShadow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/BorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/NumericStepperTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/BorderTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ApplicationSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as
@@ -52,9 +52,12 @@
     //  Class constants
     //
     //--------------------------------------------------------------------------
-
-    // FIXME (gruehle): Make this a style property?
-    private const FOCUS_THICKNESS:int = 2;
+
+    // Number to multiply focusThickness by to determine the blur value
+    private const BLUR_MULTIPLIER:Number = 2.5;
+
+    // Number to multiply focusAlpha by to determine the filter alpha value
+    private const ALPHA_MULTIPLIER:Number = 1.5454;

     //--------------------------------------------------------------------------
     //
@@ -146,9 +149,10 @@
         if (!focusObject)
            return;

+        var focusThickness:Number = focusObject.getStyle("focusThickness");
         var bitmapData:BitmapData = new BitmapData(
-                    focusObject.width + (FOCUS_THICKNESS * 2),
-                    focusObject.height + (FOCUS_THICKNESS * 2), true, 0);
+                    focusObject.width + (focusThickness * 2),
+                    focusObject.height + (focusThickness * 2), true, 0);
         var m:Matrix = new Matrix();

         // If the focus object already has a focus skin, make sure it is hidden.
@@ -215,8 +219,8 @@
 		if(needRedraw)
 			skin.validateNow();

-        m.tx = FOCUS_THICKNESS;
-        m.ty = FOCUS_THICKNESS;
+        m.tx = focusThickness;
+        m.ty = focusThickness;
         bitmapData.draw(focusObject as IBitmapDrawable, m);

         // Show the focus skin, if needed.
@@ -260,7 +264,7 @@
         // FIXME (gruehle): Figure out a better solution.
         if (weakIsCheck(focusObject, "spark.components::Scroller"))
         {
-            rect.x = rect.y = FOCUS_THICKNESS;
+            rect.x = rect.y = focusThickness;
             rect.width = focusObject.width;
             rect.height = focusObject.height;
             bitmapData.fillRect(rect, 0xFFFFFFFF);
@@ -268,7 +272,7 @@

         // Transform the color to remove the transparency. The GlowFilter has the "knockout" property
         // set to true, which removes this image from the final display, leaving only the outer glow.
-        rect.x = rect.y = FOCUS_THICKNESS;
+        rect.x = rect.y = focusThickness;
         rect.width = focusObject.width;
         rect.height = focusObject.height;
         bitmapData.colorTransform(rect, colorTransform);
@@ -286,16 +290,21 @@
         {
             glowFilter.color = focusObject.getStyle("focusColor");
         }
+        glowFilter.blurX = glowFilter.blurY = focusThickness * BLUR_MULTIPLIER;
+        glowFilter.alpha = focusObject.getStyle("focusAlpha") * ALPHA_MULTIPLIER;
+
         bitmapData.applyFilter(bitmapData, rect, filterPt, glowFilter);

         if (!bitmap)
         {
             bitmap = new Bitmap();
             addChild(bitmap);
-            bitmap.x = bitmap.y = -FOCUS_THICKNESS;
+            bitmap.x = bitmap.y = -focusThickness;
         }

         bitmap.bitmapData = bitmapData;
+
+        blendMode = focusObject.getStyle("focusBlendMode");

         // Restore original 3D matrix if applicable.
         if (transform3D)


add different handling of missing resource bundles for Falcon SWFs (at least for now).  MXMLC makes an en_US bundle provide the bundles for other en_XX locales, Falcon doesn't do that so you fall through to the next locale.

--- frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
+++ frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as
@@ -137,10 +137,15 @@
         }

         var info:Object = SystemManagerGlobals.info;
+		// Falcon injects this property and it is always false
+		// We ignore missing bundles because Falcon doesn't
+		// generate fallback bundles like MXMLC;
+		ignoreMissingBundles = info.hasOwnProperty("isMXMLC");
+
         if (info)
             processInfo(info, false);

-        ignoreMissingBundles = false;
+        ignoreMissingBundles = info.hasOwnProperty("isMXMLC");

         if (SystemManagerGlobals.topLevelSystemManagers.length)
 		    SystemManagerGlobals.topLevelSystemManagers[0].
@@ -158,7 +163,7 @@
      *
      *  Whether or not to throw an error.
      */
-    private var ignoreMissingBundles:Boolean;
+    private var ignoreMissingBundles:Boolean = false;

     /**
      *  @private


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

--- frameworks/projects/framework/src/mx/styles/metadata/PaddingStyles.as
+++ frameworks/projects/framework/src/mx/styles/metadata/PaddingStyles.as
@@ -1,29 +1,4 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

-/**
- *  Number of pixels between the component's left border
- *  and the left edge of its content area.
- *
The default value is 0.

- *
The default value for a Button control in the Halo theme is 10
- *     and in the Spark theme is 6.

- *
The default value for the ComboBox control is 5.

- *
The default value for the Form container is 16.

- *
The default value for the Tree control is 2.

- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
 [Style(name="paddingLeft", type="Number", format="Length", inherit="no")]

 /**


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

--- frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
+++ frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-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.utils
 {
     import flash.events.IEventDispatcher;


Transferred from the Adobe Open Source Subversion Repository

Revision: 20846
Author:   smgilson@adobe.com
Date:     2011-03-14T15:46:32.470057Z

Log Message:
-----------
Merge 20813 - ASDoc edits

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/MultiDPIBitmapSource.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectProxy.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/BitmapUtil.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>

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

--- frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
+++ frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
@@ -37,19 +37,24 @@
     //--------------------------------------------------------------------------
         /**
          * Constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
          */
         public function OnDemandEventDispatcher()
         {
         }

-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
+        /**
+         *  @inheritDoc
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
         public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
         {
             if (_dispatcher == null)
@@ -60,14 +65,14 @@
         }

-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
+        /**
+         *  @inheritDoc
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
         public function dispatchEvent(event:Event):Boolean
         {
             if (_dispatcher != null)
@@ -75,14 +80,14 @@
             return true;
         }

-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
+        /**
+         *  @inheritDoc
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
         public function hasEventListener(type:String):Boolean
         {
             if (_dispatcher != null)
@@ -90,28 +95,28 @@
             return false;
         }

-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
+        /**
+         *  @inheritDoc
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
         public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
         {
             if (_dispatcher != null)
                 _dispatcher.removeEventListener(type,listener,useCapture);
         }

-    /**
-     *  @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
+        /**
+         *  @inheritDoc
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Flex 3
+         */
         public function willTrigger(type:String):Boolean
         {
             if (_dispatcher != null)


fixed RenderingController.effectPassesChangedHandler to push useless draw calls when ShaderSettings.enabled = false to make sure they already exist and can be reconfigured when ShaderSettings.enabled is set to true

--- src/aerys/minko/scene/controller/scene/RenderingController.as
+++ src/aerys/minko/scene/controller/scene/RenderingController.as
@@ -493,16 +493,17 @@
 					// create drawcall
 					var newDrawCall		: DrawCall			= new DrawCall();

-					if (passInstance.program == null)
-						continue ;
-
-					newDrawCall.configure(
-						passInstance.program,
-						mesh.geometry,
-						meshBindings,
-						sceneBindings,
-						passInstance.settings.depthSortDrawCalls
-					);
+					if (passInstance.program != null)
+					{
+						newDrawCall.configure(
+							passInstance.program,
+							mesh.geometry,
+							meshBindings,
+							sceneBindings,
+							passInstance.settings.depthSortDrawCalls
+						);
+					}
+
 					drawCalls[i] = newDrawCall;

 					// retain the instance, update indexes, watch for invalidation, give to renderingList.


Additional SELECT tests.

Additional SELECT tests.

--- test/src/org/postgresql/pegasus/functional/SimpleQueryTest.as
+++ test/src/org/postgresql/pegasus/functional/SimpleQueryTest.as
@@ -1,5 +1,8 @@
 package org.postgresql.pegasus.functional {

+    import org.flexunit.Assert;
+    import flexunit.framework.Assert;
+    import org.postgresql.util.DateUtil;
     import org.postgresql.db.IColumn;
     import org.postgresql.db.event.QueryCompletionEvent;
     import org.postgresql.db.event.QueryResultEvent;
@@ -14,33 +17,80 @@
      */
     public class SimpleQueryTest extends ConnectedTestBase {

-        [Test(async,timeout=1000)]
-        public function testSelectText():void {
+        private function runQuery(sql:String, verifyFn:Function):void {
             var handler:EventResultHandler = new EventResultHandler();
             Async.proceedOnEvent(this, handler, QueryCompletionEvent.COMPLETE, 1000);

-            handler.addEventListener(QueryResultEvent.RESULT, function(e:QueryResultEvent) : void {
-                    // Note that rowCount for a SELECT does *not* reflect the number of affected rows
-                    assertEquals(3, e.columns.length);
-                    assertEquals('empty', IColumn(e.columns[0]).name);
-                    assertEquals('one_char', IColumn(e.columns[1]).name);
-                    assertEquals('text', IColumn(e.columns[2]).name);
-
-                    assertEquals(1, e.data.length);
-                    assertEquals('', e.data[0]['empty']);
-                    assertEquals('?', e.data[0]['one_char']);
-                    assertEquals('hello world', e.data[0]['text']);
-                });
+            handler.addEventListener(QueryResultEvent.RESULT, verifyFn);
             // N.B.: this listener is executing with higher priority that the 'proceed' above
             handler.addEventListener(QueryCompletionEvent.COMPLETE, function(e:QueryCompletionEvent):void {
                     assertEquals(0, e.rows);
                     assertEquals('SELECT', e.tag);
             });

-            var sql:String = "select ''::text as empty, '?'::text as one_char, 'hello world'::text as text";
             var qt:QueryToken = connection.execute(sql, handler);
             assertNotNull(qt);
             assertEquals(qt.sql, sql);
         }
+
+        [Test(async,timeout=1000)]
+        public function testSelectText():void {
+             var verifyFn:Function = function(e:QueryResultEvent) : void {
+                assertEquals(3, e.columns.length);
+                assertEquals('empty', IColumn(e.columns[0]).name);
+                assertEquals('one_char', IColumn(e.columns[1]).name);
+                assertEquals('text', IColumn(e.columns[2]).name);
+
+                assertEquals(1, e.data.length);
+                assertEquals('', e.data[0]['empty']);
+                assertEquals('?', e.data[0]['one_char']);
+                assertEquals('hello world', e.data[0]['text']);
+            };
+
+            var sql:String = "select ''::text as empty, '?'::text as one_char, 'hello world'::text as text";
+            runQuery(sql, verifyFn);
+        }
+
+        [Test(async,timeout=1000)]
+        public function testSelectInt():void {
+            var verifyFn:Function = function(e:QueryResultEvent) : void {
+                assertEquals(5, e.columns.length);
+                assertEquals('neg_one', IColumn(e.columns[0]).name);
+                assertEquals('zero', IColumn(e.columns[1]).name);
+                assertEquals('one', IColumn(e.columns[2]).name);
+                assertEquals('max_int', IColumn(e.columns[3]).name);
+                assertEquals('min_int', IColumn(e.columns[4]).name);
+
+                assertEquals(1, e.data.length);
+                assertEquals(-1, e.data[0]['neg_one']);
+                assertEquals(0, e.data[0]['zero']);
+                assertEquals(1, e.data[0]['one']);
+                assertEquals(int.MAX_VALUE, e.data[0]['max_int']);
+                assertEquals(int.MIN_VALUE, e.data[0]['min_int']);
+            };
+
+            var sql:String = "select (-1)::int as neg_one, 0::int as zero, 1::int as one, (2^31-1)::int as max_int, (-(2^31))::int as min_int";
+            runQuery(sql, verifyFn);
+        }
+
+        [Test(async,timeout=1000)]
+        public function testSelectDate():void {
+            var verifyFn:Function = function(e:QueryResultEvent) : void {
+                assertEquals(3, e.columns.length);
+                assertEquals('neg_inf', IColumn(e.columns[0]).name);
+                assertEquals('epoch', IColumn(e.columns[1]).name);
+                assertEquals('inf', IColumn(e.columns[2]).name);
+
+                assertEquals(1, e.data.length);
+
+                assertEquals(new Date(DateUtil.MIN_DATE_TICKS).time, e.data[0]['neg_inf'].time);
+                assertEquals(new Date(1970, 0, 1).time, e.data[0]['epoch'].time);
+                assertEquals(new Date(DateUtil.MAX_DATE_TICKS).time, e.data[0]['inf'].time);
+            };
+
+            // TODO: more dates
+            var sql:String = "select '-infinity'::timestamptz as neg_inf, '1970-01-01 00:00:00'::timestamptz as epoch, 'infinity'::timestamptz as inf";
+            runQuery(sql, verifyFn);
+        }
     }
 }


Add underline attribute

Add underline attribute

git-svn-id: f8d5f742b420a6a114b58659a4f85f335318e53c@1434934 13f79535-47bb-0310-9956-ffa450edef68

--- mustella/as3/src/mustella/CompareBitmap.as
+++ mustella/as3/src/mustella/CompareBitmap.as
@@ -1128,6 +1128,7 @@
 		}
 		if (d is TextField)
 		{
+			xml.@underline = TextField(d).defaultTextFormat.underline;
 			xml.htmlText = TextField(d).htmlText;
 		}
 		if (d is Loader && Loader(d).contentLoaderInfo.contentType.indexOf("image") != -1)


Change 20091028-hqm-2 by hqm@badtzmaru.home on 2009-10-28 15:53:59 EDT
    in /Users/hqm/openlaszlo/trunk-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary:  fix bug with disable/enable input text in swf10

New Features:

Bugs Fixed: LPP-8574

Technical Reviewer: andre
QA Reviewer: max
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details:

Use the workaround suggested by Flash Player bug FP-77, reset the defaultTextFormat manually.

Tests:

test case from bug report works

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@15073 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c

--- WEB-INF/lps/lfc/kernel/swf9/LzInputTextSprite.as
+++ WEB-INF/lps/lfc/kernel/swf9/LzInputTextSprite.as
@@ -19,6 +19,7 @@
         import flash.events.Event;
         import flash.events.FocusEvent;
         import flash.text.TextField;
+        import flash.text.TextFormat;
         import flash.text.TextFieldType;
     }#

@@ -160,10 +161,14 @@
     function setEnabled (enabled:Boolean) :void {
         this.enabled = enabled;
         if (enabled) {
-            textfield.type = 'input';
+            textfield.type = TextFieldType.INPUT;
         } else {
-            textfield.type = 'dynamic';
+            textfield.type = TextFieldType.DYNAMIC;
         }
+
+        var df:TextFormat = textfield.defaultTextFormat;
+        // reset textformat to workaround flash player bug (FP-77)
+        textfield.defaultTextFormat = df;
     }

     /**


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

--- frameworks/projects/charts/src/mx/charts/chartClasses/InstanceCache.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/InstanceCache.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.charts.chartClasses
 {


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

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

 package mx.controls.videoClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6673
Author:   dsubrama@adobe.com
Date:     2009-05-05T23:13:24.331396Z

Log Message:
-----------
I accidentally checked in a local change to the DefaultItemRenderer class when testing out some of my caret work. Oops!

Checkintests - PASS

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/DefaultItemRenderer.mxml

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as
@@ -2,19 +2,19 @@

 <!--

-	ADOBE SYSTEMS INCORPORATED
-	Copyright 2008 Adobe Systems Incorporated
-	All Rights Reserved.
+    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.
+    NOTICE: Adobe permits you to use, modify, and distribute this file
+    in accordance with the terms of the license agreement accompanying it.

 -->

 <!--- The default skin class for a Spark DefaultItemRenderer class. -->
 <s:ItemRenderer focusEnabled="false" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark">
-
-	<fx:Script>
+
+    <fx:Script>
         <![CDATA[

             override public function set labelText(value:String):void
@@ -25,28 +25,24 @@
         ]]>
     </fx:Script>

-
+
     <s:states>
-		<s:State name="normal"/>
-		<s:State name="hovered"/>
-		<s:State name="selected"/>
-        <s:State name="caret"/>
-	</s:states>
-
-	<s:Rect left="0" right="0" top="0" bottom="0">
-		<s:fill>
-			<s:SolidColor color="{contentBackgroundColor}" />
-		</s:fill>
-		<s:fill.hovered>
-		    <s:SolidColor color="{rollOverColor}" />
-		</s:fill.hovered>
-		<s:fill.selected>
-		    <s:SolidColor color="{selectionColor}" />
-		</s:fill.selected>
-        <s:stroke.caret>
-            <s:SolidColorStroke color="0xFFFF00" />
-        </s:stroke.caret>
-	</s:Rect>
-	<s:SimpleText id="labelElement" verticalCenter="0" left="3" right="3" top="6" bottom="4"/>
+        <s:State name="normal"/>
+        <s:State name="hovered"/>
+        <s:State name="selected"/>
+    </s:states>
+
+    <s:Rect left="0" right="0" top="0" bottom="0">
+        <s:fill>
+            <s:SolidColor color="{contentBackgroundColor}" />
+        </s:fill>
+        <s:fill.hovered>
+            <s:SolidColor color="{rollOverColor}" />
+        </s:fill.hovered>
+        <s:fill.selected>
+            <s:SolidColor color="{selectionColor}" />
+        </s:fill.selected>
+    </s:Rect>
+    <s:SimpleText id="labelElement" verticalCenter="0" left="3" right="3" top="6" bottom="4"/>

 </s:ItemRenderer>