fixed VertexStream.boundsChanged signal executed only when relevant when VertexStream.unlock() is called

--- src/aerys/minko/type/stream/VertexStream.as
+++ src/aerys/minko/type/stream/VertexStream.as
@@ -19,19 +19,20 @@
 		minko_stream var _data			: Vector.<Number>	= null;
 		minko_stream var _localDispose	: Boolean			= false;

-		private var _usage			: uint						= 0;
-		private var _format			: VertexFormat				= null;
-		private var _resource		: VertexBuffer3DResource	= null;
-		private var _length			: uint						= 0;
-
-		private var _invalidMinMax	: Boolean					= true;
-		private var _maximum		: Vector.<Number>			= null;
-		private var _minimum		: Vector.<Number>			= null;
-
-		private var _locked			: Boolean					= false;
-
-		private var _changed		: Signal					= new Signal('VertexStream.changed');
-		private var _boundsChanged	: Signal					= new Signal('VertexStream.boundsChanged');
+		private var _usage				: uint						= 0;
+		private var _format				: VertexFormat				= null;
+		private var _resource			: VertexBuffer3DResource	= null;
+		private var _length				: uint						= 0;
+
+		private var _invalidMinMax		: Boolean					= true;
+		private var _boundsHaveChanged	: Boolean					= false;
+		private var _maximum			: Vector.<Number>			= null;
+		private var _minimum			: Vector.<Number>			= null;
+
+		private var _locked				: Boolean					= false;
+
+		private var _changed			: Signal					= new Signal('VertexStream.changed');
+		private var _boundsChanged		: Signal					= new Signal('VertexStream.boundsChanged');

 		public function get format() : VertexFormat
 		{
@@ -104,46 +105,58 @@
 			_changed.add(changedHandler);
 			changedHandler(this, null);

-			updateMinMax();
-		}
-
-		private function updateMinMax() : void
+			updateMinMax(true);
+		}
+
+		private function updateMinMax(forceReset : Boolean = false) : void
 		{
 			if (!_invalidMinMax)
 				return ;

 			_invalidMinMax = false;

-			var size		: uint	= format.dwordsPerVertex;
 			var dataLength	: uint	= data.length;
 			var i			: uint	= 0;

-			_minimum = new Vector.<Number>(size, true);
-			_maximum = new Vector.<Number>(size, true);
-
-			for (i = 0; i < size; ++i)
-			{
-				_minimum[i] = Number.MAX_VALUE;
-				_maximum[i] = Number.MIN_VALUE;
-			}
-
-			i = 0;
-			while (i < dataLength)
+			if (forceReset)
+			{
+				var size		: uint	= format.dwordsPerVertex;
+
+				_minimum = new Vector.<Number>(size, true);
+				_maximum = new Vector.<Number>(size, true);
+
+				for (i = 0; i < size; ++i)
+				{
+					_minimum[i] = Number.MAX_VALUE;
+					_maximum[i] = -Number.MAX_VALUE;
+				}
+			}
+
+			_boundsHaveChanged = false;
+			for (i = 0; i < dataLength; i += size)
 			{
 				for (var j : uint = 0; j < size; ++j)
 				{
 					var value : Number = _data[uint(i + j)];

 					if (value < _minimum[j])
+					{
 						_minimum[j] = value;
-					else if (value > _maximum[j])
+						_boundsHaveChanged = true;
+					}
+					if (value > _maximum[j])
+					{
 						_maximum[j] = value;
-				}
-
-				i += size;
-			}
-
-			_boundsChanged.execute(this);
+						_boundsHaveChanged = true;
+					}
+				}
+			}
+
+			if (_boundsHaveChanged)
+			{
+				_boundsHaveChanged = false;
+				_boundsChanged.execute(this);
+			}
 		}

 		public function deleteVertexByIndex(index : uint) : Boolean
@@ -154,8 +167,14 @@
 				return false;

 			_data.splice(index, _format.dwordsPerVertex);
-			_invalidMinMax = true;
-			_changed.execute(this, null);
+
+			if (_locked)
+				_invalidMinMax = true;
+			else
+			{
+				_changed.execute(this, null);
+				updateMinMax();
+			}

 			return true;
 		}
@@ -165,7 +184,7 @@
 			return _format.hasComponent(vertexComponent) ? this : null;
 		}

-		public function get(i : int) : Number
+		public function get(i : uint) : Number
 		{
 			checkReadUsage(this);

@@ -181,39 +200,14 @@
 		{
 			return _maximum[index];
 		}
-
-		public function set(i : int, value : Number) : void
-		{
-			var minMaxChanged	: Boolean	= false;
-
-			checkWriteUsage(this);
-
-			_data[i] = value;
-
-			i %= _format.dwordsPerVertex;
-			if (value < _minimum[i])
-			{
-				_minimum[i] = value;
-				minMaxChanged = true;
-			}
-			else if (value > _maximum[i])
-			{
-				_maximum[i] = value;
-				minMaxChanged = true;
-			}
-
-			if (_locked)
-			{
-				_invalidMinMax = minMaxChanged;
-			}
-			else
-			{
-				_changed.execute(this, null);
-				if (minMaxChanged)
-					_boundsChanged.execute(this);
-			}
-		}
-
+
+		/**
+		 * Lock the stream in order to perform bulk updates without triggering
+		 * any signal to get better performances.
+		 *
+		 * @return
+		 *
+		 */
 		public function lock() : Vector.<Number>
 		{
 			if (_locked)
@@ -229,6 +223,12 @@
 			return _data;
 		}

+		/**
+		 * Unlock the stream to reactivate signals. The VertexStream.changed signal
+		 * is always executed when this method is called. The VertexStream.boundsChanged
+		 * signal is called only if the bounds of the stream actually changed.
+		 *
+		 */
 		public function unlock() : void
 		{
 			if (!_locked)
@@ -237,19 +237,65 @@
 			var invalidMinMax : Boolean = _invalidMinMax;

 			_locked = false;
-			_invalidMinMax = false;
+			_invalidMinMax = true;
+
+			_changed.execute(this, null);

 			if (invalidMinMax)
+				updateMinMax();
+			if (_boundsHaveChanged)
 				_boundsChanged.execute(this);
-			_changed.execute(this, null);
-		}
-
+		}
+
+		/**
+		 * The the value at the specified position in the stream.
+		 *
+		 * @param offset
+		 * @param value
+		 *
+		 */
+		public function set(offset : uint, value : Number) : void
+		{
+			checkWriteUsage(this);
+
+			_data[offset] = value;
+
+			offset %= _format.dwordsPerVertex;
+			if (value < _minimum[offset])
+			{
+				_minimum[offset] = value;
+				_boundsHaveChanged = true;
+			}
+			else if (value > _maximum[offset])
+			{
+				_maximum[offset] = value;
+				_boundsHaveChanged = true;
+			}
+
+			if (!_locked)
+			{
+				_changed.execute(this, null);
+
+				if (_boundsHaveChanged)
+				{
+					_boundsHaveChanged = false;
+					_boundsChanged.execute(this);
+				}
+			}
+		}
+
+		/**
+		 * Push values at the end of stream. The pushed data must have
+		 * a valid length regarding the vertex format of the stream.
+		 *
+		 * @param data
+		 *
+		 */
 		public function push(data : Vector.<Number>) : void
 		{
 			checkWriteUsage(this);

-			var numValues 		: int 		= data.length;
-			var minMaxChanged	: Boolean	= false;
+			var numValues 	: int 	= data.length;

 			if (numValues % _format.dwordsPerVertex)
 				throw new Error("Invalid data length.");
@@ -261,27 +307,27 @@

 				if (value < _minimum[ii])
 				{
-					_minimum[i] = value;
-					minMaxChanged = true;
+					_minimum[ii] = value;
+					_boundsHaveChanged = true;
 				}
 				else if (value > _maximum[ii])
 				{
-					_maximum[i] = value;
-					minMaxChanged = true;
+					_maximum[ii] = value;
+					_boundsHaveChanged = true;
 				}

 				_data.push(value);
 			}

