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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -850,7 +850,7 @@
                     var animTarget:AnimationTarget = new AnimationTarget(animationUpdateHandler);
                     animTarget.endFunction = animationEndHandler;
                     animator.animationTarget = animTarget;
-                    // FIXME (chaase): hard-coding easer for now - how to style it?
+                    // TODO (chaase): hard-coding easer for now - how to style it?
                     animator.easer = new Sine(0);
                 }


gpu curve

gpu curve

--- src/flash/__native/GLGraphicsPath.as
+++ src/flash/__native/GLGraphicsPath.as
@@ -47,12 +47,38 @@
 			if (poly==null){
 				makePoly();
 			}
-			poly.push(controlX);
-			poly.push(controlY);
-			poly.push(anchorX);
-			poly.push(anchorY);
+			//poly.push(controlX);
+			//poly.push(controlY);
+			//poly.push(anchorX);
+			//poly.push(anchorY);
 			//poly.push(controlX, controlY, anchorX, anchorY);
+
+			if (poly.length>=2){
+				var x0:Number = poly.array[poly.length - 2];
+				var y0:Number = poly.array[poly.length - 1];
+				var d:Number = Math.abs(x0 - anchorX) + Math.abs(y0 - anchorY);
+				var step:Number = 5 / d;
+				for (var t1:Number = step; t1 <= 1; t1 += step ){
+					var t0:Number = 1 - t1;
+					var q0x:Number = t0 * x0 + t1 * controlX;
+					var q0y:Number = t0 * y0 + t1 * controlY;
+					var q1x:Number = t0 * controlX + t1 * anchorX;
+					var q1y:Number = t0 * controlY + t1 * anchorY;
+					poly.push(t0 * q0x + t1 * q1x);
+					poly.push(t0 * q0y + t1 * q1y);
+				}
+			}
 		}
+
+		/*private function getCurvePoint(t1:Number, p0:Point, p1:Point, p2:Point):Vector3D
+        {
+            var t0:Number = 1 - t1;
+            var q0x:Number = t0 * p0.x + t1 * p1.x;
+            var q0y:Number = t0 * p0.y + t1 * p1.y;
+            var q1x:Number = t0 * p1.x + t1 * p2.x;
+            var q1y:Number = t0 * p1.y + t1 * p2.y;
+            return new Vector3D(t0 * q0x + t1 * q1x, t0 * q0y + t1 * q1y, Math.atan2(q1y - q0y, q1x - q0x));
+        }*/

 		override public function cubicCurveTo(controlX1:Number, controlY1:Number, controlX2:Number, controlY2:Number, anchorX:Number, anchorY:Number):void
 		{


Fixed a big bug with object ids, contextId, objectId confusion in ManagedObjectId

--- src/Modi/ManagedContext.as
+++ src/Modi/ManagedContext.as
@@ -30,15 +30,15 @@
 			_idCounter++;
 		}

