Transferred from the Adobe Open Source Subversion Repository

Revision: 4366
Author:   dloverin@adobe.com
Date:     2008-12-19T20:54:06.697860Z

Log Message:
-----------
Remove hard references to the Application class.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Alex
tests: checkintests, Application, controls, containers/Accordion, containers/ApplicationControlBar, containers/ControlBar

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ApplicationControlBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddChild.as</path>

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

--- frameworks/projects/mx/src/mx/containers/ApplicationControlBar.as
+++ frameworks/projects/mx/src/mx/containers/ApplicationControlBar.as
@@ -13,7 +13,6 @@
 {

 import flash.events.Event;
-import mx.core.Application;
 import mx.core.mx_internal;
 import mx.styles.IStyleClient;

@@ -191,7 +190,9 @@
 	/**
 	 *  If true, specifies that the ApplicationControlBar should be docked to the
 	 *  top of the application. If false, specifies that the ApplicationControlBar
-	 *  gets sized and positioned just like any other component.
+	 *  gets sized and positioned just like any other component. This property is supported when
+	 *  the application is of type Application, otherwise the value of
+	 *  dock has no effect.
 	 *
 	 *  @default false
 	 */
@@ -263,8 +264,9 @@
 		{
 			dockChanged = false;

-			if (parent is Application)
-				Application(parent).dockControlBar(this, _dock);
+            var applicationClass:Class = Class(systemManager.getDefinitionByName("mx.core::Application"));
+			if (applicationClass && parent is applicationClass)
+				applicationClass(parent).dockControlBar(this, _dock);
 		}
 	}


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

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

 package spark.effects.animation
 {


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

--- frameworks/projects/spark/src/spark/validators/NumberValidator.as
+++ frameworks/projects/spark/src/spark/validators/NumberValidator.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


WIP Improved seeking logic.

WIP Improved seeking logic.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -1939,16 +1939,6 @@
 		 */
 		private function onTag(tag:FLVTag):Boolean
 		{
-			if(true)
-			{
-				var b:ByteArray = new ByteArray();
-				tag.write(b);
-				attemptAppendBytes(b);
-				_flvParserDone = true;
-				return false;
-			}
-
-			var i:int;

 			// Make sure we don't go past the live edge even if it changes while seeking.
 			if(indexHandler && indexHandler.isLiveEdgeValid)
@@ -1968,75 +1958,16 @@
 			}

 			var realTimestamp:int = wrapTagTimestampToFLVTimestamp(tag.timestamp);
-
-			// Apply bump if present.
-			if(indexHandler && indexHandler.bumpedTime
-				&& (_enhancedSeekTarget > indexHandler.bumpedSeek
-					|| _seekTarget > indexHandler.bumpedSeek))
-			{
-				CONFIG::LOGGING
-				{
-					logger.debug("INDEX HANDLER REQUESTED TIME BUMP to " + indexHandler.bumpedSeek);
-				}
-				_seekTarget = indexHandler.bumpedSeek;
-				_enhancedSeekTarget = indexHandler.bumpedSeek;
-			}
-
-			if(_enhancedSeekTarget == Number.MAX_VALUE)
-			{
-				CONFIG::LOGGING
-				{
-					logger.debug("Left over enhanced seek-to-end, aborting (_seekTarget=" + _seekTarget + ").");
-				}
-				_enhancedSeekTarget = NaN;
-				_seekTarget = NaN;
-			}
-
-			if(indexHandler)
-				indexHandler.bumpedTime = false;
-
-			var currentTime:Number = (realTimestamp / 1000.0) + _fileTimeAdjustment;
-
+			var currentTime:Number = realTimestamp / 1000.0;
+
+			if (isNaN(_initialTime))
+				_initialTime = currentTime;
+
 			CONFIG::LOGGING
 			{
 				logger.debug("Saw tag @ " + realTimestamp + " timestamp=" + tag.timestamp + " currentTime=" + currentTime + " _seekTime=" + _seekTime + " _enhancedSeekTarget="+ _enhancedSeekTarget + " dataSize=" + tag.dataSize);
 			}

-			// Fix for http://bugs.adobe.com/jira/browse/FM-1544
-			// We need to take into account that flv tags' timestamps are 32-bit unsigned ints
-			// This means they will roll over, but the bootstrap times won't, since they are 64-bit unsigned ints
-			/*while (currentTime < _initialTime)
-			{
-				// Add 2^32 (4,294,967,296) milliseconds to the currentTime
-				// currentTime is in seconds so we divide that by 1000
-				currentTime += 4294967.296;
-			}*/
-
-			if (_playForDuration >= 0)
-			{
-				if (_initialTime >= 0)	// until we know this, we don't know where to stop, and if we're enhanced-seeking then we need that logic to be what sets this up
-				{
-					if (currentTime > (_initialTime + _playForDuration))
-					{
-
-						if(isNaN(_initialTime))
-						{
-							_initialTime = currentTime;
-						}
-
-						setState(HTTPStreamingState.STOP);
-						_flvParserDone = true;
-						if (_seekTime < 0)
-						{
-							_seekTime = _playForDuration + _initialTime;	// FMS behavior... the time is always the final time, even if we seek to past it
-							// XXX actually, FMS  actually lets exactly one frame though at that point and that's why the time gets to be what it is
-							// XXX that we don't exactly mimic that is also why setting a duration of zero doesn't do what FMS does (plays exactly that one still frame)
-						}
-						return false;
-					}
-				}
-			}
-
 			if (!isNaN(_enhancedSeekTarget))
 			{
 				if (currentTime < _enhancedSeekTarget)
@@ -2045,6 +1976,7 @@
 					{
 						logger.debug("Skipping FLV tag @ " + currentTime + " until " + _enhancedSeekTarget);
 					}
+
 					if (_enhancedSeekTags == null)
 					{
 						_enhancedSeekTags = new Vector.<FLVTag>();
@@ -2083,14 +2015,6 @@
 					// We've reached the tag whose timestamp is greater
 					// than _enhancedSeekTarget, so we can stop seeking.
 					_enhancedSeekTarget = NaN;
-
-					// Update _seekTime even though it's not used.
-					if (_seekTime < 0)
-						_seekTime = currentTime;
-
-					// Update initial time with time of tag.
-					if(isNaN(_initialTime))
-						_initialTime = currentTime;

 					// Process any client side seek tags.
 					if (_enhancedSeekTags != null && _enhancedSeekTags.length > 0)
@@ -2163,9 +2087,6 @@
 						// Update the last written time so we don't RESET_SEEK inappropriately.
 						lastWrittenTime = wrapTagTimestampToFLVTimestamp(tag.timestamp) / 1000.0;

-						// We are safe to consume the script data tags now.
-						doConsumeAllScriptDataTags(wrapTagTimestampToFLVTimestamp(tag.timestamp));
-
 					}

 					// and append this one
@@ -2173,6 +2094,230 @@
 					tag.write(bytes);
 					_flvParserProcessed += bytes.length;

+					attemptAppendBytes(bytes);
+
+					_flvParserDone = true;
+					return false;	// and end of parsing (caller must dump rest, unparsed)
+				}
+
+				return true;
+			} // enhanced seek
+
+			if(true)
+			{
+
+				var b:ByteArray = new ByteArray();
+				tag.write(b);
+				attemptAppendBytes(b);
+				_flvParserDone = true;
+				return false;
+			}
+
+
+			//------------------------------------------------
+			//------------------------------------------------
+			//------------------------------------------------
+
+			var i:int;
+
+
+			// Apply bump if present.
+			if(indexHandler && indexHandler.bumpedTime
+				&& (_enhancedSeekTarget > indexHandler.bumpedSeek
+					|| _seekTarget > indexHandler.bumpedSeek))
+			{
+				CONFIG::LOGGING
+				{
+					logger.debug("INDEX HANDLER REQUESTED TIME BUMP to " + indexHandler.bumpedSeek);
+				}
+				_seekTarget = indexHandler.bumpedSeek;
+				_enhancedSeekTarget = indexHandler.bumpedSeek;
+			}
+
+			if(_enhancedSeekTarget == Number.MAX_VALUE)
+			{
+				CONFIG::LOGGING
+				{
+					logger.debug("Left over enhanced seek-to-end, aborting (_seekTarget=" + _seekTarget + ").");
+				}
+				_enhancedSeekTarget = NaN;
+				_seekTarget = NaN;
+			}
+
+			if(indexHandler)
+				indexHandler.bumpedTime = false;
+
+			CONFIG::LOGGING
+			{
+				logger.debug("Saw tag @ " + realTimestamp + " timestamp=" + tag.timestamp + " currentTime=" + currentTime + " _seekTime=" + _seekTime + " _enhancedSeekTarget="+ _enhancedSeekTarget + " dataSize=" + tag.dataSize);
+			}
+
+			// Fix for http://bugs.adobe.com/jira/browse/FM-1544
+			// We need to take into account that flv tags' timestamps are 32-bit unsigned ints
+			// This means they will roll over, but the bootstrap times won't, since they are 64-bit unsigned ints
+			/*while (currentTime < _initialTime)
+			{
+				// Add 2^32 (4,294,967,296) milliseconds to the currentTime
+				// currentTime is in seconds so we divide that by 1000
+				currentTime += 4294967.296;
+			}*/
+
+			if (_playForDuration >= 0)
+			{
+				if (_initialTime >= 0)	// until we know this, we don't know where to stop, and if we're enhanced-seeking then we need that logic to be what sets this up
+				{
+					if (currentTime > (_initialTime + _playForDuration))
+					{
+
+						setState(HTTPStreamingState.STOP);
+						_flvParserDone = true;
+						if (_seekTime < 0)
+						{
+							_seekTime = _playForDuration + _initialTime;	// FMS behavior... the time is always the final time, even if we seek to past it
+							// XXX actually, FMS  actually lets exactly one frame though at that point and that's why the time gets to be what it is
+							// XXX that we don't exactly mimic that is also why setting a duration of zero doesn't do what FMS does (plays exactly that one still frame)
+						}
+						return false;
+					}
+				}
+			}
+
+			if (!isNaN(_enhancedSeekTarget))
+			{
+				if (currentTime < _enhancedSeekTarget)
+				{
+					CONFIG::LOGGING
+					{
+						logger.debug("Skipping FLV tag @ " + currentTime + " until " + _enhancedSeekTarget);
+					}
+					if (_enhancedSeekTags == null)
+					{
+						_enhancedSeekTags = new Vector.<FLVTag>();
+					}
+
+					if (tag is FLVTagVideo)
+					{
+						if (_flvParserIsSegmentStart)
+						{
+							// Generate client side seek tag.
+							var _muteTag:FLVTagVideo = new FLVTagVideo();
+							_muteTag.timestamp = tag.timestamp; // may get overwritten, ok
+							_muteTag.codecID = FLVTagVideo(tag).codecID; // same as in use
+							_muteTag.frameType = FLVTagVideo.FRAME_TYPE_INFO;
+							_muteTag.infoPacketValue = FLVTagVideo.INFO_PACKET_SEEK_START;
+
+							// and start saving, with this as the first...
+							_enhancedSeekTags.push(_muteTag);
+
+							_flvParserIsSegmentStart = false;
+
+						}
+
+						_enhancedSeekTags.push(tag);
+					}
+					//else is a data tag, which we are simply saving for later, or a
+					//FLVTagAudio, which we discard unless is a configuration tag
+					else if ((tag is FLVTagScriptDataObject) ||
+						(tag is FLVTagAudio && FLVTagAudio(tag).isCodecConfiguration))
+					{
+						_enhancedSeekTags.push(tag);
+					}
+				}
+				else
+				{
+					// We've reached the tag whose timestamp is greater
+					// than _enhancedSeekTarget, so we can stop seeking.
+					_enhancedSeekTarget = NaN;
+
+					// Update _seekTime even though it's not used.
+					if (_seekTime < 0)
+						_seekTime = currentTime;
+
+					// Update initial time with time of tag.
+					if(isNaN(_initialTime))
+						_initialTime = currentTime;
+
+					// Process any client side seek tags.
+					if (_enhancedSeekTags != null && _enhancedSeekTags.length > 0)
+					{
+						// We do this dance to get the NetStream into a clean state. If we don't
+						// do this, then we can get failed resume in some scenarios - ie, audio
+						// but no picture.
+						super.close();
+						super.play(null);
+						appendBytesAction(NetStreamAppendBytesAction.RESET_SEEK);
+
+						_initialTime = NaN;
+
+						var codecID:int;
+						var haveSeenVideoTag:Boolean = false;
+
+						// twiddle and dump
+						for (i=0; i<_enhancedSeekTags.length; i++)
+						{
+							var vTag:FLVTag = _enhancedSeekTags[i];
+
+							if (vTag.tagType == FLVTag.TAG_TYPE_VIDEO)
+							{
+								var vTagVideo:FLVTagVideo = vTag as FLVTagVideo;
+
+								if (vTagVideo.codecID == FLVTagVideo.CODEC_ID_AVC && vTagVideo.avcPacketType == FLVTagVideo.AVC_PACKET_TYPE_NALU)
+								{
+									// for H.264 we need to move the timestamp forward but the composition time offset backwards to compensate
+									var adjustment:int = wrapTagTimestampToFLVTimestamp(tag.timestamp) - wrapTagTimestampToFLVTimestamp(vTagVideo.timestamp); // how far we are adjusting
+									var compTime:int = vTagVideo.avcCompositionTimeOffset;
+									compTime -= adjustment; // do the adjustment
+									vTagVideo.avcCompositionTimeOffset = compTime;	// save adjustment
+								}
+
+								codecID = vTagVideo.codecID;
+								haveSeenVideoTag = true;
+							}
+
+							vTag.timestamp = tag.timestamp;
+
+							bytes = new ByteArray();
+							vTag.write(bytes);
+							_flvParserProcessed += bytes.length;
+
+							if(writeToMasterBuffer)
+								_masterBuffer.writeBytes(bytes);
+							appendBytes(bytes);
+						}
+
+						// Emit end of client seek tag if we started client seek.
+						if (haveSeenVideoTag)
+						{
+							trace("Writing end-of-seek tag");
+							var _unmuteTag:FLVTagVideo = new FLVTagVideo();
+							_unmuteTag.timestamp = tag.timestamp;  // may get overwritten, ok
+							_unmuteTag.codecID = codecID;
+							_unmuteTag.frameType = FLVTagVideo.FRAME_TYPE_INFO;
+							_unmuteTag.infoPacketValue = FLVTagVideo.INFO_PACKET_SEEK_END;
+							bytes = new ByteArray();
+							_unmuteTag.write(bytes);
+							_flvParserProcessed += bytes.length;
+
+							if(writeToMasterBuffer)
+								_masterBuffer.writeBytes(bytes);
+							appendBytes(bytes);
+						}
+
+						_enhancedSeekTags = null;
+
+						// Update the last written time so we don't RESET_SEEK inappropriately.
+						lastWrittenTime = wrapTagTimestampToFLVTimestamp(tag.timestamp) / 1000.0;
+
+						// We are safe to consume the script data tags now.
+						doConsumeAllScriptDataTags(wrapTagTimestampToFLVTimestamp(tag.timestamp));
+
+					}
+
+					// and append this one
+					bytes = new ByteArray();
+					tag.write(bytes);
+					_flvParserProcessed += bytes.length;
+
 					// Need to keep _initialTime up to date and we return below.
 					if (isNaN(_initialTime))
 					{
@@ -2222,7 +2367,7 @@
 					// but we need to be careful that this is the first tag of the segment, otherwise we don't know what duration means in relation to the tag timestamp

 					_flvParserIsSegmentStart = false; // also used by enhanced seek, but not generally set/cleared for everyone. be careful.
-					currentTime = (tag.timestamp / 1000.0) + _fileTimeAdjustment;
+					currentTime = (tag.timestamp / 1000.0);
 					if (currentTime + _source.fragmentDuration >= (_initialTime + _playForDuration))
 					{
 						// it stops somewhere in this segment, so we need to keep seeing the tags
@@ -3090,7 +3235,7 @@
 		private var _notifyPlayStartPending:Boolean = false;
 		private var _notifyPlayUnpublishPending:Boolean = false;

-		private var _initialTime:Number = -1;	// this is the timestamp derived at start-of-play (offset or not)... what FMS would call "0" - it is used to adjust super.time to be an absolute time
+		private var _initialTime:Number = NaN;	// this is the timestamp derived at start-of-play (offset or not)... what FMS would call "0" - it is used to adjust super.time to be an absolute time
 		private var _seekTime:Number = -1;		// this is the timestamp derived at end-of-seek (enhanced or not)... what we need to add to super.time (assuming play started at zero) - this guy is not used for anything much anymore
 		private var _lastValidTimeTime:Number = 0; // this is the last known timestamp returned; used to avoid showing garbage times.


Fix (from Nathan) for stupid URLLoader bug (by me).

--- tamarin-central/thane/as3src/flash/net/URLLoader.as
+++ tamarin-central/thane/as3src/flash/net/URLLoader.as
@@ -86,7 +86,9 @@
      */
     public function set dataFormat (format :String) :void
     {
-        throw new Error("Only the binary data format is implemented");
+        if (format != URLLoaderDataFormat.BINARY) {
+            throw new Error("Only the binary data format is implemented");
+        }
     }

     /**


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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

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

Modified Paths:
--------------
147 paths were modified

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

--- frameworks/projects/rpc/src/mx/rpc/events/SchemaLoadEvent.as
+++ frameworks/projects/rpc/src/mx/rpc/events/SchemaLoadEvent.as
@@ -26,6 +26,11 @@
 {
     /**
      * Creates a new SchemaLoadEvent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function SchemaLoadEvent(type:String, bubbles:Boolean = false,
         cancelable:Boolean = true, schema:Schema = null, location:String = null)
@@ -41,11 +46,21 @@

     /**
      * The full Schema document.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var schema:Schema;

     /**
      * Returns a copy of this SchemaLoadEvent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function clone():Event
     {
@@ -54,6 +69,11 @@

     /**
      * Returns a String representation of this SchemaLoadEvent.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function toString():String
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3963
Author:   hmuller@adobe.com
Date:     2008-10-29T22:57:08.994125Z

Log Message:
-----------
Fixed 17746: sync FxScrollbar's value,pageSize,maximum when the viewport property is set.

QE Notes: viewport and scroller mustella tests pass
Doc Notes: None
Bugs: sdk-17746
Reviewer: Ryan

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

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

--- frameworks/projects/spark/src/spark/components/HScrollBar.as
+++ frameworks/projects/spark/src/spark/components/HScrollBar.as
@@ -11,10 +11,9 @@

 package mx.components
 {
-import flash.ui.Keyboard;
-import mx.components.baseClasses.FxTextBase;
 import mx.components.baseClasses.FxScrollBar;
 import mx.core.ScrollUnit;
+import mx.core.IViewport;
 import mx.layout.ILayoutItem;
 import mx.layout.LayoutItemFactory;
 import mx.events.PropertyChangeEvent;
@@ -66,6 +65,17 @@
            return 0;
     }

+    override public function set viewport(newViewport:IViewport):void
+    {
+        super.viewport = newViewport;
+        if (newViewport)
+        {
+            maximum = newViewport.contentWidth - newViewport.width;
+            pageSize = newViewport.width;
+            value = newViewport.horizontalScrollPosition;
+        }
+    }
+
     //--------------------------------------------------------------------------
     //
     // Methods
@@ -270,4 +280,4 @@

 }

-}+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19226
Author:   harishs@adobe.com
Date:     2010-12-09T18:33:35.483731Z

Log Message:
-----------
QE notes:
Doc notes: Updated asdocs for spark validators/sort/sortfield
Bugs:
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/MatchingCollatorExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/SortingCollatorExample.mxml</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/SortingCollatorExample.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/StringToolsExample.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/StringToolsExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/globalization/examples/MatchingCollatorExample.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>

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

--- frameworks/projects/framework/src/mx/collections/Sort.as
+++ frameworks/projects/framework/src/mx/collections/Sort.as
@@ -42,7 +42,7 @@
  *     // In the real world, the collection would have more than one item.
  *     col.addItem({first:"Anders", last:"Dickerson"});
  *     // Create the Sort instance.
- *     var sort:ISort = new Sort();
+ *     var sort:Sort = new Sort();
  *     // Set the sort field; sort on the last name first, first name second.
  *     // Both fields are case-insensitive.
  *     sort.fields = [new SortField("last",true), new SortField("first",true)];
@@ -63,7 +63,7 @@
  *     var col:ICollectionView = new ArrayCollection();
  *     col.addItem("California");
  *     col.addItem("Arizona");
- *     var sort:ISort = new Sort();
+ *     var sort:Sort = new Sort();
  *     // There is only one sort field, so use a null
  *     // first parameter.
  *     sort.fields = [new SortField(null, true)];


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

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

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

Modified Paths:
--------------
663 paths were modified

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

--- frameworks/projects/framework/src/mx/core/IIMESupport.as
+++ frameworks/projects/framework/src/mx/core/IIMESupport.as
@@ -18,6 +18,11 @@
  *  IME is used for entering characters in Chinese, Japanese, and Korean.
  *
  *  @see flash.system.IME
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface IIMESupport
 {
@@ -33,6 +38,11 @@

 	/**
 	 *  The IME mode of the component.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function get imeMode():String;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18963
Author:   mhorn@adobe.com
Date:     2010-12-02T17:27:44.060822Z

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

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

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

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

 package mx.core
-{
+{
 import flash.accessibility.Accessibility;
 import flash.accessibility.AccessibilityProperties;
 import flash.display.BlendMode;
@@ -2843,14 +2843,14 @@
             invalidateParentSizeAndDisplayList();

             _width = value;
-
-			// The width is needed for the _layoutFeatures' mirror transform.
-			if (_layoutFeatures)
-			{
-				_layoutFeatures.layoutWidth = _width;
-				invalidateTransform();
-			}
-
+
+            // The width is needed for the _layoutFeatures' mirror transform.
+            if (_layoutFeatures)
+            {
+                _layoutFeatures.layoutWidth = _width;
+                invalidateTransform();
+            }
+
             if (hasEventListener("widthChanged"))
                 dispatchEvent(new Event("widthChanged"));
         }
@@ -3184,7 +3184,7 @@
     {
         super.scaleY = value;
     }
-
+
     //----------------------------------
     //  visible
     //----------------------------------
@@ -4170,16 +4170,16 @@

             updateCallbacks();

-			value ++;
-		}
-		else if (value == 0)
-			_nestLevel = value = 0;
-		else
-			value ++;
-
-		var childList:IChildList = (this is IRawChildrenContainer) ?
-			IRawChildrenContainer(this).rawChildren : IChildList(this);
-
+            value ++;
+        }
+        else if (value == 0)
+            _nestLevel = value = 0;
+        else
+            value ++;
+
+        var childList:IChildList = (this is IRawChildrenContainer) ?
+            IRawChildrenContainer(this).rawChildren : IChildList(this);
+
         var n:int = childList.numChildren;
         for (var i:int = 0; i < n; i++)
         {
@@ -5019,6 +5019,8 @@
      *  on a Button control so that you can use the Tab key to move focus
      *  to the control, but not have the control get focus when you click on it.
      *
+     *
The default value is true for most subclasses, except the Spark TabBar. In that case, the default is false.

+     *
      *  @default true
      *
      *  @langversion 3.0
@@ -6140,8 +6142,8 @@
             {
                 p.invalidateSize();
                 p.invalidateDisplayList();
-				if (value && parent is IContainerInvalidating)
-					(IContainerInvalidating(parent)).invalidateEstimatedSizesOfChildren();
+                if (value && parent is IContainerInvalidating)
+                    (IContainerInvalidating(parent)).invalidateEstimatedSizesOfChildren();
             }

             dispatchEvent(new Event("includeInLayoutChanged"));
@@ -7437,7 +7439,7 @@
         // trace("               " + p);
         parentChangedFlag = true;
     }
-
+
     /**
      *  @private
      */
@@ -8478,17 +8480,17 @@
             }
         }
         child.setEstimatedSize(cw, ch);
-		if (child is ILayoutManagerContainerClient)
-		{
-			var sameWidth:Boolean = isNaN(cw) && isNaN(oldcw) || cw == oldcw;
-			var sameHeight:Boolean = isNaN(ch) && isNaN(oldch) || ch == oldch;
+        if (child is ILayoutManagerContainerClient)
+        {
+            var sameWidth:Boolean = isNaN(cw) && isNaN(oldcw) || cw == oldcw;
+            var sameHeight:Boolean = isNaN(ch) && isNaN(oldch) || ch == oldch;
             if (!(sameHeight && sameWidth))
             {
                 if (child is IContainerInvalidating)
                     IContainerInvalidating(child).invalidateEstimatedSizesOfChildren();
                 ILayoutManagerContainerClient(child).validateEstimatedSizesOfChildren();
             }
-		}
+        }
     }

     /**
@@ -8516,9 +8518,9 @@
         {
             var layoutElement:ILayoutElement = childList.getChildAt(i) as ILayoutElement;
             if (!layoutElement)
-				continue;
-			if (!layoutElement.includeInLayout)
-				continue;
+                continue;
+            if (!layoutElement.includeInLayout)
+                continue;
             validateEstimatedSizesOfChild(layoutElement);
         }
         childEstimatedSizesChanged = false;
@@ -8534,7 +8536,7 @@
      */
     public function setEstimatedSize(estimatedWidth:Number = NaN,
                                        estimatedHeight:Number = NaN,
-										invalidateSize:Boolean = true):void
+                                        invalidateSize:Boolean = true):void
     {
         _estimatedWidth = estimatedWidth;
         _estimatedHeight = estimatedHeight;
@@ -9832,11 +9834,11 @@
         if (_width != w)
         {
             _width = w;
-			if(_layoutFeatures)
+            if(_layoutFeatures)
             {
-				_layoutFeatures.layoutWidth = w;  // for the mirror transform
-				invalidateTransform();
-			}
+                _layoutFeatures.layoutWidth = w;  // for the mirror transform
+                invalidateTransform();
+            }
             if (hasEventListener("widthChanged"))
                 dispatchEvent(new Event("widthChanged"));
             changed = true;
@@ -13308,7 +13310,7 @@
         features.layoutX = x;
         features.layoutY = y;
         features.layoutZ = z;
-		features.layoutWidth = width;  // for the mirror transform
+        features.layoutWidth = width;  // for the mirror transform
         _layoutFeatures = features;
         invalidateTransform();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11675
Author:   hmuller@adobe.com
Date:     2009-11-12T00:25:39.300334Z

Log Message:
-----------
Added minValue,maxValue,etc Style/Inspectable metadata tags for tools.

QE notes:
Doc notes:
Bugs: sdk-24100
Reviewer: Glenn
Tests run:
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/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/styles/metadata/BasicInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.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/primitives/VideoElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/styles/metadata/BasicNonInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.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/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientEntry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/styles/metadata/AdvancedInheritingTextStyles.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/components/supportClasses/Range.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -853,7 +853,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-[Style(name="focusThickness", type="Number", format="Length", inherit="no")]
+[Style(name="focusThickness", type="Number", format="Length", inherit="no", minValue="0.0")]

 /**
  *  Theme color of a component. This property controls the appearance of highlights,
@@ -2975,7 +2975,7 @@
     private var _alpha:Number = 1.0;

     [Bindable("alphaChanged")]
-    [Inspectable(defaultValue="1.0", category="General", verbose="1")]
+    [Inspectable(defaultValue="1.0", category="General", verbose="1", minValue="0.0", maxValue="1.0")]

     /**
      *  @private


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

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

 package mx.effects
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4257
Author:   shodgson@adobe.com
Date:     2008-12-09T00:29:54.102535Z

Log Message:
-----------
Bugs: BLZ-287 - Potential null pointer in MessageAgent set destination method.
      LCDS-522 - Add more configurable reconnect handling for connecting up again over the same channel when there is a connection failure/outage.

QA: Yes
Doc: No
Checkintests Passes: Yes

Details:
* MessageAgent (conceptually an abstract class but that's not supported by ActionScript) now defines a default value for the agentType member used in logging output - fixes BLZ-287.
* ChannelSet now resets to the beginning on its channels upon manual disconnects or otherwise. This fixes the scenario of starting off on streaming or RTMP, loosing connectivity temporarily and then getting stuck on a fallback polling channel. Chances of reconnecting on the preferred channel are better now, and manual disconnects/reconnects if you end up on a fallback channel that you don't want to stick with are now possible.
* Also, updates to Channel to support LCDS-522, and longer-duration reliable messaging reconnects.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Channel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
+++ frameworks/projects/rpc/src/mx/messaging/MessageAgent.as
@@ -165,7 +165,7 @@
      *  The type of MessageAgent.
      *  This variable is used for logging and MUST be assigned by subclasses.
      */
-    protected var _agentType:String;
+    protected var _agentType:String = "mx.messaging.MessageAgent";

     /**
      *  @private


Transferred from the Adobe Open Source Subversion Repository

Revision: 20844
Author:   jimurphy@adobe.com
Date:     2011-03-14T15:10:07.899037Z

Log Message:
-----------
block hero_private revs 20698,20699,20702 from being merged into trunk
revert 20839,20841,20842,20843

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodgeShader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>

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

--- frameworks/projects/spark/src/spark/components/TabBar.as
+++ frameworks/projects/spark/src/spark/components/TabBar.as
@@ -68,8 +68,9 @@
  *  of the tabs.
  *
  *
The set of tabs is defined by the dataProvider property.
- *  The appearance of the TabBar is defined by the TabBarSkin class.
- *  The appearance of each tab is defined by the TabBarButtonSkin class.

+ *  The appearance of each tab is defined by the TabBarSkin class.
+ *  By default, each tab is defined as a ButtonBarButton component
+ *  with a skin defined by the TabBarButtonSkin class.

  *
  *
You can use the TabBar control to set the active child of a ViewStack container,
  *  as the following example shows:

@@ -119,6 +120,7 @@
  *  @see mx.containers.ViewStack
  *  @see spark.skins.spark.TabBarSkin
  *  @see spark.skins.spark.TabBarButtonSkin
+ *  @see spark.components.ButtonBarButton
  *
  *  @includeExample examples/TabBarExample.mxml
  *


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

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

 package spark.events
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 21256
Author:   tkraikit@adobe.com
Date:     2011-05-14T00:28:09.753335Z

Log Message:
-----------
On iOS, hide keyboard when a text field (SkinnableTextBase) has focus and is editable if a touch interaction event (i.e. scroll) occurs.

QE notes: -
Doc notes: -
Bugs: SDK-30308
Reviewer: Jason Szeto
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
@@ -2190,6 +2190,15 @@
      */
     private function touchInteractionStartHandler(event:TouchInteractionEvent):void
     {
+        // if in iOS and keyboard is up and scrolling is occurring, drop the keyboard
+        var topLevelApp:Application = FlexGlobals.topLevelApplication as Application;
+        var _isIOS:Boolean = (Capabilities.version.indexOf("IOS") == 0);
+        if (_isIOS && topLevelApp && topLevelApp.isSoftKeyboardActive && editable)
+        {
+            // set focus
+            stage.focus = null;
+        }
+
         // Clear out the state because starting a scroll gesture should never
         // open the soft keyboard
         clearMouseDownState();


FLEX-33537: Updated to force properties to be validated before setting the focus to the textDisplay.  This seems to stop it tripping over itself with the visible skin states.

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
@@ -1875,6 +1875,9 @@
             }
             else
             {
+                //Force properties to validate before resetting focus.
+                validateProperties();
+
                 textDisplay.setFocus();
             }
         }
