Transferred from the Adobe Open Source Subversion Repository

Revision: 8031
Author:   egeorgie@adobe.com
Date:     2009-06-20T01:10:03.288554Z

Log Message:
-----------
Scrub the TODOs in the framework, convert to FIXMEs in the new convention and assigning an owner.

Doc Notes: N/A
Bugs: N/A
Reviewer: Deepa
tests: build, checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</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/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Timeline.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/mediaClasses/VolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ErrorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/FocusSkin.as</path>
<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/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutElementHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.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/flex4/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/mediaClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PropertyChanges.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RemoveActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/pathSegments/LineSegment.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/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</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/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.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/flex4/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.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/flex4/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ProgressBar.as
+++ frameworks/projects/mx/src/mx/controls/ProgressBar.as
@@ -1465,7 +1465,7 @@
         //trace("_content x",_content.x,"y",_content.y,"w",_content.width,"h",_content.height);

         _labelField.text = getFullLabelText();
-        // TODO redundant? the IF below does this
+        // FIXME (gruehle): redundant? the IF below does this
         _indeterminateBar.visible = _indeterminate;

         if (indeterminateChanged || visibleChanged)


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

--- frameworks/projects/mx/src/mx/events/MetadataEvent.as
+++ frameworks/projects/mx/src/mx/events/MetadataEvent.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  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: 6122
Author:   chaase@adobe.com
Date:     2009-04-10T14:30:17.762458Z

Log Message:
-----------
Various refactorings/renamings/changes from effects PARB review.

QE Notes: mx/effects and spark/effects currently broken (and disabled) due to these API changes. Matt is fixing.
Doc Notes: None
Bugs:
Reviewer: Hans
tests: checkintests, mustella tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EasingFraction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EffectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/TweenEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/RepeatBehavior.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/NumberArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Rotate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Resize.as
+++ frameworks/projects/spark/src/spark/effects/Resize.as
@@ -177,32 +177,6 @@
      */
     public var widthTo:Number;

-    //----------------------------------
-    //  hideChildrenTargets
-    //----------------------------------
-
-    // TODO: We should axe this from Resize and enable the
-    // functionality in a different manner, such as setting hiding
-    // effects manually on the children themselves
-    /**
-     *  An Array of Panel containers.
-     *  The children of these Panel containers are hidden while the Resize
-     *  effect plays.
-     *
-     *
You use data binding syntax to set this property in MXML,
-     *  as the following example shows, where panelOne and panelTwo
-     *  are the names of two Panel containers in your application:

-     *
-     *
<mx:Resize id="e" heightFrom="100" heightTo="400"
-     *  hideChildrenTargets="{[panelOne, panelTwo]}" />

-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public var hideChildrenTargets:Array /* of Panel */;
-
     //--------------------------------------------------------------------------
     //
     //  Overridden methods
@@ -246,7 +220,6 @@
             resizeInstance.heightTo = heightTo;
         if (!isNaN(heightBy))
             resizeInstance.heightBy = heightBy;
-        resizeInstance.hideChildrenTargets = hideChildrenTargets;
     }
 }
 }


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

--- frameworks/projects/wireframe/src/WireframeClasses.as
+++ frameworks/projects/wireframe/src/WireframeClasses.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
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as
@@ -0,0 +1,198 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls.advancedDataGridClasses
+{
+
+import flash.display.DisplayObject;
+import flash.geom.Point;
+
+import mx.collections.IGroupingCollection;
+import mx.collections.IGroupingCollection2;
+import mx.controls.AdvancedDataGrid;
+import mx.controls.listClasses.IDropInListItemRenderer;
+import mx.controls.listClasses.IListItemRenderer;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ *  The AdvancedDataGridDragProxy class defines the default drag proxy
+ *  used when dragging data from an AdvancedDataGrid control.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AdvancedDataGridDragProxy extends UIComponent
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AdvancedDataGridDragProxy()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function createChildren():void
+    {
+        super.createChildren();
+
+        var advancedDataGrid:AdvancedDataGrid = AdvancedDataGrid(owner);
+
+        var items:Array /* of unit */ = advancedDataGrid.selectedItems;
+
+        var n:int = items.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            var src:IListItemRenderer = advancedDataGrid.itemToItemRenderer(items[i]);
+            if (!src)
+                continue;
+
+            var o:UIComponent;
+
+            var data:Object = items[i];
+
+            o = new UIComponent();
+            addChild(DisplayObject(o));
+
+            var ww:Number = 0;
+
+            var m:int = advancedDataGrid.visibleColumns.length;
+            for (var j:int = 0; j < m; j++)
+            {
+                var col:AdvancedDataGridColumn = advancedDataGrid.visibleColumns[j];
+
+                var c:IListItemRenderer = advancedDataGrid.getRenderer(col, data, true);
+
+                var label:String = col.itemToLabel(data);
+                if (advancedDataGrid._rootModel &&
+                     col.colNum == 0 && advancedDataGrid._rootModel.canHaveChildren(data))
+                {
+                    // if the data is grouped, get the groupLabelField.
+                    var groupLabelField:String;
+                    if (advancedDataGrid._rootModel is IGroupingCollection
+                         && IGroupingCollection(advancedDataGrid._rootModel).grouping)
+                        groupLabelField = IGroupingCollection(advancedDataGrid._rootModel).grouping.label;
+
+					// check for GroupingCollection2 also
+					if (advancedDataGrid._rootModel is IGroupingCollection2
+						&& IGroupingCollection2(advancedDataGrid._rootModel).grouping)
+						groupLabelField = IGroupingCollection2(advancedDataGrid._rootModel).grouping.label;
+
+                    // Checking for a groupLabelFunction or a groupLabelField property to be present
+                    if (advancedDataGrid.groupLabelFunction != null)
+                        label = advancedDataGrid.groupLabelFunction(data, col);
+                    else if (groupLabelField != null && data.hasOwnProperty(groupLabelField))
+                        label = data[groupLabelField];
+                }
+
+                var rowData:AdvancedDataGridListData = new AdvancedDataGridListData(
+                    label, col.dataField,
+                    col.colNum, "", advancedDataGrid);
+
+                if (c is IDropInListItemRenderer)
+                {
+                    IDropInListItemRenderer(c).listData =
+                        data ? rowData : null;
+                }
+
+                c.data = data;
+                c.styleName = advancedDataGrid;
+                c.visible = true;
+
+                o.addChild(DisplayObject(c));
+
+                var itemWidth:Number = advancedDataGrid.getWidthOfItem(c, col, j);
+                c.setActualSize(itemWidth, src.height);
+                c.move(ww, 0);
+
+                ww += itemWidth;
+
+                if (advancedDataGrid.rendererProviders.length != 0)
+                {
+                    var adgDescription:AdvancedDataGridRendererDescription =
+                        advancedDataGrid.getRendererDescription(data, col, true);
+                    if (adgDescription && adgDescription.renderer)
+                    {
+                        if (adgDescription.columnSpan == 0)
+                            break;
+                        else
+                            j += adgDescription.columnSpan - 1;
+                    }
+                }
+            }
+
+            o.setActualSize(ww, src.height);
+            var pt:Point = new Point(0, 0);
+			pt = DisplayObject(src).localToGlobal(pt);
+			pt = AdvancedDataGrid(owner).globalToLocal(pt);
+			o.y = pt.y;
+
+            measuredHeight = o.y + o.height;
+            measuredWidth = ww;
+        }
+
+        invalidateDisplayList();
+    }
+
+    /**
+     *  @private
+     */
+    override protected function measure():void
+	{
+		super.measure();
+
+		var w:Number = 0;
+		var h:Number = 0;
+		var child:UIComponent;
+
+		for (var i:int = 0; i < numChildren; i++)
+		{
+			child = getChildAt(i) as UIComponent;
+
+			if (child)
+			{
+				w = Math.max(w, child.x + child.width);
+				h = Math.max(h, child.y + child.height);
+			}
+		}
+
+		measuredWidth = measuredMinWidth = w;
+		measuredHeight = measuredMinHeight = h;
+	}
+}
+
+}


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