-			if (_locked)
-			{
-				_invalidMinMax = minMaxChanged;
-			}
-			else
+			if (!_locked)
 			{
 				_changed.execute(this, null);
-				if (minMaxChanged)
+
+				if (_boundsHaveChanged)
+				{
+					_boundsHaveChanged = false;
 					_boundsChanged.execute(this);
+				}
 			}
 		}


Clean up my comment, this is in a public API (and my comment wasn't helpful).

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

--- src/as/com/threerings/flex/LabeledSlider.as
+++ src/as/com/threerings/flex/LabeledSlider.as
@@ -13,7 +13,7 @@
  */
 public class LabeledSlider extends HBox
 {
-    /** The slider, all public and accessable. Don't fuck it up! */
+    /** The actual slider. */
     public var slider :Slider;

     /**


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

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

 package mx.messaging.channels
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5135
Author:   egeorgie@adobe.com
Date:     2009-03-02T18:07:53.499277Z

Log Message:
-----------
PARB changes to FxButton
- FxButton is no longer IDataRenderer
- FxToggleButton is no longer ISelectableRenderer
- FxButtonBar's default skin now uses a subclass of FxToggleButton that implements both IDataRenderer and ISelectableRenderer
- "labelField" name of skin parts changed to "labelElement" for all Spark skins.
- Some minor tweaks, renames

QE Notes: None
Doc Notes:
Bugs: None
Reviewer: Glenn
tests: checkintests, mustella (QA ran a cyclone and failing tests are excluded)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxFocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxDefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</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/skins/spark/FxButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxToggleButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxCheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxRadioButtonSkin.mxml</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/skins/spark/FxButtonBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
+++ frameworks/projects/spark/src/spark/components/RadioButtonGroup.as
@@ -169,11 +169,13 @@
     //  enabled
     //----------------------------------

-    [Bindable("enabledChanged")]
     [Inspectable(category="General", defaultValue="true")]

     /**
-     *  Determines whether selection is allowed.
+     *  Determines whether selection is allowed.  Note that the value returned
+     *  only reflects the value that was explicitly set on the
+     *  FxRadioButtonGroup and does not reflect any values explicitly
+     *  set on the individual radio buttons.
      *
      *  @default true
      *
@@ -201,8 +203,6 @@
         // radio button skin most likely will change.
         for (var i:int = 0; i < numRadioButtons; i++)
             getRadioButtonAt(i).mx_internal::invalidateRadioButtonState(true);
-
-        dispatchEvent(new Event("enabledChanged"));
     }

     //----------------------------------
@@ -230,12 +230,6 @@
     //  selectedValue
     //----------------------------------

-    /**
-     *  @private
-     *  Storage for the selectedValue property.
-     */
-    private var _selectedValue:Object;
-
     [Bindable("change")]
     [Bindable("valueCommit")]
     [Inspectable(category="General")]
@@ -276,8 +270,6 @@
      */
     public function set selectedValue(value:Object):void
     {
-        _selectedValue = value;
-
         var n:int = numRadioButtons;
         for (var i:int = 0; i < n; i++)
         {


FragmentLoader.as: add a new state MANIFEST_LOADING and get rid of one additional variable

--- src/org/mangui/hls/loader/FragmentLoader.as
+++ src/org/mangui/hls/loader/FragmentLoader.as
@@ -4,24 +4,24 @@
 package org.mangui.hls.loader {
     import flash.utils.getTimer;

+    import org.mangui.hls.HLS;
+    import org.mangui.hls.HLSSettings;
     import org.mangui.hls.controller.AudioTrackController;
     import org.mangui.hls.controller.LevelController;
-    import org.mangui.hls.HLSSettings;
-    import org.mangui.hls.event.HLSLoadMetrics;
     import org.mangui.hls.constant.HLSTypes;
-    import org.mangui.hls.flv.FLVTag;
+    import org.mangui.hls.demux.Demuxer;
+    import org.mangui.hls.demux.DemuxHelper;
     import org.mangui.hls.event.HLSError;
     import org.mangui.hls.event.HLSEvent;
-    import org.mangui.hls.demux.Demuxer;
-    import org.mangui.hls.demux.DemuxHelper;
+    import org.mangui.hls.event.HLSLoadMetrics;
+    import org.mangui.hls.flv.FLVTag;
     import org.mangui.hls.model.AudioTrack;
-    import org.mangui.hls.HLS;
     import org.mangui.hls.model.Fragment;
     import org.mangui.hls.model.FragmentData;
     import org.mangui.hls.model.FragmentMetrics;
     import org.mangui.hls.model.Level;
+    import org.mangui.hls.stream.StreamBuffer;
     import org.mangui.hls.utils.AES;
-    import org.mangui.hls.stream.StreamBuffer;

     import flash.events.*;
     import flash.net.*;
@@ -40,8 +40,6 @@
         private var _levelController : LevelController;
         /** reference to audio track controller */
         private var _audioTrackController : AudioTrackController;
-        /** has manifest been loaded **/
-        private var _manifest_loaded : Boolean;
         /** has manifest just being reloaded **/
         private var _manifest_just_loaded : Boolean;
         /** last loaded level. **/
@@ -87,6 +85,7 @@
         private var _frag_current : Fragment;
         /* loading state variable */
         private var _loading_state : int;
+        private static const MANIFEST_LOADING : int = -1;
         private static const LOADING_IDLE : int = 0;
         private static const LOADING_IN_PROGRESS : int = 1;
         private static const LOADING_WAITING_LEVEL_UPDATE : int = 2;
@@ -105,8 +104,7 @@
             _hls.addEventListener(HLSEvent.LEVEL_LOADED, _levelLoadedHandler);
             _timer = new Timer(100, 0);
             _timer.addEventListener(TimerEvent.TIMER, _checkLoading);
-            _loading_state = LOADING_IDLE;
-            _manifest_loaded = false;
+            _loading_state = MANIFEST_LOADING;
             _manifest_just_loaded = false;
             _keymap = new Object();
         };
@@ -115,17 +113,15 @@
             stop();
             _hls.removeEventListener(HLSEvent.MANIFEST_LOADED, _manifestLoadedHandler);
             _hls.removeEventListener(HLSEvent.LEVEL_LOADED, _levelLoadedHandler);
-            _manifest_loaded = false;
+            _loading_state = MANIFEST_LOADING;
             _keymap = new Object();
         }

         /**  fragment loading Timer **/
         private function _checkLoading(e : Event) : void {
-            // cannot load fragment until manifest is loaded
-            if (_manifest_loaded == false) {
-                return;
-            }
             switch(_loading_state) {
+                // nothing to load until manifest is retrieved
+                case MANIFEST_LOADING:
                 // nothing to load until level is retrieved
                 case LOADING_WAITING_LEVEL_UPDATE:
                 // loading already in progress
@@ -713,7 +709,7 @@
         /** Store the manifest data. **/
         private function _manifestLoadedHandler(event : HLSEvent) : void {
             _levels = event.levels;
-            _manifest_loaded = true;
+            _loading_state = LOADING_IDLE;
             _manifest_just_loaded = true;
         };


Only hide the contents of the seek bar.

Only hide the contents of the seek bar.

--- skin-src/goplayer/StandardSkin.as
+++ skin-src/goplayer/StandardSkin.as
@@ -47,7 +47,12 @@
       playPausePart.visible = showPlayPauseButton
       leftTimeBackgroundPart.visible = showElapsedTime
       leftTimeFieldPart.visible = showElapsedTime
-      seekBar.visible = showSeekBar
+
+      seekBarBuffer.visible = showSeekBar
+      seekBarPlayhead.visible = showSeekBar
+      seekBarTooltip.visible = showSeekBar
+      seekBarTooltipField.visible = showSeekBar
+
       rightTimeBackgroundPart.visible = showTotalTime
       rightTimeFieldPart.visible = showTotalTime
       volumePart.visible = showVolumeControl


Add shader name to generateAGAL() debug output

--- src/aerys/minko/render/shader/compiler/graph/ShaderGraph.as
+++ src/aerys/minko/render/shader/compiler/graph/ShaderGraph.as
@@ -105,7 +105,7 @@
 				compile();

 			if (Minko.debugLevel & DebugLevel.SHADER_AGAL)
-				Minko.log(DebugLevel.SHADER_AGAL, generateAGAL());
+				Minko.log(DebugLevel.SHADER_AGAL, generateAGAL(name));

 			var vsProgram	: ByteArray = computeBinaryProgram(_vertexSequence, true);
 			var fsProgram	: ByteArray = computeBinaryProgram(_fragmentSequence, false);
@@ -126,10 +126,10 @@
 			return program;
 		}

-		public function generateAGAL() : String
+		public function generateAGAL(name : String) : String
 		{
 			var instruction	: AgalInstruction;
-			var shader		: String = '';
+			var shader		: String = name + "\n\n";

 			if (!_isCompiled)
 				compile();


simplified a line of code

simplified a line of code

--- WeaveUISpark/src/weave/visualization/plotters/HistogramPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/HistogramPlotter.as
@@ -131,8 +131,7 @@
 			}

 			var binHeight:int = binCol.getKeysFromBinIndex(binIndex).length;
-			initBoundsArray(output);
-			(output[0] as IBounds2D).setBounds(binIndex - 0.5, 0, binIndex + 0.5, binHeight);
+			initBoundsArray(output).setBounds(binIndex - 0.5, 0, binIndex + 0.5, binHeight);
 		}

 		/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 21732
Author:   jszeto@adobe.com
Date:     2011-07-27T17:06:17.394878Z

Log Message:
-----------
NumericDataProvider initial checkin and SpinnerList fixes

- Added new class NumericDataProvider
- Added resource strings for the NumericDataProvider
- Fixed virtual layout bug in VerticalSpinnerLayout
- Made SpinnerList resizable

QE notes: none
Doc notes: Need ASDoc pass on NumericDataProvider
Bugs: none
Reviewer: Tom K
Tests run: checkintests, cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/bundles/en_US/collections.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/layouts/VerticalSpinnerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/build.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/layouts/VerticalSpinnerLayout.as
+++ frameworks/projects/mobilecomponents/src/spark/layouts/VerticalSpinnerLayout.as
@@ -169,7 +169,7 @@
 		// TODO (jszeto) Modify LayoutIterator to not require seeding w/ index - 1
         var itemIndex:int = -1;
         var yPos:Number = 0;
-        var numVisibleElements:int = 0;
+        var numVisibleElements:int = -1;

         // Translate the vsp to the item index
         if (wrapElements)


Transferred from the Adobe Open Source Subversion Repository

Revision: 22118
Author:   jasonsj@adobe.com
Date:     2011-08-19T22:45:54.903069Z

Log Message:
-----------
SDK-31259 CalloutSkin graphic ordering
SDK-29673 default button skins for ActionBar buttons.

Update CalloutArrow to match spec, useBackgroundGradient should be protected.

Update mobile skins test app with emphasized examples and fix Callout examples to use to contentBackgroundAppearance.

QE notes: Fixed regression from contentBackgroundAppearance. Update baselines for ActionBar accentColor tests.
Doc notes: ActionBar buttons now support emphasized (i.e. accentColor)
Bugs:
SDK-31259 slight difference in callout content for 320 and 240/160 runs
SDK-29673 accentColor not working inside ActionBarsdk
Reviewer: tkraikit, betravis
Tests run: checkintests, mustella-mobile
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledBackButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledBackButtonSkin.as
@@ -170,7 +170,7 @@
     override protected function drawBackground(unscaledWidth:Number, unscaledHeight:Number):void
     {
         // omit call to super.drawBackground(), apply tint instead and don't draw fill
-        var chromeColor:uint = getStyle("chromeColor");
+        var chromeColor:uint = getStyle(fillColorStyleName);

         if (colorized || (chromeColor != MobileSkin.MOBILE_THEME_DARK_COLOR))
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17975
Author:   egeorgie@adobe.com
Date:     2010-09-30T22:31:08.436041Z

Log Message:
-----------
Fix SDK-25601 Don't not hard code GraphicElement to Group

In this change:
  - introduce a new interface IGraphicElementHost - the IGraphicElement now relies on its parent to implement that interface
  - modify IGraphicElement interface to use the new interface instead of Group
  - modify the Group to implement the new interface

QE notes: No functional changes expected
Doc notes: None
Bugs: SDK-25601
Reviewer: Jason S
Tests run: mustella cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IGraphicElementHost.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IGraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -58,10 +58,10 @@
 import mx.managers.ILayoutManagerClient;
 import mx.utils.MatrixUtil;

-import spark.components.Group;
 import spark.components.supportClasses.InvalidatingSprite;
 import spark.core.DisplayObjectSharingMode;
 import spark.core.IGraphicElement;
+import spark.core.IGraphicElementHost;
 import spark.core.MaskType;
 import spark.utils.FTETextUtil;
 import spark.utils.MaskUtil;
@@ -624,7 +624,7 @@
      *  @private
      *  Storage for the parent property.
      */
-    private var _parent:DisplayObjectContainer;
+    private var _parent:IGraphicElementHost;

     /**
      *  @inheritDoc
@@ -636,7 +636,7 @@
      */
     public function get parent():DisplayObjectContainer
     {
-        return _parent;
+        return _parent as DisplayObjectContainer;
     }

     /**
@@ -647,7 +647,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function parentChanged(value:Group):void
+    public function parentChanged(value:IGraphicElementHost):void
     {
         _parent = value;
         invalidateLayoutDirection();
@@ -2791,7 +2791,7 @@
     [Inspectable(category="General", defaultValue="true")]

     /**
-     *  Specifies whether this element is included in the layout of the group.
+     *  Specifies whether this element is included in the layout of the parent.
      *
      *  @default true
      *
@@ -3232,11 +3232,7 @@

         // Remove the target from its current parent, making sure to store the child index
-        var childIndex:int = dispObjParent.getChildIndex(displayObject);
-        if (dispObjParent is Group)
-            Group(dispObjParent).$removeChild(displayObject);
-        else
-            dispObjParent.removeChild(displayObject);
+        var displayObjectIndex:int = IGraphicElementHost(parent).detachDisplayObject(this);

         // Parent the target to the drawSprite and then attach the drawSprite to the stage
         topLevel.addChild(drawSprite);
@@ -3265,10 +3261,7 @@
         topLevel.removeChild(drawSprite);

         // Reattach the target to its original parent at its original child position
-        if (dispObjParent is Group)
-            Group(dispObjParent).$addChildAt(displayObject, childIndex);
-        else
-            dispObjParent.addChildAt(displayObject, childIndex);
+        IGraphicElementHost(parent).attachDisplayObject(this, displayObjectIndex);

         // Restore the original 3D matrix
         displayObject.transform.matrix3D = oldMat3D;
@@ -3350,7 +3343,7 @@
     protected function invalidateDisplayObjectSharing():void
     {
         if (parent)
-            Group(parent).invalidateGraphicElementSharing(this);
+            IGraphicElementHost(parent).invalidateGraphicElementSharing(this);
     }

     /**
@@ -3373,7 +3366,7 @@
         invalidatePropertiesFlag = true;

         if (parent)
-            Group(parent).invalidateGraphicElementProperties(this);
+            IGraphicElementHost(parent).invalidateGraphicElementProperties(this);
     }

     /**
@@ -3399,7 +3392,7 @@
         invalidateSizeFlag = true;

         if (parent)
-            Group(parent).invalidateGraphicElementSize(this);
+            IGraphicElementHost(parent).invalidateGraphicElementSize(this);
     }

     /**
@@ -3443,10 +3436,10 @@
             return;
         invalidateDisplayListFlag = true;

-        // The Group will take care of redrawing all graphic elements that
+        // The IGraphicElementHost will take care of redrawing all graphic elements that
         // share the display object with this element.
         if (parent)
-            Group(parent).invalidateGraphicElementDisplayList(this);
+            IGraphicElementHost(parent).invalidateGraphicElementDisplayList(this);
     }

     /**
@@ -3499,7 +3492,8 @@
      *
      *
You do not call this method directly.
      *  Flex calls the commitProperties() method when you
-     *  use the addElement() method to add an element to the group,
+     *  use the addElement() method to add an element to an
+     *  IGraphicElementHost container such as Group,
      *  or when you call the invalidateProperties() method of the element.
      *  Calls to the commitProperties() method occur before calls to the
      *  measure() method. This lets you set property values that might
@@ -3803,7 +3797,8 @@
      *  method that you might override when creating a subclass of GraphicElement.
      *
      *
You do not call this method directly. Flex calls the
-     *  measure() method when the element is added to a group
+     *  measure() method when the element is added to an
+     *  IGraphicElementHost container such as Group
      *  using the addElement() method, and when the element's
      *  invalidateSize() method is called.

      *
@@ -3864,10 +3859,10 @@
      */
     public function validateDisplayList():void
     {
-        // Don't check the invalidateDisplayListFlag for early return, the Group takes care to
+        // Don't check the invalidateDisplayListFlag for early return, the IGraphicElementHost takes care to
         // call validateDisplayList() only for elements that need to redraw.
         // Note that even when invalidateDisplayListFlag is false for a particular element,
-        // the Group may still call it to redraw if it shares a display object with another
+        // the IGraphicElementHost may still call it to redraw if it shares a display object with another
         // element that is redrawing.
         // if (!invalidateDisplayListFlag)
         //    return;
@@ -3919,7 +3914,8 @@
      *
      *
You do not call this method directly. Flex calls the
      *  updateDisplayList() method when the component is added
-     *  to a group using the addElement() method, and when the element's
+     *  to an IGraphicElementHost container such as Group
+     *  using the addElement() method, and when the element's
      *  invalidateDisplayList() method is called.

      *
      *
This method is where you would do programmatic drawing


Transferred from the Adobe Open Source Subversion Repository

Revision: 3557
Author:   egreenfi@adobe.com
Date:     2008-10-10T05:09:09.099228Z

Log Message:
-----------
UIComponent and GraphicElement now trigger update complete events when any transform property is changed.

QE: Should re-enable some tests.
Reviewer: Deepa.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -187,6 +187,7 @@
         if(triggerLayout)
         {
     	    invalidateParentSizeAndDisplayList();
+	       	invalidateProperties();
         }
         layoutFeatures.updatePending = true;
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 2727
Author:   smgilson@adobe.com
Date:     2008-08-04T18:13:58.168854Z

Log Message:
-----------
Fix broken ASDoc comment

Checkin Test Passed: Yes
QA: No
Bug:
Doc: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 4922
Author:   gosmith@adobe.com
Date:     2009-02-10T22:19:49.510252Z

Log Message:
-----------
Renamed mx.graphics.graphicsClasses to mx.graphics.baseClasses, based on PARB review.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxFadeInstance.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextFlowComposer.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as" copyfrom-rev="4920" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextGraphicElement.as" copyfrom-rev="4920" action="R">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/StrokedElement.as</path>
<path kind="dir" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses" copyfrom-rev="4916" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/TextBlockComposer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
@@ -18,7 +18,7 @@
 import flash.events.EventDispatcher;
 import flash.geom.Rectangle;

-import mx.graphics.graphicsClasses.GraphicElement;
+import mx.graphics.baseClasses.GraphicElement;

 import mx.core.mx_internal;
 import mx.events.PropertyChangeEvent;


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/advancedgrids/src/mx/collections/errors/ChildItemPendingError.as
+++ frameworks/projects/advancedgrids/src/mx/collections/errors/ChildItemPendingError.as
@@ -0,0 +1,66 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections.errors
+{
+
+/**
+ *  This error is thrown when retrieving a child item from a collection view
+ *  requires an asynchronous call. This error occurs when the data
+ *  is provided from a remote source and the data is not yet available locally.
+ *
+ *
If the receiver of this error needs notification when the requested item
+ *  becomes available (that is, when the asynchronous call completes), it must
+ *  use the addResponder() method and specify
+ *  an object that  supports the mx.rpc.IResponder
+ *  interface to respond when the item is available.
+ *  The mx.collections.ItemResponder class implements the
+ *  IResponder interface and supports a data property.

+ *
+ *  @see mx.collections.errors.ItemPendingError
+ *  @see mx.collections.ItemResponder
+ *  @see mx.rpc.IResponder
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class ChildItemPendingError extends ItemPendingError
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *
Called by the HierarchicalCollectionViewCursor when a request is made
+     *  for a child item that isn't local.

+     *
+     *  @param message A message providing information about the error cause.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function ChildItemPendingError(message:String)
+    {
+        super(message);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/SetStyleActionInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/SetStyleActionInstance.as
@@ -0,0 +1,154 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.effects.effectClasses
+{
+
+import mx.styles.StyleManager;
+import mx.core.mx_internal;
+
+/**
+ *  The SetStyleActionInstance class implements the instance class
+ *  for the SetStyleAction effect.
+ *  Flex creates an instance of this class when it plays a SetStyleAction
+ *  effect; you do not create one yourself.
+ *
+ *  @see mx.effects.SetStyleAction
+ */
+public class SetStyleActionInstance extends ActionEffectInstance
+{
+    include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param target The Object to animate with this effect.
+	 */
+	public function SetStyleActionInstance(target:Object)
+	{
+		super(target);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  name
+	//----------------------------------
+
+	/**
+	 *  The name of the style property being changed.
+	 */
+	public var name:String;
+
+	//----------------------------------
+	//  value
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the value property.
+	 */
+	private var _value:*;
+
+	/**
+	 *  The new value for the property.
+	 */
+	public function get value():*
+	{
+		if (mx_internal::playReversed)
+			return getStartValue();
+		else
+			return _value;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set value(val:*):void
+	{
+		_value = val;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function play():void
+	{
+		// Dispatch an effectStart event from the target.
+		super.play();
+
+		if (value === undefined && propertyChanges)
+		{
+			if (name in propertyChanges.end &&
+				propertyChanges.start[name] != propertyChanges.end[name])
+				value = propertyChanges.end[name];
+		}
+
+		// Set the style property
+		if (target && name && value !== undefined)
+		{
+			var currentValue:Object = target.getStyle(name);
+
+			if (currentValue is Number)
+			{
+				// The "value" for colors can be several different formats:
+				// 0xNNNNNN, #NNNNNN or "red". We can't use
+				// StyleManager.isColorStyle() because that only returns true
+				// for inheriting color styles and misses non-inheriting styles like
+				// backgroundColor.
+				if (name.toLowerCase().indexOf("color") != -1)
+					target.setStyle(name, StyleManager.getColorName(value));
+				else
+					target.setStyle(name, Number(value));
+			}
+			else if (currentValue is Boolean)
+			{
+				if (value is String)
+					target.setStyle(name, (value.toLowerCase() == "true"));
+				else
+					target.setStyle(name, value);
+			}
+			else
+			{
+				target.setStyle(name, value);
+			}
+		}
+
+		// We're done...
+		finishRepeat();
+	}
+
+	/**
+	 *  @private
+	 */
+	override protected function saveStartValue():*
+	{
+		return target.getStyle(name);
+	}
+}
+
+}


Adding close method

Adding close method

--- src/org/httpclient/HttpClient.as
+++ src/org/httpclient/HttpClient.as
@@ -92,6 +92,14 @@
      */
     public function cancel():void {
       _socket.close();
+    }
+
+    /**
+     * Cancels the current connection and removes any listeners.
+     */
+    public function close():void {
+      this.listener = null;
+      cancel();
     }

     /**


FLVMux: Removed verbose debug output

FLVMux: Removed verbose debug output

--- src/com/axis/rtspclient/FLVMux.as
+++ src/com/axis/rtspclient/FLVMux.as
@@ -272,7 +272,6 @@
     }

     private function getAudioParameters(name):Object {
-      Logger.log(this.ns.info.audioBufferLength);
       switch (name.toLowerCase()) {
       case 'mpeg4-generic':
         return {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20649
Author:   smgilson@adobe.com
Date:     2011-03-07T20:19:16.700368Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/animation/SimpleMotionPath.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentRequest.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/interpolation/RGBInterpolator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentCache.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/NavigationUnit.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -478,7 +478,12 @@
      *  An animation 'cycle' is defined as a single repetition of the animation,
      *  where the repeatCount property defines the number of
      *  cycles that will be played.
-     *  Use the seek() method to change the position of the animation.
+     *  Use the seek() method to change the position of the animation.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get cycleTime():Number
     {
@@ -497,6 +502,11 @@
      *  An animation 'cycle' is defined as a single repetition of the animation,
      *  where the repeatCount property defines the number of
      *  cycles that will be played.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function get cycleFraction():Number
     {


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

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

 package spark.filters
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 21536
Author:   jasonsj@adobe.com
Date:     2011-07-11T23:14:34.905781Z

Log Message:
-----------
Initial checkin for Callout/CalloutButton and mobile check-in tests.

* Refactored pop up transformations from PopUpAnchor.applyPopUpTransform() to mx.utils.PopUpUtil.applyPopUpTransform()
* CalloutPosition.AUTO not yet implemented
* Visuals are not the final XD design.

QE notes:
Doc notes:
Bugs:
Reviewer: chiedozi
Tests run: checkintests, checkintests-mobile
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/.flexLibProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/mobile/views/TestCalloutButton.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.actionScriptProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/utils/PopUpUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/.actionScriptProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/mobile/scripts/CalloutButtonTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.flexLibProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/tests/airMobileBasicTests/src/airMobileBasicTests-app.xml</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/Callout.as
+++ frameworks/projects/mobilecomponents/src/spark/components/Callout.as
@@ -0,0 +1,757 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2011 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.components
+{
+import flash.display.DisplayObject;
+import flash.display.Stage;
+import flash.display.StageDisplayState;
+import flash.geom.ColorTransform;
+import flash.geom.Matrix;
+import flash.geom.Point;
+import flash.geom.Rectangle;
+
+import mx.core.ILayoutElement;
+import mx.core.IVisualElement;
+import mx.core.IVisualElementContainer;
+import mx.core.LayoutDirection;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.events.ResizeEvent;
+import mx.utils.MatrixUtil;
+import mx.utils.PopUpUtil;
+
+import spark.layouts.VerticalAlign;
+
+use namespace mx_internal;
+
+/**
+ *  TODO (jasonsj): write class description
+ *
+ *  @langversion 3.0
+ *  @playerversion AIR 3
+ *  @productversion Flex 4.5.2
+ */
+public class Callout extends SkinnablePopUpContainer
+{
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    private static var decomposition:Vector.<Number> = new <Number>[0,0,0,0,0];
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    public function Callout()
+    {
+        super();
+
+        addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
+
+        // TODO (jasonsj): listen for resize on owner?
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Skin parts
+    //
+    //--------------------------------------------------------------------------
+
+    [Bindable]
+    [SkinPart(required="false")]
+
+    /**
+     *  An optional skin part that visually connects the owner to the
+     *  contentGroup.
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    public var arrow:ILayoutElement;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  horizontalPosition
+    //----------------------------------
+
+    private var _autoHorizontalPosition:String;
+
+    private var _horizontalPosition:String = CalloutPosition.AUTO;
+
+    [Inspectable(category="General", enumeration="before,start,middle,end,after,auto", defaultValue="auto")]
+
+    /**
+     *  Horizontal position of the callout relative to the owner.
+     *
+     *
Possible values are "before", "start",
+     *  "middle", "end", "after",
+     *  and "auto" (default).

+     *
+     *  @default CalloutPosition.AUTO
+     *  @see spark.components.CalloutPosition
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    public function get horizontalPosition():String
+    {
+        return _horizontalPosition;
+    }
+
+    /**
+     *  @private
+     */
+    public function set horizontalPosition(value:String):void
+    {
+        if (value == _horizontalPosition)
+            return;
+
+        _horizontalPosition = value;
+
+        invalidateArrowState = true;
+        invalidateProperties();
+    }
+
+    mx_internal function get internalHorizontalPosition():String
+    {
+        if (_autoHorizontalPosition)
+            return _autoHorizontalPosition;
+
+        return horizontalPosition;
+    }
+
+    //----------------------------------
+    //  verticalPosition
+    //----------------------------------
+
+    private var _autoVerticalPosition:String;
+
+    private var _verticalPosition:String = CalloutPosition.AUTO;
+
+    [Inspectable(category="General", enumeration="before,start,middle,end,after,auto", defaultValue="auto")]
+
+    /**
+     *  Vertical position of the callout relative to the owner.
+     *
+     *
Possible values are "before", "start",
+     *  "middle", "end", "after",
+     *  and "auto" (default).

+     *
+     *  @default CalloutPosition.AUTO
+     *  @see spark.components.CalloutPosition
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    public function get verticalPosition():String
+    {
+        return _verticalPosition;
+    }
+
+    /**
+     *  @private
+     */
+    public function set verticalPosition(value:String):void
+    {
+        if (value == _verticalPosition)
+            return;
+
+        _verticalPosition = value;
+
+        invalidateArrowState = true;
+        invalidateProperties();
+    }
+
+    mx_internal function get internalVerticalPosition():String
+    {
+        if (_autoVerticalPosition)
+            return _autoVerticalPosition;
+
+        return verticalPosition;
+    }
+
+    //----------------------------------
+    //  arrowDirection
+    //----------------------------------
+
+    private var invalidateArrowState:Boolean = true;
+
+    private var _arrowDirection:String = ArrowDirection.NONE;
+
+    /**
+     *  A read-only property that indicates the direction from the callout
+     *  towards the owner.
+     *
+     *
This value is computed based on the callout position given by
+     *  horizontalPosition and verticalPosition.
+     *  Exterior and interior positions will point from the callout towards
+     *  the edge of the owner. Corner and absolute center positions are not
+     *  supported and will return a value of "none".

+     *
+     *  @see spark.components.ArrowDirection
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    public function get arrowDirection():String
+    {
+        return _arrowDirection;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        if (arrow && invalidateArrowState)
+        {
+            commitAutoPosition();
+
+            // determine arrow direction, outer positions get priority
+            // corner positions and center show no arrow
+            var direction:String = ArrowDirection.NONE;
+
+            if (internalHorizontalPosition == CalloutPosition.BEFORE)
+            {
+                if ((internalVerticalPosition != CalloutPosition.BEFORE)
+                    &&  (internalVerticalPosition != CalloutPosition.AFTER))
+                {
+                    direction = ArrowDirection.RIGHT;
+                }
+            }
+            else if (internalHorizontalPosition == CalloutPosition.AFTER)
+            {
+                if ((internalVerticalPosition != CalloutPosition.BEFORE)
+                    && (internalVerticalPosition != CalloutPosition.AFTER))
+                {
+                    direction = ArrowDirection.LEFT;
+                }
+            }
+            else if (internalVerticalPosition == CalloutPosition.BEFORE)
+            {
+                direction = ArrowDirection.DOWN;
+            }
+            else if (internalVerticalPosition == CalloutPosition.AFTER)
+            {
+                direction = ArrowDirection.UP;
+            }
+            else if (internalHorizontalPosition == CalloutPosition.START)
+            {
+                direction = ArrowDirection.LEFT;
+            }
+            else if (internalHorizontalPosition == CalloutPosition.END)
+            {
+                direction = ArrowDirection.RIGHT;
+            }
+            else if (internalVerticalPosition == CalloutPosition.START)
+            {
+                direction = ArrowDirection.UP;
+            }
+            else if (internalVerticalPosition == CalloutPosition.END)
+            {
+                direction = ArrowDirection.DOWN;
+            }
+
+            // invalidate only when the arrow direction changes
+            if (_arrowDirection != direction)
+            {
+                _arrowDirection = direction;
+
+                var arrowDisplayObject:DisplayObject = (arrow as DisplayObject);
+
+                if (arrowDisplayObject)
+                    arrowDisplayObject.visible = (arrowDirection != ArrowDirection.NONE);
+
+                skin.invalidateProperties();
+            }
+
+            // Always reposition when horizontalPosition or verticalPosition
+            // changes. This will reposition the callout.
+            invalidateDisplayList();
+
+            invalidateArrowState = false;
+        }
+    }
+
+    /**
+     * @private
+     */
+    override protected function positionPopUp():void
+    {
+        var popUpPoint:Point = calculatePopUpPosition();
+        PopUpUtil.applyPopUpTransform(owner, systemManager, this, popUpPoint);
+    }
+
+    /**
+     *  @private
+     *
+     *  Cooperative layout
+     *  @see spark.components.supportClasses.TrackBase#partAdded
+     */
+    override protected function partAdded(partName:String, instance:Object):void
+    {
+        super.partAdded(partName, instance);
+
+        if (instance == arrow)
+        {
+            arrow.addEventListener(ResizeEvent.RESIZE, arrow_resizeHandler);
+            arrow.addEventListener(FlexEvent.UPDATE_COMPLETE, arrow_updateCompleteHandler);
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override protected function partRemoved(partName:String, instance:Object):void
+    {
+        super.partRemoved(partName, instance);
+
+        if (instance == arrow)
+        {
+            arrow.removeEventListener(ResizeEvent.RESIZE, arrow_resizeHandler);
+            arrow.removeEventListener(FlexEvent.UPDATE_COMPLETE, arrow_updateCompleteHandler);
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(w:Number, h:Number):void
+    {
+        super.updateDisplayList(w, h);
+
+        updateSkinDisplayList();
+        positionPopUp();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Sets the bounds of arrow, whose geometry isn't fully
+     *  specified by the skin's layout.
+     *
+     *
Subclasses may override this method to update the arrow's size,
+     *  position, and visibility, based on the computed
+     *  arrowDirection

+     *
+     *
By default, this method aligns the arrow on the shorter of either
+     *  the arrow bounds or the owner bounds.

+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 3
+     *  @productversion Flex 4.5.2
+     */
+    protected function updateSkinDisplayList():void
+    {
+        var anchor:IVisualElement = owner as IVisualElement;
+
+        if (!arrow || !owner || (arrowDirection == ArrowDirection.NONE))
+            return;
+
+        var isVertical:Boolean = (arrowDirection == ArrowDirection.UP)
+            || (arrowDirection == ArrowDirection.DOWN);
+
+        var isStartPosition:Boolean = false;
+        var isMiddlePosition:Boolean = false;
+        var isEndPosition:Boolean = false;
+
+        var position:String = (isVertical) ? internalHorizontalPosition : internalVerticalPosition;
+
+        isStartPosition = (position == CalloutPosition.START);
+        isMiddlePosition = (position == CalloutPosition.MIDDLE);
+        isEndPosition = (position == CalloutPosition.END);
+
+        var isEndOfCallout:Boolean = (arrowDirection == ArrowDirection.DOWN)
+            || (arrowDirection == ArrowDirection.RIGHT);
+
+        // arrow X/Y in pop-up coordinates
+        var arrowX:Number = 0;
+        var arrowY:Number = 0;
+
+        var calloutWidth:Number = getLayoutBoundsWidth();;
+        var calloutHeight:Number = getLayoutBoundsHeight();;
+        var arrowWidth:Number = arrow.getLayoutBoundsWidth();
+        var arrowHeight:Number = arrow.getLayoutBoundsHeight();
+
+        if (isVertical)
+        {
+            // vertical arrows need horizontal alignment
+            var ownerWidth:Number = anchor.getLayoutBoundsWidth();
+            var ownerX:Number = anchor.getLayoutBoundsX();
+
+            if (calloutWidth <= ownerWidth)
+            {
+                arrowX = (calloutWidth - arrowWidth) / 2;
+            }
+            else // if (calloutWidth > ownerWidth)
+            {
+                if ((arrowWidth >= ownerWidth) && !isMiddlePosition)
+                {
+                    arrowX = (isStartPosition) ? 0 : calloutWidth - arrowWidth;
+                }
+                else
+                {
+                    if (isMiddlePosition)
+                    {
+                        // center on the callout
+                        arrowX = (calloutWidth - arrowWidth) / 2;
+                    }
+                    else
+                    {
+                        arrowX = (ownerWidth - arrowWidth) / 2;
+
+                        if (isEndPosition)
+                            arrowX += (calloutWidth - ownerWidth);
+                    }
+                }
+            }
+
+            // move the arrow to the end of the callout
+            if (isEndOfCallout)
+                arrowY = calloutHeight - arrowHeight;
+        }
+        else
+        {
+            // horizontal arrows need vertical alignment
+            var ownerHeight:Number = anchor.getLayoutBoundsHeight();
+
+            if (calloutHeight <= ownerHeight)
+            {
+                arrowY = (calloutHeight - arrowHeight) / 2;
+            }
+            else
+            {
+                // isStartPosition
+                arrowY = Math.max(0, (ownerHeight - arrowHeight) / 2);
+
+                if (isEndPosition)
+                {
+                    arrowY += (calloutHeight - ownerHeight);
+                }
+                else if (isMiddlePosition)
+                {
+                    arrowY += (calloutHeight - ownerHeight) / 2;
+                }
+            }
+
+            // move the arrow to the end of the callout
+            if (isEndOfCallout)
+                arrowX = calloutWidth - arrowWidth;
+        }
+
+        arrow.setLayoutBoundsPosition(Math.floor(arrowX), Math.floor(arrowY));
+    }
+
+    /**
+     *  @private
+     *
+     *  Basically the same as PopUpAnchor, but with more position options
+     *  including exterior, interior and corner positions.
+     *
+     *  @see spark.components.PopUpAnchor#calculatePopUpPosition
+     */
+    mx_internal function calculatePopUpPosition():Point
+    {
+        // This implementation doesn't handle rotation
+        var sandboxRoot:DisplayObject = systemManager.getSandboxRoot();
+        var matrix:Matrix = MatrixUtil.getConcatenatedMatrix(owner, sandboxRoot);
+
+        var regPoint:Point = new Point();
+
+        if (!matrix)
+            return regPoint;
+
+        var calloutBounds:Rectangle = new Rectangle();
+
+        determinePosition(internalHorizontalPosition, internalVerticalPosition, matrix, regPoint, calloutBounds);
+
+        var adjustedPosition:String;
+
+        // Position the callout in the opposite direction if it
+        // does not fit on the screen.
+        // TODO (jasonsj): adjust for horizontalPosition/verticalPosition
+        /*
+        if (screen)
+        {
+        switch(popUpPosition)
+        {
+        case PopUpPosition.BELOW :
+        if (popUpBounds.bottom > screen.bottom)
+        adjustedPosition = PopUpPosition.ABOVE;
+        break;
+        case PopUpPosition.ABOVE :
+        if (popUpBounds.top < screen.top)
+        adjustedPosition = PopUpPosition.BELOW;
+        break;
+        case PopUpPosition.LEFT :
+        if (popUpBounds.left < screen.left)
+        adjustedPosition = PopUpPosition.RIGHT;
+        break;
+        case PopUpPosition.RIGHT :
+        if (popUpBounds.right > screen.right)
+        adjustedPosition = PopUpPosition.LEFT;
+        break;
+        }
+        }
+        */
+
+        // Get the new registration point based on the adjusted position
+        if (adjustedPosition != null)
+        {
+            var adjustedRegPoint:Point = new Point();
+            var adjustedBounds:Rectangle = new Rectangle();
+            determinePosition(internalHorizontalPosition, internalVerticalPosition, matrix, adjustedRegPoint, adjustedBounds);
+
+            // TODO (jasonsj): adjust for horizontalPosition/verticalPosition
+            /*
+            if (screen)
+            {
+            // If we adjusted the position but the popUp still doesn't fit,
+            // then revert to the original position.
+            switch(adjustedPosition)
+            {
+            case PopUpPosition.BELOW :
+            if (adjustedBounds.bottom > screen.bottom)
+            adjustedPosition = null;
+            break;
+            case PopUpPosition.ABOVE :
+            if (adjustedBounds.top < screen.top)
+            adjustedPosition = null;
+            break;
+            case PopUpPosition.LEFT :
+            if (adjustedBounds.left < screen.left)
+            adjustedPosition = null;
+            break;
+            case PopUpPosition.RIGHT :
+            if (adjustedBounds.right > screen.right)
+            adjustedPosition = null;
+            break;
+            }
+            }
+            */
+
+            if (adjustedPosition != null)
+            {
+                regPoint = adjustedRegPoint;
+                calloutBounds = adjustedBounds;
+            }
+        }
+
+        MatrixUtil.decomposeMatrix(decomposition, matrix, 0, 0);
+        var concatScaleX:Number = decomposition[3];
+        var concatScaleY:Number = decomposition[4];
+
+        // If the popUp still doesn't fit, then nudge it
+        // so it is completely on the screen. Make sure to include scale.
+
+        if (calloutBounds.top < screen.top)
+            regPoint.y += (screen.top - calloutBounds.top) / concatScaleY;
+        else if (calloutBounds.bottom > screen.bottom)
+            regPoint.y -= (calloutBounds.bottom - screen.bottom) / concatScaleY;
+
+        if (calloutBounds.left < screen.left)
+            regPoint.x += (screen.left - calloutBounds.left) / concatScaleX;
+        else if (calloutBounds.right > screen.right)
+            regPoint.x -= (calloutBounds.right - screen.right) / concatScaleX;
+
+        // Compute the stage coordinates of the upper,left corner of the PopUp, taking
+        // the postTransformOffsets - which include mirroring - into account.
+        // If we're mirroring, then the implicit assumption that x=left will fail,
+        // so we compensate here.
+
+        if (layoutDirection == LayoutDirection.RTL)
+            regPoint.x += calloutBounds.width;
+        return MatrixUtil.getConcatenatedComputedMatrix(owner, sandboxRoot).transformPoint(regPoint);
+    }
+
+    /**
+     *  @private
+     *  Computes horizontalPosition and verticalPosition values when using
+     *  CalloutPosition.AUTO.
+     */
+    mx_internal function commitAutoPosition():void
+    {
+        if ((horizontalPosition != CalloutPosition.AUTO)
+            && (verticalPosition != CalloutPosition.AUTO))
+            return;
+
+        var sbRoot:DisplayObject = systemManager.getSandboxRoot();
+        var ownerBounds:Rectangle = owner.getBounds(sbRoot);
+
+        var spaceLeft:Number = ownerBounds.left - width;
+        var spaceRight:Number = sbRoot.width - ownerBounds.right;
+        var spaceTop:Number = ownerBounds.top;
+        var spaceBottom:Number = sbRoot.height - ownerBounds.bottom;
+
+        spaceLeft -= width;
+        spaceRight -= width;
+        spaceTop -= height;
+        spaceBottom -= height;
+
+        if (verticalPosition != CalloutPosition.AUTO)
+        {
+            // horizontal auto only
+            _autoHorizontalPosition = CalloutPosition.MIDDLE;
+            _autoVerticalPosition = null;
+        }
+        else if (horizontalPosition != CalloutPosition.AUTO)
+        {
+            // vertical auto only
+            _autoHorizontalPosition = null;
+            _autoVerticalPosition = CalloutPosition.MIDDLE;
+        }
+        else
+        {
+            // no room above or below
+            var canFitVertical:Boolean = ((spaceTop > 0) || (spaceBottom > 0));
+            var canFitHorizontal:Boolean = ((spaceLeft > 0) || (spaceRight > 0));
+
+            if (canFitVertical && !canFitHorizontal)
+            {
+                // place vertically before or after the owner
+                // allow the callout to span the horizontal screen space
+                _autoHorizontalPosition = CalloutPosition.MIDDLE;
+                _autoVerticalPosition = (spaceTop > spaceBottom) ? CalloutPosition.BEFORE : CalloutPosition.AFTER;
+            }
+            else
+            {
+                // place horizontally before or after the owner
+                // allow the callout to span the vertical screen space
+                _autoHorizontalPosition = CalloutPosition.MIDDLE;
+                _autoVerticalPosition = (spaceTop > spaceBottom) ? CalloutPosition.BEFORE : CalloutPosition.AFTER;
+            }
+        }
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function determinePosition(horizontalPos:String, verticalPos:String,
+                                           matrix:Matrix, registrationPoint:Point, bounds:Rectangle):void
+    {
+        var ownerVisualElement:ILayoutElement = owner as ILayoutElement;
+        var ownerWidth:Number = (ownerVisualElement) ? ownerVisualElement.getLayoutBoundsWidth() : owner.width;
+        var ownerHeight:Number = (ownerVisualElement) ? ownerVisualElement.getLayoutBoundsHeight() : owner.height;
+
+        switch (horizontalPos)
+        {
+            case CalloutPosition.BEFORE:
+                registrationPoint.x = -width;
+                break;
+            case CalloutPosition.START:
+                registrationPoint.x = 0;
+                break;
+            case CalloutPosition.END:
+                registrationPoint.x = ownerWidth - width;
+                break;
+            case CalloutPosition.AFTER:
+                registrationPoint.x = ownerWidth;
+                break;
+            default: // case CalloutPosition.MIDDLE:
+                registrationPoint.x = Math.floor((ownerWidth - width) / 2);
+                break;
+        }
+
+        switch (verticalPos)
+        {
+            case CalloutPosition.BEFORE:
+                registrationPoint.y = -height;
+                break;
+            case CalloutPosition.START:
+                registrationPoint.y = 0;
+                break;
+            case CalloutPosition.MIDDLE:
+                registrationPoint.y = Math.floor((ownerHeight - height) / 2);
+                break;
+            case CalloutPosition.END:
+                registrationPoint.y = ownerHeight - height;
+                break;
+            default: //case CalloutPosition.AFTER:
+                registrationPoint.y = ownerHeight;
+                break;
+        }
+
+        var topLeft:Point = registrationPoint.clone();
+        var size:Point = MatrixUtil.transformBounds(width, height, matrix, topLeft);
+        bounds.left = topLeft.x;
+        bounds.top = topLeft.y;
+        bounds.width = size.x;
+        bounds.height = size.y;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Redraw whenever added to the stage to ensure the calculations
+     *  in updateSkinDisplayList() are correct.
+     */
+    private function addedToStageHandler(event:Event):void
+    {
+        updateSkinDisplayList();
+    }
+
+    /**
+     *  @private
+     */
+    private function arrow_resizeHandler(event:Event):void
+    {
+        updateSkinDisplayList();
+    }
+
+    /**
+     *  @private
+     */
+    private function arrow_updateCompleteHandler(event:Event):void
+    {
+        updateSkinDisplayList();
+    }
+}
+}


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

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

 package spark.events
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.flash
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2796
Author:   jimurphy@adobe.com
Date:     2008-08-11T14:31:56.866734Z

Log Message:
-----------
Merged 3.0.x revisions [2767,2780,2784] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/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/managers/SystemManagerProxy.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/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.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/modules/compiler/src/java/flex2/tools/Compc.java</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/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
@@ -33,6 +33,7 @@
 import mx.core.FlexSprite;
 import mx.core.IChildList;
 import mx.core.IFlexDisplayObject;
+import mx.core.IFlexModule;
 import mx.core.IInvalidating;
 import mx.core.IUIComponent;
 import mx.core.UIComponentGlobals;
@@ -252,6 +253,14 @@

         const visibleFlag:Boolean = window.visible;

+		if (parent is IUIComponent && window is IUIComponent &&
+			IUIComponent(window).document == null)
+			IUIComponent(window).document = IUIComponent(parent).document;
+
+		if (parent is IUIComponent && IUIComponent(parent).document is IFlexModule &&
+			window is UIComponent && UIComponent(window).moduleFactory == null)
+			UIComponent(window).moduleFactory = IFlexModule(IUIComponent(parent).document).moduleFactory;
+
         var sm:ISystemManager2 = getTopLevelSystemManager(parent);
         var children:IChildList;
         var topMost:Boolean;
@@ -361,18 +370,18 @@
             o._mouseDownOutsideHandler  = nonmodalMouseDownOutsideHandler;
             o._mouseWheelOutsideHandler = nonmodalMouseWheelOutsideHandler;

-            sbRoot.addEventListener(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
-            sbRoot.addEventListener(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
-
-//            SystemManager(smp).addEventListenerToStage(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
-//            SystemManager(smp).addEventListenerToStage(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
-
             window.visible = visibleFlag;
         }
-
-        sbRoot.addEventListener(MarshalMouseEvent.MOUSE_DOWN,  o.marshalMouseOutsideHandler);
-        sbRoot.addEventListener(MarshalMouseEvent.MOUSE_WHEEL, o.marshalMouseOutsideHandler, true);
-
+
+        // Add show/hide listener so mouse out listeners can be added when
+        // a pop up is shown because applications can be launched and
+        // terminated between the time a pop up is hidden to when it is
+        // shown again.
+        o.owner.addEventListener(FlexEvent.SHOW, showOwnerHandler);
+        o.owner.addEventListener(FlexEvent.HIDE, hideOwnerHandler);
+
+        addMouseOutEventListeners(o);
+
         // Listen for unload so we know to kill the window (and the modalWindow if modal)
         // this handles _all_ cleanup
         window.addEventListener(Event.REMOVED, popupRemovedHandler);
@@ -681,10 +690,6 @@

         // the following handlers all get removed in REMOVED on the popup

-        // Because it listens to the modal window
-        modalWindow.addEventListener(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
-        modalWindow.addEventListener(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
-
         // Set the resize handler so the modal can stay the size of the screen
        	realSm.addEventListener(Event.RESIZE, o.resizeHandler);

@@ -820,28 +825,6 @@

     }

-    /**
-     *  @private
-     *  Set by PopUpManager on modal windows so they show when the parent shows
-     */
-    private function popupShowHandler(event:FlexEvent):void
-    {
-        const o:PopUpData = findPopupInfoByOwner(event.target);
-        if (o)
-            showModalWindow(o, getTopLevelSystemManager(o.parent));
-    }
-
-    /**
-     *  @private
-     *  Set by PopUpManager on modal windows so they hide when the parent hide
-     */
-    private function popupHideHandler(event:FlexEvent):void
-    {
-        const o:PopUpData = findPopupInfoByOwner(event.target);
-        if (o)
-            hideModalWindow(o);
-    }
-
     /**
      *  @private
      */
@@ -1101,11 +1084,103 @@
         return null;
     }

+    /**
+     *  @private
+     *  Add mouse out listeners for modal and non-modal windows.
+     */
+    private function addMouseOutEventListeners(o:PopUpData):void
+    {
+        var sbRoot:DisplayObject = o.systemManager.getSandboxRoot();
+        if (o.modalWindow)
+        {
+            o.modalWindow.addEventListener(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
+            o.modalWindow.addEventListener(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
+        }
+        else
+        {
+            sbRoot.addEventListener(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
+            sbRoot.addEventListener(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
+        }
+
+        sbRoot.addEventListener(MarshalMouseEvent.MOUSE_DOWN,  o.marshalMouseOutsideHandler);
+        sbRoot.addEventListener(MarshalMouseEvent.MOUSE_WHEEL, o.marshalMouseOutsideHandler, true);
+    }
+
+    /**
+     *  @private
+     *  Remove mouse out listeners for modal and non-modal windows.
+     */
+    private function removeMouseOutEventListeners(o:PopUpData):void
+    {
+        var sbRoot:DisplayObject = o.systemManager.getSandboxRoot();
+        if (o.modalWindow)
+        {
+            o.modalWindow.removeEventListener(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
+            o.modalWindow.removeEventListener(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
+        }
+        else
+        {
+            sbRoot.removeEventListener(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
+            sbRoot.removeEventListener(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
+        }
+
+        sbRoot.removeEventListener(MarshalMouseEvent.MOUSE_DOWN,  o.marshalMouseOutsideHandler);
+        sbRoot.removeEventListener(MarshalMouseEvent.MOUSE_WHEEL, o.marshalMouseOutsideHandler, true);
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Event handlers
     //
     //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Set by PopUpManager on modal windows so they show when the parent shows.
+     */
+    private function popupShowHandler(event:FlexEvent):void
+    {
+        const o:PopUpData = findPopupInfoByOwner(event.target);
+        if (o)
+            showModalWindow(o, getTopLevelSystemManager(o.parent));
+    }
+
+    /**
+     *  @private
+     *  Set by PopUpManager on modal windows so they hide when the parent hide
+     */
+    private function popupHideHandler(event:FlexEvent):void
+    {
+        const o:PopUpData = findPopupInfoByOwner(event.target);
+        if (o)
+            hideModalWindow(o);
+    }
+
+    /**
+     *  @private
+     */
+    private function showOwnerHandler(event:FlexEvent):void
+    {
+        const o:PopUpData = findPopupInfoByOwner(event.target);
+        if (o)
+        {
+            // add mouse out listeners.
+            addMouseOutEventListeners(o);
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function hideOwnerHandler(event:FlexEvent):void
+    {
+        const o:PopUpData = findPopupInfoByOwner(event.target);
+        if (o)
+        {
+            // remove mouse out listeners
+            removeMouseOutEventListeners(o);
+        }
+    }

     /**
      *  @private
@@ -1282,13 +1357,18 @@
 					sm.dispatchEvent(request);
 				}

+                if (o.owner)
+                {
+                    o.owner.removeEventListener(FlexEvent.SHOW, showOwnerHandler);
+                    o.owner.removeEventListener(FlexEvent.HIDE, hideOwnerHandler);
+                }
+
+                removeMouseOutEventListeners(o);
+
                 // modal
                 if (modalWindow)
                 {
                     // clean up all handlers
-                    modalWindow.removeEventListener(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
-                    modalWindow.removeEventListener(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
-
                     realSm.removeEventListener(Event.RESIZE, o.resizeHandler);

                     popUp.removeEventListener(FlexEvent.SHOW, popupShowHandler);
@@ -1297,17 +1377,7 @@
                     hideModalWindow(o, true);
                     realSm.numModalWindows--;
                 }
-
-                // non-modal
-                else
-                {
-                    realSm.removeEventListener(MouseEvent.MOUSE_DOWN,  o.mouseDownOutsideHandler);
-                    realSm.removeEventListener(MouseEvent.MOUSE_WHEEL, o.mouseWheelOutsideHandler, true);
-                }
-
-                realSm.removeEventListener(MarshalMouseEvent.MOUSE_DOWN,  o.marshalMouseOutsideHandler);
-                realSm.removeEventListener(MarshalMouseEvent.MOUSE_WHEEL, o.marshalMouseOutsideHandler, true);
-
+
                 popupInfo.splice(i, 1);
                 break;
             }


Default language to "null" in getLocalizedText function

--- collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/metamodel/proxy/LanguageSpecificTextProxy.as
+++ collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/metamodel/proxy/LanguageSpecificTextProxy.as
@@ -12,7 +12,7 @@
     [RemoteClass(alias="org.openforis.collect.metamodel.proxy.LanguageSpecificTextProxy")]
     public class LanguageSpecificTextProxy extends LanguageSpecificTextProxyBase {

-		public static function getLocalizedText(list:IList, language:String = "en"):String {
+		public static function getLocalizedText(list:IList, language:String = null):String {
 			for each (var item:LanguageSpecificTextProxy in list) {
 				if(item.language == language) {
 					return item.text;


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

--- frameworks/projects/framework/src/mx/validators/CurrencyValidatorAlignSymbol.as
+++ frameworks/projects/framework/src/mx/validators/CurrencyValidatorAlignSymbol.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 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.
 //
 ////////////////////////////////////////////////////////////////////////////////