Transferred from the Adobe Open Source Subversion Repository

Revision: 20374
Author:   smgilson@adobe.com
Date:     2011-02-18T14:57:58.468559Z

Log Message:
-----------
ASdoc leanup - fix broken links, update for event name changes, remove FlashPlayer version tags.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers/PersistenceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewReturnObject.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/TextInputOperation.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers/IPersistenceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/StyleableTextFieldTextStyles.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
@@ -1114,7 +1114,7 @@
      *  @param element The element that has changed size.
      *
      *  @langversion 3.0
-     *  @playerversion AIR 2.0
+     *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
     public function invalidateGraphicElementSharing(element:IGraphicElement):void
@@ -1140,7 +1140,7 @@
      *  @param element The element that has changed.
      *
      *  @langversion 3.0
-     *  @playerversion AIR 2.0
+     *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
     public function invalidateGraphicElementProperties(element:IGraphicElement):void
@@ -1164,7 +1164,7 @@
      *  @param element The element that has changed size.
      *
      *  @langversion 3.0
-     *  @playerversion AIR 2.0
+     *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
     public function invalidateGraphicElementSize(element:IGraphicElement):void
@@ -1188,7 +1188,7 @@
      *  @param element The element that has changed.
      *
      *  @langversion 3.0
-     *  @playerversion AIR 2.0
+     *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
     public function invalidateGraphicElementDisplayList(element:IGraphicElement):void


Transferred from the Adobe Open Source Subversion Repository

Revision: 4611
Author:   chaase@adobe.com
Date:     2009-01-22T00:30:21.783682Z

Log Message:
-----------
Various bug fixes in effects, mostly in the area of seeking, auto-reversing, and shader transitions.

QE Notes: None
Doc Notes: None
Bugs: sdk-17783, sdk-18767, sdk-18759, sdk-18461, sdk-18309, sdk-18013, sdk-18688
Reviewer: Jason
Tests: checkintests, Mustella: Effects, gumbo/effects, ListDataEffects

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/UnconstrainItemAction.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/framework/src/mx/effects/AddChildAction.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/Parallel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/SetPropertyAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/RemoveChildAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/AddItemAction.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/SetStyleAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/RemoveItemAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as
@@ -355,9 +355,9 @@
             setupStyleMapEntry(property);

             // Set any NaN from/to values to the current values in the target
-            if (!isNaN(propValues[0]))
+            if (!isNaN(propValues[0]) && propValues[0] != null)
                 fromValue = propValues[0];
-            if (!isNaN(propValues[1]))
+            if (!isNaN(propValues[1]) && propValues[1] != null)
                 toValue = propValues[1];
             else if (propertyChanges &&
                 propertyChanges.end[property] !== undefined)


Fix texture exporting for scales > 1

Fix texture exporting for scales > 1

Though really, we should never be scaling beyond 1...