@@ -2692,18 +2695,23 @@
      */
     private function textDisplay_changeHandler(event:Event):void
     {
-        //trace(id, "textDisplay_changeHandler", textDisplay.text);
-
         // The text component has changed.  Generate an UPDATE_COMPLETE event.
         invalidateDisplayList();
-
+
+
         // We may have gone from empty to non-empty or vice-versa. This should
         // cause the prompt to show or hide.
-        if (prompt != null && prompt != "" && skin && skin.currentState &&
-            (skin.currentState.indexOf("WithPrompt") != -1 && text.length != 0 ||
-            skin.currentState.indexOf("WithPrompt") == -1 && text.length == 0))
-            invalidateSkinState();
-
+        if (prompt != null && prompt != "" && skin && skin.currentState)
+        {
+            //Checks when to invalidate skin. However when component is focused (and not prompt with focus) it will not have "WithPrompt".  Broken out for clarity.
+            if (skin.currentState.indexOf("WithPrompt") != -1 && text.length != 0 ||
+                skin.currentState.indexOf("WithPrompt") == -1 && text.length == 0)
+            {
+                invalidateSkinState();
+            }
+        }
+
+
         // Redispatch the event that came from the RichEditableText.
         dispatchEvent(event);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22136
Author:   eday@adobe.com
Date:     2011-08-22T22:00:16.436563Z

Log Message:
-----------
Item snapping fixes
SDK-31180: Touch interaction mode in a desktop app causes scrollbar problems
SDK-30922: Scrollbar size decreases when end items are snapped
SDK-31049: Setting snapModes at runtime during a throw does not snap correctly
SDK-31236: SpinnerList animateToSelectedIndex doesn't cancel on touch interaction

QE notes:
Doc notes:
Bugs: SDK-31180, SDK-30922, SDK-31049, SDK-31236
Reviewer: Evtim, Jason Szeto
Tests run: checkintests, mustella
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/VScrollBar.as
+++ frameworks/projects/spark/src/spark/components/VScrollBar.as
@@ -245,8 +245,11 @@
             // the extra margin we added to minimum and maximum for bounce/pull.
             var viewportHeight:Number = isNaN(viewport.height) ? 0 : viewport.height;

-            min = 0;
-            max = Math.max(0, maximum - viewportHeight);
+            // This code uses explicit values passed in from Scroller, since "item snapping" means
+            // there may be visible padding at either end of the content, and bounce/pull occurs beyond
+            // the padding
+            min = !isNaN(contentMinimum) ? contentMinimum : 0;
+            max = !isNaN(contentMaximum) ? contentMaximum : Math.max(0, maximum - viewportHeight);
         }
         else
         {
@@ -285,9 +288,9 @@
             if (!fixedThumbSize)
             {
                 // The minimum size we'll shrink the thumb to is either thumb.minHeight or thumbSize: whichever is smaller.
-                thumbSize = Math.max(Math.min(thumb.minHeight, thumbSize), thumbSize + pendingValue);
-            }
-            thumbPosTrackY = min;
+                thumbSize = Math.max(Math.min(thumb.minHeight, thumbSize), thumbSize + (pendingValue - min));
+            }
+            thumbPosTrackY = 0; // thumb is always at position zero when content is being "pulled"
         }
         if (pendingValue > max)
         {


bug fix for empty/sparse vector
added removeItems()

Change-Id: I18b4eb6fb0dc9c1105d48b798219f932b08763a9

--- WeaveData/src/weave/utils/VectorUtils.as
+++ WeaveData/src/weave/utils/VectorUtils.as
@@ -146,12 +146,18 @@
 		 */
 		public static function removeDuplicatesFromSortedArray(sorted:*):void
 		{
-			var i:int = 0;
+			var n:int = sorted.length;
+			if (n == 0)
+				return;
+			var write:int = 0;
 			var prev:* = sorted[0] === undefined ? null : undefined;
-			for each (var item:* in sorted)
+			for (var read:int = 0; read < n; ++read)
+			{
+				var item:* = sorted[read];
 				if (item !== prev)
-					sorted[i++] = prev = item;
-			sorted.length = i;
+					sorted[write++] = prev = item;
+			}
+			sorted.length = write;
 		}
 		/**
 		 * randomizes the order of the elements in the vector in O(n) time by modifying the given array.
@@ -454,6 +460,31 @@
 		}

 		/**
+		 * Removes items from an Array or Vector.
+		 * @param array Array or Vector
+		 * @param indices Array of indices to remove
+		 */
+		public static function removeItems(array:*, indices:Array):void
+		{
+			var n:int = array.length;
+			var skipList:Vector.<int> = Vector.<int>(indices).sort(Array.NUMERIC);
+			skipList.push(n);
+			removeDuplicatesFromSortedArray(skipList);
+
+			var iSkip:int = 0;
+			var skip:int = skipList[0];
+			var write:int = skip;
+			for (var read:int = skip; read < n; ++read)
+			{
+				if (read == skip)
+					skip = skipList[++iSkip];
+				else
+					array[write++] = array[read];
+			}
+			array.length = write;
+		}
+
+		/**
 		 * Gets a list of values of a property from a list of objects.
 		 * @param array An Array or Vector of Objects.
 		 * @param property The property name to get from each object


Changed note requirement labels

Changed note requirement labels

--- flexEditor/src/org/arisgames/editor/util/AppConstants.as
+++ flexEditor/src/org/arisgames/editor/util/AppConstants.as
@@ -175,11 +175,11 @@
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_TAG_DATABASE:String = "PLAYER_HAS_NOTE_WITH_TAG";
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_TAG_HUMAN:String = "Has Note With Tag";
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_LIKES_DATABASE:String = "PLAYER_HAS_NOTE_WITH_LIKES";
-	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_LIKES_HUMAN:String = "Has A Note With (x) Likes";
+	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_LIKES_HUMAN:String = "Created A Note With (qty) Likes";
 	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_COMMENTS_DATABASE:String = "PLAYER_HAS_NOTE_WITH_COMMENTS";
-	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_COMMENTS_HUMAN:String = "Has A Note With (x) Comments";
+	public static const REQUIREMENT_PLAYER_HAS_NOTE_WITH_COMMENTS_HUMAN:String = "Created A Note With (qty) Comments";
 	public static const REQUIREMENT_PLAYER_HAS_GIVEN_NOTE_COMMENTS_DATABASE:String = "PLAYER_HAS_GIVEN_NOTE_COMMENTS";
-	public static const REQUIREMENT_PLAYER_HAS_GIVEN_NOTE_COMMENTS_HUMAN:String = "Has Given (x) Comments On Notes";
+	public static const REQUIREMENT_PLAYER_HAS_GIVEN_NOTE_COMMENTS_HUMAN:String = "Given (qty) Comments On Notes";
 	public static const REQUIREMENT_PLAYER_HAS_RECEIVED_INCOMING_WEB_HOOK_DATABASE:String = "PLAYER_HAS_RECEIVED_INCOMING_WEB_HOOK";
 	public static const REQUIREMENT_PLAYER_HAS_RECEIVED_INCOMING_WEB_HOOK_HUMAN:String = "Received Incoming Web Hook";


Set constant of Folder ID to -1

Set constant of Folder ID to -1

--- flexEditor/src/org/arisgames/editor/util/AppConstants.as
+++ flexEditor/src/org/arisgames/editor/util/AppConstants.as
@@ -125,7 +125,7 @@

 	// Palette Tree Stuff
 	public static const PALETTE_TREE_SELF_FOLDER_ID:Number = 0;
-	public static const PLAYER_GENERATED_MEDIA_FOLDER_ID:Number = 99;
+	public static const PLAYER_GENERATED_MEDIA_FOLDER_ID:Number = -1;
 	public static const PLAYER_GENERATED_MEDIA_FOLDER_NAME:String = "Player Created Items";

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 21859
Author:   cframpto@adobe.com
Date:     2011-08-05T12:53:12.404708Z

Log Message:
-----------
1)  Changed the text getter to get the text cached in the textContainerManager rather than the text cached in RichEditableText in all cases except when displayAsPassword is true since the textContainerManager has the password char and not the text and when there is a pending text, textFlow or content change which means the textContainerManager doesn't have the current text.    This change will fix all the IME bugs having to do with a missing character since the caches were not in sync when the IME was used.

2)  Changed the behavior of the text setter to preserve the selection if FlexVersion.compatibilityVersion > FlexVersion.VERSION_4_5.  selectRange will clamp the selection to valid anchor and active positions so it handles the case where the amount of text decreases.  Glenn ok'ed this change in behavior.  TLF is going to add this behavior for us in TLF3 and I will rework the code in RET to use that instead.  SDK-30948 is the tracking bug for this.  A side-effect of this change is that the numeric stepper looks much better now since the cursor isn't reset to 0 on each step.

3)  Changed CURRENT_VERSION in FlexVersion to 4.6 for now.  There is an open bug on this to track this so if the final version ends up being different we can change it later.

QE notes: need some IME testing done - 2 text tests excluded have to be updated for new behavior
Doc notes: Change in behavior of text setter.  Selection is now maintained as it is for TextField.
Bugs: SDK-28999, SDK-30692, SDK-30819, SDK-30819, SDK-30264
Reviewer: Alex
Tests run: full mustella run
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/FlexVersion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as</path>

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

--- frameworks/projects/framework/src/mx/core/FlexVersion.as
+++ frameworks/projects/framework/src/mx/core/FlexVersion.as
@@ -48,7 +48,21 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public static const CURRENT_VERSION:uint = 0x04050000;
+    public static const CURRENT_VERSION:uint = 0x04060000;
+
+    /**
+     *  The compatibilityVersion value of Flex 4.6,
+     *  encoded numerically as a uint.
+     *  Code can compare this constant against
+     *  the compatibilityVersion
+     *  to implement version-specific behavior.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 11
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    public static const VERSION_4_6:uint = 0x04060000;

     /**
      *  The compatibilityVersion value of Flex 4.5,


Transferred from the Adobe Open Source Subversion Repository

Revision: 4593
Author:   jimurphy@adobe.com
Date:     2009-01-20T14:40:09.728921Z

Log Message:
-----------
Merged 3.x revisions 4591

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -9675,8 +9675,13 @@
         if (!targetParent)
             targetParent = DisplayObject(systemManager);

+        var thisParent:DisplayObject = $parent ? $parent : parent;
+
+        //  If the object is not on the display list then it is not visible.
+        if (!thisParent)
+            return new Rectangle();
+
         var pt:Point = new Point(x, y);
-        var thisParent:DisplayObject = $parent ? $parent : parent;
         pt = thisParent.localToGlobal(pt);

         // bounds of this object to return. Keep in global coordinates


Transferred from the Adobe Open Source Subversion Repository

Revision: 18545
Author:   rfrishbe@adobe.com
Date:     2010-11-11T21:48:58.243239Z

Log Message:
-----------
Just fixing up a white-space issue in UIComponent.

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 14197
Author:   hmuller@adobe.com
Date:     2010-02-16T21:52:40.988951Z

Log Message:
-----------
Merge 4.x revision 14151 to trunk.   Second try.

Revised mirroring support for popups in DropDownList and ComboBox.

UIComponent/invalidateLayoutDirection() now assumes that a component without an IVisualElement parent inherits a LTR coordinate system.

PopUpAnchor uses MatrixUtil.getConcatenatedMatrix() - which concatenates UIComponent layoutMatrix - for layout computations and MatrixUtil.getConcatenatedComputedMatrix() to find the stage coordinates of a popup's origin.

Sync'd MX ListBase/validateDisplayList(), which is a copy of UIComponent/validateDisplayList() with validateMatrix() changes made
in the UIComponent version.

QE notes: Full Mustella run was OK (thanks Joan!)
Doc notes:
Bugs:
Reviewer: Jason
Tests run:
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="dir" action="M">/flex/sdk/trunk/frameworks</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -7585,9 +7585,9 @@
         // set the _layoutFeatures.mirror flag.  Similarly, if mirroring isn't
         // required, then clear the _layoutFeatures.mirror flag.

-        const mirror:Boolean = (systemManager && (systemManager.document == this))
-            ? (thisLayoutDirection != "ltr")  // we're the Application, parent is null
-            : (parentElt && (parentElt.layoutDirection != thisLayoutDirection));
+        const mirror:Boolean = (parentElt)
+            ? (parentElt.layoutDirection != thisLayoutDirection)
+            : ("ltr" != thisLayoutDirection);

         if ((_layoutFeatures) ? (mirror != _layoutFeatures.mirror) : mirror)
         {
@@ -7596,12 +7596,12 @@
             _layoutFeatures.mirror = mirror;
             invalidateTransform();
         }
-
+
         //  If this is a leaf node, then we're done.  If not, the styleChanged() machinery
         //  (via commitProperties()) will deal with UIComponent children.   We have to
         //  deal with IVisualElement children that don't support styles, like
         //  GraphicElements, here.
-
+
         if (!(this is IVisualElementContainer))
             return;

@@ -7614,7 +7614,7 @@
             if (!(elt is IStyleClient))
                 elt.invalidateLayoutDirection();
         }
-    }
+    }

     private function transformOffsetsChangedHandler(e:Event):void
     {
@@ -8601,7 +8601,6 @@
      */
     public function validateDisplayList():void
     {
-        validateMatrix();
         oldLayoutDirection = layoutDirection;

         if (invalidateDisplayListFlag)
@@ -8613,11 +8612,15 @@
                 if (sm.isProxy || (sm == systemManager.topLevelSystemManager &&
                     sm.document != this))
                 {
-                    // Size ourself to the new measured width/height
+                    // Size ourself to the new measured width/height   This can
+                    // cause the _layoutFeatures computed matrix to become invalid
                     setActualSize(getExplicitOrMeasuredWidth(),
                                   getExplicitOrMeasuredHeight());
                 }
             }
+
+            // Don't validate transform.matrix until after setting actual size
+            validateMatrix();

             var unscaledWidth:Number = width;
             var unscaledHeight:Number = height;
@@ -8643,6 +8646,9 @@
             // LAYOUT_DEBUG
             // LayoutManager.debugHelper.addElement(ILayoutElement(this));
         }
