Transferred from the Adobe Open Source Subversion Repository

Revision: 12339
Author:   clucier@adobe.com
Date:     2009-12-01T22:28:31.107685Z

Log Message:
-----------
Reducing some of the event dispatching noise in the SDK.  Seeing pretty good results in our runtime performance tests and startup times... 5%-15% improvement over all.  This is about all we'll be able to commit to for Flex 4.0.  Added hasEventListener test before dispatching more of our lifecycle events.  Modified compiler binding code-gen to do the same.  Documented all public facing events where applicable to denote that they are no longer capturable by default.

QE notes: No
Doc notes: No
Bugs: SDK-24249
Reviewer: Alex
Tests run: Mustella, Checkin
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/BorderContainerSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.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/framework/src/mx/graphics/SolidColor.as</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/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientEntry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/State.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableSecondPassEvaluator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/as3/binding/BindableProperty.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/states/State.as
+++ frameworks/projects/framework/src/mx/states/State.as
@@ -265,7 +265,8 @@
      */
     mx_internal function dispatchEnterState():void
     {
-        dispatchEvent(new FlexEvent(FlexEvent.ENTER_STATE));
+        if (hasEventListener(FlexEvent.ENTER_STATE))
+            dispatchEvent(new FlexEvent(FlexEvent.ENTER_STATE));
     }

     /**
@@ -274,7 +275,8 @@
      */
     mx_internal function dispatchExitState():void
     {
-        dispatchEvent(new FlexEvent(FlexEvent.EXIT_STATE));
+        if (hasEventListener(FlexEvent.EXIT_STATE))
+            dispatchEvent(new FlexEvent(FlexEvent.EXIT_STATE));
     }
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

UITextFormat.useTLF -> UITextFormat.useFTE

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

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

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

--- frameworks/projects/mx/src/mx/controls/ComboBase.as
+++ frameworks/projects/mx/src/mx/controls/ComboBase.as
@@ -240,7 +240,7 @@
  *
  *
It can be set to either the mx.core.TextInput class
  *  (to use the classic Halo TextInput control)
- *  or the mx.controls.TLFTextInput class
+ *  or the mx.controls.MXFTETextInput class
  *  (to use the Spark TextInput component based on the Text Layout Framework
  *  to get improved text rendering, including bidirectional layout).

  *
@@ -1167,7 +1167,7 @@
             if (!textInputStyleName)
                 textInputStyleName = new StyleProxy(this, textInputStyleFilters);

-            // Mechanism to use TLFTextInput.
+            // Mechanism to use MXFTETextInput.
             var textInputClass:Class = getStyle("textInputClass");
             if (!textInputClass ||
                 FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)


Int defaulted to NaN, which is a Number, thus failing...

--- src/org/igniterealtime/xiff/core/XMPPConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPConnection.as
@@ -782,7 +782,7 @@
 		 * @param	code Legacy code
 		 * @param	extension
 		 */