--- exporter/src/main/as/flump/SwfTexture.as
+++ exporter/src/main/as/flump/SwfTexture.as
@@ -76,8 +76,8 @@
     public function toBitmapData () :BitmapData {
         const holder :Sprite = new Sprite();

-        if (scale < 1) {
-            // for downlscaling, render at normal size first, then scale to get the
+        if (scale != 1) {
+            // for down or up-scaling, render at normal size first, then scale to get the
             // benefit of bitmap smoothing. BitmapData.draw smoothing only works
             // when the source is itself a BitmapData object.
             const fullsizeOffset :Point = getOffset(_disp, 1);


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

--- frameworks/projects/mx/src/mx/effects/SetPropertyAction.as
+++ frameworks/projects/mx/src/mx/effects/SetPropertyAction.as
@@ -0,0 +1,135 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.effects
+{
+
+import mx.effects.effectClasses.SetPropertyActionInstance;
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="duration", kind="property")]
+
+/**
+ *  The SetPropertyAction class defines an action effect that corresponds
+ *  to the SetProperty property of a view state definition.
+ *  You use a SetPropertyAction effect within a transition definition
+ *  to control when the view state change defined by a
+ *  SetProperty property occurs during the transition.
+ *
+ *  @mxml
+ *
+ *
The <mx:SetPropertyAction> tag
+ *  inherits all of the tag attributes of its superclass,
+ *  and adds the following tag attributes:

+ *
+ *

+ *  <mx:SetPropertyAction
+ *    Properties
+ *    id="ID"
+ *    name=""
+ *    value=""
+ *  />
+ *

+ *
+ *  @see mx.effects.effectClasses.SetPropertyActionInstance
+ *  @see mx.states.SetProperty
+ *
+ *  @includeExample ../states/examples/TransitionExample.mxml
+ */
+public class SetPropertyAction extends Effect
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param target The Object to animate with this effect.
+	 */
+	public function SetPropertyAction(target:Object = null)
+	{
+		super(target);
+
+		instanceClass = SetPropertyActionInstance;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  name
+	//----------------------------------
+
+	[Inspectable(category="General")]
+
+	/**
+	 *  The name of the property being changed.
+	 *  By default, Flex determines this value from the
+	 *  SetProperty property definition
+	 *  in the view state definition.
+	 */
+	public var name:String;
+
+	//----------------------------------
+	//  value
+	//----------------------------------
+
+	[Inspectable(category="General")]
+
+	/**
+	 *  The new value for the property.
+	 *  By default, Flex determines this value from the
+	 *  SetProperty property definition
+	 *  in the view state definition.
+	 */
+	public var value:*;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function getAffectedProperties():Array /* of String */
+	{
+		return [ name ];
+	}
+
+	/**
+	 *  @private
+	 */
+	override protected function initInstance(instance:IEffectInstance):void
+	{
+		super.initInstance(instance);
+
+		var actionInstance:SetPropertyActionInstance =
+			SetPropertyActionInstance(instance);
+
+		actionInstance.name = name;
+		actionInstance.value = value;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17331
Author:   jasonsj@adobe.com
Date:     2010-08-16T17:37:24.374535Z

Log Message:
-----------
Added DiscouragedForProfile metadata for use with FB mobile projects.

QE notes: DiscouragedForProfile features should now be visible in FB
Doc notes: ASDoc content omitted for DiscouragedForProfile where the boilerplate comment is desired
Bugs:
Reviewer: gruehle
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/FormHeading.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Form.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -63,6 +63,8 @@
 [DefaultProperty("content")]

 [IconFile("RichText.png")]
+
+[DiscouragedForProfile("mobileDevice")]

 /**
  *  RichText is a low-level UIComponent that can display one or more lines


Transferred from the Adobe Open Source Subversion Repository

Revision: 12127
Author:   hmuller@adobe.com
Date:     2009-11-23T23:58:00.001192Z

Log Message:
-----------
Additional min/max Inspectable metadata, mostly for the filter classes.

QE notes:
Doc notes:
Bugs: sdk-24365
Reviewer: Chet, Jason, Ryan
Tests run:
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/filters/BaseDimensionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/filters/BevelFilter.as
+++ frameworks/projects/spark/src/spark/filters/BevelFilter.as
@@ -152,6 +152,8 @@

     private var _angle:Number = 45;

+    [Inspectable(minValue="0.0", maxValue="360.0")]
+
     /**
      *   The angle of the bevel. Valid values are from 0 to 360°.
      *   The angle value represents the angle of the theoretical light source falling on the
@@ -215,6 +217,8 @@

     private var _highlightAlpha:Number = 1.0;

+    [Inspectable(minValue="0.0", maxValue="1.0")]
+
     /**
      *  The alpha transparency value of the highlight color. The value is specified as a normalized
      *  value from 0 to 1. For example, .25 sets a transparency value of 25%.
@@ -273,6 +277,8 @@
     //----------------------------------

     private var _shadowAlpha:Number = 1.0;
+
+    [Inspectable(minValue="0.0", maxValue="1.0")]

     /**
      *  The alpha transparency value of the shadow color. This value is specified as a


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/layouts/BasicLayout.as
+++ frameworks/projects/spark/src/spark/layouts/BasicLayout.as
@@ -16,7 +16,7 @@
 import flash.geom.Rectangle;

 import mx.components.baseClasses.GroupBase;
-import mx.layout.ILayoutItem;
+import mx.layout.ILayoutElement;
 import mx.layout.LayoutBase;

 /**
@@ -32,18 +32,18 @@
     //
     //--------------------------------------------------------------------------

-    private static function constraintsDetermineWidth(layoutItem:ILayoutItem):Boolean
-    {
-        return !isNaN(layoutItem.percentWidth) ||
-               !isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.left)) &&
-               !isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.right));
-    }
-
-    private static function constraintsDetermineHeight(layoutItem:ILayoutItem):Boolean
-    {
-        return !isNaN(layoutItem.percentHeight) ||
-               !isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.top)) &&
-               !isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.bottom));
+    private static function constraintsDetermineWidth(layoutElement:ILayoutElement):Boolean
+    {
+        return !isNaN(layoutElement.percentWidth) ||
+               !isNaN(LayoutElementHelper.parseConstraintValue(layoutElement.left)) &&
+               !isNaN(LayoutElementHelper.parseConstraintValue(layoutElement.right));
+    }
+
+    private static function constraintsDetermineHeight(layoutElement:ILayoutElement):Boolean
+    {
+        return !isNaN(layoutElement.percentHeight) ||
+               !isNaN(LayoutElementHelper.parseConstraintValue(layoutElement.top)) &&
+               !isNaN(LayoutElementHelper.parseConstraintValue(layoutElement.bottom));
     }

     //--------------------------------------------------------------------------
@@ -77,25 +77,25 @@
         var minWidth:Number = 0;
         var minHeight:Number = 0;

-        var count:int = layoutTarget.numLayoutItems;
+        var count:int = layoutTarget.numLayoutElements;
         for (var i:int = 0; i < count; i++)
         {
-            var layoutItem:ILayoutItem = layoutTarget.getLayoutItemAt(i);
-            if (!layoutItem || !layoutItem.includeInLayout)
+            var layoutElement:ILayoutElement = layoutTarget.getLayoutElementAt(i);
+            if (!layoutElement || !layoutElement.includeInLayout)
                 continue;

-            var left:Number      = LayoutItemHelper.parseConstraintValue(layoutItem.left);
-            var right:Number     = LayoutItemHelper.parseConstraintValue(layoutItem.right);
-            var top:Number       = LayoutItemHelper.parseConstraintValue(layoutItem.top);
-            var bottom:Number    = LayoutItemHelper.parseConstraintValue(layoutItem.bottom);
+            var left:Number      = LayoutElementHelper.parseConstraintValue(layoutElement.left);
+            var right:Number     = LayoutElementHelper.parseConstraintValue(layoutElement.right);
+            var top:Number       = LayoutElementHelper.parseConstraintValue(layoutElement.top);
+            var bottom:Number    = LayoutElementHelper.parseConstraintValue(layoutElement.bottom);

             var extX:Number = 0;
             var extY:Number = 0;

             if (isNaN(left) && isNaN(right) &&
-                isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.horizontalCenter)))
-            {
-                extX += layoutItem.actualPosition.x;
+                isNaN(LayoutElementHelper.parseConstraintValue(layoutElement.horizontalCenter)))
+            {
+                extX += layoutElement.getLayoutPositionX();
             }
             else
             {
@@ -104,9 +104,9 @@
             }

             if (isNaN(top) && isNaN(bottom) &&
-                isNaN(LayoutItemHelper.parseConstraintValue(layoutItem.verticalCenter)))
-            {
-                extY += layoutItem.actualPosition.y;
+                isNaN(LayoutElementHelper.parseConstraintValue(layoutElement.verticalCenter)))
+            {
+                extY += layoutElement.getLayoutPositionY();
             }
             else
             {
@@ -114,14 +114,14 @@
                 extY += isNaN(bottom) ? 0 : bottom;
             }

-            width = Math.max(width, extX + layoutItem.preferredSize.x);
-            height = Math.max(height, extY + layoutItem.preferredSize.y);
-
-            var itemMinWidth:Number = constraintsDetermineWidth(layoutItem) ? layoutItem.minSize.x : layoutItem.preferredSize.x;
-            var itemMinHeight:Number = constraintsDetermineHeight(layoutItem) ? layoutItem.minSize.y : layoutItem.preferredSize.y;
-
-            minWidth = Math.max(minWidth, extX + itemMinWidth);
-            minHeight = Math.max(minHeight, extY + itemMinHeight);
+            width = Math.max(width, extX + layoutElement.getPreferredWidth());
+            height = Math.max(height, extY + layoutElement.getPreferredHeight());
+
+            var elementMinWidth:Number = constraintsDetermineWidth(layoutElement) ? layoutElement.getMinWidth() : layoutElement.getPreferredWidth();
+            var elementMinHeight:Number = constraintsDetermineHeight(layoutElement) ? layoutElement.getMinHeight() : layoutElement.getPreferredHeight();
+
+            minWidth = Math.max(minWidth, extX + elementMinWidth);
+            minHeight = Math.max(minHeight, extY + elementMinHeight);
         }

         layoutTarget.measuredWidth = Math.max(width, minWidth);
@@ -134,7 +134,7 @@
     }

     /**
-     *  @return Returns the maximum value for an item's dimension so that the component doesn't
+     *  @return Returns the maximum value for an element's dimension so that the component doesn't
      *  spill out of the container size. Calculations are based on the layout rules.
      *  Pass in unscaledWidth, hCenter, left, right, childX to get a maxWidth value.
      *  Pass in unscaledHeight, vCenter, top, bottom, childY to get a maxHeight value.
@@ -188,28 +188,28 @@
         if (!layoutTarget)
             return;

-        var count:int = layoutTarget.numLayoutItems;
+        var count:int = layoutTarget.numLayoutElements;
         var maxX:Number = 0;
         var maxY:Number = 0;
         for (var i:int = 0; i < count; i++)
         {
-            var layoutItem:ILayoutItem = layoutTarget.getLayoutItemAt(i);
-            if (!layoutItem || !layoutItem.includeInLayout)
+            var layoutElement:ILayoutElement = layoutTarget.getLayoutElementAt(i);
+            if (!layoutElement || !layoutElement.includeInLayout)
                 continue;

-            var hCenter:Number = LayoutItemHelper.parseConstraintValue(layoutItem.horizontalCenter);
-            var vCenter:Number = LayoutItemHelper.parseConstraintValue(layoutItem.verticalCenter);
-            var left:Number    = LayoutItemHelper.parseConstraintValue(layoutItem.left);
-            var right:Number   = LayoutItemHelper.parseConstraintValue(layoutItem.right);
-            var top:Number     = LayoutItemHelper.parseConstraintValue(layoutItem.top);
-            var bottom:Number  = LayoutItemHelper.parseConstraintValue(layoutItem.bottom);
-            var itemMinSize:Point = layoutItem.minSize;
-            var itemMaxSize:Point = layoutItem.maxSize.clone(); // Since we may update it below
-
-            // Remember child position before setting actualSize, since changing the size may
+            var hCenter:Number = LayoutElementHelper.parseConstraintValue(layoutElement.horizontalCenter);
+            var vCenter:Number = LayoutElementHelper.parseConstraintValue(layoutElement.verticalCenter);
+            var left:Number    = LayoutElementHelper.parseConstraintValue(layoutElement.left);
+            var right:Number   = LayoutElementHelper.parseConstraintValue(layoutElement.right);
+            var top:Number     = LayoutElementHelper.parseConstraintValue(layoutElement.top);
+            var bottom:Number  = LayoutElementHelper.parseConstraintValue(layoutElement.bottom);
+            var elementMaxWidth:Number = layoutElement.getMaxWidth();
+            var elementMaxHeight:Number = layoutElement.getMaxHeight();
+
+            // Remember child position before setting layoutSize, since changing the size may
             // change the position.
-            var childX:Number = layoutItem.actualPosition.x;
-            var childY:Number = layoutItem.actualPosition.y;
+            var childX:Number = layoutElement.getLayoutPositionX();
+            var childY:Number = layoutElement.getLayoutPositionY();

             // Calculate size
             var childWidth:Number = NaN;
@@ -219,10 +219,10 @@
             {
                 childWidth = unscaledWidth - right - left;
             }
-            else if (!isNaN(layoutItem.percentWidth))
-            {
-                childWidth = unscaledWidth * Math.min(layoutItem.percentWidth * 0.01, 1);
-                itemMaxSize.x = Math.min(itemMaxSize.x,
+            else if (!isNaN(layoutElement.percentWidth))
+            {
+                childWidth = unscaledWidth * Math.min(layoutElement.percentWidth * 0.01, 1);
+                elementMaxWidth = Math.min(elementMaxWidth,
                     maxSizeToFitIn(unscaledWidth, hCenter, left, right, childX));
             }

@@ -230,50 +230,52 @@
             {
                 childHeight = unscaledHeight - bottom - top;
             }
-            else if (!isNaN(layoutItem.percentHeight))
-            {
-                childHeight = unscaledHeight * Math.min(layoutItem.percentHeight * 0.01, 1);
-                itemMaxSize.y = Math.min(itemMaxSize.y,
+            else if (!isNaN(layoutElement.percentHeight))
+            {
+                childHeight = unscaledHeight * Math.min(layoutElement.percentHeight * 0.01, 1);
+                elementMaxHeight = Math.min(elementMaxHeight,
                     maxSizeToFitIn(unscaledHeight, vCenter, top, bottom, childY));
             }

             // Apply min and max constraints, make sure min is applied last. In the cases
-            // where childWidth and childHeight are NaN, setActualSize will use preferredSize
+            // where childWidth and childHeight are NaN, setLayoutSize will use preferredSize
             // which is already constrained between min and max.
             if (!isNaN(childWidth))
-                childWidth = Math.max(itemMinSize.x, Math.min(itemMaxSize.x, childWidth));
+                childWidth = Math.max(layoutElement.getMinWidth(), Math.min(elementMaxWidth, childWidth));
             if (!isNaN(childHeight))
-                childHeight = Math.max(itemMinSize.y, Math.min(itemMaxSize.y, childHeight));
+                childHeight = Math.max(layoutElement.getMinHeight(), Math.min(elementMaxHeight, childHeight));

             // Set the size.
-            var actualSize:Point = layoutItem.setActualSize(childWidth, childHeight);
+            layoutElement.setLayoutSize(childWidth, childHeight);
+            var elementWidth:Number = layoutElement.getLayoutWidth();
+            var elementHeight:Number = layoutElement.getLayoutHeight();

             // Horizontal position
             if (!isNaN(hCenter))
-                childX = Math.round((unscaledWidth - actualSize.x) / 2 + hCenter);
+                childX = Math.round((unscaledWidth - elementWidth) / 2 + hCenter);
             else if (!isNaN(left))
                 childX = left;
             else if (!isNaN(right))
-                childX = unscaledWidth - actualSize.x - right;
+                childX = unscaledWidth - elementWidth - right;
             else // since setting actual size might have moved the actual position, we need to reset here
-            	childX = layoutItem.actualPosition.x;
+            	childX = layoutElement.getLayoutPositionX();

             // Vertical position
             if (!isNaN(vCenter))
-                childY = Math.round((unscaledHeight - actualSize.y) / 2 + vCenter);
+                childY = Math.round((unscaledHeight - elementHeight) / 2 + vCenter);
             else if (!isNaN(top))
                 childY = top;
             else if (!isNaN(bottom))
-                childY = unscaledHeight - actualSize.y - bottom;
+                childY = unscaledHeight - elementHeight - bottom;
            	else  // since setting actual size might have moved the actual position, we need to reset here
-           		childY = layoutItem.actualPosition.y;
+           		childY = layoutElement.getLayoutPositionY();

             // Set position
-            layoutItem.setActualPosition(childX, childY);
+            layoutElement.setLayoutPosition(childX, childY);

             // update content limits
-            maxX = Math.max(maxX, childX + actualSize.x);
-            maxY = Math.max(maxY, childY + actualSize.y);
+            maxX = Math.max(maxX, childX + elementWidth);
+            maxY = Math.max(maxY, childY + elementHeight);
         }

         layoutTarget.setContentSize(maxX, maxY);


Transferred from the Adobe Open Source Subversion Repository

Revision: 7749
Author:   cframpto@adobe.com
Date:     2009-06-11T16:06:30.291524Z

Log Message:
-----------
- Go back to setting text in the TCM using the component lifecycle rather than in the text setter.
- If inserting text, and either maxChars or displayAsPassword, so we're manipulating the text buffer, have to delete the selected text from the buffer as well as insert the new text into the buffer.

QA Notes: ran mustella tests for gumbo TextArea, TextInput and NumericStepper
Doc Notes:
Bugs: SDK-21619, SDK-21176
Reviewers: Gordon

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -452,6 +452,17 @@

     /**
      *  @private
+     *  True if TextOperationEvent.CHANGE should be dispatched.
+     */
+    private var dispatchChangeEvent:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var textDamaged:Boolean = false;
+
+    /**
+     *  @private
      */
     mx_internal var passwordChar:String = "*";

@@ -482,17 +493,6 @@
      */
     private var errorCaught:Boolean = false;

-    /**
-     *  @private
-     *  If true, the content of the textFlow has changed in some way.  In most
-     *  cases this is the same as damaged.
-     *
-     *  At the end of composition, the change event should be dispatched if it
-     *  wasn't already dispatched one or more times for editing operations.
-     */
-    private var textFlowChanged:Boolean = false;
-
-
     /**
      *  @private
      *  Hold the previous editingMode while using a specific instance manager
@@ -846,6 +846,7 @@
         // Later, after the 'content' has been committed into the TextFlow,
         // getting 'text' will extract the text from the TextFlow.
         _text = null;
+        textDamaged = true;
         textChanged = false;

         _content = value;
@@ -1367,8 +1368,11 @@
      */
     public function get text():String
     {
-        if (!displayAsPassword)
+        if (textDamaged && !displayAsPassword)
+        {
             _text = _textContainerManager.getText("\n");
+            textDamaged = false;
+        }

         return _text;
     }
@@ -1377,11 +1381,12 @@
      *  @private
      */
     public function set text(value:String):void
-    {
-        // Use the setter so _text is refreshed if needed.  This check is
-        // needed to block property binding recursion (set causes change event
-        // which causes binding to fire which repeats the process).
-        if (value == text)
+    {
+        // Text is never null.  null is converted to 0-length string.
+        if (value == null)
+            value = "";
+
+        if (value == _text)
             return;

         // If we have focus, then we need to immediately create a TextFlow so
@@ -1389,12 +1394,19 @@
         // be done without having to mouse click or mouse hover over this field.
         // Normally this is done in our focusIn handler by making sure there
         // is a selection.
-        if (getFocus() == this)
+
+        // If the text has line-ending sequences such as LF or CR+LF,
+        // a TextFlow with multiple paragraph is produced as the 'content'.
+        // Otherwise all of the multi-line text got stuffed into one span in
+        // one paragraph. But when you have a large paragraph
+        // (i.e., a large TextBlock), FTE is slow to break the first
+        // TextLine because it analyzes all of the text first.
+        if (getFocus() == this || textHasLineBreaks(value))
         {
            content = importToFlow(value);
            return;
         }
-
+
         // Setting 'text' temporarily causes 'content' to become null.
         // Later, after the 'text' has been committed into the TextFlow,
         // getting 'content' will return the TextFlow.
@@ -1402,9 +1414,7 @@
         contentChanged = false;

         _text = value;
-
-        // Need to set it right away so that the getter can return it.
-        _textContainerManager.setText(_text);
+        textDamaged = false;

         textChanged = true;

@@ -1518,57 +1528,43 @@
         	selectionFormatsChanged = false;
         }

-        // If the text has line-ending sequences such as LF or CR+LF,
-        // a TextFlow with multiple paragraph is produced as the 'content'.
-        // Otherwise all of the multi-line text got stuffed into one span in
-        // one paragraph. But when you have a large paragraph
-        // (i.e., a large TextBlock), FTE is slow to break the first
-        // TextLine because it analyzes all of the text first.
-        if (textChanged && textHasLineBreaks())
-            content = importToFlow(_text);
-
         if (textChanged)
         {
         	if (debug)
         		trace("setText()");

-            textFlowChanged = true;
-
-            // Handle case where content is intially displayed as password.
-            if (displayAsPassword)
-               displayAsPasswordChanged = true;
-
-
-            // Do not set textChanged to false until the compositionComplete
-            // handler since the CHANGE event for text that is initially set
-            // is a special case since there is no flowOperationEnd event
-            // for this.
+            _textContainerManager.setText(_text);
+
+            dispatchChangeEvent = true;
+
+            textChanged = false;
         }
         else if (contentChanged)
         {
         	var textFlow:TextFlow = createTextFlowFromContent();
-
-        	textFlowChanged = true;

         	if (debug)
         		trace("setTextFlow()");
         	_textContainerManager.setTextFlow(textFlow);

-            // Handle case where content is intially displayed as password.
-        	if (displayAsPassword)
-        	   displayAsPasswordChanged = true;
-
-            // Do not set contentChanged to false until the compositionComplete
-            // handler since the CHANGE event for content that is initially set
-            // is a special case since there is no flowOperationEnd event
-            // for this.
-        }
-
-        // If the text or content changed, there is no selection.  If we already
-        // have focus, set the selection, since we've already executed our
-        // focusIn handler where this is normally done.
-        if (textFlowChanged && getFocus() == this)
-            setSelectionBasedOnScrolling();
+            dispatchChangeEvent = true;
+
+            contentChanged = false;
+        }
+
+        // Text or content changed.
+        if (dispatchChangeEvent)
+        {
+            // Handle case where content is intially displayed as password.
+            if (displayAsPassword)
+               displayAsPasswordChanged = true;
+
+            // If the text or content changed, there is no selection.  If we
+            // already have focus, set the selection, since we've already
+            // executed our focusIn handler where this is normally done.
+            if (getFocus() == this)
+                setSelectionBasedOnScrolling();
+        }

         // If displayAsPassword changed, it only applies to the display,
         // not the underlying text.  Do not mark the textFlow as changed.
@@ -1592,9 +1588,11 @@
             }
             else
             {
+                // Was displayAsPassword.  Now display as plain text.
                 _textContainerManager.setText(_text);
             }

+            textDamaged = false;
             displayAsPasswordChanged = false;
         }

@@ -2488,10 +2486,9 @@
     /**
      *  @private
      */
-    private function textHasLineBreaks():Boolean
-    {
-        return text.indexOf("\n") != -1 ||
-               text.indexOf("\r") != -1;
+    private function textHasLineBreaks(s:String):Boolean
+    {
+        return s.indexOf("\n") != -1 || s.indexOf("\r") != -1;
     }

     /**
@@ -2981,24 +2978,17 @@
     {
         //trace("compositionComplete");

-        // The text flow changed and there wasn't an editing operation
-        // to dispatch the change event so do it here.  This happens if the
-        // text/content is set and there are no additional editing operations.
-        // We will ignore textFlow changes that occur because the editManager is
-        // being hooked up to the textFlow by the TCM.
-        if (textChanged || contentChanged)
-        {
-            if (textFlowChanged)
-            {
-                var newEvent:TextOperationEvent =
-                    new TextOperationEvent(TextOperationEvent.CHANGE);
-                dispatchEvent(newEvent);
-            }
-
-            textChanged = false;
-            contentChanged = false;
-        }
-        textFlowChanged = false;
+        // We need to dispatch a change event and it wasn't already done.
+        // This happens if the text/content is set and there were no additional
+        // editing operations.
+        if (dispatchChangeEvent)
+        {
+            var newEvent:TextOperationEvent =
+                new TextOperationEvent(TextOperationEvent.CHANGE);
+            dispatchEvent(newEvent);
+
+            dispatchChangeEvent = false;
+        }

         var dimensionChanged:Boolean = false;
         var oldContentWidth:Number = _contentWidth;
@@ -3071,10 +3061,8 @@
     {
         //trace("damageHandler", event.damageAbsoluteStart, event.damageLength);

-        // The text flow changed.  It could have been either/or content or
-        // styles within the flow.
-        textFlowChanged = true;
-
+        textDamaged = true;
+
         invalidateDisplayList();
     }

@@ -3176,9 +3164,18 @@
                 }
             }

+            // The text deleted by this operation.  If we're doing our
+            // own manipulation of the textFlow we have to take the deleted
+            // text into account as well as the inserted text.
+            var delSelOp:SelectionState =
+                insertTextOperation.deleteSelectionState;
+
+            var delLen:int = (delSelOp == null) ? 0 :
+                             delSelOp.absoluteEnd - delSelOp.absoluteStart;
+
             if (maxChars != 0)
             {
-                var length1:int = text.length;
+                var length1:int = text.length - delLen;
                 var length2:int = textToInsert.length;
                 if (length1 + length2 > maxChars)
                     textToInsert = textToInsert.substr(0, maxChars - length1);
@@ -3186,8 +3183,18 @@

             if (_displayAsPassword)
             {
+                // Remove deleted text.
+                if (delLen > 0)
+                {
+                    _text = splice(_text, delSelOp.absoluteStart,
+                                   delSelOp.absoluteEnd, "");
+                }
+
+                // Add in the inserted text.
                 _text = splice(_text, insertTextOperation.absoluteStart,
                                insertTextOperation.absoluteEnd, textToInsert);
+
+                // Display the passwordChar rather than the actual text.
                 textToInsert = StringUtil.repeat(passwordChar,
                                                  textToInsert.length);
             }
@@ -3263,7 +3270,7 @@
         newEvent.operation = event.operation;
         dispatchEvent(newEvent);

-        textFlowChanged = false;
+        dispatchChangeEvent = false;
     }

     /**


We now make it a least-recently used map.

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@874 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/whirled/client/SceneDirector.as
+++ src/as/com/threerings/whirled/client/SceneDirector.as
@@ -559,7 +559,7 @@
     protected var _fact :SceneFactory;

     /** A cache of scene model information. */
-    protected var _scache :Map = Maps.newBuilder(int).makeLRI(5).build();
+    protected var _scache :Map = Maps.newBuilder(int).makeLR(5).build();

     /** The display scene object for the scene we currently occupy. */
     protected var _scene :Scene;


Transferred from the Adobe Open Source Subversion Repository

Revision: 19668
Author:   mcho@adobe.com
Date:     2011-01-10T19:06:10.891306Z

Log Message:
-----------
New selection state styling for LabelItemRenderer

QE notes: None
Doc notes: None
Bugs: -
Reviewer: ryan f
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
@@ -185,6 +185,7 @@
  *  @productversion Flex 4.5
  */
 [Style(name="verticalAlign", type="String", enumeration="bottom,middle,top", inherit="no")]
+

 //--------------------------------------
 //  Excluded APIs
@@ -800,15 +801,15 @@
                                       unscaledHeight:Number):void
     {
         // figure out backgroundColor
-        var backgroundColor:uint = 0xFFFFFF;
-        var drawBackground:Boolean = true;
+        var backgroundColor:*;
         var downColor:* = getStyle("downColor");
+		var drawBackground:Boolean = true;

         if (down && downColor !== undefined)
         {
             backgroundColor = downColor;
         }
-        else if (selected)
+		else if (selected)
         {
             backgroundColor = getStyle("selectionColor");
         }
@@ -816,16 +817,16 @@
         {
             backgroundColor = getStyle("rollOverColor");
         }
-        else if (showsCaret)
-        {
-            // FIXME (rfrishbe): should probably be its own distinct color and style
-            // Also, this is touch-specific...should it be called LabelItemRenderer
-            // if it has touch-specific logic in here?  Should we gate it based
-            // on interactionMode?
-            backgroundColor = getStyle("selectionColor");
-        }
-        else
-        {
+		else if (showsCaret)
+		{
+			// FIXME (rfrishbe): should probably be its own distinct color and style
+			// Also, this is touch-specific...should it be called LabelItemRenderer
+			// if it has touch-specific logic in here?  Should we gate it based
+			// on interactionMode?
+			backgroundColor = getStyle("selectionColor");
+		}
+		else
+		{
             var alternatingColors:Array = getStyle("alternatingItemColors");

             if (alternatingColors && alternatingColors.length > 0)
@@ -836,13 +837,11 @@
                 backgroundColor = alternatingColors[itemIndex % alternatingColors.length];
             }
 			else
-			{
-				// don't draw background if it is the contentBackgroundColor. The
-				// list skin handles the background drawing for us.
-				//drawBackground = false;
+			{
+				drawBackground = false;
 			}

-        }
+        }

         // draw backgroundColor
         // the reason why we draw it in the case of drawBackground == 0 is for
@@ -871,31 +870,27 @@
 			graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, matrix);
 			graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
 			graphics.endFill();
-
-			// separator props - dark lines on the top and the bottom
-			topSeparatorColor = 0x000000;
-			topSeparatorAlpha = .3;
-			bottomSeparatorColor = 0x000000;
-			bottomSeparatorAlpha = .3;
 		}
-		else
-		{
-			// default look:  separators are a highlight on the top and
-			// shadow on the bottom
-			topSeparatorColor = 0xFFFFFF;
-			topSeparatorAlpha = .25;
-			bottomSeparatorColor = 0x000000;
-			bottomSeparatorAlpha = .2;
-		}
+
+		// separators are a highlight on the top and shadow on the bottom
+		topSeparatorColor = 0xFFFFFF;
+		topSeparatorAlpha = .3;
+		bottomSeparatorColor = 0x000000;
+		bottomSeparatorAlpha = .3;
+

 		var dataGroup:DataGroup = parent as DataGroup;
 		var isLast:Boolean = (dataGroup && (itemIndex == dataGroup.numElements - 1));

 		// draw separators
-		graphics.beginFill(topSeparatorColor, topSeparatorAlpha);
-		graphics.drawRect(0, 0, unscaledWidth, 1);
-		graphics.endFill();
+		// don't draw top separator for down and selected states
+		if (!(selected || down))
+		{
+			graphics.beginFill(topSeparatorColor, topSeparatorAlpha);
+			graphics.drawRect(0, 0, unscaledWidth, 1);
+			graphics.endFill();
+		}

 		graphics.beginFill(bottomSeparatorColor, bottomSeparatorAlpha);
 		graphics.drawRect(0, unscaledHeight - (isLast ? 0 : 1), unscaledWidth, 1);


Transferred from the Adobe Open Source Subversion Repository

Revision: 13276
Author:   dloverin@adobe.com
Date:     2010-01-05T15:18:31.560408Z

Log Message:
-----------
Min/Max size fixes for AIR Window and WindowedApplication.

AIR won’t allow you to set the min width greater than the current max width (same is true for height). You also can’t set the max width less than the current min width (same is true for height). The code that sets nativeWindow.minSize and nativeWindow.maxSize has been modified to take this into account.

QE notes: None.
Doc notes: None.
Bugs: SDK-24566
Reviewer: Corey
Tests run: checkintests, apollo/spark/components/Window.as, apollo/spark/components/WindowedApplication.as, apollo/Window, apollo/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/airspark/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/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@1250536 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/airspark/src/spark/components/Window.as
+++ frameworks/projects/airspark/src/spark/components/Window.as
@@ -1757,14 +1757,43 @@
         // a "skin was not found" error.
         super.commitProperties();

+        // AIR won't allow you to set the min width greater than the current
+        // max width (same is true for height). You also can't set the max
+        // width less than the current min width (same is true for height).
+        // This makes the updating of the new minSize and maxSize a bit tricky.
+        if (minWidthChanged || minHeightChanged || maxWidthChanged || maxHeightChanged)
+        {
+            var minSize:Point = nativeWindow.minSize;
+            var maxSize:Point = nativeWindow.maxSize;
+            var newMinWidth:Number  = minWidthChanged  ? _minWidth  + chromeWidth()  : minSize.x;
+            var newMinHeight:Number = minHeightChanged ? _minHeight + chromeHeight() : minSize.y;
+            var newMaxWidth:Number  = maxWidthChanged  ? _maxWidth  + chromeWidth()  : maxSize.x;
+            var newMaxHeight:Number = maxHeightChanged ? _maxHeight + chromeHeight() : maxSize.y;
+
+            if (minWidthChanged || minHeightChanged)
+            {
+                // If the new min size is greater than the old max size, then
+                // we need to set the new max size now.
+                if ((maxWidthChanged && newMinWidth > minSize.x) ||
+                    (maxHeightChanged && newMinHeight > minSize.y))
+                {
+                    nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);
+                }
+
+                nativeWindow.minSize = new Point(newMinWidth, newMinHeight);
+            }
+
+            // Set the max width or height if it is not already set. The max
+            // width and height could have been set above when setting minSize
+            // but the max size would have been rejected by AIR if it were less
+            // than the old min size.
+            if (newMaxWidth != maxSize.x || newMaxHeight != maxSize.y)
+                nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);
+        }
+
         // minimum width and height
         if (minWidthChanged || minHeightChanged)
         {
-            var newMinWidth:Number = minWidthChanged ? _minWidth + chromeWidth() : nativeWindow.minSize.x;
-            var newMinHeight:Number = minHeightChanged ? _minHeight + chromeHeight() : nativeWindow.minSize.y;
-
-            nativeWindow.minSize = new Point(newMinWidth, newMinHeight);
-
             if (minWidthChanged)
             {
                 minWidthChanged = false;
@@ -1784,11 +1813,6 @@
         // maximum width and height
         if (maxWidthChanged || maxHeightChanged)
         {
-            var newMaxWidth:Number = maxWidthChanged ? _maxWidth + chromeWidth() : nativeWindow.maxSize.x;
-            var newMaxHeight:Number = maxHeightChanged ? _maxHeight + chromeHeight() : nativeWindow.maxSize.y;
-
-            nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);
-
             if (maxWidthChanged)
             {
                 maxWidthChanged = false;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12457
Author:   smgilson@adobe.com
Date:     2009-12-03T18:13:50.586970Z

Log Message:
-----------
asdoc updates for localization

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

Modified Paths:
--------------
<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/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/AnchorStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.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/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/framework/src/mx/core/ILayoutElement.as
+++ frameworks/projects/framework/src/mx/core/ILayoutElement.as
@@ -32,13 +32,13 @@
      *  The horizontal distance in pixels from the left edge of the component to the
      *  anchor target's left edge.
      *
-     *  By default the anchor target is the the container's content area. In layouts
+     *  By default the anchor target is the container's content area. In layouts
      *  with advanced constraints, the target can be a constraint column.
      *
      *  Setting the property to a number or to a numerical string like "10"
      *  specifies use of the default anchor target.
      *
-     *  To spcify an anchor target, set the property value to a string in the format
+     *  To specify an anchor target, set the property value to a string in the format
      *  "anchorTargetName:value" e.g. "col1:10".
      *
      *  @default null
@@ -59,13 +59,13 @@
      *  The horizontal distance in pixels from the right edge of the component to the
      *  anchor target's right edge.
      *
-     *  By default the anchor target is the the container's content area. In layouts
+     *  By default the anchor target is the container's content area. In layouts
      *  with advanced constraints, the target can be a constraint column.
      *
      *  Setting the property to a number or to a numerical string like "10"
      *  specifies use of the default anchor target.
      *
-     *  To spcify an anchor target, set the property value to a string in the format
+     *  To specify an anchor target, set the property value to a string in the format
      *  "anchorTargetName:value" e.g. "col1:10".
      *
      *  @default null
@@ -86,13 +86,13 @@
      *  The vertical distance in pixels from the top edge of the component to the
      *  anchor target's top edge.
      *
-     *  By default the anchor target is the the container's content area. In layouts
+     *  By default the anchor target is the container's content area. In layouts
      *  with advanced constraints, the target can be a constraint row.
      *
      *  Setting the property to a number or to a numerical string like "10"
      *  specifies use of the default anchor target.
      *
-     *  To spcify an anchor target, set the property value to a string in the format
+     *  To specify an anchor target, set the property value to a string in the format
      *  "anchorTargetName:value" e.g. "row1:10".
      *
      *  @default null
@@ -113,13 +113,13 @@
      *  The vertical distance in pixels from the bottom edge of the component to the
      *  anchor target's bottom edge.
      *
-     *  By default the anchor target is the the container's content area. In layouts
+     *  By default the anchor target is the container's content area. In layouts
      *  with advanced constraints, the target can be a constraint row.
      *
      *  Setting the property to a number or to a numerical string like "10"
      *  specifies use of the default anchor target.
      *
-     *  To spcify an anchor target, set the property value to a string in the format
+     *  To specify an anchor target, set the property value to a string in the format
      *  "anchorTargetName:value" e.g. "row1:10".
      *
      *  @default null
@@ -143,7 +143,7 @@
      *  The default anchor target is the container itself.
      *
      *  In layouts with advanced constraints, the anchor target can be a constraint column.
-     *  Then the content area is the space between the preceeding column
+     *  Then the content area is the space between the preceding column
      *  (or container side) and the target column.
      *
      *  Setting the property to a number or to a numerical string like "10"
@@ -173,7 +173,7 @@
      *  The default anchor target is the container itself.
      *
      *  In layouts with advanced constraints, the anchor target can be a constraint row.
-     *  Then the content area is the space between the preceeding row
+     *  Then the content area is the space between the preceding row
      *  (or container side) and the target row.
      *
      *  Setting the property to a number or to a numerical string like "10"
@@ -200,14 +200,14 @@
      *  The vertical distance in pixels from the anchor target to
      *  the control's baseline position.
      *
-     *  By default the anchor target is the the top edge of the container's
+     *  By default the anchor target is the top edge of the container's
      *  content area. In layouts with advanced constraints, the target can be
      *  a constraint row.
      *
      *  Setting the property to a number or to a numerical string like "10"
      *  specifies use of the default anchor target.
      *
-     *  To spcify an anchor target, set the property value to a string in the format
+     *  To specify an anchor target, set the property value to a string in the format
      *  "anchorTargetName:value" e.g. "row1:10".
      *
      *  @default null
@@ -310,7 +310,7 @@
      *
      *  @param postLayoutTransform When postLayoutTransform is true the method returns
      *  the element's bounding box width.  Bounding box is in element's parent
-     *  coordinate space and is calculated from  the element's perferred size and
+     *  coordinate space and is calculated from  the element's preferred size and
      *  layout transform matrix.
      *
      *  @return Returns the element's preferred width.  Preferred width is
@@ -333,7 +333,7 @@
      *
      *  @param postLayoutTransform When postLayoutTransform is true the method returns
      *  the element's bounding box height.  Bounding box is in element's parent
-     *  coordinate space and is calculated from  the element's perferred size and
+     *  coordinate space and is calculated from  the element's preferred size and
      *  layout transform matrix.
      *
      *  @return Returns the element's preferred height.  Preferred height is
@@ -431,7 +431,7 @@
      *  Returns the x coordinate of the element's bounds at the specified element size.
      *
      *  This method is typically used by layouts during measure() to predict what
-     *  the element position will be, if the element is resized to particular dimesions.
+     *  the element position will be, if the element is resized to particular dimensions.
      *
      *  @param width The element's bounds width, or NaN to use the preferred width.
      *  @param height The element's bounds height, or NaN to use the preferred height.
@@ -456,7 +456,7 @@
      *  Returns the y coordinate of the element's bounds at the specified element size.
      *
      *  This method is typically used by layouts during measure() to predict what
-     *  the element position will be, if the element is resized to particular dimesions.
+     *  the element position will be, if the element is resized to particular dimensions.
      *
      *  @param width The element's bounds width, or NaN to use the preferred width.
      *  @param height The element's bounds height, or NaN to use the preferred height.


Transferred from the Adobe Open Source Subversion Repository

Revision: 3219
Author:   deeptika@adobe.com
Date:     2008-09-16T08:33:39.937798Z

Log Message:
-----------
Checking in support for Network Monitor in rpc.swc

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/DirectHTTPChannel.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/netmon</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/netmon/NetworkMonitor.as</path>

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

--- frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as
+++ frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as
@@ -177,11 +177,15 @@
                 }
                 else
                 {
+               	  //need to monitor right before throwing, otherwise monitor should be last
+			    monitorRpcEvent(event);

                     // last-ditch effort to notify the user that something went wrong
                     throw FaultEvent(event).fault;
                 }
             }
+            monitorRpcEvent(event);
+
         }

     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6442