-		public function removeFromContext(id:String):void
+		public function removeFromContext(id:ManagedObjectId):void
 		{
-			Assert(_managedObjects[id], "ManagedObject with " + id + " does not exist!");
-			_managedObjects[id] = null;
+			Assert(_managedObjects[id.objectId], "ManagedObject with " + id.objectId + " does not exist!");
+			_managedObjects[id.objectId] = null;
 		}

 		public function getManagedObjectById(id:ManagedObjectId):ManagedObject
 		{
-			var managedObject:ManagedObject = _managedObjects[id.contextId];
+			var managedObject:ManagedObject = _managedObjects[id.objectId];
 			//Assert(managedObject, "ManagedObject with " + id + " does not exist!");

 			return managedObject;


Worked around FLEX-35067 Fixed typo

Worked around FLEX-35067
Fixed typo

--- frameworks/projects/XML/src/main/flex/XML.as
+++ frameworks/projects/XML/src/main/flex/XML.as
@@ -265,11 +265,11 @@
 		static public function defaultSettings():Object
 		{
 			return {
-			    ignoreComments : true,
-			    ignoreProcessingInstructions : true,
-			    ignoreWhitespace : true,
-			    prettyIndent : 2,
-			    prettyPrinting : true
+			    "ignoreComments" : true,
+			    "ignoreProcessingInstructions" : true,
+			    "ignoreWhitespace" : true,
+			    "prettyIndent" : 2,
+			    "prettyPrinting" : true
 			}
 		}

@@ -301,11 +301,11 @@
 		static public function settings():Object
 		{
 			return {
-			    ignoreComments : ignoreComments,
-			    ignoreProcessingInstructions : ignoreProcessingInstructions,
-			    ignoreWhitespace : ignoreWhitespace,
-			    prettyIndent : prettyIndent,
-			    prettyPrinting : prettyPrinting
+			    "ignoreComments" : ignoreComments,
+			    "ignoreProcessingInstructions" : ignoreProcessingInstructions,
+			    "ignoreWhitespace" : ignoreWhitespace,
+			    "prettyIndent" : prettyIndent,
+			    "prettyPrinting" : prettyPrinting
 			}
 		}

@@ -711,7 +711,7 @@
 			xml.setNodeKind(_nodeKind);
 			xml.setName(name());
 			xml.setValue(_value);
-			for(i-0;i<_namespaces.length;i++)
+			for(i=0;i<_namespaces.length;i++)
 			{
 				xml.addNamespace(new Namespace(_namespaces[i]));
 			}


Cleans up FormSet#applyFormIndex and changes it to automatically add the currently active form's ID as a CSS class on the FormSet

--- src/reprise/controls/html/FormSet.as
+++ src/reprise/controls/html/FormSet.as
@@ -132,37 +132,42 @@

 			var oldIndex : int = m_activeFormIndex;
 			var newIndex : int = index;
+
+			var form : Form;

 			var event : FormEvent;
-			if (dispatchEvents && m_activeFormIndex != -1)
-			{
-				event = new FormEvent(FormEvent.FORM_WILL_CHANGE, false, true);
+			if (m_activeFormIndex != -1)
+			{
+				if (dispatchEvents && hasEventListener(FormEvent.FORM_WILL_CHANGE))
+				{
+					event = new FormEvent(FormEvent.FORM_WILL_CHANGE, false, true);
+					event.oldIndex = oldIndex;
+					event.newIndex = newIndex;
+					dispatchEvent(event);
+					if (event.isDefaultPrevented())
+					{
+						return;
+					}
+				}
+				form = activeForm();
+				removeCSSClass(form.cssID);
+				form.deactivate();
+			}
+
+			m_activeFormIndex = index;
+			form = activeForm();
+			addCSSClass(form.cssID);
+			form.activate();
+			invalidate();
+
+			if (dispatchEvents && hasEventListener(FormEvent.FORM_CHANGE))
+			{
+				event = new FormEvent(FormEvent.FORM_CHANGE);
 				event.oldIndex = oldIndex;
 				event.newIndex = newIndex;
 				dispatchEvent(event);
-				if (event.isDefaultPrevented())
-				{
-					return;
-				}
-			}
-
-			if (m_activeFormIndex != -1)
-			{
-				Form(m_forms[m_activeFormIndex]).deactivate();
-			}
-			Form(m_forms[index]).activate();
-			m_activeFormIndex = index;
-			invalidate();
-
-			event = new FormEvent(FormEvent.FORM_CHANGE);
-			event.oldIndex = oldIndex;
-			event.newIndex = newIndex;
-			if (dispatchEvents)
-			{
-				dispatchEvent(event);
-			}
-		}
-
+			}
+		}
 		protected function addForm(form : Form) : void
 		{
 			if (m_forms.indexOf(form) > -1)
@@ -215,7 +220,6 @@
 		{
 			if (e.target is Form)
 			{
-				log(e.target);
 				addForm(Form(e.target));
 			}
 			else if ((e.target is SubmitButton) || (e.target is BackButton))
@@ -228,7 +232,6 @@
 		{
 			if (e.target is Form)
 			{
-				log(e.target);
 				removeForm(Form(e.target));
 			}
 			else if (((e.target is SubmitButton) || (e.target is BackButton))
@@ -252,7 +255,10 @@

 		protected function form_back(e : FormEvent) : void
 		{
-			applyFormIndex(m_activeFormIndex - 1, true);
+			if (m_activeFormIndex > 0)
+			{
+				applyFormIndex(m_activeFormIndex - 1, true);
+			}
 		}

 		private function button_click(event : MouseEvent) : void


Whitespace.

Whitespace.

--- swfcat.as
+++ swfcat.as
@@ -23,12 +23,12 @@
            reading from the CIRRUS_KEY environment var. */
         private const CIRRUS_URL:String = "rtmfp://p2p.rtmfp.net";
         private const CIRRUS_KEY:String = RTMFP::CIRRUS_KEY;
-
+
         private const DEFAULT_FACILITATOR_ADDR:Object = {
             host: "tor-facilitator.bamsoftware.com",
             port: 9002
         };
-
+
         /* Local Tor client to use in case of RTMFP connection. */
         private const LOCAL_TOR_CLIENT_ADDR:Object = {
             host: "127.0.0.1",


Fixed local parameter code bug

Fixed local parameter code bug

--- swfcat.as
+++ swfcat.as
@@ -108,10 +108,8 @@

             if (this.loaderInfo.parameters["local"])
                 local_addr = get_param_addr("local", DEFAULT_LOCAL_TOR_CLIENT_ADDR);
-            else {
-                local_addr.host = DEFAULT_LOCAL_TOR_CLIENT_ADDR.host;
-                local_addr.port = DEFAULT_LOCAL_TOR_CLIENT_ADDR.port;
-            }
+            else
+                local_addr = DEFAULT_LOCAL_TOR_CLIENT_ADDR;

             if (this.loaderInfo.parameters["client"])
                 client_main();


Transferred from the Adobe Open Source Subversion Repository

Revision: 17278
Author:   chiedozi@adobe.com
Date:     2010-08-11T18:57:42.516057Z

Log Message:
-----------
Fixed an RTE that occurred when changing the ViewNavigator skin at runtime

QE notes:
Doc notes:
Bugs: SDK-27348
Reviewer: Evtim
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -2012,6 +2012,30 @@
         }
     }

+    /**
+     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    override protected function partRemoved(partName:String, instance:Object):void
+    {
+        super.partRemoved(partName, instance);
+
+        // Clear out all the content that is within the actionBar
+        if (instance == actionBar)
+        {
+            actionBar.actionContent = null;
+            actionBar.actionLayout = null;
+            actionBar.titleContent = null;
+            actionBar.titleLayout = null;
+            actionBar.navigationContent = null;
+            actionBar.navigationContent = null;
+        }
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Methods: ISelectableList


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

--- frameworks/projects/mx/src/mx/controls/menuClasses/IMenuBarItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/menuClasses/IMenuBarItemRenderer.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-2007 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: 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@1269020 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollBarDirection.as
+++ frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollBarDirection.as
@@ -0,0 +1,44 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls.scrollClasses
+{
+
+/**
+ *  The ScrollBarDirection class defines the values for the
+ *  direction property of the ScrollBar control.
+ *
+ *  @see mx.controls.scrollClasses.ScrollBar
+ *  @see mx.controls.HScrollBar
+ *  @see mx.controls.VScrollBar
+ */
+public final class ScrollBarDirection
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Specifies that a ScrollBar control is for horizontal scrolling.
+	 */
+	public static const HORIZONTAL:String = "horizontal";
+
+	/**
+	 *  Specifies that a ScrollBar control is for vertical scrolling.
+	 */
+	public static const VERTICAL:String = "vertical";
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 12764
Author:   gosmith@adobe.com
Date:     2009-12-10T02:06:04.655479Z

Log Message:
-----------
Dealt with issues involving accessibility and skin parts.

1. The accessibility implementation classes for four Spark components -- ComboBox, NumericStepper, TitleWindow, and VideoPlayer -- need to listen to events dispatched from skin parts. The problems were:

a) Skin parts may not exist at the time that the acc impl constructor executes, which is when we were doing addEventListener() on them. This is now fixed by consistently having null checks.

b) Skin parts may come and go at any later time. We now cope with this by having the acc impls listen for "partAdded" and "partRemoved" events from the component. When they discover that a skin part they want to listen to is being added, they now call addEventListener(), and when a skin part is removed they call removeEventListener().

2. The accessibility implementation classes for two Spark components -- Panel and TitleWindow -- actually get attached to a skin part (the titleDisplay) rather than to the component. Since we do this in createAccessibilityImplementation(), it's a problem if this happens before the titleDisplay exists. So instead of calling createAccessibilityImplementation() from initializeAccessibiility(), these components now call it from partAdded(). They also remove the acc impl if the titleDisplay is removed. Finally, there is some logic to prevent the partAdded() method of TitleWindow, which is a subclass of Panel, from creating both a PanelAccImpl and a TitleWindowAccImpl.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SpinnerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/VideoPlayerAccImpl.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/spark/src/spark/accessibility/NumericStepperAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ComboBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TitleWindowAccImpl.as</path>

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

--- frameworks/projects/spark/src/spark/accessibility/NumericStepperAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/NumericStepperAccImpl.as
@@ -21,9 +21,10 @@
 import mx.core.mx_internal;

 import spark.components.NumericStepper;
+import spark.components.TextInput;
+import spark.events.SkinPartEvent;

 use namespace mx_internal;
-

 /**
  *  NumericStepperAccImpl is a subclass of AccessibilityImplementation
@@ -99,17 +100,99 @@
         super(master);

         role = AccConst.ROLE_SYSTEM_TEXT;
-
-        NumericStepper(master).textDisplay.addEventListener(Event.CHANGE,
-            eventHandler);
-
-        NumericStepper(master).textDisplay.addEventListener(
-            FocusEvent.FOCUS_IN, focusInHandler);
+
+		// NumericStepper has a TextInput as a skin part,
+		// and we need to listen to some of its events.
+		// It may or may not be present when this constructor is called.
+		// If it comes or goes later, we are notified via
+		// "partAdded" and "partRemoved" events.
+		var textDisplay:TextInput = NumericStepper(master).textDisplay;
+        if (textDisplay)
+		{
+        	textDisplay.addEventListener(Event.CHANGE, eventHandler);
+        	textDisplay.addEventListener(FocusEvent.FOCUS_IN, focusInHandler);
+		}
     }

-    /**
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  eventsToHandle
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Array of events that we should listen for from the master component.
+	 */
+	override protected function get eventsToHandle():Array
+	{
+		return super.eventsToHandle.concat([ SkinPartEvent.PART_ADDED,
+											 SkinPartEvent.PART_REMOVED ]);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden event handlers: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Override the generic event handler.
+	 *  All AccImpl must implement this
+	 *  to listen for events from its master component.
+	 */
+	override protected function eventHandler(event:Event):void
+	{
+		var textDisplay:TextInput;
+
+		switch (event.type)
+		{
+			case SkinPartEvent.PART_ADDED:
+			{
+				textDisplay = NumericStepper(master).textDisplay;
+				if (SkinPartEvent(event).instance == textDisplay)
+				{
+					textDisplay.addEventListener(Event.CHANGE,
+												 eventHandler);
+					textDisplay.addEventListener(FocusEvent.FOCUS_IN,
+												 focusInHandler);
+				}
+				break;
+			}
+
+			case SkinPartEvent.PART_REMOVED:
+			{
+				textDisplay = NumericStepper(master).textDisplay;
+				if (SkinPartEvent(event).instance == textDisplay)
+				{
+					textDisplay.removeEventListener(Event.CHANGE,
+													eventHandler);
+					textDisplay.removeEventListener(FocusEvent.FOCUS_IN,
+													focusInHandler);
+				}
+				break;
+			}
+
+			default:
+			{
+				super.eventHandler(event);
+			}
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event handlers
+	//
+	//--------------------------------------------------------------------------
+
+	/**
      *  @private
-     *
      */
     private function focusInHandler(event:Event):void
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5841
Author:   rfrishbe@adobe.com
Date:     2009-04-01T18:06:53.546424Z

Log Message:
-----------
Changing the lifecycle of the layout object in GroupBase.  Before, we’d always instantiate one in GroupBase’s constructor.  Now, we wait until createChildren() time to instantiate the default.  This means if people set the layout object, we won’t be creating this extra BasicLayout we don’t need.  There was an assumption in GroupBase around some of the proxied properties that the layout object was always going to be present.  These are cleaned up for when the layout object doesn’t always exist.  Also, now when the layout object is swapped at runtime, the verticalScrollPosition and horizontalScrollPosition don’t get pushed into the new layout object, as they may not translate correctly.  We discussed the possibility of sending in a “first item in view” for when the layout object is swapped, but for now, we don’t do anything like that.

Also fixing a bug in components.properties and some spelling errors in SkinnableDataContainer.

QE Notes: Fix the tests that were failing and re-include them
Doc Notes: -
Bugs: SDK-19769, SDK-20163
Reviewer: Hans
tests: checkintests, mustella core and layout tests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/bundles/en_US/components.properties</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/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -148,19 +148,10 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function GroupBase(layout:LayoutBase = null)
+    public function GroupBase()
     {
         super();
         tabChildren = true;
-
-        // our default layout is null.  Otherwise, use the layout
-        // passed in via the constructor
-        if(layout == null)
-            _layout = new BasicLayout();
-        else
-            _layout = layout;
-
-    	_layout.target = this;
     }

     //--------------------------------------------------------------------------
@@ -193,8 +184,10 @@
     //----------------------------------
     //  layout
     //----------------------------------
-
-    private var _layout:LayoutBase;  // initialized in the ctor
+
+    // layout is initialized in createChildren() if layout
+    // hasn't been set yet by someone else
+    private var _layout:LayoutBase;
     private var _layoutProperties:Object = null;
     private var layoutInvalidateSizeFlag:Boolean = false;
     private var layoutInvalidateDisplayListFlag:Boolean = false;
@@ -234,18 +227,31 @@

         if (value)
         {
-            value.clipAndEnableScrolling = clipAndEnableScrolling;
-            value.verticalScrollPosition = verticalScrollPosition;
-            value.horizontalScrollPosition = horizontalScrollPosition;
-            _layoutProperties = null;
-        }
-        else
-        {
-            _layoutProperties = {
-                verticalScrollPosition: _layout.verticalScrollPosition,
-                horizontalScrollPosition: _layout.horizontalScrollPosition,
-                clipAndEnableScrolling: _layout.clipAndEnableScrolling
-            };
+            if (_layoutProperties)
+            {
+                if (_layoutProperties.clipAndEnableScrolling !== undefined)
+                    value.clipAndEnableScrolling = _layoutProperties.clipAndEnableScrolling;
+
+                if (_layoutProperties.verticalScrollPosition !== undefined)
+                    value.verticalScrollPosition = _layoutProperties.verticalScrollPosition;
+
+                if (_layoutProperties.horizontalScrollPosition !== undefined)
+                    value.horizontalScrollPosition = _layoutProperties.horizontalScrollPosition;
+
+                _layoutProperties = null;
+            }
+
+            if (_layout)
+                value.clipAndEnableScrolling = _layout.clipAndEnableScrolling;
+        }
+        else
+        {
+            if (_layout)
+            {
+                // when the layout changes, we don't want to transfer over
+                // horizontalScrollPosition and verticalScrollPosition
+                _layoutProperties = {clipAndEnableScrolling: _layout.clipAndEnableScrolling};
+            }
         }

         if (_layout)
@@ -274,9 +280,19 @@
      */
     public function get horizontalScrollPosition():Number
     {
-        return (_layout)
-            ? _layout.horizontalScrollPosition
-            : _layoutProperties.horizontalScrollPosition;
+        if (_layout)
+        {
+            return _layout.horizontalScrollPosition;
+        }
+        else if (_layoutProperties &&
+                _layoutProperties.horizontalScrollPosition !== undefined)
+        {
+            return _layoutProperties.horizontalScrollPosition;
+        }
+        else
+        {
+            return 0;
+        }
     }

     /**
@@ -285,9 +301,17 @@
     public function set horizontalScrollPosition(value:Number):void
     {
         if (_layout)
+        {
             _layout.horizontalScrollPosition = value;
+        }
+        else if (_layoutProperties)
+        {
+            _layoutProperties.horizontalScrollPosition = value;
+        }
         else
-            _layoutProperties.horizontalScrollPosition = value;
+        {
+            _layoutProperties = {horizontalScrollPosition: value};
+        }
     }

     //----------------------------------
@@ -306,9 +330,19 @@
      */
     public function get verticalScrollPosition():Number
     {
-        return (_layout)
-            ? _layout.verticalScrollPosition
-            : _layoutProperties.verticalScrollPosition;
+        if (_layout)
+        {
+            return _layout.verticalScrollPosition;
+        }
+        else if (_layoutProperties &&
+                _layoutProperties.verticalScrollPosition !== undefined)
+        {
+            return _layoutProperties.verticalScrollPosition;
+        }
+        else
+        {
+            return 0;
+        }
     }

     /**
@@ -317,9 +351,17 @@
     public function set verticalScrollPosition(value:Number):void
     {
         if (_layout)
+        {
             _layout.verticalScrollPosition = value;
+        }
+        else if (_layoutProperties)
+        {
+            _layoutProperties.verticalScrollPosition = value;
+        }
         else
-            _layoutProperties.verticalScrollPosition = value;
+        {
+            _layoutProperties = {verticalScrollPosition: value};
+        }
     }

     //----------------------------------
@@ -336,7 +378,19 @@
      */
     public function get clipAndEnableScrolling():Boolean
     {
-        return (_layout) ? _layout.clipAndEnableScrolling : _layoutProperties.clipAndEnableScrolling;
+        if (_layout)
+        {
+            return _layout.clipAndEnableScrolling;
+        }
+        else if (_layoutProperties &&
+                _layoutProperties.clipAndEnableScrolling !== undefined)
+        {
+            return _layoutProperties.clipAndEnableScrolling;
+        }
+        else
+        {
+            return false;
+        }
     }

     /**
@@ -345,9 +399,17 @@
     public function set clipAndEnableScrolling(value:Boolean):void
     {
         if (_layout)
+        {
             _layout.clipAndEnableScrolling = value;
+        }
+        else if (_layoutProperties)
+        {
+            _layoutProperties.clipAndEnableScrolling = value;
+        }
         else
-            _layoutProperties.clipAndEnableScrolling = value;
+        {
+            _layoutProperties = {clipAndEnableScrolling: value};
+        }

         // clipAndEnableScrolling affects measured minimum size
         invalidateSize();
@@ -731,6 +793,21 @@
     mx_internal function $invalidateDisplayList():void
     {
         super.invalidateDisplayList();
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
If the layout object has not been set yet,
+     *  createChildren() assigns this container a
+     *  default layout object, BasicLayout.

+     */
+    override protected function createChildren():void
+    {
+        super.createChildren();
+
+        if (!layout)
+            layout = new BasicLayout();
     }

     /**


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

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


Now caching IColumnStatistics objects.

Now caching IColumnStatistics objects.

--- WeaveUISpark/src/weave/visualization/plotters/SimpleParallelCoordinatesPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/SimpleParallelCoordinatesPlotter.as
@@ -22,6 +22,7 @@
 	import flash.display.Graphics;
 	import flash.display.Shape;
 	import flash.geom.Point;
+	import flash.utils.Dictionary;

 	import weave.Weave;
 	import weave.api.data.IAttributeColumn;
@@ -54,6 +55,7 @@
 		public const curvedLines:LinkableBoolean = registerLinkableChild(this, new LinkableBoolean(false));

 		private var _columns:Array = [];
+		private var _stats:Dictionary = new Dictionary(true);
 		private static const tempBoundsArray:Array = []; // Array of reusable Bounds2D objects
 		private static const tempPoint:Point = new Point(); // reusable Point object

@@ -75,7 +77,10 @@
 			// This will be cleaned up automatically when the column is disposed.
 			var newColumn:IAttributeColumn = columns.childListCallbacks.lastObjectAdded as IAttributeColumn;
 			if (newColumn)
-				registerLinkableChild(spatialCallbacks, WeaveAPI.StatisticsCache.getColumnStatistics(newColumn));
+			{
+				_stats[newColumn] = WeaveAPI.StatisticsCache.getColumnStatistics(newColumn);
+				registerLinkableChild(spatialCallbacks, _stats[newColumn]);
+			}

 			_columns = columns.getObjects();

@@ -108,7 +113,7 @@
 			{
 				var column:IAttributeColumn = _columns[i];
 				if (normalize.value)
-					output[i] = WeaveAPI.StatisticsCache.getColumnStatistics(column).getNorm(recordKey);
+					output[i] = (_stats[column] as IColumnStatistics).getNorm(recordKey);
 				else
 					output[i] = column.getValueFromKey(recordKey, Number);
 			}
@@ -276,7 +281,7 @@
 				output.setYRange(NaN, NaN);
 				for (var i:int = 0; i < _columns.length; i++)
 				{
-					var stats:IColumnStatistics = WeaveAPI.StatisticsCache.getColumnStatistics(_columns[i]);
+					var stats:IColumnStatistics = _stats[_columns[i]];
 					output.includeCoords(i, stats.getMin());
 					output.includeCoords(i, stats.getMax());
 				}


Transferred from the Adobe Open Source Subversion Repository

Revision: 11995
Author:   doug.lee@ssbbartgroup.com
Date:     2009-11-19T18:50:30.831767Z

Log Message:
-----------
Updated all AccImpls that use MSAA constants (except TextLayout) to
use the new AccConst references instead of hard-coding hex numbers and
local copies of the constants.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ColorPickerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LabelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DataGridAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TextInputAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ComboBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TabBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/accessibility/WindowedApplicationAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SpinnerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TextBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/PanelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/DropDownListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/RichEditableTextAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/CheckBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AlertAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/RadioButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccordionHeaderAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ButtonBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateFieldAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/NumericStepperAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SkinnableTextBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ListBaseAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ComboBoxAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TitleWindowAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/LinkButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuBarAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/RadioButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/ToggleButtonAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TreeAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/accessibility/WindowAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/DateChooserAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/VideoPlayerAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/MenuAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/TitleWindowAccImpl.as</path>

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

--- frameworks/projects/spark/src/spark/accessibility/RichEditableTextAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/RichEditableTextAccImpl.as
@@ -17,6 +17,7 @@
 import flash.events.FocusEvent;

 import mx.accessibility.AccImpl;
+import mx.accessibility.AccConst;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import spark.components.RichEditableText;
@@ -38,22 +39,6 @@

     //--------------------------------------------------------------------------
     //
-    //  Class constants
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     */
-    private static const STATE_SYSTEM_READONLY:uint = 0x00000040;
-
-    /**
-     *  @private
-     */
-    private static const EVENT_OBJECT_VALUECHANGE:uint = 0x800E;
-
-    //--------------------------------------------------------------------------
-    //
     //  Class methods
     //
     //--------------------------------------------------------------------------
@@ -111,7 +96,7 @@
     {
         super(master);

-        role = 0x2a; // ROLE_SYSTEM_TEXT
+        role = AccConst.ROLE_SYSTEM_TEXT;
     }

     //--------------------------------------------------------------------------
@@ -166,7 +151,7 @@
     {
         var accState:uint = getState(childID);
         if (!RichEditableText(master).editable)
-            accState |= STATE_SYSTEM_READONLY;
+            accState |= AccConst.STATE_SYSTEM_READONLY;
         return accState;
     }

@@ -193,7 +178,7 @@
             case "change":
             {
                 Accessibility.sendEvent(master, 0,
-                                        EVENT_OBJECT_VALUECHANGE, true);
+                                        AccConst.EVENT_OBJECT_VALUECHANGE, true);
                 break;
             }
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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

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

Modified Paths:
--------------
151 paths were modified

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/ResizeInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/ResizeInstance.as
@@ -94,6 +94,11 @@
     /**
      *  Number of pixels by which to modify the height of the component.
      *  Values may be negative.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get heightBy():Number
     {
@@ -115,6 +120,11 @@

     /**
      *  Initial height. If omitted, Flex uses the current size.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var heightFrom:Number;

@@ -130,6 +140,11 @@

     /**
      *  Final height, in pixels.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get heightTo():Number
     {
@@ -158,6 +173,11 @@
     /**
      *  Number of pixels by which to modify the width of the component.
      *  Values may be negative.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get widthBy():Number
     {
@@ -179,6 +199,11 @@

     /**
      *  Initial width. If omitted, Flex uses the current size.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var widthFrom:Number;

@@ -194,6 +219,11 @@

     /**
      *  Final width, in pixels.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get widthTo():Number
     {
@@ -216,6 +246,11 @@
     /**
      *  An Array of Panels.
      *  The children of these Panels are hidden while the Resize effect plays.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public var hideChildrenTargets:Array /* of Panel */;

@@ -255,6 +290,11 @@
     /**
      * Handles the end event from the tween. The value here is an Array of
      * values, one for each 'property' in our animationProperties.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function endHandler(event:AnimationEvent):void
     {
@@ -378,6 +418,11 @@

         return numHideEffectsPlaying > 0;
     }
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 10
+    *  @playerversion AIR 1.5
+    *  @productversion Flex 4
     */

     /**
@@ -427,6 +472,11 @@
         //    restoreAutoLayoutArray[panelIndex] = true;
         //}
     }
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 10
+    *  @playerversion AIR 1.5
+    *  @productversion Flex 4
     */

     /**
@@ -506,6 +556,11 @@
                 animation.resume();
         }
     }
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 10
+    *  @playerversion AIR 1.5
+    *  @productversion Flex 4
     */
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17440
Author:   jasonsj@adobe.com
Date:     2010-08-21T01:02:38.151830Z

Log Message:
-----------
Fix initialization of titleDisplay ActionBar skin part.
Updated ActionBarSkin for latest XD spec for padding and button sizes.
Removed titleDisplay insertion into titleGroup behavior.
Updated SlideViewTransition to look for titleDisplay.

QE notes:
Doc notes:
Bugs:
SDK-27497 Clicks on controls near the ActionBar do not register.
Reviewer: gruehle
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as
@@ -12,9 +12,11 @@
 package spark.effects
 {
 import flash.display.BitmapData;
+import flash.display.DisplayObject;

 import mx.core.IVisualElementContainer;
 import mx.core.UIComponent;
+import mx.core.mx_internal;
 import mx.effects.IEffect;
 import mx.effects.Parallel;
 import mx.events.EffectEvent;
@@ -30,6 +32,8 @@
 import spark.effects.animation.SimpleMotionPath;
 import spark.effects.easing.Sine;

+use namespace mx_internal;
+
 /**
  *
  */
@@ -242,8 +246,12 @@
                     cachedActionBar = generateBitmap(actionBar);

                     // This transition was designed to always animate the title content
-                    if (actionBar.titleGroup)
+                    if (actionBar.titleGroup && actionBar.titleGroup.visible)
                         cachedTitleGroup = generateBitmap(actionBar.titleGroup);
+                    else if (actionBar.titleDisplay
+                        && (actionBar.titleDisplay is UIComponent)
+                        && UIComponent(actionBar.titleDisplay).visible)
+                        cachedTitleGroup = generateBitmap(UIComponent(actionBar.titleDisplay));

                     // If the actionContent will change prepare a bitmap image of the group
                     if (currentView.actionContent != nextView.actionContent)
@@ -406,8 +414,13 @@
                 nextViewProps = null;
             }

-            if (actionBar.titleGroup)
+            if (actionBar.titleGroup && actionBar.titleGroup.visible)
                 actionBar.titleGroup.cacheAsBitmap = false;
+
+            if (actionBar.titleDisplay
+                && (actionBar.titleDisplay is DisplayObject)
+                && DisplayObject(actionBar.titleDisplay).visible)
+                DisplayObject(actionBar.titleDisplay).cacheAsBitmap = false;

             if (cachedTitleGroup)
                 removeComponentFromContainerSkin(cachedTitleGroup, actionBar.skin);
@@ -469,7 +482,8 @@
         var animatedProperty:String;

         var actionBarSkin:UIComponent = actionBar.skin;
-        var titleGroup:Group = actionBar.titleGroup;
+        var titleGroup:UIComponent = (actionBar.titleGroup.visible)
+            ? actionBar.titleGroup : UIComponent(actionBar.titleDisplay);

         var fadeOutTargets:Array = new Array();
         var fadeInTargets:Array = new Array();


Fixed bug where JS API wouldn't be initialized if no file was specified and defaults.xml didn't exist.

--- WeaveUI/src/weave/application/VisApplication.as
+++ WeaveUI/src/weave/application/VisApplication.as
@@ -284,32 +284,36 @@
 				Weave.properties.enableMenuBar.value = false;
 				Weave.properties.dashboardMode.value = true;
 			}
-
+			initJavaScript();
+		}
+		private function handleConfigFileFault(event:FaultEvent, fileName:String):void
+		{
+			// don't report an error if no filename was specified
+			var noFileName:Boolean = !getFlashVarFile();
+			if (noFileName)
+			{
+				// for default fallback configuration, create a WeaveDataSource
+				Weave.root.requestObject(null, WeaveDataSource, false);
+
+				// if not opened from admin console, enable interface now
+				if (!getFlashVarAdminConnectionName())
+					this.enabled = true;
+				initJavaScript();
+			}
+			else
+			{
+				reportError(event);
+				if (event.fault.faultCode == SecurityErrorEvent.SECURITY_ERROR)
+					Alert.show(lang("The server hosting the configuration file does not have a permissive crossdomain policy."), lang("Security sandbox violation"));
+			}
+		}
+		private function initJavaScript():void
+		{
 			// enable JavaScript API after initial session state has loaded.
 			ExternalSessionStateInterface.tryAddCallback('runStartupJavaScript', Weave.properties.runStartupJavaScript);
 			Weave.initWeavePathAPI();
 			WeaveAPI.initializeExternalInterface(); // this calls weaveReady() in JavaScript
 			Weave.properties.runStartupJavaScript(); // run startup script after weaveReady()
-		}
-		private function handleConfigFileFault(event:FaultEvent, fileName:String):void
-		{
-			// don't report an error if no filename was specified
-			var noFileName:Boolean = !getFlashVarFile();
-			if (noFileName)
-			{
-				// for default fallback configuration, create a WeaveDataSource
-				Weave.root.requestObject(null, WeaveDataSource, false);
-
-				// if not opened from admin console, enable interface now
-				if (!getFlashVarAdminConnectionName())
-					this.enabled = true;
-			}
-			else
-			{
-				reportError(event);
-				if (event.fault.faultCode == SecurityErrorEvent.SECURITY_ERROR)
-					Alert.show(lang("The server hosting the configuration file does not have a permissive crossdomain policy."), lang("Security sandbox violation"));
-			}
 		}

 		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void


INTEGRATION https://issues.apache.org/jira/browse/FLEX-33777 Dagrid for mobile - added missing licence notice

--- frameworks/projects/experimental_mobile/src/spark/layouts/MobileGridLayout.as
+++ frameworks/projects/experimental_mobile/src/spark/layouts/MobileGridLayout.as
@@ -1,3 +1,21 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
 package spark.layouts
 {
 import mx.core.mx_internal;


Transferred from the Adobe Open Source Subversion Repository

Revision: 8435
Author:   dsubrama@adobe.com
Date:     2009-07-07T22:38:03.438314Z

Log Message:
-----------
While responding to a forum question, I realized ItemRenderer.getCurrentRendererState() was not documented. This is needed since developers will override this method to add/customize their renderer's state behavior if it differs from the default.

QA: No
Doc: No
Checkintests: Pass
Reviewer: me

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
@@ -342,14 +342,23 @@

     //--------------------------------------------------------------------------
     //
-    //  Methods
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     *  Return the skin state. This can be overridden by subclasses to add more states.
-     *  NOTE: Undocumented for now since DataRenderer class has not been fleshed out.
+    //  Methods - ItemRenderer State Support
+    //
+    //--------------------------------------------------------------------------
+    /**
+     *  Returns the name of the state to be applied to the renderer. For example, a
+     *  very basic List item renderer would return the String "normal", "hovered",
+     *  or "selected" to specify the renderer's state.
+     *
+     *
A subclass of ItemRenderer must override this method to return a value
+     *  if the behavior desired differs from the default behavior.

+     *
+     *  @return A String specifying the name of the state to apply to the renderer.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     protected function getCurrentRendererState():String
     {


M Finish rewriting DataBindings class

M Finish rewriting DataBindings class

--- src/aerys/minko/type/data/DataBindings.as
+++ src/aerys/minko/type/data/DataBindings.as
@@ -36,15 +36,14 @@

 			for (var attrName : String in dataDescriptor)
 			{
+				// if this provider attribute is also a dataprovider, let's also bind it
 				var bindingName	: String		= dataDescriptor[attrName];
-
-				if (_bindingNames.indexOf(bindingName) != -1)
-					throw new Error('A Dataprovider is already defining this binding. Cannot overwrite.');
-
-				// if this provider attribute is also a dataprovider, let's also bind it
 				var attribute	: Object		= provider[attrName]
 				var dpAttribute	: IDataProvider	= attribute as IDataProvider;

+				if (_bindingNames.indexOf(bindingName) != -1)
+					throw new Error('Another Dataprovider is already declaring "' + bindingName + '". Cannot overwrite.');
+
 				if (dpAttribute != null)
 				{
 					dpAttribute.changed.add(onProviderAttributeChange);
@@ -63,29 +62,30 @@

 				providerBindingNames.push(bindingName);
 				_bindingNames.push(bindingName);
+
+				getPropertyChangedSignal(bindingName).execute(this, bindingName, attribute);
 			}

 			_providerToBindingNames[provider] = providerBindingNames;
 		}

-		public function remove(dataProvider : IDataProvider) : void
-		{
-			var bindingNames : Vector.<String> = _providerToBindingNames[dataProvider];
+		public function remove(provider : IDataProvider) : void
+		{
+			var bindingNames : Vector.<String> = _providerToBindingNames[provider];

 			if (bindingNames == null)
 				throw new ArgumentError('No such provider was binded');

-			dataProvider.changed.remove(onProviderChange);
-
-			for (var bindingName : String in bindingNames)
-			{
-				_bindingNames.splice(_bindingNames.indexOf(bindingName), 1);
+			for each (var bindingName : String in bindingNames)
+			{
+				var indexOf : int = _bindingNames.indexOf(bindingName);
+
+				_bindingNames.splice(indexOf, 1);

 				if (_bindingNameToValue[bindingName] is IDataProvider)
 					IDataProvider(_bindingNameToValue[bindingName]).changed.remove(onProviderAttributeChange);

 				delete _bindingNameToValue[bindingName];
-
 			}

 			var attributesToDelete : Vector.<Object> = new Vector.<Object>();
@@ -94,7 +94,7 @@
 			{
 				var providers		: Vector.<IDataProvider>	= _attributeToProviders[attribute];
 				var attrNames		: Vector.<String>			= _attributeToProvidersAttrNames[attribute];
-				var indexOfProvider	: int						= providers.indexOf(dataProvider);
+				var indexOfProvider	: int						= providers.indexOf(provider);

 				if (indexOfProvider != -1)
 				{
@@ -110,6 +110,16 @@
 			{
 				delete _attributeToProviders[attributeToDelete];
 				delete _attributeToProvidersAttrNames[attributeToDelete];
+			}
+
+			provider.changed.remove(onProviderChange);
+
+			delete _providerToBindingNames[provider];
+
+			for each (bindingName in bindingNames)
+			{
+				trace(bindingName);
+				getPropertyChangedSignal(bindingName).execute(this, bindingName, null);
 			}
 		}

@@ -142,31 +152,64 @@
 		/**
 		 * A provider attribute has changed, and the provider tells us.
 		 * For example, camera.fov has changed, the camera dispatches a 'changed' signal with 'fov' as attributeName.
-		 */
+		 *
+		 * It could also be that camera.localToWorld has been replaced by another matrix instance.
+		 */
 		private function onProviderChange(source : IDataProvider, attributeName : String) : void
 		{
-			if (attributeName == 'dataDescriptor')
-			{
-				throw new Error('implement');
-			}
-			else if (attributeName == null)
-			{
-				throw new Error('implement');
+			if (attributeName == null)
+			{
+				throw new Error('DataProviders must change one property at a time.');
+			}
+			else if (attributeName == 'dataDescriptor')
+			{
+				remove(source);
+				add(source);
 			}
 			else
 			{
 				var bindingName : String		= source.dataDescriptor[attributeName];
-				var oldDPValue	: Object		= _bindingNameToValue[bindingName];
-				var newDPValue	: IDataProvider	= source[attributeName] as IDataProvider;
-
-				if ()
-				{
-
-
-					_bindingNameToValue[bindingName] = newValue;
-
-				}
-
+				var oldDpValue	: IDataProvider	= _bindingNameToValue[bindingName] as IDataProvider;
+				var newValue	: Object		= source[attributeName];
+				var newDpValue	: IDataProvider	= newValue as IDataProvider;
+
+				// we are replacing a data provider. We must remove listeners and related mapping keys
+				if (oldDpValue != null)
+				{
+					oldDpValue.changed.remove(onProviderAttributeChange);
+
+					var providers	: Vector.<IDataProvider>	= _attributeToProviders[oldDpValue];
+					var attrNames	: Vector.<String>			= _attributeToProvidersAttrNames[oldDpValue];
+
+					if (providers.length == 1)
+					{
+						delete _attributeToProviders[oldDpValue];
+						delete _attributeToProvidersAttrNames[oldDpValue];
+					}
+					else
+					{
+						var index : uint = providers.indexOf(source);
+						providers.splice(index, 1);
+						attrNames.splice(index, 1);
+					}
+				}
+
+				// the new value for this key is a dataprovider, we must listen changes.
+				if (newDpValue != null)
+				{
+					newDpValue.changed.add(onProviderAttributeChange);
+
+					if (!_attributeToProviders[newDpValue])
+						_attributeToProviders[newDpValue] = new <IDataProvider>[];
+
+					if (!_attributeToProvidersAttrNames[newDpValue])
+						_attributeToProvidersAttrNames[newDpValue] = new <String>[];
+
+					_attributeToProviders[newDpValue].push(source);
+					_attributeToProvidersAttrNames[newDpValue].push(attributeName);
+				}
+
+				_bindingNameToValue[bindingName] = newValue;

 				getPropertyChangedSignal(bindingName).execute(this, bindingName, newValue);
 			}
@@ -182,9 +225,14 @@
 			var attrNames		: Vector.<String>			= _attributeToProvidersAttrNames[source];
 			var numProviders	: uint						= providers.length;

-			// can do faster than that :p
 			for (var providerId : uint = 0; providerId < numProviders; ++providerId)
-				onProviderChange(providers[providerId], attrNames[providerId]);
+			{
+				var provider	: IDataProvider	= providers[providerId];
+				var attrName	: String		= attrNames[providerId];
+				var bindingName : String		= provider.dataDescriptor[attrName];
+
+				getPropertyChangedSignal(bindingName).execute(this, bindingName, source);
+			}
 		}
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -1049,6 +1049,7 @@
  *    explicitMinWidth="NaN"
  *    explicitWidth="NaN"
  *    focusEnabled="true|false"
+ *    hasFocusableChildren="false|true"
  *    height="0"
  *    id=""
  *    includeInLayout="true|false"
@@ -1396,9 +1397,8 @@

         // Override  variables in superclasses.
         focusRect = false; // We do our own focus drawing.
+        // We are tab enabled by default if IFocusManagerComponent
         tabEnabled = (this is IFocusManagerComponent);
-            // We are tab enabled by default if IFocusManagerComponent
-        tabChildren = false;

         // Whether the component can accept user interaction.
         // The default is true. If you set enabled to false for a container,
@@ -3307,6 +3307,7 @@
     public function set focusManager(value:IFocusManager):void
     {
         _focusManager = value;
+        dispatchEvent(new FlexEvent(FlexEvent.ADD_FOCUS_MANAGER));
     }

     //----------------------------------
@@ -4220,6 +4221,65 @@
     }

     //----------------------------------
+    //  hasFocusableChildren
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the hasFocusableChildren property.
+     */
+    private var _hasFocusableChildren:Boolean = false;
+
+    [Bindable("hasFocusableChildrenChange")]
+    [Inspectable(defaultValue="false")]
+
+	/**
+	 *  A flag that indicates whether child objects can receive focus
+	 *
+	 *
This is similar to the tabChildren property
+     *  used by the Flash Player.
+	 *
+	 *
This is usually false because most components
+     *  either receive focus themselves or delegate focus to a single
+     *  internal sub-component and appear as if the component has
+     *  received focus.  For example, a TextInput contains a focusable
+     *  child RichEditableText control, but while the RichEditableText
+     *  sub-component actually receives focus, it appears as if the
+     *  TextInput has focus.  TextInput sets hasFocusableChildren
+     *  to false because TextInput is considered the
+     *  component that has focus.  Its internal structure is an
+     *  abstraction.

+     *
+	 *
Usually only navigator components like TabNavigator and
+     *  Accordion have this flag set to true because they
+     *  receive focus on Tab but focus goes to components in the child
+     *  containers on further Tabs.

+	 *
+     *  @default false
+     *
+	 *  @langversion 4.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
+	 */
+    public function get hasFocusableChildren():Boolean
+    {
+        return _hasFocusableChildren;
+    }
+
+    /**
+     *  @private
+     */
+    public function set hasFocusableChildren(value:Boolean):void
+    {
+        if (value != _hasFocusableChildren)
+        {
+            _hasFocusableChildren = value;
+            dispatchEvent(new Event("hasFocusableChildrenChange"));
+        }
+    }
+
+    //----------------------------------
     //  mouseFocusEnabled
     //----------------------------------


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

--- frameworks/projects/framework/src/mx/utils/MatrixUtil.as
+++ frameworks/projects/framework/src/mx/utils/MatrixUtil.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2006 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Allow a custom dispatcher to be provided because the default (dispatching on
the stage) only routes commands to the global controller, bypassing the
controller for the current place view.

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

--- src/as/com/threerings/flex/CommandMenu.as
+++ src/as/com/threerings/flex/CommandMenu.as
@@ -23,6 +23,7 @@

 import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;
+import flash.events.IEventDispatcher;

 import flash.geom.Rectangle;

@@ -41,11 +42,10 @@
 use namespace mx_internal;

 /**
- * A pretty standard menu that can submit CommandEvents if menu items
- * have "command" and possibly "arg" properties. Commands are submitted to
- * controllers for processing. Alternatively, you may specify
- * "callback" properties that specify a function closure to call, with the
- * "arg" property containing either a single arg or an array of args.
+ * A pretty standard menu that can submit CommandEvents if menu items have "command" and possibly
+ * "arg" properties. Commands are submitted to controllers for processing. Alternatively, you may
+ * specify "callback" properties that specify a function closure to call, with the "arg" property
+ * containing either a single arg or an array of args.
  *
  * Example dataProvider array:
  * [ { label: "Go home", icon: homeIconClass,
@@ -55,19 +55,10 @@
  *   { label: "Other places", children: subMenuArray }
  * ];
  *
- * See "Defining menu structure and data" in the Flex manual for the
- * full list.
+ * See "Defining menu structure and data" in the Flex manual for the full list.
  */
 public class CommandMenu extends ScrollableArrowMenu
 {
-    public function CommandMenu ()
-    {
-        super();
-        verticalScrollPolicy = ScrollPolicy.OFF;
-
-        addEventListener(MenuEvent.ITEM_CLICK, itemClicked);
-    }
-
     /**
      * Factory method to create a command menu.
      *
@@ -81,6 +72,22 @@
         menu.showRoot = true;
         Menu.popUpMenu(menu, null, items);
         return menu;
+    }
+
+    public function CommandMenu ()
+    {
+        super();
+        verticalScrollPolicy = ScrollPolicy.OFF;
+        addEventListener(MenuEvent.ITEM_CLICK, itemClicked);
+    }
+
+    /**
+     * Configures the event dispatcher to be used when dispatching this menu's events. By default
+     * they will be dispatched on the stage.
+     */
+    public function setDispatcher (dispatcher :IEventDispatcher) :void
+    {
+        _dispatcher = dispatcher;
     }

     /**
@@ -103,9 +110,8 @@
     }

     /**
-     * Just like our superclass's show(), except that when invoked
-     * with no args, causes the menu to show at the current mouse location
-     * instead of the top-left corner of the application.
+     * Just like our superclass's show(), except that when invoked with no args, causes the menu to
+     * show at the current mouse location instead of the top-left corner of the application.
      */
     override public function show (xShow :Object = null, yShow :Object = null) :void
     {
@@ -130,14 +136,15 @@
         }
         if (cmdOrFn != null) {
             event.stopImmediatePropagation();
-            CommandEvent.dispatch(mx_internal::parentDisplayObject, cmdOrFn, arg)
+            CommandEvent.dispatch(_dispatcher == null ? mx_internal::parentDisplayObject :
+                                  _dispatcher, cmdOrFn, arg);
         }
         // else: no warning. There may be non-command menu items mixed in.
     }

     /**
-     * Get the specified property for the specified item, if any.
-     * Somewhat similar to bits in the DefaultDataDescriptor.
+     * Get the specified property for the specified item, if any.  Somewhat similar to bits in the
+     * DefaultDataDescriptor.
      */
     protected function getItemProp (item :Object, prop :String) :Object
     {
@@ -154,5 +161,7 @@
         }
         return null;
     }
+
+    protected var _dispatcher :IEventDispatcher;
 }
 }


