Display polynomial line within screenBounds and draw the line smoothly

--- WeaveUISpark/src/weave/visualization/plotters/RegressionLinePlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/RegressionLinePlotter.as
@@ -24,12 +24,14 @@
 	import flash.geom.Point;

 	import mx.collections.ArrayCollection;
+	import mx.controls.Alert;
 	import mx.rpc.AsyncToken;
 	import mx.rpc.events.FaultEvent;
 	import mx.rpc.events.ResultEvent;
 	import mx.utils.ArrayUtil;

 	import weave.Weave;
+	import weave.api.WeaveAPI;
 	import weave.api.disposeObjects;
 	import weave.api.getCallbackCollection;
 	import weave.api.newLinkableChild;
@@ -112,6 +114,7 @@

 			if (currentTrendline.value == POLYNOMIAL)
 			{
+				// ToDo Add rSquared
 				Rstring = "fit <- lm(y ~ poly(x, " + polynomialDegree.value.toString() + ", raw = TRUE))\n"
 					+"coef <- coefficients(fit)\n"
 				dataXY = ColumnUtils.joinColumns([xColumn, yColumn], Number, false, filteredKeySet.keys);
@@ -175,99 +178,7 @@
 				if (currentTrendline.value == POLYNOMIAL)
 				{
 					coefficients = ((RresultArray[0] as RResult).value as Array != coefficients) ? (RresultArray[0] as RResult).value as Array : null;
-					getCallbackCollection(this).triggerCallbacks();
-				}
-
-				if (currentTrendline.value == EXPONENTIAL)
-				{
-
-				}
-
-				if (currentTrendline.value == POWER)
-				{
-
-				}
-
-				if (currentTrendline.value == LOGARITHMIC)
-				{
-
-
-				}
-			}
-		}
-
-		private function handleLinearRegressionFault(event:FaultEvent, token:Object = null):void
-		{
-			if (this.requestID != int(token))
-			{
-				// ignore outdated results
-				return;
-			}
-
-			reportError(event);
-			intercept = NaN;
-			slope = NaN;
-			coefficients = null;
-			getCallbackCollection(this).triggerCallbacks();
-		}
-
-		public function getSlope():Number { return slope; }
-		public function getIntercept():Number { return intercept; }
-		public function getCoefficients():Array { return coefficients; }
-
-		private var intercept:Number = NaN;
-		private var slope:Number = NaN;
-		private var rSquared:Number = NaN;
-		private var coefficients:Array = null;
-
-		private var tempRange:Range = new Range();
-		private var tempPoint:Point = new Point();
-		private var tempPoint2:Point = new Point();
-
-		override public function drawBackground(dataBounds:IBounds2D, screenBounds:IBounds2D, destination:BitmapData):void
-		{
-			var g:Graphics = tempShape.graphics;
-			g.clear();
-
-			if(currentTrendline.value == LINEAR)
-			{
-//				g.clear();
-//				if(!isNaN(intercept))
-//				{
-//					tempPoint.x = dataBounds.getXMin();
-//					tempPoint2.x = dataBounds.getXMax();
-//
-//					tempPoint.y = (slope*tempPoint.x)+intercept;
-//					tempPoint2.y = (slope*tempPoint2.x)+intercept;
-//
-//					tempRange.setRange( dataBounds.getYMin(), dataBounds.getYMax() );
-//
-//					// constrain yMin to be within y range and derive xMin from constrained yMin
-//					tempPoint.x = tempPoint.x + (tempRange.constrain(tempPoint.y) - tempPoint.y) / slope;
-//					tempPoint.y = tempRange.constrain(tempPoint.y);
-//
-//					// constrain yMax to be within y range and derive xMax from constrained yMax
-//					tempPoint2.x = tempPoint.x + (tempRange.constrain(tempPoint2.y) - tempPoint.y) / slope;
-//					tempPoint2.y = tempRange.constrain(tempPoint2.y);
-//
-//					dataBounds.projectPointTo(tempPoint,screenBounds);
-//					dataBounds.projectPointTo(tempPoint2,screenBounds);
-//					lineStyle.beginLineStyle(null,g);
-//					//g.lineStyle(lineThickness.value, lineColor.value,lineAlpha.value,true,LineScaleMode.NONE);
-//					g.moveTo(tempPoint.x,tempPoint.y);
-//					g.lineTo(tempPoint2.x,tempPoint2.y);
-//
-//					destination.draw(tempShape);
-//				}
-			}
-			else if (currentTrendline.value == POLYNOMIAL)
-			{
-				points = new Vector.<Number>;
-				drawCommand = new Vector.<int>;
-
-				if (coefficients != null)
-				{
-					// ToDo Use screenBounds to determine how many points should be drawn
+
 					// Preprocess coefficients ==> It might return NaN in higher degree
 					for (var i:int = 0; i < coefficients.length; i++)
 					{
@@ -277,12 +188,137 @@
 							i--;
 						}
 					}
-
 					coefficients.reverse();
-
+
+					getCallbackCollection(this).triggerCallbacks();
+				}
+
+				if (currentTrendline.value == EXPONENTIAL)
+				{
+
+				}
+
+				if (currentTrendline.value == POWER)
+				{
+
+				}
+
+				if (currentTrendline.value == LOGARITHMIC)
+				{
+
+
+				}
+			}
+		}
+
+		private function handleLinearRegressionFault(event:FaultEvent, token:Object = null):void
+		{
+			if (this.requestID != int(token))
+			{
+				// ignore outdated results
+				return;
+			}
+
+			reportError(event);
+			intercept = NaN;
+			slope = NaN;
+			coefficients = null;
+			getCallbackCollection(this).triggerCallbacks();
+		}
+
+		public function getSlope():Number { return slope; }
+		public function getIntercept():Number { return intercept; }
+		public function getCoefficients():Array { return coefficients; }
+
+		private var intercept:Number = NaN;
+		private var slope:Number = NaN;
+		private var rSquared:Number = NaN;
+		private var coefficients:Array = null;
+
+		private var tempRange:Range = new Range();
+		private var tempPoint:Point = new Point();
+		private var tempPoint2:Point = new Point();
+
+		override public function drawBackground(dataBounds:IBounds2D, screenBounds:IBounds2D, destination:BitmapData):void
+		{
+			var g:Graphics = tempShape.graphics;
+			g.clear();
+
+			if(currentTrendline.value == LINEAR)
+			{
+				g.clear();
+				if(!isNaN(intercept))
+				{
+					tempPoint.x = dataBounds.getXMin();
+					tempPoint2.x = dataBounds.getXMax();
+
+					tempPoint.y = (slope*tempPoint.x)+intercept;
+					tempPoint2.y = (slope*tempPoint2.x)+intercept;
+
+					tempRange.setRange( dataBounds.getYMin(), dataBounds.getYMax() );
+
+					// constrain yMin to be within y range and derive xMin from constrained yMin
+					tempPoint.x = tempPoint.x + (tempRange.constrain(tempPoint.y) - tempPoint.y) / slope;
+					tempPoint.y = tempRange.constrain(tempPoint.y);
+
+					// constrain yMax to be within y range and derive xMax from constrained yMax
+					tempPoint2.x = tempPoint.x + (tempRange.constrain(tempPoint2.y) - tempPoint.y) / slope;
+					tempPoint2.y = tempRange.constrain(tempPoint2.y);
+
+					dataBounds.projectPointTo(tempPoint,screenBounds);
+					dataBounds.projectPointTo(tempPoint2,screenBounds);
+					lineStyle.beginLineStyle(null,g);
+					//g.lineStyle(lineThickness.value, lineColor.value,lineAlpha.value,true,LineScaleMode.NONE);
+					g.moveTo(tempPoint.x,tempPoint.y);
+					g.lineTo(tempPoint2.x,tempPoint2.y);
+
+					destination.draw(tempShape);
+				}
+			}
+			else if (currentTrendline.value == POLYNOMIAL)
+			{
+				points = new Vector.<Number>;
+				drawCommand = new Vector.<int>;
+				var previousPoint:Point = null;
+
+				if (coefficients != null)
+				{
+//					// ToDo Use screenBounds to determine how many points should be drawn
+//					var flag:Boolean = true;
+//					 for (var x:int = dataBounds.getXMin(); x <= dataBounds.getXMax(); x++)
+//					 {
+//						tempPoint.x = x;
+//						tempPoint.y = polynomial(coefficients, x);
+//						dataBounds.projectPointTo(tempPoint, screenBounds);
+//						points.push(tempPoint.x);
+//						points.push(tempPoint.y);
+//
+//						if (flag == true)
+//						{
+//							drawCommand.push(1);
+//							flag = false;
+//						}
+//						else if (screenBounds.containsPoint(previousPoint) && screenBounds.containsPoint(tempPoint))
+//							drawCommand.push(2);
+//						else
+//							drawCommand.push(1);
+//
+//						previousPoint = tempPoint.clone();
+//					}
+//
+//					g.lineStyle(1);
+//					g.drawPath(drawCommand, points);
+//
+//					destination.draw(tempShape);
+
+
+
+					// Draw lines for every 3 pixels
+					var numberOfPoint:Number = Math.floor(screenBounds.getXCoverage() / 3);
+					var increment:Number = dataBounds.getXCoverage() / numberOfPoint;
 					var flag:Boolean = true;
-					 for (var x:int = dataBounds.getXMin(); x < dataBounds.getXMax(); x++)
-					 {
+					for (var x:Number = dataBounds.getXMin(); x <= dataBounds.getXMax(); x = x + increment)
+					{
 						tempPoint.x = x;
 						tempPoint.y = polynomial(coefficients, x);
 						dataBounds.projectPointTo(tempPoint, screenBounds);
@@ -294,11 +330,14 @@
 							drawCommand.push(1);
 							flag = false;
 						}
-//						else if (tempPoint.y > screenBounds.getYMax() || tempPoint.y < screenBounds.getYMin())
-//							drawCommand.push(1);
-						else drawCommand.push(2);
+						else if (screenBounds.containsPoint(previousPoint) && screenBounds.containsPoint(tempPoint))
+							drawCommand.push(2);
+						else
+							drawCommand.push(1);
+
+						previousPoint = tempPoint.clone();
 					}
-
+
 					g.lineStyle(1);
 					g.drawPath(drawCommand, points);


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/mx/src/mx/controls/richTextEditorClasses/ToolBar.as
+++ frameworks/projects/mx/src/mx/controls/richTextEditorClasses/ToolBar.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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.richTextEditorClasses
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 20204
Author:   aharui@adobe.com
Date:     2011-02-08T20:27:58.972959Z

Log Message:
-----------
remove preventDefault() from mouseDown handlers.  Folks will have to add that behavior if they want it.

QE notes: none
Doc notes:  none
Bugs: SDK-29422
Reviewer: Ryan
Tests run: checkintests mustella cyclone full run
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
@@ -343,7 +343,6 @@
     public function SkinnableTextBase()
     {
         super();
-        addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
     }

     //--------------------------------------------------------------------------
@@ -2138,14 +2137,6 @@
     //
     //--------------------------------------------------------------------------

-    /**
-     * @private
-     * Cancel mouseDown so itemRenderers don't also change state
-     */
-    private function mouseDownHandler(event:MouseEvent):void
-    {
-        event.preventDefault();
-    }

     /**
      * @private


updating as3 side to use android permissions

--- actionscript/src/com/freshplanet/ane/AirImagePicker/AirImagePicker.as
+++ actionscript/src/com/freshplanet/ane/AirImagePicker/AirImagePicker.as
@@ -128,10 +128,7 @@
 	 */
 	public function getCameraPermissionStatus():AirImagePickerPermissionStatus {
 		if(isSupported) {
-			if(isAndroid)
-				return AirImagePickerPermissionStatus.AUTHORIZED;
-			else
-				return AirImagePickerPermissionStatus.fromValue(_context.call("getCameraPermissionStatus") as String);
+			return AirImagePickerPermissionStatus.fromValue(_context.call("getCameraPermissionStatus") as String);
 		}

 		return AirImagePickerPermissionStatus.NOT_DETERMINED;
@@ -143,12 +140,8 @@
 	 */
 	public function getGalleryPermissionStatus():AirImagePickerPermissionStatus {
 		if(isSupported) {
-			if(isAndroid)
-				return AirImagePickerPermissionStatus.AUTHORIZED;
-			else
-				return AirImagePickerPermissionStatus.fromValue(_context.call("getGalleryPermissionStatus") as String);
-		}
-
+			return AirImagePickerPermissionStatus.fromValue(_context.call("getGalleryPermissionStatus") as String);
+		}

 		return AirImagePickerPermissionStatus.NOT_DETERMINED;
 	}


Fixed bug: symbol and remarks were applied to the first field of attribute when update response was received

--- collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/model/proxy/RecordProxy.as
+++ collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/model/proxy/RecordProxy.as
@@ -89,7 +89,6 @@
 							field.remarks = reqOp.remarks;
 						} else {
 							for each (field in attr.fields) {
-								field = attr.getField(reqOp.fieldIndex);
 								field.symbol = reqOp.symbol;
 								field.remarks = reqOp.remarks;
 							}


Updated test app

Updated test app

--- ANE-Bugsnag-Test/src/Main.as
+++ ANE-Bugsnag-Test/src/Main.as
@@ -1,221 +1,263 @@
 package
 {
-	import com.bugsnag.Bugsnag;
+    import com.bugsnag.Bugsnag;
+	import com.bugsnag.BugsnagConfig;
 	import com.bugsnag.ReleaseStage;
-	import com.bugsnag.Severity;
-
-	import flash.display.MovieClip;
-
-	import flash.display.StageAlign;
-	import flash.display.StageScaleMode;
-	import flash.errors.IOError;
+    import com.bugsnag.Severity;
+
+    import flash.display.MovieClip;
+
+    import flash.display.StageAlign;
+    import flash.display.StageScaleMode;
+    import flash.errors.IOError;
+	import flash.events.ErrorEvent;
 	import flash.events.Event;
-	import flash.events.MouseEvent;
-	import flash.events.UncaughtErrorEvent;
+    import flash.events.MouseEvent;
+    import flash.events.UncaughtErrorEvent;
+	import flash.filesystem.File;
+	import flash.filesystem.FileMode;
+	import flash.filesystem.FileStream;
 	import flash.text.TextField;
-	import flash.text.TextFormat;
-	import flash.text.TextFormatAlign;
-
-	public class Main extends MovieClip
-	{
-		// TODO: Replace with your Bugsnag API keys
-		private const IOS_KEY:String = "";
-		private const ANDROID_KEY:String = "";
-
-		private var buttonFormat:TextFormat;
-		private var feedback:TextField;
-
-		public function Main()
-		{
-			super();
-
-			// support autoOrients
-			stage.align = StageAlign.TOP_LEFT;
-			stage.scaleMode = StageScaleMode.SHOW_ALL;
-
-			feedback = new TextField();
-			var format:TextFormat = new TextFormat();
-			format.font = "_sans";
-			format.size = 16;
-			format.color = 0x000000;
-			feedback.defaultTextFormat = format;
-			feedback.width = 400;
-			feedback.height = 260;
-			feedback.x = 10;
-			feedback.y = 170;
-			feedback.multiline = true;
-			feedback.wordWrap = true;
-			addChild(feedback);
-
-			createButtons();
-
-			// You MUST initialize Bugsnag after the ADDED_TO_STAGE event, otherwise it
-			// is possible to get a crash on iOS.
-			addEventListener(Event.ADDED_TO_STAGE, initialize);
-		}
-
-
-		private function createButtons():void
-		{
-			// Row
-			var tf:TextField = createButton("Set User Data");
-			tf.x = 170;
-			tf.y = 10;
-			tf.addEventListener(MouseEvent.MOUSE_DOWN, setUserData);
-			addChild(tf);
-
-			tf = createButton("Set Release Stage");
-			tf.x = 330;
-			tf.y = 10;
-			tf.addEventListener(MouseEvent.MOUSE_DOWN, setReleaseStage);
-			addChild(tf);
-
-
-			// Row
-			tf = createButton("Toggle Auto Notify");
-			tf.x = 10;
-			tf.y = 50;
-			tf.addEventListener(MouseEvent.MOUSE_DOWN, toggleAutoNotify);
-			addChild(tf);
-
-			tf = createButton("Crash Native");
-			tf.x = 170;
-			tf.y = 50;
-			tf.addEventListener(MouseEvent.MOUSE_DOWN, crashNative);
-			addChild(tf);
-
-			tf = createButton("Set Tab Data");
-			tf.x = 330;
-			tf.y = 50;
-			tf.addEventListener(MouseEvent.MOUSE_DOWN, setTab);
-			addChild(tf);
-
-
-			// Row
-			tf = createButton("Notify");
-			tf.x = 10;
-			tf.y = 90;
-			tf.addEventListener(MouseEvent.MOUSE_DOWN, notify);
-			addChild(tf);
-
-			tf = createButton("Notify Error");
-			tf.x = 170;
-			tf.y = 90;
-			tf.addEventListener(MouseEvent.MOUSE_DOWN, notifyError);
-			addChild(tf);
-
-			tf = createButton("Catch Error");
-			tf.x = 330;
-			tf.y = 90;
-			tf.addEventListener(MouseEvent.MOUSE_DOWN, catchError);
-			addChild(tf);
-
-		}
-
-		private function log(text:String, clear:Boolean = true):void
-		{
-			if (clear)
-			{
-				feedback.text = "";
-			}
-
-			feedback.text += text + "\n\r";
-		}
-
-		private function createButton(label:String):TextField
-		{
-			if (!buttonFormat)
-			{
-				buttonFormat = new TextFormat();
-				buttonFormat.font = "_sans";
-				buttonFormat.size = 14;
-				buttonFormat.bold = true;
-				buttonFormat.color = 0xFFFFFF;
-				buttonFormat.align = TextFormatAlign.CENTER;
-			}
-
-			var textField:TextField = new TextField();
-			textField.defaultTextFormat = buttonFormat;
-			textField.width = 140;
-			textField.height = 30;
-			textField.text = label;
-			textField.backgroundColor = 0xCC0000;
-			textField.background = true;
-			textField.selectable = false;
-			textField.multiline = false;
-			textField.wordWrap = false;
-			return textField;
-		}
-
-		private function initialize(event:Event):void
-		{
-			Bugsnag.init(IOS_KEY, ANDROID_KEY);
-			loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, Bugsnag.handleUncaughtError);
-			Bugsnag.getStackTrace = function(error:Error):String {return error.getStackTrace();}
-
-			log("Bugsnag keys have been initialized");
-		}
-
-		private function setUserData(event:MouseEvent):void
-		{
-			var id:int = Math.random() * 9999;
-			var name:String = "user_" + id;
-
-			Bugsnag.setUser(String(id), name);
-			log("Bugsnag.setUser(" + id + ", " + name + ");");
-		}
-
-		private function setReleaseStage(event:MouseEvent):void
-		{
-			Bugsnag.releaseStage = ReleaseStage.DEVELOPMENT;
-			log("Bugsnag.releaseStage = 'development'");
-		}
-
-		private function toggleAutoNotify(event:MouseEvent):void
-		{
-			Bugsnag.autoNotify = !Bugsnag.autoNotify;
-			log("Bugsnag.autoNotify = " + (Bugsnag.autoNotify ? "true" : "false"));
-		}
-
-		private function crashNative(event:MouseEvent):void
-		{
-			Bugsnag.crashNative();
-			log("Bugsnag.crashNative()");
-		}
-
-		private function setTab(event:MouseEvent):void
-		{
-			Bugsnag.addAttribute("Var 1", "value 1", "Test Tab");
-			Bugsnag.addAttribute("Var 2", "value 2", "Test Tab");
-			Bugsnag.addAttribute("Var 3", "value 3", "Test Tab");
-
-			Bugsnag.removeAttribute("Var 3", "Test Tab");
-
-			log("Bugsnag tab data set");
-		}
-
-		private function notify(event:MouseEvent):void
-		{
-			log("Bugsnag notify");
-			Bugsnag.notify("Serious Error", "A serious error has occured", Severity.INFO, new Error().getStackTrace());
-		}
-
-		private function notifyError(event:MouseEvent):void
-		{
-			log("Bugsnag notify error");
-
-			var error:Error = new IOError("An IO error has occured");
-			Bugsnag.notifyError(error, Severity.WARNING);
-		}
-
-		private function catchError(event:MouseEvent):void
-		{
-			log("Bugsnag catch error");
-
-			gotoAndStop("hello");
-		}
-
-
-
-	}
+    import flash.text.TextFormat;
+    import flash.text.TextFormatAlign;
+
+    public class Main extends MovieClip
+    {
+        // TODO: Replace with your Bugsnag API keys
+	    // tehbroski account, iOS Tri and Android Tri projects
+        private const IOS_KEY:String = "b97bed88ae53ca2b0e4d44dd8a2afaa0";
+        private const ANDROID_KEY:String = "670220c8957e80cd12fcc44b47e3cf8e";
+
+        // dsberry test project
+        // ios - 4d168bfdac8b8d7b1f9d2178a3743761
+        // android - 112944f0dfe4d6e258ff28b7942d09b2
+
+        private var buttonFormat:TextFormat;
+        private var feedback:TextField;
+
+        public function Main()
+        {
+            super();
+
+            // support autoOrients
+            stage.align = StageAlign.TOP_LEFT;
+            stage.scaleMode = StageScaleMode.SHOW_ALL;
+
+            feedback = new TextField();
+            var format:TextFormat = new TextFormat();
+            format.font = "_sans";
+            format.size = 16;
+            format.color = 0x000000;
+            feedback.defaultTextFormat = format;
+            feedback.width = 400;
+            feedback.height = 260;
+            feedback.x = 10;
+            feedback.y = 170;
+            feedback.multiline = true;
+            feedback.wordWrap = true;
+            addChild(feedback);
+
+            createButtons();
+
+            // You MUST initialize Bugsnag after the ADDED_TO_STAGE event, otherwise it
+            // is possible to get a crash on iOS.
+            addEventListener(Event.ADDED_TO_STAGE, initialize);
+        }
+
+
+        private function createButtons():void
+        {
+            // Row
+            var tf:TextField = createButton("Set User Data");
+            tf.x = 170;
+            tf.y = 10;
+            tf.addEventListener(MouseEvent.MOUSE_DOWN, setUserData);
+            addChild(tf);
+
+            // Row
+            tf = createButton("Crash Native");
+            tf.x = 170;
+            tf.y = 50;
+            tf.addEventListener(MouseEvent.MOUSE_DOWN, crashNative);
+            addChild(tf);
+
+            tf = createButton("Set Tab Data");
+            tf.x = 330;
+            tf.y = 50;
+            tf.addEventListener(MouseEvent.MOUSE_DOWN, setTab);
+            addChild(tf);
+
+
+            // Row
+            tf = createButton("Notify");
+            tf.x = 10;
+            tf.y = 90;
+            tf.addEventListener(MouseEvent.MOUSE_DOWN, notify);
+            addChild(tf);
+
+            tf = createButton("Notify Error");
+            tf.x = 170;
+            tf.y = 90;
+            tf.addEventListener(MouseEvent.MOUSE_DOWN, notifyError);
+            addChild(tf);
+
+            tf = createButton("Catch Error");
+            tf.x = 330;
+            tf.y = 90;
+            tf.addEventListener(MouseEvent.MOUSE_DOWN, catchError);
+            addChild(tf);
+
+            tf = createButton("Read invalid file");
+            tf.x = 10;
+            tf.y = 130;
+            tf.addEventListener(MouseEvent.MOUSE_DOWN, readInvalidFile);
+            addChild(tf);
+
+            tf = createButton("Custom error");
+            tf.x = 170;
+            tf.y = 130;
+            tf.addEventListener(MouseEvent.MOUSE_DOWN, throwCustomError);
+            addChild(tf);
+
+        }
+
+        private function log(text:String, clear:Boolean = true):void
+        {
+            if (clear)
+            {
+                feedback.text = "";
+            }
+
+            feedback.text += text + "\n\r";
+        }
+
+        private function createButton(label:String):TextField
+        {
+            if (!buttonFormat)
+            {
+                buttonFormat = new TextFormat();
+                buttonFormat.font = "_sans";
+                buttonFormat.size = 14;
+                buttonFormat.bold = true;
+                buttonFormat.color = 0xFFFFFF;
+                buttonFormat.align = TextFormatAlign.CENTER;
+            }
+
+            var textField:TextField = new TextField();
+            textField.defaultTextFormat = buttonFormat;
+            textField.width = 140;
+            textField.height = 30;
+            textField.text = label;
+            textField.backgroundColor = 0xCC0000;
+            textField.background = true;
+            textField.selectable = false;
+            textField.multiline = false;
+            textField.wordWrap = false;
+            return textField;
+        }
+
+        private function initialize(event:Event):void
+        {
+	        var config:BugsnagConfig = new BugsnagConfig();
+	        config.iosKey = IOS_KEY;
+	        config.androidKey = ANDROID_KEY;
+	        config.autoDetectErrors = true;
+	        config.releaseStage = ReleaseStage.DEVELOPMENT;
+
+            Bugsnag.init(config);
+            loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, Bugsnag.handleUncaughtError);
+            Bugsnag.getStackTrace = function(error:*):String {
+	            if(error is Error)
+	            {
+		            return Error(error).getStackTrace();
+	            }
+	            return null;
+            };
+
+            log("Bugsnag keys have been initialized, hey");
+        }
+
+	    private function handleUncaughtError(event:UncaughtErrorEvent):void
+	    {
+		    trace("MY OWN HANDLER", event);
+		    event.preventDefault();
+		    event.stopImmediatePropagation();
+		    event.stopPropagation();
+
+		    trace( event.error, event.error is Error, event.error is ErrorEvent );
+
+		    if(event.error != null && event.error is Error)
+		    {
+			    trace("CALLING NOTIFY ERRROR");
+			    notifyError(event.error);
+		    }
+	    }
+
+        private function setUserData(event:MouseEvent):void
+        {
+            var id:int = Math.random() * 9999;
+            var name:String = "user_" + id;
+
+            Bugsnag.setUser(String(id), name);
+            log("Bugsnag.setUser(" + id + ", " + name + ");");
+        }
+
+        private function crashNative(event:MouseEvent):void
+        {
+            Bugsnag.crashNative();
+            log("Bugsnag.crashNative()");
+        }
+
+        private function setTab(event:MouseEvent):void
+        {
+            Bugsnag.addAttribute("Var 1", "value 1", "Test Tab");
+            Bugsnag.addAttribute("Var 2", "value 2", "Test Tab");
+            Bugsnag.addAttribute("Var 3", "value 3", "Test Tab");
+
+            Bugsnag.removeAttribute("Var 3", "Test Tab");
+
+            log("Bugsnag tab data set");
+        }
+
+        private function notify(event:MouseEvent):void
+        {
+            log("Bugsnag notify");
+            Bugsnag.notify("Serious Error", "A serious error has occured", Severity.INFO, new Error().getStackTrace());
+        }
+
+        private function notifyError(event:MouseEvent):void
+        {
+            log("Bugsnag notify error");
+
+            var error:Error = new IOError("An IO error has occured");
+            Bugsnag.notifyError(error, Severity.WARNING);
+        }
+
+        private function catchError(event:MouseEvent):void
+        {
+            log("Bugsnag catch error");
+
+            gotoAndStop("hello");
+        }
+
+        private function readInvalidFile(event:MouseEvent):void
+        {
+            log("Bugsnag read invalid file");
+
+	        var file:File = File.applicationDirectory.resolvePath( "random-file-name.png" );
+	        var fs:FileStream = new FileStream();
+	        fs.openAsync( file, FileMode.READ );
+	        fs.close();
+        }
+
+        private function throwCustomError(event:MouseEvent):void
+        {
+            log("Bugsnag custom error - throw \"Hello world\"");
+
+	        throw "Hello world";
+        }
+
+
+
+    }
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.automation.codec
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19787
Author:   jszeto@adobe.com
Date:     2011-01-17T23:30:59.383799Z

Log Message:
-----------
Mobile support for SoftKeyboard

Initial checkin.

Added support to Application to resize the application when the softKeyboard is shown and hidden.
Added support to Scroller to scroll the focused element into view.

QE notes: none
Doc notes: none
Bugs: none
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -192,6 +192,7 @@
             scroller = new Scroller();
             scroller.minViewportInset = 0;
             scroller.measuredSizeIncludesScrollBars = false;
+            scroller.ensureFocusedElementIsVisible = false;
             addChild(scroller);
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18527
Author:   clucier@adobe.com
Date:     2010-11-10T17:18:02.514279Z

Log Message:
-----------
Adding ExcludeClass metadata to avoid this utility layout showing up in design view.

QE notes: None
Doc notes: None
Bugs: SDK-28500
Reviewer: Carol
Tests run: Checkin
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/LabelAndIconLayout.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/LabelAndIconLayout.as
@@ -19,6 +19,8 @@
 import spark.core.IDisplayText;
 import spark.layouts.supportClasses.LayoutBase;
 import spark.layouts.supportClasses.LayoutElementHelper;
+
+[ExcludeClass]

 /**
  *  Helper layout to layout a label relative to a sibling element.


Stop RTE when focusManager is null

Stop RTE when focusManager is null

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -566,7 +566,7 @@
      */
     override public function drawFocus(isFocused:Boolean):void
     {
-        if (isFocused)
+        if (isFocused && focusManager)
         {
             // For some composite components, the focused object may not
             // be "this". If so, we don't want to draw the focus.


Transferred from the Adobe Open Source Subversion Repository

Revision: 18901
Author:   cframpto@adobe.com
Date:     2010-12-01T18:35:45.994592Z

Log Message:
-----------
Redo SDK-28672.  A nice side effect is that setStyle() is now supported in the DefaultGridItemRenderer and the GridItemRenderer.
Fix comment in UIComponent.

QE notes:
Doc notes:
Bugs: SDK-28672
Reviewer: Darrell, Hans
Tests run: cyclone
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as
+++ frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as
@@ -28,6 +28,7 @@

     import mx.core.DesignLayer;
     import mx.core.IFlexDisplayObject;
+    import mx.core.IFlexModuleFactory;
     import mx.core.IToolTip;
     import mx.core.mx_internal;
     import mx.events.FlexEvent;
@@ -76,6 +77,13 @@
      */
     private var inSetLayoutBoundsSize:Boolean = false;

+    /**
+     *  @private
+     *  Temporarily stores the values of styles specified with setStyle() until
+     *  moduleFactory is set.
+     */
+    private var deferredSetStyles:Object = null;
+
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -414,6 +422,31 @@
         dispatchChangeEvent("labelChanged");
     }

+    //----------------------------------
+    //  moduleFactory
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function set moduleFactory(factory:IFlexModuleFactory):void
+    {
+        super.moduleFactory = factory;
+
+        // Now that the module has been set, set any deferred styles.
+        if (deferredSetStyles)
+        {
+            for (var styleProp:String in deferredSetStyles)
+                StyleProtoChain.setStyle(this, styleProp, deferredSetStyles[styleProp]);
+
+            deferredSetStyles = null;
+        }
+    }
+
+    //----------------------------------
+    //  text
+    //----------------------------------
+
     /**
      *  @private
      *  Inherited version of this method calls validateNow().  We do not, since GridLayout will.  We're
@@ -428,6 +461,10 @@
         enableValidateNow = true;
     }

+    //----------------------------------
+    //  wordWrap
+    //----------------------------------
+
     /**
      *  @private
      *  If set, then set the wordWrapSet flag.  This is used to enable the updatePreferredSize()
@@ -448,6 +485,48 @@
     //
     //--------------------------------------------------------------------------

+    [Bindable(style="true")]
+    /**
+     *  @private
+     */
+    override public function getStyle(styleProp:String):*
+    {
+        // If a moduleFactory has not be set yet, first check for any deferred
+        // styles. If there are no deferred styles or the styleProp is not in
+        // the deferred styles, the look in the proto chain.
+        if (!moduleFactory)
+        {
+            if (deferredSetStyles && deferredSetStyles[styleProp] !== undefined)
+                return deferredSetStyles[styleProp];
+        }
+
+        return super.getStyle(styleProp);
+    }
+
+    /**
+     *  @copy mx.core.UIComponent#setStyle()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    override public function setStyle(styleProp:String, newValue:*):void
+    {
+        // If there is no module factory then defer the set
+        // style until a module factory is set.
+        if (moduleFactory)
+        {
+            StyleProtoChain.setStyle(this, styleProp, newValue);
+        }
+        else
+        {
+            if (!deferredSetStyles)
+                deferredSetStyles = new Object();
+            deferredSetStyles[styleProp] = newValue;
+        }
+    }
+
     /**
      *  @private
      */
@@ -1027,8 +1106,6 @@
     //
     //  IStyleClient Methods and Properties
     //  (source code from mx.controls.dataGridClassses.DataGridItemRenderer.as)
-    //  The original code in initProtoChain() has been modified at calls to
-    //  addStyleDeclarationToProtoChain().
     //--------------------------------------------------------------------------

     /**
@@ -1140,16 +1217,21 @@
         // Finally, we'll add the in-line styles
         // to the head of the proto chain.
         inheritingStyles = styleDeclaration ?
-            addStyleDeclarationToProtoChain(inheritChain, this) :     // modified original code here
+            styleDeclaration.addStyleToProtoChain(inheritChain, this) :
             inheritChain;

         nonInheritingStyles = styleDeclaration ?
-            addStyleDeclarationToProtoChain(nonInheritChain, this) :  // modified original code here
+            styleDeclaration.addStyleToProtoChain(nonInheritChain, this) :
             nonInheritChain;
     }
-
-    /**
-     *  @private
+
+    /**
+     *  @copy mx.core.UIComponent#clearStyle()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function clearStyle(styleProp:String):void
     {


Fixed wrong allocation method in rcRasterizeTriangles function.

--- as3_lib/src/recastnavigation/recast/rcRasterizeTriangles.as
+++ as3_lib/src/recastnavigation/recast/rcRasterizeTriangles.as
@@ -2,6 +2,7 @@

 	import recastnavigation.core.rn_internal;
 	import recastnavigation.core.utils.mallocInt32Vector;
+	import recastnavigation.core.utils.mallocInt8Vector;
 	import recastnavigation.core.utils.mallocNumberVector;
 	import recastnavigation.internal_api.CModule;
 	import recastnavigation.internal_api.internal_rcRasterizeTriangles;
@@ -17,7 +18,7 @@
 		var verts_ptr:int = mallocNumberVector(verts);
 		var nv:int = verts.length / 3;
 		var tris_ptr:int = mallocInt32Vector(tris);
-		var areas_ptr:int = mallocInt32Vector(areas);
+		var areas_ptr:int = mallocInt8Vector(areas);
 		var nt:int = tris.length / 3;

 		internal_rcRasterizeTriangles(ctx.ptr, verts_ptr, nv, tris_ptr, areas_ptr, nt, solid.ptr, flagMergeThr);


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

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

 package mx.olap
 {


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

--- frameworks/projects/advancedgrids/src/mx/olap/IOLAPTuple.as
+++ frameworks/projects/advancedgrids/src/mx/olap/IOLAPTuple.as
@@ -0,0 +1,77 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.olap
+{
+
+import mx.collections.IList;
+
+/**
+ *  The IOLAPTuple interface represents a tuple.
+ *  You can use tuples to specify the elements
+ *  on a query axis as part of an OLAPSet instance.
+ *
+ *  @see mx.olap.OLAPSet
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IOLAPTuple
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Adds a new member to the tuple.
+     *
+     *  @param element The member to add.
+     *  If member is a dimension or hierarchy, its default member
+     *  is added. If member is an instance of IOLAPMember,
+     *  it is added directly.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function addMember(member:IOLAPElement):void
+
+    /**
+     *  Adds a list of members to the tuple.
+     *  This method can be called when many members need to be added to the tuple.
+     *
+     *  @param value The members to add, as a list of IOLAPMember instances.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function addMembers(value:IList):void;
+
+    /**
+     * The user added members of this tuple, as a list of IOLAPMember instances.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get explicitMembers():IList;
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.styles
 {


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

--- frameworks/projects/mx/src/mx/skins/halo/PopUpButtonSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/PopUpButtonSkin.as
@@ -0,0 +1,517 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.skins.halo
+{
+
+import flash.display.DisplayObject;
+import flash.display.GradientType;
+import mx.core.IFlexDisplayObject;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+import mx.styles.StyleManager;
+import mx.utils.ColorUtil;
+import mx.core.IProgrammaticSkin;
+
+/**
+ *  The skin for all the states of a PopUpButton.
+ */
+public class PopUpButtonSkin extends UIComponent implements IProgrammaticSkin
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+    private static var cache:Object = {};
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+	 *  Several colors used for drawing are calculated from the base colors
+	 *  of the component (themeColor, borderColor and fillColors).
+	 *  Since these calculations can be a bit expensive,
+	 *  we calculate once per color set and cache the results.
+     */
+    private static function calcDerivedStyles(themeColor:uint,
+                                              fillColor0:uint,
+                                              fillColor1:uint):Object
+    {
+        var key:String = HaloColors.getCacheKey(themeColor,
+												fillColor0, fillColor1);
+
+        if (!cache[key])
+        {
+            var o:Object = cache[key] = {};
+
+            // Cross-component styles.
+            HaloColors.addHaloColors(o, themeColor, fillColor0, fillColor1);
+        }
+
+        return cache[key];
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function PopUpButtonSkin()
+    {
+        super();
+
+		mouseEnabled = false;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+
+	//----------------------------------
+	//  measuredWidth
+	//----------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function get measuredWidth():Number
+	{
+		return DEFAULT_MEASURED_MIN_WIDTH;
+	}
+
+	//----------------------------------
+	//  measuredHeight
+	//----------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function get measuredHeight():Number
+	{
+		return DEFAULT_MEASURED_MIN_HEIGHT;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+	override protected function updateDisplayList(w:Number, h:Number):void
+    {
+		super.updateDisplayList(w, h);
+
+        // User-defined styles.
+        var arrowColor:uint = getStyle("iconColor");
+        var borderColor:uint = getStyle("borderColor");
+        var cornerRadius:Number = getStyle("cornerRadius");
+		var fillAlphas:Array = getStyle("fillAlphas");
+		var fillColors:Array = getStyle("fillColors");
+        StyleManager.getColorNames(fillColors);
+		var highlightAlphas:Array = getStyle("highlightAlphas");
+        var themeColor:uint = getStyle("themeColor");
+
+        // Derivative styles.
+        var derStyles:Object = calcDerivedStyles(themeColor, fillColors[0],
+                                                 fillColors[1]);
+
+        var borderColorDrk1:Number =
+			ColorUtil.adjustBrightness2(borderColor, -50);
+
+		var themeColorDrk1:Number =
+			ColorUtil.adjustBrightness2(themeColor, -25);
+
+        var popUpIcon:IFlexDisplayObject =
+			IFlexDisplayObject(getChildByName("popUpIcon"));
+
+        if (!popUpIcon)
+        {
+            var popUpIconClass:Class = Class(getStyle("popUpIcon"));
+            popUpIcon = new popUpIconClass();
+            DisplayObject(popUpIcon).name = "popUpIcon";
+            addChild(DisplayObject(popUpIcon));
+            DisplayObject(popUpIcon).visible = true;
+        }
+
+        var arrowButtonWidth:Number = Math.max(getStyle("arrowButtonWidth"),
+											   popUpIcon.width + 3 + 1);
+
+		var dividerPosX:Number = w - arrowButtonWidth;
+
+		popUpIcon.move(w - (arrowButtonWidth + popUpIcon.width) / 2,
+					   (h - popUpIcon.height) / 2);
+
+        var cr:Number = Math.max(0, cornerRadius);
+        var cr1:Number = Math.max(0, cornerRadius - 1);
+
+		var upFillColors:Array;
+		var upFillAlphas:Array;
+
+		var overFillColors:Array;
+		var overFillAlphas:Array;
+
+		graphics.clear();
+
+        switch (name)
+        {
+            case "upSkin":
+            {
+   				upFillColors = [ fillColors[0], fillColors[1] ];
+   				upFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// button border/edge
+				drawRoundRect(
+					0, 0, w, h, cr,
+					[ borderColor, borderColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: cornerRadius - 1 });
+
+				drawRoundRect(
+					dividerPosX, 1, 1, h - 2, 0,
+					[ borderColor, borderColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h));
+
+				// button fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, cr1,
+					upFillColors, upFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: h - 2, r: 0 });
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h - 2) / 2,
+					{ tl: cr1, tr: cr1, bl: 0, br: 0 },
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: (h - 2) / 2, r: 0 });
+
+				// side bevel highlight edges
+				drawRoundRect(
+					dividerPosX - 1, 1, 1, h - 2, 0,
+					borderColor, 0);
+				drawRoundRect(
+					dividerPosX + 1, 1, 1, h - 2, 0,
+					borderColor, 0);
+
+                break;
+            }
+
+            case "overSkin": // for hover on the main button (left) side
+            {
+   				upFillColors = [ fillColors[0], fillColors[1] ];
+				upFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				if (fillColors.length > 2)
+					overFillColors = [ fillColors[2], fillColors[3] ];
+				else
+					overFillColors = [ fillColors[0], fillColors[1] ];
+
+				if (fillAlphas.length > 2)
+					overFillAlphas = [ fillAlphas[2], fillAlphas[3] ];
+  				else
+					overFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// button border/edge
+				drawRoundRect(
+					0, 0, w, h, cr,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: cornerRadius - 1 });
+
+				drawRoundRect(
+					dividerPosX, 1, 1, h - 2, 0,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h));
+				// button fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, cr1,
+					upFillColors, upFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: h - 2,
+					  r: getRadius(cr1, true) });
+
+				// left/main button fill
+				drawRoundRect(
+					1, 1, w - arrowButtonWidth - 2, h - 2,
+					getRadius(cr1, true),
+					overFillColors, overFillAlphas,
+					verticalGradientMatrix(1, 1, dividerPosX - 2, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h -2) / 2,
+					{ tl: cr1, tr: cr1, bl: 0, br: 0 },
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: (h - 2) / 2, r: 0 });
+
+				// side bevel highlight edges
+				drawRoundRect(
+					dividerPosX - 1, 1, 1, h - 2, 0,
+					themeColor, 0.35);
+
+                break;
+            }
+
+            case "popUpOverSkin": // for hover on the arrow-button (right) side
+            {
+   				upFillColors = [ fillColors[0], fillColors[1] ];
+				upFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				if (fillColors.length > 2)
+					overFillColors = [ fillColors[2], fillColors[3] ];
+				else
+					overFillColors = [ fillColors[0], fillColors[1] ];
+
+				if (fillAlphas.length > 2)
+					overFillAlphas = [ fillAlphas[2], fillAlphas[3] ];
+  				else
+					overFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// button border/edge
+				drawRoundRect(
+					0, 0, w, h, cr,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: cornerRadius - 1 });
+
+				drawRoundRect(
+					dividerPosX, 1, 1, h - 2, 0,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h));
+
+				// button fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, getRadius(cr1, true),
+					upFillColors, upFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: arrowButtonWidth - 1, h: h - 2,
+					  r: getRadius(cr1, true) });
+
+				// right button fill
+				drawRoundRect(
+					dividerPosX + 1, 1, arrowButtonWidth - 2, h - 2,
+					getRadius(cr1, false),
+					overFillColors, overFillAlphas,
+					verticalGradientMatrix(dividerPosX, 0,
+										   arrowButtonWidth - 1, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h -2) / 2,
+					{ tl: cr1, tr: cr1, bl: 0, br: 0 },
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: (h - 2) / 2, r: 0 });
+
+				// side bevel highlight edges
+				drawRoundRect(
+					dividerPosX + 1, 1, 1, h - 2, 0,
+					themeColor, 0.35);
+
+                break;
+            }
+
+            case "downSkin": // for press on the main button (left) side
+            {
+   				upFillColors = [ fillColors[0], fillColors[1] ];
+				upFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// button border/ddge
+				drawRoundRect(
+					0, 0, w, h, cr,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h ),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: cornerRadius - 1 });
+
+				drawRoundRect(
+					dividerPosX, 1, 1, h - 2, 0,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h));
+
+				// button fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, cr1,
+					upFillColors, upFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: h - 2, r: 0 });
+
+				// left/main button fill
+				drawRoundRect(
+					1, 1, w - arrowButtonWidth - 2, h - 2,
+					getRadius(cr1, true),
+					[ derStyles.fillColorPress1, derStyles.fillColorPress2], 1,
+					verticalGradientMatrix(1, 1, dividerPosX - 2, h - 2));
+
+				// top highlight (checked, works)
+				drawRoundRect(
+					1, 1, w - 2, (h -2) / 2,
+					{ tl: cr1, tr: cr1, bl: 0, br: 0 },
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: (h -2) / 2, r: 0 });
+
+				// side bevel highlight edges
+				drawRoundRect(
+					dividerPosX - 1, 1, 1, h - 2, 0,
+					themeColorDrk1, 0.3);
+				drawRoundRect(
+					dividerPosX + 1, 1, 1, h - 2, 0,
+					borderColor, 0);
+
+                break;
+            }
+
+            case "popUpDownSkin": // for press on the arrow-button (right) side
+            {
+   				upFillColors = [ fillColors[0], fillColors[1] ];
+				upFillAlphas = [ fillAlphas[0], fillAlphas[1] ];
+
+				// button border/edge
+				drawRoundRect(
+					0, 0, w, h, cr,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h ),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: cornerRadius - 1 });
+
+				drawRoundRect(
+					dividerPosX, 1, 1, h - 2, 0,
+					[ themeColor, themeColorDrk1 ], 1,
+					verticalGradientMatrix(0, 0, w, h));
+
+				// button fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, cr1,
+					upFillColors, upFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: h - 2, r: 0 });
+
+			    // right button fill
+				drawRoundRect(
+					dividerPosX + 1, 1, arrowButtonWidth - 2, h - 2,
+					getRadius(cr1, false),
+					[ derStyles.fillColorPress1,
+					  derStyles.fillColorPress2], 1,
+					verticalGradientMatrix(dividerPosX, 0,
+										   arrowButtonWidth - 1, h - 2));
+
+				// top highlight
+				drawRoundRect(
+					1, 1, w - 2, (h -2) / 2,
+					{ tl: cr1, tr: cr1, bl: 0, br: 0 },
+					[ 0xFFFFFF, 0xFFFFFF ], highlightAlphas,
+					verticalGradientMatrix(1, 1, w - 2, (h - 2) / 2),
+					GradientType.LINEAR, null,
+					{ x: dividerPosX, y: 1, w: 1, h: (h - 2) / 2, r: 0 });
+
+				// side bevel highlight edges
+				drawRoundRect(
+					dividerPosX - 1, 1, 1, h - 2, 0,
+					borderColor, 0);
+				drawRoundRect(
+					dividerPosX + 1, 1, 1, h - 2, 0,
+					themeColorDrk1, 0.3);
+
+                break;
+            }
+
+            case "disabledSkin":
+            {
+                arrowColor = getStyle("disabledIconColor");
+
+   				var disFillColors:Array = [ fillColors[0], fillColors[1] ];
+
+				var disFillAlphas:Array =
+					[ Math.max(0, fillAlphas[0] - 0.15),
+					  Math.max(0, fillAlphas[1] - 0.15) ];
+
+				// outer edge
+				drawRoundRect(
+					0, 0, w, h, cornerRadius,
+					[ borderColor, borderColorDrk1 ], 0.5,
+					verticalGradientMatrix(0, 0, w, h ),
+					GradientType.LINEAR, null,
+					{ x: 1, y: 1, w: w - 2, h: h - 2, r: cornerRadius - 1 });
+
+				drawRoundRect(
+					dividerPosX, 1, 1, h - 2, 0,
+					[ borderColor, borderColorDrk1 ], 0.5);
+
+				// button fill
+				drawRoundRect(
+					1, 1, w - 2, h - 2, cr1,
+					disFillColors, disFillAlphas,
+					verticalGradientMatrix(1, 1, w - 2, h - 2),
+					null, null,
+					{ x: dividerPosX, y: 1, w: 1, h: h - 2, r: 0 });
+
+                break;
+            }
+        }
+
+        if (popUpIcon is PopUpIcon)
+        	PopUpIcon(popUpIcon).mx_internal::arrowColor = arrowColor;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private function getRadius(r:Number, left:Boolean):Object
+    {
+		return left ?
+			   { br: 0, bl: r, tr: 0, tl: r } :
+			   { br: r, bl: 0, tr: r, tl: 0 };
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

UITextFormat.useTLF -> UITextFormat.useFTE

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

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

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

--- frameworks/projects/spark/src/mx/controls/MXFTETextInput.as
+++ frameworks/projects/spark/src/mx/controls/MXFTETextInput.as
@@ -42,11 +42,11 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-[Event(name="dataChange", type="mx.events.")]
+[Event(name="dataChange", type="mx.events.FlexEvent")]

 /**
- *  TLFTextInput is a UIComponent which is used to support TLF text
+ *  MXFTETextInput is a UIComponent which is used to support TLF text
  *  in Halo controls and data grid renderers.  It can be used in place
  *  of a Halo TextInput control.
  *
@@ -55,7 +55,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class TLFTextInput extends TextInput implements ITextInput
+public class MXFTETextInput extends TextInput implements ITextInput
 {
     include "../../spark/core/Version.as";

@@ -68,7 +68,7 @@
     /**
      *  Constructor.
      */
-    public function TLFTextInput()
+    public function MXFTETextInput()
     {
         super();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4020
Author:   rfrishbe@adobe.com
Date:     2008-11-05T00:43:18.692973Z

Log Message:
-----------
When setItemAt() is called on a datagroup's dataProvider, we were removing the old item and adding the new one immediately.  However, when someone tries to do a swap with: getItem1, getItem2, setItemAt(item1, index2), setItemAt(item2, index1), we are temporarily in an inconsistent state.  Since this worked in Halo, to get it to work in Gumbo, we just delay any work until commitProperties().  This way, we are in a consistent state.  It could be a performance hit, but setItemAt() probably isn't used very often.

We need to go back and look at setItemAt and see what we should do with these cases where an item appears twice in the list and whether the item is a visual item or just a data item.

Also, some random ASDoc and other fixes.

QE Notes: Exclude failing tests.  File a bug for these tests.
Doc Notes: None
Bugs: SDK-16956, SDK-17909
Reviewer: Glenn

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

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -692,7 +692,16 @@
      */
     protected function adjustAfterReplace(items:Array, location:int):void
     {
-        var length:int = items.length;
+        // TODO (rfrishbe): we don't handle this case gracefully
+        // The reason is so swapping items works like it did in Halo.
+        // I can grab item1, item2, setItemAt(item1, item2index), and
+        // setItemAt(item2, item1index).  For a temporary bit, we are
+        // in a bad state, so to handle this, let's just redo everything.
+        // see SDK-16956.
+        dataProviderChanged = true;
+        invalidateProperties();
+
+        /*var length:int = items.length;
         for (var i:int = length-1; i >= 0; i--)
         {
             itemRemoved(items[i].oldValue, location + i);
@@ -701,7 +710,7 @@
         for (i = length-1; i >= 0; i--)
         {
             itemAdded(items[i].newValue, location);
-        }
+        }*/
     }

     //--------------------------------------------------------------------------
@@ -757,7 +766,7 @@
     }

     /**
-     *  @inheritDoc
+     *  @private
      */
     override public function addChild(child:DisplayObject):DisplayObject
     {


fix MouseManager.popCursor() to avoid null pointer exception when the cursor stack is empty

--- src/aerys/minko/type/MouseManager.as
+++ src/aerys/minko/type/MouseManager.as
@@ -170,7 +170,8 @@

 		public function popCursor() : MouseManager
 		{
-			Mouse.cursor = _cursors.pop();
+            if (_cursors.length)
+    			Mouse.cursor = _cursors.pop();

 			return this;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 11163
Author:   dloverin@adobe.com
Date:     2009-10-26T20:35:33.260693Z

Log Message:
-----------
Changes to turn on the per-module style feature by default.

The feature can be turned off by compiling with -isolateStyles=false.

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex, Paul
Tests run: checkintests, all mustella
Is noteworthy for integration: Yes.

Summary of changes:

frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as
Propagate the module factory in setFlexContent.

frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
Implement IFlexModule

frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as
Move getting style declaration from the constructor to the override of the module factory setter.

frameworks/projects/framework/src/mx/controls/Alert.as
Set moduleFactory to parent if parent is an IFlexModuleFactory.

frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/controls/menuClasses/MenuBarItem.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/controls/RadioButton.as
Move getting style declaration from the constructor to the override of the module factory setter.

frameworks/projects/framework/src/mx/controls/SWFLoader.as
Handle the “get parent module factory” request from an embedded swf.

frameworks/projects/framework/src/mx/core/Container.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/framework/src/mx/core/UIComponent.as
Defer setting styles until a module factory is set.

frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
Set the module factory of an added child.

frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as
Set the module factory of the tooltip to be the same as the target.

frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
Rename parameter based on PARB feedback.

frameworks/projects/framework/src/mx/styles/IStyleModule.as
Add setStyleDeclarations per spec.

frameworks/projects/framework/src/mx/styles/StyleManager.as
Deprecate old static StyleManager API.

frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as
Use IStyleModule.setStyleDeclarations.

frameworks/projects/framework/src/mx/styles/StyleProtoChain.as
A fix to get the correct style manager and pass styleManager in CSSStyleDeclaration.

frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as
Pass styleManager in CSSStyleDeclaration.

frameworks/projects/spark/src/spark/components/Group.as
Propagate moduleFactory in elementAdded().

modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java
Rename –create-style-manager option to –isloateStyles. The option has been changed from hidden to advanced.

modules/compiler/src/java/flex2/compiler/css/StyleDef.vm
Fix bug to not add a default factory that is not needed.

modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDef.vm
Initialize styles in a module factory setter override.

modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm
Changed emitComponentInitializers_1 to not emit style related code if the document implements IFlexModule. Created emitComponentStyleInitializers to emit those styles.

modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java
Generate code to match ClassDef.vm and ClassDefLib.vm changes.

modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java
Add IFlexModuleFactory to standard imports.

modules/compiler/src/java/flex2/configuration_en.properties
Rename –create-style-manager option to –isloateStyles.

modules/compiler/src/java/flex2/tools/PreLink.java
Rename –create-style-manager option to –isloateStyles.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuBarItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleModule.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.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/modules/compiler/src/java/flex2/compiler/common/CompilerConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>

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

--- frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
@@ -18,7 +18,9 @@
 import flash.events.IEventDispatcher;

 import mx.core.IFlexDisplayObject;
+import mx.core.IFlexModule;
 import mx.core.IFlexModuleFactory;
+import mx.core.IFontContextComponent;
 import mx.core.IInvalidating;
 import mx.core.IUIComponent;
 import mx.core.UIComponent;
@@ -126,6 +128,16 @@
 			IUIComponent(child).document = systemManager.document;
 		}

+        // Set the moduleFactory to the child, but don't overwrite an existing moduleFactory.
+        if (child is IFlexModule && IFlexModule(child).moduleFactory == null)
+            IFlexModule(child).moduleFactory = systemManager;
+
+        // Set the font context in non-UIComponent children.
+        // UIComponent children use moduleFactory.
+        if (child is IFontContextComponent && !child is UIComponent &&
+            IFontContextComponent(child).fontContext == null)
+            IFontContextComponent(child).fontContext = systemManager;
+
 		// Set the nestLevel of the child to be one greater
 		// than the nestLevel of this component.
 		// The nestLevel setter will recursively set it on any


Transferred from the Adobe Open Source Subversion Repository

Revision: 19148
Author:   cframpto@adobe.com
Date:     2010-12-08T17:54:50.264127Z

Log Message:
-----------
Expand doc on icon style to include list of valid icon objects which does not include BitmapImage.

QE notes:
Doc notes:
Bugs: SDK-28343
Reviewer: Corey
Tests run: comment change - code compiles
Is noteworthy for integration:

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
@@ -77,9 +77,20 @@

 /**
  *  Class or instance to use as the default icon.
- *
+ *  The icon can render from various graphical sources, including the following:
+ *

+ *
A Bitmap or BitmapData instance.

+ *
A class representing a subclass of DisplayObject. The BitmapFill
+ *       instantiates the class and creates a bitmap rendering of it.

+ *
An instance of a DisplayObject. The BitmapFill copies it into a
+ *       Bitmap for filling.

+ *
The name of an external image file.

+ *

+ *
  *  @default null
- *
+ *
+ *  @see spark.primitives.BitmapImage.source
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 2.5


Transferred from the Adobe Open Source Subversion Repository

Revision: 12078
Author:   klin@adobe.com
Date:     2009-11-21T08:14:46.648391Z

Log Message:
-----------
Fix for change events in Slider and ScrollBar. They now dispatch change events as before, whenever the user alters the value. In addition, changeStart and changeEnd events will be dispatched at the start and end of a user interaction or animation.

TrackBase.as - Added metadata for changeStart/End events. Dispatch change, changeStart/End events when appropriate.

Slider.as - Dispatch change, changeStart/End events when appropriate.

ScrollBar.as - Dispatch the appropriate events. Note that changeStart/End will not dispatch when shift-clicking on a non-animating ScrollBar. Renamed animatingSinglePage to animatingOnce to better reflect its function. Refactored some method calls to the new private stopAnimation(), which is more consistent with Slider. Refactored the button handlers to make stepping more readable. Added a setValue call in animationEndHandler where we were ending up off the snapInterval when shift-clicking.

Updated FlexEvent, ScrollBarTestScript and VideoPlayer to handle the new events.

QE notes: Update Slider and ScrollBar tests
Doc notes: No
Bugs: SDK-24264
Reviewer: Ryan
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/ScrollBarTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -218,35 +218,35 @@
     //
     //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var dataFormatter:NumberFormatter;

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var animator:Animation = null;

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var dataTipInitialPosition:Point;

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var dataTipInstance:IDataRenderer;

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var slideToValue:Number;
-
-	/**
-	 *  @private
-	 */
-	private var isKeyDown:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var isKeyDown:Boolean = false;

     /**
      *  @private
@@ -294,9 +294,9 @@
     //  dataTipformatFunction
     //---------------------------------

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     private var _dataTipFormatFunction:Function;

     /**
@@ -333,9 +333,9 @@
         return _dataTipFormatFunction;
     }

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     public function set dataTipFormatFunction(value:Function):void
     {
         _dataTipFormatFunction = value;
@@ -492,7 +492,7 @@
         // Don't draw the error skin
     }

-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
     //
     //  Methods
     //
@@ -547,39 +547,41 @@
      */
     private function animationUpdateHandler(animation:Animation):void
     {
-		// FIXME (klin): Should the animation be setting the value
-		// as it goes like ScrollBar does? Should this behavior
-		// depend on liveDraggin?
+        // FIXME (klin): Should the animation be setting the value
+        // as it goes like ScrollBar does? Should this behavior
+        // depend on liveDragging?
         pendingValue = animation.currentValue["value"];
     }

     /**
      *  @private
      *  Handles end event from the Animation that runs the animated slide.
-     *  We dispatch the "change" event at this time, after the animation
+     *  We dispatch the "changeEnd" event at this time, after the animation
      *  is done since each animation occurs after a user interaction.
      */
     private function animationEndHandler(animation:Animation):void
     {
         setValue(slideToValue);
-
+
         dispatchEvent(new Event(Event.CHANGE));
-    }
-
-	/**
-	 *  @private
-	 *  Stops a running animation prematurely and sets the value
-	 *  of the slider to the current pendingValue. We also dispatch
-	 *  a "change" event since the user has started another interaction.
-	 */
-	private function stopAnimation():void
-	{
-		animator.stop();
-
-		setValue(nearestValidValue(pendingValue, snapInterval));
-
-		dispatchEvent(new Event(Event.CHANGE));
-	}
+        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
+    }
+
+    /**
+     *  @private
+     *  Stops a running animation prematurely and sets the value
+     *  of the slider to the current pendingValue. We also dispatch
+     *  a "changeEnd" event since the user has started another interaction.
+     */
+    private function stopAnimation():void
+    {
+        animator.stop();
+
+        setValue(nearestValidValue(pendingValue, snapInterval));
+
+        dispatchEvent(new Event(Event.CHANGE));
+        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
+    }

     //--------------------------------------------------------------------------
     //
@@ -592,32 +594,32 @@
      */
     override protected function thumb_mouseDownHandler(event:MouseEvent):void
     {
-		// finish previous animation
-		if (animator && animator.isPlaying)
-			stopAnimation();
-
+        // finish previous animation
+        if (animator && animator.isPlaying)
+            stopAnimation();
+
         super.thumb_mouseDownHandler(event);
         clickOffset = thumb.globalToLocal(new Point(event.stageX, event.stageY));
-
+
         // Popup a dataTip only if we have a SkinPart and the boolean flag is true
         if (dataTip && showDataTip && enabled)
         {
             dataTipInstance = IDataRenderer(createDynamicPartInstance("dataTip"));
-
-			dataTipInstance.data = formatDataTipText(
-				nearestValidValue(pendingValue, snapInterval));
-
-			var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
-
-			// Allow styles to be inherited from Slider.
-			if (tipAsUIComponent)
-			{
-				tipAsUIComponent.owner = this;
-				tipAsUIComponent.isPopUp = true;
-			}
-
-			systemManager.toolTipChildren.addChild(DisplayObject(dataTipInstance));
-
+
+            dataTipInstance.data = formatDataTipText(
+                nearestValidValue(pendingValue, snapInterval));
+
+            var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
+
+            // Allow styles to be inherited from Slider.
+            if (tipAsUIComponent)
+            {
+                tipAsUIComponent.owner = this;
+                tipAsUIComponent.isPopUp = true;
+            }
+
+            systemManager.toolTipChildren.addChild(DisplayObject(dataTipInstance));
+
             // Force the dataTip to render so that we have the correct size since
             // updateDataTip might need the size
             if (tipAsUIComponent)
@@ -646,9 +648,14 @@
         {
             dispatchEvent(new TrackBaseEvent(TrackBaseEvent.THUMB_DRAG));
             if (getStyle("liveDragging") === true)
+            {
                 setValue(newValue);
+                dispatchEvent(new Event(Event.CHANGE));
+            }
             else
+            {
                 pendingValue = newValue;
+            }
         }

         if (dataTipInstance && showDataTip)
@@ -676,7 +683,10 @@
     override protected function system_mouseUpHandler(event:Event):void
     {
         if ((getStyle("liveDragging") === false) && (value != pendingValue))
+        {
             setValue(pendingValue);
+            dispatchEvent(new Event(Event.CHANGE));
+        }

         if (dataTipInstance)
         {
@@ -694,9 +704,9 @@
      *  decreases the value by stepSize. The opposite for
      *  Right/Up arrows. The Home and End keys set the value
      *  to the min and max respectively.
-	 *
-	 *  We dispatch changing events when the keystroke
-	 *  may both repeat and alter the value.
+     *
+     *  We dispatch changing events when the keystroke
+     *  may both repeat and alter the value.
      */
     override protected function keyDownHandler(event:KeyboardEvent):void
     {
@@ -706,8 +716,8 @@
             return;

         if (animator && animator.isPlaying)
-			stopAnimation();
-
+            stopAnimation();
+
         // FIXME (hmuller): Provide a way to easily override the keyboard
         // behavior. This means having a callback in the subclasses
         // that tell the superclass all the positions in an array
@@ -721,17 +731,18 @@
             case Keyboard.DOWN:
             case Keyboard.LEFT:
             {
-				newValue = nearestValidValue(pendingValue - stepSize, snapInterval);
-
-				if (prevValue != newValue)
-				{
-					if (!isKeyDown)
-					{
-						dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
-						isKeyDown = true;
-					}
-					setValue(newValue);
-				}
+                newValue = nearestValidValue(pendingValue - stepSize, snapInterval);
+
+                if (prevValue != newValue)
+                {
+                    if (!isKeyDown)
+                    {
+                        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
+                        isKeyDown = true;
+                    }
+                    setValue(newValue);
+                    dispatchEvent(new Event(Event.CHANGE));
+                }
                 event.preventDefault();
                 break;
             }
@@ -739,17 +750,18 @@
             case Keyboard.UP:
             case Keyboard.RIGHT:
             {
-				newValue = nearestValidValue(pendingValue + stepSize, snapInterval);
-
-				if (prevValue != newValue)
-				{
-					if (!isKeyDown)
-					{
-						dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
-						isKeyDown = true;
-					}
-                	setValue(newValue);
-				}
+                newValue = nearestValidValue(pendingValue + stepSize, snapInterval);
+
+                if (prevValue != newValue)
+                {
+                    if (!isKeyDown)
+                    {
+                        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
+                        isKeyDown = true;
+                    }
+                    setValue(newValue);
+                    dispatchEvent(new Event(Event.CHANGE));
+                }
                 event.preventDefault();
                 break;
             }
@@ -757,8 +769,8 @@
             case Keyboard.HOME:
             {
                 value = minimum;
-				if (value != prevValue)
-					dispatchEvent(new Event(Event.CHANGE));
+                if (value != prevValue)
+                    dispatchEvent(new Event(Event.CHANGE));
                 event.preventDefault();
                 break;
             }
@@ -766,40 +778,40 @@
             case Keyboard.END:
             {
                 value = maximum;
-				if (value != prevValue)
-					dispatchEvent(new Event(Event.CHANGE));
+                if (value != prevValue)
+                    dispatchEvent(new Event(Event.CHANGE));
                 event.preventDefault();
                 break;
             }
         }
     }
-
-	/**
-	 *  @private
-	 *  Handle keyboard release events. Allows us to send out exactly
-	 *  one change event per user gesture.
-	 */
-	override protected function keyUpHandler(event:KeyboardEvent) : void
-	{
-		switch (event.keyCode)
-		{
-			case Keyboard.DOWN:
-			case Keyboard.LEFT:
-			case Keyboard.UP:
-			case Keyboard.RIGHT:
-			{
-				if (isKeyDown)
-				{
-					// Dispatch "change" event only after a repeat occurs.
-					dispatchEvent(new Event(Event.CHANGE));
-					isKeyDown = false;
-				}
-				event.preventDefault();
-				break;
-			}
-		}
-	}
-
+
+    /**
+     *  @private
+     *  Handle keyboard release events. Allows us to send out changeEnd
+     *  event.
+     */
+    override protected function keyUpHandler(event:KeyboardEvent) : void
+    {
+        switch (event.keyCode)
+        {
+            case Keyboard.DOWN:
+            case Keyboard.LEFT:
+            case Keyboard.UP:
+            case Keyboard.RIGHT:
+            {
+                if (isKeyDown)
+                {
+                    // Dispatch "change" event only after a repeat occurs.
+                    dispatchEvent(new FlexEvent(FlexEvent.CHANGE_END));
+                    isKeyDown = false;
+                }
+                event.preventDefault();
+                break;
+            }
+        }
+    }
+
     /**
      *  @private
      *  Handle mouse-down events for the slider track. We
@@ -837,11 +849,11 @@
                     // FIXME (chaase): hard-coding easer for now - how to style it?
                     animator.easer = new Sine(0);
                 }
-
-				// Finish any current animation before we start the next one.
-				if (animator.isPlaying)
-					stopAnimation();
-
+
+                // Finish any current animation before we start the next one.
+                if (animator.isPlaying)
+                    stopAnimation();
+
                 // holds the final value to be set when animation ends
                 slideToValue = newValue;
                 animator.duration = slideDuration *
@@ -849,7 +861,7 @@
                 animator.motionPaths = new <MotionPath>[
                     new SimpleMotionPath("value", pendingValue, slideToValue)];

-                dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
+                dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
                 animator.play();
             }
             else


fix alpha mask shader

fix alpha mask shader

--- Source/Stage3D/Away3D/Libraries/Away3D/src/away3d/materials/methods/AlphaMaskMethod.as
+++ Source/Stage3D/Away3D/Libraries/Away3D/src/away3d/materials/methods/AlphaMaskMethod.as
@@ -89,7 +89,7 @@
 			vo.texturesIndex = textureReg.index;

 			return getTex2DSampleCode(vo, temp, textureReg, _texture, uvReg) +
-				"mul " + targetReg + ", " + targetReg + ", " + temp + ".x\n";
+				"mul " + targetReg + ".w" + ", " + targetReg + ".w" + ", " + temp + ".x\n";
 		}
 	}
 }


Add missing type.

Add missing type.

--- src/flash/tandem/core/Application.as
+++ src/flash/tandem/core/Application.as
@@ -75,7 +75,7 @@
     private const DEFAULT_USER_ID : String = "72389028@N00"
     private const DEFAULT_MINIMUM_ZOOM : Number = 0.25//0.5
     private const DEFAULT_MAXIMUM_ZOOM : Number = 180
-    private const NUM_FARMS = 10
+    private const NUM_FARMS:int = 10

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