Author:   dsubrama@adobe.com
Date:     2009-04-30T22:37:48.504610Z

Log Message:
-----------
SDK-20745, SDK-20856

Strict check when determining toString() representation of data items.

Reviewer: Hans
Checkintests: PASS

Modified Paths:
--------------
<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/utils/LabelUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -564,24 +564,15 @@
     }

     /**
-     *  Given a data item, return the String representation
-     *  of the data item that an item renderer displays.
-     *  The String is wirtten to labelText property
-     *  of the item renderer.
+     *  @private
+     *  Given a data item, return the toString() representation
+     *  of the data item for an item renderer to display. Null
+     *  data items return the empty string.
      *
-     *  @param item A data item.
-     *
-     *  @return String representing the text to display for the
-     *  passed in item's renderer.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function itemToLabel(item:Object):String
-    {
-        if (item)
+     */
+    private function itemToLabel(item:Object):String
+    {
+        if (item !== null)
             return item.toString();
         return " ";
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18719
Author:   klin@adobe.com
Date:     2010-11-18T22:06:36.395894Z

Log Message:
-----------
Cleaned up TODOs and fixed some minor bugs.

GridDimensions.as, GridRowNode.as, Grid.as
-renamed insertValuesToVector to insertElementsToVector.
-renamed clear to clearHeights. clearHeights also doesn't reset rowCount anymore.
-optimized finding the max in GridRowNode a little.

GridColumn.as
-Invalidate the grid when headerRenderer changes. Removed the TODOs here because invalidating the Grid will cause IDataGridElements to be invalidated.
-Added Bindable metadata to rendererIsEditable.

(mx) DataGrid.as, FormItem.as, FormHeading.as
-Added Alternative metadata

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridRowNode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/containers/FormItem.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/containers/FormHeading.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as</path>

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

--- frameworks/projects/mx/src/mx/containers/FormItem.as
+++ frameworks/projects/mx/src/mx/containers/FormItem.as
@@ -156,6 +156,8 @@
 //--------------------------------------

 [IconFile("FormItem.png")]
+
+[Alternative(replacement="spark.components.FormItem", since="4.5")]

 /**
  *  The FormItem container defines a label and one or more children


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

--- frameworks/projects/spark/src/spark/effects/Scale.as
+++ frameworks/projects/spark/src/spark/effects/Scale.as
@@ -122,14 +122,14 @@
     //
     //--------------------------------------------------------------------------

-    // TODO: Can we remove this override? It exists only to create animationProperties,
+    // TODO: Can we remove this override? It exists only to create motionPaths,
     // which we should be able to do somewhere else
     /**
      * @private
      */
     override public function createInstance(target:Object = null):IEffectInstance
     {
-        animationProperties = [];
+        motionPaths = [];
         return super.createInstance(target);
     }


Properly passing along db parameter from URL.

--- driver/src/main/flex/org/postgresql/db/ConnectionFactory.as
+++ driver/src/main/flex/org/postgresql/db/ConnectionFactory.as
@@ -60,6 +60,7 @@
                 params[key] = pegasusUrl.parameters[key];
             }
             params.user = user;
