Updated CensusDataSource to use new WeaveTreeDescriptorNode and ColumnTreeNode features.

--- WeaveData/src/weave/data/DataSources/CensusDataSource.as
+++ WeaveData/src/weave/data/DataSources/CensusDataSource.as
@@ -27,6 +27,7 @@
     import weave.compiler.Compiler;
     import weave.compiler.StandardLib;
     import weave.core.LinkableString;
+    import weave.core.LinkableVariable;
     import weave.data.AttributeColumns.ProxyColumn;
     import weave.data.hierarchy.ColumnTreeNode;
     import weave.services.JsonCache;
@@ -47,14 +48,14 @@
         private static const GEOGRAPHY_LINK:String = "__CensusDataSource__geographyLink";
         private static const VARIABLES_LINK:String = "__CensusDataSource__variablesLink";

+
         private static const GEOGRAPHY_REQUIRES:String = "__CensusDataSource__geographyRequires";
         private static const GEOGRAPHY_NAME:String = "__CensusDataSource__geographyName";
+        private static const CONCEPT_NAME:String = "__CensusDataSource__conceptName";
         private static const GEOGRAPHY_LEVEL_ID:String = "__CensusDataSource__geoLevelId";
         private static const VARIABLE_NAME:String = "__CensusDataSource__variableName";

         private static const WEB_SERVICE:String = "__CensusDataSource__webService";
