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

--- frameworks/projects/mx/src/mx/effects/WipeUp.as
+++ frameworks/projects/mx/src/mx/effects/WipeUp.as
@@ -51,6 +51,11 @@
  *  @see mx.effects.effectClasses.WipeUpInstance
  *
  *  @includeExample examples/WipeUpExample.mxml
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class WipeUp extends MaskEffect
 {
@@ -66,6 +71,11 @@
 	 *  Constructor.
 	 *
 	 *  @param target The Object to animate with this effect.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function WipeUp(target:Object = null)
 	{


Added stack description

Added stack description

--- src/Levels/Level.as
+++ src/Levels/Level.as
@@ -308,6 +308,11 @@
 			L_PCPU_Load.useTickRecord = L_PCPU_Full.useTickRecord = true;

 			L_CPU_Stack = new ShardLevel("Stack", fullShard.compositWith(LevelShard.STACK));
+			L_CPU_Stack.info = "This bonus level asks you to implement a 'stack' in your CPU."
+			L_CPU_Stack.info += "\n\nA stack is a simple data structure. It holds some number of values 'pushed' onto the top - like a stack of papers.";
+			L_CPU_Stack.info += " Later, those values can be 'popped' off one-by-one, in the opposite order from which they were pushed on."
+			L_CPU_Stack.info += "\n\nIn this level, your stack need hold at most 4 values; you don't need to worry about more being pushed on, or being requested to 'pop' from an empty stack.";
+			L_CPU_Stack.info += "\n\nHave fun!";
 			L_CPU_Stack.predecessors.push(L_CPU_Full);
 			L_CPU_Stack.isBonus = true;
 			L_PCPU_Stack = new ShardLevel("Efficient Stack", fullEfficientShard.compositWith(LevelShard.STACK));


removed trace call

removed trace call

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

--- src/reprise/external/ImageResource.as
+++ src/reprise/external/ImageResource.as
@@ -103,7 +103,6 @@
 	                var symbolClass : Class = getDefinitionByName(symbolId) as Class;
 					for (var i:int = 1; i < pieces.length; i++)
 					{
-						log('f ' + symbolClass, pieces[i]);
 						symbolClass = symbolClass[pieces[i]];
 					}
 					m_resource = new symbolClass() as DisplayObject;


Made the Overlay controls disappear when needed

git-svn-id: 02605e11d3a461bc7e12f3f3880edf4b0c8dcfd0@4335 3e7533ad-8678-4d30-8e38-00a379d3f0d0

--- src/laml/display/Component.as
+++ src/laml/display/Component.as
@@ -800,11 +800,15 @@
 			return model.skin;
 		}

+		// TODO: This throws an exception with 200 milliseconds
+		// TODO: This doesn't respect previously-set alphas.
 		public function show(milliseconds:Number = 0):void {
 			visible = true;
+			this.view.alpha = 1;
 			if(milliseconds != 0) {
 				clearInterval(showHideInterval);
 				var interval:Number = milliseconds * this.view.alpha * .01;
+				interval = Math.max(1, interval);
 				showHideInterval = setInterval(showInterval, interval);
 			}
 		}


Lowercase letters so that it matches StringUtil.hexlate() output.

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 20736
Author:   smgilson@adobe.com
Date:     2011-03-09T21:18:00.204102Z

Log Message:
-----------
Merge 20719 - ASDoc updates

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/core/UITextFormat.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/RuntimeDPIProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EdgeMetrics.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DeferredInstanceFromFunction.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextFieldInterface.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DPIClassification.as</path>

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

--- frameworks/projects/framework/src/mx/core/DeferredInstanceFromFunction.as
+++ frameworks/projects/framework/src/mx/core/DeferredInstanceFromFunction.as
@@ -41,6 +41,9 @@
      *
      *  @param generator A function that creates and returns an instance
      *  of the required object.
+     *
+     *  @param destructor An optional function used to cleanup outstanding
+     *  references when reset() is called.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 19330
Author:   klin@adobe.com
Date:     2010-12-13T21:11:45.439252Z

Log Message:
-----------
Fix for DataGroup and List baselinePosition calculations. DataGroup now uses the typicalItem's renderer to calculate its baselinePosition. To do this, DataGroup delegates the calculations to the layout. ListBase uses the baselinePosition of the DataGroup to calculate its own.

QE notes: No
Doc notes: No
Bugs: SDK-28596
Reviewer: Hans
Tests run: cyclone server, checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -287,47 +287,7 @@
      */
     override public function get baselinePosition():Number
     {
-        if (!validateBaselinePosition())
-            return NaN;
-
-        // Fabricate temporary data provider if necessary.
-        var isNull:Boolean = dataProvider == null;
-        var isEmpty:Boolean = dataProvider != null && dataProvider.length == 0;
-
-        if (isNull || isEmpty)
-        {
-            var originalProvider:IList = isEmpty ? dataProvider : null;
-            dataProvider = new mx.collections.ArrayList([ new Object() ]);
-            validateNow();
-        }
-
-        if (!dataGroup || dataGroup.numElements == 0)
-            return super.baselinePosition;
-
-        // Obtain reference to newly generated item element which will be used
-        // to compute the baseline.
-        var listItem:Object = dataGroup ? dataGroup.getElementAt(0) : undefined;
-        if (!listItem)
-            return super.baselinePosition;
-
-        // Compute baseline position of item relative to our list component.
-        if ("baselinePosition" in listItem)
-            var result:Number = getSkinPartPosition(IVisualElement(listItem)).y + listItem.baselinePosition;
-        else
-            super.baselinePosition;
-
-        // Restore the previous state of our list.
-        if (isNull || isEmpty)
-        {
-            if (isNull)
-                dataProvider = null;
-            else if (isEmpty)
-                dataProvider = originalProvider;
-
-            validateNow();
-        }
-
-        return result;
+        return getBaselinePositionForPart(dataGroup);
     }

     //----------------------------------
@@ -1615,7 +1575,6 @@
                 //These cases are handled by the DataGroup skinpart
             }
         }
-
     }
 }


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

--- frameworks/projects/airspark/src/spark/components/WindowedApplication.as
+++ frameworks/projects/airspark/src/spark/components/WindowedApplication.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: 17276
Author:   aharui@adobe.com
Date:     2010-08-11T18:13:47.792177Z

Log Message:
-----------
Relax assumptions in Window/WindowedApplication's mouseDownHandler

QE notes: none
Doc notes: none
Bugs: SDK-25645
Reviewer: Darrell
Tests run: checkintests mustella/apollo
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/Window.as</path>

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

