Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLDecoder.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLDecoder.as
@@ -20,6 +20,11 @@
 /**
  *  The SimpleXMLDecoder class deserialize XML into a graph of ActionScript objects.
  * Use  this class when no schema information is available.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class SimpleXMLDecoder
 {
@@ -96,6 +101,11 @@
      *  @param dataNode An XMLNode to be converted into a tree of ActionScript Objects.
      *
      *  @return A tree of ActionScript Objects.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function decodeXML(dataNode:XMLNode):Object
     {
@@ -197,6 +207,11 @@
      * Returns the local name of an XMLNode.
      *
      * @return The local name of an XMLNode.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function getLocalName(xmlNode:XMLNode):String
     {


Fix RTE in ComboBox as described in FLEX-33414. Mustella ComboBox tests pass.

git-svn-id: f8d5f742b420a6a114b58659a4f85f335318e53c@1454998 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/ComboBox.as
+++ frameworks/projects/spark/src/spark/components/ComboBox.as
@@ -787,13 +787,14 @@

                 typicalItemChanged = false;
             }
-        }
-
-        // Clear the TextInput because we were programmatically set to NO_SELECTION
-        // We call this after super.commitProperties because commitSelection might have
-        // changed the value to NO_SELECTION
-        if (selectedIndexChanged && selectedIndex == NO_SELECTION)
-            textInput.text = "";
+
+			// Clear the TextInput because we were programmatically set to NO_SELECTION
+			// We call this after super.commitProperties because commitSelection might have
+			// changed the value to NO_SELECTION
+			if (selectedIndexChanged && selectedIndex == NO_SELECTION)
+				textInput.text = "";
+		}
+
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 20750
Author:   klin@adobe.com
Date:     2011-03-09T23:38:34.049832Z

Log Message:
-----------
Merge 20748 -

Various ASDoc fixes in Form files.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/FormItem.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Form.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/FormHeading.as</path>
<path kind="dir" action="M">/private/flex/sdk/trunk</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/FormItemLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/FormLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/FormItem.as
+++ frameworks/projects/spark/src/spark/components/FormItem.as
@@ -68,7 +68,7 @@
  *  attributes of its superclass and adds no new tag attributes:

  *
  *

- *  <mx:FormItem
+ *  <s:FormItem
  *    Properties
  *    helpContent="null"
  *    label=""
@@ -232,9 +232,9 @@
     [Inspectable(category="General", defaultValue="")]

     /**
-     *  The label text displayed in the Form.
-     *  For example, a FormItem to
-     *  select a state might have a form label of "State".
+     *  Text label for the FormItem.
+     *  For example, a FormItem used to input an
+     *  address might have the label of "Address".
      *
      *  @default ""
      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 4894
Author:   hmuller@adobe.com
Date:     2009-02-07T17:17:54.948626Z

Log Message:
-----------
I10 Bug fixes: FxScroller mouse wheel scrolling, FxScrollerSkin.

QE Notes: Mustella tests pass
Doc Notes: None
Bugs:
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -27,6 +27,7 @@
 import mx.core.ScrollUnit;
 import mx.events.PropertyChangeEvent;
 import mx.managers.IFocusManagerComponent;
+import flash.display.InteractiveObject;

 include "../styles/metadata/AdvancedCharacterFormatTextStyles.as"
 include "../styles/metadata/AdvancedContainerFormatTextStyles.as"
@@ -208,6 +209,7 @@
             viewport.clipContent = true;
             skin.addElementAt(viewport, 0);
             viewport.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
+            addSystemHandlers(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, mouseWheelHandler);
         }
         if (verticalScrollBar)
             verticalScrollBar.viewport = viewport;
@@ -226,6 +228,7 @@
             viewport.clipContent = false;
             skin.removeElement(viewport);
             viewport.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
+            removeSystemHandlers(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, mouseWheelHandler);
         }
     }

@@ -501,6 +504,7 @@
     override protected function loadSkin():void
     {
         super.loadSkin();
+        skin.layout = new FxScrollerLayout();
         installViewport();
     }

@@ -510,6 +514,7 @@
     override protected function unloadSkin():void
     {
         uninstallViewport();
+        skin.layout = null;
         super.unloadSkin();
     }

@@ -629,6 +634,15 @@
         var vp:IViewport = viewport;
         if (!vp || event.isDefaultPrevented())
             return;
+
+        // If a TextField has the focus, then check to see if it's already
+        // handling mouse wheel events.  For now, we'll make the same
+        // assumption about TextView.
+        var focusOwner:InteractiveObject = getFocus();
+        if ((focusOwner is TextField) && TextField(focusOwner).mouseWheelEnabled)
+            return;
+        if (focusOwner is TextView)
+            return;

         var nSteps:uint = Math.abs(event.delta);
         var unit:ScrollUnit;
@@ -656,23 +670,6 @@
             event.preventDefault();
         }
     }
-
-    /**
-     *  @private
-     */
-    override protected function focusInHandler(event:FocusEvent):void
-    {
-         addSystemHandlers(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, mouseWheelHandler);
-    }
-
-    /**
-     *  @private
-     */
-    override protected function focusOutHandler(event:FocusEvent):void
-    {
-        removeSystemHandlers(MouseEvent.MOUSE_WHEEL, mouseWheelHandler, mouseWheelHandler);
-    }
-
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20579
Author:   klin@adobe.com
Date:     2011-03-03T19:10:54.932614Z

Log Message:
-----------
Fix memory leak in ContentCache where we were leaking ContentRequests. Use weak listeners instead of strong ones on the cached content so that the requests get gced.

QE notes: No
Doc notes: No
Bugs: SDK-29794
Reviewer: Ryan
Tests run: cyclone server, checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentRequest.as

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

--- frameworks/projects/spark/src/spark/core/ContentRequest.as
+++ frameworks/projects/spark/src/spark/core/ContentRequest.as
@@ -219,11 +219,11 @@
         {
             var _contentLoaderInfo:LoaderInfo = LoaderInfo(_content);

-            _contentLoaderInfo.addEventListener(Event.COMPLETE, content_completeHandler);
-            _contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
-            _contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, dispatchEvent);
-            _contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
-            _contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, dispatchEvent);
+            _contentLoaderInfo.addEventListener(Event.COMPLETE, content_completeHandler, false, 0, true);
+            _contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler, false, 0, true);
+            _contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, dispatchEvent, false, 0, true);
+            _contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent, false, 0, true);
+            _contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, dispatchEvent, false, 0, true);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8012
Author:   aharui@adobe.com
Date:     2009-06-19T21:08:23.629992Z

Log Message:
-----------
Another mistake from the frame1 work.

QE Notes: None
Doc Notes: None
Bugs: SDK-21889
Reviewer: darrell
tests: checkintests

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as

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

--- frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as
+++ frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as
@@ -270,6 +270,8 @@
 		dispatchEventFromSWFBridges(new SWFBridgeRequest(SWFBridgeRequest.DEACTIVATE_FOCUS_REQUEST), skipBridge);
 	}

+    // parameter is FocusEvent just so we don't have to define a class
+    // to pass a object reference.
 	public function focusWrappingHandler(event:FocusEvent):void
 	{
 		if (getParentBridge())
@@ -280,6 +282,8 @@

 	}

+    // parameter is FocusEvent just so we don't have to define a class
+    // to pass a object reference.
 	public function setFocusToComponentHandler(event:FocusEvent):void
 	{
 		var o:Object = event.relatedObject;
@@ -302,19 +306,23 @@
 		}
 	}

