uncommented & fixed code that was dependent on AlertTextBox

Change-Id: I0445d76d1b12aabdff15c8e510625d13c25fcc21

--- WeaveClient/src/weave/SearchEngineUtils.as
+++ WeaveClient/src/weave/SearchEngineUtils.as
@@ -116,60 +116,60 @@

 		private static function handleSearchQueryContextMenuItemSelect(event:ContextMenuEvent):void
 		{
-//			var probeText:String = ProbeTextUtils.getProbeText(_localProbeKeySet, null);
-//			if (probeText == null)
-//				return;
-//			// get first line of text only
-//			var query:String = probeText.split('\n')[0];
-//			for each(var c:Object in _searchQueryContextMenuItems)
-//			{
-//				var currentContextMenuItem:ContextMenuItem = (c.contextMenu as ContextMenuItem);
-//				if(currentContextMenuItem  == event.currentTarget)
-//				{
-//					if(currentContextMenuItem.enabled)
-//					{
-//						var combobox:CustomComboBox = new CustomComboBox(); //ComboBox to hold the service names
-//						var urlAlert:AlertTextBox = AlertTextBox.show("Custom URL",null);
-//						var hbox:HBox = new HBox();
-//						var label:Label = new Label();
-//						var detailsButton:Button = new Button();
-//
-//						detailsButton.toggle = true;
-//						detailsButton.label = "Show Details";
-//						detailsButton.toolTip = "Click to display the URL used for this service"
-//						urlAlert.alertVBox.removeChild(urlAlert.textBox);
-//						detailsButton.addEventListener(MouseEvent.CLICK, function (e:MouseEvent):void {
-//							if(detailsButton.selected)
-//								urlAlert.alertVBox.addChildAt(urlAlert.textBox,2);
-//							else
-//								urlAlert.alertVBox.removeChild(urlAlert.textBox);
-//						});
-//
-//						hbox.toolTip = "Please select a service from the dropdown menu";
-//						urlAlert.textBox.toolTip = "This is the URL used to search for the record";
-//						label.text = "Select a service: ";
-//
-//						hbox.addChild(label); hbox.addChild(combobox); hbox.addChild(detailsButton);
-//						urlAlert.alertVBox.addChildAt(hbox,0 );
-//						urlAlert.alertVBox.addChildAt(new Spacer(),0);
-//
-//						try { // don't throw error if string is empty
-//							// replace any combinations of linefeeds and newlines with one newline character for consistency
-//							Weave.properties.searchServiceURLs.value = Weave.properties.searchServiceURLs.value.replace(/[\r\n]+/g,"\n");
-//							fillCBoxDataProvider(combobox);
-//							urlAlert.textInput = combobox.selectedItem.url;
-//						} catch (e:Error) {}
-//						combobox.addEventListener(ListEvent.CHANGE, function(e:ListEvent):void{
-//							urlAlert.textInput = combobox.selectedItem.url;
-//						});
-//						urlAlert.addEventListener(AlertTextBoxEvent.BUTTON_CLICKED, function (e:AlertTextBoxEvent):void {
-//							if( !e.confirm ) return ;
-//							//append queried record's name to the end of the url
-//							navigateToURL(new URLRequest(urlAlert.textInput + query), "_blank");
-//						});
-//					}
-//				}
-//			}
+			var probeText:String = ProbeTextUtils.getProbeText(_localProbeKeySet, null);
+			if (probeText == null)
+				return;
+			// get first line of text only
+			var query:String = probeText.split('\n')[0];
+			for each(var c:Object in _searchQueryContextMenuItems)
+			{
+				var currentContextMenuItem:ContextMenuItem = (c.contextMenu as ContextMenuItem);
+				if(currentContextMenuItem  == event.currentTarget)
+				{
+					if(currentContextMenuItem.enabled)
+					{
+						var combobox:CustomComboBox = new CustomComboBox(); //ComboBox to hold the service names
+						var urlAlert:AlertTextBox = AlertTextBox.show("Custom URL",null);
+						var hbox:HBox = new HBox();
+						var label:Label = new Label();
+						var detailsButton:Button = new Button();
+
+						detailsButton.toggle = true;
+						detailsButton.label = "Show Details";
+						detailsButton.toolTip = "Click to display the URL used for this service"
+						urlAlert.removeChild(urlAlert.textBox);
+						detailsButton.addEventListener(MouseEvent.CLICK, function (e:MouseEvent):void {
+							if(detailsButton.selected)
+								urlAlert.addChildAt(urlAlert.textBox,2);
+							else
+								urlAlert.removeChild(urlAlert.textBox);
+						});
+
+						hbox.toolTip = "Please select a service from the dropdown menu";
+						urlAlert.textBox.toolTip = "This is the URL used to search for the record";
+						label.text = "Select a service: ";
+
+						hbox.addChild(label); hbox.addChild(combobox); hbox.addChild(detailsButton);
+						urlAlert.addChildAt(hbox,0 );
+						urlAlert.addChildAt(new Spacer(),0);
+
+						try { // don't throw error if string is empty
+							// replace any combinations of linefeeds and newlines with one newline character for consistency
+							Weave.properties.searchServiceURLs.value = Weave.properties.searchServiceURLs.value.replace(/[\r\n]+/g,"\n");
+							fillCBoxDataProvider(combobox);
+							urlAlert.textInput = combobox.selectedItem.url;
+						} catch (e:Error) {}
+						combobox.addEventListener(ListEvent.CHANGE, function(e:ListEvent):void{
+							urlAlert.textInput = combobox.selectedItem.url;
+						});
+						urlAlert.addEventListener(AlertTextBoxEvent.BUTTON_CLICKED, function (e:AlertTextBoxEvent):void {
+							if( !e.confirm ) return ;
+							//append queried record's name to the end of the url
+							navigateToURL(new URLRequest(urlAlert.textInput + query), "_blank");
+						});
+					}
+				}
+			}
 		}

 		private static function fillCBoxDataProvider(cbox:ComboBox):void


Added convexHull(), not used yet.

Added convexHull(), not used yet.

--- WeaveData/src/weave/utils/GeometryUtils.as
+++ WeaveData/src/weave/utils/GeometryUtils.as
@@ -30,6 +30,7 @@
 	import mx.utils.ObjectUtil;

 	import weave.api.primitives.IBounds2D;
+	import weave.compiler.StandardLib;
 	import weave.primitives.Bounds2D;

 	/**
@@ -461,6 +462,45 @@
 			return dx * dx + dy * dy;
 		}

+		/**
+		 * Computes the convex hull of a set of points.
+		 * http://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain
+		 * @param points Array(s) of points used to compute the hull.
+		 * @return An Array of points in the convex hull.
+		 */
+		public static function convexHull(...points):Array
+		{
+			var P:Array = [].concat.apply(null, points);
+			var H:Array = new Array(P.length * 2);
+			var n:int = P.length;
+			var k:int = 0;
+			var i:int, t:int;
+
+			// Sort points lexicographically
+			StandardLib.sort(P, comparePoints);
+
+			// Build lower hull
+			for (i = 0; i < n; ++i)
+				while (k >= 2 && crossProduct(H[k-2], H[k-1], P[i]) <= 0) k--;
+					H[k++] = P[i];
+
+			// Build upper hull
+			for (i = n-2, t = k+1; i >= 0; i--)
+				while (k >= t && crossProduct(H[k-2], H[k-1], P[i]) <= 0) k--;
+					H[k++] = P[i];
+
+			H.length = k;
+			return H;
+		}
+		private static function comparePoints(a:Object, b:Object):int
+		{
+			return ObjectUtil.numericCompare(a.x, b.x) || ObjectUtil.numericCompare(a.y, b.y);
+		}
+		private static function crossProduct(O:Object, A:Object, B:Object):Number
+		{
+			return (A.x - O.x) * (B.y - O.y) - (A.y - O.y) * (B.x - O.x);
+		}
+
 		// reusable temporary objects to reduce GC activity:
 		private static const tempPoint:Point = new Point();
 		private static const riXcoords:Array = []; // ray intersection coords


Can't iterate over keys on WeakMap in weavejs.geom.SolidLineStyle; changed to Map.

--- WeaveJS/src/weavejs/geom/SolidLineStyle.as
+++ WeaveJS/src/weavejs/geom/SolidLineStyle.as
@@ -11,8 +11,8 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/.
  *