- Updated documentation of map

- Updated documentation of map

--- apparat-ersatz/src/main/as3/apparat/memory/map.as
+++ apparat-ersatz/src/main/as3/apparat/memory/map.as
@@ -31,6 +31,8 @@
      *
      * @see Structure
      * @see sizeOf
+     * @param pointer The pointer in memory.
+     * @param klass A Structure type.
      *
      * @example
      * <pre>
@@ -53,7 +55,7 @@
      * pt.x += Math.random() * 5; //Read and set the memory at index 8
      * </pre>
      */
-    public function map(ptr: int, klass: Class): * {
+    public function map(pointer: int, klass: Class): * {
         return null
     }
 }


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

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

 package mx.automation.codec
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 1098
Author:   jimurphy@adobe.com
Date:     2008-04-03T21:50:39.896200Z

Log Message:
-----------
Merge 3.0.x -- 362:394, 427:429, 603:608, 644:645, 651:663, 672:676, 755:756, 763:766, 785:790, 812:814, 854:861, 862:866, 866:933,971:1009, 1050:1056 --> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/DefaultDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VRule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IRepeaterClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/Locale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/SOAPMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IBrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ComponentDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/IViewCursor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManager.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/menuClasses/IMenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ILayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Spacer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Fault.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/XMLListCollection.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/framework/src/mx/events/SliderEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ScrollEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/mxml/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/CuePointManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/NumericStepperEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/events/ChannelFaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/CursorBookmark.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/LoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/FlexClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/SubscriptionInfo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/LogLogger.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/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/build_framework.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/HeaderEvent.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/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/ITreeDataDescriptor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemDragProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as
@@ -325,7 +325,9 @@
 	 *  For SequenceInstance, it plays the next effect.
 	 *  In ParallelInstance, it keeps track of all the
 	 *  effects until all of them have finished playing.