--- frameworks/projects/airspark/src/spark/components/WindowedApplication.as
+++ frameworks/projects/airspark/src/spark/components/WindowedApplication.as
@@ -2271,10 +2271,10 @@
         if (event.target is DisplayObject && event.target != contentGroup)
         {
            var o:DisplayObject = DisplayObject(event.target);
-            while (o != contentGroup && o != this)
+            while (o && o != contentGroup && o != this)
                 o = o.parent;

-            if (o == contentGroup)
+            if (o == null || o == contentGroup)
                 return NativeWindowResize.NONE;
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11899
Author:   rfrishbe@adobe.com
Date:     2009-11-17T18:24:33.641492Z

Log Message:
-----------
Cleaning up some FIXMEs assigned to me in the code:

In UIMC, we now call invalidateParentSizeAndDL() on setting explicitMaxWidth.  We already do this for explicitMaxHeight.  I also changed a FIXME around invalidateLayering() in to a TODO.

In GroupBase, I removed a FIXME around the focusPane as we are using the overlay API now.

In DataGroup, I changed a FIXME to a TODO with some clarifying comments.

In SkinnableContainer, I removed a FIXME and just commented on why it was needed.  I also removed another FIXME and some code now that it seems like we don’t need to do the array conversion with IDefferedInstance since the compiler handles it for us now.

In SkinnableDataContainer, I changed a FIXME around event delegation to a TODO.

In DropDownController, when you drag around the volume bar, the popup stays open even if the mouse isn’t over the open button or the dropdown.  However, when the mouse is released, we should immediately close the drop down, rather than wait for another mouseMove to occur.  This involved some refactoring of some code in to a private helper method.  The "@private" protected methods in DropDownController should probably be made mx_internal.  I will do that in a subsequent checkin.

QE notes: -
Doc notes: -
Bugs: -
Reviewer: Jason for the DropDownController change, Glenn for the rest
Tests run: checkintests, mustella FCK, Panel, SkinnableContainer, DropDownList
Is noteworthy for integration: No

Modified Paths:
--------------
<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/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.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/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as
@@ -678,7 +678,7 @@
     {
         super.addEventListener(type, listener, useCapture, priority, useWeakReference);

-        // FIXME (rfrishbe): this isn't ideal as we should deal with the useCapture,
+        // TODO (rfrishbe): this isn't ideal as we should deal with the useCapture,
         // priority, and useWeakReference parameters.

         // if it's a different type of event or the dataGroup doesn't


Transferred from the Adobe Open Source Subversion Repository

Revision: 18765
Author:   klin@adobe.com
Date:     2010-11-21T07:18:04.332221Z

Log Message:
-----------
Fix for RTE when sorting complex datafields. Added an internal GridSortField class that captures the full dataField when sorting on a complex dataField. This is required because sort currently RTE's when the dataField is set to a property that doesn't exist on the data object even though a sortCompareFunction is defined. I've also changed the default compare function for complex dataFields to compare the data instead of using the itemToLabel function. I've modified DataGrid to take advantage of GridSortField for figuring out when to reverse the sort of a column with a complex dataField.

QE notes: No
Doc notes: No
Bugs: SDK-28610
Reviewer: Hans
Tests run: cyclone, checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridSortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.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@1281444 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
@@ -25,6 +25,7 @@

 import spark.components.Grid;
 import spark.components.gridClasses.DefaultGridItemEditor;
+import spark.components.gridClasses.GridSortField;

 use namespace mx_internal;

@@ -108,8 +109,9 @@
         if (!obj2)
             return -1;

-        var obj1String:String = column.itemToLabel(obj1);
-        var obj2String:String = column.itemToLabel(obj2);
+        const dataFieldPath:Array = column.dataField.split(".");
+        var obj1String:String = deriveDataFromPath(obj1, dataFieldPath);
+        var obj2String:String = deriveDataFromPath(obj2, dataFieldPath);

         if ( obj1String < obj2String )
             return -1;
@@ -1249,20 +1251,25 @@
     //----------------------------------

     /**
-     *  Returns a SortField that can
-     *  be used to sort a collection by this column's dataField.
+     *  Returns a SortField that can be used to sort a collection by this
+     *  column's dataField.
      *
-     *
If the sortCompareFunction property is defined,
-     *  it assigns the SortField's compare function to a closure around
-     *  the sortCompareFunction that uses the right signature
+     *
If the sortCompareFunction property is defined,
+     *  the SortField's compare function is assigned to a closure around
+     *  the sortCompareFunction that uses the right signature
      *  for the SortField and captures this column.

      *
+     *
If the sortCompareFunction property is not defined
+     *  and the dataField is complex, then the SortField's
+     *  compare function is assigned to a closure around a default compare
+     *  function that handles the complex dataField.

+     *
      *
If the sortCompareFunction and
      *  dataField properties are not defined, but the
      *  labelFunction property is defined, then it assigns the
      *  compareFunction to a closure that does a basic string compare
      *  on the labelFunction applied to the data objects.

-     *
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 2.5
@@ -1271,19 +1278,39 @@
     public function get sortField():SortField
     {
         const column:GridColumn = this;
-        const sortField:SortField = new SortField(dataField);
+        const isComplexDataField:Boolean = dataFieldPath.length > 1;
+
+        // A complex dataField requires a GridSortField for the DataGrid
+        // to reverse a previous sort on this column by matching dataFieldPath
+        // to the dataField.
+        // TODO (klin): Might be fixed in Spark Sort. The only reason this is
+        // required is because MX Sort RTEs when the dataField doesn't exist on the
+        // data object even though a sortCompareFunction is defined.
+        var sortField:SortField;
+        if (isComplexDataField)
+        {
+            sortField = new GridSortField();
+            GridSortField(sortField).dataFieldPath = dataField;
+        }
+        else
+        {
+            sortField = new SortField(dataField);
+        }
+
         var cF:Function = null;
-
         if (_sortCompareFunction != null)
         {
             cF = function (a:Object, b:Object):int
             {
                 return _sortCompareFunction(a, b, column);
-            };
+            };
         }
         else
         {
-            if (dataFieldPath.length > 1)
+            // If no sortCompareFunction is specified, there are defaults for
+            // two special cases: complex dataFields and labelFunctions without dataFields.
+
+            if (isComplexDataField)
             {
                 // use custom compare function for a complex dataField if one isn't provided.
                 cF = function (a:Object, b:Object):int
@@ -1380,18 +1407,30 @@
                 return labelFunction(item);
         }

+        const itemString:String = deriveDataFromPath(item, labelPath);
+
+        return (itemString != null) ? itemString : ERROR_TEXT;
+    }
+
+    /**
+     *  @private
+     */
+    private static function deriveDataFromPath(item:Object, labelPath:Array):String
+    {
         try
         {
             var itemData:Object = item;
             for each (var pathElement:String in labelPath)
-                itemData = itemData[pathElement];
-
+            itemData = itemData[pathElement];
+
             if ((itemData != null) && (labelPath.length > 0))
                 return itemData.toString();
         }
-        catch(ignored:Error) { }
-
-        return ERROR_TEXT;
+        catch(ignored:Error)
+        {
+        }
+
+        return null;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 10064
Author:   gruehle@adobe.com
Date:     2009-09-08T19:59:34.687094Z

Log Message:
-----------
Spark skins for all containers now use backgroundColor and backgroundAlpha styles instead of contentBackgroundColor and contentBackgroundAlpha. All controls (including List and NavBar/ButtonBar) continue to use contentBackgroundColor and contentBackgroundAlpha.

Add new MX ContainerBorderSkin.

QE notes: This should clear up some failures from last week. ContainerBorderSkin needs tests that are independent from BorderSkin tests.
Doc notes: None.
Bugs: SDK-23038, SDK-23037, SDK-
Reviewer: pending
Tests run: checkintests
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/SparkSkinsClasses.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/framework/defaults.css</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/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ContainerBorderSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/sparkskins/src/mx/skins/spark/ContainerBorderSkin.as
+++ frameworks/projects/sparkskins/src/mx/skins/spark/ContainerBorderSkin.as
@@ -0,0 +1,45 @@
+package mx.skins.spark {
+
+public class ContainerBorderSkin extends BorderSkin
+{
+    public function ContainerBorderSkin()
+    {
+        super();
+    }
+
+    /**
+     *  @private
+     *  ContainerBorderSkin uses backgroundColor and backgroundAlpha
+     *  instead of contentBackgroundColor and contentBackgroundAlpha.
+     *  Override the contentItems getter here to return null. This
+     *  removes the contentBackgroundColor/Alpha functionality.
+     *  The backgroundColor/backgroundAlpha functionality is handled
+     *  below in updateDisplayList.
+     */
+    override public function get contentItems():Array
+    {
+        return null;
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number) : void
+    {
+        // Push backgroundColor and backgroundAlpha directly.
+        // Handle undefined backgroundColor by hiding the background object.
+        if (isNaN(getStyle("backgroundColor")))
+        {
+            background.visible = false;
+        }
+        else
+        {
+            background.visible = true;
+            bgFill.color = getStyle("backgroundColor");
+            bgFill.alpha = getStyle("backgroundAlpha");
+        }
+
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+    }
+}
+}


Prevent IQ id generator from incrementing when handling an IQ. Only should increment when creating a new IQ.

--- src/org/igniterealtime/xiff/core/XMPPConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPConnection.as
@@ -868,7 +868,7 @@
 		 */
 		protected function handleIQ( node:XMLNode ):IQ
 		{
-			var iq:IQ = new IQ();
+			var iq:IQ = new IQ( null, null, "temp" );

 			// Populate the IQ with the incoming data
 			if ( !iq.deserialize( node ) )


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

--- frameworks/projects/framework/src/mx/managers/systemClasses/RemotePopUp.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/RemotePopUp.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-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.managers.systemClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3763
Author:   rfrishbe@adobe.com
Date:     2008-10-21T05:32:47.715962Z

Log Message:
-----------
Adding clipContent to FxContainer and FxDataContainer.  The rest of the IViewport interface should be added to these classes as well, but that'll come later.

Also fixing some minor ASDoc problems in GroupBase.

QE Notes: We'll need to add tests for the IViewport properties in FxDataContainer and FxContainer when it gets fully added.
Doc Notes: None
Bugs: SDK-17670
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -436,7 +436,7 @@
     [Bindable]

     /**
-     *  @inheritDoc
+     *  @copy mx.core.IViewport#verticalScrollPosition
      */
     public function get verticalScrollPosition():Number
     {
@@ -457,7 +457,7 @@
     //----------------------------------

     /**
-     *  @inheritDoc
+     *  @copy mx.core.IViewport#horizontalScrollPositionDelta
      */
     public function horizontalScrollPositionDelta(unit:uint):Number
     {
@@ -465,7 +465,7 @@
     }

     /**
-     *  @inheritDoc
+     *  @copy mx.core.IViewport#verticalScrollPositionDelta
      */
     public function verticalScrollPositionDelta(unit:uint):Number
     {


Better last DTS estimation.

Better last DTS estimation.

--- HLSPlugin/src/com/kaltura/hls/m2ts/FLVTranscoder.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/FLVTranscoder.as
@@ -43,17 +43,26 @@
         private var keyFrame:Boolean = false;
         private var totalAppended:int = 0;

+        // State used to estimate video framerate.
+        public var videoLastDTS:int = int.MIN_VALUE;
+
         public function clear(clearAACConfig:Boolean = false):void
         {
             if(clearAACConfig)
                 _aacConfig = null;
             _aacRemainder = null;
             _aacTimestamp = 0;
+
+            bufferedTagData.length = 0;
+            bufferedTagTimestamp.length = 0;
+            bufferedTagDuration.length = 0;
+
+            videoLastDTS = int.MIN_VALUE;
         }

         protected var sendingDebugEvents:Boolean = false;

-        private function sendFLVTag(flvts:int, type:uint, codec:int, mode:int, bytes:ByteArray, offset:uint, length:uint, duration:uint, buffer:Boolean = true):void
+        private function sendFLVTag(flvts:int, type:uint, codec:int, mode:int, bytes:ByteArray, offset:uint, length:uint, duration:int, buffer:Boolean = true):void
         {
             var tag:ByteArray = new ByteArray();

@@ -219,9 +228,6 @@
             naluProcessor.resetAVCCExtraction();
         }

-        // State used to estimate video framerate.
-        public var videoLastDTS:int = -1000000.0;
-
         /**
          * Convert and emit AVC NALU data.
          */
@@ -282,7 +288,7 @@
             return true;
         }

-        private function sendAACConfigFLVTag(flvts:uint, profile:uint, sampleRateIndex:uint, channelConfig:uint):void
+        private function sendAACConfigFLVTag(flvts:int, profile:uint, sampleRateIndex:uint, channelConfig:uint):void
         {
             var isNewConfig:Boolean = true;
             var audioSpecificConfig:ByteArray = new ByteArray();
@@ -432,7 +438,7 @@

                 if(sampleRate)
                 {
-                    var flvts:uint = convertFLVTimestamp(timestamp + timeAccumulation);
+                    var flvts:int = convertFLVTimestamp(timestamp + timeAccumulation);

                     sendAACConfigFLVTag(flvts, profile, sampleRateIndex, channelConfig);
                     //logger.debug("Sending AAC @ " + flvts + " ts=" + timestamp + " acc=" + timeAccumulation);
@@ -483,7 +489,7 @@
             return bytes;
         }

-        private function sendScriptDataFLVTag(flvts:uint, values:Array):void
+        private function sendScriptDataFLVTag(flvts:int, values:Array):void
         {
             var bytes:ByteArray = generateScriptData(values);
             sendFLVTag(flvts, FLVTags.TYPE_SCRIPTDATA, -1, -1, bytes, 0, bytes.length, 0);


fixed bug in getNiceNumbersInRange()

fixed bug in getNiceNumbersInRange()

Change-Id: Iab8924c395b9cf5c6ddf460d86afeeab30a4e248

--- WeaveCore/src/weave/compiler/StandardLib.as
+++ WeaveCore/src/weave/compiler/StandardLib.as
@@ -549,7 +549,10 @@

 			var values:Array = [];

-			range = getNiceNumber(max - min, false);
+			// Bug fix: getNiceNumbersInRange(0, 500, 6) returned [0,200,400] when it could be [0,100,200,300,400,500]
+			// Was: range = getNiceNumber(max - min, false);
+			range = max - min;
+
 			d = getNiceNumber( range / (numberOfValuesInRange - 1), true);
 			graphmin = Math.floor(min / d) * d;
 			graphmax = Math.ceil(max / d) * d;


messageToString 时忽略下划线开始的变量

messageToString 时忽略下划线开始的变量

--- as3/com/netease/protobuf/messageToString.as
+++ as3/com/netease/protobuf/messageToString.as
@@ -13,12 +13,15 @@
 		var s:String = getQualifiedClassName(message) + "(\n"
 		const descriptor:XML = describeType(message)
 		for each (var getter:String in descriptor.accessor.(@access != "writeonly").@name) {
-			if (getter.search(/^has(.)(.*)$/) != -1) {
+			if (getter.search(/^has[A-Z]/) != -1) {
 				continue
 			}
 			s += fieldToString(message, descriptor, getter)
 		}
 		for each (var field:String in descriptor.variable.@name) {
+			if (field.search(/^_/) != -1) {
+				continue
+			}
 			s += fieldToString(message, descriptor, field)
 		}
 		for (var k:* in message) {


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 17293
Author:   rfrishbe@adobe.com
Date:     2010-08-11T23:44:04.645103Z

Log Message:
-----------
3 bug fixes.

- Tapping a toggle button no longer worked.  I had added some delay logic in Button, and if someone clicks too quickly, they wouldn't see the downstate, so we artifically put it in the down state for a brief period.  At the end of that brief period, I forgot to call buttonReleased() which is needed for ToggleButtons.

- Cleaned up some of the code to prevent click events from being dispatched.  Because the click event occurs after the mouseUp (and hence after the touchScrollStop) event, I reworked this logic a bit.

- Sometimes when it first showed up the thumb position on a scrollbar would be out of place very briefly. I fixed this by not calling updateAfterEvent() the first two times in the mouseMove handler, since we need atleast one pass of ScrollBar's LayoutManager before the scrollbar gets its bearings and becomes valid.

QE notes: None
Doc notes: None
Bugs: SDK-27365, SDK-27363, SDK-27031
Reviewer: Jason SZ for Button changes, Chiedo for Scroller changes
Tests run: checkintests
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
@@ -1358,6 +1358,7 @@
      */
     private function mouseUpDeselectTimer_timerCompleteHandler(event:TimerEvent):void
     {
+        buttonReleased();
         mouseCaptured = false;
     }


Improve error handling of external content loading.

--- src/goplayer/FlashContentLoadAttempt.as
+++ src/goplayer/FlashContentLoadAttempt.as
@@ -33,6 +33,11 @@
     { listener.handleContentLoaded(loader.contentLoaderInfo) }

     private function handleIOError(event : IOErrorEvent) : void
-    { debug("Failed to load <" + url + ">: " + event.text) }
+    {
+      const code : String = event.text.match(/^Error #(\d+)/)[1]
+      const message : String = code == "2035" ? "Not found" : event.text
+
+      debug("Error: Failed to load <" + url + ">: " + message)
+    }
   }
 }


'forever' live fix

'forever' live fix

--- HLSPlugin/src/org/denivip/osmf/elements/m3u8Classes/M3U8PlaylistParser.as
+++ HLSPlugin/src/org/denivip/osmf/elements/m3u8Classes/M3U8PlaylistParser.as
@@ -87,7 +87,7 @@
 						tempDynamicRes = result as DynamicStreamingResource;
 						tempStreamingRes = baseResource as StreamingURLResource;
 						if(tempStreamingRes){
-							tempDynamicRes.streamType = StreamType.LIVE;//tempStreamingRes.streamType;
+							tempDynamicRes.streamType = tempStreamingRes.streamType;
 							tempDynamicRes.clipStartTime = tempStreamingRes.clipStartTime;
 							tempDynamicRes.clipEndTime = tempStreamingRes.clipEndTime;
 						}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8574
Author:   aharui@adobe.com
Date:     2009-07-15T05:33:44.225721Z

Log Message:
-----------
Bugs related to TLF and focus.  Also TLF Marshall Plan adjustments, and some IME fixes

QE Notes: None
Doc Notes: None
Bugs: SDK-21278, SDK-21686, SDK-21375, SDK-18516, SDK-15093, SDK-21335
Reviewer: darrell, carol
tests: checkintests mustella/gumbo mustella/components

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManagerComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IIMESupport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.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/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.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/framework/src/mx/containers/Accordion.as</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/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.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/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as
@@ -200,8 +200,6 @@
     public function SkinnableDataContainer()
     {
         super();
-
-        tabChildren = true;
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 7228
Author:   rfrishbe@adobe.com
Date:     2009-05-22T19:33:44.026452Z

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

 *   When finishing a streaming video, the playhead doesn’t reset back to the beginning if autoRewind is true (I hooked up the playhead bidning event to look at autoRewound).
 *   Sizing issues on the skin
 *   When no property was specified on the VideoPlayer, we’d get an RTE when tryign to grab properties from the videoElementProperties variable.
 *   Remove startTime and duration from the play() method.
*   Other minor tweaks on the skin
*  Some random ASDOc fixes and making events use typed events rather than "propertyChangeEvent"

QE Notes: -
Doc Notes: -
Bugs: SDK-21355, SDK-21028, SDK-20972, SDK-21275, SDK-20986, SDK-20790
Reviewer: Deepa
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenFullScreenButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
+++ frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
@@ -119,9 +119,9 @@
     //
     //  Skin Parts
     //
-    //--------------------------------------------------------------------------
-
-	/**
+    //--------------------------------------------------------------------------
+
+    /**
      *  A skin part that defines the mute/unmute button.
      *
      *  @langversion 3.0
@@ -131,9 +131,9 @@
      */
     [SkinPart(required="false")]
     public var muteButton:VideoPlayerVolumeBarMuteButton;
-
-
-	/**
+
+
+    /**
      *  A skin part that defines the dropDown area. When the volume slider
      *  dropdown is open, clicking anywhere outside of the dropDown skin
      *  part will close the  video slider dropdown.
@@ -145,8 +145,8 @@
      */
     [SkinPart(required="false")]
     public var dropDown:DisplayObject;
-
-	/**
+
+    /**
      *  Constructor.
      *
      *  @langversion 3.0
@@ -154,26 +154,26 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-	public function VideoPlayerVolumeBar()
-	{
-		super();
-
-		dropDownController = new DropDownController();
-	}
-
-	//--------------------------------------------------------------------------
+    public function VideoPlayerVolumeBar()
+    {
+        super();
+
+        dropDownController = new DropDownController();
+    }
+
+    //--------------------------------------------------------------------------
     //
     //  Properties
     //
     //--------------------------------------------------------------------------
-
-	//----------------------------------
+
+    //----------------------------------
     //  dropDownController
     //----------------------------------
-
-	private var _dropDownController:DropDownController;
-
-	/**
+
+    private var _dropDownController:DropDownController;
+
+    /**
      *  Instance of the helper class that handles all of the mouse, keyboard
      *  and focus user interactions.
      *
@@ -182,28 +182,28 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-	protected function get dropDownController():DropDownController
-	{
-		return _dropDownController;
-	}
-
-	protected function set dropDownController(value:DropDownController):void
-	{
-		if (_dropDownController == value)
-			return;
-
-		_dropDownController = value;
-
-		_dropDownController.addEventListener(DropDownEvent.OPEN, dropDownController_openHandler);
-		_dropDownController.addEventListener(DropDownEvent.CLOSE, dropDownController_closeHandler);
-
-		_dropDownController.rollOverOpenDelay = ROLL_OVER_OPEN_DELAY;
-
-		if (muteButton)
-			_dropDownController.openButton = muteButton;
-		if (dropDown)
-			_dropDownController.dropDown = dropDown;
-	}
+    protected function get dropDownController():DropDownController
+    {
+        return _dropDownController;
+    }
+
+    protected function set dropDownController(value:DropDownController):void
+    {
+        if (_dropDownController == value)
+            return;
+
+        _dropDownController = value;
+
+        _dropDownController.addEventListener(DropDownEvent.OPEN, dropDownController_openHandler);
+        _dropDownController.addEventListener(DropDownEvent.CLOSE, dropDownController_closeHandler);
+
+        _dropDownController.rollOverOpenDelay = ROLL_OVER_OPEN_DELAY;
+
+        if (muteButton)
+            _dropDownController.openButton = muteButton;
+        if (dropDown)
+            _dropDownController.dropDown = dropDown;
+    }

     //--------------------------------------------------------------------------
     //
@@ -220,10 +220,10 @@
      */
     override public function get baselinePosition():Number
     {
-    	if (muteButton)
-    		return muteButton.baselinePosition;
-    	else
-    		return NaN;
+        if (muteButton)
+            return muteButton.baselinePosition;
+        else
+            return NaN;
     }

     //----------------------------------
@@ -244,7 +244,7 @@
             muteButton.value = value;
     }

- 	//--------------------------------------------------------------------------
+     //--------------------------------------------------------------------------
     //
     //  Methods
     //
@@ -261,7 +261,7 @@
             muteButton.value = value;
     }

-	/**
+    /**
      *  Opens the dropDown.
      *
      *  @langversion 3.0
@@ -271,10 +271,10 @@
      */
     public function openDropDown():void
     {
-    	dropDownController.openDropDown();
-    }
-
-	 /**
+        dropDownController.openDropDown();
+    }
+
+     /**
      *  Closes the dropDown.
      *
      *  @param commit Flag indicating if the component should commit the selected
@@ -287,9 +287,9 @@
      */
     public function closeDropDown(commit:Boolean):void
     {
-    	dropDownController.closeDropDown(commit);
-    }
-
+        dropDownController.closeDropDown(commit);
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods
@@ -297,32 +297,31 @@
     //--------------------------------------------------------------------------

     /**
- 	 *  @private
- 	 */
+      *  @private
+      */
     override protected function getCurrentSkinState():String
     {
-		return !enabled ? "disabled" : dropDownController.isOpen ? "open" : "normal";
+        return !enabled ? "disabled" : dropDownController.isOpen ? "open" : "normal";
     }

     /**
-	 *  @private
-	 */
+     *  @private
+     */
     override protected function partAdded(partName:String, instance:Object):void
     {
-    	super.partAdded(partName, instance);
+        super.partAdded(partName, instance);

- 		if (instance == muteButton)
-    	{
-    		if (dropDownController)
-    			dropDownController.openButton = muteButton;
+         if (instance == muteButton)
+        {
+            if (dropDownController)
+                dropDownController.openButton = muteButton;

-    	    muteButton.addEventListener(MouseEvent.CLICK, muteButton_clickHandler);
-    		muteButton.enabled = enabled;
-    		muteButton.value = value;
-    	}
-
-    	if (instance == dropDown && dropDownController)
-    		dropDownController.dropDown = dropDown;
+            muteButton.addEventListener(MouseEvent.CLICK, muteButton_clickHandler);
+            muteButton.value = value;
+        }
+
+        if (instance == dropDown && dropDownController)
+            dropDownController.dropDown = dropDown;
     }

     private function muteButton_clickHandler(event:MouseEvent):void
@@ -342,24 +341,24 @@
             muteButton.removeEventListener(MouseEvent.CLICK, muteButton_clickHandler);
         }

-    	if (instance == dropDownController)
-    	{
-    		if (instance == muteButton)
-	    		dropDownController.openButton = null;
-
-    		if (instance == dropDown)
-    			dropDownController.dropDown = null;
-     	}
-
+        if (instance == dropDownController)
+        {
+            if (instance == muteButton)
+                dropDownController.openButton = null;
+
+            if (instance == dropDown)
+                dropDownController.dropDown = null;
+         }
+
         super.partRemoved(partName, instance);
     }
-
-	/**
+
+    /**
      *  @private
      */
     override protected function focusOutHandler(event:FocusEvent):void
     {
-		dropDownController.processFocusOut(event);
+        dropDownController.processFocusOut(event);

         super.focusOutHandler(event);
     }
@@ -382,9 +381,9 @@
      */
     protected function dropDownController_openHandler(event:DropDownEvent):void
     {
-    	invalidateSkinState();
-
-    	dispatchEvent(event);
+        invalidateSkinState();
+
+        dispatchEvent(event);
     }

     /**
@@ -398,12 +397,12 @@
      */
     protected function dropDownController_closeHandler(event:DropDownEvent):void
     {
-    	invalidateSkinState();
-
-    	// TODO!! Add logic to handle commitData
-    	//if (event.isDefaultPrevented())
-
-    	dispatchEvent(event);
+        invalidateSkinState();
+
+        // TODO!! Add logic to handle commitData
+        //if (event.isDefaultPrevented())
+
+        dispatchEvent(event);
     }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7319
Author:   jszeto@adobe.com
Date:     2009-05-27T17:45:33.641648Z

Log Message:
-----------
Transform improvements

http://bugs.adobe.com/jira/browse/SDK-17312 - Fix up transform, matrix and matrix3D properties on UIComponent and GraphicElement.

When a Transform is assigned to a GraphicElement or UIComponent, we want changes to the Transform to be applied to the GraphicElement or UIComponent (component). The current implementation has the component listening for change events on the Transform. We also want the Transform to reflect changes made to the component. The current implementation doesn’t do this.

The solution is when the Transform is assigned to the component, that component is assigned to the target property of the Transform. Any calls to the setters of the Transform directly assign properties of the component. The getters grab their values directly from the component. The components no longer listen for change events from the Transform.

Since the GraphicElement and IGraphicElement classes exist in the flex4 swc, they can not be used in the Transform class, which exists only in the framework swc. The solution is to use loose typing and use the “property in object” check. The change to the component classes are made in UIComponent, UIMovieClip and GraphicElement.

I added a public $transform property to UIMovieClip to access super.transform. I had to make it public because the framework swc doesn’t include UIMovieClip.

I was unable to override the matrix3D setter in Transform because it was throwing an illegal override compiler error.

I had to add a setColorTransform public function to GraphicElement to handle the case where the GraphicElement’s colorTransform is directly set.

myRect.transform.colorTransform = newColorTransform;

In this situation, the GraphicElement’s transform object is created on demand. At this point, the GraphicElement might not have its own DisplayObject, so we need a way to store the colorTransform value until the DO is created. I had to make the function public because the “in” operator doesn’t work with non-public namespaces.

ColorTransforms get passed around by reference, so in setColorTransform, I make a copy. This fixes some strange baseColor bug I was seeing.

http://bugs.adobe.com/jira/browse/SDK-17680 - GraphicElement with transform matrix ignores alpha property

If the alpha property and a transform are declaratively set on a GraphicElement, then the alpha value is ignored. The reason is that the Transform object always has a default value for its ColorTransform, which sets the alpha value. The transform.ColorTransform.alphaMultiplier and alpha property are synchronized in DisplayObject.

Ideally we would throw a compiler error if both the alpha property and the transform property were set at the same time. Instead, the next best thing to do is to apply the alpha value after the ColorTransform has been applied. We can do this for GraphicElement since alpha and colorTransform are set in commitProperties. For UIComponent, alpha is applied right away. I didn’t want to change that since it would probably break a whole lot of mustella tests and effect behavior. Thus this bug still exists in UIComponent.

QE Notes: Need tests to ensure that the Transform is in sync with its target component
Doc Notes: Need to document that changes to the component get reflected by its Transform
Bugs: SDK-17312, SDK-17680
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.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/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/fxg-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -25,6 +25,7 @@
 import flash.events.FocusEvent;
 import flash.events.IEventDispatcher;
 import flash.events.KeyboardEvent;
+import flash.geom.ColorTransform;
 import flash.geom.Matrix;
 import flash.geom.Matrix3D;
 import flash.geom.PerspectiveProjection;
@@ -68,7 +69,6 @@
 import mx.managers.IToolTipManagerClient;
 import mx.managers.SystemManager;
 import mx.managers.SystemManagerGlobals;
-import mx.managers.SystemManagerProxy;
 import mx.managers.ToolTipManager;
 import mx.resources.IResourceManager;
 import mx.resources.ResourceManager;
@@ -11344,94 +11344,66 @@

     private function setTransform(value:flash.geom.Transform):void
     {
-        // Clean up the old event listeners
+        // Clean up the old transform
         var oldTransform:mx.geom.Transform = _transform as mx.geom.Transform;
         if (oldTransform)
-        {
-            oldTransform.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, transformPropertyChangeHandler);
-        }
+            oldTransform.target = null;

         var newTransform:mx.geom.Transform = value as mx.geom.Transform;

         if (newTransform)
-        {
-            newTransform.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, transformPropertyChangeHandler);
-        }
+            newTransform.target = this;

         _transform = value;
     }

-    private function assignTransformMatrices():void
-    {
-        var m:Matrix = _transform.matrix;
-        var m3:Matrix3D =  _transform.matrix3D;
+    /**
+     * @private
+     * Documentation is not currently available
+     */
+    mx_internal function get $transform():flash.geom.Transform
+    {
+        return super.transform;
+    }
+
+    /**
+     * @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function get transform():flash.geom.Transform
+    {
+        if(_transform == null)
+        {
+            setTransform(new mx.geom.Transform(this));
+        }
+        return _transform;
+    }
+
+    /**
+     * @private
+     */
+    override public function set transform(value:flash.geom.Transform):void
+    {
+    	var m:Matrix = value.matrix;
+        var m3:Matrix3D =  value.matrix3D;
+        var ct:ColorTransform = value.colorTransform;
+    	var pp:PerspectiveProjection = value.perspectiveProjection;
+
+        setTransform(value);
+
         if(m != null)
             setLayoutMatrix(m.clone(), true /*triggerLayoutPass*/);
         else if(m3 != null)
             setLayoutMatrix3D(m3.clone(), true /*triggerLayoutPass*/);
-    }
-
-    /**
-     * @private
-     * Documentation is not currently available
-     */
-    mx_internal function get $transform():flash.geom.Transform
-    {
-        return super.transform;
-    }
-
-    /**
-     * @inheritDoc
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    override public function get transform():flash.geom.Transform
-    {
-        if(_transform == null)
-        {
-            setTransform(new mx.geom.Transform(this));
-        }
-        return _transform;
-    }
-
-    /**
-     * @private
-     */
-    override public function set transform(value:flash.geom.Transform):void
-    {
-        setTransform(value);
-
-        assignTransformMatrices();
-        super.transform.colorTransform = value.colorTransform;
-        super.transform.perspectiveProjection = _transform.perspectiveProjection;
+
+        super.transform.colorTransform = ct;
+        super.transform.perspectiveProjection = pp;
         if (maintainProjectionCenter)
             invalidateDisplayList();
-    }
-
-
-
-    private function transformPropertyChangeHandler(event:PropertyChangeEvent):void
-    {
-        if (event.kind == PropertyChangeEventKind.UPDATE)
-        {
-            if (event.property == "matrix" || event.property == "matrix3D")
-            {
-                assignTransformMatrices();
-            }
-            else if (event.property == "perspectiveProjection")
-            {
-                super.transform.perspectiveProjection = _transform.perspectiveProjection;
-                if (maintainProjectionCenter)
-                    invalidateDisplayList();
-            }
-            else if (event.property == "colorTransform")
-            {
-                super.transform.colorTransform = _transform.colorTransform;
-            }
-        }
     }

     /**
@@ -12012,7 +11984,6 @@
             return super.transform.matrix;
         }
     }
-
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19230
Author:   clucier@adobe.com
Date:     2010-12-09T19:21:38.155713Z

Log Message:
-----------
Proper URL handling for BitmapImage..we now support unicode characters.

QE notes: None
Doc notes: None
Bugs: SDK-28725
Reviewer: Ryan
Tests run: Checkin, Cyclone (some tests had to be excluded).
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>

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

--- frameworks/projects/framework/src/mx/utils/LoaderUtil.as
+++ frameworks/projects/framework/src/mx/utils/LoaderUtil.as
@@ -29,7 +29,8 @@
 use namespace mx_internal;

   /**
-   *  The LoaderUtil class defines a utility method for use with Flex RSLs.
+   *  The LoaderUtil class defines utility methods for use with Flex RSLs and
+   *  generic Loader instances.
    *
    *  @langversion 3.0
    *  @playerversion Flash 9
@@ -338,6 +339,99 @@

         return rslsToLoad;
     }
+
+    /**
+     * @private
+     * Test whether a url is on the local filesystem. We can only
+     * really tell this with URLs that begin with "file:" or a
+     * Windows-style drive notation such as "C:". This fails some
+     * cases like the "/" notation on Mac/Unix.
+     *
+     * @param url
+     * the url to check against
+     *
+     * @return
+     * true if url is local, false if not or unable to determine
+     **/
+    mx_internal static function isLocal(url:String):Boolean
+    {
+        return (url.indexOf("file:") == 0 || url.indexOf(":") == 1);
+    }
+
+    /**
+     * @private
+     * Currently (FP 10.x) the ActiveX player (Explorer on Windows) does not
+     * handle encoded URIs containing UTF-8 on the local filesystem, but
+     * it does handle those same URIs unencoded. The plug-in requires
+     * encoded URIs.
+     *
+     * @param url
+     * url to properly encode, may be fully or partially encoded with encodeURI
+     *
+     * @param local
+     * true indicates the url is on the local filesystem
+     *
+     * @return
+     * encoded url that may be loaded with a URLRequest
+     **/
+    mx_internal static function OSToPlayerURI(url:String, local:Boolean):String
+    {
+
+        // First strip off the search string and any url fragments so
+        // they will not be decoded/encoded.
+        // Next decode the url.
+        // Before returning the decoded or encoded string add the search
+        // string and url fragment back.
+        var searchStringIndex:int;
+        var fragmentUrlIndex:int;
+        var decoded:String = url;
+
+        if ((searchStringIndex = decoded.indexOf("?")) != -1 )
+        {
+            decoded = decoded.substring(0, searchStringIndex);
+        }
+
+        if ((fragmentUrlIndex = decoded.indexOf("#")) != -1 )
+            decoded = decoded.substring(0, fragmentUrlIndex);
+
+        try
+        {
+            // decode the url
+            decoded = decodeURI(decoded);
+        }
+        catch (e:Error)
+        {
+            // malformed url, but some are legal on the file system
+        }
+
+        // create the string to hold the the search string url fragments.
+        var extraString:String = null;
+        if (searchStringIndex != -1 || fragmentUrlIndex != -1)
+        {
+            var index:int = searchStringIndex;
+
+            if (searchStringIndex == -1 ||
+                (fragmentUrlIndex != -1 && fragmentUrlIndex < searchStringIndex))
+            {
+                index = fragmentUrlIndex;
+            }
+
+            extraString = url.substr(index);
+        }
+
+        if (local && flash.system.Capabilities.playerType == "ActiveX")
+        {
+            if (extraString)
+                return decoded + extraString;
+            else
+                return decoded;
+        }
+
+        if (extraString)
+            return encodeURI(decoded) + extraString;
+        else
+            return encodeURI(decoded);
+    }

     /**
      *  @private
@@ -554,6 +648,6 @@
         var protocolIndex:int = url.indexOf("://");
         return url.substring(0,protocolIndex + 3) + url.substring(index + 12);
     }
-
+
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 15871
Author:   dloverin@adobe.com
Date:     2010-05-03T19:14:33.392012Z

Log Message:
-----------
Changes so modules and sub-applications will not load RSLs that are already loaded.

Changes to support not loading RSLs that are already loaded.

frameworks/projects/framework/src/mx/core/RSLData.as
            New class to allow access to RSL properties in a structured way.

frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as
            Used new format of rsl data. Cleaned up  constructor.

frameworks/projects/framework/src/mx/core/FlexModuleFactory.as
frameworks/projects/framework/src/mx/managers/SystemManager.as
            Checked if an RSL is already loaded before loading it. In the future this check could retrieve the module factory  of where the RSL should be loaded.

frameworks/projects/framework/src/mx/utils/LoaderUtil.as
            New method to check for loaded RSLs.

modules/compiler/src/java/flex2/tools/PreLink.java
            Generate RSL data in new format. Digests are now always present even when verify-digests is false. The value of verify digests is passed as an RSL property. Cache the value of info().

QE notes: None.
Doc notes: New feature.
Bugs:
Reviewer: Alex
Tests run: checkintests, submitted patch to testing service.
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/RSLData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>

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

--- frameworks/projects/framework/src/mx/utils/LoaderUtil.as
+++ frameworks/projects/framework/src/mx/utils/LoaderUtil.as
@@ -12,10 +12,13 @@
 package mx.utils
 {

+import flash.display.DisplayObject;
 import flash.display.LoaderInfo;
 import flash.system.Capabilities;

+import mx.core.IFlexModuleFactory;
 import mx.core.mx_internal;
+import mx.events.Request;

 use namespace mx_internal;

@@ -193,6 +196,58 @@

     /**
      *  @private
+     *
+     *  @param moduleFactory The module factory of the application or module
+     *  to get load information for. If the moduleFactory has not loaded the
+     *  module, then its parent is asked for load information. Each successive
+     *  parent is asked until the load information is found or there are no
+     *  more parents to ask. Only parents in parent ApplicationDomains are
+     *  searched. Applications in different security domains or sibling
+     *  ApplicationDomains do not share RSLs.
+     *
+     *  @param digest: The digest of the RSL to load.
+     *  @return The digest for loaded RSL if found, null otherwise.
+     */
+    mx_internal static function getRSLLoadData(moduleFactory:IFlexModuleFactory, digest:String):String
+    {
+        var currentModuleFactory:IFlexModuleFactory = moduleFactory;
+        while (currentModuleFactory != null)
+        {
+            var cdRSLs:Array = currentModuleFactory.info()["cdRsls"];
+
+            if (cdRSLs && cdRSLs.length > 0)
+            {
+                // loop over info to find digest match
+                var n:int = cdRSLs.length;
+                for (var i:int = 0; i < n; i++)
+                {
+                    var rslConfiguration:Object = cdRSLs[i];
+                    var m:int = rslConfiguration.length;
+                    for (var j:int = 0; j < m; j++)
+                    {
+                        if (rslConfiguration[j].digest == digest)
+                        {
+                            return digest;
+                        }
+                    }
+                }
+            }
+
+            // if didn't find object, then check the parent
+            var request:Request = new Request(Request.GET_PARENT_FLEX_MODULE_FACTORY_REQUEST);
+            DisplayObject(moduleFactory).dispatchEvent(request);
+            currentModuleFactory = request.value as IFlexModuleFactory;
+            if (currentModuleFactory)
+            {
+                return LoaderUtil.getRSLLoadData(currentModuleFactory, digest);
+            }
+        }
+
+        return null;
+    }
+
+    /**
+     *  @private
      */
     private static function isMac():Boolean
     {


FLEX-13423 Date ranges are currently used inconstantly - simpler and easier to understand if endDate and startDates are included

--- frameworks/projects/mx/src/mx/controls/CalendarLayout.as
+++ frameworks/projects/mx/src/mx/controls/CalendarLayout.as
@@ -2020,7 +2020,7 @@
 			{
 				if (endDate < rangeEnd)
 				{
-					_selectedRanges[n].rangeStart = addSubtractDays(endDate, 1);
+					_selectedRanges[n].rangeStart = endDate;
 				}
 				else
 				{
@@ -2036,18 +2036,17 @@
 				{
 					var temp:Date = _selectedRanges[n].rangeEnd;

-					_selectedRanges[n].rangeEnd = addSubtractDays(startDate, -1);
+					_selectedRanges[n].rangeEnd = startDate;

 					_selectedRanges[selectedRangeCount] = {};
-					_selectedRanges[selectedRangeCount].rangeStart =
-						addSubtractDays(endDate, 1);
+					_selectedRanges[selectedRangeCount].rangeStart = endDate;
 					_selectedRanges[selectedRangeCount].rangeEnd = temp;

 					selectedRangeCount += 1;
 				}
 				else
 				{
-					_selectedRanges[n].rangeEnd = addSubtractDays(startDate, -1);
+					_selectedRanges[n].rangeEnd = startDate;
 				}
 			}
 		}
@@ -2450,12 +2449,12 @@
                 {
                     if (alreadySelected)
                     {
-                        removeSelectionIndicator(colIndex,rowIndex);
-                        removeRangeFromSelection(newDate,newDate);
+                        removeSelectionIndicator(colIndex, rowIndex);
+                        removeRangeFromSelection(newDate, newDate);
                     }
                     else
                     {
-                        addSelectionIndicator(colIndex,rowIndex);
+                        addSelectionIndicator(colIndex, rowIndex);
                         addToSelected(newDate);
                     }
                 }
@@ -2474,14 +2473,14 @@
                         }
                         else if (event.ctrlKey)
                         {
-                            removeSelectionIndicator(colIndex,rowIndex);
-                            removeRangeFromSelection(newDate,newDate);
+                            removeSelectionIndicator(colIndex, rowIndex);
+                            removeRangeFromSelection(newDate, newDate);
                         }
                     }
                     else
                     {
                             selectedRangeCount = 0;
-                            addSelectionIndicator(colIndex,rowIndex);
+                            addSelectionIndicator(colIndex, rowIndex);
                             addToSelected(newDate);
                             setSelectedIndicators();
                     }


Added fullscreen events

Added fullscreen events

--- src/Player.as
+++ src/Player.as
@@ -109,9 +109,11 @@
     }

     public function fullscreen(event:MouseEvent):void {
-      if (config.allowFullscreen)
+      if (config.allowFullscreen) {
         this.stage.displayState = (StageDisplayState.NORMAL === stage.displayState) ?
           StageDisplayState.FULL_SCREEN : StageDisplayState.NORMAL;
+          (StageDisplayState.NORMAL === stage.displayState) ? this.callAPI("fullscreenExited") : this.callAPI("fullscreenEntered");
+      }
     }

     public function videoResize():void {


ContainerBase dispatches "childrenAdded" once its beads and children have been processed; this can trigger any layout beads (for example) to do their work.

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ContainerBase.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/ContainerBase.as
@@ -72,6 +72,7 @@
             super.addedToParent();

 			dispatchEvent(new Event("initComplete"))
+			dispatchEvent( new Event("childrenAdded") );
 		}

         /**


Bits of documenting and length checking.

git-svn-id: c197267f952b24206666de142881703007ca05d5@11123 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/core/AbstractJID.as
+++ src/org/igniterealtime/xiff/core/AbstractJID.as
@@ -4,32 +4,49 @@
 package org.igniterealtime.xiff.core
 {
   /**
-   * This is a base class for the JID (Jabber ID) classes. It provides
-   * functionality to determine if a JID is valid, as well as extract the
+   * This is a base class for the JID (Jabber ID) classes.
+   * This class should not be instantiated directly, but should be subclassed
+   * instead.
+   *
+   * It provides functionality to determine if a JID is valid, as well as extract the
    * node, domain and resource from the JID.
    *
-   * This class should not be instantiated directly, but should be subclassed
-   * instead.
+   * The structure of JID is defined in RFC3920.
+   * jid = [ node "@" ] domain [ "/" resource ]
+   * domain = fqdn / address-literal
+   * fqdn = (sub-domain 1*("." sub-domain))
+   * sub-domain = (internationalized domain label)
+   * address-literal = IPv4address / IPv6address
+   *
+   * @exampleText user@host/resource
+   * @exampleText room@service/nick
    */
   public class AbstractJID
   {
+	private const BYTE_LIMIT_ITEM:uint = 1023;
+	private const BYTE_LIMIT_TOTAL:uint = 3071;
+
     //TODO: this doesn't actually validate properly in some cases; need separate nodePrep, etc...
     protected static var jidNodeValidator:RegExp = /^([\x29\x23-\x25\x28-\x2E\x30-\x39\x3B\x3D\x3F\x41-\x7E\xA0 \u1680\u202F\u205F\u3000\u2000-\u2009\u200A-\u200B\u06DD \u070F\u180E\u200C-\u200D\u2028-\u2029\u0080-\u009F \u2060-\u2063\u206A-\u206F\uFFF9-\uFFFC\uE000-\uF8FF\uFDD0-\uFDEF \uFFFE-\uFFFF\uD800-\uDFFF\uFFF9-\uFFFD\u2FF0-\u2FFB]{1,1023})/;
     protected var _node:String = "";
     protected var _domain:String = "";
     protected var _resource:String = "";

-    /**
-     * Creates a new AbstractJID object.
-     *
-     * @param	inJID The JID as a String.
-     * @param	validate True if the JID should be validated.
-     */
-    public function AbstractJID(inJID:String, validate:Boolean=false)
+	/**
+	 * Creates a new AbstractJID object. Used via EscapedJID or UnescapedJID.
+	 *
+	 * Each allowable portion of a JID (node identifier, domain identifier, and resource identifier)
+	 * MUST NOT be more than 1023 bytes in length, resulting in a maximum total size
+	 * (including the ’@’ and ’/’ separators) of 3071 bytes.
+	 *
+	 * @param	inJID The JID as a String.
+	 * @param	validate True if the JID should be validated.
+	 */
+    public function AbstractJID(inJID:String, validate:Boolean=false)
     {
       if(validate)
       {
-        if(!jidNodeValidator.test(inJID) || inJID.indexOf(" ") > -1)
+        if(!jidNodeValidator.test(inJID) || inJID.indexOf(" ") > -1 || inJID.length > BYTE_LIMIT_TOTAL)
         {
           // TODO: Get rid of trace (use Logger) and create
           // better exception
@@ -40,7 +57,7 @@
       var separatorIndex:int = inJID.lastIndexOf("@");
       var slashIndex:int = inJID.lastIndexOf("/");

-      if(slashIndex >= 0)
+      if(slashIndex >= 0)
         _resource = inJID.substring(slashIndex + 1);

       _domain = inJID.substring(separatorIndex + 1, slashIndex >= 0 ? slashIndex : inJID.length);
@@ -128,7 +145,7 @@
      *
      * @return The JID as a String.
      */
-    public function toString():String
+    public function toString():String
     {
       var j:String = "";
       if(node)
@@ -143,7 +160,7 @@
     /**
      * The JID without the resource.
      */
-    public function get bareJID():String
+    public function get bareJID():String
     {
       var str:String = toString();
       var slashIndex:int = str.lastIndexOf("/");
@@ -155,7 +172,7 @@
     /**
      * The resource portion of the JID.
      */
-    public function get resource():String
+    public function get resource():String
     {
       if(_resource.length > 0)
         return _resource;
@@ -165,7 +182,7 @@
     /**
      * The node portion of the JID.
      */
-    public function get node():String
+    public function get node():String
     {
       if(_node.length > 0)
         return _node;
@@ -175,7 +192,7 @@
     /**
      * The domain portion of the JID.
      */
-    public function get domain():String
+    public function get domain():String
     {
       return _domain;
     }


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

--- frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as
@@ -47,7 +47,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="accentColor", type="uint", format="Color", inherit="yes")]

@@ -64,7 +64,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="slideDuration", type="Number", format="Time", inherit="no")]

@@ -75,7 +75,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="textShadowAlpha", type="Number", inherit="yes", minValue="0.0", maxValue="1.0", theme="mobile")]

@@ -86,7 +86,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="textShadowColor", type="uint", format="Color", inherit="yes", theme="mobile")]

@@ -168,7 +168,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  *
  *  @includeExample examples/ToggleSwitchExample.mxml -noswf
  *
@@ -200,7 +200,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function ToggleSwitch()
     {
@@ -263,7 +263,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public var thumb:IVisualElement;

@@ -275,7 +275,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public var track:IVisualElement;

@@ -295,7 +295,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     override public function set selected(value:Boolean):void
     {
@@ -357,7 +357,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get thumbPosition():Number
     {