- * ***** END LICENSE BLOCK ***** */
-
+ * ***** END LICENSE BLOCK ***** */
+
 package weavejs.geom
 {
 	import weavejs.api.core.ICallbackCollection;
@@ -25,42 +25,42 @@
 	import weavejs.util.JS;

 	public class SolidLineStyle implements ILinkableObject
-	{
+	{
 		public function SolidLineStyle()
 		{
 			_callbackCollection = Weave.getCallbacks(this);
 			weight.internalDynamicColumn.requestLocalObject(NormalizedColumn, true);

 			normalizedWeightColumn.min.value = 1;
-			normalizedWeightColumn.max.value = 5;
+			normalizedWeightColumn.max.value = 5;
 		}

-		private var _callbackCollection:ICallbackCollection; // the ICallbackCollection for this object
-
+		private var _callbackCollection:ICallbackCollection; // the ICallbackCollection for this object
+
 		private var _triggerCounter:uint = 0; // used to detect change

-		// This maps an AlwaysDefinedColumn to its preferred value type.
-		private const map_column_dataType:Object = new JS.WeakMap();
+		// This maps an AlwaysDefinedColumn to its preferred value type.
+		private const map_column_dataType:Object = new JS.Map();
 		// this maps an AlwaysDefinedColumn to the default value for that column.
 		// if there is an internal column in the AlwaysDefinedColumn, the default value is not stored
 		private const map_column_defaultValue:Object = new JS.Map();

-		private function createColumn(dataType:Class, defaultValue:*):AlwaysDefinedColumn
-		{
-			var column:AlwaysDefinedColumn = Weave.linkableChild(this, AlwaysDefinedColumn);
-			map_column_dataType[column] = dataType;
-			column.defaultValue.state = defaultValue;
-			return column;
-		}
-
+		private function createColumn(dataType:Class, defaultValue:*):AlwaysDefinedColumn
+		{
+			var column:AlwaysDefinedColumn = Weave.linkableChild(this, AlwaysDefinedColumn);
+			map_column_dataType[column] = dataType;
+			column.defaultValue.state = defaultValue;
+			return column;
+		}
+
 		public const enable:LinkableBoolean = Weave.linkableChild(this, new LinkableBoolean(true));
-
-		public const color:AlwaysDefinedColumn = createColumn(Number, 0x000000);
-		public const weight:AlwaysDefinedColumn = createColumn(Number, 1);
-		public const alpha:AlwaysDefinedColumn = createColumn(Number, 0.5);
+
+		public const color:AlwaysDefinedColumn = createColumn(Number, 0x000000);
+		public const weight:AlwaysDefinedColumn = createColumn(Number, 1);
+		public const alpha:AlwaysDefinedColumn = createColumn(Number, 0.5);
 		public const caps:AlwaysDefinedColumn = createColumn(String, null);
-		public const joints:AlwaysDefinedColumn = createColumn(String, null);
-		public const miterLimit:AlwaysDefinedColumn = createColumn(Number, 3);
+		public const joints:AlwaysDefinedColumn = createColumn(String, null);
+		public const miterLimit:AlwaysDefinedColumn = createColumn(Number, 3);

 		public function get normalizedWeightColumn():NormalizedColumn { return weight.getInternalColumn() as NormalizedColumn; }

@@ -68,9 +68,9 @@
 		 * IQualifiedKey -> getLineStyleParams() result
 		 */
 		private var map_key_style:Object;
-
+
 		public function getStyle(key:IQualifiedKey):Object
-		{
+		{
 			if (_triggerCounter != _callbackCollection.triggerCounter)
 			{
 				_triggerCounter = _callbackCollection.triggerCounter;
@@ -90,19 +90,19 @@
 			if (params)
 				return params;

-			var _color:* = map_column_defaultValue.get(color);
-			var _weight:* = map_column_defaultValue.get(weight);
-			var _alpha:* = map_column_defaultValue.get(alpha);
-			var _caps:* = map_column_defaultValue.get(caps);
-			var _joints:* = map_column_defaultValue.get(joints);
-			var _miterLimit:* = map_column_defaultValue.get(miterLimit);
-
-			var lineColor:Number = _color !== undefined ? _color : color.getValueFromKey(key, Number);
+			var _color:* = map_column_defaultValue.get(color);
+			var _weight:* = map_column_defaultValue.get(weight);
+			var _alpha:* = map_column_defaultValue.get(alpha);
+			var _caps:* = map_column_defaultValue.get(caps);
+			var _joints:* = map_column_defaultValue.get(joints);
+			var _miterLimit:* = map_column_defaultValue.get(miterLimit);
+
+			var lineColor:Number = _color !== undefined ? _color : color.getValueFromKey(key, Number);
 			var lineWeight:Number = _weight !== undefined ? _weight : weight.getValueFromKey(key, Number);
-			var lineAlpha:Number         = _alpha        !== undefined ? _alpha        :      alpha.getValueFromKey(key, Number);
-			var lineCaps:String          = _caps         !== undefined ? _caps         :       caps.getValueFromKey(key, String) as String || null;
-			var lineJoints:String        = _joints       !== undefined ? _joints       :     joints.getValueFromKey(key, String) as String || null;
-			var lineMiterLimit:Number    = _miterLimit   !== undefined ? _miterLimit   : miterLimit.getValueFromKey(key, Number);
+			var lineAlpha:Number         = _alpha        !== undefined ? _alpha        :      alpha.getValueFromKey(key, Number);
+			var lineCaps:String          = _caps         !== undefined ? _caps         :       caps.getValueFromKey(key, String) as String || null;
+			var lineJoints:String        = _joints       !== undefined ? _joints       :     joints.getValueFromKey(key, String) as String || null;
+			var lineMiterLimit:Number    = _miterLimit   !== undefined ? _miterLimit   : miterLimit.getValueFromKey(key, Number);

 			params = {
 				'color': lineColor,
@@ -112,10 +112,10 @@
 				'joints': lineJoints,
 				'miterLimit': lineMiterLimit
 			};
-
+
 			map_key_style.set(key, params);

-			return params;
-		}
+			return params;
+		}
 	}
 }


attribute is default value before first key frame

--- src/ss5player/data/SS5Attribute.as
+++ src/ss5player/data/SS5Attribute.as
@@ -97,7 +97,8 @@
 				}
 			}
 			if (!prevKeyFrame) {
-				return nextKeyFrame ? nextKeyFrame.value : defaultValue(this.tag);
+				//return nextKeyFrame ? nextKeyFrame.value : defaultValue(this.tag);
+				return defaultValue(this.tag);
 			}
 			if (!nextKeyFrame) {
 				return prevKeyFrame.value;


install rebar3 to OTP-20+ bin directory

install rebar3 to OTP-20+ bin directory

--- bin/otp.replace.as
+++ bin/otp.replace.as
@@ -165,6 +165,12 @@
     /bin/date >"$install_log"
     echo "$MAKE install" | tee -a "$install_log"
     $MAKE install 1>>"$install_log" 2>&1
+    if [[ $otp_src_vsn_major -ge 20 && ! -f "$otp_dest/bin/rebar3" ]]
+    then
+        echo "Installing $otp_dest/bin/rebar3" >>"$install_log"
+        wget -O "$otp_dest/bin/rebar3" 'https://s3.amazonaws.com/rebar3/rebar3'
+        /bin/chmod +x "$otp_dest/bin/rebar3"
+    fi
     /bin/date >>"$install_log"

     $ECP "$build_log" "$install_log" "$otp_dest"


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

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


REPRISE
	- feature: combobox fires change event if the list has changed

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

--- src/reprise/controls/ComboBox.as
+++ src/reprise/controls/ComboBox.as
@@ -25,8 +25,7 @@
 		protected var m_toggleBtn:SimpleButton;
 		protected var m_backgroundCell:UIComponent;
 		protected var m_placeholder:String = null;
-		protected var m_list : List;
-
+		protected var m_list : List;

 		/***************************************************************************
@@ -139,7 +138,7 @@
 		}

 		protected function showList():void
-		{
+		{
 			removeEventListener(MouseEvent.MOUSE_DOWN, self_mouseDown);
 			stage.addEventListener(MouseEvent.MOUSE_DOWN, stage_mouseDown);
 			m_list.removeCSSClass('hidden');
@@ -171,6 +170,7 @@
 			m_label.setLabel(m_list.selectedLabel());
 			removeCSSClass('placeholder');
 			hideList();
+			dispatchEvent(new Event(Event.CHANGE));
 		}
 	}
 }


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

--- frameworks/projects/advancedgrids/src/mx/olap/IOLAPQueryAxis.as
+++ frameworks/projects/advancedgrids/src/mx/olap/IOLAPQueryAxis.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@1262810 13f79535-47bb-0310-9956-ffa450edef68

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

 package mx.utils
 {


LibraryLoader: handle IO error failure

LibraryLoader: handle IO error failure

--- runtime/src/main/as/flump/display/LibraryLoader.as
+++ runtime/src/main/as/flump/display/LibraryLoader.as
@@ -82,6 +82,7 @@
 import deng.fzip.FZipFile;

 import flash.events.Event;
+import flash.events.IOErrorEvent;
 import flash.geom.Point;
 import flash.geom.Rectangle;
 import flash.net.URLRequest;
@@ -196,6 +197,7 @@
         _future = future;

         _zip.addEventListener(Event.COMPLETE, _future.monitoredCallback(onZipLoadingComplete));
+        _zip.addEventListener(IOErrorEvent.IO_ERROR, _future.fail);
         _zip.addEventListener(FZipErrorEvent.PARSE_ERROR, _future.fail);
         _zip.addEventListener(FZipEvent.FILE_LOADED, _future.monitoredCallback(onFileLoaded));


Fixed the terrain example for new convention.

--- Bin/Data/Scripts/Terrain.as
+++ Bin/Data/Scripts/Terrain.as
@@ -112,8 +112,8 @@
         RenderPath@ newRenderPath = renderer.viewports[0].renderPath.Clone();
         newRenderPath.Append(cache.GetResource("XMLFile", "PostProcess/Bloom.xml"));
         newRenderPath.Append(cache.GetResource("XMLFile", "PostProcess/EdgeFilter.xml"));
-        newRenderPath.SetActive("Bloom", false);
-        newRenderPath.SetActive("EdgeFilter", false);
+        newRenderPath.SetEnabled("Bloom", false);
+        newRenderPath.SetEnabled("EdgeFilter", false);
         renderer.viewports[0].renderPath = newRenderPath;

         audio.listener = cameraNode.CreateComponent("SoundListener");
@@ -292,10 +292,10 @@
         }

         if (key == 'B')
-            renderer.viewports[0].renderPath.ToggleActive("Bloom");
+            renderer.viewports[0].renderPath.ToggleEnabled("Bloom");

         if (key == 'F')
-            renderer.viewports[0].renderPath.ToggleActive("EdgeFilter");
+            renderer.viewports[0].renderPath.ToggleEnabled("EdgeFilter");

         if (key == 'O')
             camera.orthographic = !camera.orthographic;


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

--- frameworks/projects/mx/src/mx/controls/VSlider.as
+++ frameworks/projects/mx/src/mx/controls/VSlider.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2004-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
 {


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

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

 package mx.messaging
 {


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

--- frameworks/projects/rpc/src/mx/messaging/management/Attribute.as
+++ frameworks/projects/rpc/src/mx/messaging/management/Attribute.as
@@ -0,0 +1,53 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.messaging.management
+{
+
+import mx.utils.ObjectUtil;
+
+[RemoteClass(alias='flex.management.jmx.Attribute')]
+
+/**
+ * Client representation of a MBean attribute.
+ */
+public class Attribute
+{
+    /**
+     *  Creates a new instance of an empty Attribute.
+     */
+    public function Attribute()
+    {
+        super();
+    }
+
+    /**
+     * The attribute name.
+     */
+    public var name:String;
+
+    /**
+     * The attribute value.
+     */
+    public var value:Object;
+
+    /**
+     *  Returns a string representation of the attribute.
+     *
+     *  @return String representation of the attribute.
+     */
+    public function toString():String
+    {
+        return ObjectUtil.toString(this);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 18323
Author:   smgilson@adobe.com
Date:     2010-10-26T17:50:12.524532Z

Log Message:
-----------
Fix invalid HTML in ASDoc comments for the [DiscouragedForProfile] metadata tag

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/FormHeading.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Form.as</path>

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

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -109,7 +109,7 @@
  * Because this component does not define a skin for the mobile theme, Adobe
  * recommends that you not use it in a mobile application. Alternatively, you
  * can define your own mobile skin for the component. For more information,
- * see Spark Skinning.
+ * see Spark Skinning.
  */
 [DiscouragedForProfile("mobileDevice")]


Transferred from the Adobe Open Source Subversion Repository

Revision: 6391
Author:   smgilson@adobe.com
Date:     2009-04-29T20:04:20.789717Z

Log Message:
-----------
ASDoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/TextOperationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/VideoEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/RendererExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/ElementExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/spark/src/spark/events/TextOperationEvent.as
+++ frameworks/projects/spark/src/spark/events/TextOperationEvent.as
@@ -17,7 +17,7 @@
 import flashx.textLayout.operations.FlowOperation;

 /**
- *  Represents events that are dispatched when text content
+ *  The TextOperationEvent class represents events that are dispatched when text content
  *  changes due to user operations such as inserting characters,
  *  backspacing, pasting, changing attributes, etc.
  *
@@ -30,134 +30,140 @@
 {
     include "../core/Version.as";

-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  The TextOperationEvent.CHANGE constant
-	 *  defines the value of the type property of the event
-	 *  object for a change event.
-	 *
-     *
The properties of the event object have the following values:

-	 *

-	 *
Property	Value

+    /**
+     *  The TextOperationEvent.CHANGING constant
+     *  defines the value of the type property of the event
+     *  object for a changing event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

      *
bubbles	false

      *
cancelable	true

      *
currentTarget	The Object that defines the
      *       event listener that handles the event. For example, if you use
      *       myButton.addEventListener() to register an event listener,
      *       myButton is the value of the currentTarget.

+     *
operation	The FlowOperation object
+     *       describing the editing operation being performed
+     *       on the text by the user.

      *
target	The Object that dispatched the event;
      *       it is not always the Object listening for the event.
      *       Use the currentTarget property to always access the
      *       Object listening for the event.

-	 *

-	 *
+     *

+     *
      *  @eventType changing
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public static const CHANGING:String = "changing";
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public static const CHANGING:String = "changing";

-	/**
-	 *  The TextOperationEvent.CHANGING constant
-	 *  defines the value of the type property of the event
-	 *  object for a changing event.
-	 *
-     *
The properties of the event object have the following values:

-	 *

-	 *
Property	Value

+    /**
+     *  The TextOperationEvent.CHANGE constant
+     *  defines the value of the type property of the event
+     *  object for a change event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

      *
bubbles	false

      *
cancelable	false

      *
currentTarget	The Object that defines the
      *       event listener that handles the event. For example, if you use
      *       myButton.addEventListener() to register an event listener,
      *       myButton is the value of the currentTarget.

+     *
operation	The FlowOperation object
+     *       describing the editing operation being performed
+     *       on the text by the user.

      *
target	The Object that dispatched the event;
      *       it is not always the Object listening for the event.
      *       Use the currentTarget property to always access the
      *       Object listening for the event.

-	 *

-	 *
+     *

+     *
      *  @eventType change
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public static const CHANGE:String = "change";
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public static const CHANGE:String = "change";

-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The event type; indicates the action that caused the event.
-	 *
-	 *  @param bubbles Specifies whether the event
-	 *  can bubble up the display list hierarchy.
-	 *
-	 *  @param cancelable Specifies whether the behavior
-	 *  associated with the event can be prevented.
-	 *
-	 *  @param operation Reference to the FlowOperation object
-	 *  describing the editing operation being performed
-	 *  on the text by the user.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function TextOperationEvent(type:String, bubbles:Boolean = false,
-									   cancelable:Boolean = true,
-									   operation:FlowOperation = null)
-	{
-		super(type, bubbles, cancelable);
+    /**
+     *  Constructor.
+     *
+     *  @param type The event type; indicates the action that caused the event.
+     *
+     *  @param bubbles Specifies whether the event
+     *  can bubble up the display list hierarchy.
+     *
+     *  @param cancelable Specifies whether the behavior
+     *  associated with the event can be prevented.
+     *
+     *  @param operation Reference to the FlowOperation object
+     *  describing the editing operation being performed
+     *  on the text by the user.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function TextOperationEvent(type:String, bubbles:Boolean = false,
+                                       cancelable:Boolean = true,
+                                       operation:FlowOperation = null)
+    {
+        super(type, bubbles, cancelable);

-		this.operation = operation;
-	}
+        this.operation = operation;
+    }

-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------

-	//----------------------------------
-	//  operation
-	//----------------------------------
+    //----------------------------------
+    //  operation
+    //----------------------------------

-	/**
-	 *  The FlowOperation being performed by the user.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public var operation:FlowOperation;
+    /**
+     *  The FlowOperation being performed by the user.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public var operation:FlowOperation;

-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: Event
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: Event
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
+    /**
+     *  @private
+     */
     override public function clone():Event
     {
         return new TextOperationEvent(type, bubbles, cancelable, operation);


fixed missing class reference

fixed missing class reference

--- WeaveUI/src/_InitializeWeaveUI.as
+++ WeaveUI/src/_InitializeWeaveUI.as
@@ -72,8 +72,6 @@
 	import weave.visualization.plotters.GeometryPlotter;
 	import weave.visualization.plotters.GridLinePlotter;
 	import weave.visualization.plotters.WMSPlotter;
-	import weave.visualization.tools.HistogramTool;
-	import weave.visualization.tools.HistogramToolEditor;

 	/**
 	 * Referencing this class will register WeaveAPI singleton implementations.
@@ -118,7 +116,7 @@
 		EditorManager.registerEditor(AxisLabelPlotter, AxisLabelPlotterEditor);

 		EditorManager.registerEditor(ColorRamp, ColorRampEditor);
-		EditorManager.registerEditor(HistogramTool, HistogramToolEditor);
+//		EditorManager.registerEditor(HistogramTool, HistogramToolEditor);

 		EditorManager.registerEditor(SessionStateLog, SessionHistorySlider);


Transferred from the Adobe Open Source Subversion Repository

Revision: 11930
Author:   jon.avila@ssbbartgroup.com
Date:     2009-11-18T14:10:40.703251Z

Log Message:
-----------
Update of accessibility implementation to allow for case of null titleDisplay (title).  If there is no title then no accImpl will be created but accessibility properties can still be set on the component.  Also added code to set the tabIndex of the titleDisplay to the tabIndex of the Panel if one exists.  This allows the title of the panel to appear in reading order as assigned by the tabIndex.
QE notes: none
Doc notes: none
Bugs: n/a
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as

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

--- frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as
@@ -71,9 +71,14 @@
         // If it were placed on the Panel itself,
         // the AccessibilityImplementations of the Panel's children
         // would be ignored.
-        var titleBar:UIComponent = Panel(component).titleDisplay;
-        titleBar.accessibilityImplementation =
-            new PanelAccImpl(component);
+        var titleDisplay:UIComponent = Panel(component).titleDisplay;
+
+        if (titleDisplay)
+        {
+            titleDisplay.accessibilityImplementation = new PanelAccImpl(component);
+            if (Panel(component).tabIndex > 0 && titleDisplay.tabIndex == -1)
+                titleDisplay.tabIndex = Panel(component).tabIndex;
+        }
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 7154
Author:   srahim@adobe.com
Date:     2009-05-20T21:20:01.377159Z

Log Message:
-----------
ASDoc updates; bug fix.
QE Notes: None
Doc Notes: None
Bugs: FLEXDOCS-831 (for the filter classes and RichEditableTextContainerManager.as)
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextInput.as</path>

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

--- frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as
+++ frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as
@@ -6,9 +6,106 @@
 	import mx.filters.IBitmapFilter;

 	use namespace mx_internal;
+
+/**
+ * The GradientGlowFilter class lets you apply a gradient glow effect to display objects.
+ * A gradient glow is a realistic-looking glow with a color gradient that
+ * you can control. You can apply a gradient glow around
+ * the inner or outer edge of an object or on top of an object.
+ * You can apply the filter to any display object (objects that inherit from the DisplayObject class),
+ * such as MovieClip, SimpleButton, TextField, and Video objects, as well as to BitmapData objects.
+ *
+ *
The use of filters depends on the object to which you apply the filter:

+ *

To apply filters to display objects, use the
+ * filters property. Setting the filters
+ * property of an object does not modify the object, and you can remove the filter by clearing the
+ * filters property.

+ *
+ *
To apply filters to BitmapData objects, use the BitmapData.applyFilter() method.
+ * Calling applyFilter() on a BitmapData object takes the source BitmapData object
+ * and the filter object and generates a filtered image as a result.

+ *

+ *
+ *
If you apply a filter to a display object, the cacheAsBitmap property of the
+ * display object is set to true. If you clear all filters, the original value of
+ * cacheAsBitmap is restored.

+ *
+ *
This filter supports Stage scaling. However, it does not support general scaling, rotation,
+ * and skewing; if the object itself is scaled (if scaleX and scaleY are set
+ * to a value other than 1.0), the
+ * filter effect is not scaled. It is scaled only when the user zooms in on the Stage.

+ *
+ *
A filter is not applied if the resulting image exceeds the maximum dimensions.
+ * In  AIR 1.5 and Flash Player 10, the maximum is 8,191 pixels in width or height,
+ * and the total number of pixels cannot exceed 16,777,215 pixels. (So, if an image is 8,191 pixels
+ * wide, it can only be 2,048 pixels high.)
+ * For example, if you zoom in on a large movie clip with a filter applied, the filter is
+ * turned off if the resulting image exceeds the maximum dimensions.

+ *
+ * @see flash.display.BitmapData#applyFilter()
+ * @see flash.display.DisplayObject#cacheAsBitmap
+ * @see flash.display.DisplayObject#filters
+ * @see flash.filters.GlowFilter GlowFilter class
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Flex 4
+ */
+

 public class GradientGlowFilter extends GradientFilter implements IBitmapFilter
 {
+	/**
+	 * Constructor.
+	 *
+	 * @param distance The offset distance of the glow.
+	 * @param angle The angle, in degrees. Valid values are 0 to 360.
+	 * @param colors An array of colors that defines a gradient.
+	 * For example, red is 0xFF0000, blue is 0x0000FF, and so on.
+	 * @param alphas An array of alpha transparency values for the corresponding colors in
+	 * the colors array. Valid values for each element in the array are 0 to 1.
+	 * For example, a value of .25 sets the alpha transparency value to 25%.
+	 * @param ratios An array of color distribution ratios. Valid values are
+	 * 0 to 255. This value defines the percentage of the width where the color
+	 * is sampled at 100 percent.
+	 * @param blurX The amount of horizontal blur. Valid values are 0 to 255. A blur of 1 or
+	 * less means that the original image is copied as is. Values that are a power of 2 (such as 2, 4, 8, 16 and 32) are optimized
+	 * to render more quickly than other values.
+	 * @param blurY The amount of vertical blur. Valid values are 0 to 255. A blur of 1 or less
+	 * means that the original image is copied as is. Values that are a power of 2 (such as 2, 4, 8, 16 and 32) are optimized
+	 * to render more quickly than other values.
+	 * @param strength The strength of the imprint or spread. The higher the value, the more color is
+	 * imprinted and the stronger the contrast between the glow and the background.
+	 * Valid values are 0 to 255. The larger the value, the stronger the imprint. A value of 0
+	 * means the filter is not applied.
+	 * @param quality The number of times to apply the filter. Use the flash.filters.BitmapFilterQuality constants:
+	 *

+	 *
BitmapFilterQuality.LOW

+	 *
BitmapFilterQuality.MEDIUM

+	 *
BitmapFilterQuality.HIGH

+	 *

+	 *
For more information, see the description of the quality property.

+	 *
+	 * @param type The placement of the filter effect. Possible values are the
+	 * flash.filters.BitmapFilterType constants:
+	 *

+	 *
BitmapFilterType.OUTER — Glow on the outer edge of the object

+	 *
BitmapFilterType.INNER — Glow on the inner edge of the object; the default.

+	 *
BitmapFilterType.FULL — Glow on top of the object

+	 *

+	 *
+	 * @param knockout Specifies whether the object has a knockout effect. A knockout effect
+	 * makes the object's fill transparent and reveals the background color of the document.
+	 * The value true specifies a knockout effect;
+	 * the default is false (no knockout effect).
+	 *
+	 * @langversion 3.0
+	 * @playerversion Flash 10
+	 * @playerversion AIR 1.5
+	 * @productversion Flex 4
+	 */
+
 	public function GradientGlowFilter(distance:Number = 4.0, angle:Number = 45,
 									   colors:Array = null, alphas:Array = null,
 									   ratios:Array = null, blurX:Number = 4.0,
@@ -28,6 +125,16 @@
 		super(colors, alphas, ratios);
 	}

+	/**
+	 * Returns a copy of this filter object.
+	 * @return A new GradientGlowFilter instance with all the
+	 * same properties as the original GradientGlowFilter instance.
+	 *
+	 * @langversion 3.0
+	 * @playerversion Flash 10
+	 * @playerversion AIR 1.5
+	 * @productversion Flex 4
+	 */
 	public function clone():BitmapFilter
 	{
 		return new flash.filters.GradientGlowFilter(distance, angle, colors, alphas, ratios,


properly handle inverted scales in "motionTweenRotate"

--- exporter/src/main/as/flump/xfl/XflLayer.as
+++ exporter/src/main/as/flump/xfl/XflLayer.as
@@ -38,6 +38,8 @@
         for each (frameEl in xml.frames.DOMFrame) {
             if (ii >= layer.keyframes.length) break;

+            kf = layer.keyframes[ii];
+
             if (XmlUtil.hasAttr(frameEl, "motionTweenRotateTimes") &&
                 XmlUtil.hasAttr(frameEl, "motionTweenRotate")) {
                 var thisRotation :Number =
@@ -45,10 +47,11 @@
                 if (XmlUtil.getStringAttr(frameEl, "motionTweenRotate") == "clockwise") {
                     thisRotation *= -1;
                 }
+                // inverted scales change the direction of rotation
+                thisRotation *= sign(kf.scaleX) * sign(kf.scaleY);
                 additionalRotation += thisRotation;
             }

-            kf = layer.keyframes[ii];
             kf.rotation += additionalRotation;

             ii++;
@@ -71,5 +74,9 @@
         return Math.round(n * shift) / shift;
     }

+    protected static function sign (n :Number) :Number {
+        return (n > 0 ? 1 : (n < 0 ? -1 : 0));
+    }
+
 }
 }


Removed edit functionality for constins on dragsel tut

--- src/Levels/ControlTutorials/DragSelectTutorial.as
+++ src/Levels/ControlTutorials/DragSelectTutorial.as
@@ -32,6 +32,7 @@
 			var modules:Vector.<Module> = new Vector.<Module>;
 			for each (var module:Module in [new ConstIn(12, 0, 1), new ConstIn(10, 8, 2), new DataWriter(18, 6)])
 				modules.push(module);
+			modules[0].configurableInPlace = modules[1].configurableInPlace = false;

 			var wires:Vector.<Wire> = new Vector.<Wire>;
 			wires.push(Wire.wireBetween(modules[0].layout.ports[0].Loc, modules[2].layout.ports[1].Loc));  //const1 to dwriter port


Let's make all CommandMenus variableRowHeight.
- What's the harm in it? Does it cause menu to do more calculation?
What the fuck gus, they should have only implemented one code path and KISS.
- it seems to be necessary when using separators. They are slim. When not
used in a menu with separators, the separators are these hulking beasts.
- it seems that when a submenu is added, things are going variable anyway.
So: consistency.

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

--- src/as/com/threerings/flex/CommandMenu.as
+++ src/as/com/threerings/flex/CommandMenu.as
@@ -176,6 +176,7 @@
         itemRenderer = new ClassFactory(getItemRenderer());

         verticalScrollPolicy = ScrollPolicy.OFF;
+        variableRowHeight = true;
         addEventListener(MenuEvent.ITEM_CLICK, itemClicked);
     }


FLEX-35106 fixed June and July abbreviations for French locale

--- frameworks/projects/mx/src/mx/controls/DateField.as
+++ frameworks/projects/mx/src/mx/controls/DateField.as
@@ -51,6 +51,7 @@
 import mx.managers.IFocusManagerComponent;
 import mx.managers.ISystemManager;
 import mx.managers.PopUpManager;
+import mx.resources.Locale;
 import mx.resources.ResourceManager;
 import mx.styles.CSSStyleDeclaration;
 import mx.styles.StyleManager;
@@ -428,6 +429,26 @@
     //
     //--------------------------------------------------------------------------

+	/**
+	 * Return the short three letter name of a month.
+	 * In most cases it's the first 3 letters.
+	 *
+	 * TODO move short names to resource bundles.
+	 */
+	 protected static function shortMonthName(monthName:String, locale:Locale, monthNames:Array):String
+	 {
+		if (locale && locale.language == "fr") {
+			if (monthName == monthNames[5]) {
+				return "JUN";
+			}
+			else if (monthName == monthNames[6]) {
+				return "JUL";
+			}
+		}
+
+		return monthName.substr(0,3);
+	 }
+
     /**
      *  Parses a String object that contains a date, and returns a Date
      *  object corresponding to the String.
@@ -475,13 +496,14 @@
 		if (valueString == null || inputFormat == null)
 			return null;

-		var monthNames:Array = ResourceManager.getInstance()
-			.getStringArray("SharedResources", "monthNames");
+		var monthNames:Array = ResourceManager.getInstance().getStringArray("SharedResources", "monthNames");
+		var noMonths:int = monthNames.length;
+		var locales:Array = ResourceManager.getInstance().localeChain;
+		var locale:Locale = new Locale(locales[0]);

-		var noMonths:int = monthNames.length;
 		for (var i:int = 0; i < noMonths; i++) {
 			valueString = valueString.replace(monthNames[i], (i+1).toString());
-			valueString = valueString.replace(monthNames[i].substr(0,3), (i+1).toString());
+			valueString = valueString.replace(shortMonthName(monthNames[i], locale, monthNames), (i+1).toString());
 		}

 		length = valueString.length;
@@ -674,7 +696,9 @@
 			}
 			else if (fullMask == "MMM")
 			{
-				output += monthNames[value.getMonth()].substr(0,3);
+				var locales:Array = ResourceManager.getInstance().localeChain;
+				var locale:Locale = new Locale(locales[0]);
+				output += shortMonthName(monthNames[value.getMonth()], locale, monthNames);
 			}
 			else if (fullMask == "MMMM")
 			{


Transferred from the Adobe Open Source Subversion Repository

Revision: 18127
Author:   clucier@adobe.com
Date:     2010-10-11T20:37:24.139789Z

Log Message:
-----------
todayColor style should be exposed for Spark DateField theme.

QE notes: None
Doc notes: None
Bugs: SDK-28173
Reviewer: Gaurav
Tests run: Full Cyclone, Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DateField.as

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

--- frameworks/projects/mx/src/mx/controls/DateField.as
+++ frameworks/projects/mx/src/mx/controls/DateField.as
@@ -229,7 +229,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-[Style(name="todayColor", type="uint", format="Color", inherit="yes", theme="halo")]
+[Style(name="todayColor", type="uint", format="Color", inherit="yes")]

 //--------------------------------------
 //  Excluded APIs


Added shadow effect to the editor HUD texts.

--- Bin/Data/Scripts/Editor/EditorView.as
+++ Bin/Data/Scripts/Editor/EditorView.as
@@ -791,6 +791,7 @@
     text.verticalAlignment = vAlign;
     text.SetFont(font, 11);
     text.color = Color(1, 1, 0);
+    text.textEffect = TE_SHADOW;
     text.priority = -100;
 }


added check for hasOwnProperty

added check for hasOwnProperty

--- WeaveCore/src/org/apache/flex/promises/Promise.as
+++ WeaveCore/src/org/apache/flex/promises/Promise.as
@@ -186,6 +186,7 @@
 			if (result &&
 				(typeof(result) === 'object' ||
 				 typeof(result) === 'function') &&
+				Object(result).hasOwnProperty('then') &&
 				result.then is Function)
 			{
 				doResolve_(result.then, resolve_, reject_);


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

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

 package mx.effects.effectClasses
 {


LineChartPlotter now implements ISelectableAttributes

--- WeaveUISpark/src/weave/visualization/plotters/LineChartPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/LineChartPlotter.as
@@ -27,6 +27,7 @@
 	import weave.api.reportError;
 	import weave.api.ui.IPlotTask;
 	import weave.api.ui.IPlotter;
+	import weave.api.ui.ISelectableAttributes;
 	import weave.core.SessionManager;
 	import weave.data.AttributeColumns.AlwaysDefinedColumn;
 	import weave.data.AttributeColumns.DynamicColumn;
@@ -34,7 +35,7 @@
 	import weave.visualization.layers.PlotTask;
 	import weave.visualization.plotters.styles.SolidLineStyle;

-	public class LineChartPlotter extends AbstractPlotter
+	public class LineChartPlotter extends AbstractPlotter implements ISelectableAttributes
 	{
 		WeaveAPI.ClassRegistry.registerImplementation(IPlotter, LineChartPlotter, "Line Chart");

@@ -48,6 +49,15 @@
 			var ls:SolidLineStyle = lineStyle;
 			for each (var adc:AlwaysDefinedColumn in [ls.alpha,ls.caps,ls.color,ls.joints,ls.miterLimit,ls.pixelHinting,ls.scaleMode,ls.weight])
 				sm.excludeLinkableChildFromSessionState(adc, adc.internalDynamicColumn);
+		}
+
+		public function getSelectableAttributeNames():Array
+		{
+			return ["X", "Y", "Order", "Group"];
+		}
+		public function getSelectableAttributes():Array
+		{
+			return [dataX, dataY, order, group];
 		}

 		private const sortedUnfilteredKeys:FilteredKeySet = newSpatialProperty(FilteredKeySet);


Quick fix to Tilemap, shiftTiles() was missing temporary bitmap.

--- net/flashpunk/graphics/Tilemap.as
+++ net/flashpunk/graphics/Tilemap.as
@@ -33,6 +33,7 @@
 			_columns = _width / tileWidth;
 			_rows = _height / tileHeight;
 			_map = new BitmapData(_columns, _rows, false, 0);
+			_temp = _map.clone();
 			_tile = new Rectangle(0, 0, tileWidth, tileHeight);

 			// create the canvas
@@ -342,6 +343,7 @@

 		// Tilemap information.
 		/** @private */ private var _map:BitmapData;
+		/** @private */ private var _temp:BitmapData;
 		/** @private */ private var _columns:uint;
 		/** @private */ private var _rows:uint;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12610
Author:   dloverin@adobe.com
Date:     2009-12-07T18:08:38.995213Z

Log Message:
-----------
Fix RTE in EmbeddedFontRegistry.

projects/framework/src/mx/managers/SystemManager.as
•         I added back the "mx.styles::IStyleManager" interface. I investigated the file history and found the code was removed during frame1 cleanup.

projects/framework/src/mx/core/EmbeddedFontRegistry.as
•         Fix RTE by only getting a ResourceManager instance when it is needed. The RTE happened when an RSL with embedded fonts, loading in frame1 created the registry. The ResourceManager is not ready at this point.

projects/framework/src/mx/styles/IStyleManager2.as
projects/framework/src/mx/styles/StyleManagerImpl.as
•         Removed parent setter. PARB approved.
•         Removed hasEventListener() check in dispatchInheritingStylesChangeEvent(). Each call to dispatchInheritingStylesChangeEvent() was already guarded with a listener check.

QE notes: None.
Doc notes: None.
Bugs: SDK-24467
Reviewer: Alex, Corey
Tests run: checkintests, PerModuleStyles
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager2.as</path>

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

--- frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as
+++ frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as
@@ -62,7 +62,7 @@
      *  @private
      *  Used for accessing localized Error messages.
      */
-    private var resourceManager:IResourceManager = ResourceManager.getInstance();
+    private var _resourceManager:IResourceManager;

     /**
      *  @private
@@ -242,7 +242,28 @@
 		}
 	}

-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *
+     *  The EmbeddedFontRegistry can be created in frame1 when an RSL loads a font. Defer creating
+     *  a resource manager until it is needed.
+     *
+     */
+    private function get resourceManager():IResourceManager
+    {
+        if (!_resourceManager)
+            _resourceManager = ResourceManager.getInstance();
+
+        return _resourceManager;
+    }
+
+    //--------------------------------------------------------------------------
 	//
 	//  Methods
 	//
@@ -446,6 +467,7 @@

         return result;
     }
+
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17060
Author:   tkraikit@adobe.com
Date:     2010-07-26T17:43:05.087209Z

Log Message:
-----------
Fix for bug 26012: steps to better enforce singleton pattern in ResourceManager and LayoutManager (removed one constructor, @private'd the ASDoc for the other)

QE notes: -
Doc notes: -
Bugs: SDK-26012
Reviewer: Corey Lucier
Tests run: checkintests, mustella
Is noteworthy for integration: -

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>

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

--- frameworks/projects/framework/src/mx/resources/ResourceManager.as
+++ frameworks/projects/framework/src/mx/resources/ResourceManager.as
@@ -126,25 +126,6 @@
         return instance;
     }

-    //--------------------------------------------------------------------------
-    //
-    //  Constructor
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  Constructor.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function ResourceManager()
-    {
-        super();
-    }
-
 }

 }


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

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

 package mx.events
 {


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

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


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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.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.controls.advancedDataGridClasses
 {


fix CtrlButton 位置 SELECT 觸發事件

fix CtrlButton 位置 SELECT 觸發事件

--- flash/src/lambmei/starling/display/HandleSheet.as
+++ flash/src/lambmei/starling/display/HandleSheet.as
@@ -14,7 +14,9 @@
 	import starling.events.TouchEvent;
 	import starling.events.TouchPhase;
 	import starling.textures.Texture;
-	import starling.utils.Line;
+	import starling.utils.Line;
+
+	[Event(name="handleSheetSelected"		,type="starling.events.Event")]

 	public class HandleSheet extends Sprite
 	{
@@ -42,17 +44,12 @@
 			return _useCtrlButton;
 		}

-//		public function set useCtrlButton(value:Boolean):void
-//		{
-//			_useCtrlButton = value;
-//		}
-
 		//Const Vars
 		protected static const CTRL_BUTTON_NAME:String = "HandlectrlBtn"
 		public static const ALIGN_CENTER:String = "center"
 		public static const ALIGN_LT:String = "LT"

-
+		public static const EVENT_SELECTED:String = "handleSheetSelected"

 		//UI
 		protected var _contents:DisplayObject
@@ -93,20 +90,56 @@
 			this.addChild(this._selectedGroup);

 			_shape = new Shape()
-			updateLine()
+
 			_selectedGroup.addChild(_shape)
 			_selectedGroup.visible = _selected

 		}

 		/**重新計算**/
-		protected function render(scale=1):void
-		{
-			updateLine(scale)
+		protected function render(sizeDiff:Number , deltaAngle:Number):void
+		{
+			rotation += deltaAngle;
+
+			scaleX *= sizeDiff;
+			scaleY *= sizeDiff;
+
+			//_ctrlButton 保持原比例
+			if(_ctrlButton){
+				_ctrlButton.scaleX /= sizeDiff
+				_ctrlButton.scaleY /= sizeDiff
+
+				//size 變更後需要重新定位
+				updateCtrlButtonPosition()
+			}
+
+
+
+			updateLine(_ctrlButton.scaleX)
+		}
+
+		/**計算CtrlButton 放置位置**/
+		protected function updateCtrlButtonPosition():void
+		{
+			if(_contents && _ctrlButton){
+
+				var _w:Number = _contents.width
+				var _h:Number = _contents.height
+				var _halfW:Number = _w/2
+				var _halfH:Number= _h/2
+
+				//放置右上角
+				_ctrlButton.x = int(_halfW)
+				_ctrlButton.y = - int(_halfH)
+				//置中對齊
+				_ctrlButton.x -= int(_ctrlButton.width/2)
+				_ctrlButton.y -= int(_ctrlButton.height/2)
+
+			}
 		}

 		/**更新框線**/
-		protected function updateLine(scale=1):void
+		protected function updateLine(sizeRate:Number):void
 		{
 			if(_contents && _shape){
 				_shape.graphics.lineStyle(10,0xFFffFF);
@@ -119,7 +152,7 @@
 					var _halfW:Number = _w/2
 					var _halfH:Number= _h/2

-					_shape.graphics.lineStyle(2 * scale,0xFFFFFF);
+					_shape.graphics.lineStyle(2 * sizeRate ,0xFFFFFF);
 					//_shape.graphics.drawRoundRect( -_halfW, -_halfH, _w, _h, 10 );
 					_shape.graphics.drawRect(-_halfW, -_halfH, _w, _h);

@@ -128,8 +161,6 @@
 			}
 		}

-
-

 		public function setCtrlButtonInitByTexture(upTexture:Texture , downTexture:Texture = null ):void
 		{
@@ -152,21 +183,13 @@

 			if (_contents)
 			{
-				_ctrlButton = obj
-
-
-				var _w:Number = _contents.width
-				var _h:Number = _contents.height
-				var _halfW:Number = _w/2
-				var _halfH:Number= _h/2
-				//放置右上角
-				_ctrlButton.x = int(_halfW)
-				_ctrlButton.y = - int(_halfH)
-
-				//置中對齊
-				_ctrlButton.x -= int(_ctrlButton.width/2)
-				_ctrlButton.y -= int(_ctrlButton.height/2)
-
+				//避免讓外部物件Size != 1 影響計算
+				var _container:Sprite = new Sprite()
+				_container.addChild(obj)
+				_ctrlButton = _container
+				//定位
+				updateCtrlButtonPosition()
+
 				_selectedGroup.addChild(_ctrlButton)
 			}
 		}
@@ -219,8 +242,11 @@
 			if(touch){
 				if(_touchBringToFront){
 					parent.addChild(this);
-				}
+				}
 				selected = true
+
+				render(1, 0)
+				dispatchEventWith(EVENT_SELECTED,false)
 			}

 		}
@@ -284,20 +310,14 @@
 			var deltaAngle:Number = currentAngle - previousAngle;

 			// rotate
-			rotation += deltaAngle;
+			//rotation += deltaAngle;

 			// scale
 			var sizeDiff:Number = currentVector.length / previousVector.length;
-			scaleX *= sizeDiff;
-			scaleY *= sizeDiff;
-
-			//_ctrlButton 保持原比例
-			if(_ctrlButton){
-				_ctrlButton.scaleX /= sizeDiff
-				_ctrlButton.scaleY /= sizeDiff
-			}
-
-			render(_ctrlButton.scaleX)
+//			scaleX *= sizeDiff;
+//			scaleY *= sizeDiff;
+
+			render(sizeDiff , deltaAngle)

 		}

