Transferred from the Adobe Open Source Subversion Repository

Revision: 11247
Author:   klin@adobe.com
Date:     2009-10-28T21:59:11.963883Z

Log Message:
-----------
Fix for https://bugs.adobe.com/jira/browse/SDK-23184.

Updated a bunch of Style metadata ASDocs to describe different defaults between the Halo and Spark themes. Also, fixed a few typos along the way.

defaults.css - rearranged a few styles to be in alphabetical order
Button.as - removed extra emphasizedSkin style metadata
Panel.as - added spark theme to borderAlpha metadata

QE notes: None
Doc notes: None
Bugs: SDK-23184
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/fl/video/NCManagerNative.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SkinStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PopUpMenuIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/PaddingStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/fl/video/NCManagerDynamicStream.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/FocusStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as</path>

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

--- frameworks/projects/framework/src/mx/styles/metadata/GapStyles.as
+++ frameworks/projects/framework/src/mx/styles/metadata/GapStyles.as
@@ -12,7 +12,7 @@
 /**
  *  Number of pixels between children in the horizontal direction.
  *  The default value depends on the component class;
- *  if not overriden for the class, the default value is 8.
+ *  if not overridden for the class, the default value is 8.
  *
  *  @langversion 3.0
  *  @playerversion Flash 9
@@ -24,7 +24,7 @@
 /**
  *  Number of pixels between children in the vertical direction.
  *  The default value depends on the component class;
- *  if not overriden for the class, the default value is 6.
+ *  if not overridden for the class, the default value is 6.
  *
  *  @langversion 3.0
  *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

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

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

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

 package mx.events
 {


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

--- frameworks/projects/rpc/src/mx/messaging/management/ObjectName.as
+++ frameworks/projects/rpc/src/mx/messaging/management/ObjectName.as
@@ -0,0 +1,106 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.messaging.management
+{
+
+import mx.utils.ObjectUtil;
+
+[RemoteClass(alias='flex.management.jmx.ObjectName')]
+
+/**
+ * Client representation of the name for server-side management controls.
+*/
+public class ObjectName
+{
+    /**
+     *  Creates a new instance of an empty ObjectName.
+     */
+	public function ObjectName()
+	{
+		super();
+	}
+
+	/**
+	 * The canonical form of the name; a string representation with
+	 * the properties sorted in lexical order.
+	 */
+	public var canonicalName:String;
+
+	/**
+	 * A string representation of the list of key properties, with the key properties sorted in lexical order.
+	 */
+	public var canonicalKeyPropertyListString:String;
+
+	/**
+	 * Indicates if the object name is a pattern.
+	 */
+	public var pattern:Boolean;
+
+	/**
+	 * Indicates if the object name is a pattern on the domain part.
+	 */
+	public var domainPattern:Boolean;
+
+	/**
+	 * Indicates if the object name is a pattern on the key properties.
+	 */
+	public var propertyPattern:Boolean;
+
+	/**
+	 * The domain part.
+	 */
+	public var domain:String;
+
+	/**
+	 * The key properties as an Object, keyed by property name.
+	 */
+	public var keyPropertyList:Object;
+
+	/**
+	 * A string representation of the list of key properties.
+	 */
+	public var keyPropertyListString:String;
+
+	/**
+	 * Returns the value associated with the specified property key.
+	 *
+	 * @param The property key.
+	 */
+	public function getKeyProperty(property:String):Object
+	{
+		if (keyPropertyList != null && keyPropertyList.hasOwnProperty(property))
+		{
+			return keyPropertyList[property];
+		}
+		return null;
+	}
+
+	/**
+     *  This method will return a string representation of the object name.
+     *
+     *  @return String representation of the object name.
+     */
+	public function toString():String
+    {
+    	if (canonicalName)
+    	{
+    		return canonicalName;
+    	}
+    	else
+    	{
+	        return ObjectUtil.toString(this);
+	    }
+    }
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19635
Author:   aharui@adobe.com
Date:     2011-01-07T00:25:18.039632Z

Log Message:
-----------
revert the layout changes from svn 18635.  Management feels that there isn't enough time to thoroughly test the changes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.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/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.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/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.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/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as
@@ -12,12 +12,7 @@
 package spark.skins.mobile
 {
 import mx.core.ClassFactory;
-import mx.core.IContainerInvalidating;
 import mx.core.IFactory;
-import mx.core.ILayoutElement;
-import mx.core.mx_internal;
-import mx.managers.ILayoutManagerContainerClient;
-use namespace mx_internal;

 import spark.components.TabbedViewNavigator;
 import spark.components.TabbedViewNavigatorApplication;
@@ -112,44 +107,10 @@
     }

     /**
-     *  @private
-     */
-    override mx_internal function validateEstimatedSizesOfChild(child:ILayoutElement):void
-    {
-        var cw:Number;
-        var ch:Number;
-        var c:Number;
-        var oldcw:Number = child.estimatedWidth;
-        var oldch:Number = child.estimatedHeight;
-        // the child navigator is constrained to the size of the skin
-        cw = estimatedWidth;
-        if (isNaN(cw) && !isNaN(explicitWidth))
-            cw = explicitWidth;
-        ch = estimatedHeight;
-        if (isNaN(ch) && !isNaN(explicitHeight))
-            ch = explicitHeight;
-
-        child.setEstimatedSize(cw, ch);
-        if (child is ILayoutManagerContainerClient)
-        {
-            var sameWidth:Boolean = isNaN(cw) && isNaN(oldcw) || cw == oldcw;
-            var sameHeight:Boolean = isNaN(ch) && isNaN(oldch) || ch == oldch;
-            if (!(sameHeight && sameWidth))
-            {
-                if (child is IContainerInvalidating)
-                    IContainerInvalidating(child).invalidateEstimatedSizesOfChildren();
-                ILayoutManagerContainerClient(child).validateEstimatedSizesOfChildren();
-            }
-        }
-    }
-
-    /**
      *  @private
      */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
-        // navigator is constrained to the size of the skin.
-        // if you change this, also update validateEstimatedSizesOfChild
         navigator.setLayoutBoundsSize(unscaledWidth, unscaledHeight);
         navigator.setLayoutBoundsPosition(0, 0);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

--- frameworks/projects/framework/src/mx/effects/Rotate.as
+++ frameworks/projects/framework/src/mx/effects/Rotate.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2004-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 17058
Author:   hmuller@adobe.com
Date:     2010-07-26T15:36:53.685628Z

Log Message:
-----------
Final PARB changes: added GridEvent constructor relatedObject argument, IGrid no longer extends IItemRenderer.

Added GridLayout overrides of getElementBounds() and getElementBounds{Above,Below,LeftOf,RightOf}ScrollRect().   Removed override of getScrollPositionDeltaToElementHelper().

Added temporary performanace statistics gathering code to GridLayout.  See the performanceStatistics property.

Added GridLayout/dataProviderCollectionReset() for reset and refresh collection events: clears all internal cached layout state.

Inhibit Grid/invalidateDisplayList() calls during virtual grid layout to gain a little (< 3%) performance.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/IGridItemRenderer.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/supportClasses/GridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ColumnHeaderBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/GridContainerBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -11,6 +11,7 @@

 package spark.components
 {
+    import flash.display.InteractiveObject;
     import flash.events.Event;
     import flash.events.MouseEvent;
     import flash.geom.Point;
@@ -2450,7 +2451,7 @@
          *  @private
          *  During virtual layout updateDisplayList() eagerly validates lazily
          *  created (or recycled) IRs.   We don't want changes to those IRs to
-         *  invalidate the size of the Grid.
+         *  invalidate the size of the grid.
          */
         override public function invalidateSize():void
         {
@@ -2458,6 +2459,18 @@
                 super.invalidateSize();
         }

+        /**
+         *  @private
+         *  During virtual layout updateDisplayList() eagerly validates lazily
+         *  created (or recycled) IRs.  Calls to invalidateDisplayList() eventually
+         *  short-circuit but doing so early saves a few percent.
+         */
+        override public function invalidateDisplayList():void
+        {
+            if (!inUpdateDisplayList)
+                super.invalidateDisplayList();
+        }
+
         /**
          *  @private
          */
@@ -2770,6 +2783,7 @@
             const itemRenderer:IVisualElement = getVisibleItemRenderer(rowIndex, columnIndex);
             const bubbles:Boolean = mouseEvent.bubbles;
             const cancelable:Boolean = mouseEvent.cancelable;
+            const relatedObject:InteractiveObject = mouseEvent.relatedObject;
             const ctrlKey:Boolean = mouseEvent.ctrlKey;
             const altKey:Boolean = mouseEvent.altKey;
             const shiftKey:Boolean = mouseEvent.shiftKey;
@@ -2779,7 +2793,7 @@
             const event:GridEvent = new GridEvent(
                 type, bubbles, cancelable,
                 gridXY.x, gridXY.y, rowIndex, columnIndex, column, item, itemRenderer,
-                ctrlKey, altKey, shiftKey, buttonDown, delta);
+                relatedObject, ctrlKey, altKey, shiftKey, buttonDown, delta);
             dispatchEvent(event);
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10955
Author:   jszeto@adobe.com
Date:     2009-10-09T19:34:12.315199Z

Log Message:
-----------
ComboBox initial checkin

The ComboBox component is similar to a DropDownList but has a TextInput instead of a Label. A user can type into the TextInput and the dropDown will scroll to and highlight the closest match.

Users are allowed to type in an item not found in the dataProvider. With this behavior, a ComboBox acts as a list of suggested values, while a DropDownList acts as a list of possible values.

The full spec is located here:
http://opensource.adobe.com/wiki/display/flexsdk/Spark+ComboBox

This checkin includes the following:
- All public APIs implemented
- All styles implemented (except for cornerRadius)
- Basic keyboard and mouse interaction working
- Spark and Wireframe skins implemented
- Added custom selectedItem support to ListBase

What is missing:
- The keyboard and mouse interactions are partially implemented.
- The TextInput caret and selection behaviors are not implemented
- The changing event is not cancellable if setting a custom selected item
- Need to refactor DropDownList into DropDownList and DropDownListBase

QE notes: None
Doc notes: None
Bugs: None
Reviewer: Glenn
Tests run: List, DropDownList
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ComboBoxButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/WireframeClasses.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ComboBoxButtonSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -1929,7 +1929,7 @@
         var stopIndex:int;
         var retVal:Number;

-        if (selectedIndex == -1)
+        if (selectedIndex == NO_SELECTION || selectedIndex == CUSTOM_SELECTED_ITEM)
         {
             startIndex = 0;
             stopIndex = dataProvider.length;
@@ -1959,7 +1959,7 @@
     /**
      *  @private
      */
-    private function findStringLoop(str:String, startIndex:int, stopIndex:int):Number
+    mx_internal function findStringLoop(str:String, startIndex:int, stopIndex:int):Number
     {
         // Try to find the item based on the start and stop indices.
         for (startIndex; startIndex != stopIndex; startIndex++)


Transferred from the Adobe Open Source Subversion Repository

Revision: 7088
Author:   smgilson@adobe.com
Date:     2009-05-19T20:49:49.563900Z

Log Message:
-----------
ASDoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/ButtonBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/ListSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -33,6 +33,8 @@

 /**
  *  @copy spark.components.supportClasses.GroupBase#style:alternatingItemColors
+ *
+ *  @default undefined
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -43,6 +45,8 @@

 /**
  *  @copy spark.components.supportClasses.GroupBase#style:contentBackgroundColor
+ *
+ *  @default 0xFFFFFF
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -53,6 +57,8 @@

 /**
  *  @copy spark.components.supportClasses.GroupBase#style:rollOverColor
+ *
+ *  @default 0xCEDBEF
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -63,6 +69,8 @@

 /**
  *  @copy spark.components.supportClasses.GroupBase#style:selectionColor
+ *
+ *  @default 0xA8C6EE
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -73,6 +81,8 @@

 /**
  *  @copy spark.components.supportClasses.GroupBase#style:symbolColor
+ *
+ *  @default 0x000000
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -100,6 +110,28 @@
  *  The user can select one or more items from the list, depending
  *  on the value of the allowMultipleSelection property.
  *
+ *  @mxml
The <List> tag inherits all of the tag
+ *  attributes of its superclass and adds the following tag attributes:

+ *
+ *

+ *  <List
+ *    Properties
+ *    allowMultipleSelection="false"
+ *    selectedIndices="null"
+ *    selectedItems="null"
+ *    useVirtualLayout="true"
+ *
+ *    Styles
+ *    alternatingItemColors="undefined"
+ *    contentBackgroundColor="0xFFFFFF"
+ *    rollOverColor="0xCEDBEF"
+ *    selectionColor="0xA8C6EE"
+ *    symbolColor="0x000000"
+ *  />
+ *

+ *
+ *  @see spark.skins.default.ListSkin
+ *
  *  @includeExample examples/ListExample.mxml
  *
  *  @langversion 3.0
@@ -166,8 +198,8 @@
     private var _allowMultipleSelection:Boolean = false;

     /**
-     *  Boolean flag controlling whether multiple selection
-     *  is enabled or not. When switched dynamically, selection
+     *  If true multiple selections is enabled.
+     *  When switched at run time, the current selection
      *  is cleared.
      *
      *  @default false
@@ -203,10 +235,10 @@

     [Bindable("selectionChanged")]
     /**
-     *  Selected indices for this component. If multiple selection
-     *  is off and this property is set, the first value in
-     *  the Array will be selected in order to honor single
-     *  selection.
+     *  An Array of inidices of the currently selected item or items.
+     *  If multiple selection is disabled by setting allowMultipleSelection
+     *  to false, and this property is set, the data item
+     *  corresponding to the first index in the Array is selected.
      *
      *  @default null
      *
@@ -235,10 +267,10 @@

     [Bindable("selectionChanged")]
     /**
-     *  Selected items for this component. If multiple selection
-     *  is off and this property is set, the first value in
-     *  the Array will be selected in order to honor single
-     *  selection.
+     *  An Array of the currently selected data items.
+     *  If multiple selection is disabled by setting allowMultipleSelection
+     *  to false, and this property is set, the data item
+     *  corresponding to the first item in the Array is selected.
      *
      *  @default null
      *
@@ -300,10 +332,7 @@
     }

     /**
-     *  A convenience that delegates to layout.useVirtualLayout.
-     *  If this list's layout is subsequently replaced and the value of this
-     *  property is true, then then the new layout's useVirtualLayout property
-     *  will also be true.
+     *  @inheritDoc
      *
      *  @default true
      *
@@ -778,13 +807,10 @@
     }

     /**
-     *  If the layout element at the specified index isn't completely
-     *  visible, scroll this IViewport.
+     *  If the data item at the specified index is not completely
+     *  visible, scroll until it is completely visible.
      *
-     *  In the future, this method may animate the scroll.
-     *
-     *  @param index The index of the item that is brought into
-     *  visibility
+     *  @param index The index of the data item.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -922,6 +948,7 @@
     }

     /**
+     *  @private
      *  Used by keyDownHandler to map the keyboard events
      *  to NavigationUnit. The NavigationUnit values are passed to the
      *  layout to figure out what the new item in focus is based on


Transferred from the Adobe Open Source Subversion Repository

Revision: 8344
Author:   jszeto@adobe.com
Date:     2009-06-26T23:58:50.369786Z

Log Message:
-----------
Rect radius bug fix

http://bugs.adobe.com/jira/browse/SDK-21867 -   Rect with only radiusX properly set does not render properly

Fixed Rect’s handling of radiusX and radiusY to match the spec.

“If a properly specified value is provided for radiusX but not for radiusY, then the user agent processes the Rect element with the effective value for radiusY as equal to radiusX. If radiusX is not specified, or is specified as zero, then the user agent processes the Rect element as if no rounding had been specified, resulting in square corners.”

QE Notes: Update tests
Doc Notes: Update docs to mention this new behavior
Bugs: SDK-21867
Reviewer: Awaiting review

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

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

--- frameworks/projects/spark/src/spark/primitives/Rect.as
+++ frameworks/projects/spark/src/spark/primitives/Rect.as
@@ -150,10 +150,15 @@
      */
     override protected function draw(g:Graphics):void
     {
-        if (radiusX != 0 && radiusY != 0)
-            g.drawRoundRect(drawX, drawY, width, height, radiusX * 2, radiusY * 2);
+        if (radiusX != 0)
+        {
+            var rY:Number =  radiusY == 0 ? radiusX : radiusY;
+            g.drawRoundRect(drawX, drawY, width, height, radiusX * 2, rY * 2);
+        }
         else
+        {
             g.drawRect(drawX, drawY, width, height);
+        }
     }

     /**


Added other platform pseudo-streaming parameters

--- lib/FlashFallback/com/visual/VisualVideo.as
+++ lib/FlashFallback/com/visual/VisualVideo.as
@@ -77,7 +77,7 @@
             if(this.pseudoStreamingOffset==0) {
                 pseudoSource = _source;
             } else {
-                pseudoSource = _source + (new RegExp("\\?").test(_source) ? '&' : '?') + 'start=' + this.pseudoStreamingOffset;
+                pseudoSource = _source + (new RegExp("\\?").test(_source) ? '&' : '?') + 'start=' + this.pseudoStreamingOffset + '&ec_seek=' + this.pseudoStreamingOffset;
             }
             _duration = 0;


- added method to return configured colormatrixfilter for tinting displayobjects

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

--- src/reprise/data/AdvancedColor.as
+++ src/reprise/data/AdvancedColor.as
@@ -11,6 +11,8 @@

 package reprise.data
 {
+	import flash.filters.ColorMatrixFilter;
+
 	import reprise.core.Cloneable;

 	public class AdvancedColor implements Cloneable
@@ -310,6 +312,17 @@
 			return m_opacity;
 		}

+		public function tintFilter():ColorMatrixFilter
+		{
+			var rgb:Object = rgbComponents();
+			var matrix:Array = [];
+			matrix = matrix.concat([1, 0, 0, 0, rgb.r * m_opacity]);
+			matrix = matrix.concat([0, 1, 0, 0, rgb.g * m_opacity]);
+			matrix = matrix.concat([0, 0, 1, 0, rgb.b * m_opacity]);
+			matrix = matrix.concat([0, 0, 0, 1, 0]);
+			return new ColorMatrixFilter(matrix);
+		}
+

 		public function equals(color : AdvancedColor) : Boolean
 		{


size initial view if needed

size initial view if needed

--- frameworks/projects/Core/as/src/org/apache/flex/core/Application.as
+++ frameworks/projects/Core/as/src/org/apache/flex/core/Application.as
@@ -142,6 +142,10 @@
             if (initialView)
             {
                 initialView.applicationModel =  model;
+                if (isNaN(initialView.explicitWidth))
+                    initialView.setWidth(stage.stageWidth);
+                if (isNaN(initialView.explicitHeight))
+                    initialView.setHeight(stage.stageHeight);
         	    this.addElement(initialView);
                 dispatchEvent(new org.apache.flex.events.Event("viewChanged"));
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

--- frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollThumb.as
+++ frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollThumb.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
147 paths were modified

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

--- frameworks/projects/rpc/src/mx/messaging/messages/CommandMessage.as
+++ frameworks/projects/rpc/src/mx/messaging/messages/CommandMessage.as
@@ -21,6 +21,12 @@
  *  The CommandMessage class provides a mechanism for sending commands to the
  *  server infrastructure, such as commands related to publish/subscribe
  *  messaging scenarios, ping operations, and cluster operations.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion BlazeDS 4
+ *  @productversion LCDS 3
  */
 public class CommandMessage extends AsyncMessage
 {
@@ -32,35 +38,71 @@

     /**
      *  This operation is used to subscribe to a remote destination.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const SUBSCRIBE_OPERATION:uint = 0;

     /**
      *  This operation is used to unsubscribe from a remote destination.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const UNSUBSCRIBE_OPERATION:uint = 1;

     /**
      *  This operation is used to poll a remote destination for pending,
      *  undelivered messages.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const POLL_OPERATION:uint = 2;

     /**
      *  This operation is used by a remote destination to sync missed or cached messages
      *  back to a client as a result of a client issued poll command.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const CLIENT_SYNC_OPERATION:uint = 4;

     /**
      *  This operation is used to test connectivity over the current channel to
      *  the remote endpoint.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const CLIENT_PING_OPERATION:uint = 5;

     /**
      *  This operation is used to request a list of failover endpoint URIs
      *  for the remote destination based on cluster membership.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const CLUSTER_REQUEST_OPERATION:uint = 7;

@@ -69,12 +111,24 @@
      * the user can be logged in over the current channel.
      * The credentials need to be Base64 encoded and stored in the body
      * of the message.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const LOGIN_OPERATION:uint = 8;

     /**
      * This operation is used to log the user out of the current channel, and
      * will invalidate the server session if the channel is HTTP based.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const LOGOUT_OPERATION:uint = 9;

@@ -82,78 +136,162 @@
      * Endpoints can imply what features they support by reporting the
      * latest version of messaging they are capable of during the handshake of
      * the initial ping CommandMessage.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const MESSAGING_VERSION:String = "DSMessagingVersion";

     /**
      * This operation is used to indicate that the client's subscription with a
      * remote destination has timed out.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const SUBSCRIPTION_INVALIDATE_OPERATION:uint = 10;

     /**
      * Used by the MultiTopicConsumer to subscribe/unsubscribe for more
      * than one topic in the same message.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const MULTI_SUBSCRIBE_OPERATION:uint = 11;

     /**
      *  This operation is used to indicate that a channel has disconnected.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const DISCONNECT_OPERATION:uint = 12;

     /**
      *  This operation is used to trigger a ChannelSet to connect.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const TRIGGER_CONNECT_OPERATION:uint = 13;

     /**
      *  This is the default operation for new CommandMessage instances.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const UNKNOWN_OPERATION:uint = 10000;

     /**
      *  The server message type for authentication commands.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const AUTHENTICATION_MESSAGE_REF_TYPE:String = "flex.messaging.messages.AuthenticationMessage";

     /**
      *  Subscribe commands issued by a Consumer pass the Consumer's selector
      *  expression in this header.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const SELECTOR_HEADER:String = "DSSelector";

     /**
      *  Durable JMS subscriptions are preserved when an unsubscribe message
      *  has this parameter set to true in its header.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const PRESERVE_DURABLE_HEADER:String = "DSPreserveDurable";

     /**
      * Header to indicate that the Channel needs the configuration from the
      * server.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const NEEDS_CONFIG_HEADER:String = "DSNeedsConfig";

     /**
      * Header used in a MULTI_SUBSCRIBE message to specify an Array of subtopic/selector
      * pairs to add to the existing set of subscriptions.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const ADD_SUBSCRIPTIONS:String = "DSAddSub";

     /**
      * Like the above, but specifies the subtopic/selector array of to remove
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const REMOVE_SUBSCRIPTIONS:String = "DSRemSub";

     /**
      * The separator string used for separating subtopic and selectors in the
      * add and remove subscription headers.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const SUBTOPIC_SEPARATOR:String = "_;_";

     /**
      * Header to drive an idle wait time before the next client poll request.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const POLL_WAIT_HEADER:String = "DSPollWait";

@@ -163,18 +301,36 @@
      * should be tagged with this header in which case the response is treated as a
      * no-op and the next poll will not be scheduled. Without this, a subsequent poll
      * will put the channel and endpoint into a busy polling cycle.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const NO_OP_POLL_HEADER:String = "DSNoOpPoll";

     /**
      * Header to specify which character set encoding was used while encoding
      * login credentials.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const CREDENTIALS_CHARSET_HEADER:String = "DSCredentialsCharset";

     /**
      * Header to indicate the maximum number of messages a Consumer wants to
      * receive per second.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static const MAX_FREQUENCY_HEADER:String = "DSMaxFrequency";

@@ -208,6 +364,12 @@
     /**
      *  Constructs an instance of a CommandMessage with an empty body and header
      *  and a default operation of UNKNOWN_OPERATION.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function CommandMessage()
     {
@@ -225,6 +387,12 @@
      *  Provides access to the operation/command for the CommandMessage.
      *  Operations indicate how this message should be processed by the remote
      *  destination.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public var operation:uint;

@@ -263,6 +431,12 @@
      *  Returns a string representation of the message.
      *
      *  @return String representation of the message.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     override public function toString():String
     {
@@ -290,6 +464,12 @@
      *     trace("Current operation -'"+
      *            CommandMessage.getOperationAsString(msg.operation)+ "'.");
      *

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public static function getOperationAsString(op:uint):String
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

--- frameworks/projects/automation/src/mx/automation/codec/AssetPropertyCodec.as
+++ frameworks/projects/automation/src/mx/automation/codec/AssetPropertyCodec.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 5924
Author:   chaase@adobe.com
Date:     2009-04-03T23:23:45.166425Z

Log Message:
-----------
This fixes the use of constraints in effects. Basically, it removes the 'adjustConstraints' property that was added in Flex4 and adds a new 'disableConstraints' flag which disables constraints during the effect (default false).

QE Notes: Issues in spark/effects/AnimateTransform* directories, rename-related, Matt chasing down
Doc Notes: none
Bugs:
Reviewer: Glenn
tests: checkintests, mustella spark/effects

Modified Paths:
--------------
<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/supportClasses/RotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.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/supportClasses/Animate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Rotate3DInstance.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/flex4/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/RotateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/RotateInstance.as
@@ -72,7 +72,6 @@
     public function RotateInstance(target:Object)
     {
         super(target);
-        affectsConstraints = true;
     }

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


Aggressively reset the Video, so it stays full screen and properly mirrored

--- src/CameraMan.as
+++ src/CameraMan.as
@@ -93,6 +93,10 @@
                 return;
             }

+            trace("got camera " + cam.name + ". muted: " + cam.muted
+                + '. size: ' + cam.width + ',' + cam.height + '. fps: '
+                + cam.currentFPS + '. max fps: ' + cam.fps + ' total cameras: ' + Camera.names.length);
+
             // TODO: handle a missing camera
             // TODO: handle a "dead" camera (fps = 0?)
             /* TODO: handle a muted camera? we'll only get an
@@ -108,10 +112,14 @@
                 + cam.currentFPS + '. max fps: ' + cam.fps + ' total cameras: ' + Camera.names.length);
             cam.setMode(stage.stageWidth, stage.stageHeight, 30);

-            videoface = new Video(cam.width, cam.height);
+            trace("after setting mode to stage " + stage.stageWidth + ',' + stage.stageHeight
+                + ', size: ' + cam.width + ',' + cam.height + '. fps: '
+                + cam.currentFPS + '. max fps: ' + cam.fps + ' total cameras: ' + Camera.names.length);
+
+            videoface = new Video(stage.stageWidth, stage.stageHeight);
             videoface.attachCamera(cam);
-
             this.addChild(videoface);
+            this.prepVideo();
         }

         public function configureCamera(event:Event) : void {
@@ -133,13 +141,21 @@
             nope.y = Math.floor(stage.stageHeight / 2) - Math.floor(nope.height / 2);

             cam.setMode(stage.stageWidth, stage.stageHeight, 30);
-            trace("Camera size is " + cam.width + ", " + cam.height);
-            videoface.width = cam.width;
-            videoface.height = cam.height;
+            trace("Camera size is " + cam.width + ", " + cam.height + " (tried "
+                + stage.stageWidth + "," + stage.stageHeight + ")");
+
+            this.prepVideo();
+        }
+
+        public function prepVideo() : void {
+            videoface.x = 0;
+            videoface.y = 0;
+            videoface.width = stage.stageWidth;
+            videoface.height = stage.stageHeight;

             var mirror:Matrix = new Matrix();
             mirror.scale(-1, 1);
-            mirror.translate(cam.width, 0);
+            mirror.translate(stage.stageWidth, 0);
             videoface.transform.matrix = mirror;
         }

@@ -154,7 +170,7 @@
         public function takePhoto() : void {
             // freeze image
             try {
-                var photobits:BitmapData = new BitmapData(videoface.videoWidth, videoface.videoHeight, false);
+                var photobits:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, false);
                 photobits.draw(videoface);

                 // Swap the video for the captured bitmap.
@@ -175,6 +191,9 @@
                 photo = null;

                 this.addChild(videoface);
+                this.prepVideo();
+                trace("Tried to size video to " + stage.stageWidth + ","
+                    + stage.stageHeight + " when re-adding");
             }
             catch (err:Error) {
                 trace(err.name + " " + err.message);


Now checking if data source was disposed before requesting column.

Change-Id: I185e8c66cd096ea25740f6dfe149e59284990de5

--- WeaveData/src/weave/data/AttributeColumns/ReferencedColumn.as
+++ WeaveData/src/weave/data/AttributeColumns/ReferencedColumn.as
@@ -26,6 +26,7 @@
 	import weave.api.data.IQualifiedKey;
 	import weave.api.newDisposableChild;
 	import weave.api.newLinkableChild;
+	import weave.api.objectWasDisposed;
 	import weave.api.setSessionState;
 	import weave.core.CallbackCollection;
 	import weave.core.ClassUtils;
@@ -108,6 +109,9 @@
 		{
 			if (_prevTriggerCounter != triggerCounter)
 			{
+				if (objectWasDisposed(_dataSource))
+					_dataSource = null;
+
 				var col:IAttributeColumn = null;
 				if (dataSourceName.value && !_dataSource)
 				{


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

--- frameworks/projects/framework/src/mx/effects/AnimateProperty.as
+++ frameworks/projects/framework/src/mx/effects/AnimateProperty.as
@@ -0,0 +1,182 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.AnimatePropertyInstance;
+
+/**
+ *  The AnimateProperty effect animates a property or style of a component.
+ *  You specify the property name, start value, and end value
+ *  of the property to animate.
+ *  The effect sets the property to the start value, and then updates
+ *  the property value over the duration of the effect
+ *  until it reaches the end value.
+ *
+ *
For example, to change the width of a Button control,
+ *  you can specify width as the property to animate,
+ *  and starting and ending width values to the effect.

+ *
+ *  @mxml
+ *
+ *
The <mx:AnimateProperty> tag
+ *  inherits all the tag attributes of its superclass
+ *  and adds the following tag attributes:

+ *
+ *

+ *  <mx:AnimateProperty
+ *    id="ID"
+ *	  fromValue="0"
+ *    isStyle="false|true"
+ *    property="required"
+ *    roundValue="false|true"
+ *    toValue="0"
+ *  />
+ *

+ *
+ *  @see mx.effects.effectClasses.AnimatePropertyInstance
+ *
+ *  @includeExample examples/AnimatePropertyEffectExample.mxml
+ */
+public class AnimateProperty extends TweenEffect
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param target The Object to animate with this effect.
+	 */
+	public function AnimateProperty(target:Object = null)
+	{
+		super(target);
+
+		instanceClass = AnimatePropertyInstance;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  toValue
+	//----------------------------------
+
+	[Inspectable(category="General", defaultValue="0")]
+
+	/**
+	 *  The ending value for the effect.
+	 *  The default value is the target's current property value.
+	 */
+	public var toValue:Number;
+
+	//----------------------------------
+	//  isStyle
+	//----------------------------------
+
+	[Inspectable(category="General", defaultValue="false")]
+
+	/**
+	 *  If true, the property attribute is a style and you set
+	 *  it by using the setStyle() method.
+	 *  @default false
+	 */
+	public var isStyle:Boolean = false;
+
+	//----------------------------------
+	//  property
+	//----------------------------------
+
+	[Inspectable(category="General", defaultValue="")]
+
+	/**
+	 *  The name of the property on the target to animate.
+	 *  This attribute is required.
+	 */
+	public var property:String;
+
+	//----------------------------------
+	//  roundValue
+	//----------------------------------
+
+	[Inspectable(category="General", defaultValue="false")]
+
+	/**
+	 *  If true, round off the interpolated tweened value
+	 *  to the nearest integer.
+	 *  This property is useful if the property you are animating
+	 *  is an int or uint.
+	 *  @default false
+	 */
+	public var roundValue:Boolean = false;
+
+	//----------------------------------
+	//  fromValue
+	//----------------------------------
+
+	[Inspectable(category="General", defaultValue="0")]
+
+	/**
+	 *  The starting value of the property for the effect.
+	 *  The default value is the target's current property value.
+	 */
+	public var fromValue:Number;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function getAffectedProperties():Array /* of String */
+	{
+		return [ property ];
+	}
+
+	/**
+	 *  @private
+	 */
+	override public function get relevantStyles():Array /* of String */
+	{
+		return isStyle ? [ property ] : [];
+	}
+
+	/**
+	 *  @private
+	 */
+	override protected function initInstance(instance:IEffectInstance):void
+	{
+		super.initInstance(instance);
+
+		var animatePropertyInstance:AnimatePropertyInstance =
+			AnimatePropertyInstance(instance);
+
+		animatePropertyInstance.fromValue = fromValue;
+		animatePropertyInstance.toValue = toValue;
+		animatePropertyInstance.property = property;
+		animatePropertyInstance.isStyle = isStyle;
+		animatePropertyInstance.roundValue = roundValue;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 12002
Author:   dloverin@adobe.com
Date:     2009-11-19T19:52:49.393308Z

Log Message:
-----------
Fix RTE in StyleManager cache code.

 * Fix RTE in StyleManager cache code.
 * Change _parent to parent so the set parent method is called for purposes of QA code coverage.

QE notes: None.
Doc notes: None.
Bugs: SDK-24318
Reviewer: Alex
Tests run: checkintests
Is noteworthy for integration: yes Performance: fix RTE in last style manager performance fix.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as

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

--- frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
+++ frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
@@ -121,7 +121,7 @@
             var moduleFactory:IFlexModuleFactory = request.value as IFlexModuleFactory;
             if (moduleFactory)
             {
-                _parent = IStyleManager2(moduleFactory.
+                parent = IStyleManager2(moduleFactory.
                                          getImplementation("mx.styles::IStyleManager2"));
                 if (_parent is IEventDispatcher)
                 {
@@ -1604,9 +1604,8 @@
     private function dispatchInheritingStylesChangeEvent():void
     {
         var event:Event = new FlexChangeEvent(FlexChangeEvent.STYLE_MANAGER_CHANGE,
-            false, false, new {property: "inheritingStyles"});
+            false, false, {property: "inheritingStyles"});
         dispatchEvent(event);
-
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19701
Author:   klin@adobe.com
Date:     2011-01-11T18:21:58.435841Z

Log Message:
-----------
Enable percentHeight on ConstraintColumns for ConstraintLayout. Refactored measureRows to look like measureColumns. I also renamed and modified constrainPercentColumnWidths to be constrainPercentRegionSizes and work for both columns and rows. The default FormItem skins now have one row that has height="100%" so that components in a FormItem will resize with the FormItem container.

QE notes: No
Doc notes: No
Bugs: No
Reviewer: Evtim
Tests run: cyclone, checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/FormHeadingSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/ConstraintLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/StackedFormItemSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/FormItemSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/StackedFormHeadingSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/layouts/ConstraintLayout.as
+++ frameworks/projects/spark/src/spark/layouts/ConstraintLayout.as
@@ -344,9 +344,6 @@
             if (maxAscentStr && maxAscentStr != "maxAscent")
                 throw new Error(ResourceManager.getInstance().getString("layout", "invalidBaselineOnRow",
                                                                         [ row.id, row.baseline ]));
-
-            if (!isNaN(row.percentHeight))
-                throw new Error(ResourceManager.getInstance().getString("layout", "percentHeightRow"));
         }

         _constraintRows = temp;
@@ -430,14 +427,19 @@
         {
             height += n;
         }
-        minHeight = height;
-
-        // Find minimum measured width by passing in 0 for the constrained width.
-        // This means that percentWidth columns will be set to their minWidth.
-        constrainPercentColumnWidths(colWidths, 0);
+
+        // Find minimum measured width/height by passing in 0 for the constrained size.
+        // This means that percent size regions will be set to their min size.
+        constrainPercentRegionSizes(colWidths, 0, true);
         for each (n in colWidths)
         {
             minWidth += n;
+        }
+
+        constrainPercentRegionSizes(rowHeights, 0, false);
+        for each (n in rowHeights)
+        {
+            minHeight += n;
         }

         if (otherElements)
@@ -554,7 +556,7 @@
     {
         parseConstraints();
         setColumnWidths(measureColumns(constrainedWidth));
-        setRowHeights(measureRows());
+        setRowHeights(measureRows(constrainedHeight));
     }

     /**
@@ -841,6 +843,7 @@
         var maxExtent:Number;
         var remainingWidth:Number;

+        var j:int;
         var colWidth:Number = 0;

         // 1) Determine how much space the element needs to satisfy its
@@ -906,8 +909,8 @@
         // 3) If the element causes a column to expand, update the column width to match.
         if (span == 1)
         {
-           // a) For the single spanning case, we only need to check if this element's
-           //    required width is larger than the column's current width.
+            // a) For the single spanning case, we only need to check if this element's
+            //    required width is larger than the column's current width.
             col = _constraintColumns[leftIndex];

             if (col.contentSize || !isNaN(col.percentWidth))
@@ -931,7 +934,6 @@
             //    2) divide space evenly into content/percent size columns.
             var contentCols:Vector.<ConstraintColumn> = new Vector.<ConstraintColumn>();
             var contentColsIndices:Vector.<int> = new Vector.<int>();
-            var j:int;

             remainingWidth = maxExtent;
             for (j = leftIndex; j <= rightIndex; j++)
@@ -972,58 +974,78 @@
     }

     /**
-     *  @private
-     *  Adjusts the widths of percent size columns to fill the constrainedWidth.
-     *  This method updates the provided column widths vector in place.
+     *  Adjusts the sizes of percent size columns or rows to fill the constrainedSize.
+     *  This method updates the provided column widths or row heights vector in place.
      *
-     *  The percent size column widths are first reset to their minimum width.
-     *  If the given column widths from the content and fixed size columns already
-     *  fill the available width, then the percent size column widths stay at their
-     *  minimum width. Otherwise, the remaining width is distributed to the percent
-     *  size columns based on the ratio of the percentWidth to the sum of all the
-     *  percent widths.
-     */
-    private function constrainPercentColumnWidths(colWidths:Vector.<Number>, constrainedWidth:Number):void
+     *  The term, "region", refers to a column or row.
+     *  The percent size region sizes are first reset to their minimum size.
+     *  If the given region sizes from the content and fixed size regions already
+     *  fill the available space, then the percent size region sizes stay at their
+     *  minimum size. Otherwise, the remaining space is distributed to the percent
+     *  size regions based on the ratio of its percent size to the sum of all the
+     *  percent sizes.
+     */
+    private function constrainPercentRegionSizes(sizes:Vector.<Number>, constrainedSize:Number, isColumns:Boolean):void
     {
         var col:ConstraintColumn;
-        var numCols:int = _constraintColumns.length;
+        var row:ConstraintRow;
+        var numSizes:int = isColumns ? _constraintColumns.length : _constraintRows.length;
+
         var childInfoArray:Array /* of ConstraintRegionFlexChildInfo */ = [];
         var childInfo:ConstraintRegionFlexChildInfo;
-        var remainingWidth:Number = constrainedWidth;
-        var percentMinWidths:Number = 0;
+        var remainingSpace:Number = constrainedSize;
+        var percentMinSizes:Number = 0;
         var totalPercent:Number = 0;

-        // Set percent width columns back to minWidth and
-        // find the remaining width.
-        for (var i:int = 0; i < numCols; i++)
-        {
-            col = _constraintColumns[i];
-            if (!isNaN(col.percentWidth))
-            {
-                colWidths[i] = (!isNaN(col.minWidth)) ? Math.ceil(Math.max(col.minWidth, 0)) : 0;
-                percentMinWidths += colWidths[i];
-                totalPercent += col.percentWidth;
+        // Set percent size regions back to minSize and
+        // find the remaining space.
+        for (var i:int = 0; i < numSizes; i++)
+        {
+            var percentSize:Number;
+            var minSize:Number;
+            var maxSize:Number;
+
+            if (isColumns)
+            {
+                col = _constraintColumns[i];
+                percentSize = col.percentWidth;
+                minSize = col.minWidth;
+                maxSize = col.maxWidth;
+            }
+            else
+            {
+                row = _constraintRows[i];
+                percentSize = row.percentHeight;
+                minSize = row.minHeight;
+                maxSize = row.maxHeight;
+            }
+
+            if (!isNaN(percentSize))
+            {
+                sizes[i] = (!isNaN(minSize)) ? Math.ceil(Math.max(minSize, 0)) : 0;
+                percentMinSizes += sizes[i];
+                totalPercent += percentSize;

                 // Fill childInfoArray for distributing the width.
                 childInfo = new ConstraintRegionFlexChildInfo();
                 childInfo.index = i;
-                childInfo.percent = col.percentWidth;
-                childInfo.min = col.minWidth;
-                childInfo.max = col.maxWidth;
+                childInfo.percent = percentSize;
+                childInfo.min = minSize;
+                childInfo.max = maxSize;
                 childInfoArray.push(childInfo);
             }
             else
             {
-                remainingWidth -= colWidths[i];
+                remainingSpace -= sizes[i];
             }
         }

         // If there's space remaining, distribute the width to the percent size
         // columns based on their ratio of percentWidth to sum of all the percentWidths.
-        if (remainingWidth > percentMinWidths)
+        if (remainingSpace > percentMinSizes)
         {
-            Flex.flexChildrenProportionally(constrainedWidth,
-                                            remainingWidth,
+            Flex.flexChildrenProportionally(constrainedSize,
+                                            remainingSpace,
                                             totalPercent,
                                             childInfoArray);

@@ -1031,14 +1053,14 @@
             for each (childInfo in childInfoArray)
             {
                 // Make sure the calculated widths are rounded to pixel boundaries
-                var colWidth:Number = Math.round(childInfo.size + roundOff);
-                roundOff += childInfo.size - colWidth;
-
-                colWidths[childInfo.index] = colWidth;
-
-                // remainingWidth -= colWidth;
-            }
-            // FIXME (klin): What do we do if there's remainingWidth after all this?
+                var size:Number = Math.round(childInfo.size + roundOff);
+                roundOff += childInfo.size - size;
+
+                sizes[childInfo.index] = size;
+
+                // remainingSpace -= size;
+            }
+            // FIXME (klin): What do we do if there's remainingSpace after all this?
         }
     }

@@ -1157,7 +1179,7 @@
         // Adjust percent size columns to account for constraining width.
         if (!isNaN(constrainedWidth) && hasPercentSize)
         {
-            constrainPercentColumnWidths(colWidths, constrainedWidth);
+            constrainPercentRegionSizes(colWidths, constrainedWidth, true);
         }

         // Clear the cache only if we created it just for this method call.
@@ -1165,6 +1187,199 @@
             clearConstraintCache();

         return colWidths;
+    }
+
+    /**
+     *  @private
+     *  Updates the heights of content size and percent size rows that are spanned
+     *  by the specified element. This method updates the provided row heights
+     *  vector in place. The algorithm is as follows:
+     *
+     *  1) Determine the space needed by the element to satisfy its constraints
+     *     and be at its preferred size.
+     *
+     *  2) Calculate the number of rows the element will span.
+     *
+     *  3) If the element causes a row to expand, update the row height to match.
+     *     a) For the single spanning case, we only need to check if this element's
+     *        required height is larger than the row's current height.
+     *     b) For the multiple spanning case, we distribute the remaining height after
+     *        subtracting the fixed size rows across the content/percent size rows.
+     *        Then, we only update a row's height if the new divided height would cause
+     *        the row's height to expand.
+     *
+     *  @param elementInfo The constraint information of the element.
+     *  @param colWidths The vector of column widths to update.
+     */
+    private function updateRowHeightsForElement(rowHeights:Vector.<Number>, elementInfo:ElementConstraintInfo):void
+    {
+        var layoutElement:ILayoutElement = elementInfo.layoutElement;
+        var numRows:int = _constraintRows.length;
+        var row:ConstraintRow;
+
+        var topIndex:int = -1;
+        var bottomIndex:int = -1;
+        var span:int;
+
+        var extY:Number = 0;
+        var preferredHeight:Number = layoutElement.getPreferredBoundsHeight();
+        var maxExtent:Number;
+        var remainingHeight:Number;
+
+        var j:int;
+        var rowHeight:Number = 0;
+
+        // 1) Determine how much space the element needs to satisfy its
+        //    constraints and be at its preferred height.
+        if (!isNaN(elementInfo.top))
+        {
+            extY += elementInfo.top;
+            if (elementInfo.topBoundary)
+                topIndex = elementInfo.rowSpanTopIndex;
+            else
+                topIndex = 0; // constrained to parent
+        }
+
+        if (!isNaN(elementInfo.bottom))
+        {
+            extY += elementInfo.bottom;
+            if (elementInfo.bottomBoundary)
+                bottomIndex = elementInfo.rowSpanBottomIndex;
+            else
+                bottomIndex = numRows - 1; // constrained to parent
+        }
+
+        // Only include baseline if at least one of top or bottom don't
+        // exist.
+        if (!isNaN(elementInfo.baseline) && (topIndex < 0 || bottomIndex < 0))
+        {
+            extY += elementInfo.baseline - layoutElement.baselinePosition;
+
+            if (!isNaN(elementInfo.top))
+                extY -= elementInfo.top;
+
+            if (elementInfo.baselineBoundary)
+            {
+                topIndex = elementInfo.baselineIndex;
+
+                // add baseline offset.
+                extY += Number(rowBaselines[topIndex][0]);
+
+                // add maxAscent. maxAscent is 0 if not specified on the row.
+                if (rowMaxAscents)
+                    extY += rowMaxAscents[topIndex];
+            }
+            else
+            {
+                topIndex = 0;
+            }
+        }
+
+        maxExtent = extY + preferredHeight;
+        remainingHeight = maxExtent;
+
+        // 2) If either the top or the bottom constraint doesn't exist,
+        //    we must find the span of the element. We do this by
+        //    determining the index of the last row that the element
+        //    occupies in the unconstrained direction.
+        if (topIndex < 0 || bottomIndex < 0)
+        {
+            var isTop:Boolean = topIndex < 0;
+            var startIndex:int = isTop ? bottomIndex : topIndex;
+            var endIndex:int = isTop ? -1 : numRows;
+            var increment:int = isTop ? -1 : 1;
+
+            if (isTop) // defaults to 0
+                topIndex = 0;
+            else // defaults to numRows - 1
+                bottomIndex = numRows - 1;
+
+            for (j = startIndex; j != endIndex ; j += increment)
+            {
+                row = _constraintRows[j];
+
+                // subtract fixed rows
+                if (!isNaN(row.explicitHeight))
+                    remainingHeight -= row.explicitHeight;
+
+                if ((row.contentSize || !isNaN(row.percentHeight)) || remainingHeight < 0)
+                {
+                    if (isTop)
+                        topIndex = j;
+                    else
+                        bottomIndex = j;
+                    break;
+                }
+            }
+        }
+        // always 1 or positive.
+        span = bottomIndex - topIndex + 1;
+
+        // 3) If the element causes a row to expand, update the row height to match.
+        if (span == 1)
+        {
+            // a) For the single spanning case, we only need to check if this element's
+            //    required height is larger than the row's current height.
+            row = _constraintRows[topIndex];
+
+            if (row.contentSize || !isNaN(row.percentHeight))
+            {
+                rowHeight = Math.max(rowHeights[topIndex], extY + preferredHeight);
+
+                if (constraintsDetermineHeight(elementInfo))
+                    rowHeight = Math.max(rowHeight, extY + layoutElement.getMinBoundsHeight());
+
+                // bound with max height of row
+                if (!isNaN(row.maxHeight))
+                    rowHeight = Math.min(rowHeight, row.maxHeight);
+
+                rowHeights[topIndex] = Math.ceil(rowHeight);
+            }
+        }
+        else
+        {
+            // b) multiple spanning case. span >= 2.
+            //    1) start from topIndex and subtract fixed rows
+            //    2) divide space evenly into content/percent size rows.
+            var contentRows:Vector.<ConstraintRow> = new Vector.<ConstraintRow>();
+            var contentRowsIndices:Vector.<int> = new Vector.<int>();
+
+            remainingHeight = maxExtent;
+            for (j = topIndex; j <= bottomIndex; j++)
+            {
+                row = _constraintRows[j];
+
+                if (!isNaN(row.explicitHeight))
+                {
+                    if (remainingHeight < row.height)
+                        break;
+
+                    remainingHeight -= row.height;
+                }
+                else if (row.contentSize || !isNaN(row.percentHeight))
+                {
+                    contentRows.push(row);
+                    contentRowsIndices.push(j);
+                }
+            }
+
+            var numContentRows:Number = contentRows.length;
+            if (numContentRows > 0)
+            {
+                var splitHeight:Number = remainingHeight / numContentRows;
+
+                for (j = 0; j < numContentRows; j++)
+                {
+                    row = contentRows[j];
+
+                    rowHeight = Math.max(rowHeights[contentRowsIndices[j]], splitHeight);
+                    if (!isNaN(row.maxHeight))
+                        rowHeight = Math.min(rowHeight, row.maxHeight);
+
+                    rowHeights[contentRowsIndices[j]] = Math.ceil(rowHeight);
+                }
+            }
+        }
     }

     /**
@@ -1175,7 +1390,7 @@
      *  current constraintCache. To update the constraintCache, one needs to call
      *  the parseConstraints() method.
      */
-    private function measureRows():Vector.<Number>
+    private function measureRows(constrainedHeight:Number = NaN):Vector.<Number>
     {
         if (_constraintRows.length <= 0)
             return new Vector.<Number>();
@@ -1185,15 +1400,18 @@
         var numRows:Number = _constraintRows.length;
         var row:ConstraintRow;
         var hasContentSize:Boolean = false;
+        var hasPercentSize:Boolean = false;
         var rowHeights:Vector.<Number> = new Vector.<Number>();

         // Reset content size rows to 0.
         for (i = 0; i < numRows; i++)
         {
             row = _constraintRows[i];
-            if (row.contentSize)
-            {
-                hasContentSize = true;
+
+            if (row.contentSize || !isNaN(row.percentHeight))
+            {
+                hasContentSize ||= row.contentSize;
+                hasPercentSize ||= !isNaN(row.percentHeight);

                 if (!isNaN(row.minHeight))
                     rowHeights[i] = Math.ceil(Math.max(row.minHeight, 0));
@@ -1216,186 +1434,19 @@

         // Assumption: elements in rowSpanElements have one or more constraints touching a row.
         // This is enforced in parseElementConstraints().
-        if (rowSpanElements && hasContentSize)
-        {
-            var numRowSpanElements:Number = rowSpanElements.length;
-
-            // Measure content size rows only single span for now.
-            // If multiple span, do nothing yet.
-            for (i = 0; i < numRowSpanElements; i++)
-            {
-                var elementInfo:ElementConstraintInfo = rowSpanElements[i];
-                var layoutElement:ILayoutElement = elementInfo.layoutElement;
-                var topIndex:int = -1;
-                var bottomIndex:int = -1;
-                var span:int;
-
-                var extY:Number = 0;
-                var preferredHeight:Number = layoutElement.getPreferredBoundsHeight();
-                var maxExtent:Number;
-                var availableHeight:Number;
-
-                var j:int;
-                var rowHeight:Number = 0;
-
-                // Determine how much space the element needs to satisfy its
-                // constraints and be at its preferred height.
-                if (!isNaN(elementInfo.top))
-                {
-                    extY += elementInfo.top;
-                    if (elementInfo.topBoundary)
-                        topIndex = elementInfo.rowSpanTopIndex;
-                    else
-                        topIndex = 0; // constrained to parent
-                }
-
-                if (!isNaN(elementInfo.bottom))
-                {
-                    extY += elementInfo.bottom;
-                    if (elementInfo.bottomBoundary)
-                        bottomIndex = elementInfo.rowSpanBottomIndex;
-                    else
-                        bottomIndex = numRows - 1; // constrained to parent
-                }
-
-                // Only include baseline if at least one of top or bottom don't
-                // exist.
-                if (!isNaN(elementInfo.baseline) && (topIndex < 0 || bottomIndex < 0))
-                {
-                    extY += elementInfo.baseline - layoutElement.baselinePosition;
-
-                    if (!isNaN(elementInfo.top))
-                        extY -= elementInfo.top;
-
-                    if (elementInfo.baselineBoundary)
-                    {
-                        topIndex = elementInfo.baselineIndex;
-
-                        // add baseline offset.
-                        extY += Number(rowBaselines[topIndex][0]);
-
-                        // add maxAscent. maxAscent is 0 if not specified on the row.
-                        if (rowMaxAscents)
-                            extY += rowMaxAscents[topIndex];
-                    }
-                    else
-                    {
-                        topIndex = 0;
-                    }
-                }
-
-                maxExtent = extY + preferredHeight;
-                availableHeight = maxExtent
-
-                // If either the top or the bottom constraint doesn't exist,
-                // we must find the span of the element. We do this by
-                // determining the index of the last column that the element
-                // occupies in the unconstrained direction.
-                if (topIndex < 0 || bottomIndex < 0)
-                {
-                    var isTop:Boolean = topIndex < 0;
-                    var startIndex:int = isTop ? bottomIndex : topIndex;
-                    var endIndex:int = isTop ? -1 : numRows;
-                    var increment:int = isTop ? -1 : 1;
-
-                    // defaults to 0
-                    if (isTop)
-                        topIndex = 0;
-                    else // defaults to numRows - 1
-                        bottomIndex = numRows - 1;
-
-                    for (j = startIndex; j != endIndex ; j += increment)
-                    {
-                        row = _constraintRows[j];
-
-                        // subtract fixed rows
-                        if (!isNaN(row.explicitHeight))
-                            availableHeight -= row.explicitHeight;
-
-                        if (row.contentSize || availableHeight < 0)
-                        {
-                            if (isTop)
-                                topIndex = j;
-                            else
-                                bottomIndex = j;
-                            break;
-                        }
-                    }
-                }
-
-                // always 1 or positive.
-                span = bottomIndex - topIndex + 1;
-                //trace(span);
-
-                if (span == 1)
-                {
-                    row = _constraintRows[topIndex];
-
-                    // only measure with when dealing with content size
-                    if (row.contentSize)
-                    {
-                        rowHeight = Math.max(rowHeights[topIndex], extY + preferredHeight);
-
-                        if (constraintsDetermineHeight(elementInfo))
-                            rowHeight = Math.max(rowHeight, extY + layoutElement.getMinBoundsHeight());
-
-                        // bound with max height of row
-                        if (!isNaN(row.maxHeight))
-                            rowHeight = Math.min(rowHeight, row.maxHeight);
-
-                        rowHeights[topIndex] = Math.ceil(rowHeight);
-                    }
-                }
-                else
-                {
-                    // multiple spanning case. span >= 2.
-                    // 1) start from topIndex and subtract fixed rows
-                    // 2) divide space evenly into content size rows.
-                    var contentRows:Vector.<ConstraintRow> = new Vector.<ConstraintRow>();
-                    var contentRowsIndices:Vector.<int> = new Vector.<int>();
-
-                    availableHeight = maxExtent;
-
-                    for (j = topIndex; j <= bottomIndex; j++)
-                    {
-                        row = _constraintRows[j];
-
-                        if (!isNaN(row.explicitHeight))
-                        {
-                            availableHeight -= row.height;
-
-                            if (availableHeight < 0)
-                            {
-                                availableHeight += row.height;
-                                break;
-                            }
-                        }
-                        else if (row.contentSize)
-                        {
-                            contentRows.push(row);
-                            contentRowsIndices.push(j);
-                        }
-                    }
-
-                    var numContentRows:Number = contentRows.length;
-
-                    if (numContentRows > 0)
-                    {
-                        var splitHeight:Number = availableHeight / numContentRows;
-
-                        for (j = 0; j < numContentRows; j++)
-                        {
-                            row = contentRows[j];
-
-                            rowHeight = Math.max(rowHeights[contentRowsIndices[j]], splitHeight);
-                            if (!isNaN(row.maxHeight))
-                                rowHeight = Math.min(rowHeight, row.maxHeight);
-
-                            rowHeights[contentRowsIndices[j]] = Math.ceil(rowHeight);
-                        }
-                    }
-                }
-            }
+        if (rowSpanElements && (hasContentSize || hasPercentSize))
+        {
+            // Measure content/percent size columns.
+            for each (var elementInfo:ElementConstraintInfo in rowSpanElements)
+            {
+                updateRowHeightsForElement(rowHeights, elementInfo);
+            }
+        }
+
+        // Adjust percent size rows to account for constraining height.
+        if (!isNaN(constrainedHeight) && hasPercentSize)
+        {
+            constrainPercentRegionSizes(rowHeights, constrainedHeight, false);
         }

         return rowHeights;


Removed circular reference to QName

Removed circular reference to QName

--- frameworks/projects/Language/src/main/flex/Namespace.as
+++ frameworks/projects/Language/src/main/flex/Namespace.as
@@ -20,6 +20,10 @@
 {
 	public class Namespace
 	{
+		COMPILE::JS
+		{
+			import org.apache.flex.utils.Language;
+		}
 		COMPILE::JS
     	public function Namespace(prefixOrUri:Object=null,uriValue:Object=null)
 		{
@@ -62,10 +66,9 @@
 					_prefix = (uriVal as Namespace).prefix;
 					_uri = (uriVal as Namespace).uri;
 				}
-				else if(uriVal is QName)
+				else if(isQName(uriVal ))
 				{
-					if((uriVal as QName).uri)
-						_uri = (uriVal as QName).uri;
+					_uri = uriVal.uri ? uriVal.uri : _uri;
 				}
 				else {
 					_uri = uriVal.toString();
@@ -76,10 +79,10 @@
 			else if(uriValue)
 			{
 				// something is specified as the URI otherwise fall through and leave both the prefix and uri blank
-				if(uriValue is QName)
+				if(isQName(uriValue ))
 				{
-					if((uriValue as QName).uri)
-						_uri = (uriValue as QName).uri;
+					if(uriValue.uri)
+						_uri = uriValue.uri;
 				}
 				else {
 					_uri = uriValue.toString();
@@ -96,6 +99,16 @@
 					_prefix = prefixOrUri.toString();

 			}
+		}
+
+		// Using this instead of simply using "is QName" because "is QName" causes a circular dependency.
+		private function isQName(val:Object):Boolean
+		{
+			if(val==null)
+				return false;
+			if(val.hasOwnProperty("uri") && val.hasOwnProperty("localName") && val.hasOwnProperty("prefix"))
+				return true;
+			return false;
 		}

 		private var _uri:String = "";