+    // parameter is FocusEvent just so we don't have to define a class
+    // to pass a object reference.
 	public function getTopLevelFocusTargetHandler(event:FocusEvent):void
 	{
 		var o:Object = event.relatedObject;

 		// if we cross a boundry into a bridged application, then return null so
 		// the target is only processed at the lowest level
-		if (o.parent is ISWFLoader)
-		{
-			if (ISWFLoader(o.parent).swfBridge)
+		if (o is ISWFLoader)
+		{
+			if (ISWFLoader(o).swfBridge)
 		   		event.preventDefault();
 		}
 	}

+    // parameter is FocusEvent just so we don't have to define a class
+    // to pass a object reference.
 	public function keyFocusChangeHandler(event:FocusEvent):void
 	{
 		var o:Object = event.relatedObject;
@@ -325,6 +333,8 @@

 	}

+    // parameter is FocusEvent just so we don't have to define a class
+    // to pass a object reference.
 	public function browserFocusComponentHandler(event:FocusEvent):void
 	{
 		if (marshalSystemManager.useSWFBridge())
@@ -338,6 +348,8 @@

 	}

+    // parameter is FocusEvent just so we don't have to define a class
+    // to pass a object reference.
 	public function keyDownHandler(event:FocusEvent):void
 	{
    		if (marshalSystemManager.isDisplayObjectInABridgedApplication(DisplayObject(event.relatedObject)))
@@ -345,6 +357,8 @@

 	}

+    // parameter is FocusEvent just so we don't have to define a class
+    // to pass a object reference.
 	public function defaultButtonKeyHandler(event:FocusEvent):void
 	{
 		// if the target is in a bridged application, let it handle the click.
@@ -353,6 +367,8 @@
 	}

+    // parameter is FocusEvent just so we don't have to define a class
+    // to pass a object reference.
 	public function mouseDownHandler(event:FocusEvent):void
 	{
 		var o:Object = event.relatedObject;


Fix bug in handling of null XObjString instances with attributes when null encoding turned OFF

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
@@ -308,8 +308,18 @@
         }
         else if (obj is XObjString)
         {
+            var newNode:XMLNode;
+
             // unwrap XObjStrings to their naked value
-            var newNode:XMLNode = encodeValue(obj.value, qname, parentNode);
+            if (obj.value != null || encodeNullElements)
+            {
+                newNode = encodeValue(obj.value, qname, parentNode);
+            }
+            else
+            {
+                // special case this one to avoid parent getting attrs by mistake
+                newNode = xmlDocument.createElement("foo");
+            }
             // encoded as meta ?
             setAttributes(newNode, obj);
             // re-encode the nodename to pick up possible local namespace overrides


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/controls/ToolTip.as
+++ frameworks/projects/framework/src/mx/controls/ToolTip.as
@@ -51,6 +51,11 @@
     shadowColor (when borderStyle is "toolTip")
     textAlign
     textDecoration
+*
+*  @langversion 3.0
+*  @playerversion Flash 9
+*  @playerversion AIR 1.1
+*  @productversion Flex 3
 */

 include "../styles/metadata/BorderStyles.as"
@@ -68,6 +73,11 @@
  *
  *  @see mx.managers.ToolTipManager
  *  @see mx.styles.CSSStyleDeclaration
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ToolTip extends UIComponent implements IToolTip, IFontContextComponent
 {
@@ -83,6 +93,11 @@

     /**
      *  Maximum width in pixels for new ToolTip controls.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static var maxWidth:Number = 300;

@@ -94,6 +109,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function ToolTip()
     {
@@ -113,6 +133,11 @@

     /**
      *  The internal object that draws the border.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     mx_internal var border:IFlexDisplayObject;

@@ -176,6 +201,11 @@
      *  The text displayed by the ToolTip.
      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get text():String
     {
@@ -201,6 +231,11 @@

     /**
      *  The internal UITextField that renders the text of this ToolTip.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     protected var textField:IUITextField;


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 12469
Author:   jimurphy@adobe.com
Date:     2009-12-03T22:04:16.560316Z

Log Message:
-----------
fix offsets for FB.  Convert line ending from lf to crlf in svn for the proects directory only.  When checking project files in, be sure to save you files this way.  Another update to make sure happens is set the svn properties svn:eol-style = native and svn:mime-type = text/plain (these have been updated on theses files as well)

QE notes: make sure the proper class is selected
Doc notes: no
Bugs: http://bugs.adobe.com/jira/browse/SDK-24498
Reviewer:
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
133 paths were modified

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

--- frameworks/projects/spark/src/spark/components/VGroup.as
+++ frameworks/projects/spark/src/spark/components/VGroup.as
@@ -479,4 +479,4 @@
     }

 }
-}+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 3448
Author:   chaase@adobe.com
Date:     2008-10-01T23:50:40.097700Z

Log Message:
-----------
Adding new SetAction effect, plus minor improvements to effects overall. This new effect combines the old SetPropertyAction and SetStyleAction effects, figuring out for the named property whether it is a property or a style of the target object. Also, added new capabilities to Animation class and fixed some problems with easing default values.

Reviewed by Glenn
tests: checkintests

Modified Paths:
--------------
<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/manifest.xml</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/development/eclipse/flex/flex4test/src/NewEffects.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/SetActionInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>

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

--- frameworks/projects/spark/src/spark/effects/SetAction.as
+++ frameworks/projects/spark/src/spark/effects/SetAction.as
@@ -0,0 +1,149 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flex.effects
+{
+
+import flex.effects.effectClasses.SetActionInstance;
+
+import mx.effects.Effect;
+import mx.effects.IEffectInstance;
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="duration", kind="property")]
+
+/**
+ *  The SetAction class defines an action effect that sets
+ *  the value of a named property or style.
+ *  You use a SetAction effect within a transition definition
+ *  to control when the view state change defined by a
+ *  property or style change occurs during the transition.
+ *
+ *  @mxml
+ *
+ *
The <mx:SetAction> tag
+ *  inherits all of the tag attributes of its superclass,
+ *  and adds the following tag attributes:

+ *
+ *

+ *  <mx:SetAction
+ *    Properties
+ *    id="ID"
+ *    property=""
+ *    value=""
+ *  />
+ *

+ *
+ *  @see flex.effects.effectClasses.SetActionInstance
+ */
+public class SetAction extends Effect
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param target The Object to animate with this effect.
+     */
+    public function SetAction(target:Object = null)
+    {
+        super(target);
+
+        instanceClass = SetActionInstance;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  property
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The name of the property being changed.
+     */
+    public var property:String;
+
+    //----------------------------------
+    //  value
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The new value for the property.
+     *  When run within a transition and value is not specified, Flex determines
+     *  the value based on that set by the new state.
+     */
+    public var value:*;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  relevantStyles
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get relevantStyles():Array /* of String */
+    {
+        return [ property ];
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function getAffectedProperties():Array /* of String */
+    {
+        return [ property ];
+    }
+
+    /**
+     *  @private
+     */
+    override protected function initInstance(instance:IEffectInstance):void
+    {
+        super.initInstance(instance);
+
+        var actionInstance:SetActionInstance =
+            SetActionInstance(instance);
+
+        actionInstance.property = property;
+        actionInstance.value = value;
+    }
+}
+
+}


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

--- frameworks/projects/advancedgrids/src/mx/collections/IHierarchicalCollectionViewCursor.as
+++ frameworks/projects/advancedgrids/src/mx/collections/IHierarchicalCollectionViewCursor.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.collections
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Revert "Fixed issue (RTEs) with editable data grid when it has an array of simple values (Number, String etc)"

This reverts commit e47f993773fd5dd7e5c636068d4e9ddd37d3ba98.

--- frameworks/projects/mx/src/mx/controls/DataGrid.as
+++ frameworks/projects/mx/src/mx/controls/DataGrid.as
@@ -2797,21 +2797,15 @@
                 // this is an old recordset - use its columns
                 var n:int = cols.length;
                 var colName:Object;
-				if (n == 0) {
-					col = new DataGridColumn();
-					newCols.push(col);
-				}
-				else {
-	                for (var i:int = 0; i < n; i++)
-	                {
-	                    colName = cols[i];
-	                    if (colName is QName)
-	                        colName = QName(colName).localName;
-	                    col = new DataGridColumn();
-	                    col.dataField = String(colName);
-	                    newCols.push(col);
-	                }
-				}
+                for (var i:int = 0; i < n; i++)
+                {
+                    colName = cols[i];
+                    if (colName is QName)
+                        colName = QName(colName).localName;
+                    col = new DataGridColumn();
+                    col.dataField = String(colName);
+                    newCols.push(col);
+                }
             }

             columns = newCols;
@@ -5332,8 +5326,8 @@
                 var newData:Object = itemEditorInstance[_columns[event.columnIndex].editorDataField];
                 var property:String = _columns[event.columnIndex].dataField;
                 var data:Object = event.itemRenderer.data;
-                var typeInfo:String = describeType(data).@name;
-                for each (var variable:XML in describeType(data).variable)
+                var typeInfo:String = "";
+                for each(var variable:XML in describeType(data).variable)
                 {
                     if (property == variable.@name.toString())
                     {
@@ -5365,12 +5359,9 @@
                 /** Old code assumed that the property would be a simply name that could be dereferenced
                   * through array notation. Using a method call here provides, minimally, an override
                   * point where developers could extend this functionality in their own datagrid subclass **/
-                if (getCurrentDataValue(data, property) !== newData)
-                {
-                    bChanged = setNewValue(data, property, newData, event.columnIndex);
-
-					if (property == null)
-						collection[event.rowIndex] = newData;
+                if (property != null && getCurrentDataValue( data, property ) !== newData)
+                {
+                    bChanged = setNewValue( data, property, newData, event.columnIndex );
                 }
                 if (bChanged && !(data is IPropertyChangeNotifier || data is XML))
                 {
@@ -5423,9 +5414,9 @@
     /**
      *  @private
      */
-    protected function isComplexColumn(property:String):Boolean
-    {
-        return property != null && property.indexOf( "." ) != -1;
+    protected function isComplexColumn( property:String ):Boolean
+    {
+        return ( property.indexOf( "." ) != -1 );
     }

     //Gets the reference to the parent object where a property will be updated
@@ -5450,37 +5441,33 @@
     /**
      *  @private
      */
-    protected function getCurrentDataValue(data:Object, property:String):String
-    {
-		if (property == null)
-			return String(data);
-
-        if (!isComplexColumn(property))
-            return data[property];
+    protected function getCurrentDataValue( data:Object, property:String ):String
+    {
+        if ( !isComplexColumn( property ) )
+            return data[ property ];

-        var complexFieldNameComponents:Array = property.split(".");
-        var obj:Object = deriveComplexFieldReference(data, complexFieldNameComponents);
-
-        return String(obj);
+        var complexFieldNameComponents:Array = property.split( "." );
+        var obj:Object = deriveComplexFieldReference( data, complexFieldNameComponents );
+
+        return String( obj );
     }

     //Passing all of these parameters as it basically allows everything you would need to subclass for all sorts of fun implementations
     /**
      *  @private
      */
-    protected function setNewValue(data:Object, property:String, value:Object, columnIndex:int):Boolean
-    {
-        if (!isComplexColumn(property))
-        {
-			if (property != null)
-            	data[property] = value;
+    protected function setNewValue( data:Object, property:String, value:Object, columnIndex:int ):Boolean
+    {
+        if ( !isComplexColumn( property ) )
+        {
+            data[ property ] = value;
         }
         else
         {
-            var complexFieldNameComponents:Array = property.split(".");
+            var complexFieldNameComponents:Array = property.split( "." );
             var lastProp:String = complexFieldNameComponents.pop();
-            var parent:Object = deriveComplexFieldReference(data, complexFieldNameComponents);
-            parent[lastProp] = value;
+            var parent:Object = deriveComplexFieldReference( data, complexFieldNameComponents );
+            parent[ lastProp ] = value;
         }

         //The value they typed in is always converted to a string, but is the value actually a string in the dataprovider?


Transferred from the Adobe Open Source Subversion Repository

Revision: 17107
Author:   aharui@adobe.com
Date:     2010-07-28T22:56:52.689490Z

Log Message:
-----------
Merge 16736 from 3.x to Hero

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListItemDragProxy.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridDragProxy.as</path>

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

--- frameworks/projects/mx/src/mx/controls/DataGrid.as
+++ frameworks/projects/mx/src/mx/controls/DataGrid.as
@@ -1845,7 +1845,7 @@
             actualContentHolder.setChildIndex(DisplayObject(itemEditorInstance),
                                       actualContentHolder.numChildren - 1);
             var col:DataGridColumn;
-            if (lockedColumnCount && editedItemPosition.columnIndex && visibleLockedColumns[lockedColumnCount - 1].colNum)
+            if (lockedColumnCount && editedItemPosition.columnIndex <= visibleLockedColumns[lockedColumnCount - 1].colNum)
                 col = visibleLockedColumns[actualColIndex];
             else
                 col = visibleColumns[actualColIndex];


385 DisplayInjector documentation

385 DisplayInjector documentation

--- raw/src/org/yellcorp/lib/display/inject/DisplayInjector.as
+++ raw/src/org/yellcorp/lib/display/inject/DisplayInjector.as
@@ -6,9 +6,109 @@
 import flash.utils.getDefinitionByName;

+/**
+ * A utility that sets the properties of some instance to reference named
+ * children of DisplayObjectContainer.
+ *
+ * The intent is to:
+ *

+ *
Maintain a loose coupling between a DisplayObjectContainer and a
+ *       class that manipulates it

+ *
Reduce the redundancy involved in assigning instance variables or
+ *       getChildByName() results of one instance to another

+ *
Fail fast and with detail if a DisplayObjectContainer's contents
+ *       does not match expectations

+ *

+ *
+ * The two variables in this process are a DisplayObjectContainer with named
+ * children, called the 'container', and an instance of an unrelated class
+ * that wants references to the children of the DisplayObjectContainer,
+ * called the 'target'.
+ *
+ * For each qualifying instance variable of the target, the default
+ * behaviour of DisplayInjector.inject is to search the
+ * container for a child with the same name, and tries to cast it to the
+ * variable's class.
+ *
+ * A qualifying instance variable is one that is public and has the
+ * metadata tag [Display].
+ *
+ * As an example, if a target instance has the following variable:
+ *
+ * <listing version="3.0">
+ * [Display]
+ * public var nextButton:Sprite;
+ * </listing>
+ *
+ * Then a call to DisplayInjector.inject(container, target), when
+ * discovering this property, will essentially perform the following:
+ *
+ * <listing version="3.0">
+ * target.nextButton = Sprite(container.getChildByName("nextButton"));
+ * </listing>
+ *
+ * Errors are thrown if the container lacks a child by the requested name,
+ * or if the child is not of the expected class.
+ *
+ * The default behaviour can be overridden by adding parameters to the
+ * [Display] tag. Supported parameters are:
+ *
+ *

+ *
name

+ *
Overrides the name used when querying the container. Dot syntax
+ *     can be used to reference nested DisplayObjects. For example:
+ *     <listing version="3.0">
+ *       [Display(name="navBar.nextButton")]
+ *       public var nextButton:Sprite;
+ *     </listing>
+ *     will first search the container for a child called 'navBar', and
+ *     then search 'navBar' for a child called 'nextButton'. If any of the
+ *     intermediate children are not themselves DisplayObjectContainers,
+ *     an error is thrown.
+ *

+ *
+ *
wrapper

+ *
Instead of casting the child DisplayObject to the property's
+ *     class, use the specified class as a constructor, with the child
+ *     DisplayObject as an argument. For example:
+ *     <listing version="3.0">
+ *       [Display(wrapper="org.yellcorp.ui.GlowButton")]
+ *       public var nextButton:GlowButton;
+ *     </listing>
+ *     will perform the following:
+ *     <listing version="3.0">
+ *       target.nextButton = new GlowButton(container.getChildByName("nextButton")));
+ *     </listing>
+ *

+ *

+ *
+ * TODO: The wrapper parameter should support a default value,
+ * which would be the class of the target property. Filling out the full
+ * class name would only then be necessary if a subclass or an implemetor of
+ * an interface was desired.
+ */
 public class DisplayInjector
 {
-    public static function inject(display:DisplayObjectContainer, target:*):void
+    /**
+     * Perform a display injection.  Populates qualifying instance
+     * variables of target with references to the corresponding
+     * children of container.
+     *
+     * @param container  The DisplayObjectContainer containing named
+     *                   children to assign to target.
+     * @param target  The instance to populate.
+     *
+     * @throws org.yellcorp.lib.display.inject.DisplayPathError
+     *         If a child with the default or overridden name could not be
+     *         found in container.
+     *
+     * @throws org.yellcorp.lib.display.inject.DisplayPathError
+     *         If a child was found but was of an incompatible class.
+     *
+     * @throws org.yellcorp.lib.display.inject.DisplayMetadataError
+     *         If a metadata parameter is invalid.
+     */
+    public static function inject(container:DisplayObjectContainer, target:*):void
     {
         var type:XML = describeType(target);

@@ -18,7 +118,7 @@

         for each (var metadata:XML in displayMetadata)
         {
-            injectProperty(metadata.parent(), metadata, display, target);
+            injectProperty(metadata.parent(), metadata, container, target);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/controls/LinkBar.as
+++ frameworks/projects/mx/src/mx/controls/LinkBar.as
@@ -35,6 +35,11 @@
  *  Number of pixels between the LinkButton controls in the horizontal direction.
  *
  *  @default 8
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="horizontalGap", type="Number", format="Length", inherit="no")]

@@ -43,6 +48,11 @@
  *  button navigation items.
  *
  *  @default ""
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="linkButtonStyleName", type="String", inherit="no")]

@@ -50,6 +60,11 @@
  *  Number of pixels between the bottom border and the LinkButton controls.
  *
  *  @default 2
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingBottom", type="Number", format="Length", inherit="no")]

@@ -57,6 +72,11 @@
  *  Number of pixels between the top border and the LinkButton controls.
  *
  *  @default 2
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingTop", type="Number", format="Length", inherit="no")]

@@ -65,6 +85,11 @@
  *  The default value is based on the current themeColor.
  *
  *  @default 0xEEFEE6 (light green)
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="rollOverColor", type="uint", format="Color", inherit="yes")]

@@ -72,6 +97,11 @@
  *  Background color of the LinkButton control as you press it.
  *
  *  @default 0xCDFFC1
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="selectionColor", type="uint", format="Color", inherit="yes")]

@@ -79,6 +109,11 @@
  *  Separator color used by the default separator skin.
  *
  *  @default 0xC4CCCC
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="separatorColor", type="uint", format="Color", inherit="yes")]

@@ -86,6 +121,11 @@
  *  Seperator symbol between LinkButton controls in the LinkBar.
  *
  *  @default mx.skins.halo.LinkSeparator
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="separatorSkin", type="Class", inherit="no")]

@@ -93,6 +133,11 @@
  *  Separator pixel width, in pixels.
  *
  *  @default 1
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="separatorWidth", type="Number", format="Length", inherit="yes")]