+            params.database = pegasusUrl.db;
             var febeConn:FEBEConnection = new FEBEConnection(params, password, brokerFactory);
             var conn:Connection = new Connection(febeConn, new QueryHandlerFactory(_codecFactory));
             return conn;


Transferred from the Adobe Open Source Subversion Repository

Revision: 8679
Author:   jimurphy@adobe.com
Date:     2009-07-20T13:23:31.007823Z

Log Message:
-----------
These are Asdoc edit from 3.x rev 8623.  I somehow missed committing these when they were supposed to be committed during my previous merge.

bug: no
qa: no
doc: no
checkintests: pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/CallResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/XMLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/IResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Producer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as
@@ -32,11 +32,11 @@
     //--------------------------------------------------------------------------

     /**
-     *  Creates an new SecureStreamingHTTPChannel instance.
+     *  Constructor.
      *
-	 *  @param id The id of this Channel.
-	 *
-	 *  @param uri The uri for this Channel.
+     *  @param id The id of this Channel.
+     *
+     *  @param uri The uri for this Channel.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 7252
Author:   hmuller@adobe.com
Date:     2009-05-23T03:58:01.066664Z

Log Message:
-----------
Defend against looping in ScrollerLayout.  Halo Container now ignores cancelled keyboard scrolling events.

QE Notes:
Doc Notes:
Bugs: sdk-21165, sdk-19397, sdk-19738
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as
@@ -49,11 +49,8 @@
      *  The ScrollerSkin's minimum size is only big enough to
      *  acccomodate the visible scrollbars.
      *
-     *  The viewport does not contribute to the minimum size.
-     *
-     *  Note also: at updateDisplayList() time, we honor the vertical
-     *  scrollbar's minimum height, and the horizontal scrollbar's
-     *  minimum width.
+     *  The viewport does not contribute to the minimum size unless its
+     *  explicit size has been set.
      */
     override public function measure():void
     {
@@ -75,27 +72,35 @@
             measuredH += viewportElt.getPreferredBoundsHeight();
         }

