Added new tests to check GET functionality as well as base64 encoding of contexts.

--- snowplow-as3-tracker-tests/src/TrackerTest.as
+++ snowplow-as3-tracker-tests/src/TrackerTest.as
@@ -88,18 +88,20 @@
 		}

 		[Test]
-		public function testTrackPageView3():void {
-			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.POST);
-			var subject:Subject = new Subject();
-			subject.setViewPort(320, 480);
-			var tracker:Tracker = new Tracker(emitter, subject, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, false);
-			//emitter.setRequestMethod(RequestMethod.Asynchronous);
-
-			var context:SchemaPayload = new SchemaPayload();
+		public function testTrackPageViewPost():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.POST);
+			var subject:Subject = new Subject();
+			subject.setViewPort(320, 480);
+			var tracker:Tracker = new Tracker(emitter, subject, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, false);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+
 			var someContext:Object = {};
 			someContext["someContextKey"] = "testTrackPageView3";
-			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
-			context.setData(someContext);
+
+			var context:SchemaPayload = new SchemaPayload();
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+
 			var contextList:Array = [];
 			contextList.push(context);

@@ -109,6 +111,75 @@
 		}

 		[Test]
+		public function testTrackPageViewPostBase64():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.POST);
+			var subject:Subject = new Subject();
+			subject.setViewPort(320, 480);
+			var tracker:Tracker = new Tracker(emitter, subject, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, true);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView3";
+
+			var context:SchemaPayload = new SchemaPayload();
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+
+			var contextList:Array = [];
+			contextList.push(context);
+
+			tracker.trackPageView("www.mypage.com", "My Page", "www.me.com", contextList);
+
+			emitter.flushBuffer();
+		}
+
+		[Test]
+		public function testTrackPageViewGet():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.GET);
+			var subject:Subject = new Subject();
+			subject.setViewPort(320, 480);
+			var tracker:Tracker = new Tracker(emitter, subject, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, false);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView3";
+
+			var context:SchemaPayload = new SchemaPayload();
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+
+			var contextList:Array = [];
+			contextList.push(context);
+
+			tracker.trackPageView("www.mypage.com", "My Page", "www.me.com", contextList);
+
+			emitter.flushBuffer();
+		}
+
+		[Test]
+		public function testTrackPageViewGetBase64():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.GET);
+			var subject:Subject = new Subject();
+			subject.setViewPort(320, 480);
+			var tracker:Tracker = new Tracker(emitter, subject, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, true);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView3";
+
+			var context:SchemaPayload = new SchemaPayload();
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+
+			var contextList:Array = [];
+			contextList.push(context);
+
+			tracker.trackPageView("www.mypage.com", "My Page", "www.me.com", contextList);
+
+			emitter.flushBuffer();
+		}
+
+		[Test]
 		public function testTrackStructuredEvent():void {

 		}
@@ -154,7 +225,7 @@
 		}

 		[Test]
-		public function testTrackEcommerceTransaction():void {
+		public function testTrackEcommerceTransactionPost():void {
 			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.POST);
 			var tracker:Tracker = new Tracker(emitter, null, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, false);
 			//emitter.setRequestMethod(RequestMethod.Asynchronous);
@@ -178,6 +249,78 @@
 		}

 		[Test]
+		public function testTrackEcommerceTransactionPostBase64():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.POST);
+			var tracker:Tracker = new Tracker(emitter, null, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, true);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+
+			var context:SchemaPayload = new SchemaPayload();
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView2";
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+			var contextList:Array = [];
+			contextList.push(context);
+
+			var transactionItem:TransactionItem = new TransactionItem("order-8", "no_sku",
+				34.0, 1, "Big Order", "Food", "USD", contextList);
+			var transactionItemLinkedList:Array = [];
+			transactionItemLinkedList.push(transactionItem);
+			tracker.trackEcommerceTransaction("order-7", 25.0, "no_affiliate", 0.0, 0.0, "Dover",
+				"Delaware", "US", "USD", transactionItemLinkedList);
+
+			emitter.flushBuffer();
+		}
+
+		[Test]
+		public function testTrackEcommerceTransactionGet():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.GET);
+			var tracker:Tracker = new Tracker(emitter, null, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, false);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+
+			var context:SchemaPayload = new SchemaPayload();
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView2";
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+			var contextList:Array = [];
+			contextList.push(context);
+
+			var transactionItem:TransactionItem = new TransactionItem("order-8", "no_sku",
+				34.0, 1, "Big Order", "Food", "USD", contextList);
+			var transactionItemLinkedList:Array = [];
+			transactionItemLinkedList.push(transactionItem);
+			tracker.trackEcommerceTransaction("order-7", 25.0, "no_affiliate", 0.0, 0.0, "Dover",
+				"Delaware", "US", "USD", transactionItemLinkedList);
+
+			emitter.flushBuffer();
+		}
+
+		[Test]
+		public function testTrackEcommerceTransactionGetBase64():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.GET);
+			var tracker:Tracker = new Tracker(emitter, null, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, true);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+
+			var context:SchemaPayload = new SchemaPayload();
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView2";
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+			var contextList:Array = [];
+			contextList.push(context);
+
+			var transactionItem:TransactionItem = new TransactionItem("order-8", "no_sku",
+				34.0, 1, "Big Order", "Food", "USD", contextList);
+			var transactionItemLinkedList:Array = [];
+			transactionItemLinkedList.push(transactionItem);
+			tracker.trackEcommerceTransaction("order-7", 25.0, "no_affiliate", 0.0, 0.0, "Dover",
+				"Delaware", "US", "USD", transactionItemLinkedList);
+
+			emitter.flushBuffer();
+		}
+
+		[Test]
 		public function testTrackEcommerceTransaction1():void {

 		}
@@ -193,7 +336,7 @@
 		}

 		[Test]
-		public function testTrackScreenView():void {
+		public function testTrackScreenViewPost():void {
 			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.POST);
 			var subject:Subject = new Subject();
 			subject.setViewPort(320, 480);
@@ -211,6 +354,67 @@

 			tracker.trackScreenView(null, "screen_1", contextList, 0);
 		}
+
+		[Test]
+		public function testTrackScreenViewPostBase64():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.POST);
+			var subject:Subject = new Subject();
+			subject.setViewPort(320, 480);
+			var tracker:Tracker = new Tracker(emitter, subject, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, true);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+			//emitter.setBufferOption(BufferOption.Instant);
+
+			var context:SchemaPayload = new SchemaPayload();
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView2";
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+			var contextList:Array = [];
+			contextList.push(context);
+
+			tracker.trackScreenView(null, "screen_1", contextList, 0);
+		}
+
+		[Test]
+		public function testTrackScreenViewGet():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.GET);
+			var subject:Subject = new Subject();
+			subject.setViewPort(320, 480);
+			var tracker:Tracker = new Tracker(emitter, subject, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, false);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+			//emitter.setBufferOption(BufferOption.Instant);
+
+			var context:SchemaPayload = new SchemaPayload();
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView2";
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+			var contextList:Array = [];
+			contextList.push(context);
+
+			tracker.trackScreenView(null, "screen_1", contextList, 0);
+		}
+
+		[Test]
+		public function testTrackScreenViewGetBase64():void {
+			var emitter:Emitter = new Emitter(testURL, URLRequestMethod.GET);
+			var subject:Subject = new Subject();
+			subject.setViewPort(320, 480);
+			var tracker:Tracker = new Tracker(emitter, subject, "AF003", "cloudfront", FlexGlobals.topLevelApplication.stage, true);
+			//emitter.setRequestMethod(RequestMethod.Asynchronous);
+			//emitter.setBufferOption(BufferOption.Instant);
+
+			var context:SchemaPayload = new SchemaPayload();
+			var someContext:Object = {};
+			someContext["someContextKey"] = "testTrackPageView2";
+			context.setSchema("iglu:com.snowplowanalytics.snowplow/example/jsonschema/1-0-0");
+			context.setData(someContext);
+			var contextList:Array = [];
+			contextList.push(context);
+
+			tracker.trackScreenView(null, "screen_1", contextList, 0);
+		}
+

 		[Test]
 		public function testTrackScreenView1():void {


Try turning OFF the fence around IXObjReference and recursively encode refs (i.e. RESTCollection PUT)

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
@@ -299,12 +299,14 @@
         }
         else if (recurse)
         {
+            /* TODO: answer the question as to WHY we do not encode refs recursively
+            No longer clear on this use case
             if (obj is IXObjReference)
             {
                 // don't recurse refs
                 return internal_encodeValue(obj, qname, parentNode, false);
             }
-            else
+            else*/
                 return internal_encodeValue(obj, qname, parentNode);
         }
         else


