Transferred from the Adobe Open Source Subversion Repository

Revision: 7294
Author:   rfrishbe@adobe.com
Date:     2009-05-26T23:42:28.083115Z

Log Message:
-----------
Flash Component Kit for Flex changes:

There are public properties for trackSizeChanges and trackStateChanges.  By default, these are turned off (meaning we don't have enter frame handlers and we are much more performant).  When trackSizeChanges is turned on,  we monitor the size of the flash object every frame to see if it's changed (and notify our parent if it has ... we also might resize/rescale if the object has been told to only take up a specific explicit size).  When trackStateChanges is turned on, we look for a change in the frame label every frame, and if so, we update the currentState of the object to reflect the new frame label.

QE Notes: -
Doc Notes: -
Bugs: SDK-21270, SDK-20228
Reviewer: Glenn
tests: checkintests, mustella FCK

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as

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

--- frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
@@ -666,12 +666,6 @@

     private var oldY:Number;

-    // Size change detection vars
-    /**
-     * @private
-     */
-    protected var trackSizeChanges:Boolean = false;
-
     private var oldWidth:Number;

     private var oldHeight:Number;
@@ -685,6 +679,112 @@
     //  Public variables
     //
     //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  trackSizeChanges
+    //----------------------------------
+
+    /**
+     * @private
+     */
+    private var _trackSizeChanges:Boolean = false;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Whether we should actively watch changes to the size of the flash object.
+     *  If this is set to true, then every frame, the size of the flash
+     *  object will be determined.  If the size has changed, then the flash object
+     *  will scale appropriately to fit its explicit bounds (or it will resize and
+     *  notify its parent if there is no explicit sizing).
+     *
+     *
Note: Setting this property to true may be expensive because
+     *  we now are asking the flash object its current size every single frame.

+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    public function get trackSizeChanges():Boolean
+    {
+        return _trackSizeChanges;
+    }
+
+    /**
+     *  @private
+     */
+    public function set trackSizeChanges(value:Boolean):void
+    {
+        if (_trackSizeChanges == value)
+            return;
+
+        _trackSizeChanges = value;
+
+        if(_trackSizeChanges)
+        {
+            addEventListener(Event.ENTER_FRAME, trackSizeChangesEnterFrameHandler, false, 0, true);
+        }
+        else
+        {
+            removeEventListener(Event.ENTER_FRAME, trackSizeChangesEnterFrameHandler);
+        }
+    }
+
+    //----------------------------------
+    //  trackStateChanges
+    //----------------------------------
+
+    /**
+     * @private
+     */
+    private var _trackStateChanges:Boolean = false;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Whether we should actively watch changes to the label of the flash object.
+     *  The Flex currentState property depends on this flash label.
+     *  If this is set to true, then every frame, the label of the flash
+     *  obejct will be quieried.  If the label has changed, that will become the new
+     *  currentState for the Flex object.
+     *
+     *
Note: Setting this property to true may be expensive because
+     *  we now are asking the flash object for is current label every single frame.

+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    public function get trackStateChanges():Boolean
+    {
+        return _trackStateChanges;
+    }
+
+    /**
+     *  @private
+     */
+    public function set trackStateChanges(value:Boolean):void
+    {
+        if (_trackStateChanges == value)
+            return;
+
+        _trackStateChanges = value;
+
+        if(_trackStateChanges)
+        {
+            addEventListener(Event.ENTER_FRAME, trackStateChangesEnterFrameHandler, false, 0, true);
+        }
+        else
+        {
+            removeEventListener(Event.ENTER_FRAME, trackStateChangesEnterFrameHandler);
+        }
+    }

     //----------------------------------
     //  x
@@ -3696,7 +3796,7 @@
             }
             else
             {
-                addEventListener(Event.ENTER_FRAME, stateEnterFrameHandler, false, 0, true);
+                addEventListener(Event.ENTER_FRAME, transitionEnterFrameHandler, false, 0, true);

                 // If the new transition is starting inside the current transition, start from
                 // the current frame location.
@@ -3763,8 +3863,6 @@
         if (boundingBoxName && boundingBoxName != ""
             && boundingBoxName in this && this[boundingBoxName])
         {
-            addEventListener(Event.ENTER_FRAME, enterFrameHandler, false, 0, true);
-            trackSizeChanges = true;
             this[boundingBoxName].visible = false;
         }

@@ -4229,7 +4327,9 @@
     //--------------------------------------------------------------------------

     /**
-     *  The main function that watches our size
+     *  This enter frame handler is used when our width, height, x, or y
+     *  value changes.  This is so the change can be delayed so that setting
+     *  x and y at the same time only results in one change event.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -4247,70 +4347,86 @@

         if (x != oldX || y != oldY)
             dispatchMoveEvent();
-
+
+        removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
+    }
+
+    /**
+     *  This enter frame handler watches the flash object's size to see if
+     *  it has changed.  If it's chagned, we will notify our flex parent of
+     *  the change.  This size change may also cause the flash component
+     *  to rescale if it's been explicitly sized so it fits within the
+     *  correct bounds.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    protected function trackSizeChangesEnterFrameHandler(event:Event):void
+    {
         // Size check.
-        if (trackSizeChanges)
-        {
-            var currentBounds:Rectangle = bounds;
-
-            // take secret scale into account as it's our real width/height
-            currentBounds.width *= mx_internal::scaleXDueToSizing;
-            currentBounds.height *= mx_internal::scaleYDueToSizing;
-
-            if (sizeChanged(currentBounds.width, oldWidth) || sizeChanged(currentBounds.height, oldHeight))
-            {
-                _width = currentBounds.width;
-                _height = currentBounds.height;
-                validateMeasuredSizeFlag = true;
-                notifySizeChanged();
-                dispatchResizeEvent();
-            }
-            else if (sizeChanged(width, oldWidth) || sizeChanged(height, oldHeight))
-            {
-                dispatchResizeEvent();
-            }
+        var currentBounds:Rectangle = bounds;
+
+        // take secret scale into account as it's our real width/height
+        currentBounds.width *= mx_internal::scaleXDueToSizing;
+        currentBounds.height *= mx_internal::scaleYDueToSizing;
+
+        if (sizeChanged(currentBounds.width, oldWidth) || sizeChanged(currentBounds.height, oldHeight))
+        {
+            _width = currentBounds.width;
+            _height = currentBounds.height;
+            validateMeasuredSizeFlag = true;
+            notifySizeChanged();
+            dispatchResizeEvent();
+        }
+        else if (sizeChanged(width, oldWidth) || sizeChanged(height, oldHeight))
+        {
+            dispatchResizeEvent();
+        }
+    }
+
+    /**
+     *  This enter frame handler watches our currentLabel for changes so that it
+     *  can be reflected in the currentState.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    protected function trackStateChangesEnterFrameHandler(event:Event):void
+    {
+        // Check for the current state.  This is really only checked for if
+        // trackStateChanged == true.  This is so that if we magically land
+        // on a "foo" labelled frame, we return "foo" as the currentState.
+        if (currentLabel && currentLabel.indexOf(":") < 0 && currentLabel != _currentState)
+            _currentState = currentLabel;
+    }
+
+    /**
+     *  This enter frame handler progresses through transitions
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4
+     */
+    protected function transitionEnterFrameHandler(event:Event):void
+    {
+        // Play the next frame of the transition, if needed.
+        var newFrame:Number = currentFrame + transitionDirection;
+
+        if ((transitionDirection > 0 && newFrame >= transitionEndFrame) ||
+            (transitionDirection < 0 && newFrame <= transitionEndFrame))
+        {
+            gotoAndStop(stateMap[transitionEndState].frame);
+            transitionDirection = 0;
+            removeEventListener(Event.ENTER_FRAME, transitionEnterFrameHandler);
         }
         else
         {
-            removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
-        }
-
-    }
-
-    /**
-     *  The main function that progesses through transitions.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 4
-     */
-    protected function stateEnterFrameHandler(event:Event):void
-    {
-        // States Change:
-
-        // We no longer support this "Current state check".  Setting currentState programatically
-        // still works, but if we magically land on a "foo" labelled frame, we don't return "foo"
-        // as the currentState anymore.
-        //if (currentLabel && currentLabel.indexOf(":") < 0 && currentLabel != _currentState)
-        //    _currentState = currentLabel;
-
-        // Play the next frame of the transition, if needed.
-        if (transitionDirection != 0)
-        {
-            var newFrame:Number = currentFrame + transitionDirection;
-
-            if ((transitionDirection > 0 && newFrame >= transitionEndFrame) ||
-                (transitionDirection < 0 && newFrame <= transitionEndFrame))
-            {
-                gotoAndStop(stateMap[transitionEndState].frame);
-                transitionDirection = 0;
-                removeEventListener(Event.ENTER_FRAME, stateEnterFrameHandler);
-            }
-            else
-            {
-                gotoAndStop(newFrame);
-            }
+            gotoAndStop(newFrame);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 13168
Author:   gosmith@adobe.com
Date:     2009-12-22T22:31:13.970084Z

Log Message:
-----------
Changed how accessibility works in the Spark Panel and TitleWindow.

Previously, we were attaching the PanelAccImpl or TitleWindowAccImpl to the titleDisplay, which complicated things. The first complication was that the titleDisplay is a skin part that might not be there when initializeAccessibility() is called. The second complication was in trying to get the MSAA Location to be the size of the Panel or TitleWindow, not the size of the titleDisplay; this wasn't working properly due to timing issues, since the titleDisplay redraws after the Panel/TitleWindow.

Now, we attach the acc impl to a special first child Sprite which stays behind all the content. The accessibility code in Panel and TitleWindow goes back to being completely standard; the creation and drawing of this Sprite (to get the MSAA Location correct) is handled in PanelAccImpl and inherited by TitleWindowAccImpl.

To prevent the title from being spoken twice, I null out the titleDisplay's own accessibilityImplementation at initialization or when the titelDisplay is added as a skin part. But I keep a reference to it in the component's acc impl so that I can restore it when the titleDisplay is removed as a skin part. For some reason, simply setting accessibilityEnabled to false didn't seem to work.

I also changed the logic in TitleWindowAccImpl for dispatching the MSAA events EVENT_OBJECT_LOCATIONCHANGE and EVENT_OBJECT_DESTROY. Previously, EVENT_OBJECT_LOCATIONCHANGE was being sent in response to a MOUSE_UP from the titleDisplay (after a drag); now it is sent in response to a WINDOW_MOVE_END from the TitleWindow (after a drag). And, previously, EVENT_OBJECT_DESTROY was sent in response to a MOUSE_UP from the closeButton (after a click); now it is sent in response to a CLOSE from the TitleWindow.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/TitleWindowAccImpl.as</path>

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

--- frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/PanelAccImpl.as
@@ -12,11 +12,21 @@
 package spark.accessibility
 {

+import flash.accessibility.AccessibilityImplementation;
+import flash.display.Graphics;
+import flash.display.Sprite;
+import flash.events.Event;
+
+import mx.accessibility.AccConst;
 import mx.accessibility.AccImpl;
-import mx.accessibility.AccConst;
+import mx.accessibility.PanelAccImpl;
+import mx.core.UIComponent;
 import mx.core.mx_internal;
-import mx.core.UIComponent;
+import mx.events.ResizeEvent;
+
 import spark.components.Panel;
+import spark.components.supportClasses.TextBase;
+import spark.events.SkinPartEvent;

 use namespace mx_internal;

@@ -26,7 +36,7 @@
  *
  *
When a Spark Panel is created,
  *  the accessibilityImplementation property
- *  of its titleDisplay is set to an instance of this class.
+ *  of a special child Sprite is set to an instance of this class.
  *  The Flash Player then uses this class to allow MSAA clients
  *  such as screen readers to see and manipulate the Panel.
  *  See the mx.accessibility.AccImpl and
@@ -119,8 +129,12 @@
      *
This method is called by application startup code
      *  that is autogenerated by the MXML compiler.
      *  Afterwards, when instances of Panel are initialized,
-     *  their accessibilityImplementation property
-     *  will be set to an instance of this class.

+     *  the accessibilityImplementation property
+     *  of a special first child Sprite will be set to an instance
+	 *  of this class.
+	 *  If the PanelAccImpl were attached to the Panel itself
+	 *  the accessibility implementations of the Panel's children
+	 *  would be ignored.

      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -136,31 +150,20 @@
     /**
      *  @private
      *  Creates Panel's AccessibilityImplementation object.
-	 *  This method is called from Panel's
-	 *  partAdded() method, not its initializeAccessibility() method,
-	 *  because the PanelAccImpl needs to be attached
-	 *  to the Panel's titleBar.
-	 *  The partRemoved() method removes the acc impl from the titleDisplay.
+	 *  This method is called from Panel's initializeAccessibility() method.
      */
     mx_internal static function createAccessibilityImplementation(
                                 component:UIComponent):void
     {
-        // The AccessibilityImplementation is placed on the
-        // Panel's titleBar, not on the Panel itself.
-        // If it were placed on the Panel itself,
-        // the AccessibilityImplementations of the Panel's children
-        // would be ignored.
-        var titleDisplay:UIComponent = Panel(component).titleDisplay;
-        if (titleDisplay)
-        {
-            titleDisplay.accessibilityImplementation =
-				new PanelAccImpl(component);
-
-			if (Panel(component).tabIndex > 0 && titleDisplay.tabIndex == -1)
-                titleDisplay.tabIndex = Panel(component).tabIndex;
-        }
-    }
-
+		// The TitleWindowAccImpl is attached
+		// not to the TitleWindow but to a special child Sprite.
+		// If it were attached to the TitleWindow itself,
+		// the AccessibilityImplementations of the TitleWindow's
+		// children would be ignored.
+		var accImpl:PanelAccImpl = new PanelAccImpl(component);
+		accImpl.attach();
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Constructor
@@ -185,6 +188,51 @@
         role = AccConst.ROLE_SYSTEM_GROUPING;
     }

+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  A Sprite which gets added to the Panel for the sole purpose
+	 *  of holding the PanelAccImpl.
+	 *  We have to make sure that the size of this Sprite is the same
+	 *  as the size of the Panel so that the MSAA Location is correct.
+	 */
+	mx_internal var accImplSprite:Sprite;
+
+	/**
+	 *  @private
+	 *  If the titleDisplay keeps an acc impl, it shows up as an accessible
+	 *  object, in addition to the accImplSprite.
+	 *  To prevent this, we remove the acc impl from the titleDisplay
+	 *  and park it here.
+	 */
+	private var titleDisplayAccImpl:AccessibilityImplementation;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  eventsToHandle
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Array of events that we should listen for from the master component.
+	 */
+	override protected function get eventsToHandle():Array
+	{
+		return super.eventsToHandle.concat([ ResizeEvent.RESIZE,
+											 SkinPartEvent.PART_ADDED,
+											 SkinPartEvent.PART_REMOVED ]);
+	}
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods: AccessibilityImplementation
@@ -228,6 +276,115 @@
     {
         return Panel(master).title;
     }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  The AccessibilityImplementation is placed
+	 *  not on the Panel but on a special child Sprite.
+	 *  If it were placed on the Panel itself,
+	 *  the AccessibilityImplementations of the Panel's
+	 *  children would be ignored.
+	 */
+	mx_internal function attach():Sprite
+	{
+		var panel:Panel = Panel(master);
+
+		// Create a Sprite.
+		accImplSprite = new Sprite();
+
+		// Add the Sprite as the first child of the component.
+		panel.$addChildAt(accImplSprite, 0);
+
+		// Attach this acc impl to this Sprite.
+		accImplSprite.accessibilityImplementation = this;
+
+		// Remove and save the titleDisplay's acc impl
+		// so that a screen reader doesn't read the title twice.
+		if (panel.titleDisplay)
+		{
+			titleDisplayAccImpl =
+				panel.titleDisplay.accessibilityImplementation;
+			panel.titleDisplay.accessibilityImplementation = null;
+		}
+
+		if (panel.tabIndex > 0 && accImplSprite.tabIndex == -1)
+			accImplSprite.tabIndex = panel.tabIndex;
+
+		return accImplSprite;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden event handlers: AccImpl
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Override the generic event handler.
+	 *  All AccImpl must implement this
+	 *  to listen for events from its master component.
+	 */
+	override protected function eventHandler(event:Event):void
+	{
+		super.eventHandler(event);
+
+		var titleDisplay:TextBase;
+
+		switch (event.type)
+		{
+			case ResizeEvent.RESIZE:
+			{
+				// In the accImplSprite, draw an invisible unfilled rect
+				// around the bounds of the entire Panel.
+				// This is for accessibility; the accImplSprite of the Panel
+				// has an AccessibilityImplementation (see PanelAccImpl)
+				// which makes it act like a grouping (ROLE_SYSTEM_GROUPING)
+				// for the controls inside the panel.
+				// Drawing this rect makes the accLocation rect of the grouping
+				// enclose the controls inside the grouping,
+				// even though it is a sibling of them, not their parent.
+				// (This is because the Player doesn't support Sprites
+				// with AccessibilityImplementations inside other Sprites
+				// with AccessibilityImplementations; the accessible objects
+				// in a Flash SWF are a flat list, not a hierarchy.)
+				var panel:Panel = Panel(master);
+				var g:Graphics = accImplSprite.graphics;
+				g.clear();
+				g.lineStyle(0, 0x000000, 0);
+				g.drawRect(0, 0, panel.width, panel.height);
+				break;
+			}
+
+			case SkinPartEvent.PART_ADDED:
+			{
+				titleDisplay = Panel(master).titleDisplay;
+				if (SkinPartEvent(event).instance == titleDisplay)
+				{
+					titleDisplayAccImpl = titleDisplay.accessibilityImplementation;
+					titleDisplay.accessibilityImplementation = null;
+				}
+				break;
+			}
+
+			case SkinPartEvent.PART_REMOVED:
+			{
+				titleDisplay = Panel(master).titleDisplay;
+				if (SkinPartEvent(event).instance == titleDisplay)
+				{
+					titleDisplay.accessibilityImplementation = titleDisplayAccImpl;
+					titleDisplayAccImpl = null;
+				}
+				break;
+			}
+		}
+	}
 }

 }


expose PES prefix, remove error throwing

--- src/org/mangui/hls/demux/PES.as
+++ src/org/mangui/hls/demux/PES.as
@@ -8,6 +8,8 @@
     public class PES {
         /** The PES data (including headers). **/
         public var data : ByteArray;
+        /** PES prefix **/
+        public var prefix : uint;
         /** Start of the payload. **/
         public var payload : uint;
         /** Timestamp from the PTS header. **/
@@ -29,10 +31,7 @@
         private function parse() : void {
             data.position = 0;
             // Start code prefix and packet ID.
-            var prefix : uint = data.readUnsignedInt();
-            if (prefix >> 8 != 0x1) {
-                throw new Error("PES start code not found:" + prefix);
-            }
+            prefix = data.readUnsignedInt();
             // read len
             len = data.readUnsignedShort();
             // Ignore marker bits.


Fix bug on getContext() null

Fix bug on getContext() null

--- src/main/flex/org/servebox/cafe/core/application/Application.as
+++ src/main/flex/org/servebox/cafe/core/application/Application.as
@@ -17,7 +17,7 @@

 		public function getContext():ApplicationContext
 		{
-			return null;
+			return _context;
 		}
 	}
 }


LQ-52 GUI optimization little fix of viewer

--- src/com/merlinds/miracle_tool/viewer/ViewerView.as
+++ src/com/merlinds/miracle_tool/viewer/ViewerView.as
@@ -65,6 +65,7 @@
 					_window = new Window(this, 0, 0, "Chose animation");
 					var list:List = new List(_window, 0, 0, this.getAnimations(asset.output));
 					_window.x = this.stage.stageWidth - _window.width;
+					_window.setSize(_window.height, list.height + 20);
 					list.addEventListener(Event.SELECT, this.selectAnimationHandler);
 				}
 			}