-
-        private static const META_ID_FIELDS:Array = [WEB_SERVICE, GEOGRAPHY_NAME, VARIABLE_NAME, GEOGRAPHY_REQUIRES];

         public function CensusDataSource()
         {
@@ -72,7 +73,7 @@

 		private const jsonCache:JsonCache = newLinkableChild(this, JsonCache);

-		public const keyTypeOverride:LinkableString = newLinkableChild(this, LinkableString);
+		public const keyTypeOverride:LinkableVariable = newLinkableChild(this, LinkableVariable);
 		public const apiKey:LinkableString = registerLinkableChild(this, new LinkableString(""));
 		private var nodeCache:Object = {};

@@ -133,6 +134,7 @@
 				dataSource: this,
 				data: data,
 				label: data.label,
+				idFields: [WEB_SERVICE],
 				hasChildBranches: true,
 				children: function(node:ColumnTreeNode):Array {
 					var children:Array = [];
@@ -166,12 +168,12 @@
 				dataSource: this,
 				data: data,
 				label: data[GEOGRAPHY_NAME],
+				idFields: [WEB_SERVICE, GEOGRAPHY_NAME, GEOGRAPHY_REQUIRES],
 				hasChildBranches: true,
 				children: function (node:ColumnTreeNode):Array {
 					const children:Array = [];
 					jsonCache.getJsonObject(data[VARIABLES_LINK], function(result:Object):void
 						{
-							data.cache = result;
 							var key:String;
 							var concepts:Object = {};
 							/* Build a hierarchy out of 'concepts', roughly speaking, tables. */
@@ -186,21 +188,19 @@

-								var metadata:Object = {};
-								metadata[WEB_SERVICE] = data[WEB_SERVICE];
-								metadata[GEOGRAPHY_NAME] = data[GEOGRAPHY_NAME];
-								metadata[GEOGRAPHY_REQUIRES] = data[GEOGRAPHY_REQUIRES];
+								var metadata:Object = VectorUtils.getItems(data, node.idFields);
 								metadata[VARIABLE_NAME] = key;
-								metadata.label = column.label;
+								metadata[CONCEPT_NAME] = concept_name;
+								metadata[ColumnMetadata.TITLE] = column.label;
 								concepts[concept_name][key] = metadata;
 							}

 							for (key in concepts)
 							{
-								children.push(createConceptNode({
-									variables: concepts[key],
-									name: key
-								}));
+								var concept_metadata:Object = VectorUtils.getItems(data, node.idFields);
+								concept_metadata[CONCEPT_NAME] = key;
+								concept_metadata.variables = concepts[key];
+								children.push(createConceptNode(concept_metadata));
 							}
 							StandardLib.sortOn(children, "label");
 						}
@@ -215,15 +215,16 @@
 			return new ColumnTreeNode({
 				dataSource: this,
 				data: data,
-				label: data.name || "No Table",
+				label: data[CONCEPT_NAME] || "No Table",
 				hasChildBranches: false,
+				idFields: [WEB_SERVICE, GEOGRAPHY_NAME, GEOGRAPHY_REQUIRES, CONCEPT_NAME],
 				children: function (node:ColumnTreeNode):Array {
 					var children:Array = [];
 					for (var key:String in node.data.variables)
 					{
 						children.push(createVariableNode(node.data.variables[key]));
 					}
-					//StandardLib.sortOn(children, "label");
+					StandardLib.sortOn(children, "label");
 					return children;
 				}
 			});
@@ -232,12 +233,12 @@

 		public function createVariableNode(data:Object):ColumnTreeNode
 		{
-			return setIndexedNode(data, new ColumnTreeNode({
-				dataSource: this,
-				data: data,
-				label: data.label,
+			return new ColumnTreeNode({
+				dataSource: this,
+				data: data,
+				idFields: [WEB_SERVICE, GEOGRAPHY_NAME, GEOGRAPHY_REQUIRES, CONCEPT_NAME, VARIABLE_NAME],
 				hasChildBranches: false
-			}));
+			});
 		}

 		private function handleFault(event:FaultEvent, token:Object = null):void
@@ -251,23 +252,6 @@
                 _rootNode = createTopLevelNode();
             return _rootNode;
         }
-
-        private var _indexedNodes:Object = {};
-        private function setIndexedNode(metadata:Object, node:IWeaveTreeNode):ColumnTreeNode
-        {
-        	var key:String = Compiler.stringify(VectorUtils.getItems(metadata, META_ID_FIELDS));
-        	return _indexedNodes[key] = node;
-        }
-        private function getIndexedNode(metadata:Object):ColumnTreeNode
-        {
-        	var key:String = Compiler.stringify(VectorUtils.getItems(metadata, META_ID_FIELDS));
-        	return _indexedNodes[key];
-        }
-
-		override public function findHierarchyNode(metadata:Object):IWeaveTreeNode
-		{
-			return getIndexedNode(metadata);
-		}

 		override protected function generateHierarchyNode(metadata:Object):IWeaveTreeNode
 		{
@@ -276,7 +260,7 @@

 			return new ColumnTreeNode({
 				dataSource: this,
-				idFields: META_ID_FIELDS,
+				idFields: [WEB_SERVICE, GEOGRAPHY_NAME, GEOGRAPHY_REQUIRES, CONCEPT_NAME, VARIABLE_NAME],
 				data: metadata
 			});
 		}
@@ -300,7 +284,7 @@
         		"for": geography_name + ":*"
         	};

-        	metadata[ColumnMetadata.KEY_TYPE] =  key_column_names.join(0);
+        	metadata[ColumnMetadata.KEY_TYPE] =  key_column_names.join("");

         	proxyColumn.setMetadata(metadata);


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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPSet.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPSet.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: 10203
Author:   klin@adobe.com
Date:     2009-09-12T23:14:39.753219Z

Log Message:
-----------
http://bugs.adobe.com/jira/browse/SDK-23113 - Bug where backgroundColor and backgroundAlpha would show up twice in the ASDocs.

I pulled out the two styles into separate style files that distinguish between having just the halo theme (some components) or both halo and spark (Container and container subclasses). Updated other components to include the right style files.

QE notes: None
Doc notes: Check to make sure duplicates are not there.
Bugs: SDK-23113
Reviewer: Glenn
Tests run: local asdoc
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BackgroundStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/framework/src/mx/controls/ToolTip.as
+++ frameworks/projects/framework/src/mx/controls/ToolTip.as
@@ -53,6 +53,7 @@
     textDecoration
 */

+include "../styles/metadata/BackgroundStyles.as"
 include "../styles/metadata/BorderStyles.as"
 include "../styles/metadata/LeadingStyle.as"
 include "../styles/metadata/PaddingStyles.as"


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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

 package mx.utils
 {


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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 13208
Author:   chaase@adobe.com
Date:     2009-12-23T21:49:14.524642Z

Log Message:
-----------
Dealt with my FIXMEs in the code. Some went away (no longer issues), some became TODOs (still issues, but nothing that we have to solve in this release), a couple were actually resolved in this change (like the bug filed/fixed: 24848).

QE notes: 10 failures in Mustella of tests that need to be changed. They're excluded for now and QE has local fixes.
Doc notes: None
Bugs: SDK-24848
Reviewer: Jason
Tests run: checkintests, Mustella (spark/effects, mx/effects)
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PropertyChanges.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Timeline.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.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/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/AddAction.as
+++ frameworks/projects/spark/src/spark/effects/AddAction.as
@@ -346,8 +346,6 @@
         {
             if (target.parent)
             {
-                // FIXME (chaase): workaround for current situation of mis-match between
-                // Group having 'item's and Flex3 components having 'parent's
                 if (target.parent is IVisualElementContainer)
                     IVisualElementContainer(target.parent).removeElement(target as IVisualElement);
                 else


fix fix for FLEX-34454

fix fix for FLEX-34454

--- frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
@@ -1047,7 +1047,7 @@
             // don't remove blur unless this is the first modal window to put up the blur
             if (blurOwners[sm] != null && blurOwners[sm] == o.owner)
             {
-
+                blurOwners[sm] = null;
                 // Blur effect on the application
                 const blurAmount:Number = popUpStyleClient.getStyle("modalTransparencyBlur");


Transferred from the Adobe Open Source Subversion Repository

Revision: 22355
Author:   mijordan@adobe.com
Date:     2011-09-01T17:21:00.555844Z

Log Message:
-----------
Fix for SDK-30749 Modal popup do not behave in a modal fashion.

The fix prevents content underneath a modal pop-up from being voiced by a screen reader.  The fix also removes redundant code from AlertAccImpl that caused issues with Alerts launched by sub-applications under the Marshall Plan.

QE notes: Must be verified manually with a screen reader or other MSAA client.
Doc notes:
Bugs:  SDK-30749
Reviewer:  Max Vujovic, Carol
Tests run: checkin, mustella
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/accessibility/AlertAccImpl.as</path>

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

--- frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
@@ -12,6 +12,8 @@
 package mx.managers
 {

+import flash.accessibility.Accessibility;
+import flash.accessibility.AccessibilityProperties;
 import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;
 import flash.display.Graphics;
@@ -23,6 +25,7 @@
 import flash.events.MouseEvent;
 import flash.geom.Point;
 import flash.geom.Rectangle;
+import flash.system.Capabilities;

 import mx.automation.IAutomationObject;
 import mx.core.FlexGlobals;
@@ -396,7 +399,11 @@

         if (modal)
         {
-            // create a modal window shield which blocks input and sets up mouseDownOutside logic
+			// handles accessibility for modal popUps.
+			if(Capabilities.hasAccessibility && Accessibility.active)
+				window.addEventListener(FlexEvent.CREATION_COMPLETE, modalPopUpCreationCompleteHandler, false, 0, true);
+
+			// create a modal window shield which blocks input and sets up mouseDownOutside logic
             createModalWindow(parent, o, children, visibleFlag, smp, smp.getSandboxRoot());
         }
         else
@@ -1021,22 +1028,33 @@
 		    dispatchEvent(dynamicEvent);
         }
     }
-
-    /**
-     *  @private
-     *  Returns the PopUpData (or null) for a given popupInfo.owner
-     */
-    private function findPopupInfoByOwner(owner:Object):PopUpData
-    {
-        const n:int = popupInfo.length;
-        for (var i:int = 0; i < n; i++)
-        {
-            var o:PopUpData = popupInfo[i];
-            if (o.owner == owner)
-                return o;
-        }
-        return null;
-    }
+
+	/**
+	 *  @private
+	 *  Returns the index position of the PopUpData in the popupInfo array (or -1)
+	 *  for a given popupInfo.owner
+	 */
+	private function findPopupInfoIndexByOwner(owner:Object):int
+	{
+		const n:int = popupInfo.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			var o:PopUpData = popupInfo[i];
+			if (o.owner == owner)
+				return i;
+		}
+		return -1;
+	}
+
+	/**
+	 *  @private
+	 *  Returns the PopUpData (or null) for a given popupInfo.owner
+	 */
+	private function findPopupInfoByOwner(owner:Object):PopUpData
+	{
+		var index:int = findPopupInfoIndexByOwner(owner);
+		return index > -1 ? popupInfo[index] : null;
+	}

     /**
      *  @private
@@ -1199,8 +1217,11 @@
                 // modal
                 if (modalWindow)
                 {
-                    // clean up all handlers
-                    sm.removeEventListener(Event.RESIZE, o.resizeHandler);
+					// restore accessibility to document
+					removeModalPopUpAccessibility(popUp);
+
+					// clean up all handlers
+					sm.removeEventListener(Event.RESIZE, o.resizeHandler);

                     popUp.removeEventListener(FlexEvent.SHOW, popupShowHandler);
                     popUp.removeEventListener(FlexEvent.HIDE, popupHideHandler);
@@ -1385,6 +1406,145 @@
         owner.dispatchEvent(event);
     }

+	/**
+	 * @private
+	 * This method handles the creation of a modal popUp
+	 */
+	private function modalPopUpCreationCompleteHandler(event:FlexEvent):void
+	{
+		event.target.removeEventListener(FlexEvent.CREATION_COMPLETE, modalPopUpCreationCompleteHandler);
+
+		addModalPopUpAccessibility(event.currentTarget as DisplayObject);
+	}
+
+	/**
+	 * @private
+	 * This method handles the creation of a modal popUp when assistive
+	 * technology is active, by silencing the content of the top-level document.
+	 */
+	private function addModalPopUpAccessibility(popUp:DisplayObject):Boolean
+	{
+		if (Capabilities.hasAccessibility && Accessibility.active)
+		{
+			const p:PopUpData = findPopupInfoByOwner(popUp);
+
+			if (p)
+			{
+				const n:int = popupInfo.length;
+				for (var i:int = 0; i < n; i++)
+				{
+					var o:PopUpData = popupInfo[i];
+					if (o && o != p)
+					{
+						o.owner.accessibilityProperties.silent	= true;
+					}
+				}
+
+				var sbRoot:Object = p.systemManager.getSandboxRoot(); // getTopLevelSystemManager(p.parent);
+
+				if (!sbRoot.document.accessibilityProperties)
+					sbRoot.document.accessibilityProperties = new AccessibilityProperties();
+
+				// This hides top-level document content from assistive technology.
+				sbRoot.document.accessibilityProperties.silent = true;
+
+				Accessibility.updateProperties();
+			}
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * @private
+	 * This method handles the removal of a modal popUp when assistive technology is active,
+	 * by exposing the content of the top-level document.
+	 *
+	 * @return
+	 */
+	private function removeModalPopUpAccessibility(popUp:DisplayObject):Boolean
+	{
+		if (Capabilities.hasAccessibility && Accessibility.active)
+		{
+			const p:PopUpData = findPopupInfoByOwner(popUp);
+
+			if (p)
+			{
+				handleAccessibilityForNestedPopups(popUp);
+
+				if (!popupInfo.length)
+				{
+					var sbRoot:Object = p.systemManager.getSandboxRoot();
+					sbRoot.document.accessibilityProperties.silent = false;
+				}
+
+				Accessibility.updateProperties();
+			}
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * @private
+	 * This method handles accessibility for nested popUps.
+	 * If this method is called from outside removeModalPopUpAccessibility,
+	 * it is mandatory to invoke Accessibility.updateProperties() to communicate
+	 * the individual popup's accessibilityProperties change to the screen reader.
+	 *
+	 *
This method should only come into play with modal popUps, in which case it will
+	 * either expose accessibility of a modal popUp underneath the popUp being closed
+	 * without exposing the underlying content, or continue exposing accessibility
+	 * of popUps until there are no more to expose.

+	 */
+	private function handleAccessibilityForNestedPopups(popUpBeingVisited:DisplayObject):void
+	{
+		if (!popUpBeingVisited)
+			return;
+
+		var index:int = findPopupInfoIndexByOwner(popUpBeingVisited);
+		var popupData:PopUpData = index > -1 ? popupInfo[index] : null;
+		var underneathPopUpData:PopUpData;
+
+
+		if (index == 0)
+		{
+			var sm:ISystemManager = getTopLevelSystemManager(popupData.parent);
+
+			if (sm)
+			{
+				// If this is the only popUp, we should expose accessibility
+				// of the top-level system manager's document
+				sm.document.accessibilityProperties.silent = false;
+
+				// We should also expose accessibility
+				// of the sandbox root's document.
+				var sbRoot:Object = sm.getSandboxRoot();
+				sbRoot.document.accessibilityProperties.silent = false;
+			}
+		}
+		else if (index > 0)
+		{
+			// If more than one popUp is open, we should expose accessibility
+			// of the underlying popUp
+			underneathPopUpData = popupInfo[index - 1];
+
+			underneathPopUpData.owner.accessibilityProperties.silent = false;
+
+			// All the nested popUp's AccessibilityProperties
+			// changes should be handled by a single
+			// Accessibility.updateProperties
+			// call in removeModalPopUpAccessibility.
+
+			// If the underlying popUp is modal, we should stop recursing.
+			if (underneathPopUpData.modalWindow)
+				return;
+
+
+			handleAccessibilityForNestedPopups(underneathPopUpData.owner);
+		}
+	}
+
 }

 }


fixed bug where tool right-click csv export didn't work

--- WeaveUI/src/weave/application/VisApplication.as
+++ WeaveUI/src/weave/application/VisApplication.as
@@ -1549,7 +1549,7 @@
 				var attrs:Array = [];
 				if (tool)
 				{
-					VectorUtils.flatten(tool.getSelectableAttributes());
+					VectorUtils.flatten(tool.getSelectableAttributes(), attrs);
 				}
 				else
 				{


Perform a better fitting for menu's in a bounded region, so they'll position themself for
maximum visibility even if they can't fully pop up/down, left/right.  (Menu's larger than
the bounded area will still have some issues).

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@417 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flex/CommandMenu.as
+++ src/as/com/threerings/flex/CommandMenu.as
@@ -72,7 +72,7 @@
  * ];
  *
  * See "Defining menu structure and data" in the Flex manual for the full list.
- */
+ */
 public class CommandMenu extends Menu
 {
     /**
@@ -139,8 +139,15 @@
         if (mx + getExplicitOrMeasuredWidth() > bounds.right) {
             mx -= getExplicitOrMeasuredWidth();
         }
+        if (mx < bounds.left) {
+            mx = Math.max(bounds.right - getExplicitOrMeasuredWidth(), bounds.left);
+        }
+        // if we've poped out of the boundaries, just snap it to the lower right corner
         if (my + getExplicitOrMeasuredHeight() > bounds.bottom) {
             my -= getExplicitOrMeasuredHeight();
+        }
+        if (my < bounds.top) {
+            my = Math.max(bounds.bottom - getExplicitOrMeasuredHeight(), bounds.top);
         }

         // finally move it to the correct position
@@ -265,6 +272,17 @@
         if (upping) {
             submenu.y -= (submenu.getExplicitOrMeasuredHeight() - DisplayObject(row).height);
         }
+        // if we've poped out of the boundaries, just snap it to the lower right corner
+        if (_fitting != null) {
+            if (submenu.x < _fitting.left) {
+                submenu.x = Math.max(
+                        _fitting.right - submenu.getExplicitOrMeasuredWidth(), _fitting.left);
+            }
+            if (submenu.y < _fitting.top) {
+                submenu.y = Math.max(
+                        _fitting.bottom - submenu.getExplicitOrMeasuredHeight(), _fitting.top);
+            }
+        }
     }

     // from List


SwfTexture uses DisplayUtil.applyToHierarchy

--- exporter/src/main/as/flump/SwfTexture.as
+++ exporter/src/main/as/flump/SwfTexture.as
@@ -20,6 +20,8 @@
 import flump.mold.MovieMold;
 import flump.xfl.XflLibrary;
 import flump.xfl.XflTexture;
+
+import com.threerings.display.DisplayUtil;

 public class SwfTexture
 {
@@ -136,30 +138,19 @@
         _w = _visualBounds.width;
         _h = _visualBounds.height;
     }
-
+
     private function hasPotentiallySizeAlteringFilters(dObj:DisplayObject) :Boolean {
-        // check dObj's filter list
-        var filters:Array = dObj.filters;
-        for (var ff:int = 0, nf:int = filters.length; ff < nf; ++ff) {
-            // all standard filters except ColorMatrixFilter can change the visual bounds
-            if (!(filters[ff] is ColorMatrixFilter)) {
-                return true;
-            }
-        }
-        // recursively check children
-        var dObjContainer:flash.display.DisplayObjectContainer = dObj as flash.display.DisplayObjectContainer;
-        if (dObjContainer) {
-            for (var cc:int = 0, nc:int = dObjContainer.numChildren; cc < nc; ++cc) {
-                var child:DisplayObject = dObjContainer.getChildAt(cc);
-                if (hasPotentiallySizeAlteringFilters(child)) {
+        return DisplayUtil.applyToHierarchy(dObj, function (disp :DisplayObject) :Boolean {
+            for each (var filter :Object in disp.filters) {
+                // all standard filters except ColorMatrixFilter can change the visual bounds
+                if (!(filter is ColorMatrixFilter)) {
                     return true;
                 }
             }
-        }
-        // all clear
-        return false;
+            return false;
+        });
     }
-
+
     private var _disp :DisplayObjectContainer;
     private var _w :int, _h :int;
     private var _origin :Point;


Add togglePause function and temporary fix function seek on end range

--- src/main/actionscript/com/castlabs/dash/DashNetStream.as
+++ src/main/actionscript/com/castlabs/dash/DashNetStream.as
@@ -124,6 +124,16 @@
                 break;
         }
     }
+
+	override public function togglePause(): void {
+		if (time >= _duration)
+			return;
+
+		if (_state == PLAYING)
+			pause();
+		else
+			resume();
+	}

     override public function pause():void {
         super.pause();
@@ -148,6 +158,9 @@
     }

     override public function seek(offset:Number):void {
+		if (offset >= MIN_BUFFER_TIME)
+			offset = offset - MIN_BUFFER_TIME - 1;
+
         switch (_state) {
             case PAUSED:
             case SEEKING:


Transferred from the Adobe Open Source Subversion Repository

Revision: 4986
Author:   egreenfi@adobe.com
Date:     2009-02-17T17:37:46.647032Z

Log Message:
-----------
Fix for SDK-19276

recent optimizations in the GraphicElement validation phase didn't take into account the reordering of children caused by non-zero layer values.  This fix assumes that children with non-zero layers have their own display object, but subsequent children might sitll share display objects with previous children.

Review: Evtim
QA: Yes
Doc: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -397,9 +397,15 @@
 	            if (element)
 	            {
 	            	var elementSprite:InvalidatingSprite = element.displayObject as InvalidatingSprite;
-
+	            	var elementHasOwnDisplayObject:Boolean = element.needsDisplayObject;
 	            	// Each element must either have a displayObject or sharedDisplayObject property
-	            	if (elementSprite)
+	            	// if the element has a layer set on it, then it's rendering into its own display object.
+	            	// in that case, calling the previous invalidating display object is incorrect, because the subsequent
+	            	// element might still be sharing the DO with the previous element. But then we know that this one has
+	            	// its own display object. If that's the case, we can just update this one, and continue on with our grouping logic
+	            	// as though we never saw this one.
+	            	//
+	            	if (!elementHasOwnDisplayObject && elementSprite)
 	            	{
 	            		if (currentSharedSprite)
 	            		{
@@ -411,9 +417,14 @@
 	            	}

 	            	// currentSharedSprite is null if the Group is the sharedDisplayObject.
-	            	if (currentSharedSprite == null || currentSharedSprite.invalid)
+	            	if (elementSprite == null || elementSprite.invalid)
 	            	{
 	            		element.validateDisplayList();
+		            	if(elementHasOwnDisplayObject && elementSprite)
+		            	{
+		            		//we're about to forget about this invalidating displayobject, so mark it valid
+		            		elementSprite.invalid = false;
+		            	}
 	            	}

 	            }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4922
Author:   gosmith@adobe.com
Date:     2009-02-10T22:19:49.510252Z

Log Message:
-----------
Renamed mx.graphics.graphicsClasses to mx.graphics.baseClasses, based on PARB review.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextFlowComposer.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as" copyfrom-rev="4920" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextGraphicElement.as" copyfrom-rev="4920" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/StrokedElement.as</path>
<path kind="dir" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses" copyfrom-rev="4916" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextBlockComposer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/Panel.as
+++ frameworks/projects/spark/src/spark/components/Panel.as
@@ -11,7 +11,8 @@

 package mx.components
 {
-import mx.graphics.graphicsClasses.TextGraphicElement;
+
+import mx.graphics.baseClasses.TextGraphicElement;

 [IconFile("FxPanel.png")]


working around flex/flash bug.

working around flex/flash bug.

--- WeaveUI/src/weave/ui/FlexibleLayout.as
+++ WeaveUI/src/weave/ui/FlexibleLayout.as
@@ -54,6 +54,20 @@
 		private const _children:LinkableHashMap = registerLinkableChild(this, new LinkableHashMap(), adjustChildFlexValues, true);
 		private var _childNamesForMapChildInput:Array;
 		private const _originalParents:Dictionary = new Dictionary(true);
+
+		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+		{
+			try
+			{
+				super.updateDisplayList(unscaledWidth, unscaledHeight);
+			}
+			catch (e:Error)
+			{
+				// ignore getChildAt() errors
+				if (e.errorID != 2006)
+					throw e;
+			}
+		}

 		private function handleChildAdd(event:ChildExistenceChangedEvent):void
 		{


UI no longer appears when time is in motion

--- src/LevelState.as
+++ src/LevelState.as
@@ -35,6 +35,8 @@
 		protected var modeListOpen:Boolean;
 		protected var moduleListOpen:Boolean;
 		protected var UIChanged:Boolean;
+		protected var editEnabled:Boolean = true;
+		protected var displayTime:DTime;
 		protected var preserve:Boolean;

 		protected var moduleList:ButtonList;
@@ -104,22 +106,30 @@
 		}

 		protected function makeUI():void {
-			//buttons = new Vector.<MenuButton>;
 			upperLayer = new FlxGroup;
 			UIChanged = true;
+
+			upperLayer.add(editEnabled ? displayTime = new DTime(FlxG.width / 2 - 50, 10) : displayTime);
+			upperLayer.add(new Scroller);
+			upperLayer.add(new DCurrent(displayWires, displayModules));
+			makeDataButton();
+			makeBackButton();
+
+			if (!editEnabled) {
+				modeListOpen = moduleListOpen = false;
+				if (currentModule) {
+					currentModule.exists = false;
+					currentModule = null;
+				}
+				return;
+			}

 			modeListOpen ? makeModeMenu() : makeModeButton();
 			if (mode == MODE_MODULE)
 				moduleListOpen ? makeModuleList() : makeModuleButton();
-			makeBackButton();
 			makeSaveButton();
 			makeUndoButtons();
-			makeDataButton();
 			makeRandomButton();
-
-			upperLayer.add(new DTime(FlxG.width / 2 - 50, 10));
-			upperLayer.add(new Scroller);
-			upperLayer.add(new DCurrent(displayWires, displayModules));
 		}

 		protected function makeBackButton():void {
@@ -252,6 +262,7 @@
 			super.update();
 			checkBuildControls();
 			checkMenuState();
+			checkTime();
 			forceScroll();
 		}

@@ -379,6 +390,13 @@
 						moduleList.justDie = moduleList.closesOnClickOutside = false;
 						break;
 					}
+			}
+		}
+
+		protected function checkTime():void {
+			if (editEnabled != time.moment == 0) {
+				editEnabled = time.moment == 0;
+				makeUI();
 			}
 		}


fixed null pointer error

fixed null pointer error

--- WeaveData/src/weave/data/KeySets/KeySetUnion.as
+++ WeaveData/src/weave/data/KeySets/KeySetUnion.as
@@ -131,7 +131,7 @@
 					_asyncKeyIndex = 0;
 				}

-				for (; _asyncKeyIndex < _asyncKeys.length; _asyncKeyIndex++)
+				for (; _asyncKeys && _asyncKeyIndex < _asyncKeys.length; _asyncKeyIndex++)
 				{
 					if (getTimer() > stopTime)
 						return (_asyncKeySetIndex + _asyncKeyIndex / _asyncKeys.length) / _keySets.length;


cleanup imports

cleanup imports

--- WeaveData/src/weave/services/ProxyAsyncToken.as
+++ WeaveData/src/weave/services/ProxyAsyncToken.as
@@ -27,7 +27,6 @@
 	import mx.rpc.events.ResultEvent;
 	import mx.utils.ObjectUtil;

-	import weave.api.reportError;
 	import weave.utils.fixErrorMessage;

 	use namespace mx_internal;


added stub methods flatten & unflatten to View class.

--- src/engine/tetragon/view/native/View.as
+++ src/engine/tetragon/view/native/View.as
@@ -141,6 +141,8 @@
 		/** @private */
 		protected var _paused:Boolean;
 		/** @private */
+		protected var _flattened:Boolean;
+		/** @private */
 		protected var _layoutOnce:Boolean;
 		/** @private */
 		protected var _isLaidout:Boolean;
@@ -258,6 +260,28 @@
 			if (!_started) return;
 			executeOnChildren(EXEC_STOP);
 			_started = false;
+		}
+
+
+		/**
+		 * Flattens the view. This will change all of the view's contents to be flattened
+		 * and rendered to a single bitmap (baked). If the view is resized after it was
+		 * flattened, it will be re-flattened with the new size.
+		 */
+		public function flatten():void
+		{
+			_flattened = true;
+			// TODO
+		}
+
+
+		/**
+		 * Unflattens the view.
+		 */
+		public function unflatten():void
+		{
+			_flattened = false;
+			// TODO
 		}


Logic tweak for getting video segments

Logic tweak for getting video segments

--- HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
+++ HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
@@ -395,7 +395,7 @@
 			{
 				var curSegment:HLSManifestSegment = segments[i];

-				if(curSegment.duration >= time - accum)
+				if(curSegment.duration > time - accum)
 				{
 					lastSegmentIndex = i;
 					fileHandler.segmentId = lastSegmentIndex;


getting rid of debugging trace statements.

--- src/org/swiftsuspenders/Injector.as
+++ src/org/swiftsuspenders/Injector.as
@@ -197,9 +197,6 @@
 						configNode.metadata.arg.@key = "name";
 						configNode.metadata.arg.@value = node.@injectionname;
 					}
-					trace("node:" + node.toXMLString());
-					trace("configNode:" + configNode.toXMLString());
-					trace("metadata:" + configNode.metadata[0]);
 					injectionPoint = new VariableInjectionPoint(configNode.metadata[0], m_mappings);
 					injectionPoints.push(injectionPoint);
 				}


JavaScript API now supports integer indexing for ILinkableHashMap
children in paths.

Change-Id: Ic48a1082658f4612f1cf37ac27e196ae9f4ca14d

--- WeaveCore/src/weave/core/ExternalSessionStateInterface.as
+++ WeaveCore/src/weave/core/ExternalSessionStateInterface.as
@@ -27,12 +27,10 @@
 	import weave.api.core.ILinkableDynamicObject;
 	import weave.api.core.ILinkableHashMap;
 	import weave.api.core.ILinkableObject;
-	import weave.api.core.ILinkableVariable;
 	import weave.api.getCallbackCollection;
 	import weave.api.reportError;
 	import weave.compiler.Compiler;
 	import weave.compiler.ICompiledObject;
-	import weave.compiler.ProxyObject;

 	/**
 	 * A set of static functions intended for use as a JavaScript API.
@@ -57,13 +55,16 @@
 		public function getObject(objectPath:Array):ILinkableObject
 		{
 			var object:ILinkableObject = _rootObject;
-			for each (var propertyName:String in objectPath)
+			for each (var propertyName:Object in objectPath)
 			{
 				if (object == null)
 					return null;
 				if (object is ILinkableHashMap)
-				{
-					object = (object as ILinkableHashMap).getObject(propertyName);
+				{
+					if (propertyName is Number)
+						object = (object as ILinkableHashMap).getObjects()[propertyName];
+					else
+						object = (object as ILinkableHashMap).getObject(String(propertyName));
 				}
 				else if (object is ILinkableDynamicObject)
 				{


Transferred from the Adobe Open Source Subversion Repository

Revision: 4144
Author:   gosmith@adobe.com
Date:     2008-11-19T23:31:16.564278Z

Log Message:
-----------
FxComponent, GroupBase, and TextView now override the 'baselinePosition' getter to avoid calling the code in UIComponent that is suitable only for Halo components based on TextField. (It RTEs if it encounters certain Gumbo styles such as a textAlign of "start" rather than "left".)

For now, the baselinePosition of Gumbo components is simply reported as 0, so they won't lay out nicely in FormItems. We will need to properly implement baselinePosition across all Gumbo components, using FTE/TLF.

QE Notes: None
Doc Notes: None
Bugs: SDK-18060
Reviewer: Glenn

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

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


trim white space in URL, if any fix #107

--- src/org/mangui/hls/playlist/Manifest.as
+++ src/org/mangui/hls/playlist/Manifest.as
@@ -418,6 +418,8 @@
         private static function _extractURL(path : String, base : String) : String {
             var _prefix : String = null;
             var _suffix : String = null;
+            //trim white space if any
+            path.replace(replacespace,"");
             if (path.substr(0, 7) == 'http://' || path.substr(0, 8) == 'https://') {
                 return path;
             } else {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4255
Author:   rfrishbe@adobe.com
Date:     2008-12-08T23:32:25.912094Z

Log Message:
-----------
GraphicElements are no longer supported in DataGroup.  This allowed us to clean up a lot of the code (hurray!)

Moreover, there are some other cleanups.  We now support null items.  Item renderers are strongly typed as IVisualElements now (an item renderer must be an IVisualElement and a DisplayObject).  We also don't dispatch events when changing the itemRenderer or itemRendererFunction anymore as there's no need to do it and no need to make these properties bindable.

Also a minor fix in FlexNativeMenu where the binding metadata was using the wrong event.

QE Notes: Steve's already changed mustella tests for me.
Doc Notes: None
Bugs: SDK-18040, SDK-18046, SDK-18045
Reviewer: Glenn
tests: checkintests, mustella DataGroup, FxDataContainer, FxList, Group

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as
+++ frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as
@@ -417,7 +417,7 @@
      */
     private var _nativeMenu:NativeMenu = new NativeMenu();

-    [Bindable("nativeMenuUpdate")]
+    [Bindable("nativeMenuChange")]

     //----------------------------------
     //  nativeMenu


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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

 package mx.graphics.codec
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3734
Author:   pfarland@adobe.com
Date:     2008-10-18T05:13:34.132420Z

Log Message:
-----------
Fixing advanced CSS descendant selectors for the alpha release.

- We now check descendant types against any superclass.

- Removed StyleProtoChain.getClassStyleDeclarations()'s recursive "Class" lookup for each superclass of an IStyleClient during the search for type selectors in the hierarchy. This was replaced with a simple describeType-based description (called once per type).

- Added a method to report whether any advanced styles had been registered with the StyleManager to optimize style declaration matching for the default case of simple style declarations.

- Removed advanced selector cache key calculation from StyleProtoChain in favor of the legacy simple type level cache. Future work may be required to cache advanced, display list sensitive style information.

- Fixed the specificity calculation for global selectors.

QE: Yes
Doc: No.
Checkintests: Pass
mxunit styles tests: Pass
select mustella styles tests: Pass
Reviewer: Glenn

Bugs:
SDK-17351 - [Advanced CSS] Descendant selectors don't work for Application
SDK-17361 - [Advanced CSS] If you use descendant and id selectors together, the id selector doesn't work correctly
SDK-17385 - [Advanced CSS] If you use descendant and class selectors together, the class selector doesn't work correctly

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/NameUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</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/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager3.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>

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

--- frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
+++ frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
@@ -337,19 +337,38 @@
     //--------------------------------------------------------------------------

     /**
-     * Determines whether this style declaration applies to the given component
-     * based on a match of the selector chain.
+     * @private
+     * Determines whether this style declaration has an advanced selector.
+     */
+    public function isAdvanced():Boolean
+    {
+        if (selector != null &&
+           (selector.kind == CSSSelectorKind.DESCENDANT_SELECTOR ||
+           (selector.kind == CSSSelectorKind.CONDITIONAL_SELECTOR &&
+                subject != "global")))
+        {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     *  Determines whether this style declaration applies to the given component
+     *  based on a match of the selector chain.
      *
-     * @return true if this style declaration applies to the component, or
-     * false if not.
-     */
-    public function isMatch(object:IAdvancedStyleClient, ignoreType:Boolean=false):Boolean
-    {
-        return selector.isMatch(object, ignoreType);
-    }
-
-    /**
-     * @private
+     *  @return true if this style declaration applies to the component, or
+     *  false if not.
+     */
+    public function isMatch(object:IAdvancedStyleClient):Boolean
+    {
+        return selector.isMatch(object);
+    }
+
+    /**
+     *  @private
+     *  Determines whether the selector chain for this style declaration makes
+     *  use of a pseudo selector.
      */
     public function isPseudoSelector():Boolean
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5417
Author:   mhorn@adobe.com
Date:     2009-03-19T17:51:41.646724Z

Log Message:
-----------
a couple of minor asdoc fixes

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

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

--- frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
+++ frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
@@ -104,7 +104,7 @@
  *  />
  *  </pre>
  *
- *  @see mx.components.FxRadioButtonGroup
+ *  @see mx.components.FxRadioButton
  *
  *  @langversion 3.0
  *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 6127
Author:   aharui@adobe.com
Date:     2009-04-10T15:24:44.711126Z

Log Message:
-----------
EmbeddedFonts in Modules for TLF.

Requires build 411 of TLF (to be checked in next)

QE Notes: None
Doc Notes: Yes.  New API on DownloadProgressBar
Bugs:
Reviewer: gordon
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText2.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/airframework/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/build.xml</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/flex/build.xml</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/flex4/src/spark/styles/metadata/BasicTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -17,8 +17,10 @@
 import flash.events.FocusEvent;
 import flash.events.KeyboardEvent;
 import flash.geom.Rectangle;
+import flash.text.TextFormat;
 import flash.text.engine.ElementFormat;
 import flash.text.engine.FontDescription;
+import flash.text.engine.FontLookup;
 import flash.text.engine.TextBlock;
 import flash.text.engine.TextElement;
 import flash.text.engine.TextLine;
@@ -42,9 +44,11 @@
 import flashx.textLayout.edit.UndoManager;
 import flashx.textLayout.elements.Configuration;
 import flashx.textLayout.elements.FlowElement;
+import flashx.textLayout.elements.ITextLineCreator;
 import flashx.textLayout.elements.ParagraphElement;
 import flashx.textLayout.elements.SpanElement;
 import flashx.textLayout.elements.TextFlow;
+import flashx.textLayout.elements.TextLineCreator;
 import flashx.textLayout.events.CompositionCompletionEvent;
 import flashx.textLayout.events.DamageEvent;
 import flashx.textLayout.events.FlowOperationEvent;
@@ -64,8 +68,16 @@

 import spark.core.IViewport;
 import spark.core.ScrollUnit;
+import mx.core.EmbeddedFont;
+import mx.core.EmbeddedFontRegistry;
+import mx.core.IEmbeddedFontRegistry;
+import mx.core.IFlexModuleFactory;
+import mx.core.IFontContextComponent;
+import mx.core.IUIComponent;
+import mx.core.Singleton;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
+import mx.managers.ISystemManager;
 import mx.events.FlexEvent;
 import spark.events.TextOperationEvent;
 import mx.utils.StringUtil;
@@ -209,6 +221,36 @@
     private static var staticConfiguration:Configuration =
         new Configuration();

+    //----------------------------------
+    //  embeddedFontRegistry
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the _embeddedFontRegistry property.
+     *  Note: This gets initialized on first access,
+     *  not when this class is initialized, in order to ensure
+     *  that the Singleton registry has already been initialized.
+     */
+    private static var _embeddedFontRegistry:IEmbeddedFontRegistry;
+
+    /**
+     *  @private
+     *  A reference to the embedded font registry.
+     *  Single registry in the system.
+     *  Used to look up the moduleFactory of a font.
+     */
+    private static function get embeddedFontRegistry():IEmbeddedFontRegistry
+    {
+        if (!_embeddedFontRegistry)
+        {
+            _embeddedFontRegistry = IEmbeddedFontRegistry(
+                Singleton.getInstance("mx.core::IEmbeddedFontRegistry"));
+        }
+
+        return _embeddedFontRegistry;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -251,6 +293,19 @@
     //  Variables
     //
     //--------------------------------------------------------------------------
+
+    /**
+     * @private
+     *
+     * Cache last value of embedded font.
+     */
+    private var cachedEmbeddedFont:EmbeddedFont = null;
+
+    /**
+     *  @private
+     * Holds the last recorded value of the module factory used to create the font.
+     */
+    private var embeddedFontContext:IFlexModuleFactory = null;

     /**
      *  @private
@@ -1372,6 +1427,10 @@
             // Tell it where to create its TextLines.
             if (textChanged || contentChanged)
             {
+                if (embeddedFontContext)
+                    textFlow.flowComposer.textLineCreator = ITextLineCreator(embeddedFontContext);
+                else
+                    textFlow.flowComposer.textLineCreator = new TextLineCreator();
                 textFlow.flowComposer.addControllerAt(
                     new DisplayObjectContainerController(this), 0);
                 // Set scroll policy appropriately.
@@ -1555,7 +1614,7 @@
        if (!_autoSize || recomposeForStyles())
             containerController.setCompositionSize(unscaledWidth, unscaledHeight);

-        flowComposer.updateAllContainers();
+        flowComposer.updateAllControllers();

         // Reinstate the damage handler.
         textFlow.addEventListener(DamageEvent.DAMAGE, textFlow_damageHandler);
@@ -1686,7 +1745,7 @@
         // be adjusted down to this and it's easy to get into an infinite
         // measure/update display loop.
         var composeWidth:Number;
-        if (textFlow.hostTextLayoutFormat.lineBreak == "toFit")
+        if (textFlow.hostFormat.lineBreak == "toFit")
         {
             // Need to set a width to cause a wrap if text rather than
             // formatted content.
@@ -1743,6 +1802,67 @@
     {
         var fontDescription:FontDescription = new FontDescription();
         fontDescription.fontName = getStyle("fontFamily");
+
+        var checkForEmbed:Boolean = false;
+
+        var s:String;
+
+        s = getStyle("cffHinting");
+        if (s != null)
+        	fontDescription.cffHinting = s;
+
+        s = getStyle("fontLookup");
+        if (s != null && s != "auto")
+        	fontDescription.fontLookup = s;
+        else
+            checkForEmbed = true;
+
+        s = getStyle("fontStyle");
+        if (s != null)
+        	fontDescription.fontPosture = s;
+
+        s = getStyle("fontWeight");
+        if (s != null)
+        	fontDescription.fontWeight = s;
+
+        if (checkForEmbed)
+        {
+            var embeddedFont:EmbeddedFont = getEmbeddedFont(
+                fontDescription.fontName,
+                fontDescription.fontWeight == "bold",
+                fontDescription.fontPosture == "italic");
+
+            embeddedFontContext =
+                embeddedFontRegistry.getAssociatedModuleFactory(
+                    embeddedFont, moduleFactory);
+
+            // if we found the font, then it is embedded.
+            // Some fonts are not listed in info(), so are not in the above registry.
+            // Call isFontFaceEmbedded() which get the list of embedded fonts from the player.
+            if (embeddedFontContext != null)
+            {
+                fontDescription.fontLookup = FontLookup.EMBEDDED_CFF;
+            }
+            else
+            {
+                var sm:ISystemManager = creatingSystemManager();
+                var textFormat:TextFormat = new TextFormat();
+                textFormat.font = fontDescription.fontName;
+                textFormat.bold = fontDescription.fontWeight == "bold";
+                textFormat.italic = fontDescription.fontPosture == "italic";
+                if (sm != null && sm.isFontFaceEmbedded(textFormat))
+                {
+                    fontDescription.fontLookup = FontLookup.EMBEDDED_CFF;
+                }
+            }
+        }
+        else
+        {
+            if (fontDescription.fontLookup == FontLookup.EMBEDDED_CFF)
+                embeddedFontContext = moduleFactory;
+            else
+                embeddedFontContext = null;
+        }

         var elementFormat:ElementFormat = new ElementFormat();
         elementFormat.fontDescription = fontDescription;
@@ -1822,6 +1942,8 @@
      */
     private function setHostTextLayoutFormat(styleProp:String):void
     {
+        var checkForEmbed:Boolean = false;
+
         if (styleProp in hostTextLayoutFormat)
         {
             var value:* = getStyle(styleProp);
@@ -1829,8 +1951,49 @@
             if (styleProp == "tabStops" && value === undefined)
                 value = [];

-            hostTextLayoutFormat[styleProp] = value;
+            if (styleProp == "fontLookup" && value == "auto")
+                checkForEmbed = true;
+            else
+                hostTextLayoutFormat[styleProp] = value;
         }
+        if (checkForEmbed)
+        {
+            var embeddedFont:EmbeddedFont = getEmbeddedFont(
+                hostTextLayoutFormat.fontFamily,
+                hostTextLayoutFormat.fontWeight == "bold",
+                hostTextLayoutFormat.fontStyle == "italic");
+
+            embeddedFontContext =
+                embeddedFontRegistry.getAssociatedModuleFactory(
+                    embeddedFont, moduleFactory);
+
+            // if we found the font, then it is embedded.
+            // Some fonts are not listed in info(), so are not in the above registry.
+            // Call isFontFaceEmbedded() which get the list of embedded fonts from the player.
+            if (embeddedFontContext != null)
+            {
+                hostTextLayoutFormat.fontLookup = FontLookup.EMBEDDED_CFF;
+            }
+            else
+            {
+                var sm:ISystemManager = creatingSystemManager();
+                var textFormat:TextFormat = new TextFormat();
+                textFormat.font = hostTextLayoutFormat.fontFamily;
+                textFormat.bold = hostTextLayoutFormat.fontWeight == "bold";
+                textFormat.italic = hostTextLayoutFormat.fontStyle == "italic";
+                if (sm != null && sm.isFontFaceEmbedded(textFormat))
+                {
+                    hostTextLayoutFormat.fontLookup = FontLookup.EMBEDDED_CFF;
+                }
+            }
+        }
+        else
+        {
+            if (hostTextLayoutFormat.fontLookup == FontLookup.EMBEDDED_CFF)
+                embeddedFontContext = moduleFactory;
+            else
+                embeddedFontContext = null;
+        }
     }

     /**
@@ -1932,7 +2095,7 @@
         staticTextLayoutFormat.verticalAlign = FormatValue.INHERIT;
         staticTextLayoutFormat.whiteSpaceCollapse =
             getStyle("whiteSpaceCollapse");
-        textFlow.hostTextLayoutFormat = staticTextLayoutFormat;
+        textFlow.hostFormat = staticTextLayoutFormat;

         textFlow.mxmlChildren = children;

@@ -2004,7 +2167,7 @@
             hostTextLayoutFormatInvalid = false;
         }

-        textFlow.hostTextLayoutFormat = new TextLayoutFormat(hostTextLayoutFormat);
+        textFlow.hostFormat = new TextLayoutFormat(hostTextLayoutFormat);

         return textFlow;
     }
@@ -2201,7 +2364,7 @@
         }

         if (updateContainers)
-            textFlow.flowComposer.updateAllContainers();
+            textFlow.flowComposer.updateAllControllers();
     }

     /**
@@ -2283,7 +2446,7 @@
         EditManager(textFlow.interactionManager).insertText(text);

         // Update TLF display.  This initiates the InsertTextOperation.
-        textFlow.flowComposer.updateAllContainers();
+        textFlow.flowComposer.updateAllControllers();

         // Restore the prior editing mode.
         switchToEditingMode(textFlow, priorEditingMode);
@@ -2316,7 +2479,7 @@
         EditManager(textFlow.interactionManager).insertText(text);

         // Update TLF display.  This initiates the InsertTextOperation.
-        textFlow.flowComposer.updateAllContainers();
+        textFlow.flowComposer.updateAllControllers();

         // Restore the prior editing mode.
         switchToEditingMode(textFlow, priorEditingMode);
@@ -2854,6 +3017,35 @@
     {
         lastUnscaledWidth = NaN;
     }
+
+    private function creatingSystemManager():ISystemManager
+    {
+        return ((moduleFactory != null) && (moduleFactory is ISystemManager))
+                ? ISystemManager(moduleFactory)
+                : IUIComponent(parent).systemManager;
+    }
+
+    /**
+     * @private
+     *
+     * Get the embedded font for a set of font attributes.
+     */
+    private function getEmbeddedFont(fontName:String, bold:Boolean, italic:Boolean):EmbeddedFont
+    {
+        // Check if we can reuse a cached value.
+        if (cachedEmbeddedFont)
+        {
+            if (cachedEmbeddedFont.fontName == fontName &&
+                cachedEmbeddedFont.fontStyle == EmbeddedFontRegistry.getFontStyle(bold, italic))
+            {
+                return cachedEmbeddedFont;
+            }
+        }
+
+        cachedEmbeddedFont = new EmbeddedFont(fontName, bold, italic);
+
+        return cachedEmbeddedFont;
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 6205
Author:   gruehle@adobe.com
Date:     2009-04-23T01:38:10.074915Z

Log Message:
-----------
Add Spark download progress bar. This one operates a bit differently than the Halo version. When the file is being downloaded, the track expands. When the app is initializing, the bar expands in the track. It does not contain any text.

The Halo DLPB is still available. If you want to use it, add 'preloader="mx.preloaders.DownloadProgressBar"' to your Application tag.

Bugs: n/a
QA: Yes, ready for testing
Doc: The new preloaderBaseColor property added to both Application classes includes a first pass at ASDoc comments.
Reviewer: Alex

Modified Paths:
--------------
<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/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/SparkDownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>

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

--- frameworks/projects/mx/src/mx/core/Application.as
+++ frameworks/projects/mx/src/mx/core/Application.as
@@ -478,6 +478,32 @@
      *  @productversion Flex 3
      */
     public var preloader:Object;
+
+    //----------------------------------
+    //  preloaderBaseColor
+    //----------------------------------
+
+    [Inspectable(defaultValue="0xCCCCCC", format="Color")]
+
+    /**
+     *    Specifies the base color used by the default preloader component. This property
+     *    has the same effect as the baseColor style used by the Spark skins.
+     *    Typically this property should be set to the same value as the baseColor
+     *    style used by the application.
+     *
+     *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+
+    /* This property is not directly read by the download progress bar (preloader)
+     * component. It is here so that it gets picked up by the compiler and included
+     * in the info() structure for the generated system manager. The download progress bar
+     * grabs the value directly from the info() structure. */
+    public var preloaderBaseColor:uint;

     //----------------------------------
     //  scriptRecursionLimit


remove trace

remove trace

--- frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as
+++ frameworks/projects/HTML/as/src/org/apache/flex/html/beads/ContainerView.as
@@ -378,7 +378,7 @@
 		{
             if (inGetViewHeight)
             {
-                trace("ContainerView: no height set for " + host);
+                //trace("ContainerView: no height set for " + host);
                 return host["$height"];
             }
             inGetViewHeight = true;
@@ -401,7 +401,7 @@
 		{
             if (inGetViewWidth)
             {
-                trace("ContainerView: no width set for " + host);
+                //trace("ContainerView: no width set for " + host);
                 return host["$width"];
             }
             inGetViewWidth = true;


- change: small performance improvement in UIComponent

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

--- src/reprise/ui/UIComponent.as
+++ src/reprise/ui/UIComponent.as
@@ -85,6 +85,9 @@

 		protected static const DEFAULT_SCROLLBAR_WIDTH : int = 16;

+		protected static const IDENTITY_MATRIX : Matrix = new Matrix();
+		protected static const TRANSFORM_MATRIX : Matrix = new Matrix();
+

 		//attribute properties
 		protected var m_xmlDefinition : XML;
@@ -1366,7 +1369,7 @@
 		 */
 		protected override function validateBeforeChildren() : void
 		{
-			m_contentDisplay.transform.matrix = new Matrix();
+			m_contentDisplay.transform.matrix = IDENTITY_MATRIX;
 			if (m_scrollbarsDisplay)
 			{
 				m_scrollbarsDisplay.transform.matrix = m_contentDisplay.transform.matrix;
@@ -2633,7 +2636,8 @@
 				}

 				var transformations : Array = m_currentStyles.transform;
-				var matrix : Matrix = new Matrix();
+				var matrix : Matrix = TRANSFORM_MATRIX;
+				matrix.identity();

 				matrix.translate(-originX, -originY);
 				var length : int = transformations.length;


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

--- frameworks/projects/framework/src/mx/core/IUITextField.as
+++ frameworks/projects/framework/src/mx/core/IUITextField.as
@@ -0,0 +1,93 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+import flash.display.DisplayObject;
+import flash.geom.Rectangle;
+import flash.text.StyleSheet;
+import flash.text.TextFormat;
+import flash.text.TextLineMetrics;
+import mx.automation.IAutomationObject;
+import mx.managers.IToolTipManagerClient;
+import mx.styles.ISimpleStyleClient;
+
+/**
+ *  The IUITextField interface defines the basic set of APIs
+ *  for UITextField instances.
+ */
+public interface IUITextField extends IIMESupport,
+                         IFlexModule,
+                         IInvalidating, ISimpleStyleClient,
+                         IToolTipManagerClient, IUIComponent
+{
+
+	include "ITextFieldInterface.as"
+	include "IInteractiveObjectInterface.as"
+
+    /**
+     *  @copy mx.core.UITextField#ignorePadding
+     */
+    function get ignorePadding():Boolean;
+    function set ignorePadding(value:Boolean):void;
+
+    /**
+     *  @copy mx.core.UITextField#inheritingStyles
+     */
+    function get inheritingStyles():Object;
+    function set inheritingStyles(value:Object):void;
+
+    /**
+     *  @copy mx.core.UITextField#nestLevel
+     */
+    function get nestLevel():int;
+    function set nestLevel(value:int):void;
+
+    /**
+     *  @copy mx.core.UITextField#nonInheritingStyles
+     */
+    function get nonInheritingStyles():Object;
+    function set nonInheritingStyles(value:Object):void;
+
+    /**
+     *  @copy mx.core.UITextField#nonZeroTextHeight
+     */
+    function get nonZeroTextHeight():Number;
+
+    /**
+     *  @copy mx.core.UITextField#getStyle()
+     */
+    function getStyle(styleProp:String):*;
+
+    /**
+     *  @copy mx.core.UITextField#getUITextFormat()
+     */
+    function getUITextFormat():UITextFormat
+
+    /**
+     *  @copy mx.core.UITextField#setColor()
+     */
+    function setColor(color:uint):void;
+
+    /**
+     *  @copy mx.core.UITextField#setFocus()
+     */
+    function setFocus():void;
+
+    /**
+     *  @copy mx.core.UITextField#truncateToFit()
+     */
+    function truncateToFit(truncationIndicator:String = null):Boolean;
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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

 package mx.rpc.events
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2464
Author:   jimurphy@adobe.com
Date:     2008-07-14T19:50:33.449468Z

Log Message:
-----------
add flex 4 to trunk

Modified Paths:
--------------
134 paths were modified

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

--- frameworks/projects/spark/src/spark/components/Spinner.as
+++ frameworks/projects/spark/src/spark/components/Spinner.as
@@ -0,0 +1,427 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flex.component
+{
+
+import flash.events.Event;
+import flash.events.KeyboardEvent;
+import flash.events.MouseEvent;
+import flash.ui.Keyboard;
+import mx.events.FlexEvent;
+import mx.managers.IFocusManagerComponent;
+
+/**
+ *  Dispatched when the value of the Spinner control changes
+ *  as a result of user interaction.
+ *
+ *  @eventType mx.events.Event
+ */
+[Event(name="change", type="mx.events.Event")]
+
+/**
+ *  A Spinner is used to select a value from an
+ *  ordered set. It uses two buttons that increase or
+ *  decrease the current value based on the current
+ *  step size.
+ *
+ *
This control extends the Range class and
+ *  is the base class for controls that select a value
+ *  from an ordered set such as the NumericStepper control.

+ *
+ *
A Spinner consists of two required buttons,
+ *  one to increase the value and one to decrease the
+ *  value.

+ *
+ *
Spinner has the addition property of valueWrap
+ *  which enables value wrapping.

+ *
+ *  @see flex.component.Range
+ */
+public class Spinner extends Range implements IFocusManagerComponent
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function Spinner():void
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // SkinParts
+    //
+    //--------------------------------------------------------------------------
+
+    [SkinPart]
+    /**
+     *  incrButton is a SkinPart that defines a button that, when
+     *  pressed, will cause the value to increment to the next value (based on
+     *  the step size).
+     */
+    public var incrButton:Button;
+
+    [SkinPart]
+    /**
+     *  decrButton is a SkinPart that defines a button that, when
+     *  pressed, will cause the value to decrement to the previous value (based
+     *  on the step size).
+     */
+    public var decrButton:Button;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  enabled
+    //----------------------------------
+
+    /**
+     *  Enable/disable this component. This also enables/disables
+     *  any of the skin parts for this component.
+     *
+     *  @default true
+     */
+    override public function set enabled(value:Boolean):void
+    {
+        super.enabled = value;
+        enableSkinParts(value);
+    }
+
+    //----------------------------------
+    //  stepSize
+    //----------------------------------
+
+    private var stepSizeChanged:Boolean = false;
+
+    /**
+     *  The stepSize property determines the allowed values of
+     *  the Spinner. See nearestValidValue() for a complete
+     *  description of the allowed values. Also, a stepSize of
+     *  less than 0 is not supported.
+     *
+     *  @default 1
+     */
+    override public function set stepSize(value:Number):void
+    {
+        if (stepSize == value)
+            return;
+
+        super.stepSize = value;
+        stepSizeChanged = true;
+
+        invalidateProperties()
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  valueWrap
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Internal storage for the valueWrap property.
+     */
+    private var _valueWrap:Boolean = false;
+
+    /**
+     *  Value wrapping determines the behavior of stepping beyond
+     *  the maximum or minimum value. If the valueWrap property
+     *  is set when stepping beyond an extreme, it will set the value
+     *  to the opposite extreme instead of not changing the value.
+     *
+     *  @return Returns whether this Spinner allows value wrapping.
+     *  @default false
+     */
+    public function get valueWrap():Boolean
+    {
+        return _valueWrap;
+    }
+
+    /**
+     *  Sets whether this Spinner allows value wrapping.
+     */
+    public function set valueWrap(value:Boolean):void
+    {
+        _valueWrap = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        // Changing the stepSize affects the value
+        if (stepSizeChanged)
+        {
+            var temp:Number = value;
+            setValue(nearestValidValue(value));
+
+            if (value != temp)
+                dispatchEvent(new Event(FlexEvent.VALUE_COMMIT));
+            stepSizeChanged = false;
+        }
+    }
+
+    /**
+     *  Called when either button is added. It adds the button's
+     *  event handlers and also enables the buttons using
+     *  enableSkinParts().
+     */
+    override protected function partAdded(partName:String, instance:*):void
+    {
+        // TODO: autoRepeat as a property?
+        if (instance == incrButton)
+        {
+            incrButton.addEventListener(FlexEvent.BUTTON_DOWN,
+                                        incrButton_buttonDownHandler);
+            incrButton.autoRepeat = true;
+        }
+        else if (instance == decrButton)
+        {
+            decrButton.addEventListener(FlexEvent.BUTTON_DOWN,
+                                        decrButton_buttonDownHandler);
+            decrButton.autoRepeat = true;
+        }
+
+        enableSkinParts(enabled);
+    }
+
+    /**
+     *  Called when either button is removed. partRemoved
+     *  removes the event handlers.
+     */
+    override protected function partRemoved(partName:String, instance:*):void
+    {
+        if (instance == incrButton)
+        {
+            incrButton.removeEventListener(FlexEvent.BUTTON_DOWN,
+                                           incrButton_buttonDownHandler);
+        }
+        else if (instance == decrButton)
+        {
+            decrButton.removeEventListener(FlexEvent.BUTTON_DOWN,
+                                           decrButton_buttonDownHandler);
+        }
+    }
+
+    /**
+     *  Make the skins reflect the enabled state of the Spinner.
+     */
+    protected function enableSkinParts(value:Boolean):void
+    {
+        if (incrButton)
+            incrButton.enabled = value;
+        if (decrButton)
+            decrButton.enabled = value;
+    }
+
+    /**
+     *  Returns the nearest valid value. This is determined by
+     *  stepSize. The allowed values are multiples of stepSize
+     *  away from 0 and restricted to between the maximum and
+     *  minimum. However, maximum and minimum are included in the
+     *  allowed values even if the distance between of the extremes
+     *  and the next or previous allowed value is less
+     *  than stepSize.
+     */
+    override protected function nearestValidValue(value:Number):Number
+    {
+        if (isNaN(value))
+            value = 0;
+
+        if (stepSize == 0)
+            return value;
+
+        // Find the closest multiple of stepSize
+        var closest:Number = Math.round(value / stepSize) * stepSize;
+        if (closest >= maximum)
+            return maximum;
+        else if (closest <= minimum)
+            return minimum;
+
+        // Round to the closest value (closest multiple, min, or max).
+        var cdiff:Number = Math.abs(closest - value);
+        var mindiff:Number = Math.abs(minimum - value);
+        var maxdiff:Number = Math.abs(maximum - value);
+        var min:Number = Math.min(cdiff, mindiff, maxdiff);
+
+        // Return order maintains rounding up when in the middle.
+        if (min == maxdiff)
+            return maximum;
+        else if (min == cdiff)
+            return closest;
+        else
+            return minimum;
+    }
+
+    /**
+     *  Steps value up if increase is true
+     *  and down if false. trigger is passed to commitValue.
+     */
+    override public function step(increase:Boolean = true):void
+    {
+        if (stepSize == 0)
+            return;
+
+        if (increase)
+        {
+            if (value == maximum && valueWrap)
+            {
+                // Check for value wrapping
+                setValue(minimum);
+            }
+            else if (value == minimum)
+            {
+                // Edge case when going up from the minimum.
+                var steppedDown:Number = stepSize * Math.ceil(minimum / stepSize);
+                if (steppedDown == minimum)
+                    setValue(minimum + stepSize);
+                else
+                    setValue(steppedDown);
+            }
+            else
+            {
+                setValue(nearestValidValue(value + stepSize));
+            }
+        }
+        else
+        {
+            if (value == minimum && valueWrap)
+            {
+                // Check for value wrapping
+                setValue(maximum);
+            }
+            else if (value == maximum)
+            {
+                // Edge case when coming down from the maximum
+                var steppedUp:Number = stepSize * Math.floor(maximum / stepSize);
+                if (steppedUp == maximum)
+                    setValue(maximum - stepSize);
+                else
+                    setValue(steppedUp);
+            }
+            else
+            {
+                setValue(nearestValidValue(value - stepSize));
+            }
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Event Handlers
+    //
+    //--------------------------------------------------------------------------
+
+    //---------------------------------
+    // Mouse handlers
+    //---------------------------------
+
+    /**
+     *  Handle a click on the incrButton. This should step to the next value.
+     */
+    protected function incrButton_buttonDownHandler(event:Event):void
+    {
+        var prevValue:Number = this.value;
+        step(true);
+        if (value != prevValue)
+            dispatchEvent(new Event("change"));
+    }
+
+    /**
+     *  Handle a click on the decrButton. This should step to the previous
+     *  value.
+     */
+    protected function decrButton_buttonDownHandler(event:Event):void
+    {
+        var prevValue:Number = this.value;
+        step(false);
+        if (value != prevValue)
+            dispatchEvent(new Event("change"));
+    }
+
+    /**
+     *  Handles keyboard input. Right and up arrows increment. Left and down
+     *  arrows decrement. Home and end set the value to maximum and minimum
+     *  respectively.
+     */
+    override protected function keyDownHandler(event:KeyboardEvent):void
+    {
+        var prevValue:Number = this.value;
+
+        switch (event.keyCode)
+        {
+            case Keyboard.DOWN:
+            case Keyboard.LEFT:
+            {
+                step(false);
+                break;
+            }
+
+            case Keyboard.UP:
+            case Keyboard.RIGHT:
+            {
+                step(true);
+                break;
+            }
+
+            case Keyboard.HOME:
+            {
+                value = minimum;
+                break;
+            }
+
+            case Keyboard.END:
+            {
+                value = maximum;
+                break;
+            }
+
+            default:
+            {
+                super.keyDownHandler(event);
+                break;
+            }
+        }
+
+        if (value != prevValue)
+            dispatchEvent(new Event("change"));
+    }
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4357
Author:   egreenfi@adobe.com
Date:     2008-12-18T23:52:27.017290Z

Log Message:
-----------
UIComponent now implements ILayoutElement directly

ILayoutElement was moved to mx.core.ILayoutElement, as it is now a core interface required by UIComponent.

Further phases to follow:
1) IVlisualElement to extend ILayoutElement, pending resolution of a compiler bug.
2) remove LayoutElementUIC, pending UIMovieclip implementing ILayoutElement
3) remove LayoutElementFactory, once all IVisualElements implement ILayoutElement directly.
4) remove ITransformable, moving transform properties onto IVisualElement.

Reviewer: Evtim
QA: yes.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout_tester.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/utils/MatrixUtil.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutElement.as" copyfrom-rev="4249" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutElementUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/VSlider.as
+++ frameworks/projects/spark/src/spark/components/VSlider.as
@@ -17,7 +17,7 @@

 import mx.components.baseClasses.FxSlider;
 import mx.core.UIComponent;
-import mx.layout.ILayoutElement;
+import mx.core.ILayoutElement;
 import mx.layout.LayoutElementFactory;

 [IconFile("FxVSlider.png")]


Transferred from the Adobe Open Source Subversion Repository

Revision: 9416
Author:   aharui@adobe.com
Date:     2009-08-20T02:15:38.365755Z

Log Message:
-----------
Revert 9399.  The prototypes broke mustella states tests.  Will try again later.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/builder/ComponentBuilder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/SparkChromeWindowedApplicationSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NavigatorChild.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/IDeferredContentOwner.as" copyfrom-rev="9398" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/IDeferredContentOwner.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/managers/FocusManager.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/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NavBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler_en.properties</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatable.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatorContent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/PanelSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ApplicationSkin.mxml</path>

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

--- frameworks/projects/mx/src/mx/core/Container.as
+++ frameworks/projects/mx/src/mx/core/Container.as
@@ -389,9 +389,7 @@
 public class Container extends UIComponent
                        implements IContainer, IDataRenderer,
                        IFocusManagerContainer, IListItemRenderer,
-                       IRawChildrenContainer, IChildList, IVisualElementContainer,
-                       INavigatorContent
-
+                       IRawChildrenContainer, IChildList, IVisualElementContainer
 {
     include "../core/Version.as"

@@ -1307,25 +1305,6 @@
     {
         _defaultButton = value;
         ContainerGlobals.focusedContainer = null;
-    }
-
-    //----------------------------------
-    //  deferredContentCreated
-    //----------------------------------
-
-    /**
-     *  IDeferredContentOwner equivalent of processedDescriptors
-     *
-     *  @see UIComponent#processedDescriptors
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function get deferredContentCreated():Boolean
-    {
-        return processedDescriptors;
     }

     //----------------------------------
@@ -4081,7 +4060,6 @@
         }
     }

-
     /**
      *  Iterate through the Array of childDescriptors,
      *  and call the createComponentFromDescriptor() method for each one.
@@ -4133,22 +4111,6 @@
         numChildrenCreated = numChildren - numChildrenBefore;

         processedDescriptors = true;
-    }
-
-    /**
-     *  IDeferredContentOwner equivalent of createComponentsFromDescriptor(true)
-     *
-     *  @see createComponentsFromDescriptors
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function createDeferredContent():void
-    {
-        createComponentsFromDescriptors(true);
-        dispatchEvent(new FlexEvent(FlexEvent.CONTENT_CREATION_COMPLETE));
     }

    /**