@@ -100,6 +145,11 @@
  *  Text color of the link as you move the mouse pointer over it.
  *
  *  @default 0x2B333C
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="textRollOverColor", type="uint", format="Color", inherit="yes")]

@@ -107,6 +157,11 @@
  *  Text color of the link as you press it.
  *
  *  @default 0x000000
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="textSelectedColor", type="uint", format="Color", inherit="yes")]

@@ -114,6 +169,11 @@
  *  Number of pixels between children in the vertical direction.
  *
  *  @default 8
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="verticalGap", type="Number", format="Length", inherit="no")]

@@ -223,6 +283,11 @@
  *  @see mx.controls.LinkButton
  *  @see mx.controls.ToggleButtonBar
  *  @see mx.controls.ButtonBar
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class LinkBar extends NavBar
 {
@@ -247,6 +312,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function LinkBar()
     {
@@ -288,6 +358,11 @@
      *  control uses a ViewStack container as its data provider.
      *
      *  @default -1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function get selectedIndex():int
     {
@@ -319,6 +394,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function styleChanged(styleProp:String):void
     {
@@ -386,6 +466,11 @@
      *  @see mx.core.UIComponent#updateDisplayList()
      *  @see mx.containers.Box#updateDisplayList()
      *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void


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

--- frameworks/projects/mx/src/mx/core/Application.as
+++ frameworks/projects/mx/src/mx/core/Application.as
@@ -0,0 +1,1522 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+import flash.display.DisplayObject;
+import flash.display.InteractiveObject;
+import flash.events.ContextMenuEvent;
+import flash.events.ErrorEvent;
+import flash.events.Event;
+import flash.external.ExternalInterface;
+import flash.net.URLRequest;
+import flash.net.navigateToURL;
+import flash.system.Capabilities;
+import flash.ui.ContextMenu;
+import flash.ui.ContextMenuItem;
+import flash.utils.setInterval;
+
+import mx.containers.utilityClasses.ApplicationLayout;
+import mx.effects.EffectManager;
+import mx.events.FlexEvent;
+import mx.managers.FocusManager;
+import mx.managers.ILayoutManager;
+import mx.managers.ISystemManager;
+import mx.managers.SystemManager;
+import mx.styles.CSSStyleDeclaration;
+import mx.styles.IStyleClient;
+import mx.styles.StyleManager;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Events
+//--------------------------------------
+
+/**
+ *  Dispatched after the Application has been initialized,
+ *  processed by the LayoutManager, and attached to the display list.
+ *
+ *  @eventType mx.events.FlexEvent.APPLICATION_COMPLETE
+ */
+[Event(name="applicationComplete", type="mx.events.FlexEvent")]
+
+/**
+ *  Dispatched when an error occurs anywhere in the application,
+ *  such as an HTTPService, WebService, or RemoteObject fails.
+ *
+ *  @eventType flash.events.ErrorEvent.ERROR
+ */
+[Event(name="error", type="flash.events.ErrorEvent")]
+
+//--------------------------------------
+//  Styles
+//--------------------------------------
+
+include "../styles/metadata/ModalTransparencyStyles.as";
+
+/**
+ *  Specifies the alpha transparency values used for the background gradient fill of the application.
+ *  You should set this to an Array of two numbers.
+ *  Elements 0 and 1 specify the start and end values for an alpha gradient.
+ *
+ *  @default [ 1.0, 1.0 ]
+ */
+[Style(name="backgroundGradientAlphas", type="Array", arrayType="Number", inherit="no")]
+
+/**
+ *  Specifies the colors used to tint the background gradient fill of the application.
+ *  You should set this to an Array of two uint values that specify RGB colors.
+ *  Elements 0 and 1 specify the start and end values for a color gradient.
+ *  For a solid-color background, set the same color value for elements 0 and 1.
+ *  A value of undefined means background gradient is generated
+ *  based on the backgroundColor property.
+ *
+ *  @default undefined
+ */
+[Style(name="backgroundGradientColors", type="Array", arrayType="uint", format="Color", inherit="no")]
+
+/**
+ *  Number of pixels between the application's bottom border
+ *  and its content area.
+ *
+ *  @default 24
+ */
+[Style(name="paddingBottom", type="Number", format="Length", inherit="no")]
+
+/**
+ *  Number of pixels between the application's top border
+ *  and its content area.
+ *
+ *  @default 24
+ */
+[Style(name="paddingTop", type="Number", format="Length", inherit="no")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="direction", kind="property")]
+[Exclude(name="icon", kind="property")]
+[Exclude(name="label", kind="property")]
+[Exclude(name="tabIndex", kind="property")]
+[Exclude(name="toolTip", kind="property")]
+[Exclude(name="x", kind="property")]
+[Exclude(name="y", kind="property")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+/**
+ *  The frameworks must be initialized by SystemManager.
+ *  This factoryClass will be automatically subclassed by any
+ *  MXML applications that don't explicitly specify a different
+ *  factoryClass.
+ */
+[Frame(factoryClass="mx.managers.SystemManager")]
+
+[ResourceBundle("core")]
+
+/**
+ *  Flex defines a default, or Application, container that lets you start
+ *  adding content to your application without explicitly defining
+ *  another container.
+ *  Flex creates this container from the <mx:Application>
+ *  tag, the first tag in an MXML application file.
+ *  While you might find it convenient to use the Application container
+ *  as the only  container in your application, in most cases you explicitly
+ *  define at least one more container before you add any controls
+ *  to your application.
+ *
+ *
Applications support a predefined plain style that sets
+ *  a white background, left alignment, and removes all margins.
+ *  To use this style, do the following:

+ *
+ *

+ *    <mx:Application styleName="plain" />
+ *

+ *
+ *
This is equivalent to setting the following style attributes:

+ *
+ *

+ *    backgroundColor="0xFFFFFF"
+ *    horizontalAlign="left"
+ *    paddingLeft="0"
+ *    paddingTop="0"
+ *    paddingBottom="0"
+ *    paddingRight="0"
+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:Application> tag inherits all of the tag
+ *  attributes of its superclass and adds the following tag attributes:

+ *
+ *

+ *  <mx:Application
+ *    Properties
+ *    application="No default"
+ *    controlBar="null"
+ *    frameRate="24"
+ *    historyManagementEnabled="true|false"
+ *    layout="vertical|horizontal|absolute"
+ *    pageTitle"No default"
+ *    preloader="No default"
+ *    resetHistory="false|true"
+ *    scriptRecursionLimit="1000"
+ *    scriptTimeLimit="60"
+ *    usePreloader="true|false"
+ *    viewSourceURL=""
+ *    xmlns:No default="No default"
+ *
+ *    Styles
+ *    backgroundGradientAlphas="[ 1.0, 1.0 ]"
+ *    backgroundGradientColors="undefined"
+ *    horizontalAlign="center|left|right"
+ *    horizontalGap="8"
+ *    modalTransparency="0.5"
+ *    modalTransparencyBlur="3"
+ *    modalTransparencyColor="#DDDDDD"
+ *    modalTransparencyDuration="100"
+ *    paddingBottom="24"
+ *    paddingTop="24"
+ *    verticalAlign="top|bottom|middle"
+ *    verticalGap="6"
+ *
+ *    Events
+ *    applicationComplete="No default"
+ *    error="No default"
+ *  />
+ *

+ *
+ *  @includeExample examples/SimpleApplicationExample.mxml
+ *
+ *  @see mx.managers.CursorManager
+ *  @see mx.managers.LayoutManager
+ *  @see mx.managers.SystemManager
+ *  @see flash.events.EventDispatcher
+ */
+public class Application extends LayoutContainer
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    mx_internal static var useProgressiveLayout:Boolean = false;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  A reference to the top-level application.
+     *
+     *
In general, there can be a hierarchy of Application objects,
+     *  because an Application can use a SWFLoader control to dynamically
+     *  load another Application.
+     *  The parentApplication property of a UIComponent can be
+     *  used to access the sub-Application in which that UIComponent lives,
+     *  and to walk up the hierarchy to the top-level Application.

+     */
+    /*
+     *  Note: here are two reasons that 'application' is typed as Object
+     *  rather than as Application. The first is for consistency with
+     *  the 'parentApplication' property of UIComponent. That property is not
+     *  typed as Application because it would make UIComponent dependent
+     *  on Application, slowing down compile times not only for SWCs
+     *  for also for MXML and AS components. Second, if it were typed
+     *  as Application, authors would not be able to access properties
+     *  and methods in the


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

--- frameworks/projects/advancedgrids/src/mx/collections/DefaultSummaryCalculator.as
+++ frameworks/projects/advancedgrids/src/mx/collections/DefaultSummaryCalculator.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.collections
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22243
Author:   chiedozi@adobe.com
Date:     2011-08-26T17:49:17.918403Z

Log Message:
-----------
Fixed an RTE in ViewTransitionBase that occurred when there was no ActionBar

QE notes:
Doc notes:
Bugs: SDK-31360
Reviewer: Max
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as
@@ -1409,6 +1409,9 @@
      */
     private function actionBarMoveEffect_effectUpdateHandler(event:EffectEvent):void
     {
+        if (!actionBar)
+            return;
+
         if (actionBar.actionGroup)
             actionBar.actionGroup.validateDisplayList();


Transferred from the Adobe Open Source Subversion Repository

Revision: 4790
Author:   jimurphy@adobe.com
Date:     2009-02-02T18:13:13.580538Z

Log Message:
-----------
Merged 3.x revisions 4710-4711,4741,4746-4747,4755,4777,4787 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/NumberBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloFocusRect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/formatters/DateFormatter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as
@@ -154,6 +154,13 @@
      */
 	private var listenForContextMenu:Boolean = false;

+    /*******************************************************************
+     * Regarding overTextField, showSystemCursor, and showCustomCursor:
+     *    Don't modify or read these variables unless you are certain
+     *    you will not create race conditions. E.g. you may get the
+     *    wrong (or no) cursor, and get stuck in an inconsistent state.
+     */
+
     /**
      *  @private
      */
@@ -174,6 +181,17 @@
      */
     private var showCustomCursor:Boolean = false;

+    /**
+     *  @private
+     *
+     * State variable -- set when there is a custom cursor and the
+     * mouse has left the stage. Upon return, mouseMoveHandler will
+     * restore the custom cursor and remove the system cursor.
+     */
+    private var customCursorLeftStage:Boolean = false;
+
+    /*******************************************************************/
+
     /**
      *  @private
      */
@@ -386,19 +404,6 @@
                                      xOffset:Number = 0,
                                      yOffset:Number = 0):int
     {
-        /*
-        if (!cursorHolder._target)
-        {
-            // We may have been reloaded by a shell so reset everything.
-            currentCursorID = CursorManager.NO_CURSOR;
-            nextCursorID = 1;
-            cursorList = [];
-            busyCursorList = [];
-            initialized = false;
-            overTextField = false;
-            overLink = false;
-        }
-        */
         if (initialized && !cursorHolder)
 		{
 			var me:InterManagerRequest = new InterManagerRequest(InterManagerRequest.CURSOR_MANAGER_REQUEST);
@@ -567,9 +572,7 @@
      */
     private function showCurrentCursor():void
     {
-        var app:InteractiveObject;
-        var sm:InteractiveObject;
-
+        // if there are custom cursors...
         if (cursorList.length > 0)
         {
             if (!initialized)
@@ -615,21 +618,8 @@
                         DisplayObjectContainer(currentCursor).mouseChildren = false;
                     cursorHolder.addChild(currentCursor);

-                    if (!listenForContextMenu)
-                    {
-                    	app = systemManager.document as InteractiveObject;
-                    	if (app && app.contextMenu)
-                    	{
-                    		app.contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler);
-                    		listenForContextMenu = true;
-                    	}
-                    	sm = systemManager as InteractiveObject;
-                    	if (sm && sm.contextMenu)
-                    {
-                    		sm.contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler);
-                    		listenForContextMenu = true;
-                    	}
-                    }
+                    addContextMenuHandlers();
+
 					var pt:Point;
                     // make sure systemManager is not other implementation of ISystemManager
                     if (systemManager is SystemManager)
@@ -665,6 +655,14 @@

                     sandboxRoot.addEventListener(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE,
                                                    marshalMouseMoveHandler,false,EventPriority.CURSOR_MANAGEMENT);
+
+                   	if (systemManager.useSWFBridge())
+						sandboxRoot.addEventListener(MouseEvent.MOUSE_OUT,
+                                                   mouseOutHandler,true,EventPriority.CURSOR_MANAGEMENT);
+					else
+						systemManager.stage.addEventListener(MouseEvent.MOUSE_OUT,
+                                                   mouseOutHandler,true,EventPriority.CURSOR_MANAGEMENT);
+
                 }

                 currentCursorID = item.cursorID;
@@ -674,6 +672,8 @@
         }
         else
         {
+            showCustomCursor = false;
+
             if (currentCursorID != CursorManager.NO_CURSOR)
             {
                 // There is no cursor in the cursor list to display,
@@ -681,34 +681,87 @@
                 currentCursorID = CursorManager.NO_CURSOR;
                 currentCursorXOffset = 0;
                 currentCursorYOffset = 0;
-               	if (systemManager.useSWFBridge())
-	                sandboxRoot.removeEventListener(MouseEvent.MOUSE_MOVE,
-                                                  mouseMoveHandler,true);
-				else
-					systemManager.stage.removeEventListener(MouseEvent.MOUSE_MOVE,
-                                                  mouseMoveHandler,true);
-
-                sandboxRoot.removeEventListener(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE,
-                                                  marshalMouseMoveHandler,false);
+
                 cursorHolder.removeChild(currentCursor);

+				removeSystemManagerHandlers();
+				removeContextMenuHandlers();
+		    }
+            Mouse.show();
+        }
+    }
+
+    /**
+     *  @private
+     *
+     * This assumes systemManager != null.
+     */
+    private function removeSystemManagerHandlers():void
+    {
+        if (systemManager.useSWFBridge())
+	        sandboxRoot.removeEventListener(MouseEvent.MOUSE_MOVE,
+                                          mouseMoveHandler,true);
+		else
+			systemManager.stage.removeEventListener(MouseEvent.MOUSE_MOVE,
+                                          mouseMoveHandler,true);
+
+        sandboxRoot.removeEventListener(SandboxMouseEvent.MOUSE_MOVE_SOMEWHERE,
+                                          marshalMouseMoveHandler,false);
+
+        if (systemManager.useSWFBridge())
+	        sandboxRoot.removeEventListener(MouseEvent.MOUSE_OUT,
+                                          mouseMoveHandler,true);
+		else
+			systemManager.stage.removeEventListener(MouseEvent.MOUSE_OUT,
+                                          mouseOutHandler,true);
+    }
+
+    /**
+     *  @private
+     */
+    private function addContextMenuHandlers():void
+    {
+        if (!listenForContextMenu)
+        {
+            const app:InteractiveObject = systemManager.document as InteractiveObject;
+        	const sm:InteractiveObject = systemManager as InteractiveObject;
+
+        	if (app && app.contextMenu)
+        	{
+        		app.contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler,
+        		                                 true, EventPriority.CURSOR_MANAGEMENT);
+        		listenForContextMenu = true;
+        	}
+
+        	if (sm && sm.contextMenu)
+        	{
+        		sm.contextMenu.addEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler,
+        		                                true, EventPriority.CURSOR_MANAGEMENT);
+        		listenForContextMenu = true;
+        	}
+        }
+    }
+
+    /**
+     *  @private
+     */
+    private function removeContextMenuHandlers():void
+    {
         if (listenForContextMenu)
         {
-                	app = systemManager.document as InteractiveObject;
+            const app:InteractiveObject = systemManager.document as InteractiveObject;
+        	const sm:InteractiveObject = systemManager as InteractiveObject;
+
         	if (app && app.contextMenu)
-                		app.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler);
-
-                	sm = systemManager as InteractiveObject;
+        		app.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler, true);
+
         	if (sm && sm.contextMenu)
-                		sm.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler);
+        		sm.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler, true);

         	listenForContextMenu = false;
         }
     }