--- frameworks/projects/framework/src/mx/graphics/IFill.as
+++ frameworks/projects/framework/src/mx/graphics/IFill.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2004-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.graphics
 {


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

--- frameworks/projects/framework/src/mx/utils/NameUtil.as
+++ frameworks/projects/framework/src/mx/utils/NameUtil.as
@@ -0,0 +1,121 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 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.utils
+{
+
+import flash.display.DisplayObject;
+import flash.utils.getQualifiedClassName;
+import mx.core.IRepeaterClient;
+
+/**
+ *  The NameUtil utility class defines static methods for
+ *  creating names for Flex objects.
+ *  You do not create instances of NameUtil;
+ *  instead you call static methods of the class, such as
+ *  the NameUtil.createName() method.
+ */
+public class NameUtil
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private static var counter:int = 0;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Creates a unique name for any Object instance, such as "Button12", by
+	 *  combining the unqualified class name with an incrementing counter.
+	 *
+	 *  @param object Object requiring a name.
+	 *
+	 *  @return String containing the unique name.
+	 */
+    public static function createUniqueName(object:Object):String
+    {
+		if (!object)
+			return null;
+
+		var name:String = getQualifiedClassName(object);
+
+		// If there is a package name, strip it off.
+		var index:int = name.indexOf("::");
+		if (index != -1)
+			name = name.substr(index + 2);
+
+		// If the class name ends with a digit (which some autogenerated
+		// classes do), then append an underscore before appending
+		// the counter.
+		var charCode:int = name.charCodeAt(name.length - 1);
+		if (charCode >= 48 && charCode <= 57)
+			name += "_";
+
+		return name + counter++;
+    }
+
+	/**
+	 *  Returns a string, such as
+	 *  "MyApplication0.addressForm.lastName.TextField17",
+	 *  for a DisplayObject object that indicates its position in the
+	 *  hierarchy of DisplayObject objects in an application.
+	 *
+	 *  @param displayObject A DisplayObject object whose hierarchy in the application
+	 *  is desired.
+	 *
+	 *  @return String containing the position of displayObject
+	 *  in the hierarchy of DisplayObject objects in an application.
+	 */
+	public static function displayObjectToString(
+								displayObject:DisplayObject):String
+	{
+		var result:String;
+
+		// Start at the specified object and walk up the parent chain
+		// to build up the string to return.
+		for (var o:DisplayObject = displayObject;
+			 o != null;
+			 o = o.parent)
+		{
+			// If this object is in the display tree,
+			// stop after we've prepended the topmost Application instance.
+			if (o.parent && o.stage && o.parent == o.stage)
+				break;
+
+			var s:String = o.name;
+
+			if (o is IRepeaterClient)
+			{
+				var indices:Array = IRepeaterClient(o).instanceIndices;
+				if (indices)
+					s += "[" + indices.join("][") + "]";
+			}
+
+			result = result == null ? s : s + "." + result;
+		}
+
+		return result;
+	}
+}
+
+}


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

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

 package mx.skins.halo
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 7221
Author:   dsubrama@adobe.com
Date:     2009-05-22T16:27:26.493658Z

Log Message:
-----------
-Use Drawing API-2 to render caps for every Line graphic element's strokes. As part of this, GradientStroke now implements IStroke and IStroke has a new method, generateGraphicsStroke() which returns a GraphicsStroke object representing this stroke. More refactoring to share graphics stroke logic between LinearGradientStroke and RadialGradientStroke.
-Removed some un-used imports.
-Added some comments to ItemRenderer and had modified List to use static constants for event listeners.

Fixes: SDK-17661, SDK-21353, SDK-21251

Checkintests: Pass
FXG Tests: Passed (cyclone ran by Joan)
Doc: Added ASDoc for ItemRenderer and IStroke, a glance-over would be swell.
Reviewer: Jason for SDK-17661 me for the others.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/IStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Line.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.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/ErrorSkin.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Line.as
+++ frameworks/projects/spark/src/spark/primitives/Line.as
@@ -13,8 +13,10 @@
 {

 import flash.display.Graphics;
-import flash.events.EventDispatcher;
+import flash.display.GraphicsStroke;
+import flash.display.IGraphicsData;
 import flash.geom.Rectangle;
+
 import spark.primitives.supportClasses.StrokedElement;

 /**
@@ -245,6 +247,24 @@
     }

     /**
+     * @private
+     */
+    override protected function beginDraw(g:Graphics):void
+    {
+        var graphicsStroke:GraphicsStroke = stroke.generateGraphicsStroke(new
+            Rectangle(drawX + measuredX, drawY + measuredY,
+            Math.max(width, stroke.weight), Math.max(height, stroke.weight)));
+
+        // If the stroke returns a valid graphicsStroke object which is the
+        // Drawing API-2 drawing commands to render this stroke, use that
+        // to draw the stroke to screen
+        if (graphicsStroke)
+            g.drawGraphicsData(new <IGraphicsData>[graphicsStroke]);
+        else
+            super.beginDraw(g);
+    }
+
+    /**
      * @inheritDoc
      *
      *  @langversion 3.0


Transferred from the Adobe Open Source Subversion Repository

Revision: 6359
Author:   gruehle@adobe.com
Date:     2009-04-28T20:58:40.137689Z

Log Message:
-----------
Add error skin for Spark components. The error skin is a separate skin, handled in a similar manner as the focus skin. It is shown whenever the errorString property is non-empty. The default implementation overlays a red border on top of the component.

Fixed the font size for tooltips/error tips.

Bugs: SDK-19559, SDK-19495
QE: Yes - spark tests for errorString/validation failure need to be added
Doc: Yes - new errorSkin style on SkinnableComponent
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</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/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/ErrorSkin.as</path>

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

--- frameworks/projects/spark/src/spark/skins/SparkSkin.as
+++ frameworks/projects/spark/src/spark/skins/SparkSkin.as
@@ -34,7 +34,7 @@

     static private var colorTransform:ColorTransform = new ColorTransform();

-    public var colorized:Boolean = false;
+    private var colorized:Boolean = false;

     /**
      * Constructor.


403 BaseDisplay doc

403 BaseDisplay doc

--- raw/src/org/yellcorp/lib/ui/BaseDisplay.as
+++ raw/src/org/yellcorp/lib/ui/BaseDisplay.as
@@ -6,14 +6,61 @@
 import flash.utils.getQualifiedClassName;

+/**
+ * A minimal implementation of a sprite that responds to stage invalidation.
+ * Similar to the invalidation routine of fl.core.UIComponent, without
+ * styles, accessibility, or live preview.
+ *
+ *
The general usage pattern is as follows:

+ *

+ *
Some function (often a setter) that triggers a change in the
+ *       appearance of the object calls the invalidate()
+ *       method, passing in a string that will be used to identify which
+ *       aspect of the apperance needs redrawing.  If the redraw routine
+ *       can't be broken into independent parts, just pass
+ *       SIZE.

+ *
invalidate() schedules an Event.RENDER,
+ *       which ultimately results in a call to draw().

+ *
draw() is overridden with a implementation that checks
+ *       which identifiers have been invalidated, updates the display that
+ *       corresponds to each one, then calls validate() for
+ *       each one.

+ * </ui>
+ */
 public class BaseDisplay extends Sprite
 {
+    /**
+     * Identifies that the width and/or height of this object is invalid and
+     * needs updating.
+     */
     public static const SIZE:String = "SIZE";
+
+    /**
+     * Identifies that the scroll offset of this object is invalid and
+     * needs updating.
+     */
     public static const SCROLL:String = "SCROLL";
+
+    /**
+     * Identifies that the state of this object (e.g. disabled, selected,
+     * rolled over, etc) is invalid and needs updating.
+     */
     public static const STATE:String = "STATE";
+
+    /**
+     * Identifies that the content of this object (e.g. labels, source data,
+     * etc) is invalid and needs updating.
+     */
     public static const CONTENT:String = "CONTENT";

+    /**
+     * The stored width as set by callers.
+     */
     protected var _width:Number;
+
+    /**
+     * The stored height as set by callers.
+     */
     protected var _height:Number;

     private var waitingForRender:Boolean;
@@ -23,6 +70,12 @@

     private var invalidTokens:Object;

+    /**
+     * Constructor.
+     *
+     * @param initialWidth   The initial value for width.
+     * @param initialHeight  The initial value for height.
+     */
     public function BaseDisplay(initialWidth:Number = 0, initialHeight:Number = 0)
     {
         invalidTokens = { };
@@ -33,6 +86,9 @@
         addEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage, false, 0, true);
     }

+    /**
+     * The width at which this object should be drawn.
+     */
     public override function get width():Number
     {
         return _width;
@@ -44,6 +100,10 @@
         invalidate(SIZE);
     }

+
+    /**
+     * The height at which this object should be drawn.
+     */
     public override function get height():Number
     {
         return _height;
@@ -55,6 +115,9 @@
         invalidate(SIZE);
     }

+    /**
+     * Convenience method to set width and height at once.
+     */
     public function setSize(w:Number, h:Number):void
     {
         _width = w;
@@ -62,22 +125,47 @@
         invalidate(SIZE);
     }

+    /**
+     * Invalidates SIZE and calls draw immediately.  This is
+     * necessary when a parent BaseDisplay is already drawing in response to
+     * an invalidation, as invalidations aren't re-entrant.
+     */
     public function forceRedraw():void
     {
         invalidate(SIZE);
         draw();
     }

+    /**
+     * Called when any aspect of the BaseDisplay is marked as invalid.
+     * Subclasses should override this with code to update the display and
+     * validate all identifiers.  The base implementation does nothing.
+     */
+    protected function draw():void
+    {
+    }
+
+    /**
+     * Returns the width as calculated by Flash Player.
+     */
     protected function getDisplayWidth():Number
     {
         return super.width;
     }

+    /**
+     * Returns the height as calculated by Flash Player.
+     */
     protected function getDisplayHeight():Number
     {
         return super.height;
     }

+    /**
+     * Convenience method to set the size on a child DisplayObject.  This
+     * also detects whether the DisplayObject is a BaseDisplay, and if so,
+     * forces it to redraw.
+     */
     protected function setSizeOn(object:DisplayObject, w:Number, h:Number):void
     {
         var asBaseDisplay:BaseDisplay = object as BaseDisplay;
@@ -96,6 +184,10 @@
         }
     }