Socket status as requested here: http://www.igniterealtime.org/community/thread/40806

git-svn-id: c197267f952b24206666de142881703007ca05d5@11545 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/core/XMPPConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPConnection.as
@@ -1079,6 +1079,9 @@
 		 */
 		protected function socketClosed(event:Event):void
 		{
+			active = false;
+			loggedIn = false;
+
 			var disconnectionEvent:DisconnectionEvent = new DisconnectionEvent();
 			dispatchEvent( disconnectionEvent );
 		}


Расширение возможностей StringUtils

Расширение возможностей StringUtils

--- src/main/org/shypl/common/util/StringUtils.as
+++ src/main/org/shypl/common/util/StringUtils.as
@@ -45,6 +45,44 @@

 			while (s <= e && chars.indexOf(string.charAt(s)) !== -1) {
 				++s;
+			}
+
+			while (e > s && chars.indexOf(string.charAt(e)) !== -1) {
+				--e;
+			}
+
+			return e >= s ? string.slice(s, e + 1) : "";
+		}
+
+		public static function trimLeft(string:String, chars:String = " \t\r\n"):String {
+			if (string === null) {
+				throw new NullPointerException();
+			}
+
+			var s:int = 0;
+			var e:int = string.length - 1;
+
+			if (e === -1) {
+				return "";
+			}
+
+			while (s <= e && chars.indexOf(string.charAt(s)) !== -1) {
+				++s;
+			}
+
+			return e >= s ? string.slice(s, e + 1) : "";
+		}
+
+		public static function trimRight(string:String, chars:String = " \t\r\n"):String {
+			if (string === null) {
+				throw new NullPointerException();
+			}
+
+			var s:int = 0;
+			var e:int = string.length - 1;
+
+			if (e === -1) {
+				return "";
 			}

 			while (e > s && chars.indexOf(string.charAt(e)) !== -1) {


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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridRendererDescription.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridRendererDescription.as
@@ -0,0 +1,106 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls.advancedDataGridClasses
+{
+
+import mx.core.IFactory;
+
+/**
+ *  The AdvancedDataGridRendererDescription class contains information
+ *  that describes an item renderer for the AdvancedDataGrid control.
+ *
+ *  @see mx.controls.AdvancedDataGrid
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AdvancedDataGridRendererDescription
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AdvancedDataGridRendererDescription()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    // columnSpan
+    //----------------------------------
+
+    /**
+     *  Specifies the number of columns that the item renderer spans.
+     *  The AdvancedDataGrid control uses this information to set the width
+     *  of the item renderer.
+     *  If the columnSpan property has value of 0,
+     *  the item renderer spans the entire row.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var columnSpan:int;
+
+    //----------------------------------
+    // renderer
+    //----------------------------------
+
+    /**
+     *  The item renderer factory.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var renderer:IFactory;
+
+    //----------------------------------
+    // rowSpan
+    //----------------------------------
+
+    /**
+     *  Specifies the number of rows that the item renderer spans.
+     *  The AdvancedDataGrid control uses this information
+     *  to set the height of the item renderer.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var rowSpan:int;
+}
+
+}


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

--- frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as
+++ frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as
@@ -0,0 +1,198 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  Color of text in the component, including the component label.
+ *
+ *  @default 0x0B333C
+ */
+[Style(name="color", type="uint", format="Color", inherit="yes")]
+
+/**
+ *  Color of text in the component if it is disabled.
+ *
+ *  @default 0xAAB3B3
+ */
+[Style(name="disabledColor", type="uint", format="Color", inherit="yes")]
+
+/**
+ *  Sets the antiAliasType property of internal TextFields. The possible values are
+ *  "normal" (flash.text.AntiAliasType.NORMAL)
+ *  and "advanced" (flash.text.AntiAliasType.ADVANCED).
+ *
+ *
The default value is "advanced", which enables advanced anti-aliasing for the font.
+ *  Set to "normal" to disable the advanced anti-aliasing.

+ *
+ *
This style has no effect for system fonts.

+ *
+ *
This style applies to all the text in a TextField subcontrol;
+ *  you cannot apply it to some characters and not others.

+
+ *  @default "advanced"
+ *
+ *  @see flash.text.TextField
+ *  @see flash.text.AntiAliasType
+ */
+[Style(name="fontAntiAliasType", type="String", enumeration="normal,advanced", inherit="yes")]
+
+/**
+ *  Name of the font to use.
+ *  Unlike in a full CSS implementation,
+ *  comma-separated lists are not supported.
+ *  You can use any font family name.
+ *  If you specify a generic font name,
+ *  it is converted to an appropriate device font.
+ *
+ *  @default "Verdana"
+ */
+[Style(name="fontFamily", type="String", inherit="yes")]
+
+/**
+ *  Sets the gridFitType property of internal TextFields that represent text in Flex controls.
+ *  The possible values are "none" (flash.text.GridFitType.NONE),
+ *  "pixel" (flash.text.GridFitType.PIXEL),
+ *  and "subpixel" (flash.text.GridFitType.SUBPIXEL).
+ *
+ *
This property only applies when you are using an embedded font
+ *  and the fontAntiAliasType property
+ *  is set to "advanced".

+ *
+ *
This style has no effect for system fonts.

+ *
+ *
This style applies to all the text in a TextField subcontrol;
+ *  you can't apply it to some characters and not others.

+ *
+ *  @default "pixel"
+ *
+ *  @see flash.text.TextField
+ *  @see flash.text.GridFitType
+ */
+[Style(name="fontGridFitType", type="String", enumeration="none,pixel,subpixel", inherit="yes")]
+
+/**
+ *  Sets the sharpness property of internal TextFields that represent text in Flex controls.
+ *  This property specifies the sharpness of the glyph edges. The possible values are Numbers
+ *  from -400 through 400.
+ *
+ *
This property only applies when you are using an embedded font
+ *  and the fontAntiAliasType property
+ *  is set to "advanced".

+ *
+ *
This style has no effect for system fonts.

+ *
+ *
This style applies to all the text in a TextField subcontrol;
+ *  you can't apply it to some characters and not others.

+ *
+ *  @default 0
+ *
+ *  @see flash.text.TextField
+ */
+[Style(name="fontSharpness", type="Number", inherit="yes")]
+
+/**
+ *  Height of the text, in pixels.
+ *
+ *  The default value is 10 for all controls except the ColorPicker control.
+ *  For the ColorPicker control, the default value is 11.
+ */
+[Style(name="fontSize", type="Number", format="Length", inherit="yes")]
+
+/**
+ *  Determines whether the text is italic font.
+ *  Recognized values are "normal" and "italic".
+ *
+ *  @default "normal"
+ */
+[Style(name="fontStyle", type="String", enumeration="normal,italic", inherit="yes")]
+
+/**
+ *  Sets the thickness property of internal TextFields that represent text in Flex controls.
+ *  This property specifies the thickness of the glyph edges.
+ *  The possible values are Numbers from -200 to 200.
+ *
+ *
This property only applies when you are using an embedded font
+ *  and the fontAntiAliasType property
+ *  is set to "advanced".

+ *
+ *
This style has no effect on system fonts.

+ *
+ *
This style applies to all the text in a TextField subcontrol;
+ *  you can't apply it to some characters and not others.

+ *
+ *  @default 0
+ *
+ *  @see flash.text.TextField
+ */
+[Style(name="fontThickness", type="Number", inherit="yes")]
+
+/**
+ *  Determines whether the text is boldface.
+ *  Recognized values are normal and bold.
+ *  The default value for Button controls is bold.
+ *  The default value for all other controls is normal.
+ */
+[Style(name="fontWeight", type="String", enumeration="normal,bold", inherit="yes")]
+
+/**
+ *  A Boolean value that indicates whether kerning
+ *  is enabled (true) or disabled (false).
+ *  Kerning adjusts the gap between certain character pairs
+ *  to improve readability, and should be used only when necessary,
+ *  such as with headings in large fonts.
+ *  Kerning is supported for embedded fonts only.
+ *  Certain fonts, such as Verdana, and monospaced fonts,
+ *  such as Courier New, do not support kerning.
+ *
+ *  @default false
+ */
+[Style(name="kerning", type="Boolean", inherit="yes")]
+
+/**
+ *  The number of additional pixels to appear between each character.
+ *  A positive value increases the character spacing beyond the normal spacing,
+ *  while a negative value decreases it.
+ *
+ *  @default 0
+ */
+[Style(name="letterSpacing", type="Number", inherit="yes")]
+
+/**
+ *  Alignment of text within a container.
+ *  Possible values are "left", "right",
+ *  or "center".
+ *
+ *
The default value for most components is "left".
+ *  For the FormItem component,
+ *  the default value is "right".
+ *  For the Button, LinkButton, and AccordionHeader components,
+ *  the default value is "center", and
+ *  this property is only recognized when the
+ *  labelPlacement property is set to "left" or
+ *  "right".
+ *  If labelPlacement is set to "top" or
+ *  "bottom", the text and any icon are centered.

+ */
+[Style(name="textAlign", type="String", enumeration="left,center,right", inherit="yes")]
+
+/**
+ *  Determines whether the text is underlined.
+ *  Possible values are "none" and "underline".
+ *
+ *  @default "none"
+ */
+[Style(name="textDecoration", type="String", enumeration="none,underline", inherit="yes")]
+
+/**
+ *  Offset of first line of text from the left side of the container, in pixels.
+ *
+ *  @default 0
+ */
+[Style(name="textIndent", type="Number", format="Length", inherit="yes")]


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -66,6 +66,7 @@
     import flashx.textLayout.tlf_internal;
     import flashx.undo.IUndoManager;

+    import mx.core.FlexVersion;
     import mx.core.IFlexModuleFactory;
     import mx.core.IIMESupport;
     import mx.core.ISystemCursorClient;
@@ -739,6 +740,11 @@
         /**
          *  @private
          */
+        mx_internal var preserveSelectionOnSetText:Boolean = false;
+
+        /**
+         *  @private
+         */
         mx_internal var passwordChar:String = "*";

         /**
@@ -1729,7 +1735,7 @@
         {
             _multiline = value;
         }
-
+
         //----------------------------------
         //  restrict
         //----------------------------------
@@ -2012,9 +2018,11 @@
          *
Setting this property also affects the properties
          *  specifying the control's scroll position and the text selection.
          *  It resets the horizontalScrollPosition
-         *  and verticalScrollPosition to 0,
-         *  and it sets the selectionAnchorPosition
-         *  and selectionActivePosition
+         *  and verticalScrollPosition to 0.
+         *  Starting with Flex 4.6, the selectionAnchorPosition and
+         *  selectionActivePosition are preserved.
+         *  Previously, the selectionAnchorPosition
+         *  and selectionActivePosition were set
          *  to -1 to clear the selection.

          *
          *  @default ""
@@ -2032,6 +2040,14 @@
          */
         public function get text():String
         {
+            // Note: if displayAsPassword, _text will contain the actual text and the text flow will
+            // contain the same number of passwordChars.
+
+            // Go to the source if there isn't a pending change.  getText has its own buffering and
+            // only extracts the text from the TextFlow when it is damaged.
+            if (_textContainerManager && !textChanged && !textFlowChanged && !contentChanged && !displayAsPassword)
+                return _textContainerManager.getText("\n");
+
             // Extracting the plaintext from a TextFlow is somewhat expensive,
             // as it involves iterating over the leaf FlowElements in the TextFlow.
             // Therefore we do this extraction only when necessary, namely when
@@ -2490,6 +2506,9 @@

             updateStylesIfChanged();

+            var oldAnchorPosition:int = _selectionAnchorPosition;
+            var oldActivePosition:int = _selectionActivePosition;
+
             // EditingMode needs to be current before attempting to set a
             // selection below.
             if (enabledChanged || selectableChanged || editableChanged)
@@ -2507,6 +2526,9 @@

             if (textChanged)
             {
+                if (FlexVersion.compatibilityVersion > FlexVersion.VERSION_4_5)
+                    preserveSelectionOnSetText = true;
+
                 // If the text has linebreaks (CR, LF, or CF+LF)
                 // create a multi-paragraph TextFlow from it
                 // and use the TextFlowTextLineFactory to render it.
@@ -2521,7 +2543,7 @@
                 else
                 {
                     _textContainerManager.setText(_text);
-                }
+                }
             }
             else if (textFlowChanged)
             {
@@ -2562,15 +2584,14 @@
             // not the underlying text.
             if (displayAsPasswordChanged)
             {
-                var oldAnchorPosition:int = _selectionAnchorPosition;
-                var oldActivePosition:int = _selectionActivePosition;
+                preserveSelectionOnSetText = true;

                 // If there is any text, convert it to the passwordChar.
                 if (displayAsPassword)
                 {
                     // Make sure _text is set with the actual text before we
                     // change the displayed text.
-                    _text = text;
+                    _text = _textContainerManager.getText("\n");

                     // Paragraph terminators are lost during this substitution.
                     var textToDisplay:String = StringUtil.repeat(
@@ -2590,19 +2611,21 @@
                 lastGeneration = 0;
                 lastContentBoundsGeneration = 0;

-                if (editingMode != EditingMode.READ_ONLY)
+                displayAsPasswordChanged = false;
+            }
+
+            if (preserveSelectionOnSetText)
+            {
+                preserveSelectionOnSetText = false;
+
+                if (oldAnchorPosition != -1)
                 {
-                    // Must preserve the selection, if there was one.
-                    var selManager:ISelectionManager =
-                        _textContainerManager.beginInteraction();
-
+                    var selManager:ISelectionManager = _textContainerManager.beginInteraction();
+
                     // The visible selection will be refreshed during the update.
                     selManager.selectRange(oldAnchorPosition, oldActivePosition);
-
                     _textContainerManager.endInteraction();
-                }
-
-                displayAsPasswordChanged = false;
+                }
             }

             if (clipAndEnableScrollingChanged)
@@ -3764,7 +3787,7 @@
             // character so the height is good for the line but we
             // need to give it some width other than optional padding.

-            if (_textContainerManager.getText().length == 0)
+            if (_textContainerManager.getText("\n").length == 0)
             {
                 // Empty text flow.  One Em wide so there
                 // is a place to put the insertion cursor.
@@ -4076,7 +4099,7 @@
                     newText, _selectionAnchorPosition, _selectionActivePosition);

             if (success)
-                dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+                dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
         }

         /**
@@ -4596,6 +4619,9 @@
         private function textContainerManager_selectionChangeHandler(
             event:SelectionEvent):void
         {
+            if (preserveSelectionOnSetText)
+                return;
+
             var oldAnchor:int = _selectionAnchorPosition;
             var oldActive:int = _selectionActivePosition;

@@ -4618,10 +4644,9 @@
             // Only dispatch the event if the selection has really changed.
             var changed:Boolean = oldAnchor != _selectionAnchorPosition ||
                 oldActive != _selectionActivePosition;
-
-
+
             if (changed)
-            {
+            {
                 //trace("selectionChangeHandler", _selectionAnchorPosition, _selectionActivePosition);
                 dispatchEvent(new FlexEvent(FlexEvent.SELECTION_CHANGE));
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8561
Author:   gosmith@adobe.com
Date:     2009-07-14T21:37:00.730541Z

Log Message:
-----------
Integrated TLF build 468.

This integration required trivial framework changes due to two renamed APIs: In TextContainerManager, scrollToPosition() has been renamed to scrollToRange(). And in PasteOperation, the scrapToPaste() method has been removed in favor of a textScrap property  (but I'm questioning whether this change is OK since I think it makes a copy of the TextScrap).

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swf</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/tlf.properties</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -40,7 +40,6 @@
 import flashx.textLayout.edit.ISelectionManager;
 import flashx.textLayout.edit.SelectionManager;
 import flashx.textLayout.edit.SelectionState;
-import flashx.textLayout.edit.TextScrap;
 import flashx.textLayout.elements.Configuration;
 import flashx.textLayout.elements.InlineGraphicElementStatus;
 import flashx.textLayout.elements.TextFlow;
@@ -2707,7 +2706,7 @@
     }

     /**
-     *  @copy flashx.textLayout.container.ContainerController#scrollToPosition()
+     *  @copy flashx.textLayout.container.ContainerController#scrollToRange()
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -2721,7 +2720,7 @@
         validateNow();

         // Scrolls so that the text position is visible in the container.
-        textContainerManager.scrollToPosition(anchorPosition, activePosition);
+        textContainerManager.scrollToRange(anchorPosition, activePosition);
     }

     /**
@@ -3011,13 +3010,11 @@
     {
         if (!restrict && !maxChars && !displayAsPassword)
             return;
-
-        var textScrap:TextScrap = op.scrapToPaste();
-
+
         // If copied/cut from displayAsPassword field the pastedText
         // is '*' characters but this is correct.
         var pastedText:String = TextUtil.extractText(
-            textScrap.textFlow);
+            op.textScrap.textFlow);

         // We know it's an EditManager or we wouldn't have gotten here.
         var editManager:IEditManager = getEditManager();


Transferred from the Adobe Open Source Subversion Repository

Revision: 3031
Author:   chaase@adobe.com
Date:     2008-08-28T21:17:21.801208Z

Log Message:
-----------
Fixed SDK-16615, SDK-16576, SDK-16631, SDK-16635, TH-1507, SDK-16622. This is another round of Animation/effect changes. Some are API improvements (such as adding proper event dispatching to Animate), most are fixes for various SDK and Thermo bugs that have been filed. Here's an explanation of the changes per file:

Animate.as: (sdk-16622)
All of the changes here are to add AnimationEvent dispatching to this class, similar to what we had in TweenEffect for TweenEvent. Note that we have a new event now, ANIMATION_REPEAT, and that ANIMATION_END only gets sent out once for each animation (instead of after each repetition, which is what the Flex3 effects did)

Animation.as: (sdk-16635)
We were noop'ing 0-duration animations. We now handle this correctly by sending out a START event, then send out UPDATE/END events with the final value

AnimateInstance.as:
These changes relate to two problems/fixes:
- Dispatching events correctly (sdk-16622)
- Handling styles correctly before effects are completely set up (sdk-16615)

MoveInstance.as: (sdk-16631)
We didn't handle the situation where the user supplied only one of left/right or one of bottom/top.

TintInstance.as: (sdk-16615)
We weren't correctly detecting that colors were not being set by the user, which messed up assumptions for transition from/to values

ColorInterpolator.as (sdk-16576)
Removed redundant line of code

Tint.as: (sdk-16615)
Fixes to support property coloring during transitions

Effect.as:
Removed trace() statements that crept in there in an earlier checkin

Reviewed by Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/TintInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Tint.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/interpolation/ColorInterpolator.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -593,7 +593,7 @@
      */
     public function end():void
     {
-        if (_isPlaying)
+        if (_isPlaying || duration == 0)
         {
             // TODO (chaase): Check whether we already send out a final
             // UPDATE event with the end value; if so, this dup should be
@@ -813,8 +813,10 @@
     {
         numRepeats = 1;
         setupInterpolation();
-        setupEasing();
-
+        setupEasing();
+        var value:Object = getCurrentValue(0);
+        sendAnimationEvent(AnimationEvent.ANIMATION_START, value);
+
         if (duration == 0)
         {
             id = -1; // use -1 to indicate that this animation was never added
@@ -822,10 +824,8 @@
         }
         else
         {
-            var value:Object = getCurrentValue(0);
             // TODO (chaase): Make sure we're not already sending out an
             // UPDATE event with this start value
-            sendAnimationEvent(AnimationEvent.ANIMATION_START, value);
             sendAnimationEvent(AnimationEvent.ANIMATION_UPDATE, value);
             Animation.addAnimation(this);
             _isPlaying = true;


Improve sendFLVTag logging.

Improve sendFLVTag logging.

--- HLSPlugin/src/com/kaltura/hls/m2ts/FLVTranscoder.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/FLVTranscoder.as
@@ -68,7 +68,7 @@

             CONFIG::LOGGING
             {
-                logger.debug("FLV @ " + flvts + " dur=" + duration + " len=" + tag.length + " type=" + type + " payloadLen=" + msgLength);
+                logger.debug("FLV @ " + flvts + " dur=" + duration + " len=" + tag.length + " type=" + type + " payloadLen=" + msgLength + " buffer=" + buffer);
             }

             tag[cursor++] = type;


Javadoc

Javadoc

git-svn-id: 27326a786375daad9d33dc990c6f272e4c8f567c@1450 fda5f131-174c-0410-8613-e0905860106b

--- org.openwms/trunk/org.openwms.core/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/IObserver.as
+++ org.openwms/trunk/org.openwms.core/org.openwms.client.flex.lib/src/main/flex/org/openwms/web/flex/client/IObserver.as
@@ -19,20 +19,22 @@
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.openwms.web.flex.client {
+
     import mx.collections.ArrayCollection;
-
+
     /**
-     * An IObserver is notified about an object that references the IObserver.
+     * An IObservable is used as a callback. An UIComponent or any other Actionscript
+     * class implementing this interface can sent a notification to interested Observers
      *
      * @author Heiko Scherrer
      * @version $Revision$
      * since 0.1
      */
     public interface IObserver {
-
-    	/**
-    	 * Callback method.
-    	 */
-        function notify():void;
+
+        /**
+         * Callback method.
+         */
+        function notify() : void;
     }
 }


Update a dir witness.

Update a dir witness.

	* src/tests/bin/liburbi-check.as: liburbi-check is now in bin/.
	This remained unnoticed because the previous liburbi-check was
	still there.

--- sdk-remote/src/tests/bin/liburbi-check.as
+++ sdk-remote/src/tests/bin/liburbi-check.as
@@ -61,7 +61,7 @@

 exec 3>&2

-check_dir abs_builddir liburbi-check
+check_dir abs_builddir bin/liburbi-check
 check_dir abs_top_builddir config.status
 check_dir abs_top_srcdir configure.ac


fixed peer connecting issue

fixed peer connecting issue

--- return_of_the_rtmfpcat.as
+++ return_of_the_rtmfpcat.as
@@ -37,16 +37,16 @@
         };

         /* Nate's facilitator -- also serving a crossdomain policy */
+        //private const DEFAULT_FACILITATOR_ADDR:Object = {
+        //    host: "128.12.179.80",
+        //    port: 9002
+        //};
+
+        /* David's facilitator. */
         private const DEFAULT_FACILITATOR_ADDR:Object = {
-            host: "128.12.179.80",
+            host: "127.0.0.1",
             port: 9002
         };
-
-        /* David's facilitator. */
-        //private const DEFAULT_FACILITATOR_ADDR:Object = {
-        //    host: "tor-facilitator.bamsoftware.com",
-        //    port: 9006
-        //};

         /* Cirrus server information. */
         private const DEFAULT_CIRRUS_ADDRESS:String = "rtmfp://p2p.rtmfp.net";
@@ -415,6 +415,7 @@
             puts("RTMFPSocket: connected to peer");
             connected = true;
             dispatchEvent(new Event(Event.CONNECT));
+            peer.send("setPeerConnectAcknowledged");
             return true;
         };
         send_stream.client = client;
@@ -425,6 +426,10 @@
         client_rtmfp.addEventListener(ProgressEvent.SOCKET_DATA, function (event:ProgressEvent):void {
             dispatchEvent(event);
         }, false, 0, true);
+        client_rtmfp.addEventListener(RTMFPSocketClient.PEER_CONNECT_ACKNOWLEDGED, function (event:Event):void {
+            /* Empty... here for symmetry. */
+        }, false, 0, true);
+
         recv_stream.client = client_rtmfp;
         recv_stream.play(DATA);
     }
@@ -445,6 +450,8 @@
         recv_stream.client = client;
         recv_stream.play(DATA);

+        peer.send("setPeerConnectAcknowledged");
+
         return true;
     }

@@ -486,6 +493,7 @@
     }
 }

+[Event(name="peerConnectAcknowledged", type="flash.events.Event")]
 dynamic class RTMFPSocketClient extends EventDispatcher
 {
     public static const PEER_CONNECT_ACKNOWLEDGED:String = "peerConnectAcknowledged";


added DataProvider.setProperties()

added DataProvider.setProperties()

--- src/aerys/minko/type/data/DataProvider.as
+++ src/aerys/minko/type/data/DataProvider.as
@@ -71,6 +71,14 @@
 			return this;
 		}

+		public function setProperties(properties : Object) : DataProvider
+		{
+			for (var propertyName : String in properties)
+				setProperty(propertyName, properties[propertyName]);
+
+			return this;
+		}
+
 		public function removeProperty(name : String) : DataProvider
 		{
 			delete _descriptor[name];


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

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

 package mx.automation.delegates.containers
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 18871
Author:   smgilson@adobe.com
Date:     2010-11-30T20:10:44.561987Z

Log Message:
-----------
Fix ASDoc version tags

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/automation_spark/src/spark/automation/tabularData/SparkDataGridTabularData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultComplexItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkScrollBarBaseAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkComboBoxAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultGridHeaderRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SprakTextAreaAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGridAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultGridItemRendererAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkButtonBarBaseAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/mediaClasses/SparkVolumeBarAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonBarAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SprakSkinnableTextBaseAutomationImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreen.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/events/ViewNavigatorEvent.as</path>

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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultItemRendererAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/skins/spark/SparkDefaultItemRendererAutomationImpl.as
@@ -11,124 +11,124 @@

 package spark.automation.delegates.skins.spark
 {
-	import flash.display.DisplayObject;
-
-	import mx.automation.Automation;
-	import mx.automation.delegates.core.UIComponentAutomationImpl;
-	import mx.core.mx_internal;
-
-	import spark.skins.spark.DefaultItemRenderer;
-
-	use namespace mx_internal;
-
-	[Mixin]
-	/**
-	 *
-	 *  Defines methods and properties required to perform instrumentation for the
-	 *  ItemRenderer class for spark.
-	 *
-	 *  @see spark.skins.spark.DefaultItemRenderer
-	 *
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 4
-	 */
-	public class SparkDefaultItemRendererAutomationImpl extends UIComponentAutomationImpl
-	{
-		include "../../../../core/Version.as";
-
-		//--------------------------------------------------------------------------
-		//
-		//  Class methods
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  Registers the delegate class for a component class with automation manager.
-		 *
-		 *  @param root The SystemManger of the application.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 3
-		 */
-		public static function init(root:DisplayObject):void
-		{
-			Automation.registerDelegateClass(spark.skins.spark.DefaultItemRenderer, SparkDefaultItemRendererAutomationImpl);
-		}
-
-		//--------------------------------------------------------------------------
-		//
-		//  Constructor
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  Constructor.
-		 * @param obj DefaultItemRenderer object to be automated.
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 10
-		 *  @playerversion AIR 1.1
-		 *  @productversion Flex 4
-		 */
-		public function SparkDefaultItemRendererAutomationImpl(obj:spark.skins.spark.DefaultItemRenderer)
-		{
-			super(obj);
-			recordClick = false;
-		}
-
-		//--------------------------------------------------------------------------
-		//
-		//  Variables
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  @private
-		 *  storage for the owner component
-		 */
-		protected function get listItem():spark.skins.spark.DefaultItemRenderer
-		{
-			return uiComponent as spark.skins.spark.DefaultItemRenderer;
-		}
-
-
-		//--------------------------------------------------------------------------
-		//
-		//  Overridden properties
-		//
-		//--------------------------------------------------------------------------
-
-		//----------------------------------
-		//  automationName
-		//----------------------------------
-
-		/**
-		 *  @private
-		 */
-		override public function get automationName():String
-		{
-			return listItem.label|| super.automationName;
-		}
-
-		//----------------------------------
-		//  automationValue
-		//----------------------------------
-
-		/**
-		 *  @private
-		 */
-		override public function get automationValue():Array
-		{
-			return [automationName];
-		}
-
-
-
-
-	}
+    import flash.display.DisplayObject;
+
+    import mx.automation.Automation;
+    import mx.automation.delegates.core.UIComponentAutomationImpl;
+    import mx.core.mx_internal;
+
+    import spark.skins.spark.DefaultItemRenderer;
+
+    use namespace mx_internal;
+
+    [Mixin]
+    /**
+     *
+     *  Defines methods and properties required to perform instrumentation for the
+     *  ItemRenderer class for spark.
+     *
+     *  @see spark.skins.spark.DefaultItemRenderer
+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public class SparkDefaultItemRendererAutomationImpl extends UIComponentAutomationImpl
+    {
+        include "../../../../core/Version.as";
+
+        //--------------------------------------------------------------------------
+        //
+        //  Class methods
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Registers the delegate class for a component class with automation manager.
+         *
+         *  @param root The SystemManger of the application.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 1.5
+         *  @productversion Flex 4
+         */
+        public static function init(root:DisplayObject):void
+        {
+            Automation.registerDelegateClass(spark.skins.spark.DefaultItemRenderer, SparkDefaultItemRendererAutomationImpl);
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        //  Constructor
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Constructor.
+         * @param obj DefaultItemRenderer object to be automated.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 1.5
+         *  @productversion Flex 4
+         */
+        public function SparkDefaultItemRendererAutomationImpl(obj:spark.skins.spark.DefaultItemRenderer)
+        {
+            super(obj);
+            recordClick = false;
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        //  Variables
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  @private
+         *  storage for the owner component
+         */
+        protected function get listItem():spark.skins.spark.DefaultItemRenderer
+        {
+            return uiComponent as spark.skins.spark.DefaultItemRenderer;
+        }
+
+
+        //--------------------------------------------------------------------------
+        //
+        //  Overridden properties
+        //
+        //--------------------------------------------------------------------------
+
+        //----------------------------------
+        //  automationName
+        //----------------------------------
+
+        /**
+         *  @private
+         */
+        override public function get automationName():String
+        {
+            return listItem.label|| super.automationName;
+        }
+
+        //----------------------------------
+        //  automationValue
+        //----------------------------------
+
+        /**
+         *  @private
+         */
+        override public function get automationValue():Array
+        {
+            return [automationName];
+        }
+
+
+
+
+    }
 }


Moved code to run Before/After Class to the Parameterized runner and stopped the TestClassRunnerForParameters from doing so to be consistent across testNG and JUnit style param tests

--- FlexUnit4/src/org/flexunit/runners/Parameterized.as
+++ FlexUnit4/src/org/flexunit/runners/Parameterized.as
@@ -175,11 +175,6 @@

 			IRunner( child ).run( notifier, childRunnerToken );
 		}
-
-		//we don't want the BeforeClass and AfterClass on this run to execute, this will be handled by the TestClassRunnerForParameters
-		override protected function classBlock( notifier:IRunNotifier ):IAsyncStatement {
-			return childrenInvoker( notifier );
-		}
 		// end Items copied from Suite
 	}
 }
@@ -193,8 +188,10 @@
 import org.flexunit.constants.AnnotationArgumentConstants;
 import org.flexunit.constants.AnnotationConstants;
 import org.flexunit.internals.runners.InitializationError;
+import org.flexunit.internals.runners.statements.IAsyncStatement;
 import org.flexunit.runner.Description;
 import org.flexunit.runner.IDescription;
+import org.flexunit.runner.notification.IRunNotifier;
 import org.flexunit.runners.BlockFlexUnit4ClassRunner;
 import org.flexunit.runners.model.FrameworkMethod;
 import org.flexunit.runners.model.ParameterizedMethod;
@@ -309,7 +306,12 @@
 			return testClass.klassInfo.constructor.newInstance();
 		}
 	}