-            Mouse.show();
-        }
-    }
-
+
     /**
      *  @private
      *  Called by other components if they want to display
@@ -826,6 +879,30 @@
 		}
     }

+    /**
+     *  @private
+     *
+     * Handles the mouse leaving the stage; hides the custom cursor and restores the system cursor.
+     */
+    private function mouseOutHandler(event:MouseEvent):void
+    {
+        // relatedObject==null implies the mouse left the stage.
+        // this also fires when you are returning from a context menu click.
+        //
+        // it sometimes fires after you drag off the stage, and back to the stage quickly,
+        // and let go of the button -- this seems like a player bug
+        if ((event.relatedObject == null) && (cursorList.length > 0))
+        {
+            //trace("mouseOutHandler", event);
+
+            // this will get unset in mouseMoveHandler (since that fires when
+            // the mouse returns/glides over the stage)
+            customCursorLeftStage = true;
+            hideCursor();
+            Mouse.show();
+        }
+    }
+
     /**
      *  @private
      */


Start UIBase with 0 width and 0 height as well.

git-svn-id: 00225d326fbeb9978ee2ea3564602c0fe18eb5d2@1441622 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/as/src/org/apache/flex/core/UIBase.as
+++ frameworks/as/src/org/apache/flex/core/UIBase.as
@@ -29,7 +29,7 @@
 			super();
 		}