-	 *  If you create a subclass of CompositeEffect, you must implement this method.
+	 *  If you create a subclass of CompositeEffect, you must implement this method.
+         *
+         * @param childEffect A child effect that has finished.
 	 */
 	override protected function onEffectEnd(childEffect:IEffectInstance):void
 	{


StreamBuffer : add debug logs to understand https://github.com/mangui/flashls/issues/415

--- src/org/mangui/hls/stream/StreamBuffer.as
+++ src/org/mangui/hls/stream/StreamBuffer.as
@@ -203,9 +203,12 @@
                             if(continuity == _fragMainInitialContinuity) {
                                 sliding = _liveSlidingMain = _fragMainInitialStartPosition + (min_pts-_fragMainInitialPTS)/1000 - startPosition;
                                 CONFIG::LOGGING {
+                                    var debugString : String = "sliding/min_pts/_fragMainInitialPTS/startPosition/_fragMainInitialStartPosition:" + sliding + '/' + min_pts + '/' + _fragMainInitialPTS + '/' + startPosition.toFixed(3) + '/' + _fragMainInitialStartPosition;
                                     // allow negative but small values, that could happen because of frag drift
                                     if(sliding < -1) {
-                                        Log.warn('negative sliding : sliding/min_pts/_fragMainInitialPTS/startPosition/_fragMainInitialStartPosition:' + sliding + '/' + min_pts + '/' + _fragMainInitialPTS + '/' + startPosition.toFixed(3) + '/' + _fragMainInitialStartPosition);
+                                        Log.warn('negative sliding:'+debugString);
+                                    } else {
+                                        Log.debug2('sliding on same cc:'+ debugString);
                                     }
                                 }
                             } else {
@@ -220,7 +223,7 @@

                     }
                     CONFIG::LOGGING {
-                        Log.debug('new main frag,start/sliding/idx:' + startPosition.toFixed(3) + '/' + sliding.toFixed(3) + '/' + _fragMainIdx);
+                        Log.debug('new main frag,start/sliding/cc/idx:' + startPosition.toFixed(3) + '/' + sliding.toFixed(3) + '/' + continuity + '/' + _fragMainIdx);
                     }
                 }
                 fragIdx = _fragMainIdx;