@@ -334,14 +354,14 @@
 			y = (currentPosA.y + currentPosB.y) * 0.5;

 			// rotate
-			rotation += deltaAngle;
+//			rotation += deltaAngle;

 			// scale
 			var sizeDiff:Number = currentVector.length / previousVector.length;
-			scaleX *= sizeDiff;
-			scaleY *= sizeDiff;
-
-			render(_ctrlButton.scaleX)
+//			scaleX *= sizeDiff;
+//			scaleY *= sizeDiff;
+
+			render(sizeDiff , deltaAngle)
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20920
Author:   build@adobe.com
Date:     2011-03-18T19:54:14.958635Z

Log Message:
-----------
Version update to 4.5.1

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airspark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_air/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/flex-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_spark/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark_dmv/src/spark/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/rpc/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/mx/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_flashflexkit/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/automation_dmv/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/VersionInfo.java</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Version.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/core/Version.as</path>

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

--- frameworks/projects/charts/src/mx/core/Version.as
+++ frameworks/projects/charts/src/mx/core/Version.as
@@ -15,4 +15,4 @@
  *  @private
  *  Version string for this class.
  */
-mx_internal static const VERSION:String = "4.5.0.0";
+mx_internal static const VERSION:String = "4.5.1.0";


MovieResources is no more