+    /**
+     * Convenience method to call the forceRedraw() method of
+     * one or more BaseDisplays.
+     */
     protected function forceRedrawOn(... updatedObjects):void
     {
         var object:*;
@@ -109,6 +201,11 @@
         }
     }

+    /**
+     * Flags a certain visual state (identified by a String) as needing
+     * validation, then triggers an invalidation if one is not already
+     * queued.
+     */
     protected function invalidate(token:String):void
     {
         invalidTokens[token] = true;
@@ -124,33 +221,51 @@
         }
     }

+    /**
+     * Flags a certain visual state (identified by a String) as valid.
+     * Should be called after the draw() method has updated the
+     * display's appearance to match its state.
+     */
     protected function validate(token:String):void
     {
         delete invalidTokens[token];
     }

+    /**
+     * Query if a certain visual state is invalidated.
+     */
     protected function isInvalid(token:String):Boolean
     {
         return invalidTokens[token] === true;
     }

+    /**
+     * Query if a certain visual state is up to date.
+     */
     protected function isValid(token:String):Boolean
     {
         return invalidTokens[token] !== true;
     }

+    /**
+     * Convenience method that is called in response to this BaseDisplay's
+     * ADDED_TO_STAGE event.  The base implementation does nothing.
+     */
     protected function onAddedToStage(event:Event):void
     {
     }

+    /**
+     * Convenience method that is called in response to this BaseDisplay's
+     * REMOVED_FROM_STAGE event.  The base implementation does nothing.
+     */
     protected function onRemovedFromStage(event:Event):void
     {
     }