Transferred from the Adobe Open Source Subversion Repository

Revision: 5028
Author:   egeorgie@adobe.com
Date:     2009-02-21T00:02:17.627601Z

Log Message:
-----------
IGraphicElement interface clean-up and optimizations.
Animating a GraphicElement that doesn't share the Group's DO should be now faster and smoother since redrawing it won't redraw the Group anymore.

1. Group doesn't always clear the first sequence of display objects now
2. Moved the shared DO logic almost entirely into Group
3. More granular invalidation for GraphicElements

QE Notes: Make sure we have test that count the number of display objects for a given set of graphic elements and a group
Doc Notes:
Bugs: None
Reviewer: Glenn, Ryan, Jason
tests: None

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/InvalidatingSprite.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/graphics/BitmapGraphic.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/ISharedDisplayObject.as</path>
<path kind="file" action="M">/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/graphics/IGraphicElement.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/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/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="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/ISharedGraphicsDisplayObject.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
@@ -120,13 +120,8 @@
         if (!drawnDisplayObject || !(drawnDisplayObject is Sprite))
             return;

+        // The base GraphicElement class has cleared the graphics for us.
         var g:Graphics = (drawnDisplayObject as Sprite).graphics;
-
-		// We only clear if we have a displayObject. This handles the case of having our own displayObject and the
-		// case when we have a mask and have created a _drawnDisplayObject. We don't want to clear if we are
-		// sharing a display object.
-		if (displayObject)
-			g.clear();

         beginDraw(g);
         drawElement(g);