-
+
+	//we don't want the BeforeClass and AfterClass on this run to execute, this will be handled by Parameterized
+	override protected function classBlock( notifier:IRunNotifier ):IAsyncStatement {
+		return childrenInvoker( notifier );
+	}
+
 	public function TestClassRunnerForParameters(klass:Class, parameterList:Array=null, i:int=0) {
 		klassInfo = new Klass( klass );
 		super(klass);


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

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

 package spark.automation.delegates.components.supportClasses
 {


Modify krewActorDelegate

Modify krewActorDelegate

--- krew-framework/krewfw/core/KrewActorDelegate.as
+++ krew-framework/krewfw/core/KrewActorDelegate.as
@@ -5,6 +5,8 @@
     import starling.display.Image;
     import starling.display.Sprite;
     import starling.textures.Texture;
+
+    import krewfw.core_internal.KrewSharedObjects;

     /**
      * Scene 上にのっていない Actor が Actor めいた仕事をしたいときの委譲先。
@@ -68,6 +70,8 @@
         // Delegate methods
         //------------------------------------------------------------

+        public function get sharedObj():KrewSharedObjects { return _actor.sharedObj; }
+
         public function getTexture(fileName:String):Texture { return _actor.getTexture(fileName); }
         public function getImage  (fileName:String):Image   { return _actor.getImage  (fileName); }
         public function getSound  (fileName:String):Sound   { return _actor.getSound  (fileName); }


Transferred from the Adobe Open Source Subversion Repository

Revision: 10755
Author:   clucier@adobe.com
Date:     2009-09-30T19:32:20.239118Z

Log Message:
-----------
Cleanup. Removing all 2.x APIs that have been deprecated since 3.0.

QE notes:  None
Doc notes: None
Bugs: SDK-23265
Reviewer: Ryan, Gordon
Tests run: Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceBundle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.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/managers/IHistoryManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/Locale.as</path>

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

--- frameworks/projects/framework/src/mx/resources/ResourceBundle.as
+++ frameworks/projects/framework/src/mx/resources/ResourceBundle.as
@@ -69,91 +69,6 @@
     //
     //--------------------------------------------------------------------------

-    [Deprecated(replacement="ResourceManager.getInstance().getResourceBundle()", since="3.0")]
-
-    /**
-     *  If you compiled your application for a single locale,
-     *  this method can return a ResourceBundle when provided
-     *  with a resource bundle name,
-     *
-     *
This method has been deprecated because the Flex framework
-     *  now supports having resource bundles for multiple locales
-     *  in the same application.
-     *  You can use the getResourceBundle() method
-     *  of IResourceManager to get a resource bundle if you know
-     *  its bundle name and locale.
-     *  However, you should no longer access resources
-     *  directly from a ResourceBundle.
-     *  All resources should now be accessed via methods
-     *  of the IResourceManager interface such as getString().
-     *  All classes that extend UIComponent, Formatter, or Validator
-     *  have a resourceManager property
-     *  which provides a reference to an object implementing this interface.
-     *  Other classes can call ResourceManager.getInstance()
-     *  to obtain this object.

-     *
-     *  @param baseName The name of the resource bundle to return.
-     *
-     *  @param currentDomain The ApplicationDomain that the resource bundle is in.
-     *
-     *  @return The resource bundle that matches the specified name and domain.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public static function getResourceBundle(
-                                baseName:String,
-                                currentDomain:ApplicationDomain = null):
-                                ResourceBundle
-    {
-        if (!currentDomain)
-            currentDomain = ApplicationDomain.currentDomain;
-
-        var className:String;
-        var bundleClass:Class;
-
-        className = locale + "$" + baseName + "_properties";
-        bundleClass = getClassByName(className, currentDomain);
-
-        if (!bundleClass)
-        {
-            className = baseName + "_properties";
-            bundleClass = getClassByName(className, currentDomain);
-        }
-
-        if (!bundleClass)
-        {
-            className = baseName;
-            bundleClass = getClassByName(className, currentDomain);
-        }
-
-        if (!bundleClass && backupApplicationDomain)
-        {
-            className = baseName + "_properties";
-            bundleClass = getClassByName(className, backupApplicationDomain);
-
-            if (!bundleClass)
-            {
-                className = baseName;
-                bundleClass = getClassByName(className, backupApplicationDomain);
-            }
-        }
-
-        if (bundleClass)
-        {
-            var bundleObj:Object = new bundleClass();
-            if (bundleObj is ResourceBundle)
-            {
-                var bundle:ResourceBundle = ResourceBundle(bundleObj);
-                return bundle;
-            }
-        }
-
-        throw new Error("Could not find resource bundle " + baseName);
-    }
-
     /**
      *  @private
      */
@@ -308,195 +223,6 @@
         return {};
     }

-    [Deprecated(replacement="ResourceManager.getInstance().getBoolean()", since="3.0")]
-
-    /**
-     *  Gets a Boolean from a ResourceBundle.
-     *
-     *
If the resource specified by the key parameter
-     *  does not exist in this bundle, this method throws an error.

-     *
-     *
This method has been deprecated because all resources
-     *  should now be accessed via methods of the IResourceManager interface.
-     *  You should convert your code to instead call
-     *  the getBoolean()method of IResourceManager.
-     *  All classes that extend UIComponent, Formatter, or Validator
-     *  have a resourceManager property
-     *  that provides a reference to an object implementing this interface.
-     *  Other classes can call the ResourceManager.getInstance()
-     *  method to obtain this object.

-     *
-     *  @param key A String identifying a resource in this ResourceBundle.
-     *
-     *  @param defaultValue The value to return if the resource value,
-     *  after being converted to lowercase, is neither the String
-     *  "true" nor the String "false".
-     *  This parameter is optional; its default value is true.
-     *
-     *  @return The value of the specified resource, as a Boolean.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function getBoolean(key:String, defaultValue:Boolean = true):Boolean
-    {
-        var temp:String = _getObject(key).toLowerCase();
-
-        if (temp == "false")
-            return false;
-        else if (temp == "true")
-            return true;
-        else
-            return defaultValue;
-    }
-
-    [Deprecated(replacement="ResourceManager.getInstance().getNumber()", since="3.0")]
-
-    /**
-     *  Gets a Number from a ResourceBundle.
-     *
-     *
If the resource specified by the key parameter
-     *  does not exist in this bundle, this method throws an error.

-     *
-     *
This method has been deprecated because all resources
-     *  should now be accessed via methods of the IResourceManager interface.
-     *  You should convert your code to instead call
-     *  the getNumber(), getInt(),
-     *  or getUint() method of IResourceManager.
-     *  All classes that extend UIComponent, Formatter, or Validator
-     *  have a resourceManager property
-     *  that provides a reference to an object implementing this interface.
-     *  Other classes can call the ResourceManager.getInstance()
-     *  method to obtain this object.

-     *
-     *  @param key A String identifying a resource in this ResourceBundle.
-     *
-     *  @return The value of the specified resource, as a Number.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function getNumber(key:String):Number
-    {
-        return Number(_getObject(key));
-    }
-
-    [Deprecated(replacement="ResourceManager.getInstance().getString()", since="3.0")]
-
-    /**
-     *  Gets a String from a ResourceBundle.
-     *
-     *
If the resource specified by the key parameter
-     *  does not exist in this bundle, this method throws an error.

-     *
-     *
This method has been deprecated because all resources
-     *  should now be accessed via methods of the IResourceManager interface.
-     *  You should convert your code to instead call
-     *  the getString() method of IResourceManager.
-     *  All classes that extend UIComponent, Formatter, or Validator
-     *  have a resourceManager property
-     *  that provides a reference to an object implementing this interface.
-     *  Other classes can call the ResourceManager.getInstance()
-     *  method to obtain this object.

-     *
-     *  @param key A String identifying a resource in this ResourceBundle.
-     *
-     *  @return The value of the specified resource, as a String.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function getString(key:String):String
-    {
-        return String(_getObject(key));
-    }
-
-    [Deprecated(replacement="ResourceManager.getInstance().getStringArray()", since="3.0")]
-
-    /**
-     *  Gets an Array of Strings from a ResourceBundle.
-     *
-     *
The Array is produced by assuming that the actual value
-     *  of the resource is a String containing comma-separated items,
-     *  such as "India, China, Japan".
-     *  After splitting the String at the commas, any white space
-     *  before or after each item is trimmed.

-     *
-     *
If the resource specified by the key parameter
-     *  does not exist in this bundle, this method throws an error.

-     *
-     *
This method has been deprecated because all resources
-     *  should now be accessed via methods of the IResourceManager interface.
-     *  You should convert your code to instead call
-     *  the getStringArray() method of IResourceManager.
-     *  All classes that extend UIComponent, Formatter, or Validator
-     *  have a resourceManager property
-     *  which provides a reference to an object implementing this interface.
-     *  Other classes can call ResourceManager.getInstance()
-     *  to obtain this object.

-     *
-     *  @param key A String identifying a resource in this ResourceBundle.
-     *
-     *  @return The value of the specified resource,
-     *  as an Array of Strings.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function getStringArray(key:String):Array
-    {
-        var array:Array = _getObject(key).split(",");
-
-        var n:int = array.length;
-        for (var i:int = 0; i < n; i++)
-        {
-             array[i] = StringUtil.trim(array[i]);
-        }
-
-        return array;
-    }
-
-    [Deprecated(replacement="ResourceManager.getInstance().getObject()", since="3.0")]
-
-    /**
-     *  Gets an Object from a ResourceBundle.
-     *
-     *
If the resource specified by the key parameter
-     *  does not exist in this bundle, this method throws an error.

-     *
-     *
This method has been deprecated because all resources
-     *  should now be accessed via methods of the IResourceManager interface.
-     *  You should convert your code to instead call
-     *  the getObject() or getClass() method
-     *  of IResourceManager.
-     *  All classes that extend UIComponent, Formatter, or Validator
-     *  have a resourceManager property
-     *  that provides a reference to an object implementing this interface.
-     *  Other classes can call the ResourceManager.getInstance()
-     *  method to obtain this object.

-     *
-     *  @param key A String identifying a resource in this ResourceBundle.
-     *
-     *  @return An Object that is the value of the specified resource.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function getObject(key:String):Object
-    {
-        return _getObject(key);
-    }
-
     /**
      *  @private
      */


Transferred from the Adobe Open Source Subversion Repository

Revision: 4885
Author:   jszeto@adobe.com
Date:     2009-02-07T00:12:32.609062Z

Log Message:
-----------
Flex SDK Framework - Update mx.filters API and class hierarchy

- Removed BaseFilter.as, BaseDimensionFilter.as, and GradientFilter.as
- Renamed IBitmapFilter.as to IFlexBitmapFilter.as
- Changed IBitmapFilter.clone to createBitmapFilter
- Moved properties and functions from base classes up to filter subclasses
- Changed ColorMatrixFilter constructor parameter from Array to Object
- Added Change metadata to all filter classes
- Changed notifyFilterChanged from public to private
- Added ASDoc comments
- Added copyright info
- Added a number of formatting and style fixes

QE Notes: Need to update tests based on API changes. Missing tests for DisplacementMapFilter.as.
Doc Notes: Need extensive ASDoc review. Consider using @copy for properties that match the flash.filters properties
Bugs: n/a
Reviewer: Gordon

Modified Paths:
--------------
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/filters/BaseDimensionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/BevelFilter.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/GradientFilter.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/filters/IBitmapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Parser.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/filters/IBitmapFilter.as" copyfrom-rev="4821" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/filters/IFlexBitmapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/filters/BaseFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
+++ frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as
@@ -11,8 +11,18 @@

 package mx.filters
 {
+
+import flash.events.Event;
+import flash.events.EventDispatcher;
 import flash.filters.BitmapFilter;
 import flash.filters.ColorMatrixFilter;
+import mx.filters.IFlexBitmapFilter;
+
+/**
+ *  @review
+ *  Dispatched when a property value has changed.
+ */
+[Event(name="change", type="flash.events.Event")]

 /**
  *  @review
@@ -27,24 +37,43 @@
  *
  *  @see flash.filters.ColorMatrixFilter
  */
-public class ColorMatrixFilter extends BaseFilter implements IBitmapFilter
+public class ColorMatrixFilter extends EventDispatcher implements IFlexBitmapFilter
 {
-	public function ColorMatrixFilter(matrix:Array = null)
+	include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 * @copy flash.filters.ColorMatrixFilter
+	 */
+	public function ColorMatrixFilter(matrix:Object = null)
 	{
+		super();
+
 		if (matrix != null)
 		{
 			this.matrix = matrix;
 		}
 	}

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

-	private var _matrix:Array =  [1,0,0,0,0,0,
-								  1,0,0,0,0,0,
-								  1,0,0,0,0,0,
-								  1,0];
+	private var _matrix:Array =  [1,0,0,0,0,
+								  0,1,0,0,0,
+								  0,0,1,0,0,
+								  0,0,0,1,0];

 	/**
 	 *  @review
@@ -77,11 +106,38 @@
 			notifyFilterChanged();
 		}
 	}
-
-	public function clone():BitmapFilter
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     * @private
+     * Notify of a change to our filter, so that filter stack is ultimately
+     * re-applied by the framework.
+     */
+	private function notifyFilterChanged():void
+	{
+		dispatchEvent(new Event(Event.CHANGE));
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  IFlexBitmapFilter
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Creates a flash.filters.ColorMatrixFilter instance using the current
+	 *  property values.
+	 *
+	 *  @return flash.filters.ColorMatrixFilter instance
+	 */
+	public function createBitmapFilter():BitmapFilter
 	{
 		return new flash.filters.ColorMatrixFilter(_matrix);
 	}
-
 }
 }


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

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

 package spark.automation.delegates.components.supportClasses
 {


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

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

 package
 {


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

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

 package mx.charts.chartClasses
 {


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

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

 package mx.effects
 {