updated by Michael IV

updated by Michael IV

--- src/org/flintparticles/threeD/away3d/Away3DRenderer.as
+++ src/org/flintparticles/threeD/away3d/Away3DRenderer.as
@@ -33,14 +33,16 @@
 	import away3d.containers.ObjectContainer3D;
 	import away3d.core.base.Mesh;
 	import away3d.core.base.Object3D;
-	import away3d.core.math.Number3D;
+	import away3d.core.math.Vector3DUtils;
 	import away3d.sprites.MovieClipSprite;
+
+	import flash.geom.Vector3D;

 	import org.flintparticles.common.particles.Particle;
 	import org.flintparticles.common.renderers.RendererBase;
 	import org.flintparticles.common.utils.Maths;
 	import org.flintparticles.threeD.away3d.utils.Convert;
-	import org.flintparticles.threeD.particles.Particle3D;
+	import org.flintparticles.threeD.particles.Particle3D;

 	/**
 	 * Renders the particles in an Away3D scene.
@@ -95,8 +97,14 @@
 			o.scaleX = o.scaleY = o.scaleZ = particle.scale;

 			// rotation
-			var r:Number3D = new Number3D();
-			r.quaternion2euler( Convert.QuaternionToA3D( particle.rotation ) );
+
+			///var r:Number3D = new Number3D();
+			///Updated by Michael IV to Away3D 3.6
+			var r:flash.geom.Vector3D=new flash.geom.Vector3D();
+
+			//r.quaternion2euler( Convert.QuaternionToA3D( particle.rotation ) );
+			///Updated by Michael IV to Away3D 3.6
+			r=away3d.core.math.Vector3DUtils.quaternion2euler(Convert.QuaternionToA3D( particle.rotation ));
 			o.rotationX = Maths.asDegrees( r.x );
 			o.rotationY = Maths.asDegrees( r.y );
 			o.rotationZ = Maths.asDegrees( r.z );
@@ -117,9 +125,14 @@
 			// display object rendering
 			else if( o is MovieClipSprite )
 			{
-				MovieClipSprite( o ).movieclip.transform.colorTransform = particle.colorTransform;
+				//MovieClipSprite( o ).movieclip.transform.colorTransform = particle.colorTransform;
+				///Updated by Michael IV to Away3D 3.6
+				MovieClipSprite( o ).movieClip.transform.colorTransform = particle.colorTransform;
 				MovieClipSprite( o ).scaling = particle.scale;
+
+
 			}
+

 			// others
 			else


Issue 1763 actually add ASCII 29 to string

git-svn-id: d565a5fbffec933846bf643895bf9c245569575b@2874 59b500cc-1b3d-0410-9834-0bbf25fbcc57

--- actionscript/core/src/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.as
+++ actionscript/core/src/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.as
@@ -143,7 +143,7 @@
 	    	        return BASE256_ENCODE;
 	            } else if (oneByte == 232) {
 					// FNC1
-	    	        String.fromCharCode(29);// translate as ASCII 29
+	    	        result.Append(String.fromCharCode(29));// translate as ASCII 29
 	            } else if ((oneByte == 233) || (oneByte == 234))
 				{   // Structured Append, Reader Programming
 					// Ignore these symbols for now
@@ -500,4 +500,4 @@
           }
     }

-}+}


Added orbital camera around current node with the middle mouse button. The post render update is skipped while orbiting.

--- Bin/Data/Scripts/Editor/EditorView.as
+++ Bin/Data/Scripts/Editor/EditorView.as
@@ -54,6 +54,7 @@
 bool physicsDebug = false;
 bool octreeDebug = false;
 int pickMode = PICK_GEOMETRIES;
+bool orbiting = false;

 bool showGrid = true;
 bool grid2DMode = false;
@@ -331,8 +332,8 @@
         }
     }

-    // Rotate camera
-    if (input.mouseButtonDown[MOUSEB_RIGHT])
+    // Rotate/orbit camera
+    if (input.mouseButtonDown[MOUSEB_RIGHT] || input.mouseButtonDown[MOUSEB_MIDDLE])
     {
         IntVector2 mouseMove = input.mouseMove;
         if (mouseMove.x != 0 || mouseMove.y != 0)
@@ -343,10 +344,20 @@
             if (limitRotation)
                 cameraPitch = Clamp(cameraPitch, -90.0, 90.0);

-            cameraNode.rotation = Quaternion(cameraPitch, cameraYaw, 0);
-            FadeUI();
-        }
-    }
+            Quaternion q = Quaternion(cameraPitch, cameraYaw, 0);
+            cameraNode.rotation = q;
+            if (input.mouseButtonDown[MOUSEB_MIDDLE] && editNode !is null)
+            {
+                Vector3 d = cameraNode.worldPosition - editNode.worldPosition;
+                cameraNode.worldPosition = editNode.worldPosition - q * Vector3(0.0, 0.0, d.length);
+                orbiting = true;
+            }
+
+            FadeUI();
+        }
+    }
+    if (orbiting && !input.mouseButtonDown[MOUSEB_MIDDLE])
+        orbiting = false;

     // Move/rotate/scale object
     if (!editNodes.empty && editMode != EDIT_SELECT && ui.focusElement is null && input.keyDown[KEY_LCTRL])
@@ -469,7 +480,7 @@
 void HandlePostRenderUpdate()
 {
     DebugRenderer@ debug = editorScene.debugRenderer;
-    if (debug is null)
+    if (debug is null || orbiting)
         return;

     // Visualize the currently selected nodes as their local axes + the first drawable component


Move data getter from "protected" to "minko" namespace

--- src/aerys/minko/scene/node/texture/BitmapTexture.as
+++ src/aerys/minko/scene/node/texture/BitmapTexture.as
@@ -1,5 +1,6 @@
 package aerys.minko.scene.node.texture
 {
+	import aerys.minko.ns.minko;
 	import aerys.minko.render.effect.basic.BasicStyle;
 	import aerys.minko.render.resource.Texture3DResource;
 	import aerys.minko.scene.action.texture.TextureAction;
@@ -16,6 +17,9 @@
 	 * @author Jean-Marc Le Roux
 	 *
 	 */