-    protected function draw():void
-    {
-    }
-
+    /**
+     * Returns the class and display name of this object.
+     */
     protected function debugName():String
     {
         return "(" + getQualifiedClassName(this) + ")" + this.name;


Transferred from the Adobe Open Source Subversion Repository

Revision: 8091
Author:   smgilson@adobe.com
Date:     2009-06-23T15:36:08.467475Z

Log Message:
-----------
ASDoc bug fixes

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Channel.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/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
@@ -1400,17 +1400,6 @@

     /**
      *  Executes the data bindings into this UIComponent object.
-     *
-     *  Workaround for MXML container/bindings problem (177074):
-     *  override Container.executeBindings() to prefer descriptor.document over parentDocument in the
-     *  call to BindingManager.executeBindings().
-     *
-     *  This should always provide the correct behavior for instances created by descriptor, and will
-     *  provide the original behavior for procedurally-created instances. (The bug may or may not appear
-     *  in the latter case.)
-     *
-     *  A more complete fix, guaranteeing correct behavior in both non-DI and reparented-component
-     *  scenarios, is anticipated for updater 1.
      *
      *  @param recurse Recursively execute bindings for children of this component.
      *
@@ -2960,13 +2949,13 @@
      */
     override public function set transform(value:flash.geom.Transform):void
     {
-    	var m:Matrix = value.matrix;
+        var m:Matrix = value.matrix;
         var m3:Matrix3D =  value.matrix3D;
         var ct:ColorTransform = value.colorTransform;
-    	var pp:PerspectiveProjection = value.perspectiveProjection;
-
+        var pp:PerspectiveProjection = value.perspectiveProjection;
+
         setTransform(value);
-
+
         if(m != null)
             setLayoutMatrix(m.clone(), true /*triggerLayoutPass*/);
         else if(m3 != null)
@@ -3120,12 +3109,12 @@
         // Clean up the old transform
         var oldTransform:mx.geom.Transform = _transform as mx.geom.Transform;
         if (oldTransform)
-        	oldTransform.target = null;
+            oldTransform.target = null;

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

         if (newTransform)
-        	newTransform.target = this;
+            newTransform.target = this;

         _transform = value;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10961
Author:   chaase@adobe.com
Date:     2009-10-09T21:55:11.382317Z

Log Message:
-----------
Fix for occasional RTE in transform effects. The problem was that an object whose parent container was 3D transformed which then underwent a 2D transform effect might try to access the 2D matrix of the display object. In some situations, that 2D matrix is null, because the 3D matrix on the display object is the one currently being used.
The fix is to allocate AdvancedLayoutFeatures and let that class handle this matrix abstraction for us.

QE notes: None
Doc notes: No
Bugs: sdk-23546
Reviewer: Evtim
Tests run: checkintests, mustella spark/effects
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.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/UIComponent.as</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
@@ -3227,8 +3227,21 @@
      */
     public function getLayoutMatrix():Matrix
     {
-        if (_layoutFeatures != null)
-        {
+        if (_layoutFeatures != null || super.transform.matrix == null)
+        {
+            // TODO: this is a workaround for a situation in which the
+            // object is in 2D, but used to be in 3D and the player has not
+            // yet cleaned up the matrices. So the matrix property is null, but
+            // the matrix3D property is non-null. layoutFeatures can deal with
+            // that situation, so we allocate it here and let it handle it for
+            // us. The downside is that we have now allocated layoutFeatures
+            // forever and will continue to use it for future situations that
+            // might not have required it. Eventually, we should recognize
+            // situations when we can de-allocate layoutFeatures and back off
+            // to letting the player handle transforms for us.
+            if (_layoutFeatures == null)
+                initAdvancedLayoutFeatures();
+
             // esg: _layoutFeatures keeps a single internal copy of the layoutMatrix.
             // since this is an internal class, we don't need to worry about developers
             // accidentally messing with this matrix, _unless_ we hand it out. Instead,
@@ -3433,7 +3446,7 @@
                 xformPt.x = transformCenter.x;
                 xformPt.y = transformCenter.y;
                 var postXFormPoint:Point =
-                    super.transform.matrix.transformPoint(xformPt);
+                    transform.matrix.transformPoint(xformPt);
                 if (translation != null)
                 {
                     x += translation.x - postXFormPoint.x;
@@ -3442,7 +3455,7 @@
                 else
                 {
                     var xformedPt:Point =
-                        super.transform.matrix.transformPoint(xformPt);
+                        transform.matrix.transformPoint(xformPt);
                     x += xformedPt.x - postXFormPoint.x;
                     y += xformedPt.y - postXFormPoint.y;
                 }
@@ -3466,7 +3479,7 @@
                 xformPt.x = transformCenter.x;
                 xformPt.y = transformCenter.y;
             }
-            var tmp:Point = super.transform.matrix.transformPoint(xformPt);
+            var tmp:Point = transform.matrix.transformPoint(xformPt);
             if (position != null)
             {
                 position.x = tmp.x;


Added 160 and 640 support to multi dpi bitmaps

--- frameworks/projects/spark/src/spark/utils/MultiDPIBitmapSource.as
+++ frameworks/projects/spark/src/spark/utils/MultiDPIBitmapSource.as
@@ -35,6 +35,17 @@
 {
     include "../core/Version.as";

+	/**
+	 *  The source to use if the Application.runtimeDPI
+	 *  is DPIClassification.DPI_120.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion ApacheFlex 4.11
+	 */
+	public var source120dpi:Object;
+
     /**
      *  The source to use if the Application.runtimeDPI
      *  is DPIClassification.DPI_160.
@@ -77,7 +88,18 @@
 	 *  @playerversion AIR 2.6
 	 *  @productversion ApacheFlex 4.10
 	 */
-	public var source480dpi:Object;
+	public var source640dpi:Object;
+
+	/**
+	 *  The source to use if the Application.runtimeDPI
+	 *  is DPIClassification.DPI_640.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion ApacheFlex 4.11
+	 */
+	public var source640dpi:Object;

     /**
      *  Select one of the sourceXXXdpi properties based on the given DPI.  This
@@ -101,42 +123,84 @@
         var source:Object = source160dpi;
         switch (desiredDPI)
         {
+			case DPIClassification.DPI_640:
+				source = source640dpi;
+				if (!source || source == "")
+					source = source480dpi;
+				if (!source || source == "")
+					source = source320dpi;
+				if (!source || source == "")
+					source = source240dpi;
+				if (!source || source == "")
+					source = source160dpi;
+				if (!source || source == "")
+					source = source120dpi;
+				break;
 			case DPIClassification.DPI_480:
 				source = source480dpi;
 				if (!source || source == "")
-					source = source320dpi;
-				if (!source || source == "")
-					source = source240dpi;
-				if (!source || source == "")
-					source = source160dpi;
-				break;
-            case DPIClassification.DPI_160:
-                source = source160dpi;
+					source = source640dpi;
+				if (!source || source == "")
+					source = source320dpi;
+				if (!source || source == "")
+					source = source240dpi;
+				if (!source || source == "")
+					source = source160dpi;
+				if (!source || source == "")
+					source = source120dpi;
+				break;
+            case DPIClassification.DPI_320:
+                source = source320dpi;
+				if (!source || source == "")
+					source = source480dpi;
+				if (!source || source == "")
+					source = source640dpi;
                 if (!source || source == "")
                     source = source240dpi;
-				if (!source || source == "")
-					source = source320dpi;
-				if (!source || source == "")
-					source = source480dpi;
-                break;
-            case DPIClassification.DPI_240:
-                source = source240dpi;
-                if (!source || source == "")
-                    source = source320dpi;
-				if (!source || source == "")
-					source = source480dpi;
                 if (!source || source == "")
                     source = source160dpi;
+				if (!source || source == "")
+					source = source120dpi;
                 break;
-            case DPIClassification.DPI_320:
-                source = source320dpi;
-                if (!source || source == "")
-                    source = source240dpi;
-				if (!source || source == "")
-					source = source480dpi;
-                if (!source || source == "")
-                    source = source160dpi;
-                break;
+			case DPIClassification.DPI_240:
+				source = source240dpi;
+				if (!source || source == "")
+					source = source320dpi;
+				if (!source || source == "")
+					source = source480dpi;
+				if (!source || source == "")
+					source = source640dpi;
+				if (!source || source == "")
+					source = source160dpi;
+				if (!source || source == "")
+					source = source120dpi;
+				break;
+			case DPIClassification.DPI_160:
+				source = source160dpi;
+				if (!source || source == "")
+					source = source240dpi;
+				if (!source || source == "")
+					source = source320dpi;
+				if (!source || source == "")
+					source = source480dpi;
+				if (!source || source == "")
+					source = source640dpi;
+				if (!source || source == "")
+					source = source120dpi;
+				break;
+			case DPIClassification.DPI_120:
+				source = source120dpi;
+				if (!source || source == "")
+					source = source160dpi;
+				if (!source || source == "")
+					source = source240dpi;
+				if (!source || source == "")
+					source = source320dpi;
+				if (!source || source == "")
+					source = source480dpi;
+				if (!source || source == "")
+					source = source640dpi;
+				break;
         }
         return source;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18946
Author:   dloverin@adobe.com
Date:     2010-12-02T13:13:37.605831Z

Log Message:
-----------
Run a Spark WindowedApplication with "Spark Only" libraries

There are two parts to the fix:

1.      WindowedApplication: Soft link to mx.controls.HTML. Flash Builder and others who want View Source functionality in AIR applications must compile with “-includes mx.controls:HTML”.
2.      Moved IMenuDataDescriptor.as from mx.swc back to framework.swc.

QE notes: None.
Doc notes: None.
Bugs: SDK-28168
Reviewer: Corey
Tests run: cyclone by Joan
Is noteworthy for integration: Yes.

Modified Paths:
--------------
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/menuClasses/IMenuDataDescriptor.as" copyfrom-rev="18481" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/menuClasses/IMenuDataDescriptor.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/menuClasses/IMenuDataDescriptor.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/menuClasses</path>
<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/framework/src/FrameworkClasses.as</path>

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

--- frameworks/projects/framework/src/FrameworkClasses.as
+++ frameworks/projects/framework/src/FrameworkClasses.as
@@ -47,6 +47,7 @@
 	import mx.controls.ButtonLabelPlacement; ButtonLabelPlacement;
     import mx.controls.MovieClipSWFLoader; MovieClipSWFLoader;
 	import mx.controls.colorPickerClasses.WebSafePalette; WebSafePalette;
+	import mx.controls.menuClasses.IMenuDataDescriptor; IMenuDataDescriptor;
 	import mx.controls.listClasses.IDropInListItemRenderer; IDropInListItemRenderer;
 	import mx.controls.listClasses.IListItemRenderer; IListItemRenderer;
 	import mx.core.BitmapAsset; BitmapAsset;


Transferred from the Adobe Open Source Subversion Repository

Revision: 11171
Author:   egeorgie@adobe.com
Date:     2009-10-26T23:24:13.720443Z

Log Message:
-----------
Add overlay property to GroupBase. Note, names of class and APIs will change, since it's still in review.

QE notes: Ready testing, names will change after the APIs review.
Doc notes: None
Bugs: None
Reviewer: Deepa
Tests run: checkintests, mustella (all gumbo tests)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DisplayPlane.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/OverlayDepth.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.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/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/DisplayPlaneObjectExistenceEvent.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/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/mx/src/mx/containers/ViewStack.as
+++ frameworks/projects/mx/src/mx/containers/ViewStack.as
@@ -308,14 +308,16 @@
     /**
      *  @private
      *  Remember which child has an overlay mask, if any.
-     */
-    private var overlayChild:UIComponent;
+	 *  Used for the dissolve effect.
+     */
+    private var effectOverlayChild:UIComponent;

     /**
      *  @private
      *  Keep track of the overlay's targetArea
-     */
-    private var overlayTargetArea:RoundedRectangle;
+	 *  Used for the dissolve effect.
+     */
+    private var effectOverlayTargetArea:RoundedRectangle;

     /**
      *  @private
@@ -970,18 +972,18 @@
         // This is done because it makes accounting a headache.  If there's
         // a legitimate reason why two children both need overlays, this
         // restriction could be relaxed.
-        if (overlayChild)
+        if (effectOverlayChild)
             removeOverlay();

         // Remember which child has an overlay, so that we don't inadvertently
         // create an overlay on one child and later try to remove the overlay
         // of another child. (bug 100731)
-        overlayChild = (selectedChild as UIComponent);
-        if (!overlayChild)
+        effectOverlayChild = (selectedChild as UIComponent);
+        if (!effectOverlayChild)
             return;

-        overlayColor = color;
-        overlayTargetArea = targetArea;
+        effectOverlayColor = color;
+        effectOverlayTargetArea = targetArea;

         if (selectedChild &&
             selectedChild.deferredContentCreated == false)
@@ -1002,10 +1004,10 @@
      */
     override mx_internal function removeOverlay():void
     {
-        if (overlayChild)
-        {
-            UIComponent(overlayChild).removeOverlay();
-            overlayChild = null;
+        if (effectOverlayChild)
+        {
+            UIComponent(effectOverlayChild).removeOverlay();
+            effectOverlayChild = null;
         }
     }

@@ -1303,10 +1305,10 @@
      */
     private function initializeHandler(event:FlexEvent):void
     {
-        overlayChild.removeEventListener(FlexEvent.INITIALIZE,
+        effectOverlayChild.removeEventListener(FlexEvent.INITIALIZE,
                                          initializeHandler);

-        UIComponent(overlayChild).addOverlay(overlayColor, overlayTargetArea);
+        UIComponent(effectOverlayChild).addOverlay(effectOverlayColor, effectOverlayTargetArea);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 7866
Author:   jszeto@adobe.com
Date:     2009-06-15T23:11:45.128254Z

Log Message:
-----------
GraphicElement PARB Changes

- Deprecated mx.graphics.RoundedRectangle
- Added mx.geom.RoundedRectangle
- Removed GraphicElement.getStroke
- Moved code from GraphicElement.getStrokeExtents into StrokedElement.
- Updated the dependency checker

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/StrokedElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/RoundedRectangle.as</path>
<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/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RoundedRectangle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</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/effects/effectClasses/DissolveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Dissolve.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/core/Container.as</path>

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

--- frameworks/projects/mx/src/mx/containers/ViewStack.as
+++ frameworks/projects/mx/src/mx/containers/ViewStack.as
@@ -31,7 +31,7 @@
 import mx.events.EffectEvent;
 import mx.events.FlexEvent;
 import mx.events.IndexChangedEvent;
-import mx.graphics.RoundedRectangle;
+import mx.geom.RoundedRectangle;
 import mx.managers.HistoryManager;

 use namespace mx_internal;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17211
Author:   cframpto@adobe.com
Date:     2010-08-06T15:33:58.540905Z

Log Message:
-----------
The first time the SwatchPanel is displayed, it is added in getDropdown() and its parent is this, which is a ColorPicker.
From then on, if the pop-up was readded its parent was the parent of the ColorPicker, not the ColorPicker.

Since layoutDirection can be set at every level it was not looking at the correct one.  Prior to my bug fix yesterday the pop up code was not looking at layoutDirection so this problem didn’t show.

QE notes:
Doc notes:
Bugs: SDK-27284
Reviewer: Corey
Tests run: checkintests, ColorPicker tests
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ColorPicker.as

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

--- frameworks/projects/mx/src/mx/controls/ColorPicker.as
+++ frameworks/projects/mx/src/mx/controls/ColorPicker.as
@@ -1232,7 +1232,7 @@
             point = localToGlobal(point);

             if (dropdownSwatch.parent == null)
-                PopUpManager.addPopUp(dropdownSwatch, parent, false);
+                PopUpManager.addPopUp(dropdownSwatch, this, false);
             else
                 PopUpManager.bringToFront(dropdownSwatch);


Transferred from the Adobe Open Source Subversion Repository

Revision: 22217
Author:   mhorn@adobe.com
Date:     2011-08-25T18:07:03.696931Z

Log Message:
-----------
minor asdoc change

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/FormHeading.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Form.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ProgressBar.as
+++ frameworks/projects/mx/src/mx/controls/ProgressBar.as
@@ -260,7 +260,7 @@
  * Because this component does not define a skin for the mobile theme, Adobe
  * recommends that you not use it in a mobile application. Alternatively, you
  * can define your own mobile skin for the component. For more information,
- * see Spark Skinning.
+ * see Basics of mobile skinning.
  */
 [DiscouragedForProfile("mobileDevice")]


Prevent exception in Movie.getBounds when a layer has been reparented

This deserves more thought

--- runtime/src/main/as/flump/display/Movie.as
+++ runtime/src/main/as/flump/display/Movie.as
@@ -392,7 +392,13 @@

         // get bounds from layer contents
         for each (var layer :Layer in _layers) {
-            layer.expandBounds(targetSpace, resultRect);
+            // Ensure that the layer has been fiddled with. If someone has reparented
+            // the layer's currentDisplay, we can't get its bounds without running
+            // the risk of an exception being thrown.
+            // TODO: emit a warning in this circumstance?
+            if (layer._currentDisplay.parent == this) {
+                layer.expandBounds(targetSpace, resultRect);
+            }
         }

         // if no contents exist, simply include this movie's position in the bounds


Transferred from the Adobe Open Source Subversion Repository

Revision: 21296
Author:   chiedozi@adobe.com
Date:     2011-05-26T02:07:20.011518Z

Log Message:
-----------
ViewNavigatorApplicationBase applications will now persist data when its nativeApplication receives the EXITING and DEACTIVATE event

QE notes:
Doc notes:
Bugs: SDK-30383
Reviewer: Kevin Lin
Tests run: mobile-checkintests
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
@@ -364,6 +364,17 @@
      */
     protected function invokeHandler(event:InvokeEvent):void
     {
+        addDeactivateListeners();
+    }
+
+
+    /**
+     *  @private
+     *  Adds the deactivate handlers when the application is reactivated.
+     */
+    private function activateHandler(event:Event):void
+    {
+        addDeactivateListeners();
     }

     /**
@@ -380,6 +391,12 @@
      */
     protected function deactivateHandler(event:Event):void
     {
+        // When the deactiveHandler is called, the application is being
+        // suspended or exited.  Remove the deactivate listeners so that
+        // we don't persist data multiple times in the case a deactivate
+        // and exiting event are received in the same sequence
+        removeDeactivateListeners();
+
         // Check if the application state should be persisted
         if (persistNavigatorState)
         {
@@ -509,25 +526,47 @@
         // Add device event listeners
         systemManager.stage.addEventListener(KeyboardEvent.KEY_DOWN, deviceKeyDownHandler);
         systemManager.stage.addEventListener(KeyboardEvent.KEY_UP, deviceKeyUpHandler);
-        systemManager.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE,
-            orientationChangeHandler);
-        NativeApplication.nativeApplication.
-            addEventListener(InvokeEvent.INVOKE, invokeHandler);
-
-        // We need to listen to different events on desktop and mobile because
-        // on desktop, the deactivate event is dispatched whenever the window loses
-        // focus.  This could cause persistence to run when the developer doesn't
-        // expect it to on desktop.  So our solution temporarily is to assume that
-        // if the os string contains Windows or Mac, assume we are running on desktop.
+        systemManager.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChangeHandler);
+        NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, invokeHandler);
+        NativeApplication.nativeApplication.addEventListener(Event.ACTIVATE, activateHandler);
+    }
+
+    /**
+     *  @private
+     *  Adds listeners for the deactivate event.
+     */
+    private function addDeactivateListeners():void
+    {
+        // The application listens for deactivate and exiting events to determine when
+        // the persistenceManager should save its state to disk.  When the application
+        // is being simulated in ADL on desktop, we don't want to listen for deactivate
+        // because that event is dispatched whenever the window loses focus.  This
+        // could cause persistence to run when a developer doesn't expect it to.
+        // So the DEACTIVATE event is ignored on desktop machines.
         var os:String = Capabilities.os;

-        // TODO (chiedozi): Try to find a better workaround for this
-        if (os.indexOf("Windows") != -1 || os.indexOf("Mac OS") != -1)
-            NativeApplication.nativeApplication.
-                addEventListener(Event.EXITING, deactivateHandler);
-        else
-            NativeApplication.nativeApplication.
-                addEventListener(Event.DEACTIVATE, deactivateHandler);
+        // TODO (chiedozi): If the framework ever supports Windows Mobile, we'll need to update this check.
+        var runningOnDesktop:Boolean = (os.indexOf("Windows") != -1 || os.indexOf("Mac OS") != -1);
+        if (!runningOnDesktop)
+            NativeApplication.nativeApplication.addEventListener(Event.DEACTIVATE, deactivateHandler);
+
+        NativeApplication.nativeApplication.addEventListener(Event.EXITING, deactivateHandler);
+    }
+
+    /**
+     *  @private
+     *  Remove listeners for the deactivate and exiting events.
+     */
+    private function removeDeactivateListeners():void
+    {
+        var os:String = Capabilities.os;
+
+        // TODO (chiedozi): If the framework ever supports Windows Mobile, we'll need to update this check.
+        var runningOnDesktop:Boolean = (os.indexOf("Windows") != -1 || os.indexOf("Mac OS") != -1);
+        if (!runningOnDesktop)
+            NativeApplication.nativeApplication.removeEventListener(Event.DEACTIVATE, deactivateHandler);
+
+        NativeApplication.nativeApplication.removeEventListener(Event.EXITING, deactivateHandler);
     }

     /**


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

--- frameworks/projects/automation/src/mx/automation/delegates/controls/TileListItemRendererAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/controls/TileListItemRendererAutomationImpl.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.automation.delegates.controls
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 10872
Author:   cframpto@adobe.com
Date:     2009-10-05T19:39:47.041984Z

Log Message:
-----------
Most changes already approved by PARB and a few are pending.  Given the two reviewers are at MAX and then there is a shutdown week we decided to take a chance that these changes will actually stick.

TLFText.css -> MXFTEText.css
TLFTextField -> FTETextField
UITLFTextField -> UIFTETextField
TLFDataGridItemRenderer -> FTEDataGridItemRenderer
TLFTextInput -> MXFTETextInput

UITextFormat.useTLF -> UITextFormat.useFTE

QE notes:
Doc notes:
Bugs: SDK-22909
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/TextStyles.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/spark/src/SparkClasses.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/MXFTETextInput.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/TLFTextField.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/TLFDataGridItemRenderer.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.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/framework/src/mx/core/TextFieldFactory.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/TLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/CSSTextLayoutFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/TLFDataGridItemRenderer.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/core/ITextFieldFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/TLFText.css" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/MXFTEText.css</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/TLFText.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/SparkClasses.as
+++ frameworks/projects/spark/src/SparkClasses.as
@@ -23,9 +23,9 @@
  *  For example, Button does not have a reference to ButtonSkin,
  *  but ButtonSkin needs to be in framework.swc along with Button.
  */
-import mx.controls.dataGridClasses.TLFDataGridItemRenderer; TLFDataGridItemRenderer;
-import mx.controls.TLFTextInput; TLFTextInput;
-import mx.core.UITLFTextField; UITLFTextField;
+import mx.controls.dataGridClasses.FTEDataGridItemRenderer; FTEDataGridItemRenderer;
+import mx.controls.MXFTETextInput; MXFTETextInput;
+import mx.core.UIFTETextField; UIFTETextField;
 import spark.core.SpriteVisualElement; SpriteVisualElement;
 import spark.skins.spark.ApplicationSkin; ApplicationSkin;
 import spark.skins.spark.BorderSkin; BorderSkin;


fixed bug where table info wasn't getting updated

--- WeaveAdmin/src/weave/services/EntityCache.as
+++ WeaveAdmin/src/weave/services/EntityCache.as
@@ -114,8 +114,12 @@

 		private function handleRemoveEntities(event:ResultEvent, token:Object):void
 		{
+			callbacks.delayCallbacks();
+
 			for each (var id:int in event.result as Array)
 				invalidate(id, true);
+
+			callbacks.resumeCallbacks();
 		}

         private function getEntityHandler(event:ResultEvent, token:Object):void
@@ -127,6 +131,13 @@
 				entity.copyFromResult(result);
 	            cache_entity[id] = entity;

+				var tableInfo:EntityTableInfo = _dataTableLookup[id];
+				if (tableInfo)
+				{
+					tableInfo.title = entity.publicMetadata['title'];
+					tableInfo.numChildren = entity.childIds.length;
+				}
+
 				// cache child-to-parent mappings
 				for each (var childId:int in entity.childIds)
 					d2d_child_parent.set(childId, id, true);


Transferred from the Adobe Open Source Subversion Repository

Revision: 10898
Author:   rfrishbe@adobe.com
Date:     2009-10-06T20:54:04.699354Z

Log Message:
-----------
Fix for a bug: After playing a hide effect, a window wouldn't be visible again.

The issue here is that all effects that occur because of HIDE end up calling setVisible() (see EffectManager.effectEndHandler).  Window/WindowedApplication was basically left with two concepts of setVisible...the displayObject one and the native application one, and they were out of synch.  So setting visible=true on the window wasn’t calling setVisible(true) which controls the display object visibility.  Now instead of doing our work in the visible setter, we override setVisible() and do it in there.

QE notes: -
Doc notes: -
Bugs: SDK-23263
Reviewer: Darrell
Tests run: checkintests, Rob ran mustella window/windowedapplication
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.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/airframework/src/mx/core/WindowedApplication.as</path>

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

--- frameworks/projects/airframework/src/mx/core/WindowedApplication.as
+++ frameworks/projects/airframework/src/mx/core/WindowedApplication.as
@@ -1055,37 +1055,41 @@
      */
     override public function set visible(value:Boolean):void
     {
-        if (!nativeWindow)
+        setVisible(value);
+    }
+
+    /**
+     *  @private
+     *  We override setVisible because there's the flash display object concept
+     *  of visibility and also the nativeWindow concept of visibility.
+     */
+    override public function setVisible(value:Boolean,
+                                        noEvent:Boolean = false):void
+    {
+        // first handle the native window stuff
+        if (!_nativeWindow)
         {
             _nativeWindowVisible = value;
             invalidateProperties();
         }
-        else
-        {
-            if (!nativeWindow.closed)
+        else if (!_nativeWindow.closed)
+        {
+            if (value)
             {
-                var e:FlexEvent;
-                if (value)
-                {
-                    e = new FlexEvent(FlexEvent.SHOW);
+                _nativeWindow.visible = value;
+            }
+            else
+            {
+                // in the conditions below we will play an effect
+                if (getStyle("hideEffect") && initialized && $visible != value)
+                    addEventListener(EffectEvent.EFFECT_END, hideEffectEndHandler);
+                else
                     _nativeWindow.visible = value;
-                    dispatchEvent(e);
-                }
-                else
-                {
-                    e = new FlexEvent(FlexEvent.HIDE);
-                    if (getStyle("hideEffect"))
-                    {
-                        addEventListener(EffectEvent.EFFECT_END, hideEffectEndHandler);
-                    }
-                    else
-                    {
-                        _nativeWindow.visible = value;
-                    }
-                    dispatchEvent(e);
-                }
-            }
-        }
+            }
+        }
+
+        // now call super.setVisible
+        super.setVisible(value, noEvent);
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 14728
Author:   cframpto@adobe.com
Date:     2010-03-12T14:44:40.762849Z

Log Message:
-----------
Merge 14727 from 4.x  SDK-25829, SDK-25735.

Add missing selectors for air in MXFTEText.css.  layoutDirection=rtl didn't work in WindowedApplicatin since it was using UIComponent's internal width variable rather than using the setter which applies the mirroring transform.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/MXFTEText.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>

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

--- frameworks/projects/airframework/src/mx/core/WindowedApplication.as
+++ frameworks/projects/airframework/src/mx/core/WindowedApplication.as
@@ -836,7 +836,7 @@

         // the heightChanged event is dispatched in commitProperties instead of
         // here because it can change based on user-interaction with the window
-        // size and _height is set in there so don't want to prematurely
+        // size and super.height is set in there so don't want to prematurely
         // dispatch here yet
     }

@@ -1131,7 +1131,7 @@

         // the widthChanged event is dispatched in commitProperties instead of
         // here because it can change based on user-interaction with the window
-        // size and _width is set in there so don't want to prematurely
+        // size and super.width is set in there so don't want to prematurely
         // dispatch here yet
      }

@@ -2302,24 +2302,16 @@
                 systemChrome == NativeWindowSystemChrome.STANDARD)
                 nativeWindow.height = chromeHeight() + _bounds.height;

-            systemManager.stage.stageWidth = _width = _bounds.width;
-            systemManager.stage.stageHeight = _height =  _bounds.height;
+            systemManager.stage.stageWidth = super.width = _bounds.width;
+            systemManager.stage.stageHeight = super.height =  _bounds.height;
             boundsChanged = false;
-
-            // don't know whether height or width changed
-            dispatchEvent(new Event("widthChanged"));
-            dispatchEvent(new Event("heightChanged"));
         }

         if (windowBoundsChanged)
         {
-            _bounds.width = _width = systemManager.stage.stageWidth;
-            _bounds.height = _height = systemManager.stage.stageHeight;
+            _bounds.width = super.width = systemManager.stage.stageWidth;
+            _bounds.height = super.height = systemManager.stage.stageHeight;
             windowBoundsChanged = false;
-
-            // don't know whether height or width changed
-            dispatchEvent(new Event("widthChanged"));
-            dispatchEvent(new Event("heightChanged"));
         }

         if (menuChanged && !nativeWindow.closed)


* 优化了 AttackState 的微操

* 优化了 AttackState 的微操

--- age/src/age/data/objectStates/AttackState.as
+++ age/src/age/data/objectStates/AttackState.as
@@ -1,6 +1,7 @@
 package age.data.objectStates
 {
 	import age.data.ObjectInfo;
+	import age.renderers.Direction;

 	/**
 	 * 普攻状态，根据参数可以设置为普攻的第几下
@@ -75,6 +76,48 @@
 			info.actionName = ACTION_NAME_PREFIX + index;
 			info.isLoop = false;
 			info.onLastFrame.addOnce(onLastFrame);
+			info.onCurrentFrameChange.addOnce(onCurrentFrameChange);
+
+			// 攻击中可以移动的判定
+			if (info.direction & Direction.RIGHT)
+			{
+				if (direction & Direction.RIGHT)
+				{
+					moveSpeed = 300;
+				}
+				else if (direction & Direction.LEFT)
+				{
+					moveSpeed = 0;
+				}
+				else
+				{
+					moveSpeed = 150;
+				}
+			}
+			else if (info.direction & Direction.LEFT)
+			{
+				if (direction & Direction.LEFT)
+				{
+					moveSpeed = -300;
+				}
+				else if (direction & Direction.RIGHT)
+				{
+					moveSpeed = 0;
+				}
+				else
+				{
+					moveSpeed = -150;
+				}
+			}
+		}
+
+		/**
+		 * 此处判断第一个判定帧出现后，向前移动一定距离
+		 *
+		 */
+		private function onCurrentFrameChange(info:ObjectInfo):void
+		{
+			info.velocity.x = moveSpeed;
 		}

 		/**
@@ -102,6 +145,7 @@
 			index = 0;
 			isContinue = false;
 			info.onLastFrame.remove(onLastFrame);
+			info.onCurrentFrameChange.remove(onCurrentFrameChange);
 		}
 	}
 }


Logging varagification, associated stack traces.

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

--- src/as/com/threerings/presents/dobj/DObject.as
+++ src/as/com/threerings/presents/dobj/DObject.as
@@ -83,9 +83,8 @@
             _listeners = [ ];

         } else if (_listeners.indexOf(listener) != -1) {
-            log.warning("Refusing repeat listener registration " +
-                "[dobj=" + which() + ", list=" + listener + "].");
-            log.logStackTrace(new Error());
+            log.warning("Refusing repeat listener registration",
+                "dobj", which(), "list", listener, new Error());
             return;
         }
         _listeners.push(listener);
@@ -121,9 +120,8 @@
                     (listener as EventListener).eventReceived(event);
                 }
             } catch (e :Error) {
-                log.warning("Listener choked during notification " +
-                    "[list=" + listener + ", event=" + event + "].");
-                log.logStackTrace(e);
+                log.warning("Listener choked during notification",
+                    "list", listener, "event", event, e);
             }
         }
     }
@@ -149,9 +147,8 @@
             _omgr.postEvent(event);

         } else {
-            log.warning("Unable to post event, object has no omgr " +
-                "[oid=" + getOid() + ", class=" + ClassUtil.getClassName(this) +
-                ", event=" + event + "].");
+            log.warning("Unable to post event, object has no omgr",
+                "oid", getOid(), "class", ClassUtil.getClassName(this), "event", event);
         }
     }

@@ -286,7 +283,7 @@
     {
         // sanity check
         if (_tcount != 0) {
-            log.warning("Transaction cleared with non-zero nesting count [dobj=" + this + "].");
+            log.warning("Transaction cleared with non-zero nesting count", "dobj", this);
             _tcount = 0;
         }


Trimming whitespace on key column

Trimming whitespace on key column

Change-Id: I40890d01fcc1e239835986faf7849f0a50722eeb

--- WeaveData/src/weave/data/DataSources/DBFDataSource.as
+++ WeaveData/src/weave/data/DataSources/DBFDataSource.as
@@ -20,6 +20,7 @@

 	import mx.rpc.events.FaultEvent;
 	import mx.rpc.events.ResultEvent;
+	import mx.utils.StringUtil;

 	import org.vanrijkom.dbf.DbfField;
 	import org.vanrijkom.dbf.DbfHeader;
@@ -270,7 +271,7 @@
 			}
 			proxyColumn.setMetadata(metadata);

-			var keysVector:Vector.<IQualifiedKey> = Vector.<IQualifiedKey>(WeaveAPI.QKeyManager.getQKeys(getKeyType(), getColumnValues(keyColName.value)));
+			var keysVector:Vector.<IQualifiedKey> = Vector.<IQualifiedKey>(WeaveAPI.QKeyManager.getQKeys(getKeyType(), getColumnValues(keyColName.value, true)));
 			var data:Array = getColumnValues(columnName);

 			var newColumn:IAttributeColumn;
@@ -348,7 +349,7 @@
 			}
 			return null;
 		}
-		private function getColumnValues(columnName:String):Array
+		private function getColumnValues(columnName:String, trimStrings:Boolean = false):Array
 		{
 			var values:Array = [];
 			if (columnName == THE_GEOM_COLUMN)
@@ -363,7 +364,10 @@
 				if (columnName)
 				{
 					record = DbfTools.getRecord(dbfData, dbfHeader, i);
-					values.push( record.values[columnName] );
+					var value:* = record.values[columnName];
+					if (trimStrings)
+						value = StringUtil.trim(value);
+					values.push(value);
 				}
 				else
 					values.push(String(i + 1));


Removed unused code

Removed unused code

--- lms/static/js/verify_student/CameraCapture.as
+++ lms/static/js/verify_student/CameraCapture.as
@@ -22,7 +22,6 @@
 	import flash.display.PNGEncoderOptions;
 	import flash.display.Sprite;
 	import flash.events.Event;
-	import flash.events.StatusEvent;
 	import flash.external.ExternalInterface;
 	import flash.geom.Rectangle;
 	import flash.media.Camera;


Added private extension support to vCards.

--- src/org/igniterealtime/xiff/vcard/VCard.as
+++ src/org/igniterealtime/xiff/vcard/VCard.as
@@ -26,6 +26,7 @@
 {
 	import flash.events.EventDispatcher;
 	import flash.events.TimerEvent;
+	import flash.utils.Dictionary;
 	import flash.utils.Timer;
 	import flash.xml.XMLDocument;

@@ -250,7 +251,17 @@
 		/**
 		 * @private
 		 */
+		private var extensionNames:Array;
+
+		/**
+		 * @private
+		 */
 		private var _loaded:Boolean;
+
+		/**
+		 * @private
+		 */
+		private var _extensions:Dictionary;

 		/**
 		 * Don't call directly, use the static method getVCard() and add a callback.
@@ -378,6 +389,9 @@
 			}

 			version = vCardNode.@version;
+
+			extensionNames = [];
+			_extensions = new Dictionary();

 			var nodes:XMLList = vCardNode.children();

@@ -630,7 +644,9 @@
 						break;

 					default:
-						trace( "handleVCard. unhandled case child.name(): " + child.name() );
+						trace( "handleVCard. Private extension: " + child.name() );
+						extensionNames.push( child.localName() );
+						extensions[ child.localName() ] = child.text().toString();
 						break;
 				}
 			}
@@ -1160,6 +1176,15 @@
 				vcardExtNode.DESC = description;
 			}

+			//X
+			if ( extensionNames.length > 0 )
+			{
+				for each( var xName:String in extensionNames )
+				{
+					vcardExtNode[ xName ] = _extensions[ xName ];
+				}
+			}
+
 			var xmlDoc:XMLDocument = new XMLDocument( vcardExtNode.toString() );
 			vcardExt.setNode( xmlDoc.firstChild );

@@ -1194,5 +1219,13 @@
 		{
 			return _loaded;
 		}
+
+		/**
+		 * Map of the vCard's private extensions.
+		 */
+		public function get extensions():Dictionary
+		{
+			return _extensions;
+		}
 	}
 }


Should handle subscription of from as well as none when checking for "pending" according to RFC 3921, 8.2.

--- src/org/jivesoftware/xiff/im/Roster.as
+++ src/org/jivesoftware/xiff/im/Roster.as
@@ -491,7 +491,7 @@
 										// Add this item to the roster if it's not there and if the subscription type is not equal to 'remove' or 'none'
 										addRosterItem( item.jid, item.name, RosterExtension.SHOW_UNAVAILABLE, "Offline", group, item.subscription.toLowerCase(), item.askType != null ? item.askType.toLowerCase() : RosterExtension.ASK_TYPE_NONE );
 									}
-									else if( item.subscription.toLowerCase() == RosterExtension.SUBSCRIBE_TYPE_NONE && item.askType == RosterExtension.ASK_TYPE_SUBSCRIBE ) {
+									else if( (item.subscription.toLowerCase() == RosterExtension.SUBSCRIBE_TYPE_NONE || item.subscription.toLowerCase() == RosterExtension.SUBSCRIBE_TYPE_FROM) && item.askType == RosterExtension.ASK_TYPE_SUBSCRIBE ) {
 										// A contact was added to the roster, and its authorization is still pending.
 										addRosterItem( item.jid, item.name, RosterExtension.SHOW_PENDING, "Pending", group, item.subscription.toLowerCase(), item.askType != null ? item.askType.toLowerCase() : RosterExtension.ASK_TYPE_NONE );
 									}


Sleep .5.

Sleep .5.

	* build-aux/urbi.as (spawn_urbi_server): Sleep by steps of .5s
	instead of 1s.

--- build-aux/urbi.as
+++ build-aux/urbi.as
@@ -160,15 +160,15 @@

   # Wait for the port file to be completed: it must have one full line
   # (with \n to be sure it is complete).
-  local i=0
-  local imax=10
+  local t=0
+  local tmax=8
+  local dt=.5
   while test ! -f server.port || test $(wc -l <server.port) = 0;
   do
-    if test $i = $imax; then
-      fatal "$URBI_SERVER did not issue port in server.port in ${imax}s"
-    fi
-    sleep 1
-    i=$(($i + 1))
+    test $t -lt $tmax ||
+      fatal "$URBI_SERVER did not issue port in server.port in ${tmax}s"
+    sleep $dt
+    t=$(($t + $dt))
   done
 }
 ])