-		private var _width:Number;
+		private var _width:Number = 0;
 		override public function get width():Number
 		{
 			return _width;
@@ -47,7 +47,7 @@
 			return super.width;
 		}

-		private var _height:Number;
+		private var _height:Number = 0;
 		override public function get height():Number
 		{
 			return _height;


Transferred from the Adobe Open Source Subversion Repository

Revision: 2185
Author:   jimurphy@adobe.com
Date:     2008-06-23T20:04:23.150071Z

Log Message:
-----------
Merged 3.0.x revisions [2108,2111,2113,2142,2145,2147,2149-2150,2171,2178,2183] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/templates/html-templates/express-installation-with-history/history/historyFrame.html</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/swfutils/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/BindingUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/debugger/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/asc/build/java/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/antTasks/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NavBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/templates/html-templates/client-side-detection-with-history/history/historyFrame.html</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/Binding.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/types/SOAPArrayType.as</path>
<path kind="file" action="M">/flex/sdk/trunk/templates/html-templates/no-player-detection-with-history/history/historyFrame.html</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TabNavigator.as</path>

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

--- frameworks/projects/mx/src/mx/controls/NavBar.as
+++ frameworks/projects/mx/src/mx/controls/NavBar.as
@@ -97,7 +97,7 @@
  *    iconField="icon"
  *    labeField="label"
  *    selectedIndex="-1"
- *    toolTipField="tooltip"
+ *    toolTipField="toolTip"
  *
  *    Events
  *    itemClick="No default"


Bug 654574: new replacer array tests (r=dschaffe).

--- test/acceptance/ecma3/JSON/e15_12_3.as
+++ test/acceptance/ecma3/JSON/e15_12_3.as
@@ -127,8 +127,30 @@

     AddTestCase("15.12.3-2-3-a-3: JSON.stringify converts Boolean wrapper objects returned from replacer functions to literal numbers.", '[false]' ,JSON.stringify([42], function(k,v) {return v===42? new Boolean(false):v}));

+
+    // See Bugzilla 654574 for info on tests 15.12.3-4-b-1 through 15.12.3-4-b-10
+
+    AddTestCase("15.12.3-4-b-1: JSON.stringify replacer array has negative integer already converted to string.", '{"-1":18}', JSON.stringify({ "-0": 17, "-1": 18, 0: 19 }, ["-1"]));
+    AddTestCase("15.12.3-4-b-2: JSON.stringify replacer array has negative integer not yet converted to string.", '{"-1":18}', JSON.stringify({ "-0": 17, "-1": 18, 0: 19 }, [-1]));
+    AddTestCase("15.12.3-4-b-3: JSON.stringify replacer array has negative zero already converted to string.", '{"-0":17}', JSON.stringify({ "-0": 17, "-1": 18 , 0: 19 }, ["-0"]));
+    AddTestCase("15.12.3-4-b-4: JSON.stringify replacer array has negative zero not yet converted to string.", '{"0":19}', JSON.stringify({ "-0": 17, "-1": 18 , 0: 19 }, [-0]));
+
+
+    AddTestCase("15.12.3-4-b-5: JSON.stringify replacer array has double already converted to string.", '{"1.2":19}', JSON.stringify({ 1.2: 19 }, ["1.2"]));
+    AddTestCase("15.12.3-4-b-6: JSON.stringify replacer array has double not yet converted to string.", '{"1.2":19}', JSON.stringify({ 1.2: 19 }, [1.2]));
+
+    AddTestCase("15.12.3-4-b-7: JSON.stringify replacer array has repeated entries.", '{"a":1,"b":2}', JSON.stringify({ a: 1, b: 2, c: 3 }, ["a", "b", "b", "a"]));
+
+    var objkey = {"key":3};
+    AddTestCase("15.12.3-4-b-8: JSON.stringify replacer array has non-string non-numberentries.", '{"a":1,"b":2}', JSON.stringify({ a: 1, b: 2, c: 3 }, ["a", "b", objkey]));
+
+    var gappy_array = [];
+    gappy_array[0]   = 'a';
+    gappy_array[100] = 'b';
+    AddTestCase("15.12.3-4-b-9: JSON.stringify replacer array has gaps.", '{"a":1,"b":2}', JSON.stringify({ a: 1, b: 2, c: 3 }, gappy_array));
+
+    AddTestCase("15.12.3-4-b-10: JSON.stringify replacer array nesting of keys.", '{"a":1,"b":{"b":3,"d":2}}', JSON.stringify({ a: 1, b: { d: 2, b: 3 }, c: 4 }, ["a", "b", "d"]));
+
     test();

-
-
 }