+
+	use namespace minko;
+
 	public class BitmapTexture extends AbstractScene implements ITexture
 	{
 		private static const TMP_MATRIX : Matrix = new Matrix();
@@ -30,7 +34,7 @@
 		public function get styleProperty() : int				{ return _styleProp;	}
 		public function get resource()		: Texture3DResource	{ return _resource;		}
 		public function get mipmapping()	: Boolean			{ return _mipmapping;	}
-		protected function get data() 			: BitmapData		{ return _data;			}
+		minko function get data() 			: BitmapData		{ return _data;			}

 		protected function get bitmapData()	: BitmapData
 		{


Removed platform-specific controls and added target custom controls

--- com/zehfernando/input/binding/GamepadControls.as
+++ com/zehfernando/input/binding/GamepadControls.as
@@ -6,386 +6,172 @@

 		// List of typical controls

-		// ================================================================================================================
-		// ANDROID/OUYA controls
+		/* Horizontal axis of left stick
+		 *
+		 *
Style: pressure-sensitive/analog

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: -1 (left) to 1 (right)

+		 */
+		public static const STICK_LEFT_X:String = "stick_left_x";

-		/* Directional pad LEFT
+		/* Vertical axis of left stick
+		 *
 		 *
Style: pressure-sensitive/analog

-		 *
Works in: Playstation DS3 (OUYA)

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: -1 (up) to 1 (down)

 		 */
-		public static const ANDROID_DPAD_LEFT_SENSITIVE:String = "BUTTON_39"; // TODO: this wasn't working. Must test.
+		public static const STICK_LEFT_Y:String = "stick_left_y";

-		/* Directional pad RIGHT
+		/* Pressing the left stick (also known as L3)
+		 *
+		 *
Style: digital

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

+		 */
+		public static const STICK_LEFT_PRESS:String = "stick_left_press";
+
+		/* Horizontal axis of right stick
+		 *
 		 *
Style: pressure-sensitive/analog

-		 *
Works in: Playstation DS3 (OUYA)

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: -1 (left) to 1 (right)

 		 */
-		public static const ANDROID_DPAD_RIGHT_SENSITIVE:String = "BUTTON_37";
+		public static const STICK_RIGHT_X:String = "stick_right_x";

-		/* Directional pad UP
+		/* Vertical axis of right stick
+		 *
 		 *
Style: pressure-sensitive/analog

-		 *
Works in: Playstation DS3 (OUYA)

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: -1 (up) to 1 (down)

 		 */
-		public static const ANDROID_DPAD_UP_SENSITIVE:String = "BUTTON_36";
+		public static const STICK_RIGHT_Y:String = "stick_right_y";

-		/* Directional pad DOWN
+		/* Pressing the right stick (also known as R3)
+		 *
+		 *
Style: digital

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

+		 */
+		public static const STICK_RIGHT_PRESS:String = "stick_right_press";
+
+		/* Left shoulder bumper (also known as LB or L1)
+		 *
+		 *
Style: digital

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

+		 */
+		public static const LB:String = "lb";
+
+		/* Left shoulder trigger (also known as LT or L2)
+		 *
 		 *
Style: pressure-sensitive/analog

-		 *
Works in: Playstation DS3 (OUYA)

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const ANDROID_DPAD_DOWN_SENSITIVE:String = "BUTTON_38";
+		public static const LT:String = "lt";

-		/* Shoulder button, upper left (LEFT 1/LEFT BUTTON)
+		/* Right shoulder bumper (also known as RB or R1)
+		 *
 		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const ANDROID_L1:String = "BUTTON_102";
+		public static const RB:String = "rb";

-		/* Shoulder button, upper right (RIGHT 1/RIGHT BUTTON)
+		/* Right shoulder trigger (also known as RT or R2)
+		 *
+		 *
Style: pressure-sensitive/analog

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

+		 */
+		public static const RT:String = "rt";
+
+		/* Directional pad up
+		 *
+		 *
Style: digital OR pressure-sensitive/analog

+		 *
Works in: OUYA (Native Controller; Playstation DS3 [analog]; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

+		 */
+		public static const DPAD_UP:String = "dpad_up";
+
+		/* Directional pad down
+		 *
+		 *
Style: digital OR pressure-sensitive/analog

+		 *
Works in: OUYA (Native Controller; Playstation DS3 [analog]; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

+		 */
+		public static const DPAD_DOWN:String = "dpad_down";
+
+		/* Directional pad left
+		 *
+		 *
Style: digital OR pressure-sensitive/analog

+		 *
Works in: OUYA (Native Controller; Playstation DS3 [analog]; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

+		 */
+		public static const DPAD_LEFT:String = "dpad_left";
+
+		/* Directional pad right
+		 *
+		 *
Style: digital OR pressure-sensitive/analog

+		 *
Works in: OUYA (Native Controller; Playstation DS3 [analog]; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

+		 */
+		public static const DPAD_RIGHT:String = "dpad_right";
+
+		/* Action button up (Y/yellow in the OUYA, Triangle/green in the Playstation, Y/yellow in the XBox 360)
+		 *
 		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const ANDROID_R1:String = "BUTTON_103";
+		public static const ACTION_UP:String = "action_up";

-		/* Shoulder button, lower left (LEFT 2/LEFT TRIGGER)
+		/* Action button down (O/green in the OUYA, Cross/blue in the Playstation, A/green in the XBox 360)
+		 *
 		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA)

-		 *
Note: this doesn't work on the XBox 360 Controller (OUYA). Use L2_SENSITIVE instead.

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const ANDROID_L2:String = "BUTTON_104";
+		public static const ACTION_DOWN:String = "action_down";

-		/* Should button, lower right (RIGHT 2/RIGHT TRIGGER)
+		/* Action button left (U/blue in the OUYA, Square/purple in the Playstation, X/blue in the XBox 360)
+		 *
 		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA)

-		 *
Note: this doesn't work on the XBox 360 Controller (OUYA). Use R2_SENSITIVE instead.

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const ANDROID_R2:String = "BUTTON_105";
+		public static const ACTION_LEFT:String = "action_left";

-		/* Left stick press (LEFT 3)
+		/* Action button right (A/red in the OUYA, Circle/red in the Playstation, B/red in the XBox 360)
+		 *
 		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const ANDROID_L3:String = "BUTTON_106";
+		public static const ACTION_RIGHT:String = "action_right";

-		/* Right stick press (RIGHT 3)
+		/* Back button (BACK in the XBox 360, SELECT in the Playstation)
+		 *
 		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

+		 *
Works in: OUYA (Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const ANDROID_R3:String = "BUTTON_107";
-
-		/* Shoulder button, lower left (LEFT 2/LEFT TRIGGER)
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

-		 */
-		public static const ANDROID_L2_SENSITIVE:String = "AXIS_17";
-
-		/* Shoulder button, lower right (RIGHT 2/RIGHT TRIGGER)
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

-		 */
-		public static const ANDROID_R2_SENSITIVE:String = "AXIS_18";
-
-		/* Left analog stick, horizontal (X) axis. The value received is for a left-to-right position.
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android), XBox 360 Controller (Windows), XBox 360 Controller (OSX)

-		 */
-		public static const ANDROID_STICK_LEFT_X:String = "AXIS_0";
-
-		/* Left analog stick, vertical (Y) axis. The value received is for a up-to-down position.
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android), XBox 360 Controller (Windows; reversed orientation), XBox 360 Controller (OSX; reversed orientation)

-		 */
-		public static const ANDROID_STICK_LEFT_Y:String = "AXIS_1";
-
-		/* Right analog stick, horizontal (X) axis. The value received is for a left-to-right position.
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

-		 */
-		public static const ANDROID_STICK_RIGHT_X:String = "AXIS_11";
-
-		/* Right analog stick, vertical (Y) axis. The value received is for a up-to-down position.
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

-		 */
-		public static const ANDROID_STICK_RIGHT_Y:String = "AXIS_14";
-
-		/* Action button, down (O/green in the OUYA, Cross/blue in the Playstation, A/green in the XBox 360)
-		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

-		 */
-		public static const ANDROID_BUTTON_ACTION_DOWN:String = "BUTTON_96";
-
-		/* Action button, right (A/red in the OUYA, Circle/red in the Playstation, B/red in the XBox 360)
-		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

-		 */
-		public static const ANDROID_BUTTON_ACTION_RIGHT:String = "BUTTON_97";
-
-		/* Action button, up (Y/yellow in the OUYA, Triangle/green in the Playstation, Y/yellow in the XBox 360)
-		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

-		 */
-		public static const ANDROID_BUTTON_ACTION_UP:String = "BUTTON_100";
-
-		/* Action button, left (U/blue in the OUYA, Square/purple in the Playstation, X/blue in the XBox 360)
-		 *
Style: digital

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

-		 */
-		public static const ANDROID_BUTTON_ACTION_LEFT:String = "BUTTON_99";
+		public static const BACK:String = "meta_back";

 		/* Start button
+		 *
 		 *
Style: digital

-		 *
Works in: Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android)

+		 *
Works in: OUYA (Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const ANDROID_START:String = "BUTTON_108";
+		public static const START:String = "meta_start";

-
-		// ================================================================================================================
-		// WINDOWS controls
-
-		/* Left analog stick, horizontal (X) axis. The value received is for a left-to-right position.
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android), XBox 360 Controller (Windows), XBox 360 Controller (OSX)

+		/* Menu/home button (OUYA button in the OUYA controller, XBox Button in the XBox 360 controller, PS button in the Playstation controller)
+		 *
+		 *
Style: digital

+		 *
Works in: OUYA (Native Controller; Playstation DS3; XBox 360 Controller)

+		 *
Possible values: 0 (at rest) to 1 (pressed)

 		 */
-		public static const WINDOWS_STICK_LEFT_X:String = "AXIS_0";
-
-		/* Left analog stick, vertical (Y) axis. The value received is for a down-to-up position.
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA; reversed orientation), Playstation DS3 (OUYA; reversed orientation), XBox 360 Controller (OUYA/Android; reversed orientation), XBox 360 Controller (Windows), XBox 360 Controller (OSX)

-		 */
-		public static const WINDOWS_STICK_LEFT_Y:String = "AXIS_1";
-
-		/* Left analog stick, horizontal (X) axis. The value received is for a left-to-right position.
-		 *
Style: pressure-sensitive/analog

-		 *
XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_STICK_RIGHT_X:String = "AXIS_2";
-
-		/* Left analog stick, vertical (Y) axis. The value received is for a down-to-up position.
-		 *
Style: pressure-sensitive/analog

-		 *
XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_STICK_RIGHT_Y:String = "AXIS_3";
-
-		/* Action button, down (A/green)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_BUTTON_ACTION_A:String = "BUTTON_4";
-
-		/* Action button, right (B/red)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_BUTTON_ACTION_B:String = "BUTTON_5";
-
-		/* Action button, up (Y/yellow)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_BUTTON_ACTION_Y:String = "BUTTON_7";
-
-		/* Action button, left (X/blue)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_BUTTON_ACTION_X:String = "BUTTON_6";
-
-		/* Shoulder button, upper left (LEFT 1)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_L1:String = "BUTTON_8";
-
-		/* Shoulder button, upper right (RIGHT 1)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_R1:String = "BUTTON_9";
-
-		/* Shoulder button, lower left (LEFT 2)
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_L2_SENSITIVE:String = "BUTTON_10";
-
-		/* Shoulder button, lower right (RIGHT 2)
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const XBOX_R2_SENSITIVE:String = "BUTTON_11";
-
-		/* Left stick press (LEFT 3)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_L3:String = "BUTTON_14";
-
-		/* Right stick press (RIGHT 3)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_R3:String = "BUTTON_15";
-
-		/* Directional pad LEFT
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_DPAD_LEFT:String = "BUTTON_18";
-
-		/* Directional pad RIGHT
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_DPAD_RIGHT:String = "BUTTON_19";
-
-		/* Directional pad UP
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_DPAD_UP:String = "BUTTON_16";
-
-		/* Directional pad DOWN
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_DPAD_DOWN:String = "BUTTON_17";
-
-		/* BACK middle game controller button
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_BACK:String = "BUTTON_12";
-
-		/* START middle game controller button
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (Windows)

-		 */
-		public static const WINDOWS_START:String = "BUTTON_13";
-
-
-		// ================================================================================================================
-		// OX controls
-
-		/* Left analog stick, horizontal (X) axis. The value received is for a left-to-right position.
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA), Playstation DS3 (OUYA), XBox 360 Controller (OUYA/Android), XBox 360 Controller (Windows), XBox 360 Controller (OSX)

-		 */
-		public static const OSX_STICK_LEFT_X:String = "AXIS_0";
-
-		// TODO: check if the direction is correct
-		/* Left analog stick, vertical (Y) axis. The value received is for a down-to-up position.
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: OUYA Controller (OUYA; reversed orientation), Playstation DS3 (OUYA; reversed orientation), XBox 360 Controller (OUYA/Android; reversed orientation), XBox 360 Controller (Windows), XBox 360 Controller (OSX)

-		 */
-		public static const OSX_STICK_LEFT_Y:String = "AXIS_1";
-
-		/* Left analog stick, horizontal (X) axis. The value received is for a left-to-right position.
-		 *
Style: pressure-sensitive/analog

-		 *
XBox 360 Controller (OSX)

-		 */
-		public static const OSX_STICK_RIGHT_X:String = "AXIS_3";
-
-		/* Left analog stick, vertical (Y) axis. The value received is for a down-to-up position.
-		 *
Style: pressure-sensitive/analog

-		 *
XBox 360 Controller (OSX)

-		 */
-		public static const OSX_STICK_RIGHT_Y:String = "AXIS_4";
-
-		/* Action button, down (A/green)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_BUTTON_ACTION_A:String = "BUTTON_17";
-
-		/* Action button, right (B/red)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_BUTTON_ACTION_B:String = "BUTTON_18";
-
-		/* Action button, up (Y/yellow)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_BUTTON_ACTION_Y:String = "BUTTON_20";
-
-		/* Action button, left (X/blue)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_BUTTON_ACTION_X:String = "BUTTON_19";
-
-		/* Shoulder button, upper left (LEFT 1)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_L1:String = "BUTTON_14";
-
-		/* Shoulder button, upper right (RIGHT 1)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_R1:String = "BUTTON_15";
-
-		// TODO: is it really sensitive?
-		/* Shoulder button, lower left (LEFT 2)
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_L2_SENSITIVE:String = "AXIS_2";
-
-		// TODO: is it really sensitive?
-		/* Shoulder button, lower right (RIGHT 2)
-		 *
Style: pressure-sensitive/analog

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_R2_SENSITIVE:String = "AXIS_5";
-
-		/* Left stick press (LEFT 3)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_L3:String = "BUTTON_12";
-
-		/* Right stick press (RIGHT 3)
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_R3:String = "BUTTON_13";
-
-		/* Directional pad LEFT
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_DPAD_LEFT:String = "BUTTON_8";
-
-		/* Directional pad RIGHT
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_DPAD_RIGHT:String = "BUTTON_9";
-
-		/* Directional pad UP
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_DPAD_UP:String = "BUTTON_6";
-
-		/* Directional pad DOWN
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_DPAD_DOWN:String = "BUTTON_7";
-
-		/* BACK middle game controller button
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_BACK:String = "BUTTON_11";
-
-		/* START middle game controller button
-		 *
Style: digital

-		 *
Works in: XBox 360 Controller (OSX)

-		 */
-		public static const OSX_START:String = "BUTTON_10";
+		public static const MENU:String = "meta_menu";
 	}
 }