-        // TBD: if the viewport's explicitSize is set, then add it to the minW,H
+        // If the viewport's explicit size is set, then
+        // include that in the scroller's minimum size
+        var viewportUIC:IUIComponent = viewport as IUIComponent;
+        var explicitViewportW:Number = viewportUIC ? viewportUIC.explicitWidth : NaN;
+        var explicitViewportH:Number = viewportUIC ? viewportUIC.explicitHeight : NaN;
+        if (!isNaN(explicitViewportW)) minW += explicitViewportW;
+        if (!isNaN(explicitViewportH)) minH += explicitViewportH;

         var hsb:ScrollBar = scroller.horizontalScrollBar;
         var showHSB:Boolean = false;
-        switch(scroller.horizontalScrollPolicy) {
+        switch(scroller.horizontalScrollPolicy)
+        {
             case ScrollPolicy.ON:
                 if (hsb) showHSB = true;
                 break;
             case ScrollPolicy.AUTO:
-                if (hsb) showHSB = hsb.visible;
+                if (hsb) showHSB = hsb.visible;
                 break;
         }

         var vsb:ScrollBar = scroller.verticalScrollBar;
         var showVSB:Boolean = false;
-        switch(scroller.verticalScrollPolicy) {
+        switch(scroller.verticalScrollPolicy)
+        {
            case ScrollPolicy.ON:
                 if (vsb) showVSB = true;
                 break;
             case ScrollPolicy.AUTO:
-                if (vsb) showVSB = vsb.visible;
+                if (vsb) showVSB = vsb.visible;
                 break;
         }

@@ -130,19 +135,22 @@
         g.measuredMinHeight = minH;
     }

+    // Used by updateDisplayList() to prevent looping, see below.
+    private var invalidationCount:int = 0;
+
     /**
      *  @private
      *  Arrange the viewport and scrollbars conventionally within
      *  the specified width and height: vertical scrollbar on the
      *  right, horizontal scrollbar along the bottom.
      *
-     *  In other words, the Scroller's height will not
-     *  shrink below the vertical scrollbar's minimum height, and its
-     *  width will not shrink below the horizontal scrollbar's
-     *  minimum width.
-     *
-     *  The scrollbars are made visible if the viewport's content size is
-     *  bigger than the actual size.
+     *  Scrollbars for which the corresponding scrollPolicy=auto
+     *  are made visible if the viewport's content size is bigger
+     *  than the actual size.   This introduces the possibility of
+     *  validateSize,DisplayList() looping because the measure()
+     *  method computes the size of the viewport and the currently
+     *  visible scrollbars.
+     *
      */
     override public function updateDisplayList(w:Number, h:Number):void
     {
@@ -155,6 +163,11 @@
         var vsb:ScrollBar = scroller.verticalScrollBar;
         var minViewportInset:Number = scroller.minViewportInset;

+        var vsbW:Number = (vsb) ? vsb.getPreferredBoundsWidth() : 0;
+        var hsbH:Number = (hsb) ? hsb.getPreferredBoundsHeight() : 0;
+        var contentW:Number = (viewport) ? viewport.contentWidth : 0;
+        var contentH:Number = (viewport) ? viewport.contentHeight : 0;
+
         var oldShowHSB:Boolean = hsb && hsb.visible;
         var oldShowVSB:Boolean = vsb && vsb.visible;

@@ -164,6 +177,8 @@
         var explicitViewportH:Number = viewportUIC ? viewportUIC.explicitHeight : NaN;

         // Decide which scrollbars will be visible based on the viewport's content size
+        // See the method doc above for more information.
+
         var showHSB:Boolean = false;
         var hAuto:Boolean = false;
         switch(scroller.horizontalScrollPolicy) {
@@ -174,14 +189,13 @@
                 if (hsb && viewport)
                 {
                     hAuto = true;
-                    var contentWidth:Number = viewport.contentWidth;
-                    if (isNaN(explicitViewportW))
-                        showHSB = contentWidth > (w - (minViewportInset * 2));
-                    else
-                        showHSB = contentWidth > explicitViewportW;
+                    var viewportW:Number =
+                        isNaN(explicitViewportW) ? (w - (minViewportInset * 2)) : explicitViewportW;
+                    showHSB = (contentW > viewportW) && (w >= hsb.minWidth);
                 }
                 break;
         }
+
         var showVSB:Boolean = false;
         var vAuto:Boolean = false;
         switch(scroller.verticalScrollPolicy) {
@@ -192,85 +206,77 @@
                 if (vsb && viewport)
                 {
                     vAuto = true;
-                    var contentHeight:Number = viewport.contentHeight;
-                    if (isNaN(explicitViewportH))
-                        showVSB = contentHeight > (h - (minViewportInset * 2));
-                    else
-                        showVSB = contentHeight >  explicitViewportH;
+                    var viewportH:Number =
+                        isNaN(explicitViewportH) ? (h - (minViewportInset * 2)) : explicitViewportH;
+                    showVSB = (contentH > viewportH) && (h >= vsb.minHeight);
                 }
                 break;
         }

         // Shrink the viewport's width,height for the visible scrollbars
-        var viewportH:Number = h - minViewportInset;
-        var hsbH:Number = 0;
-        if (showHSB)
-        {
-            hsbH = hsb.getPreferredBoundsHeight();
-            viewportH -= Math.max(minViewportInset, hsbH);
-        }
-        var viewportW:Number = w - minViewportInset;
-        var vsbW:Number = 0;
-        if (showVSB)
-        {
-            vsbW = vsb.getPreferredBoundsWidth();
-            viewportW -= Math.max(minViewportInset, vsbW);
-        }
+
+        viewportH = h - minViewportInset;
+        if (showHSB) viewportH -= Math.max(minViewportInset, hsbH);
+
+        viewportW = w - minViewportInset;
+        if (showVSB) viewportW -= Math.max(minViewportInset, vsbW);

         // If the scrollBarPolicy is auto, and we're only showing one scrollbar,
         // the viewport may have shrunk enough to require showing the other one.
-        if (showVSB && !showHSB && hAuto && (viewport.contentWidth > viewportW))
-        {
-            showHSB = true;
-            hsbH = hsb.getPreferredBoundsHeight();
+        // We only show the other scrollbar, if there's enough space for it.
+        if (showVSB && !showHSB && hAuto && (contentW > viewportW))
+        {
             viewportH -= Math.max(minViewportInset, hsbH);
-        }
-        else if (!showVSB && showHSB && vAuto && (viewport.contentHeight > viewportH))
-        {
-            showVSB = true;
-            vsbW = vsb.getPreferredBoundsWidth();
+            showHSB = w >= (hsb.minWidth + vsb.minWidth);
+        }
+        else if (!showVSB && showHSB && vAuto && (contentH > viewportH))
+        {
             viewportW -= Math.max(minViewportInset, vsbW);
+            showVSB = h >= (hsb.minHeight + vsb.minHeight);
         }

         // Factor in scrollBar-side viewportInsets where there aren't scrollbars
-        if (!showHSB)
-            viewportH -= minViewportInset;
-        if (!showVSB)
-            viewportW -= minViewportInset;
+        if (!showHSB) viewportH -= minViewportInset;
+        if (!showVSB) viewportW -= minViewportInset;

         // Special case: viewport's size is explicitly set
-        if (!isNaN(explicitViewportW))
-            viewportW = explicitViewportW;
-        if (!isNaN(explicitViewportH))
-            viewportH = explicitViewportH;
+        if (!isNaN(explicitViewportW)) viewportW = explicitViewportW;
+        if (!isNaN(explicitViewportH)) viewportH = explicitViewportH;

         // layout the viewport
         if (viewport)
         {
-            var viewportElt:ILayoutElement = ILayoutElement(viewport);
-            viewportElt.setLayoutBoundsSize(viewportW, viewportH);
-            viewportElt.setLayoutBoundsPosition(minViewportInset, minViewportInset);
+            viewport.setLayoutBoundsSize(viewportW, viewportH);
+            viewport.setLayoutBoundsPosition(minViewportInset, minViewportInset);
         }

         // layout the scrollbars
-        if (hsb) hsb.visible = showHSB;
+
+        if (hsb) hsb.includeInLayout = hsb.visible = showHSB;
         if (showHSB)
         {
-            hsb.setLayoutBoundsSize(Math.max(hsb.getMinBoundsWidth(), w - vsbW), hsbH);
+            var hsbW:Number = (showVSB) ? w - vsbW : w;
+            hsb.setLayoutBoundsSize(Math.max(hsb.getMinBoundsWidth(), hsbW), hsbH);
             hsb.setLayoutBoundsPosition(0, h - hsbH);
         }
-        if (vsb) vsb.visible = showVSB;
+
+        if (vsb) vsb.includeInLayout = vsb.visible = showVSB;
         if (showVSB)
         {
-            vsb.setLayoutBoundsSize(vsbW, Math.max(vsb.getMinBoundsHeight(), h - hsbH));
+            var vsbH:Number = (showHSB) ? h - hsbH : h;
+            vsb.setLayoutBoundsSize(vsbW, Math.max(vsb.getMinBoundsHeight(), vsbH));
             vsb.setLayoutBoundsPosition(w - vsbW, 0);
         }

-        // If the scroller's size isn't explicit and we've added a scrollbar, then
-        // the measured size is likely to have been wrong.
-        if ((isNaN(target.explicitWidth) || isNaN(target.explicitHeight)) &&
-            ((showVSB != oldShowVSB) || (showHSB != oldShowHSB)))
-            target.invalidateSize();
+        // If we've added an auto scrollbar, then the measured size is likely to have been wrong.
+        // There's a risk of looping here, so we count.
+        if ((invalidationCount < 2) && (((showVSB != oldShowVSB) && vAuto) || ((showHSB != oldShowHSB) && hAuto)))
+        {
+            target.invalidateSize();
+            invalidationCount += 1;
+        }
+        else
+            invalidationCount = 0;

         target.setContentSize(w, h);
     }