+        else
+            validateMatrix();
+
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 3756
Author:   gruehle@adobe.com
Date:     2008-10-20T21:38:18.681299Z

Log Message:
-----------
Adding placeholder icons for the Gumbo components that appear in the FB components panel. Where possible, these are simply copies of the Halo icons. There were some that didn't have a direct Halo counterpart, so the closest match was chosen.

QE Notes: None
Doc Notes: None
Bugs: SDK-17668
Reviewer: -

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextInput.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/HGroup.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/VGroup.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/HGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxCheckBox.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxSpinner.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxCheckBox.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxToggleButton.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.png</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.png</path>

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

--- frameworks/projects/spark/src/spark/components/Button.as
+++ frameworks/projects/spark/src/spark/components/Button.as
@@ -65,6 +65,8 @@
 [DefaultTriggerEvent("click")]

 [DefaultProperty("content")]
+
+[IconFile("FxButton.png")]

 /**
  *  The FxButton component is a commonly used rectangular button.


Transferred from the Adobe Open Source Subversion Repository

Revision: 8238
Author:   smgilson@adobe.com
Date:     2009-06-25T17:25:59.965879Z

Log Message:
-----------
More post PARB ASDoc cleanup

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

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

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

--- frameworks/projects/spark/src/spark/components/HGroup.as
+++ frameworks/projects/spark/src/spark/components/HGroup.as
@@ -34,6 +34,10 @@
  *    Properties
  *    columnWidth="no default"
  *    gap="6"
+ *    paddingBottom="0"
+ *    paddingLeft="0"
+ *    paddingRight="0"
+ *    paddingTop="0"
  *    requestedColumnCount="-1"
  *    variableColumnWidth"true"
  *    verticalAlign="top"
@@ -141,6 +145,8 @@
     /**
      *  @copy spark.layouts.HorizontalLayout#paddingLeft
      *
+     *  @default 0
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -168,6 +174,8 @@
     /**
      *  @copy spark.layouts.HorizontalLayout#paddingRight
      *
+     *  @default 0
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -195,6 +203,8 @@
     /**
      *  @copy spark.layouts.HorizontalLayout#paddingTop
      *
+     *  @default 0
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
@@ -222,6 +232,8 @@
     /**
      *  @copy spark.layouts.HorizontalLayout#paddingBottom
      *
+     *  @default 0
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5


Transferred from the Adobe Open Source Subversion Repository

Revision: 21319
Author:   build@adobe.com
Date:     2011-06-01T17:45:41.136089Z

Log Message:
-----------
Version update to 4.5.2

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

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

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


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as
+++ frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as
@@ -88,7 +88,11 @@
     /**
      *  Creates a new HTTPService. If you expect the service to send using relative URLs you may
      *  wish to specify the rootURL that will be the basis for determining the full URL (one example
-     *  would be Application.application.url).
+     *  would be Application.application.url).
+     *
+     * @param rootURL The URL the HTTPService should use when computing relative URLS.
+     *
+     * @param destination An HTTPService destination name in the service-config.xml file.
      */
     public function HTTPService(rootURL:String = null, destination:String = null)
     {
@@ -627,6 +631,11 @@
     /**
      *  Executes an HTTPService request. The parameters are optional, but if specified should
      *  be an Object containing name-value pairs or an XML object depending on the contentType.
+     *
+     *  @param parameters An Object containing name-value pairs or an
+     *  XML object, depending on the content type for service
+     *  requests.
+     *
      *  @return An object representing the asynchronous completion token. It is the same object
      *  available in the result or fault event's token property.
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 16649
Author:   cframpto@adobe.com
Date:     2010-06-24T13:41:51.341811Z

Log Message:
-----------
The following changes apply to Spark DataGrid only.   Code reviews have been deferred until the implementation is closer to completion.

Implemented most of the requireSelection functionality.  The interactive and programmatic pieces should work if the dataProvider and columns collections remains constant.  A few of the collectionChange handlers, marked with FIXMEs, notably remove, still need to have this functionality added.

Also fixed preserveSelection for rows so the selection will be preserved across refreshes.  Cells are still not preserved across refreshes because that requires much more work and perhaps some changes to the cell selection data structures - marked with a FIXME.

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

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -980,11 +980,10 @@
         {
             gridSelection.requireSelection = value;

-            // TBD: implement requireSelection for both interactive and
-            // programmatic selection
-        }
-
-
+            if (value)
+                invalidateDisplayList();
+        }
+
         //----------------------------------
         //  rowBackground
         //----------------------------------