Removing forced key url

Removing forced key url

--- HLSPlugin/src/com/kaltura/hls/manifest/HLSManifestEncryptionKey.as
+++ HLSPlugin/src/com/kaltura/hls/manifest/HLSManifestEncryptionKey.as
@@ -56,8 +56,8 @@
 				switch ( name )
 				{
 					case "URI" :
-						//result.url = value;
-						result.url = "http://localhost:5000/VideoDecrypt/video.key";
+						result.url = value;
+						//result.url = "http://localhost:5000/VideoDecrypt/video.key";
 						break;

 					case "IV" :


Transferred from the Adobe Open Source Subversion Repository

Revision: 8031
Author:   egeorgie@adobe.com
Date:     2009-06-20T01:10:03.288554Z

Log Message:
-----------
Scrub the TODOs in the framework, convert to FIXMEs in the new convention and assigning an owner.

Doc Notes: N/A
Bugs: N/A
Reviewer: Deepa
tests: build, checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/StrokedElement.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/development/eclipse/flex/flex4test/src/layouts/WheelLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.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/effects/supportClasses/FadeInstance.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/supportClasses/ScrollBar.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/flex4/src/spark/effects/animation/Timeline.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/mediaClasses/VolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ErrorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Move.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/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/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/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectTargetFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.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/flex4/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/supportClasses/LayoutElementHelper.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/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/mediaClasses/StreamingVideoSource.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/flex4/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RemoveActionInstance.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/flex4/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/pathSegments/LineSegment.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransitionShaderInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VSlider.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/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -865,7 +865,7 @@
     //  Utility methods for subclasses
     //---------------------------------

-    // TODO (chaase): These could actually be static functions in a utility
+    // FIXME (chaase): These could actually be static functions in a utility
     // class instead of protected methods in a component superclass. But since
     // they assume access to the systemManager property of the component, this
     // seems like the right place for now. If we're trying to save on footprint
@@ -895,7 +895,7 @@
         if (offstageHandler == null)
             offstageHandler = onstageHandler;

-        // TODO (jszeto) Make marshall plan compliant
+        // FIXME (jszeto): Make marshall plan compliant
         if (systemManager)
         {
         	// For on-stage events
@@ -928,7 +928,7 @@
         if (offstageHandler == null)
             offstageHandler = onstageHandler;

-        // TODO (jszeto) Make marshall plan compliant
+        // FIXME (jszeto): Make marshall plan compliant
         if (systemManager)
         {
         	// For on-stage events


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

Reviewer: Evtim
QA: yes.

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -12,24 +12,25 @@
 package mx.components.baseClasses
 {

+import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
 import flash.events.Event;
+import flash.geom.Point;
 import flash.system.ApplicationDomain;
 import flash.utils.*;

+import mx.components.Skin;
 import mx.core.ClassFactory;
 import mx.core.IFactory;
 import mx.core.IFlexModuleFactory;
 import mx.core.IInvalidating;
+import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
-import mx.components.Skin;
 import mx.events.PropertyChangeEvent;
 import mx.managers.ISystemManager;
 import mx.modules.ModuleManager;
-import flash.geom.Point;
-import flash.display.DisplayObject;
-import flash.display.DisplayObjectContainer;

 use namespace mx_internal;

@@ -739,7 +740,7 @@
     protected function getSkinPartPosition(part:IVisualElement):Point
     {
         return (!part || !part.parent) ? new Point(0, 0) :
-            globalToLocal(part.parent.localToGlobal(new Point(part.x, part.y)));
+            globalToLocal(part.parent.localToGlobal(new Point((part as ILayoutElement).getLayoutBoundsX(), (part as ILayoutElement).getLayoutBoundsY())));
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 4040
Author:   gosmith@adobe.com
Date:     2008-11-07T02:08:56.069851Z

Log Message:
-----------
Improved text hiliting.

Text selections in TextView now hilite using three CSS-settable colors. And you can control whether the selection is shown when the component doesn't have focus, and when the window isn't active.

The visibility of the selection is determined by a new 'selectionVisibility' property on TextView and FxTextBase. The allowed values -- "whenFocused", "whenActive", and "always" -- are available in the new TextSelectionVisibility enum class. This is similar to TextField's 'alwaysShowSelection' property but more general.

The hilite color in each of the three states is determined by the three styles selectionColor, unfocusedSelectionColor, and inactiveSelectionColor. The latter two are new in Gumbo. Note that the existing selectionColor style now applies to selected text as well as to selected list items, etc. We may decide to have unfocusedSelectionColor and inactiveSelectionColor apply to things like list items as well, but that isn't part of this checkin.

QE Notes: The blinking insertion point is now barely visible because it is the selection hilite color. I'll work with the TLF team to get it drawn in a highly-visible way. Also, the selectionColor is not getting properly computed based on the themeColor for FxApplications.
Doc Notes: None
Bugs: None
Reviewer: Deepa

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextSelectionVisibility.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTextBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/SelectionFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -39,6 +39,7 @@
 include "../../styles/metadata/AdvancedParagraphFormatTextStyles.as"
 include "../../styles/metadata/BasicCharacterFormatTextStyles.as"
 include "../../styles/metadata/AdvancedCharacterFormatTextStyles.as"
+include "../../styles/metadata/SelectionFormatTextStyles.as"

 /**
  *  Name of the skin class to use for this component. The skin must be a class that extends


fixed "Variable dataColumn is not defined." error.

Change-Id: Ibab841edf6393631fc45c4c9c97d67577cdcc42b

--- WeaveData/src/weave/data/Transforms/ForeignDataMappingTransform.as
+++ WeaveData/src/weave/data/Transforms/ForeignDataMappingTransform.as
@@ -105,6 +105,12 @@
             var metadata:Object = proxyColumn.getProxyMetadata();
             var dataColumnName:String = metadata[DATA_COLUMNNAME_META];
             var dataColumn:IAttributeColumn = dataColumns.getObject(dataColumnName) as IAttributeColumn;
+			if (!dataColumn)
+			{
+				proxyColumn.setInternalColumn(ProxyColumn.undefinedColumn);
+				return;
+			}
+
             var equationColumn:EquationColumn = new EquationColumn();

             equationColumn.variables.requestObjectCopy("keyColumn", keyColumn);


Transferred from the Adobe Open Source Subversion Repository

Revision: 8560
Author:   clucier@adobe.com
Date:     2009-07-14T21:34:26.949585Z

Log Message:
-----------
Another pass at SDK-17766.

Fix for focusSkin and errorSkin to account for bogus bitmap snapshots when objects are 3D transformed.
Bugs: SDK-17766
Reviewer: Jason
QE Notes: None
Doc Notes: None

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as
@@ -158,7 +158,15 @@
         // If the error object has a focus skin, make sure it is hidden.
         if (errorObject.focusObj)
             errorObject.focusObj.visible = false;
-
+
+        // Ensure no 3D transforms apply, as this skews our snapshot bitmap.
+        var transform3D:Matrix3D = null;
+        if (errorObject.$transform.matrix3D)
+        {
+            transform3D = errorObject.$transform.matrix3D;
+            errorObject.$transform.matrix3D = null;
+        }
+
         // Temporary solution for error drawing on CheckBox and RadioButton components.
         // Hide the label before drawing the focus.
         // FIXME (gruehle): Figure out a better solution.
@@ -219,6 +227,10 @@
         // of overlaying the error skin on the border of the component.
         bitmap.width = errorObject.width;
         bitmap.height = errorObject.height;
+
+        // Restore original 3D matrix if applicable.
+        if (transform3D)
+            errorObject.$transform.matrix3D = transform3D;
     }

     private static var classDefCache:Object = {};


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

--- frameworks/projects/charts/src/mx/charts/renderers/LineRenderer.as
+++ frameworks/projects/charts/src/mx/charts/renderers/LineRenderer.as
@@ -0,0 +1,124 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.charts.renderers
+{
+
+import mx.charts.chartClasses.GraphicsUtilities;
+import mx.core.IDataRenderer;
+import mx.graphics.IStroke;
+import mx.skins.ProgrammaticSkin;
+
+/**
+ *  A simple implementation of a line segment renderer
+ *  that is used by LineSeries objects.
+ *  This class renders a line on screen using the stroke and form defined by
+ *  the owning series's lineStroke and form styles,
+ *  respectively.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class LineRenderer extends ProgrammaticSkin implements IDataRenderer
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function LineRenderer()
+	{
+		super();
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+	//  data
+    //----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the data property.
+	 */
+	private var _data:Object;
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The chart item that this renderer represents.
+	 *  LineRenderers assume that this value is an instance of LineSeriesItem.
+	 *  This value is assigned by the owning series.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function get data():Object
+	{
+		return _data;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set data(value:Object):void
+	{
+		_data = value;
+
+		invalidateDisplayList();
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override protected function updateDisplayList(unscaledWidth:Number,
+												  unscaledHeight:Number):void
+	{
+		super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+		var stroke:IStroke = getStyle("lineStroke");
+		var form:String = getStyle("form");
+
+		graphics.clear();
+
+		GraphicsUtilities.drawPolyLine(graphics, _data.items,
+									   _data.start, _data.end + 1,"x","y",
+									   stroke,form);
+
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

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

--- frameworks/projects/framework/src/mx/formatters/StringFormatter.as
+++ frameworks/projects/framework/src/mx/formatters/StringFormatter.as
@@ -0,0 +1,177 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.formatters
+{
+
+[ExcludeClass]
+
+/**
+ *  @private
+ *  The StringFormatter class provides a mechanism for displaying
+ *  and saving data in the specified format.
+ *  The constructor accepts the format and an Array of tokens,
+ *  and uses these values to create the data structures to support
+ *  the formatting during data retrieval and saving.
+ *
+ *
This class is used internally by other formatters,
+ *  and is typically not used directly.

+ *
+ *  @see mx.formatters.DateFormatter
+ */
+public class StringFormatter
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+ 	 *  @param format String that contains the desired format.
+	 *
+	 *  @param tokens String that contains the character tokens
+	 *  within the specified format String that is replaced
+	 *  during data formatting operations.
+	 *
+	 *  @param extractTokenFunc The token
+	 *  accessor method to call when formatting for display.
+	 *  The method signature is
+	 *  value: anything, tokenInfo: {token: id, begin: start, end: finish}.
+	 *  This method must return a String representation of value
+	 *  for the specified tokenInfo.
+	 */
+	public function StringFormatter(format:String, tokens:String,
+									extractTokenFunc:Function)
+	{
+		super();
+
+		formatPattern(format, tokens);
+		extractToken = extractTokenFunc;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var extractToken:Function;
+
+	/**
+	 *  @private
+	 */
+	private var reqFormat:String;
+
+	/**
+	 *  @private
+	 */
+	private var patternInfo:Array;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Returns the formatted String using the format, tokens,
+	 *  and extraction function passed to the constructor.
+	 *
+	 *  @param value String to be formatted.
+	 *
+	 *  @return Formatted String.
+	 */
+	public function formatValue(value:Object):String
+	{
+		var curTokenInfo:Object = patternInfo[0];
+
+		var result:String = reqFormat.substring(0, curTokenInfo.begin) +
+							extractToken(value, curTokenInfo);
+
+		var lastTokenInfo:Object = curTokenInfo;
+
+		var n:int = patternInfo.length;
+		for (var i:int = 1; i < n; i++)
+		{
+			curTokenInfo = patternInfo[i];
+
+			result += reqFormat.substring(lastTokenInfo.end,
+										  curTokenInfo.begin) +
+					  extractToken(value, curTokenInfo);
+
+			lastTokenInfo = curTokenInfo;
+		}
+		if (lastTokenInfo.end > 0 && lastTokenInfo.end != reqFormat.length)
+			result += reqFormat.substring(lastTokenInfo.end);
+
+		return result;
+	}
+
+	/**
+	 *  @private
+	 *  Formats a user-defined pattern String into a more usable object.
+	 *
+	 *  @param format String that defines the user-requested pattern.
+	 *
+	 *  @param tokens List of valid patttern characters.
+	 */
+	private function formatPattern(format:String, tokens:String):void
+	{
+		var start:int = 0;
+		var finish:int = 0;
+		var index:int = 0;
+
+		var tokenArray:Array = tokens.split(",");
+
+		reqFormat = format;
+
+		patternInfo = [];
+
+		var n:int = tokenArray.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			start = reqFormat.indexOf(tokenArray[i]);
+			if (start >= 0  && start < reqFormat.length)
+			{
+				finish = reqFormat.lastIndexOf(tokenArray[i]);
+				finish = finish >= 0 ? finish + 1 : start + 1;
+				patternInfo.splice(index, 0,
+					{ token: tokenArray[i], begin: start, end: finish });
+				index++;
+			}
+		}
+
+		patternInfo.sort(compareValues);
+	}
+
+	/**
+	 *  @private
+	 */
+	private function compareValues(a:Object, b:Object):int
+	{
+		if (a.begin > b.begin)
+			return 1;
+		else if (a.begin < b.begin)
+			return -1;
+		else
+			return 0;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 7176
Author:   cframpto@adobe.com
Date:     2009-05-21T14:55:47.815652Z

Log Message:
-----------
Rework autoSizing.  If height and width specified, they will be used, even if autoSize=true.  Make sure RichEditableTextContainerManager.drawBackgroundAndSetScrollRect() does the right thing for the autoSizing case.

autoSize may return true even if not actually autoSizing in the cases where height and width are explicitly set or this component is the viewport of a scroller (ie TextArea).

QA Notes: TextArea and TextInput tests pass
Doc Notes:
Bugs: SDK-21312
Reviewers: Gordon

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -46,8 +46,8 @@
 import flashx.textLayout.elements.ParagraphElement;
 import flashx.textLayout.elements.SpanElement;
 import flashx.textLayout.elements.TextFlow;
+import flashx.textLayout.events.CompositionCompletionEvent;
 import flashx.textLayout.events.DamageEvent;
-import flashx.textLayout.events.CompositionCompletionEvent;
 import flashx.textLayout.events.FlowOperationEvent;
 import flashx.textLayout.events.SelectionEvent;
 import flashx.textLayout.formats.Category;
@@ -506,6 +506,15 @@
      */
     private var widthConstraint:Number = NaN;

+    /**
+     *  @private
+     *  True if this component sizes itself based on its actual
+     *  contents.  This happens if it's configured for autoSize, it is not
+     *  contained within a scroller and an explicit width and height are not
+     *  specified.
+     */
+    mx_internal var actuallyAutoSizing:Boolean = false;
+
     //--------------------------------------------------------------------------
     //
     //  Overridden properties: UIComponent
@@ -551,24 +560,6 @@
         invalidateDisplayList();
     }

-    //----------------------------------
-    //  maxWidth
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    override public function get maxWidth():Number
-    {
-        if (!_autoSize || !isNaN(explicitMaxWidth))
-            return super.maxWidth;
-
-        // The default for maxWidth is 10000 which isn't a
-        // reasonable default for the autoSize width so use the default
-        // measured width which is 160 instead.
-        return  UIComponent.DEFAULT_MEASURED_WIDTH;
-    }
-
     //--------------------------------------------------------------------------
     //
     //  Properties: IFontContextComponent
@@ -616,11 +607,6 @@
     private var _clipAndEnableScrolling:Boolean = false;

     /**
-     *  @private
-     */
-    private var clipAndEnableScrollingChanged:Boolean = false;
-
-    /**
      *  @copy mx.layout.LayoutBase#clipAndEnableScrolling
      *
      *  @langversion 3.0
@@ -635,6 +621,8 @@

     /**
      *  @private
+     *  Set to true by a scroller when it installs this as a viewport.
+     *  Set to false by a scroller when it uninstalls this as a viewport.
      */
     public function set clipAndEnableScrolling(value:Boolean):void
     {
@@ -643,9 +631,9 @@

         _clipAndEnableScrolling = value;

-        clipAndEnableScrollingChanged = true;
-
-        // TBD implement this
+        // Value could impact whether we are actually autoSizing.
+        invalidateSize();
+        invalidateDisplayList();
     }

     //----------------------------------
@@ -799,11 +787,6 @@
     private var _autoSize:Boolean = true;

     /**
-     *  @private
-     */
-    private var autoSizeChanged:Boolean = _autoSize;
-
-    /**
      *  Documentation is not currently available.
      *
      *  @langversion 3.0
@@ -825,9 +808,7 @@
             return;

         _autoSize = value;
-        autoSizeChanged = true;
-
-        invalidateProperties();
+
         invalidateSize();
         invalidateDisplayList();
     }
@@ -1627,28 +1608,7 @@
             editableChanged = false;
             selectableChanged = false;
         }
-
-        // If this component is in a scroller, then we can't autoSize.  Every
-        // time we autoSize, the scroller responds to the size change, which
-        // causes us to remeasure, which causes the scroller to respond to the
-        // size change, and ask us to remeasure, etc.
-        if (clipAndEnableScrollingChanged)
-        {
-            if (_clipAndEnableScrolling)
-                autoSize = false;
-
-            clipAndEnableScrollingChanged = false;
-        }
-
-        if (autoSizeChanged)
-        {
-            var value:String = _autoSize ? "off" : "auto";
-            _inputManager.horizontalScrollPolicy = value;
-            _inputManager.verticalScrollPolicy = value;
-
-            autoSizeChanged = false;
-        }
-
+
         if (horizontalScrollPositionChanged)
         {
             var oldHorizontalScrollPosition:Number =
@@ -1689,7 +1649,7 @@
         super.setLayoutBoundsSize(width, height, postLayoutTransform);

         // Only autoSize cares about the real measured width.
-        if (!_autoSize)
+        if (!actuallyAutoSizing)
             return;

         // TODO Possible optimization - if we reflow the text
@@ -1709,7 +1669,7 @@
             return;

         // If we don't measure
-        if (skipMeasure())
+        if (super.skipMeasure())
             return;

         if (!isNaN(explicitHeight))
@@ -1742,13 +1702,30 @@
      */
     override protected function skipMeasure():Boolean
     {
-        // If autoSize, always measure.
-        if (_autoSize)
-            return false;
-
-        return super.skipMeasure();
-    }
-
+        // If explicit width and height then definately not autoSizing.
+        if (super.skipMeasure())
+        {
+            actuallyAutoSizing = false;
+            return true;
+        }
+
+        var oldActuallyAutoSizing:Boolean = actuallyAutoSizing;
+
+        // AutoSize if it is requested and this component isn't the viewport
+        // of a scroller.  autoSize and scrolling don't play well together.
+        actuallyAutoSizing = _autoSize && !_clipAndEnableScrolling;
+
+        // If we're autoSizing now, make sure we aren't scrolled from previously
+        // not being autoSized.
+        if (actuallyAutoSizing && !oldActuallyAutoSizing)
+        {
+            _inputManager.horizontalScrollPosition = 0;
+            _inputManager.verticalScrollPosition = 0;
+        }
+
+        return false;
+    }
+
     /**
      *  @private
      */
@@ -1759,7 +1736,7 @@
         // Recalculate the ascent, and descent, if fontMetrics changed.
         calculateFontMetrics();

-        if (_autoSize)
+        if (actuallyAutoSizing)
         {
             measureForAutoSize();
         }
@@ -1785,7 +1762,11 @@

         super.updateDisplayList(unscaledWidth, unscaledHeight);

-        if (!_autoSize)
+        // If we're autoSizing we're telling the layout manager one set of
+        // values and TLF another set of values so there is room for the text
+        // to grow.  The composition values for autoSize were set when the
+        // text was measured.
+        if (!actuallyAutoSizing)
         {
             _inputManager.compositionWidth = unscaledWidth;
             _inputManager.compositionHeight = unscaledHeight;
@@ -2085,15 +2066,6 @@

     /**
      *  @private
-     *  The cases that require a second pass through the LayoutManager.
-     */
-    private function isSpecialCase():Boolean
-    {
-        return _autoSize && !isNaN(percentWidth);
-    }
-
-    /**
-     *  @private
      *  If the explicit widths and heights are not set to NaN, the
      *  measuredWidth and measuredHeight are clamped down to these values
      *  when measure() returns to UIComponent.measureSizes().
@@ -2104,6 +2076,13 @@

         if (hostFormat.lineBreak == "toFit")
         {
+            // The default for maxWidth is 10000 which isn't a
+            // reasonable default for the autoSize width so use the default
+            // measured width which is 160 instead.
+             var maxWidth:Number = !isNaN(explicitMaxWidth) ?
+                              explicitMaxWidth :
+                              UIComponent.DEFAULT_MEASURED_WIDTH;
+
             // Need to set a width to cause a wrap.  Never compose over the
             // max width because the width will always be adjusted down to this
             // and it's easy to get into an infinite measure/update display
@@ -2137,18 +2116,18 @@

         // If it's an empty text flow, there is one line with one
         // character so the height is good for the line.
-        measuredHeight = Math.round(contentBounds.height);
+        measuredHeight = Math.ceil(contentBounds.height);

         if (_inputManager.getText().length > 0)
         {
             // Text flow with a terminator (which has width).
-            measuredWidth = Math.round(contentBounds.width);
+            measuredWidth = Math.ceil(contentBounds.width);
         }
         else
         {
             // Empty text flow.  One Em wide so there
             // is a place to put the insertion cursor.
-            measuredWidth = Math.round(contentBounds.width +
+            measuredWidth = Math.ceil(contentBounds.width +
                                        getStyle("fontSize"));
        }
     }
@@ -2985,6 +2964,7 @@
         }
         textFlowChanged = false;

+        var contentChanged:Boolean = false;
         var oldContentWidth:Number = _contentWidth;

         var newContentBounds:Rectangle = _inputManager.getContentBounds();
@@ -3008,12 +2988,7 @@
             dispatchPropertyChangeEvent(
                 "contentWidth", oldContentWidth, newContentWidth);

-            // If autoSize and text size changed, need to remeasure.
-            if (_autoSize)
-            {
-                invalidateSize();
-                invalidateDisplayList();
-            }
+            contentChanged = true;
         }

         var oldContentHeight:Number = _contentHeight;
@@ -3036,14 +3011,16 @@

             dispatchPropertyChangeEvent(
                 "contentHeight", oldContentHeight, newContentHeight);
-
-            // If autoSize and text size changed, need to remeasure.
-            if (_autoSize)
-            {
-                invalidateSize();
-                invalidateDisplayList();
-            }
+
+            contentChanged = true;
         }
+
+        // If autoSize and text size changed, need to remeasure.
+        if (contentChanged && actuallyAutoSizing)
+        {
+            invalidateSize();
+            invalidateDisplayList();
+        }
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 9204
Author:   cframpto@adobe.com
Date:     2009-08-10T18:03:11.780550Z

Log Message:
-----------
Temporarily revert 9202.  Failing NS tests.

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

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -252,13 +252,8 @@
         if (classInitialized)
             return;

-        staticConfiguration = new Configuration();
-        staticConfiguration.manageEnterKey = false; // default is true
-        staticConfiguration.manageTabKey = false;   // default is false
-
         staticPlainTextImporter =
-            TextConverter.getImporter(TextConverter.PLAIN_TEXT_FORMAT,
-            staticConfiguration);
+            TextConverter.getImporter(TextConverter.PLAIN_TEXT_FORMAT);

         // Throw import errors rather than return a null textFlow.
         // Alternatively, the error strings are in the Vector, importer.errors.
@@ -283,16 +278,7 @@
      *  @private
      */
     private static var classInitialized:Boolean = false;
-
-    /**
-     *  @private
-     *  Create a single Configuration used by all Text instances.
-     *  It tells the TextContainerManager that we don't want it
-     *  to handle the ENTER key, because we need the ENTER key to behave
-     *  differently based on the 'multiline' property.
-     */
-    private static var staticConfiguration:Configuration;
-
+
     /**
      *  @private
      *  This TLF object is used to import a 'text' String
@@ -1681,17 +1667,35 @@
         // We are about to set focus on this component.  If it is due to
         // a programmatic focus change we have to programatically do what the
         // mouseOverHandler and the mouseDownHandler do so that the user can
-        // type in this component without using the mouse first.  Ideally
-        // we would call convertToTextFlowWithComposer() to put a textFlow
-        // with a composer in place but it is not accessible.  The workaround
-        // is to call scrollToRange which makes sure the textFlow is in place
-        // and then returns immediately from scrollToRange since the scroll
-        // positions are not valid.
-        if (editingMode != EditingMode.READ_ONLY &&
-            _textContainerManager.composeState !=
-            TextContainerManager.COMPOSE_COMPOSER)
-        {
-            _textContainerManager.scrollToRange(-1, -1);
+        // type in this component without using the mouse first.
+        //
+        //   1) TCM addActivationEventListeners() called so that event handlers
+        //      are in place to catch the upcoming FocusEvent.FOCUS_IN which
+        //      will cause our focusInHandler to be called.
+        //   2) Make sure there is a textFlow with an interactionManager
+        //      in place so that selection/editing can occur.  Our focusIn
+        //      handler does this indirectly for the editable case since
+        //      to set a selection, there must be a textFlow in this state.
+        //
+        // We can't call addActivationEventListeners() directly but it is
+        // called by TCM.setTextFlow() which is called by the textFlow getter.
+        // The textFlow getter also makes sure there is an interactionManager
+        // in place.
+        //
+        // Alternatively, we could call convertToTextFlowWithComposer() if it
+        // was made accessible.  This eliminates the need for
+        // addActivationEventListeners(), since the text flow with a composer
+        // is put in place immediately.
+
+        if (editingMode != EditingMode.READ_ONLY)
+        {
+            if (_textContainerManager.handlersState ==
+                TextContainerManager.HANDLERS_NOTADDED ||
+                _textContainerManager.composeState !=
+                TextContainerManager.COMPOSE_COMPOSER)
+            {
+                textFlow;
+            }
         }

         super.setFocus();
@@ -2351,7 +2355,9 @@
      */
     mx_internal function createTextContainerManager():TextContainerManager
     {
-        return new RichEditableTextContainerManager(this, staticConfiguration);
+        // Use the default configuration.
+        // TODO:(cframpto) should set enableEnterKey = false
+        return new RichEditableTextContainerManager(this, null);
     }

     /**
@@ -3321,26 +3327,13 @@
             return;

         if (event.keyCode == Keyboard.ENTER)
-        {
-            // We always handle the 'enter' key since we would have to recreate
-            // the container manager to change the configuration if multiline
-            // changes.
-            if (multiline)
+        {
+            // Do not let TLF handle the ENTER key if only one line.
+            if (!multiline)
             {
-                var editManager:IEditManager =
-                    EditManager(_textContainerManager.beginInteraction());
-
-                if (editManager.hasSelection())
-                    editManager.splitParagraph();
-
-                _textContainerManager.endInteraction();
-            }
-            else
-            {
+                event.preventDefault();
                 dispatchEvent(new FlexEvent(FlexEvent.ENTER));
             }
-
-            event.preventDefault();
          }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 13126
Author:   chaase@adobe.com
Date:     2009-12-21T21:10:02.399245Z

Log Message:
-----------
Fix to bug when ending Parallel effects with Resize effect children. There were three problems here:
- Resize effects were being mis-ordered inside of the Parallel, causing them to be ended out of order. If any of these effects were order-dependent, this caused a problem in ending at the right values.
- Animation usually populates the values of an effect lazily, just when it actually starts. So an effect with a startDelay would not get real from/to values until the startDelay elapsed. This meant that an effect that was end()'d prematurely would send out a bogus final value because it had not yet been populated with real from/to values.
- Repeating/reversing animations were not being end()'d at the proper beginning/end value, based on their repeatCount (they would always end at the full durection of whatever iteration they were currently in).

QE notes: None
Doc notes: None
Bugs: SDK-24755
Reviewer: Jason
Tests run: Checkintests, Mustella spark/effects, mx/effects
Is noteworthy for integration: Yes: reported in Catalyst bug bash

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -170,6 +170,7 @@
     private var _invertValues:Boolean = false;
     // Original start time of animation
     private var startTime:Number;
+    private var started:Boolean = false;
     // Time when the current cycle started
     private var cycleStartTime:Number;
     // The amount of time that the animation should delay before
@@ -180,6 +181,7 @@
     private static var delayedStartAnims:Vector.<Animation> =
         new Vector.<Animation>();
     private static var delayedStartTimes:Dictionary = new Dictionary();
+

     /**
      *  @private
@@ -934,6 +936,10 @@
         // removed
         // FIXME (chaase): this will snap paused and startDelayed animations
         // to their end values. Seems correct, but should check this.
+        if (!started)
+            sendAnimationEvent(EffectEvent.EFFECT_START);
+        if (repeatCount > 1 && repeatBehavior == "reverse" && (repeatCount % 2 == 0))
+            _invertValues = true;
         calculateValue(duration);

         sendUpdateEvent();
@@ -1327,6 +1333,7 @@
             if (actualStartTime > 0)
                 seek(actualStartTime);
         }
+        started = true;
     }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19060
Author:   harishs@adobe.com
Date:     2010-12-06T17:34:15.020965Z

Log Message:
-----------
QE notes: Did checkintests, performed full cyclone run. There were 19 failures in mustella report. QE Judy (Mingzhou Gao and Joann Chung Anderson) confirmed that they are known problems.
Doc notes: As part of Sort and Sortfield updates, the asdoc comments were updated to reflect globalization changes.
Bugs: Fixed sdk-28493, 28691,28494, 28345, 28320, 28387, 28314, 28145
Reviewer: Gordon Smith
Tests run: cyclone, checkintests, bugs testfiles
Is noteworthy for integration: Sort and Sortfield updated with globalization support using the new spark globalization sort classes.
Number and CurrencyValidators support national digits and unicode minus symbols.
groupingPattern property dropped for Number and Currency Validators.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/NumberValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ICollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/bundles/en_US/validators.properties</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/DefaultCubeImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/SortTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/SortTests.mxml</path>

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

--- frameworks/projects/mx/src/mx/controls/DataGrid.as
+++ frameworks/projects/mx/src/mx/controls/DataGrid.as
@@ -29,7 +29,9 @@
 import mx.collections.CursorBookmark;
 import mx.collections.ICollectionView;
 import mx.collections.ItemResponder;
+import mx.collections.ISort;
 import mx.collections.Sort;
+import mx.collections.ISortField;
 import mx.collections.SortField;
 import mx.collections.errors.ItemPendingError;
 import mx.controls.dataGridClasses.DataGridBase;
@@ -3844,7 +3846,7 @@
             return;

         var view:ICollectionView = ICollectionView(dataProvider);
-        var sort:Sort = view.sort;
+        var sort:ISort = view.sort;
         if (!sort)
         {
             sortIndex = lastSortIndex = -1;
@@ -3867,7 +3869,7 @@
         }

         // fields.length == 1, so the collection is sorted on a single field.
-        var sortField:SortField = fields[0];
+        var sortField:ISortField = fields[0];
         var n:int = _columns.length;
         sortIndex = -1;
         for (var i:int = 0; i < n; i++)
@@ -3917,8 +3919,8 @@
         // do the sort if we're allowed to
         if (c.sortable)
         {
-            var s:Sort = collection.sort;
-            var f:SortField;
+            var s:ISort = collection.sort;
+            var f:ISortField;
             if (s)
             {
                 s.compareFunction = null;


renamed export menu from "Weave 2.x" to "WeaveJS"

--- WeaveUI/src/weave/menus/ExportMenu.as
+++ WeaveUI/src/weave/menus/ExportMenu.as
@@ -15,7 +15,6 @@

 package weave.menus
 {
-	import weave.Weave;
 	import weave.compiler.Compiler;
 	import weave.core.LinkableCallbackScript;
 	import weave.core.LinkableFunction;
@@ -27,7 +26,7 @@
 		{
 			super({
 				shown: function():Boolean { return ExportMenu.shown; },
-				label: lang("Weave 2.x"),
+				label: lang("WeaveJS"),
 				children: [
 					{
 						label: lang("Export to HTML5"),


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

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

 package mx.controls.listClasses
 {