-		protected function dispatchError( condition:String, message:String, type:String, code:int = NaN, extension:Extension=null ):void
+		protected function dispatchError( condition:String, message:String, type:String, code:int = 0, extension:Extension=null ):void
 		{
 			var event:XIFFErrorEvent = new XIFFErrorEvent();
 			event.errorCondition = condition;


Renderer click now changed to up and down events to make it more compatible with touch devices

--- src/org/openPyro/controls/listClasses/ListBase.as
+++ src/org/openPyro/controls/listClasses/ListBase.as
@@ -4,6 +4,7 @@
 	import flash.display.Sprite;
 	import flash.events.MouseEvent;
 	import flash.utils.Dictionary;
+	import flash.utils.Timer;

 	import org.openPyro.collections.CollectionHelpers;
 	import org.openPyro.collections.ICollection;
@@ -325,7 +326,8 @@
 		protected function createNewRenderer(newRendererUID:String,rowIndex:Number):DisplayObject{
 			var newRenderer:DisplayObject = rendererPool.getObject() as DisplayObject;
 			newlyCreatedRenderers.push(newRenderer);
-			newRenderer.addEventListener(MouseEvent.CLICK, handleRendererMouseClick);
+			newRenderer.addEventListener(MouseEvent.MOUSE_DOWN, handleRendererMouseDown);
+			newRenderer.addEventListener(MouseEvent.MOUSE_UP, handleRendererMouseUp);
 			contentPane.addChildAt(newRenderer,0);
 			if(newRenderer is MeasurableControl){
 				MeasurableControl(newRenderer).doOnAdded();
@@ -411,10 +413,26 @@
 			}
 		}

+		private var wasMouseDownWithinClickThreshold:Boolean = true;
+		protected function handleRendererMouseDown(event:MouseEvent):void{
+			wasMouseDownWithinClickThreshold = true;
+		}
+
+		public function set scrolling(b:Boolean):void{
+			if(b){
+				wasMouseDownWithinClickThreshold = false;
+			}
+		}
+
 		/**
 		 * Function invoked when an itemRenderer is clicked
 		 */
-		protected function handleRendererMouseClick(event:MouseEvent):void{
+		protected function handleRendererMouseUp(event:MouseEvent):void{
+
+			if(!wasMouseDownWithinClickThreshold){
+				return;
+			}
+
 			for (var uid:String in visibleRenderersMap){
 				if(visibleRenderersMap[uid] == event.currentTarget){
 					//_selectedItem = rendererData;


If there are import statements after the [Event...] lines, the compiler doesn't care, but the
asdoc tool fails to recognize the Events, and they don't end up in the documentation.

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

--- src/as/com/threerings/ezgame/EZLocalSubControl.as
+++ src/as/com/threerings/ezgame/EZLocalSubControl.as
@@ -21,6 +21,10 @@

 package com.threerings.ezgame {

+import flash.events.KeyboardEvent;
+
+import flash.geom.Point;
+
 /**
  * Dispatched when a key is pressed when the game has focus.
  *
@@ -41,11 +45,6 @@
  * @eventType com.threerings.ezgame.SizeChangedEvent.TYPE
  */
 [Event(name="SizeChanged", type="com.threerings.ezgame.SizeChangedEvent")]
-
-
-import flash.events.KeyboardEvent;
-
-import flash.geom.Point;

 /**
  * Access local properties of the game. Do not instantiate this class yourself,


Making the debug property non-static so that it can be changed for each websocket connection.

--- AS3WebSocket/src/com/worlize/websocket/WebSocket.as
+++ AS3WebSocket/src/com/worlize/websocket/WebSocket.as
@@ -78,7 +78,7 @@

 		public var config:WebSocketConfig = new WebSocketConfig();

-		public static var debug:Boolean = false;
+		public var debug:Boolean = false;

 		public static var logger:Function = function(text:String):void {
 			trace(text);


minor inline doc fix for asdoc

minor inline doc fix for asdoc

--- src/metafas3/reaction_view/helpers/TextFieldHelper.as
+++ src/metafas3/reaction_view/helpers/TextFieldHelper.as
@@ -14,11 +14,9 @@
 		static public var default_options:Hash = new Hash({
 			// autosize to end-run the 100x100 base size
 			autoSize:	'left',
-			/**
-			* 	NOTE: condenseWhite interferes with
-			*		some HTML rendering and multiline text
-			*		probably best to EXCLUDE from default_options
-			**/
+			//	NOTE: condenseWhite interferes with
+			//		some HTML rendering and multiline text
+			//		probably best to EXCLUDE from default_options
 			// condenseWhite: true,
 			// multiline: true for HTML5 support!
 			multiline: true,


Adding additional subprotocol format verification.

--- AS3WebSocket/src/com/worlize/websocket/WebSocket.as
+++ AS3WebSocket/src/com/worlize/websocket/WebSocket.as
@@ -108,6 +108,8 @@

 		private function init():void {
 			parseUrl();
+
+			validateProtocol();

 			closeTimer = new Timer(closeTimeout, 1);
 			closeTimer.addEventListener(TimerEvent.TIMER, handleCloseTimer);
@@ -135,6 +137,24 @@
 			socket.addEventListener(ProgressEvent.SOCKET_DATA, handleSocketData);

 			_readyState = WebSocketState.INIT;
+		}
+
+		private function validateProtocol():void {
+			if (_protocol) {
+				var separators:Array = [
+					"(", ")", "<", ">", "@",
+					",", ";", ":", "\\", "\"",
+					"/", "[", "]", "?", "=",
+					"{", "}", " ", String.fromCharCode(9)
+				];
+				for (var i:int = 0; i < _protocol.length; i++) {
+					var charCode:int = _protocol.charCodeAt(i);
+					var char:String = _protocol.charAt(i);
+					if (charCode < 0x21 || charCode > 0x7E || separators.indexOf(char) !== -1) {
+						throw new WebSocketError("Illegal character '" + String.fromCharCode(char) + "' in subprotocol.");
+					}
+				}
+			}
 		}

 		public function connect():void {


Testing hudson ci server 3

Testing hudson ci server 3

--- src/as3spec/Printer.as
+++ src/as3spec/Printer.as
@@ -24,7 +24,7 @@
       trace("<testsuite name='AllSpecs' errors='" + counter.errors + "' failures='" + counter.failures + "' tests='" + counter.specifications + "' time='" + (counter.time/1000) + "'>");
       for(var countName:String in counter.contexts) {
         for each(var specification:Specification in counter.contexts[countName]) {
-          trace("<testcase classname='"+countName+"' name='"+specification.story+"' time='"+(specification.time/1000)+"'></testcase>");
+          trace("<testcase classname='"+countName+'.'+specification.story"' name='"+specification.story+"' time='"+(specification.time/1000)+"'></testcase>");
         }
       }
       trace("</testsuite>");


Improvements to FLV time handling in overflow situations.

--- HLSPlugin/src/com/kaltura/hls/m2ts/FLVTranscoder.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/FLVTranscoder.as
@@ -53,7 +53,7 @@

         protected var sendingDebugEvents:Boolean = false;

-        private function sendFLVTag(flvts:uint, type:uint, codec:int, mode:int, bytes:ByteArray, offset:uint, length:uint, duration:uint, buffer:Boolean = true):void
+        private function sendFLVTag(flvts:int, type:uint, codec:int, mode:int, bytes:ByteArray, offset:uint, length:uint, duration:uint, buffer:Boolean = true):void
         {
             var tag:ByteArray = new ByteArray();

@@ -227,8 +227,8 @@
          */
         public function convert(unit:NALU):void
         {
-            var flvts:uint = convertFLVTimestamp(unit.dts);
-            var tsu:uint = convertFLVTimestamp(unit.pts - unit.dts);
+            var flvts:int = convertFLVTimestamp(unit.dts);
+            var tsu:int = convertFLVTimestamp(unit.pts - unit.dts);

             // Estimate current framerate, default to 30hz if can't get a plausible estimate.
             var tsDelta:int = convertFLVTimestamp(unit.dts - videoLastDTS);


Transferred from the Adobe Open Source Subversion Repository

Revision: 17491
Author:   aharui@adobe.com
Date:     2010-08-26T18:31:34.581497Z

Log Message:
-----------
Handle clipped sub-apps

QE notes: none
Doc notes: New optional parameter to SystemManager.getVisibleApplicationRect
Bugs: SDK-26478
Reviewer: Darrell
Tests run: checkintests mustella/MarshallPlan
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark_dmv/src/mx/controls/advancedDataGridClasses/FTEAdvancedDataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Menu.as
+++ frameworks/projects/mx/src/mx/controls/Menu.as
@@ -1676,7 +1676,7 @@
             var pt:Point = new Point(x, y);
             pt = sbRoot.localToGlobal(pt);

-            screen = sm.getVisibleApplicationRect();
+            screen = sm.getVisibleApplicationRect(null, true);

             var shift:Number = pt.x + width - screen.right;
             if (shift > 0)
@@ -2449,7 +2449,7 @@

         // convert to global coordinates to compare with getVisibleApplicationRect().
         // the screen is the visible coordinates of our sandbox (written in global coordinates)
-        var screen:Rectangle = systemManager.getVisibleApplicationRect();
+        var screen:Rectangle = systemManager.getVisibleApplicationRect(null, true);
         var sbRoot:DisplayObject = systemManager.getSandboxRoot();

         var screenPoint:Point = sbRoot.localToGlobal(new Point(showX, showY));


added clone() to Rectangle

added clone() to Rectangle

--- frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
+++ frameworks/projects/Core/src/main/flex/org/apache/flex/geom/Rectangle.as
@@ -42,6 +42,10 @@
     {
         super(x, y, width, height);
     }
+	override public function clone():org.apache.flex.geom.Rectangle
+	{
+		return new org.apache.flex.geom.Rectangle(left,top,width,height);
+	}
 }

 /**
@@ -89,6 +93,10 @@
     {
         height = value - top;
     }
+	public function clone():Rectangle
+	{
+		return new Rectangle(left,top,width,height);
+	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5367
Author:   rfrishbe@adobe.com
Date:     2009-03-17T22:26:35.014500Z

Log Message:
-----------
The changes here are mostly fixing some sizing issues.

For the FlashContainerPlaceholder, the first child is now MyFlexContentHolder, which extends mx.flash.FlexContentHolder but meets the invariant that it has 1 child and that child is  FlexContentHolderThumbnail, which I’ve added as a swc to the project.  I changed this by accident last time to refer to mx.flash.FlexContentHolder, when it should've referred to a concrete instance created by Flash from a swc.  I also added a chrome of 151x151 to match the FlexContentHolderThumbnail since otherwise the container itself would have no chrome at all, and this let’s it size correctly.

Also, for sizing, in a container, rather than sizing to the size of the chrome, I now size to the size of the FlexContentHolder thumbnail that all FlexContentHolder’s have.  This means in ContainerMovieClip, I don’t need to override bounds anymore.

ContainerMovieClip now implements IVisualElementContainer.

Also, I fixed a resizing event bug in UIMovieClip where the resize event was getting dispatched more than once.

QE Notes: -
Doc Notes: -
Bugs: SDK-19271, SDK-19788, SDK-19789
Reviewer: Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/FlashComponentPlaceholder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/FlashContainerPlaceholder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/utilities/libs/FlexContentHolderThumbnail.swc</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/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/utilities/src/MyFlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/utilities/libs</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as
@@ -13,12 +13,14 @@
 {

 import flash.display.DisplayObjectContainer;
-import flash.events.Event;
 import flash.events.FocusEvent;
 import flash.geom.Rectangle;

 import mx.core.IUIComponent;
+import mx.core.IVisualElement;
+import mx.core.IVisualElementContainer;
 import mx.core.mx_internal;
+import mx.managers.ILayoutManagerClient;

 [DefaultProperty("content")]

@@ -68,7 +70,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public dynamic class ContainerMovieClip extends UIMovieClip
+public dynamic class ContainerMovieClip extends UIMovieClip implements IVisualElementContainer
 {

     //--------------------------------------------------------------------------
@@ -207,6 +209,7 @@

     private var _fillContentToSize:Boolean = false;

+    [Inspectable(category="General", enumeration="false,true", defaultValue="false")]
     /**
      *  Whether the flex content is sized to be the same size as the flash
      *  container.
@@ -219,9 +222,9 @@
      *  @default false
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get fillContentToSize():Boolean
     {
@@ -244,6 +247,7 @@

     private var _scaleContent:Boolean = false;

+    [Inspectable(category="General", enumeration="false,true", defaultValue="false")]
     /**
      *  Whether the scale of the container due to sizing
      *  affects the scale of the flex content.
@@ -259,9 +263,9 @@
      *  @default false
      *
      *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get scaleContent():Boolean
     {
@@ -275,25 +279,26 @@
     {
         _scaleContent = value;

+        if (initialized)
+            sizeContentHolder();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+   /**
+    *  @private
+    */
+    override public function setActualSize(newWidth:Number, newHeight:Number):void
+    {
+        super.setActualSize(newWidth, newHeight);
+
         sizeContentHolder();
     }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Methods
-    //
-    //--------------------------------------------------------------------------
-
-   /**
-    *  @private
-    */
-    override public function setActualSize(newWidth:Number, newHeight:Number):void
-    {
-        super.setActualSize(newWidth, newHeight);
-
-        sizeContentHolder();
-    }
-
+
     /**
      *  @private
      *
@@ -307,59 +312,25 @@
             // secretScale is the amount we scaled by to change the width and height
             var secretScaleX:Number = mx_internal::$scaleX/scaleX;
             var secretScaleY:Number = mx_internal::$scaleY/scaleY;
-
+
             // width and height are what we actually want our content
             // to fill up, but it doesn't take in to account our secretScale.
             if (!scaleContent)
             {
-                // apply inverse of the scale and set the width/height normally
+                // apply inverse of the scale
                 contentHolderObj.scaleX = 1/secretScaleX;
                 contentHolderObj.scaleY = 1/secretScaleY;
-
-                contentHolderObj.setActualSize(width, height);
             }
             else
             {
                 // apply the scale to the width/height
                 contentHolderObj.scaleX = 1;
                 contentHolderObj.scaleY = 1;
-
-                contentHolderObj.setActualSize(width / secretScaleX,
-                                               height / secretScaleY);
             }
+
+            contentHolderObj.sizeFlexContent();
         }
     }
-
-    override protected function get bounds():Rectangle
-    {
-        if (!trackSizeChanges)
-            return super.bounds;
-
-        // we don't want our bounds to include the bounds of our child
-        // otherwise we can get into a scenario where we're telling our
-        // child to be width, height from setActualSize above and they are
-        // actually a bit bigger due to drawing outside the lines.
-        // then when we get bounds next time, we're also a tad bigger,
-        // and this goes on and on in this fashion until we're infinitely large
-        var contentHolderIndex:int = -1;
-        var myContentHolder:FlexContentHolder;
-
-        if (contentHolderObj && contentHolderObj.parent == this)
-        {
-            myContentHolder = contentHolderObj;
-            contentHolderIndex = getChildIndex(contentHolderObj);
-            removeChild(contentHolderObj);
-        }
-
-       var myBounds:Rectangle = super.bounds;
-
-        if (myContentHolder)
-        {
-            addChildAt(myContentHolder, contentHolderIndex);
-        }
-
-        return myBounds;
-    }

    /**
     *  @private
@@ -375,6 +346,209 @@
     override protected function focusInHandler(event:FocusEvent):void
     {
         // No-op. Flex focus management does all the work.
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods: IVisualElementContainer
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Returns 1 if there is a viewport, 0 otherwise.
+     *
+     *  @return The number of visual elements in this visual container
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get numElements():int
+    {
+        return content ? 1 : 0;
+    }
+
+    /**
+     *  Returns the viewport if there is a viewport and the
+     *  index passed in is 0.  Otherwise, it throws a RangeError.
+     *
+     *  @param index The index of the element to retrieve.
+     *
+     *  @return The element at the specified index.
+     *
+     *  @throws RangeError If the index position does not exist in the child list.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function getElementAt(index:int):IVisualElement
+    {
+        if (content && index == 0)
+            return content as IVisualElement;
+        else
+            throw new RangeError("Index " + index + " is out of range.");
+    }
+
+    /**
+     *  Returns the 0 if the element passed in is the viewport.
+     *  Otherwise, it throws an ArgumentError.
+     *
+     *  @param element The element to identify.
+     *
+     *  @return The index position of the element to identify.
+     *
+     *  @throws ArgumentError If the element is not a child of this object.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function getElementIndex(element:IVisualElement):int
+    {
+        if (element != null && element == content)
+            return 0;
+        else
+            throw ArgumentError(element + " is not found in this container.");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in ContainerMovieClip.  ContainerMovieClip
+     *  only has one child.  Use the content property to manipulate
+     *  it.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function addElement(element:IVisualElement):IVisualElement
+    {
+        throw new ArgumentError("This operation is not supported.");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in ContainerMovieClip.  ContainerMovieClip
+     *  only has one child.  Use the content property to manipulate
+     *  it.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function addElementAt(element:IVisualElement, index:int):IVisualElement
+    {
+        throw new ArgumentError("This operation is not supported.");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in ContainerMovieClip.  ContainerMovieClip
+     *  only has one child.  Use the content property to manipulate
+     *  it.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function removeElement(element:IVisualElement):IVisualElement
+    {
+        throw new ArgumentError("This operation is not supported.");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in ContainerMovieClip.  ContainerMovieClip
+     *  only has one child.  Use the content property to manipulate
+     *  it.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function removeElementAt(index:int):IVisualElement
+    {
+        throw new ArgumentError("This operation is not supported.");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in ContainerMovieClip.  ContainerMovieClip
+     *  only has one child.  Use the content property to manipulate
+     *  it.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function removeAllElements():void
+    {
+        throw new ArgumentError("This operation is not supported.");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in ContainerMovieClip.  ContainerMovieClip
+     *  only has one child.  Use the content property to manipulate
+     *  it.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function setElementIndex(element:IVisualElement, index:int):void
+    {
+        throw new ArgumentError("This operation is not supported.");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in ContainerMovieClip.  ContainerMovieClip
+     *  only has one child.  Use the content property to manipulate
+     *  it.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function swapElements(element1:IVisualElement, element2:IVisualElement):void
+    {
+        throw new ArgumentError("This operation is not supported.");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in ContainerMovieClip.  ContainerMovieClip
+     *  only has one child.  Use the content property to manipulate
+     *  it.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function swapElementsAt(index1:int, index2:int):void
+    {
+        throw new ArgumentError("This operation is not supported.");
     }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3341
Author:   rfrishbe@adobe.com
Date:     2008-09-24T23:10:20.245436Z

Log Message:
-----------
Changing the definition of some methods in SkinnableComponent.  So instead of:

protected function partAdded(partName:String, instance:*):void

We now have:

protected function partAdded(partName:String, instance:Object):void

Technically this just means we can't support the value of "undefined" anymore.  This change was made to partAdded(), partRemoved(), createPartInstance(), removePartInstance(), and getDyanamicPartAt().

As I was making these changes in all the files that override these methods, I noticed Slider should have a partRemoved() method, so I added it.

I also made a minor change in Selector where there was a bug in the dataProvider collectionChange eventHandler.  Basically we were doing remove code on replace rather than remove.

QE: Yes - This will break (as in, it won't compile) some tests in SkinnableComponent.  Joann will change them soon after I checkin.
Doc: Yes
Bugs: SDK-16640, SDK-16709
Reviewer: Hans

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/DataComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Selector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemsComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as
@@ -202,7 +202,7 @@
 	 *  itemRendererFunction properties down to the contentGroup
 	 *  skin part.
 	 */
-	override protected function partAdded(partName:String, instance:*):void
+	override protected function partAdded(partName:String, instance:Object):void
 	{
 		if (instance == dataGroup)
 		{
@@ -228,7 +228,7 @@
 	/**
 	 *  Called when a skin part is removed.
 	 */
-	override protected function partRemoved(partName:String, instance:*):void
+	override protected function partRemoved(partName:String, instance:Object):void
 	{
 		if (instance == dataGroup)
 		{


Transferred from the Adobe Open Source Subversion Repository

Revision: 6403
Author:   dsubrama@adobe.com
Date:     2009-04-29T23:52:29.565854Z

Log Message:
-----------
-Single selection support hooked up to keyboard navigation
-We no longer listen to keyboard events at the capture phase
-We now delegate to layout to tell us which item to navigate to next - implemented for Vertical, Horizontal and Tile layouts. A List with BasicLayout/ScrollerLayout doesn't really make sense.
-Selection and keyboard navigation stay in lockstep correctly.

QA: Yes
Doc: No
Checkintests: Pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as
@@ -15,6 +15,7 @@
 import flash.geom.Point;
 import flash.events.Event;
 import flash.geom.Rectangle;
+import flash.ui.Keyboard;

 import spark.components.supportClasses.GroupBase;
 import spark.core.ScrollUnit;
@@ -523,6 +524,45 @@
         else
             g.scrollRect = null;
     }
+
+    /**
+     *  Delegation method that determines which item
+     *  to navigate to based on the current item in focus
+     *  and key stroke that was encountered. This method
+     *  is used by derivatives of ListBase to handle
+     *  keyboard navigation.
+     *
+     *  Subclasses can override this method to compute other
+     *  values that are based on the current index and key
+     *  stroke encountered.
+     *
+     *  @param index The current index of the item with focus.
+     *  @param key The key stroke that determines which item
+     *  to navigate to next.
+     *
+     *  @return The index of the next item to jump to.
+     *
+     */
+     public function nextItemIndex(keyCode:uint, currentIndex:int, maxIndex:int):int
+     {
+         //Sub-classes implement according to their own layout
+         //logic. Common cases handled here.
+         var retVal:int = -1;
+         switch (keyCode)
+         {
+             case Keyboard.END:
+             {
+                 retVal = maxIndex;
+                 break;
+             }
+             case Keyboard.HOME:
+             {
+                 retVal = 0;
+                 break;
+             }
+         }
+         return retVal;
+     }

     /**
      *  Returns the bounds of the target's scrollRect in layout coordinates.


Add some more updatePublishedFile tests

Add some more updatePublishedFile tests

--- test/src/FRESteamWorksTest.as
+++ test/src/FRESteamWorksTest.as
@@ -50,7 +50,7 @@
 			addButton("List subscribed files", enumerateSubscribedFiles);
 			addButton("List shared files", enumerateSharedFiles);
 			addButton("List workshop files", enumerateWorkshopFiles);
-			addButton("Change file description", updateFile);
+			addButton("Update file", updateFile);

 			Steamworks.addEventListener(SteamEvent.STEAM_RESPONSE, onSteamResponse);
 			Steamworks.addOverlayWorkaround(stage, true);
@@ -203,9 +203,28 @@
 			}

 			var handle:String = Steamworks.createPublishedFileUpdateRequest(file);
+			log("createPublishedFileUpdateRequest() == " + handle);
+			if(handle == WorkshopConstants.FILEUPDATEHANDLE_Invalid) return;
+
 			var res:Boolean = Steamworks.updatePublishedFileDescription(handle,
 				"Test updated description");
-			log("updatePublishedFileDescription(" + handle + ", ...) == " + res);
+			log("updatePublishedFileDescription(...) == " + res);
+			if(!res) return;
+
+			res = Steamworks.updatePublishedFileTitle(handle, "Updated test title");
+			log("updatePublishedFileTitle(...) == " + res);
+			if(!res) return;
+
+			res = Steamworks.updatePublishedFileTags(handle, ["TestTag", "Updated TestTag"]);
+			log("updatePublishedFileTags(...) = " + res);
+			if(!res) return;
+
+			res = Steamworks.updatePublishedFileSetChangeDescription(handle, "Test update!");
+			log("updatePublishedFileSetChangeDescription(...) == " + res);
+			if(!res) return;
+
+			res = Steamworks.updatePublishedFileVisibility(handle, WorkshopConstants.VISIBILITY_Public);
+			log("updatePublishedFileVisibility(Public) == " + res);
 			if(!res) return;

 			res = Steamworks.commitPublishedFileUpdate(handle);
@@ -213,7 +232,7 @@
 		}

 		private var id:String;
-		private var handle:String;
+		private var ugcHandle:String;
 		private var file:String;
 		private function onSteamResponse(e:SteamEvent):void{
 			var apiCall:Boolean;
@@ -251,6 +270,10 @@
 					for(i = 0; i < userRes.resultsReturned; i++) {
 						log(i + ": " + userRes.publishedFileId[i]);
 					}
+
+					if(userRes.resultsReturned > 0)
+						file = userRes.publishedFileId[0];
+
 					break;
 				case SteamConstants.RESPONSE_OnEnumeratePublishedWorkshopFiles:
 					log("RESPONSE_OnEnumeratePublishedWorkshopFiles: " + e.response);
@@ -260,10 +283,10 @@
 						log(i + ": " + fileRes.publishedFileId[i] + " - " + fileRes.score[i]);
 					}
 					if(fileRes.resultsReturned > 0) {
-						file = fileRes.publishedFileId[0];
-						log("updateUserPublishedItemVote(" + file + ", true)");
-						apiCall = Steamworks.updateUserPublishedItemVote(file, true);
-						log("updateUserPublishedItemVote(" + file + ", true) == " + apiCall);
+						var f:String = fileRes.publishedFileId[0];
+						log("updateUserPublishedItemVote(" + f + ", true)");
+						apiCall = Steamworks.updateUserPublishedItemVote(f, true);
+						log("updateUserPublishedItemVote(" + f + ", true) == " + apiCall);
 					}
 					break;
 				case SteamConstants.RESPONSE_OnGetPublishedFileDetails:
@@ -272,15 +295,15 @@
 					log("Result for " + id + ": " + res);
 					if(res) {
 						log("File: " + res.fileName + ", handle: " + res.fileHandle);
-						handle = res.fileHandle;
+						ugcHandle = res.fileHandle;
 						apiCall = Steamworks.UGCDownload(res.fileHandle, 0);
 						log("UGCDownload(...) == " + apiCall);
 					}
 					break;
 				case SteamConstants.RESPONSE_OnUGCDownload:
 					log("RESPONSE_OnUGCDownload: " + e.response);
-					var ugcResult:DownloadUGCResult = Steamworks.getUGCDownloadResult(handle);
-					log("Result for " + handle + ": " + ugcResult);
+					var ugcResult:DownloadUGCResult = Steamworks.getUGCDownloadResult(ugcHandle);
+					log("Result for " + ugcHandle + ": " + ugcResult);
 					if(ugcResult) {
 						log("File: " + ugcResult.fileName + ", handle: " + ugcResult.fileHandle + ", size: " + ugcResult.size);
 						var ba:ByteArray = new ByteArray();


Localize NoneOptionArrayList label.

Localize NoneOptionArrayList label.

--- src/modules/supportClasses/NoneOptionArrayList.as
+++ src/modules/supportClasses/NoneOptionArrayList.as
@@ -17,13 +17,14 @@
 {

 import mx.collections.ArrayList;
+import mx.resources.ResourceManager;

 public class NoneOptionArrayList extends ArrayList
 {
     override public function set source(s:Array):void
     {
         s ||= [];
-        s.unshift(new NoneItem("None"));
+        s.unshift(new NoneItem(ResourceManager.getInstance().getString("BuilderStrings", "none")));
         super.source = s;
     }
 }


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

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

 package mx.effects
 {


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

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


revert RDataSource to previous revision

revert RDataSource to previous revision

--- WeaveData/src/weave/data/DataSources/RDataSource.as
+++ WeaveData/src/weave/data/DataSources/RDataSource.as
@@ -1,17 +1,17 @@
 /* ***** BEGIN LICENSE BLOCK *****
-*
-* This file is part of Weave.
-*
-* The Initial Developer of Weave is the Institute for Visualization
-* and Perception Research at the University of Massachusetts Lowell.
-* Portions created by the Initial Developer are Copyright (C) 2008-2015
-* the Initial Developer. All Rights Reserved.
-*
-* This Source Code Form is subject to the terms of the Mozilla Public
-* License, v. 2.0. If a copy of the MPL was not distributed with this file,
-* You can obtain one at http://mozilla.org/MPL/2.0/.
-*
-* ***** END LICENSE BLOCK ***** */
+ *
+ * This file is part of Weave.
+ *
+ * The Initial Developer of Weave is the Institute for Visualization
+ * and Perception Research at the University of Massachusetts Lowell.
+ * Portions created by the Initial Developer are Copyright (C) 2008-2015
+ * the Initial Developer. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * ***** END LICENSE BLOCK ***** */

 package weave.data.DataSources
 {
@@ -70,7 +70,7 @@
 		private function describePromise():String { return lang("Running script {0}", scriptName.value); }
 		private const outputCSV:CSVDataSource = newLinkableChild(this, CSVDataSource);
 		private var _service:AMF3Servlet;
-
+
 		override protected function initialize():void
 		{
 			super.initialize();
@@ -93,78 +93,46 @@
 				return;
 			// force retrieval of referenced columns
 			for each (var refCol:ReferencedColumn in getLinkableDescendants(inputs, ReferencedColumn))
-				refCol.getInternalColumn();
+			refCol.getInternalColumn();
 			if (linkableObjectIsBusy(inputs))
 				return;

 			var keyType:String;
 			var simpleInputs:Object = {};
 			var columnsByKeyType:Object = {}; // Object(keyType -> Array of IAttributeColumn)
-
-			var tableData:Object = {}; // Object(inputName -> { columnName : column })
-			var columnData:Object = {}; // Object(keyType -> {keys: [], columns: Object(name -> Array) })
-
-			var joined:Array = [];
-			var colMap:Object = {};
-
 			for each (var obj:ILinkableObject in inputs.getObjects())
 			{
 				var name:String = inputs.getName(obj);
-
-				// if the input is a column
 				var column:IAttributeColumn = obj as IAttributeColumn;
 				if (column)
 				{
 					keyType = column.getMetadata(ColumnMetadata.KEY_TYPE);
 					var columnArray:Array = columnsByKeyType[keyType] || (columnsByKeyType[keyType] = [])
 					columnArray.push(column);
-					for (keyType in columnsByKeyType)
-					{
-						var cols:Array = columnsByKeyType[keyType];
-						joined = ColumnUtils.joinColumns(cols, null, true);
-						var keys:Array = VectorUtils.pluck(joined.shift() as Array, 'localName');
-						colMap = {};
-						for (var i:int = 0; i <  joined.length; i++)
-							colMap[ inputs.getName(cols[i]) ] = joined[i];
-						columnData[keyType] = {keys: keys, columns: colMap};
-					}
 				}
 				else
 				{
-					var columns:Array = obj as Array;
-					// if the input is an array of columns
-					if(columns)
-					{
-						var flag:Boolean = false;
-						if(!columns.length)
-							return;
-
-						column = columns[0] as IAttributeColumn;
-						keyType = column.getMetadata(ColumnMetadata.KEY_TYPE);
-
-						for each (var col:IAttributeColumn in columns)
-						{
-							flag = col.getMetadata(ColumnMetadata.KEY_TYPE) != keyType;
-							colMap[col.getMetadata(ColumnMetadata.TITLE)] = col;
-						}
-						if(flag) {
-							reportError("Columns in table input must all be of the same keyType");
-							return;
-						} else {
-							tableData[name] = colMap;
-						}
-					} else {
-						// if the input is just a value (number, string or boolean)
-						simpleInputs[name] = getSessionState(inputs.getObject(name));
-					}
+					simpleInputs[name] = getSessionState(inputs.getObject(name));
 				}
+			}
+
+			var columnData:Object = {}; // Object(keyType -> {keys: [], columns: Object(name -> Array) })
+			for (keyType in columnsByKeyType)
+			{
+				var cols:Array = columnsByKeyType[keyType];
+				var joined:Array = ColumnUtils.joinColumns(cols, null, true);
+				var keys:Array = VectorUtils.pluck(joined.shift() as Array, 'localName');
+				var colMap:Object = {};
+				for (var i:int = 0; i <  joined.length; i++)
+					colMap[ inputs.getName(cols[i]) ] = joined[i];
+				columnData[keyType] = {keys: keys, columns: colMap};
 			}

 			outputCSV.setCSVData(null);
 			outputCSV.metadata.setSessionState(null);

 			addAsyncResponder(
-				_service.invokeAsyncMethod('runScriptWithInputs', [scriptName.value, simpleInputs, columnData, tableData]),
+				_service.invokeAsyncMethod('runScriptWithInputs', [scriptName.value, simpleInputs, columnData]),
 				handleScriptResult,
 				handleScriptError,
 				getSessionState(this)
@@ -197,7 +165,7 @@
 				return;
 			reportError(event);
 		}
-
+
 		override public function getHierarchyRoot():IWeaveTreeNode
 		{
 			if (!_rootNode)


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPTrace.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPTrace.as
@@ -0,0 +1,131 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.olap
+{
+
+/**
+ *  The OLAPTrace class controls the generation of trace information
+ *  generated by the OLAP classes and written to the log file.
+ *  This class uses the trace() method internally to write out the log information.
+ *
+ *
You must set TraceOutputFileEnable=1 in mm.cfg, and use the
+ *  Debug Flash Player or AIR Debug Launcher to generate trace output.

+ *
+ *  @see trace()
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class OLAPTrace
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Set to true to enable trace output.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static var traceOn:Boolean = true;
+
+    /**
+     *  The current trace level, which determines the amount of trace information
+     *  written to the log file, TRACE_LEVEL_1 writes the least amount of
+     *  information to the log file, and TRACE_LEVEL_3 writes the most.
+     *
+     *
All trace information output by a call to the traceMsg() method
+     *  with a level argument less than traceLevel
+     *  is sent to the log file.

+     *
+     *  @default TRACE_LEVEL_1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static var traceLevel:int = 1;
+
+    /**
+     *  Specifies to write minimal trace information to the log file.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const TRACE_LEVEL_1:int = 1;
+
+    /**
+     *  Specifies to write more trace information to the log file than TRACE_LEVEL_1.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const TRACE_LEVEL_2:int = 2;
+
+    /**
+     *  Specifies to write the most trace information to the log file.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const TRACE_LEVEL_3:int = 3;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Writes trace information to the log file
+     *.
+     *
You must set TraceOutputFileEnable=1 in mm.cfg, and use the
+     *  Debug Flash Player or AIR Debug Launcher to generate
+     *  trace output by calling this method.

+     *
+     *  @param msg The trace message.
+     *
+     *  @param level The trace level of the message.
+     *  Only trace messages with a level argument less than traceLevel
+     *  are sent to the log file.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function traceMsg(msg:String, level:int=1):void
+    {
+        if (traceOn && level <= traceLevel)
+            trace(msg);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 12074
Author:   gruehle@adobe.com
Date:     2009-11-21T01:02:03.186839Z

Log Message:
-----------
Change baseColor to chromeColor.

QE notes: Tests need to be updated.
Doc notes: ASDoc has been updated. Other docs need updating.
Bugs: SDK-24298
Reviewer: Ely
Tests run: checkintests, qe cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
112 paths were modified

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

--- frameworks/projects/framework/src/mx/controls/SWFLoader.as
+++ frameworks/projects/framework/src/mx/controls/SWFLoader.as
@@ -257,7 +257,7 @@
 //  Excluded APIs
 //--------------------------------------

-[Exclude(name="baseColor", kind="style")]
+[Exclude(name="chromeColor", kind="style")]

 //--------------------------------------
 //  Other metadata


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

--- frameworks/projects/framework/src/mx/utils/SecurityUtil.as
+++ frameworks/projects/framework/src/mx/utils/SecurityUtil.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 mx.utils
 {


FLEX-33710: Changed the Range out of bounds check to a try/catch for a range error.

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -4769,24 +4769,18 @@
 	 */
 	protected function isCellEditable(rowIndex:int, columnIndex:int):Boolean
 	{
-        //
-        //  Index out of bounds tests.
-        //
-        if (columnIndex < 0 || rowIndex < 0)
+        try
+        {
+            var dataItem:Object = dataProvider.getItemAt(rowIndex);
+            var column:GridColumn = GridColumn(columns.getItemAt(columnIndex));
+            var dataField:String = column.dataField;
+        }
+        catch (e:RangeError)
         {
             return false;
         }

-        if (columnIndex >= columnsLength || rowIndex >= dataProvider.length)
-        {
-            return false;
-        }
-
-
-		var dataItem:Object = dataProvider.getItemAt(rowIndex);
-		var column:GridColumn = GridColumn(columns.getItemAt(columnIndex));
-		var dataField:String = column.dataField;
-
+
 		return isDataEditable(dataItem, dataField);
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 3387
Author:   hmuller@adobe.com
Date:     2008-09-26T21:11:36.963833Z

Log Message:
-----------
Added support for page and step scrolling in Scroller.  The workhorse
for this change is a new pair of LayoutBase methods:

  verticalScrollPositionDelta(unit:uint):Number
  horizontalScrollPositionDelta(unit:uint):Number

The "scrolling unit" parameter is a flash.ui.Keyboard constant, one of
UP/DOWN (LEFT,RIGHT) PAGE_UP,DOWN, HOME,END.  Adding the delta value
to the corresponding IViewport scroll position property produces the
scroll.  For example:

  var dy:Number = vp.verticalScrollPositionDelta(Keyboard.PAGE_DOWN);
  vp.verticalScrollPosition += dy;

This example scrolls IViewport vp down by a page.  The API is defined
in terms of "delta" offsets, rather than just adjusting the scroll
position directly, to make it easy to animate the scroll position
properties.

The implementation of these methods in the layout classes deals with
variable size rows/columns, partial visibility, etc.  For example, if
you page down in a VerticalLayout when the current last row is only
partially visible, then adding the verticalScrollPositionDelta to the
verticalScrollPosition will top justify the last row.  If the last row
is completely visible, then the delta is bigger: enough to top justify
the row _below_ the current last row.

Presently the Scroller's scrollbars do not support page/step
scrolling per the new API.  One can only drive the new API
with the keyboard, and then only when some descendant of the
viewport has the focus.

Note also: in the next version of this code, the scrollPositionDelta methods
will be defined by IViewport.

QE: No
Doc: No
Checkintests: Pass
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -13,13 +13,17 @@
 package flex.component
 {
 import flash.events.Event;
+import flash.events.KeyboardEvent;
+import flash.ui.Keyboard;

 import flex.core.SkinnableComponent;
 import flex.core.Group;
 import flex.intf.IViewport;
+import flex.layout.LayoutBase;

 import mx.events.PropertyChangeEvent;
 import mx.core.ScrollPolicy;
+import mx.managers.IFocusManagerComponent;

 [DefaultProperty("viewport")]
@@ -49,7 +53,7 @@
  *  </p>
  */

-public class Scroller extends SkinnableComponent
+public class Scroller extends SkinnableComponent implements IFocusManagerComponent
 {
     include "../core/Version.as";

@@ -284,6 +288,14 @@
     		case "contentHeight":
     		    viewportContentHeightChanged(event);
     		    break;
+
+            case "horizontalScrollPosition":
+                viewportHorizontalScrollPositionChanged(event);
+                break;
+
+    		case "verticalScrollPosition":
+    		    viewportVerticalScrollPositionChanged(event);
+    		    break;
     	}
     }

@@ -304,6 +316,26 @@
         invalidateSkin();
     }

+    /**
+     *  Called when the viewport's horizontalScrollPosition changes; sets the
+     *  horizontal scrollbar's value.
+     */
+    protected function viewportHorizontalScrollPositionChanged(event:PropertyChangeEvent):void
+    {
+       if (horizontalScrollBar)
+           horizontalScrollBar.value = viewport.horizontalScrollPosition;
+    }
+
+    /**
+     *  Called when the viewport's verticalScrollPosition changes; sets the
+     *  vertical scrollbar's value.
+     */
+    protected function viewportVerticalScrollPositionChanged(event:PropertyChangeEvent):void
+    {
+       if (verticalScrollBar)
+           verticalScrollBar.value = viewport.verticalScrollPosition;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods
@@ -363,6 +395,58 @@
             horizontalScrollBar.removeEventListener("valueCommit", hsb_valueCommitHandler);
         }
     }
+
+    /**
+     *  @private
+     */
+    override protected function keyDownHandler(event:KeyboardEvent):void
+    {
+    	if (!viewport)
+    	    return;
+
+        // TBD: is special handling for textfields needed here, as in mx.core.Container?
+
+        // TBD: IViewport should expose horiztonal,verticalScrollPositionDelta methods
+        var vp:LayoutBase = LayoutBase(Group(viewport).layout);
+
+        if (verticalScrollBar && verticalScrollBar.visible)
+        {
+        	var vspDelta:Number = NaN;
+            switch (event.keyCode)
+            {
+                case Keyboard.DOWN:
+                case Keyboard.UP:
+                case Keyboard.PAGE_UP:
+                case Keyboard.PAGE_DOWN:
+                case Keyboard.HOME:
+                case Keyboard.END:
+                    vspDelta = vp.verticalScrollPositionDelta(event.keyCode);
+                    break;
+            }
+            if (!isNaN(vspDelta))
+            {
+            	viewport.verticalScrollPosition += vspDelta;
+            	event.stopPropagation();
+            }
+        }
+
+        if (horizontalScrollBar && horizontalScrollBar.visible)
+        {
+        	var hspDelta:Number = NaN;
+            switch (event.keyCode)
+            {
+                case Keyboard.LEFT:
+                case Keyboard.RIGHT:
+                    hspDelta = vp.horizontalScrollPositionDelta(event.keyCode);
+                    break;
+            }
+            if (!isNaN(hspDelta))
+            {
+                viewport.horizontalScrollPosition += hspDelta;
+                event.stopPropagation();
+            }
+        }
+    }

 }


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

--- frameworks/projects/spark/src/spark/layouts/BasicLayout.as
+++ frameworks/projects/spark/src/spark/layouts/BasicLayout.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.layouts
 {


Modify NotificationService

Modify NotificationService

--- krew-framework/krewfw/core_internal/NotificationService.as
+++ krew-framework/krewfw/core_internal/NotificationService.as
@@ -8,14 +8,14 @@
     //------------------------------------------------------------
     public class NotificationService {

+        public static var MAX_LOOP_COUNT:int = 8;
+
         private var _publishers:Dictionary = new Dictionary();
         private var _listenerCount:int = 0;
         private var _messageQueue:Vector.<Object> = new Vector.<Object>();

         //------------------------------------------------------------
-        public function NotificationService() {
-
-        }
+        public function NotificationService() {}

         public function addListener(listener:KrewGameObject,
                                     eventType:String, callback:Function):void {
@@ -48,7 +48,7 @@
             });
         }

-        public function broadcastMessage():void {
+        public function broadcastMessage(recallCount:int=0):void {
             if (_messageQueue.length == 0) { return; }

             var processingMsgs:Vector.<Object> = _messageQueue.slice(); // copy vector
@@ -63,7 +63,19 @@
                 publisher.publish(eventArgs);
             }

-            // ToDo: for の中で Message 投げられてたら再帰
+            // イベントのハンドリングの中でさらに Message が投げられていた場合、
+            // 再帰して投げられるイベントがなくなるまで処理を継続する。
+            // ただし Actor 間でイベントを投げ合うループ構造ができてしまうと無限ループになるため
+            // セーフティとして試行回数には制限をかける
+            if (_messageQueue.length > 0  &&  recallCount < MAX_LOOP_COUNT) {
+                this.broadcastMessage(recallCount + 1);
+            } else {
+                // 処理しきれなかったイベントは諦める（そうしないとイベントの数が肥大化しうるから）
+                // * そもそもここが呼ばれる場合は設計が間違っている。
+                //   このログは出力されないべきである
+                _messageQueue = new Vector.<Object>();
+                krew.fwlog('[Warning!!] Event handling seems to be infinite loop!');
+            }
         }
     }
 }


Debug message

Debug message

--- src/com/benoitfreslon/layoutmanager/LayoutLoader.as
+++ src/com/benoitfreslon/layoutmanager/LayoutLoader.as
@@ -4,7 +4,9 @@
 	import flash.events.Event;
 	import flash.system.Capabilities;
 	import flash.utils.getDefinitionByName;
+
 	import starling.display.Button;
+	import starling.display.ButtonExtended;
 	import starling.display.DisplayObject;
 	import starling.display.DisplayObjectContainer;
 	import starling.display.Image;
@@ -13,7 +15,6 @@
 	import starling.text.TextField;
 	import starling.textures.Texture;
 	import starling.utils.AssetManager;
-	import starling.display.ButtonExtended;

 	/**
 	 * Loader of Layout
@@ -96,6 +97,7 @@
 						var a : Array = [ ButtonExtended ];

 						var objectClass : Class;
+						if (debug) trace(child.className);
 						if ( child.className ) {
 							objectClass = getDefinitionByName( child.className ) as Class;
 						} else {


Transferred from the Adobe Open Source Subversion Repository

Revision: 7306
Author:   aharui@adobe.com
Date:     2009-05-27T14:54:00.080376Z

Log Message:
-----------
Fix another pair of mustella failures from the frame1 cleanup

QE Notes: None
Doc Notes: None
Bugs: SDK-21386
Reviewer: corey
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</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/framework/src/mx/controls/SWFLoader.as</path>

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

--- frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as
+++ frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as
@@ -90,7 +90,7 @@
         addEventListener(Event.ADDED, docFrameHandler);
     }

-	private var topLevel:Boolean = true;
+	mx_internal var topLevel:Boolean = true;

 	private var initialized:Boolean = false;

@@ -551,7 +551,7 @@
      *  @private
      *  Storage for the screen property.
      */
-    private var _screen:Rectangle;
+    mx_internal var _screen:Rectangle;

     /**
      *  @inheritDoc
@@ -936,6 +936,19 @@
             }
         }

+		c = Singleton.getClass("mx.managers::IActiveWindowManager");
+		if (c)
+		{
+            registerImplementation("mx.managers::IActiveWindowManager", new c(this));
+        }
+
+        // depends on having IActiveWindowManager installed first
+		c = Singleton.getClass("mx.managers::IMarshalSystemManager");
+		if (c)
+		{
+            registerImplementation("mx.managers::IMarshalSystemManager", new c(this));
+        }
+
     //  installCompiledResourceBundles();

         initializeTopLevelWindow(null);


Transferred from the Adobe Open Source Subversion Repository

Revision: 6390
Author:   cframpto@adobe.com
Date:     2009-04-29T19:13:20.108698Z

Log Message:
-----------
Vellum private build up to changelist 697517.  Will update tomorrow with mainline build with even more API changes.

API changes so code will build with new Vellum library.
Change SimpleText/SimpleText2/RichText/RichText2 to use new TextLineRecyler API.

QE Notes: we need to test this with a new Argo FP since the text line recycling code paths will only be executed with that player
Doc Notes:
Bugs:
Reviewers: Gordon

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextPrimitive.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swf</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/tlf.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
@@ -18,6 +18,8 @@
 import flash.geom.Matrix;
 import flash.geom.Rectangle;
 import flash.text.engine.TextLine;
+
+import flashx.textLayout.compose.TextLineRecycler;

 import mx.core.IVisualElementContainer;
 import mx.core.mx_internal;
@@ -544,7 +546,7 @@
             if (drawnDisplayObject)
                 mx_internal::addTextLines(drawnDisplayObject);
             else
-                mx_internal::textLines.length = 0;
+                mx_internal::releaseTextLines();

             displayObjectChanged = false;
         }
@@ -1099,7 +1101,8 @@
 	/**
 	 *  @private
 	 *  Removes the TextLines created by composeTextLines()
-     *  from whatever container they were added to, and frees them.
+     *  from whatever container they were in.
+     *
 	 *  This does not empty the textLines Array.
 	 */
 	mx_internal function removeTextLines():void
@@ -1129,6 +1132,27 @@
 		_lastDrawX = 0;
 		_lastDrawY = 0;
 	}
+
+    /**
+     *  @private
+     *  Adds the TextLines to the reuse cache, and clears the textLines array.
+     */
+    mx_internal function releaseTextLines(textLinesArray:Array=null):void
+    {
+        if (!textLinesArray)
+            textLinesArray = mx_internal::textLines;
+
+        for (var i:int = 0; i < textLinesArray.length; i++)
+        {
+            var textLine:TextLine = TextLine(textLinesArray[i]);
+
+            // This method does the Flash Player version check so we don't
+            // have to.
+            TextLineRecycler.addLineForReuse(textLine);
+        }
+
+        textLinesArray.length = 0;
+   }

     /**
      *  @private


Transferred from the Adobe Open Source Subversion Repository

Revision: 6609
Author:   gruehle@adobe.com
Date:     2009-05-04T22:47:31.285324Z

Log Message:
-----------
Add theme attribute to theme-specific style metadata.

Example of a halo-specific style:
[Style(name="cornerRadius", type="Number", format="Length", inherit="no", theme="halo")]

Example of a spark-specific style:
[Style(name="baseColor", type="uint", format="Color", inherit="yes", theme="spark")]

Style metadata without a theme attribute is theme-agnostic, and works with either spark or halo.

Bugs: SDK-20606

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/FillStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SkinStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BarColorStyle.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/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/CheckBox.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/framework/src/mx/styles/metadata/IconColorStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.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/styles/metadata/SelectedFillColorsStyle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.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/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.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/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/mx/src/mx/controls/ComboBase.as
+++ frameworks/projects/mx/src/mx/controls/ComboBase.as
@@ -56,7 +56,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="contentBackgroundColor", type="uint", format="Color", inherit="yes")]
+[Style(name="contentBackgroundColor", type="uint", format="Color", inherit="yes", theme="spark")]

 /**
  *  Color of focus ring when the component is in focus
@@ -68,7 +68,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="focusColor", type="uint", format="Color", inherit="yes")]
+[Style(name="focusColor", type="uint", format="Color", inherit="yes", theme="spark")]

 /**
  *  Color of any symbol of a component. Examples include the check mark of a CheckBox or
@@ -81,7 +81,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[Style(name="symbolColor", type="uint", format="Color", inherit="yes")]
+[Style(name="symbolColor", type="uint", format="Color", inherit="yes", theme="spark")]

 /**
  *  Name of the class to use as the default skin for the background and border.


Transferred from the Adobe Open Source Subversion Repository

Revision: 6035
Author:   smgilson@adobe.com
Date:     2009-04-08T18:19:39.016902Z

Log Message:
-----------
Add note that the textInput event is not dispatched for the delete and backspace keys

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

Modified Paths:
--------------
<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/controls/TextInput.as</path>

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

--- frameworks/projects/mx/src/mx/controls/TextInput.as
+++ frameworks/projects/mx/src/mx/controls/TextInput.as
@@ -105,6 +105,7 @@

 /**
  *  Dispatched when the user types, deletes, or pastes text into the control.
+ *  No event is dispatched when the user presses the Delete key, or Backspace key.
  *
  *
Even though the default value of the TextEvent.bubbles property
  *  is true, this control dispatches the event with


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

--- frameworks/projects/rpc/src/mx/messaging/Channel.as
+++ frameworks/projects/rpc/src/mx/messaging/Channel.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-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.
 //
 ////////////////////////////////////////////////////////////////////////////////


searching for csv column nodes now works.

--- WeaveData/src/weave/data/hierarchy/EntityNodeSearch.as
+++ WeaveData/src/weave/data/hierarchy/EntityNodeSearch.as
@@ -152,6 +152,10 @@
 					return true;
 				}
 			}
+
+			// see if the title matches
+			if (!xen && _searchField == ColumnMetadata.TITLE && _searchRegExp.test(node.getLabel()))
+				return true;

 			// see if there are any matching descendants
 			if (!node.isBranch())


Fixed bug where no axis labels would be shown whyen only one was requested.

--- WeaveData/src/weave/primitives/LooseAxisDescription.as
+++ WeaveData/src/weave/primitives/LooseAxisDescription.as
@@ -57,19 +57,26 @@

 		public function setup(dataMin:Number, dataMax:Number, numTicksReq:Number, forceTickCount:Boolean = false):void
 		{
-			this._dataMin = dataMin;
-			this._dataMax = dataMax;
-			this._numTicksReq = numTicksReq;
+			_dataMin = dataMin;
+			_dataMax = dataMax;
+			_numTicksReq = numTicksReq;

 			if (forceTickCount)
 			{
 				_numTicks = _numTicksReq;

-				_range = _dataMax - _dataMin;
-
-				_tickDelta = _range / (_numTicksReq - 1);
-				_tickMin = Math.floor (_dataMin / _tickDelta) * _tickDelta;
-				_tickMax = Math.ceil (_dataMax / _tickDelta) * _tickDelta;
+				if (_dataMin == _dataMax)
+				{
+					_range = 0;
+					_tickDelta = _tickMin = _tickMax = _dataMin;
+				}
+				else
+				{
+					_range = _dataMax - _dataMin;
+					_tickDelta = _range / (_numTicksReq - 1);
+					_tickMin = Math.floor(_dataMin / _tickDelta) * _tickDelta;
+					_tickMax = Math.ceil(_dataMax / _tickDelta) * _tickDelta;
+				}
 				_axisMin = _tickMin - (.5 * _tickDelta);
 				_axisMax = _tickMax + (.5 * _tickDelta);
 			}


FLEX-33722 stop RTE when dragging a spark datagrid column

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -6084,18 +6084,19 @@
         // then we'll check the transform and see if it's actually transformed.
         // otherwise we'll check the layoutMatrix on the AdvancedLayoutFeatures object,
         // to see if we're actually transformed.
-        if (!_hasComplexLayoutMatrix)
+        if (!_hasComplexLayoutMatrix) {
             return false;
+		}
         else
         {
             if (_layoutFeatures == null)
             {
-                _hasComplexLayoutMatrix = !MatrixUtil.isDeltaIdentity(super.transform.matrix);
+                _hasComplexLayoutMatrix = super.transform.matrix && !MatrixUtil.isDeltaIdentity(super.transform.matrix);
                 return _hasComplexLayoutMatrix;
             }
             else
             {
-                return !MatrixUtil.isDeltaIdentity(_layoutFeatures.layoutMatrix);
+                return _layoutFeatures.layoutMatrix && !MatrixUtil.isDeltaIdentity(_layoutFeatures.layoutMatrix);
             }
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22792
Author:   tkraikit@adobe.com
Date:     2011-09-29T02:01:47.310526Z

Log Message:
-----------
SDK-31545: adding creationComplete as Bindable event to UIComponent visible property

QE notes: -
Doc notes: -
Bugs: SDK-31545
Reviewer: glenn
Tests run: checkintests, cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -3204,6 +3204,7 @@

     [Bindable("hide")]
     [Bindable("show")]
+    [Bindable("creationComplete")]
     [Inspectable(category="General", defaultValue="true")]

     /**


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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -9859,7 +9859,7 @@
      */
     private function getTotalDuration(effect:IEffect):Number
     {
-        // FIXME (chaase): we should add timing properties to some
+        // TODO (chaase): we should add timing properties to some
         // interface to avoid these hacks
         var duration:Number = 0;
         var effectObj:Object = Object(effect);