MovieResources is no more

--- runtime/src/main/as/flump/display/Movie.as
+++ runtime/src/main/as/flump/display/Movie.as
@@ -24,7 +24,7 @@
  * isPlaying is true. While it's not on the stage, its playhead doesn't move regardless of the state
  * of isPlaying.</p>
  *
- * @see MovieResources to create instances of Movie.
+ * @see Library and LibraryLoader to create instances of Movie.
  */
 public class Movie extends Sprite
 {
@@ -245,11 +245,13 @@
     private static const NO_FRAME :int = -1;
 }
 }
+
 import flump.display.Library;
 import flump.display.Movie;
 import flump.mold.KeyframeMold;
 import flump.mold.LayerMold;

+import starling.animation.IAnimatable;
 import starling.display.DisplayObject;
 import starling.display.Sprite;

@@ -346,8 +348,6 @@
     }
 }

-import starling.animation.IAnimatable;
-
 class Ticker implements IAnimatable {
     public function Ticker (callback :Function) {
         _callback = callback;


Transferred from the Adobe Open Source Subversion Repository

Revision: 9407
Author:   cframpto@adobe.com
Date:     2009-08-19T22:11:34.142583Z

Log Message:
-----------
Reordering the if-statement in isMeasureFixed() exposed that hostFormat can be null when measure() is called if styles changed and measure is done before the next commitProperties.  This states test exposed this.

We should rethink if we want to clear hostFormat rather than have a hostFormatChanged flag.  If there is no hostFormat at measure then it has to be fixed because there is no line break format to check for auto-size.

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

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

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -2489,7 +2489,7 @@
      */
     mx_internal function isMeasureFixed():Boolean
     {
-        if (hostFormat.blockProgression != BlockProgression.TB)
+        if (!hostFormat || hostFormat.blockProgression != BlockProgression.TB)
             return true;

         // Is there some sort of width and some sort of height?
@@ -2685,7 +2685,7 @@

         var effectiveWidthInChars:int;

-        // If both height and width are NaN use 15 chars.  Otherwise if only
+        // If both height and width are NaN use 10 chars.  Otherwise if only
         // width is NaN, use 1.
         if (isNaN(_widthInChars))
            effectiveWidthInChars = isNaN(_heightInLines) ? 10 : 1;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10075
Author:   rfrishbe@adobe.com
Date:     2009-09-09T01:01:58.077369Z

Log Message:
-----------
Cleanups from the spark text changes and some bug fixes for VideoElement.  Also some PARB changes for UIComponent.

TitleBar: Changing the skin part type from Label to Textbase

UIComponent: skipMeasure()->canSkipMeasurement() to be in line with GraphicElement.  This has been PARB approved.
UIComponent: same with hasComplexLayoutMatrix...this replaces hasDeltaIdentityTransform.  This has been PARB approved.

StyleProtoChain: cleanup around what interfaces to use

TextBase: clean up code that’s no longer needed.

VideoElement: Fixing 4 bugs:
SDK-22824: sourceLastPlayed keeps track of what video file we’ve called play() with last.  This way if a user pauses the video and wants to start it up again at the same point, we can call play(null) on the underlying FLVPlayback videoPlayer.  However, anytime the souce changes, we want to null out sourceLastPlayed.  This was causing a bug when someone set the source to null and then reset it to it’s previous value.

SDK-23034 (GUMBO_PRIORITY): This deals with some FLVPlayback quirks around sizing.  I had put in a fix so we weren’t setting width/height on the underlying videoPlayer too many times, but apparently we need to make sure it always gets called once.  Hopefully when switching to Strobe we can cleanup this logic...I put a FIXME in to do this.

SDK-21947/ SDK-22533 - some video files don’t always send out a metadata event.  I’m not quite sure why this is, but in case this happens, we do a check in the ready handler to see whether we should call invalidateSize() to make sure it gets sized properly.

QE notes:-
Doc notes:-
Bugs: SDK-22824, SDK-23034, SDK-21947, SDK-22533
Reviewer: Glenn, Corey
Tests run: checkintests, Button, GraphicTags, VideoElement, and VideoPlayer (some VideoPlayer were failing, but I think it should be fine)
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.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/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/RemoveActionInstance.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/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/VideoElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -2324,10 +2324,10 @@
     /**
      *  @private
      */
-    override protected function skipMeasure():Boolean
+    override protected function canSkipMeasurement():Boolean
     {
         autoSize = false;
-        return super.skipMeasure();
+        return super.canSkipMeasurement();
     }

     /**


correct PTS/DTS parsing according to http://dvd.sourceforge.net/dvdinfo/pes-hdr.html, bit 0 is not used. change mask accordingly.

--- src/com/mangui/HLS/muxing/PES.as
+++ src/com/mangui/HLS/muxing/PES.as
@@ -60,15 +60,15 @@
             // Grab the timestamp from PTS data (spread out over 5 bytes):
             // XXXX---X -------- -------X -------- -------X
             var _pts:uint = ((data.readUnsignedByte() & 14) << 29) +
-                ((data.readUnsignedShort() & 65535) << 14) +
-                ((data.readUnsignedShort() & 65535) >> 1);
+                ((data.readUnsignedShort() & 65534) << 14) +
+                ((data.readUnsignedShort() & 65534) >> 1);
             length -= 5;
             var _dts:uint = _pts;
             if(flags == 3) {
                 // Grab the DTS (like PTS)
                 _dts = ((data.readUnsignedByte() & 14) << 29) +
-                    ((data.readUnsignedShort() & 65535) << 14) +
-                    ((data.readUnsignedShort() & 65535) >> 1);
+                    ((data.readUnsignedShort() & 65534) << 14) +
+                    ((data.readUnsignedShort() & 65534) >> 1);
                 length -= 5;
             }
             pts = Math.round(_pts / PES.TIMESCALE);


Fix shell quotation.

Fix shell quotation.

	* build-aux/children.as (children_kill): We do want to split the
	$pids.

--- build-aux/children.as
+++ build-aux/children.as
@@ -278,7 +278,7 @@
 {
   local pids
   pids=$(children_pid "$[@]")
-  pids_kill "$pids"
+  pids_kill $pids
 }


fix comment for asdoc

fix comment for asdoc

--- src/com/google/analytics/core/IdleTimer.as
+++ src/com/google/analytics/core/IdleTimer.as
@@ -45,18 +45,18 @@
         private var _lastMove:int;
         private var _inactivity:Number;

+        /* note:
+           the timer will loop every <delay> seconds
+           on each loop
+           we compare the <last mouse move time> to the <current time>
+           and if the result is equal or bigger than the
+           <inativity> seconds we start a sessionTimer
+           -> if the mouse move again we reset the sessionTimer
+           -> if the mouse does not move till we reach the end of the sessionTimeout
+              we reset the session
+        */
         /**
         * Create an instance of the IdleTimer
-        *
-        * note:
-        * the timer will loop every <delay> seconds
-        * on each loop
-        * we compare the <last mouse move time> to the <current time>
-        * and if the result is equal or bigger than the
-        * <inativity> seconds we start a sessionTimer
-        * -> if the mouse move again we reset the sessionTimer
-        * -> if the mouse does not move till we reach the end of the sessionTimeout
-        *    we reset the session
         *
         * @param delay number of seconds to check for idle
         * @param inactivity number of seconds to check for inactivity


Make the constants const so it doesn't warn when I use them in data binding expressions

--- src/org/jivesoftware/xiff/data/Presence.as
+++ src/org/jivesoftware/xiff/data/Presence.as
@@ -43,23 +43,23 @@
 	 */
 	public class Presence extends XMPPStanza implements ISerializable
 	{
-		// Static variables for specific type strings
-		public static var AVAILABLE_TYPE:String = "available";
-		public static var UNAVAILABLE_TYPE:String = "unavailable";
-		public static var PROBE_TYPE:String = "probe";
-		public static var SUBSCRIBE_TYPE:String = "subscribe";
-		public static var UNSUBSCRIBE_TYPE:String = "unsubscribe";
-		public static var SUBSCRIBED_TYPE:String = "subscribed";
-		public static var UNSUBSCRIBED_TYPE:String = "unsubscribed";
-		public static var ERROR_TYPE:String = "error";
+		// Static constants for specific type strings
+		public static const AVAILABLE_TYPE:String = "available";
+		public static const UNAVAILABLE_TYPE:String = "unavailable";
+		public static const PROBE_TYPE:String = "probe";
+		public static const SUBSCRIBE_TYPE:String = "subscribe";
+		public static const UNSUBSCRIBE_TYPE:String = "unsubscribe";
+		public static const SUBSCRIBED_TYPE:String = "subscribed";
+		public static const UNSUBSCRIBED_TYPE:String = "unsubscribed";
+		public static const ERROR_TYPE:String = "error";

-		// Static variables for show values
-		public static var SHOW_AWAY:String = "away";
-		public static var SHOW_CHAT:String = "chat";
-		public static var SHOW_DND:String = "dnd";
-		public static var SHOW_NORMAL:String = "normal";
-		public static var SHOW_XA:String = "xa";
-		public static var SHOW_OFFLINE:String = "offline";
+		// Static constants for show values
+		public static const SHOW_AWAY:String = "away";
+		public static const SHOW_CHAT:String = "chat";
+		public static const SHOW_DND:String = "dnd";
+		public static const SHOW_NORMAL:String = "normal";
+		public static const SHOW_XA:String = "xa";
+		public static const SHOW_OFFLINE:String = "offline";

 		// Private node references for property lookups
 		private var myShowNode:XMLNode;


fixed MaterialGroup textures initialization from constructor arguments

--- src/aerys/minko/scene/node/group/MaterialGroup.as
+++ src/aerys/minko/scene/node/group/MaterialGroup.as
@@ -34,11 +34,17 @@
 			_textures.dispatchEvent(new Event(Event.ADDED));
 		}

-		public function MaterialGroup(effect : IRenderingEffect, ...children)
+		public function MaterialGroup(effect : IRenderingEffect, ...textures)
 		{
-			super(children);
+			super();

+			initialize(effect, textures);
+		}
+
+		private function initialize(effect : IRenderingEffect, textures : Array) : void
+		{
 			_effect = effect;
+			_textures = new Group(textures);

 			actions.unshift(MaterialGroupAction.materialGroupAction,
 							new PushEffectAction());


Implement HALT bug

Implement HALT bug

--- index.as
+++ index.as
@@ -61,7 +61,7 @@
   // open_rom("./missile-command.gb");
   // open_rom("./tetris.gb");
   // open_rom("./opus5.gb");
-  open_rom("./dr-mario.gb");
+  // open_rom("./dr-mario.gb");
   // open_rom("./boxxle.gb");
   // open_rom("./super-mario-land.gb");

@@ -86,7 +86,7 @@
   // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/10-bit ops.gb");
   // open_rom("/Users/mehcode/Workspace/gb-test-roms/cpu_instrs/individual/11-op a,(hl).gb");

-  // open_rom("../gb-test-roms/halt_bug.gb");
+  open_rom("../gb-test-roms/halt_bug.gb");

   dump_rom();

@@ -284,7 +284,8 @@

   if address == 0xFF0F {
     // IF – Interrupt Flag (R/W)
-    return IF;
+    // NOTE: Unused bits are 1 in this register because who the fuck knows
+    return IF | 0xE0;
   } else if address == 0xFFFF {
     // IE – Interrupt Enable (R/W)
     return IE;
@@ -2244,7 +2245,17 @@

 // [76] HALT
 def op_76() {
-  HALT = true;
+  if (not IME) and (IE & IF & 0x1F) != 0 {
+    cpu_skip = true;
+  } else {
+    HALT = true;
+  }
+
+  // } else {
+  //   if (IE & IF & 0x1F) != 0 {
+  //
+  //   }
+  // }
 }

 // [77] LD (HL), A
@@ -4238,6 +4249,8 @@
 // =============================================================================
 // [CP] CPU
 // =============================================================================
+let cpu_skip;
+
 def cpu_init() {
   // Memory
   vram = malloc(0x2000);
@@ -4255,6 +4268,8 @@
 }

 def cpu_reset() {
+  cpu_skip = false;
+
   // CPU variables
   PC = 0x0100;
   SP = 0xFFFE;
@@ -4306,18 +4321,22 @@

 def cpu_step(): uint8 {
   // IF HALT; just return 4 (cycles)
-  if HALT and IME {
-    return 4;
+  if HALT {
+    if IME or (IE & IF & 0x1F) == 0 {
+      return 4;
+    } else {
+      HALT = false;
+    }
   }

   // Get next opcode
   let opcode = mmu_next8();

-  // If HALT but interrupts are disabled
-  // FIXME: Trying to recreate the HALT bug -- still not broken the right way
-  if HALT {
+  // BUG: Skip instruction when HALT happens with interrupts turned off
+  //      and a pending interrupt
+  if cpu_skip {
     PC -= 1;
-    HALT = false;
+    cpu_skip = false;
   }

   // Check if valid/known instruction


Make parse_addr_spec static.

Make parse_addr_spec static.

Uniformity with master.

--- swfcat.as
+++ swfcat.as
@@ -260,7 +260,7 @@

         /* Parse an address in the form "host:port". Returns an Object with
            keys "host" (String) and "port" (int). Returns null on error. */
-        private function parse_addr_spec(spec:String):Object
+        private static function parse_addr_spec(spec:String):Object
         {
             var parts:Array;
             var addr:Object;


Added some asdoc explaining how the padding works...

Signed-off-by: Don-Duong Quach <810608f14f8c036b578d4e5c6fb9aa2c363c1b16@yahoo.com>

--- src/org/openPyro/core/Padding.as
+++ src/org/openPyro/core/Padding.as
@@ -13,6 +13,17 @@
 		private var _bottom:Number;
 		private var _left:Number;

+		/**
+		 * Creates a new Padding object.
+		 *
+		 * All arguments are optional and the behaviour with missing arguments is based on
+		 * the way padding works in standard CSS. If you just provide one argument then that
+		 * value is used on all sides. If you provide two arguments then the first argument is
+		 * the padding on the top and bottom and the second argument is the padding on the right
+		 * and left. If you provide three arguments then the first is the top padding, second
+		 * is right and left padding and the third argument is the bottom padding. If you supply
+		 * all four arguments then each argument is the padding for the side it is named on.
+		 */
 		public function Padding(top:Number=0, right:Number=-1, bottom:Number=-1, left:Number=-1)
 		{
 			_top = top;


Added "0", fixes for setChild/setChildren

--- frameworks/projects/XML/as/src/XML.as
+++ frameworks/projects/XML/as/src/XML.as
@@ -306,6 +306,15 @@
 			// get rid of nodes we do not want

 			//loop through the child nodes and build XML obejcts for each.
+			Object.defineProperty(this,"0",
+				{
+					get: function() { return this; },
+					set: function(newValue:*) {
+					},
+					enumerable: true,
+					configurable: true
+				}
+			);

 		}

@@ -1703,15 +1712,17 @@
 				len = chldrn.length() -1;
 				for (i= len; i >= 0;  i--)
 				{
+					removeChild(chldrn[i]);
 					// remove the nodes
 					// remove the children
 					// adjust the childIndexes
 				}
 				var curChild = _children[childIdx];
 				// Now add them in.
-				for each(chld in elements)
-				{
-
+				len = elements.length();
+				for(i=0;i<len;i++)
+				{
+					child = elements[i];
 					if(!curChild)
 					{
 						curChild = appendChild(chld);
@@ -1740,7 +1751,7 @@
 				list[0] = value;
 				value = list;
 			}
-			if(elements is XMLList)
+			if(value is XMLList)
 			{
 				// remove all existing elements
 				var chldrn:XMLList = this.child(elementName);
@@ -1751,15 +1762,17 @@
 				len = chldrn.length() -1;
 				for (i= len; i >= 0;  i--)
 				{
+					removeChild(chldrn[i]);
 					// remove the nodes
 					// remove the children
 					// adjust the childIndexes
 				}
 				var curChild = _children[childIdx];
 				// Now add them in.
-				for each(chld in elements)
-				{
-
+				len = value.length();
+				for(i=0;i<len;i++)
+				{
+					child = value[i];
 					if(!curChild)
 					{
 						curChild = appendChild(chld);


Rewind if play is clicked when finished playing.

--- src/goplayer/SkinnedPlayerView.as
+++ src/goplayer/SkinnedPlayerView.as
@@ -55,7 +55,6 @@
       if (!player.playing)
         registerInteraction()

-      video.visible = !player.finished
       skin.update()
     }

@@ -69,7 +68,9 @@

     public function handleUserPlay() : void
     {
-      if (player.started)
+      if (player.finished)
+        player.rewind()
+      else if (player.started)
         player.paused = false
       else
         player.start()


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

--- frameworks/projects/rpc/src/mx/messaging/Producer.as
+++ frameworks/projects/rpc/src/mx/messaging/Producer.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  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.
 //
 ////////////////////////////////////////////////////////////////////////////////


- enhancement: The debug output for element styles now contains CSS file information for each property

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

--- src/reprise/css/CSSDeclaration.as
+++ src/reprise/css/CSSDeclaration.as
@@ -332,9 +332,9 @@
 			var str:String = "CSSDeclaration\n{\n";
 			for (var key:String in m_properties)
 			{
-				str += "\t" + key + " : " +
-					CSSProperty(m_properties[key]).specifiedValue() +
-					(CSSProperty(m_properties[key]).unit() || '') + ";\n";
+				var property : CSSProperty = CSSProperty(m_properties[key]);
+				str += "\t" + key + " : " + property.specifiedValue() +
+					(property.unit() || '') + "; //" + (property.cssFile() || '[no file]') + "\n";
 			}

 			return str + '}';


simplified code, taking advantage of new automatic unbusy trigger

Change-Id: Ie3243180599732ff7d546aff9311e994a6568c22

--- WeaveData/src/weave/utils/GeometryStreamDecoder.as
+++ WeaveData/src/weave/utils/GeometryStreamDecoder.as
@@ -24,13 +24,11 @@
 	import flash.utils.Dictionary;
 	import flash.utils.getTimer;

-	import mx.utils.NameUtil;
-
 	import weave.api.WeaveAPI;
 	import weave.api.core.ICallbackCollection;
 	import weave.api.core.ILinkableObject;
 	import weave.api.data.IQualifiedKey;
-	import weave.api.getCallbackCollection;
+	import weave.api.linkableObjectIsBusy;
 	import weave.api.newLinkableChild;
 	import weave.api.primitives.IBounds2D;
 	import weave.api.reportError;
@@ -272,7 +270,10 @@
 			}

 			// collective bounds changed
-			_triggerMetadataCallbacksIfQueueEmpty();
+
+			// Weave automatically triggers callbacks when all tasks complete
+			if (!linkableObjectIsBusy(metadataCallbacks))
+				metadataCallbacks.triggerCallbacks();
 		}

 		private var _projectionWKT:String = ""; // stores the well-known-text defining the projection
@@ -299,34 +300,6 @@
 			for each (geom in geometries)
 				if (geom != null)
 					geom.geomType = value;
-		}
-
-		/**
-		 * The keys in this dictionary are ByteArray objects that are currently being processed.
-		 */
-		private const _metadataStreamQueue:Dictionary = new Dictionary();
-		private const _geometryStreamQueue:Dictionary = new Dictionary();
-
-		private function _triggerMetadataCallbacksIfQueueEmpty():void
-		{
-			for (var o:* in _metadataStreamQueue)
-				return;
-
-			if (debug)
-				trace('metadata queue empty, metadataCallbacks triggered');
-
-			metadataCallbacks.triggerCallbacks();
-		}
-
-		private function _triggerGeometryCallbacksIfQueueEmpty():void
-		{
-			for (var o:* in _geometryStreamQueue)
-				return;
-
-			if (debug)
-				trace('geometry queue empty, callbacks triggered');
-
-			getCallbackCollection(this).triggerCallbacks();
 		}

 		/**
@@ -494,15 +467,11 @@
 	            }
 	            catch(e:EOFError) { }

-				// remove this stream from the processing list
-				delete _metadataStreamQueue[stream];
-
 				return 1; // done
 			};

-			_metadataStreamQueue[stream] = NameUtil.createUniqueName(stream);
-
-			WeaveAPI.StageUtils.startTask(this, task, WeaveAPI.TASK_PRIORITY_PARSING, _triggerMetadataCallbacksIfQueueEmpty);
+			// Weave automatically triggers callbacks when all tasks complete
+			WeaveAPI.StageUtils.startTask(metadataCallbacks, task, WeaveAPI.TASK_PRIORITY_PARSING);
 		}

 		/**
@@ -603,15 +572,11 @@
 	            }
 	            catch(e:EOFError) { }

-				// remove this stream from the processing list
-				delete _geometryStreamQueue[stream];
-
 				return 1; // done
 			}

-			_geometryStreamQueue[stream] = NameUtil.createUniqueName(stream);
-
-			WeaveAPI.StageUtils.startTask(this, task, WeaveAPI.TASK_PRIORITY_PARSING, _triggerGeometryCallbacksIfQueueEmpty);
+				// Weave automatically triggers callbacks when all tasks complete
+			WeaveAPI.StageUtils.startTask(this, task, WeaveAPI.TASK_PRIORITY_PARSING);
 		}


Use e.bytesLoaded, not 0, to read the client address.

An argument of 0 works for Jonathan but for be it returns a 0-length
string.

--- swfcat.as
+++ swfcat.as
@@ -154,7 +154,7 @@

             s_f.addEventListener(ProgressEvent.SOCKET_DATA, function (e:ProgressEvent):void {
                 var client_spec:String = new String();
-		client_spec = s_f.readMultiByte(0, "utf-8");
+		client_spec = s_f.readMultiByte(e.bytesLoaded, "utf-8");
                 puts("Facilitator: got \"" + client_spec + "\"");
                 //s_c.writeBytes(bytes);
 		/* Need to parse the bytes to get the new client. Fill out client_address and client_port */


fixed errors in buildUrlWithParams()

fixed errors in buildUrlWithParams()

--- WeaveJS/src/weavejs/net/Servlet.as
+++ WeaveJS/src/weavejs/net/Servlet.as
@@ -190,17 +190,15 @@
 				url = url.substr(0, qi);
 			}

-			for each (var key:String in params)
+			for (var key:String in params)
 			{
 				if (queryString)
 					queryString += '&';
 				var value:* = params[key];
 				if (params != null && typeof params === 'object')
-					value = JSON.stringify(value);
-				queryString += encodeURIComponent(value);
-				params[key]
-			}
-
+					value = JS.isPrimitive(value) ? value : JSON.stringify(value);
+				queryString += encodeURIComponent(key) + '=' + encodeURIComponent(value);
+			}
 			return url + '?' + queryString;
 		}
 	}