Don't lauch a kernel that might run forever.

	* src/tests/bin/uobject-check.as: Make it fail.

--- sdk-remote/src/tests/bin/uobject-check.as
+++ sdk-remote/src/tests/bin/uobject-check.as
@@ -35,8 +35,9 @@
 urbi_launch=$(xfind_prog urbi-launch)

 # If urbi-launch cannot work because there is no kernel libuobject,
-# skip the test.
-run "urbi-launch --start" $urbi_launch --start ||
+# skip the test.  Do pass something that will fail to be loaded,
+# otherwise if it works, a server is launched, and will run endlessly.
+run "urbi-launch --start" $urbi_launch --start /dev/null ||
   case $? in
     (72) error 77 "urbi-launch cannot find libuobject";;
   esac


fixed QuadGeometry to push multiple indices at once using Vector.push()

--- src/aerys/minko/scene/node/mesh/geometry/primitive/QuadGeometry.as
+++ src/aerys/minko/scene/node/mesh/geometry/primitive/QuadGeometry.as
@@ -16,31 +16,38 @@
 		}

 		public function QuadGeometry(doubleSided	: Boolean 	= false,
-									 width 			: uint 		= 1,
-									 height 		: uint 		= 0,
+									 numColumns 	: uint 		= 1,
+									 numRows 		: uint 		= 0,
 									 streamsUsage	: uint		= 0)
 		{
 			var vertices 	: Vector.<Number> 	= new Vector.<Number>();
 			var indices 	: Vector.<uint> 	= new Vector.<uint>();

-			height ||= width;
+			numRows ||= numColumns;

-			for (var y : int = 0; y <= height; y++)
-				for (var x : int = 0; x <= width; x++)
-					vertices.push(x / width - .5, y / height - .5, 0.,
-								  x / width, 1. - y / height);
+			for (var y : int = 0; y <= numRows; y++)
+			{
+				for (var x : int = 0; x <= numColumns; x++)
+				{
+					vertices.push(
+						x / numColumns - .5, y / numRows - .5, 0.,
+						x / numColumns, 1. - y / numRows
+					);
+				}
+			}

-			for (y = 0; y < height; y++)
+			for (y = 0; y < numRows; y++)
 			{
-				for (x = 0; x < width; x++)
+				for (x = 0; x < numColumns; x++)
 				{
-					indices.push(x + (width + 1) * y);
-					indices.push(x + 1 + y * (width + 1));
-					indices.push((y + 1) * (width + 1) + x);
-
-					indices.push(x + 1 + y * (width + 1));
-					indices.push((y + 1) * (width + 1) + x + 1);
-					indices.push((y + 1) * (width + 1) + x);
+					indices.push(
+						x + (numColumns + 1) * y,
+						x + 1 + y * (numColumns + 1),
+						(y + 1) * (numColumns + 1) + x,
+						x + 1 + y * (numColumns + 1),
+						(y + 1) * (numColumns + 1) + x + 1,
+						(y + 1) * (numColumns + 1) + x
+					);
 				}
 			}


Remove angle property and its getter/setter.  The rotation property should be used to specify the gradient's rotation.

--- frameworks/projects/Graphics/as/src/org/apache/flex/core/graphics/GradientBase.as
+++ frameworks/projects/Graphics/as/src/org/apache/flex/core/graphics/GradientBase.as
@@ -45,37 +45,6 @@
 		public static const GRADIENT_DIMENSION:Number = 1638.4;

 		/**
-		 *  Storage for the angle property.
-		 */
-		private var _angle:Number;
-
-		/**
-		 *  By default, the LinearGradientStroke defines a transition
-		 *  from left to right across the control.
-		 *  Use the angle property to control the transition direction.
-		 *  For example, a value of 180.0 causes the transition
-		 *  to occur from right to left, rather than from left to right.
-		 *
-		 *  @default 0.0
-		 *
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 */
-		public function get angle():Number
-		{
-			return _angle / Math.PI * 180;
-		}
-
-		/**
-		 *  @private
-		 */
-		public function set angle(value:Number):void
-		{
-			_angle = value / 180 * Math.PI;
-		}
-
-		/**
 		 *  Storage for the entries property.
 		 */
 		private var _entries:Array = [];


Transferred from the Adobe Open Source Subversion Repository

Revision: 18173
Author:   jasonsj@adobe.com
Date:     2010-10-15T17:03:20.801634Z

Log Message:
-----------
Mobile Theme Initial check-in

* New light-look visuals from XD
* Changed airmobile-config.xml to use standalone Mobile theme instead of Spark overlay
* Added theme="spark, mobile" where spark was already white-listed and support is implemented and/or planned for Mobile/spark.css (see https://zerowing.corp.adobe.com/display/flexmobile/Mobile+Theme+Styles+Spec)
* MobileSkin has symbolColor and chromeColor support. Override beginChromeColorFill and drawChromeColor when defining custom chromeColor visuals.
* CheckBox and RadioButton now have chromeColor and symbolColor support
* Added textShadowColor and textShadowAlpha support to Button and ActionBar
* Added chromeColor support to HScrollBar and VScrollBar

QE notes: All mobile skins have been updaetd.
Doc notes: Update mobile skinning documentation for new APIs
Bugs:
SDK-28043 Investigate usage of "viewWidth", "viewHeight" for the Flex Mobile Skin Assets
SDK-27609 Mobile scroll bar skins should use chromeColor
SDK-27646 cornerradius has no effect on button in mobile application
Reviewer: gruehle
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_symbol.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TextInput_border.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/Button_down.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_upSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_down.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/CheckBox_downSelected.fxg</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/themes/Mobile/spark.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/airmobile-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/RadioButton_downSelected.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as
+++ frameworks/projects/framework/src/mx/styles/metadata/ContainerBackgroundStyles.as
@@ -23,7 +23,7 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-[Style(name="backgroundAlpha", type="Number", inherit="no", theme="halo, spark")]
+[Style(name="backgroundAlpha", type="Number", inherit="no", theme="halo, spark, mobile")]

 /**
  *  Background color of a component.
@@ -54,4 +54,4 @@
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-[Style(name="backgroundColor", type="uint", format="Color", inherit="no", theme="halo, spark")]+[Style(name="backgroundColor", type="uint", format="Color", inherit="no", theme="halo, spark, mobile")]


Transferred from the Adobe Open Source Subversion Repository

Revision: 5223
Author:   egeorgie@adobe.com
Date:     2009-03-10T20:10:07.223108Z

Log Message:
-----------
Introduce ButtonBase and ToggleButtonBase classes and make FxButton extend ButtonBase, ToggleButtonBase extend ButtonBase, FxToggleButton, FxCheckBox, FxRadioButton extend ToggleButtonBase.as.
The emphasized property and IButton are pushed down to the FxButton, so the rest of the buttons don't have them.

QE Notes: None
Doc Notes:
Bugs: SDK-19671, SDK-19670
Reviewer: Glenn
tests: checkintests, mustella (gumbo/components)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxCheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ButtonBarButton.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/ButtonBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/ToggleButtonBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as
@@ -0,0 +1,197 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.components.baseClasses
+{
+
+import flash.events.Event;
+import flash.events.MouseEvent;
+
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+
+/**
+ *  Dispatched when the selected property
+ *  changes for the ToggleButtonBase control.
+ *
+ *  This event is dispatched only when the
+ *  user interacts with the control by using the mouse.
+ *
+ *  @eventType flash.events.Event.CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Event(name="change", type="flash.events.Event")]
+
+/**
+ *  Up State of the Button when it's selected
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[SkinState("upAndSelected")]
+
+/**
+ *  Over State of the Button when it's selected
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[SkinState("overAndSelected")]
+
+/**
+ *  Down State of the Button when it's selected
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[SkinState("downAndSelected")]
+
+/**
+ *  Disabled State of the Button when it's selected
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[SkinState("disabledAndSelected")]
+
+// TODO EGeorgie: figure out whether we need this?
+[DefaultBindingProperty(source="selected", destination="label")]
+
+/**
+ *  The ToggleButtonBase component is the base class for the Spark button components
+ *  that support the selected property.
+ *  FxToggleButton, FxCheckBox and FxRadioButton are subclasses of ToggleButtonBase.
+ *
+ *  @see mx.components.FxToggleButton
+ *  @see mx.components.FxCheckBox
+ *  @see mx.components.FxRadioButton
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+public class ToggleButtonBase extends ButtonBase
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function ToggleButtonBase()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  selected
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the selected property
+     */
+    private var _selected:Boolean;
+
+    [Bindable]
+
+    /**
+     *  true if the button is in the down state,
+     *  and false if it is in the up state.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get selected():Boolean
+    {
+        return _selected;
+    }
+
+    /**
+     *  @private
+     */
+    public function set selected(value:Boolean):void
+    {
+        if (value == _selected)
+            return;
+
+        _selected = value;
+        dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+        invalidateSkinState();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  States
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    protected override function getCurrentSkinState():String
+    {
+        if( !selected )
+            return super.getCurrentSkinState();
+        else
+            return super.getCurrentSkinState() + "AndSelected";
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event handling
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function clickHandler(event:MouseEvent):void
+    {
+        super.clickHandler(event);
+        selected = !selected;
+        dispatchEvent(new Event(Event.CHANGE));
+        event.updateAfterEvent();
+    }
+}
+
+}


Added better security measures thanks to jPlayer

--- src/flash/FlashMediaElement.as
+++ src/flash/FlashMediaElement.as
@@ -88,16 +88,43 @@
         private var _idleTime:int;
         private var _isMouseActive:Boolean
 		private var _isOverStage:Boolean = false;
+
+		// security checkes
+		private var securityIssue:Boolean = false; // When SWF parameters contain illegal characters
+		private var directAccess:Boolean = false; // When SWF visited directly with no parameters (or when security issue detected)

 		public function FlashMediaElement() {

 			// show allow this player to be called from a different domain than the HTML page hosting the player
 			Security.allowDomain("*");
-
+
+			// check for security issues (borrowed from jPLayer)
+			checkFlashVars(loaderInfo.parameters);
+
+
+			// add debug output
+			_output = new TextField();
+			_output.textColor = 0xeeeeee;
+			_output.width = stage.stageWidth - 100;
+			_output.height = stage.stageHeight;
+			_output.multiline = true;
+			_output.wordWrap = true;
+			_output.border = false;
+			_output.filters = [new DropShadowFilter(1, 0x000000, 45, 1, 2, 2, 1)];
+
+			_output.text = "Initializing...\n";
+			addChild(_output);
+			_output.visible = securityIssue;
+
+			if (securityIssue) {
+				_output.text = "WARNING: Security issue detected. Player stopped.";
+				return;
+			}
+
 			// get parameters
 			var params:Object = LoaderInfo(this.root.loaderInfo).parameters;
-			_mediaUrl = (params['file'] != undefined) ? String(params['file']).replace("\\\"","") : ""; // replacing quotes is for XSS
+			_mediaUrl = (params['file'] != undefined) ? String(params['file']) : "";
 			_autoplay = (params['autoplay'] != undefined) ? (String(params['autoplay']) == "true") : false;
 			_debug = (params['debug'] != undefined) ? (String(params['debug']) == "true") : false;
 			_isVideo = (params['isvideo'] != undefined) ? ((String(params['isvideo']) == "false") ? false : true  ) : true;
@@ -115,6 +142,7 @@
 			_pseudoStreamingStartQueryParam = (params['pseudostreamstart'] != undefined) ? (String(params['pseudostreamstart'])) : "start";
 			_streamer = (params['flashstreamer'] != undefined) ? (String(params['flashstreamer'])) : "";

+			_output.visible = _debug;

 			if (isNaN(_timerRate))
 				_timerRate = 250;
@@ -140,20 +168,8 @@
 			//_alwaysShowControls = true;

 			//_debug=true;
-
-			// debugging
-			_output = new TextField();
-			_output.textColor = 0xeeeeee;
-			_output.width = stage.stageWidth - 100;
-			_output.height = stage.stageHeight;
-			_output.multiline = true;
-			_output.wordWrap = true;
-			_output.border = false;
-			_output.filters = [new DropShadowFilter(1, 0x000000, 45, 1, 2, 2, 1)];
-
-			_output.text = "Initializing...\n";
-			addChild(_output);
-			_output.visible = _debug;
+
+

 			// position and hide
@@ -369,6 +385,34 @@

 		}

+		// borrowed from jPLayer
+		// https://github.com/happyworm/jPlayer/blob/e8ca190f7f972a6a421cb95f09e138720e40ed6d/actionscript/Jplayer.as#L228
+		private function checkFlashVars(p:Object):void {
+			var i:Number = 0;
+			for each (var s:String in p) {
+				if (isIllegalChar(s)) {
+					securityIssue = true; // Illegal char found
+				}
+				i++;
+			}
+			if(i === 0 || securityIssue) {
+				directAccess = true;
+			}
+		}
+
+		private function isIllegalChar(s:String):Boolean {
+			var illegals:String = "' \" ( ) { } * + / \\ < > = document";
+			if(Boolean(s)) { // Otherwise exception if parameter null.
+				for each (var illegal:String in illegals.split(' ')) {
+					if(s.indexOf(illegal) >= 0) {
+						return true; // Illegal char found
+					}
+				}
+			}
+			return false;
+		}
+
+
 		// START: Controls and events
 		function mouseActivityMove(event:MouseEvent):void {


updated comments

updated comments

--- dorkbots/dorkbots_util/TwitterStringParser.as
+++ dorkbots/dorkbots_util/TwitterStringParser.as
@@ -4,7 +4,7 @@
 	/**
 	 * The TwitterStringParser class assists with the parsing of a tweet to add hyperlinks
 	 * around Links, HashTags, and UserNames in a tweet.
-	 * based on Joseph Labrecque's work.
+	 * based on Joseph Labrecque's work - http://inflagrantedelicto.memoryspiral.com/2010/01/parsing-tweets-with-the-twitterstring-class/
 	 */

 	public class TwitterStringParser