Transferred from the Adobe Open Source Subversion Repository

Revision: 7295
Author:   dsubrama@adobe.com
Date:     2009-05-26T23:59:25.112903Z

Log Message:
-----------
-Add in caret support to Spark List. Our default renderers draw a thin 1px blue line (same color as selection color) around items that are currently in focus.
-Selection and careted item stay in-sync unless the Ctrl key is down in which you can caret away on your own.
-With careting (current item in focus) comes the itemFocusChanged event.
-Add in more states to ItemRenderer, which now supports: normal, hovered, selected, normalAndCaret, hoveredAndCaret, selectedAndCaret.
-Because of the addition of a hasState() method on IStateClient2, IR's that don't support the above-mentioned states won't RTE!
-findKey support like in Halo, for Spark List
-Null check for Line when generating DAPI-2 stroke

Reviewers: Ryan for caret stuff, Ryan/Corey for hasState() impl
Doc: Yes
QA: Yes
Checkintests: Pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/DefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IStateClient2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/Line.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/DefaultComplexItemRenderer.mxml</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/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -8885,6 +8885,14 @@
     }

     /**
+     *  @inheritDoc
+     */
+    public function hasState(stateName:String):Boolean
+    {
+        return (getState(stateName, false) != null);
+    }
+
+    /**
      *  @private
      *  Returns true if the passed in state name is the 'base' state, which
      *  is currently defined as null or ""
@@ -9047,7 +9055,7 @@
      *  Returns the state with the specified name, or null if it doesn't exist.
      *  If multiple states have the same name the first one will be returned.
      */
-    private function getState(stateName:String):State
+    private function getState(stateName:String, throwOnUndefined:Boolean=true):State
     {
         if (!states || isBaseState(stateName))
             return null;
@@ -9059,11 +9067,13 @@
             if (states[i].name == stateName)
                 return states[i];
         }
-
-        var message:String = resourceManager.getString(
-            "core", "stateUndefined", [ stateName ]);
-        throw new ArgumentError(message);
-
+
+        if (throwOnUndefined)
+        {
+            var message:String = resourceManager.getString(
+                "core", "stateUndefined", [ stateName ]);
+            throw new ArgumentError(message);
+        }
         return null;
     }


Implemented suggested TODO to use is rather than clas nome comparison

--- frameworks/projects/framework/src/mx/utils/ObjectUtil.as
+++ frameworks/projects/framework/src/mx/utils/ObjectUtil.as
@@ -990,9 +990,8 @@
             }
         }

-        // TODO (pfarland): this seems slightly fragile, why not use the 'is' operator?
-        var isArray:Boolean = (className == "Array");
-        var isDict:Boolean  = (className == "flash.utils::Dictionary");
+        var isArray:Boolean = (obj is Array);
+        var isDict:Boolean  = (obj is Dictionary);

         if (isDict)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2803
Author:   rfrishbe@adobe.com
Date:     2008-08-11T18:31:30.575706Z

Log Message:
-----------
Changes based on MXMLComponent discussion.  Removed the data property from Group, which meant adding it (and the IDataRenderer interface).  Also did some cleanup on Button and ItemRenderer around adding event listeners.

QE: Yes - I already updated the affected mustella tests and Steve looked at those changes
Doc: No
Bugs: -
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/MXMLComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/Button.as
+++ frameworks/projects/spark/src/spark/components/Button.as
@@ -100,6 +100,9 @@
 		// and icons are Shapes, because Shapes never dispatch mouse events;
 		// they are dispatched from the Button in this case.)
 		mouseChildren = false;
+
+		// add event listeners to the button
+		addHandlers();
 	}

 	[Bindable("labelChanged")]
@@ -302,10 +305,8 @@
 	//
 	//--------------------------------------------------------------------------

-	override protected function skinLoaded():void
-	{
-		super.skinLoaded();
-
+	protected function addHandlers():void
+	{
 		addEventListener(MouseEvent.ROLL_OVER, mouseEventHandler);
 		addEventListener(MouseEvent.ROLL_OUT, mouseEventHandler);
 		addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler);
@@ -314,18 +315,6 @@
 		// since instance handlers are registered before base class handlers.
 		addEventListener(MouseEvent.CLICK, mouseEventHandler, true /*useCapture*/);
 		addEventListener("enabledChanged", enableChangedHandler);
-	}
-
-	override protected function unloadingSkin():void
-	{
-		super.unloadingSkin();
-
-		removeEventListener(MouseEvent.ROLL_OVER, mouseEventHandler);
-		removeEventListener(MouseEvent.ROLL_OUT, mouseEventHandler);
-		removeEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler);
-		removeEventListener(MouseEvent.MOUSE_UP, mouseEventHandler);
-		removeEventListener(MouseEvent.CLICK, mouseEventHandler, true);
-		removeEventListener("enabledChanged", enableChangedHandler);
 	}

 	private function addSystemMouseHandlers():void


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

--- frameworks/projects/airframework/src/AIRFrameworkClasses.as
+++ frameworks/projects/airframework/src/AIRFrameworkClasses.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////

 package
 {


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


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

--- frameworks/projects/framework/src/mx/styles/CSSCondition.as
+++ frameworks/projects/framework/src/mx/styles/CSSCondition.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  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: 2878
Author:   gosmith@adobe.com
Date:     2008-08-19T01:47:49.628691Z

Log Message:
-----------
Added an ObjectUtil.getUnqualifiedClassName() utility method for use in the className getter in four classes, which previously had copy-and-paste code.

Moved the STYLE_UNINITIALIZED constant from StyleManager to StyleProtoChain, since it indicates an uninitialized style proto chain.

Reviewer: Jono
Bugs: -
QA: No
Doc: No

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/framework/src/mx/controls/NavBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ObjectUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.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/flex4/src/flex/graphics/graphicsClasses/TextGraphicElement.as</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/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>

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

--- frameworks/projects/framework/src/mx/styles/StyleManager.as
+++ frameworks/projects/framework/src/mx/styles/StyleManager.as
@@ -43,18 +43,6 @@
      *  String is not a legitimate color name.
      */
     public static const NOT_A_COLOR:uint = 0xFFFFFFFF;
-
-    /**
-     *  @private
-     *  The inheritingStyles and nonInheritingStyles properties
-     *  are initialized to this empty Object.
-     *  This allows the getStyle() and getStyle()
-     *  methods to simply access inheritingStyles[] and nonInheritingStyles[]
-     *  without needing to first check whether those objects exist.
-     *  If they were simply initialized to {}, we couldn't determine
-     *  whether the style chain has already been built or not.
-     */
-    mx_internal static const STYLE_UNINITIALIZED:Object = {};

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19395
Author:   hmuller@adobe.com
Date:     2010-12-15T19:17:26.366313Z

Log Message:
-----------
Improved List scroll positioning after a dataProvider refresh for one case: if the caret item is visible, after a refresh attempt to scroll so that it's in the same relative position, and select it.

DataGroup/getElementAt(index) now returns the item renderer for index, even if index is not a valid dataProvider index (anymore).

QE notes: Four Mustella tests to be updated (Jacob, Ella).
Doc notes:
Bugs: SDK-23283
Reviewer: Ryan
Tests run: checkin, mustella
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/IGridItemRenderer.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/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -1407,7 +1407,7 @@
      */
     override public function getElementAt(index:int):IVisualElement
     {
-        if ((index < 0) || (dataProvider == null) || (index >= dataProvider.length))
+        if ((index < 0) || (index >= indexToRenderer.length))
             return null;

         return indexToRenderer[index];


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/spark/src/spark/core/IGraphicElement.as
+++ frameworks/projects/spark/src/spark/core/IGraphicElement.as
@@ -13,15 +13,15 @@
 import flash.display.DisplayObject;
 import flash.display.DisplayObjectContainer;

-import spark.components.Group;
 import mx.core.IVisualElement;

 /**
  *  The IGraphicElement is implemented by IVisualElements that
- *  take advantage of the parent Group's DisplayObject management.
+ *  take advantage of the parent IGraphicElementHost
+ *  DisplayObject management.
  *
  *
One typical use case is DisplayObject sharing.
- *  Group organizes its
+ *  Group, which implements IGraphicElementHost, organizes its
  *  IGraphicElement children in sequences that share and draw to
  *  the same DisplayObject.
  *  The DisplayObject is created by the first element in the
@@ -29,7 +29,7 @@
  *
  *
Another use case is when an element does not derrive from
  *  DisplayObject but instead maintains, creates and/or destroys
- *  its own DisplayObject. The Group will ensure to
+ *  its own DisplayObject. The IGraphicElementHost will ensure to
  *  call the element to create the DisplayObject, add the
  *  DisplayObject as its child at the correct index as well as
  *  handle its removal.

@@ -38,7 +38,9 @@
  *  instead of directly implementing the IGraphciElement
  *  interface. The GraphicElement class already provides most of the
  *  required functionality.

- *
+ *
+ *  @see spark.core.IGraphicElementHost
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10
  *  @playerversion AIR 1.5
@@ -80,8 +82,8 @@

     /**
      *  Indicates the association between this IGraphicElement and its
-     *  display objects.  The Group manages this property and the values
-     *  are one of the DisplayObjectSharingMode enum class.
+     *  display objects.  The IGraphicElementHost manages this
+     *  property and the values are one of the DisplayObjectSharingMode enum class.
      *
      *

      *
A value of DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT
@@ -128,30 +130,31 @@
      *  Subsequent calls to the getter of the displayObject property must
      *  return the same display object.
      *
-     *  After the DisplayObject is created, the parent Group
+     *  After the DisplayObject is created, the parent IGraphicElementHost
      *  will pass along the display objects to the rest of the elements in the sequence.
      *
-     *  The Group ensures that this method is called only when needed.
+     *  The IGraphicElementHost ensures that this method is called only when needed.
      *
      *
If the element wants to participate in the DisplayObject
      *  sharing, then the new DisplayObject must implement IShareableDisplayObject.
-     *  This interface is being used by the Group to manage invalidation and
+     *  This interface is being used by the IGraphicElementHost to manage invalidation and
      *  redrawing of the graphic element sequence and typically is not directly
      *  used by the Developer.

      *
-     *
To reevaluate the shared sequences, call the parent Group
-     *  invalidateGraphicElementSharing() method.

-     *
-     *
To force the Group to remove the element's current
+     *
To reevaluate the shared sequences, call the
+     *  invalidateGraphicElementSharing() method
+     *  on the IGraphicElementHost.

+     *
+     *
To force the IGraphicElementHost to remove the element's current
      *  DisplayObject from its display list and recalculate the
-     *  display object sharing, call the parent Group's
-     *  discardDisplayObject() method.

+     *  display object sharing, call the
+     *  discardDisplayObject() method on the IGraphicElementHost.

      *
      *  @return The display object created.
      *
      *  @see #displayObject
-     *  @see spark.components.Group#invalidateGraphicElementSharing
-     *  @see spark.components.Group#discardDisplayObject
+     *  @see spark.components.IGraphicElementHost#invalidateGraphicElementSharing
+     *  @see spark.components.IGraphicElementHost#discardDisplayObject
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -177,11 +180,11 @@
      *  displayObject property must return the same display object.

      *
      *
In certain cases, the sharedDisplayObject property might be
-     *  the parent Group itself. In the rest of the cases, the
+     *  the IGraphicElementHost itself. In the rest of the cases, the
      *  DisplayObject is created by the first element in the sequence.

      *
      *
When this IGraphicElement needs to rebuild its sequence,
-     *  it notifies the parent Group by calling its
+     *  it notifies the IGraphicElementHost by calling its
      *  invalidateGraphicElementSharing() method.

      *
      *  @return Returns true when this IGraphicElement can draw itself
@@ -189,7 +192,7 @@
      *
      *  @see #canShareWithPrevious
      *  @see #canShareWithNext
-     *  @see spark.components.Group#invalidateGraphicElementSharing
+     *  @see spark.components.IGraphicElementHost#invalidateGraphicElementSharing
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -203,8 +206,8 @@
      *  share display objects with the previous IGraphicElement
      *  in the sequence.
      *
-     *
In certain cases the element might be passed to the parent
-     *  Group itself in a call to the setSharedDisplayObject() method.
+     *
In certain cases the element might be passed to the IGraphicElementHost
+     *  in a call to the setSharedDisplayObject() method.
      *  In those cases, this method is not called.

      *
      *  @param element The element that comes before this element in the sequence.
@@ -241,28 +244,28 @@
     function canShareWithNext(element:IGraphicElement):Boolean;

     /**
-     *  Called by Group when an IGraphicElement
-     *  is added to or removed from a Group.
+     *  Called by IGraphicElementHost when an IGraphicElement
+     *  is added to or removed from the host.
      *
Developers typically never need to call this method.

      *
-     *  @param parent The parent group of this IGraphicElement.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    function parentChanged(parent:Group):void;
-
-    /**
-     *  Called by the parent Group to validate the properties of
+     *  @param parent The IGraphicElementHost of this IGraphicElement.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function parentChanged(parent:IGraphicElementHost):void;
+
+    /**
+     *  Called by the IGraphicElementHost to validate the properties of
      *  this element.
      *
-     *
To ensure that this method is called, notify the parent Group
+     *
To ensure that this method is called, notify the IGraphicElementHost
      *  by calling its invalidateGraphicElementProperties() method.

      *
      *
This method might be called even if this element has not
-     *  notified the parent Group.

+     *  notified the IGraphicElementHost.

      *
      *  @see #validateSize
      *  @see #validateDisplayList
@@ -275,18 +278,18 @@
     function validateProperties():void;

     /**
-     *  Called by the parent Group to validate the size of
+     *  Called by the IGraphicElementHost to validate the size of
      *  this element.
      *
      *
When the size of the element changes and is going to affect the
-     *  parent Group layout, the implementer is responsible
+     *  IGraphicElementHost layout, the implementer is responsible
      *  for invalidating the parent's size and display list.

      *
-     *
To ensure that this method is called, notify the parent Group
+     *
To ensure that this method is called, notify the IGraphicElementHost
      *  by calling its invalidateGraphicElementSize() method.

      *
      *
This method might be called even if this element has not
-     *  notified the parent Group.

+     *  notified the IGraphicElementHost.

      *
      *  @see #validateProperties
      *  @see #validateDisplayList
@@ -299,7 +302,7 @@
     function validateSize():void;

     /**
-     *  Called by the parent Group to redraw this element
+     *  Called by the IGraphicElementHost to redraw this element
      *  in its displayObject property.
      *
      *
If the element is the first in the sequence (displayObjectSharingMode
@@ -309,14 +312,14 @@
      *
      *
The element must alway redraw even if it itself has not changed
      *  since the last time the validateDisplayList() method was called.
-     *  The parent Group will redraw the whole sequence
+     *  The parent IGraphicElementHost will redraw the whole sequence
      *  if any of its elements need to be redrawn.

      *
-     *
To ensure this method is called, notify the parent Group
+     *
To ensure this method is called, notify the IGraphicElementHost
      *  by calling its invalidateGraphicElementSize() method.

      *
      *
This method might be called even if this element has not
-     *  notified the parent Group.

+     *  notified the IGraphicElementHost.

      *
      *  @see #displayObject
      *  @see #validateProperties


??describeType??????????

??describeType??????????

--- as3/com/netease/protobuf/TextFormat.as
+++ as3/com/netease/protobuf/TextFormat.as
@@ -12,6 +12,7 @@
 	import flash.errors.IllegalOperationError;
 	import flash.errors.IOError;
 	import flash.utils.describeType
+	import flash.utils.Dictionary;
 	import flash.utils.getDefinitionByName;
 	import flash.utils.IDataInput
 	import flash.utils.IDataOutput
@@ -22,19 +23,29 @@
 			output.writeUTFBytes("00000000".substring(0, 8 - hexString.length))
 			output.writeUTFBytes(hexString)
 		}
+		private static const allEnumValues:Dictionary = new Dictionary
 		private static function printEnum(output:IDataOutput,
 				value:int, enumType:Class):void {
-			const enumTypeDescription:XML = describeType(enumType)
-			// Not enumTypeDescription.*.@name,
-			// because haXe will replace constant to variable, WTF!
-			for each(var name:String in enumTypeDescription.*.@name) {
-				if (enumType[name] === value) {
-					output.writeUTFBytes(name)
-					return
-				}
-			}
-			throw new IOError(value + " is invalid for " +
-					enumTypeDescription.@name)
+			var enumValues:Array
+			if (enumType in allEnumValues) {
+				enumValues = allEnumValues[enumType]
+			} else {
+				const enumTypeDescription:XML = describeType(enumType)
+				// Not enumTypeDescription.*.@name,
+				// because haXe will replace all constants to variables, WTF!
+				const xmlNames:XMLList = enumTypeDescription.*.@name
+				enumValues = []
+				for each(var name:String in xmlNames) {
+					enumValues[enumType[name]] = name
+				}
+				allEnumValues[enumType] = enumValues
+			}
+			if (value in enumValues) {
+				output.writeUTFBytes(enumValues[value])
+			} else {
+				throw new IOError(value + " is invalid for " +
+						enumTypeDescription.@name)
+			}
 		}
 		private static function printBytes(output:IDataOutput,
 				value:ByteArray):void {
@@ -118,26 +129,33 @@
 				break
 			}
 		}
+		private static const allMessageFields:Dictionary = new Dictionary
 		private static function printMessageFields(output:IDataOutput,
 				message:Message,
 				printSetting:PrintSetting,
 				currentIndent:String = ""):void {
 			var isFirst:Boolean = true
 			const type:Class = Object(message).constructor
-			const description:XML = describeType(type)
+			var messageFields:XMLList
+			if (type in allMessageFields) {
+				messageFields = allMessageFields[type]
+			} else {
+				// TODO
+				const description:XML = describeType(type)
+				messageFields = description.*.
+					(0 == String(@type).search(
+						/^com.netease.protobuf.fieldDescriptors::(Repeated)?FieldDescriptor\$/) &&
+						BaseFieldDescriptor(type[@name]).name.
+								search(/^\./) == -1// Not extension
+					).@name
+				allMessageFields[type] = messageFields
+			}
+
 			// Not description.constant,
 			// because haXe will replace constant to variable, WTF!
-			for each (var fieldDescriptorName:String in description.*.
-					(0 == String(@type).search(
-					/^com.netease.protobuf.fieldDescriptors::(Repeated)?FieldDescriptor\$/)
-					).@name) {
+			for each (var fieldDescriptorName:String in messageFields) {
 				const fieldDescriptor:BaseFieldDescriptor =
 						type[fieldDescriptorName]
-				if (fieldDescriptor.name.search(/\/\./) != -1) {
-					// extend on other message
-					continue
-				}
-
 				const shortName:String = fieldDescriptor.fullName.substring(
 						fieldDescriptor.fullName.lastIndexOf('.') + 1)
 				if (fieldDescriptor.type == Array) {


fix-m-typing

fix-m-typing

--- bin/Data/Scripts/Editor/EditorScene.as
+++ bin/Data/Scripts/Editor/EditorScene.as
@@ -522,7 +522,10 @@

 bool ShowLayerMover()
 {
-  return ShowLayerEditor();
+  if(ui.focusElement is null)
+    return ShowLayerEditor();
+  else
+    return false;
 }

 void SetSceneModified()


fix sizing of dropdownlist popup

fix sizing of dropdownlist popup

--- frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/DropDownListController.as
+++ frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/DropDownListController.as
@@ -79,9 +79,9 @@
             viewBead.popUpVisible = true;
             var selectionModel:ISelectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel;
             var popUpModel:ISelectionModel = viewBead.popUp.getBeadByType(ISelectionModel) as ISelectionModel;
+            DisplayObject(viewBead.popUp).width = DisplayObject(_strand).width;
             popUpModel.dataProvider = selectionModel.dataProvider;
             popUpModel.selectedIndex = selectionModel.selectedIndex;
-			DisplayObject(viewBead.popUp).width = DisplayObject(_strand).width;
             var pt:Point = new Point(DisplayObject(_strand).x, DisplayObject(_strand).y + DisplayObject(_strand).height);
             pt = DisplayObject(_strand).parent.localToGlobal(pt);
 			DisplayObject(viewBead.popUp).x = pt.x;


Dragdrop nodes to a SplinePath component to add as control points.

--- Bin/Data/Scripts/Editor/EditorHierarchyWindow.as
+++ Bin/Data/Scripts/Editor/EditorHierarchyWindow.as
@@ -8,6 +8,7 @@
 const ShortStringHash SCENE_TYPE("Scene");
 const ShortStringHash NODE_TYPE("Node");
 const ShortStringHash STATICMODELGROUP_TYPE("StaticModelGroup");
+const ShortStringHash SPLINEPATH_TYPE("SplinePath");
 const ShortStringHash CONSTRAINT_TYPE("Constraint");
 const String NO_CHANGE(uint8(0));
 const ShortStringHash TYPE_VAR("Type");
@@ -796,6 +797,23 @@
                 SaveEditAction(action);
                 SetSceneModified();
             }
+
+            // Drag node to SplinePath to make it a control point
+            SplinePath@ spline = cast<SplinePath>(targetComponent);
+            if (spline !is null)
+            {
+                // Save undo action
+                EditAttributeAction action;
+                uint attrIndex = GetAttributeIndex(spline, "Control Points");
+                Variant oldIDs = spline.attributes[attrIndex];
+
+                for (uint i = 0; i < sourceNodes.length; ++i)
+                    spline.AddControlPoint(sourceNodes[i]);
+
+                action.Define(spline, attrIndex, oldIDs);
+                SaveEditAction(action);
+                SetSceneModified();
+            }

             // Drag a node to Constraint to make it the remote end of the constraint
             Constraint@ constraint = cast<Constraint>(targetComponent);
@@ -914,7 +932,8 @@

         itemType = ITEM_COMPONENT;

-        if (sourceNode !is null && targetComponent !is null && (targetComponent.type == STATICMODELGROUP_TYPE || targetComponent.type == CONSTRAINT_TYPE))
+        if (sourceNode !is null && targetComponent !is null && (targetComponent.type == STATICMODELGROUP_TYPE ||
+            targetComponent.type == CONSTRAINT_TYPE || targetComponent.type == SPLINEPATH_TYPE))
             return true;
         else
             return false;


fix roll out target inconsistencies when using box raycasting accelerated pixel picking

--- src/aerys/minko/scene/controller/PickingController.as
+++ src/aerys/minko/scene/controller/PickingController.as
@@ -21,14 +21,13 @@
 	import aerys.minko.type.math.Matrix4x4;
 	import aerys.minko.type.math.Ray;

-	import avmplus.getQualifiedClassName;
-
 	import flash.display.BitmapData;
 	import flash.events.IEventDispatcher;
 	import flash.events.MouseEvent;
 	import flash.ui.Mouse;
 	import flash.ui.MouseCursor;
 	import flash.utils.Dictionary;
+	import flash.utils.getQualifiedClassName;

 	public class PickingController extends EnterFrameController
 	{
@@ -282,12 +281,15 @@

                             if (target is Mesh)
                             {
-                                var mesh : Mesh = target as Mesh;
+								var mesh : Mesh = target as Mesh;

                                 if (mesh.cast(ray) > 0.)
                                 {
-                                    _lastMouseOver = _currentMouseOver;
-                                    _currentMouseOver = mesh;
+									if (!(_technique & PickingTechnique.PIXEL_PICKING))
+									{
+										_lastMouseOver = _currentMouseOver;
+										_currentMouseOver = mesh;
+									}
                                     hit = true;
                                 }
                             }
@@ -298,8 +300,11 @@

                                 if (hits.length > 0)
                                 {
-                                    _lastMouseOver = _currentMouseOver;
-                                    _currentMouseOver = hits[0] as Mesh;
+									if (!(_technique & PickingTechnique.PIXEL_PICKING))
+									{
+										_lastMouseOver = _currentMouseOver;
+										_currentMouseOver = hits[0] as Mesh;
+									}
                                     hit = true;
                                 }
                             }


fix VertexStream.applyTransform() to call updateMinMax() at the end to re-compute min/max values for the transformed data

--- src/aerys/minko/render/geometry/stream/VertexStream.as
+++ src/aerys/minko/render/geometry/stream/VertexStream.as
@@ -494,10 +494,9 @@
 			_data.position = 0;

 			if (!_locked)
-			{
 				_changed.execute(this);
-				_boundsChanged.execute(this);
-			}
+
+			updateMinMax();
 		}

 		public function disposeLocalData(waitForUpload : Boolean = true) : void


fix minor coding style issue in AbstractController

--- src/aerys/minko/scene/controller/AbstractController.as
+++ src/aerys/minko/scene/controller/AbstractController.as
@@ -70,9 +70,9 @@
 			if (_targetType && !(target is _targetType))
 			{
 				throw new Error(
-					"Controller '" + getQualifiedClassName(this)
-					+ " cannot target objects from class '"
-					+ getQualifiedClassName(target) + "'."
+					'Controller \'' + getQualifiedClassName(this)
+					+ ' cannot target objects from class \''
+					+ getQualifiedClassName(target) + '\'.'
 				);
 			}

@@ -113,7 +113,7 @@

 		public function clone() : AbstractController
 		{
-			throw new Error("The method AbstractController.clone() must be overriden.");
+			throw new Error('The method AbstractController.clone() must be overriden.');
 		}
 	}
 }


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

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

 package mx.messaging
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19060
Author:   harishs@adobe.com
Date:     2010-12-06T17:34:15.020965Z

Log Message:
-----------
QE notes: Did checkintests, performed full cyclone run. There were 19 failures in mustella report. QE Judy (Mingzhou Gao and Joann Chung Anderson) confirmed that they are known problems.
Doc notes: As part of Sort and Sortfield updates, the asdoc comments were updated to reflect globalization changes.
Bugs: Fixed sdk-28493, 28691,28494, 28345, 28320, 28387, 28314, 28145
Reviewer: Gordon Smith
Tests run: cyclone, checkintests, bugs testfiles
Is noteworthy for integration: Sort and Sortfield updated with globalization support using the new spark globalization sort classes.
Number and CurrencyValidators support national digits and unicode minus symbols.
groupingPattern property dropped for Number and Currency Validators.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="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/spark/src/spark/validators/supportClasses/NumberValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ICollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/bundles/en_US/validators.properties</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ListCollectionView.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/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/DefaultCubeImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/SortTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/SortTests.mxml</path>

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

--- frameworks/projects/spark/src/spark/collections/SortField.as
+++ frameworks/projects/spark/src/spark/collections/SortField.as
@@ -0,0 +1,844 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.collections
+{
+
+import flash.errors.IllegalOperationError;
+import flash.events.Event;
+import flash.events.EventDispatcher;
+
+import mx.collections.ISortField;
+import mx.collections.errors.SortError;
+import mx.core.UIComponent;
+import mx.managers.ISystemManager;
+import mx.managers.SystemManager;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+import mx.styles.AdvancedStyleClient;
+import mx.utils.ObjectUtil;
+
+import spark.globalization.SortingCollator;
+
+[ResourceBundle("collections")]
+
+/**
+ *  Provides the sorting information required to establish a sort on a field
+ *  or property in a collection view.
+ *  Typically the sort is defined for collections of complex items, that
+ *  is items in which the sort is performed on properties of those objects.
+ *  As in the following example:
+ *
+ *

+ *     var col:ICollectionView = new ArrayCollection();
+ *     col.addItem({first:"Anders", last:"Dickerson"});
+ *     var sort:ISort = new Sort();
+ *     var sortfield:ISortField = new SortField("first", true);
+ *     sortfield.setStyle("locale", "en-US");
+ *     sort.fields = [sortfield];
+ *     col.sort = sort;
+ *

+ *
+ *  There are situations in which the collection contains simple items, like
+ *  String, Date, Boolean, etc.
+ *  In this case, sorting should be applied to the simple type directly.
+ *  When constructing a sort for this situation only a single sort field is
+ *  required and should not have a name specified.
+ *  For example:
+ *
+ *

+ *     var col:ICollectionView = new ArrayCollection();
+ *     col.addItem("California");
+ *     col.addItem("Arizona");
+ *     var sort:ISort = new Sort();
+ *     var sortfield:ISortField = new SortField(null, true);
+ *     sortfield.setStyle("locale", "en-US");
+ *     sort.fields = [sortfield];
+ *     col.sort = sort;
+ *

+ *
+ *
The default comparison provided by the SortField class
+ *  provides correct language specific
+ *  sorting for strings. The language is selected by the setting the locale
+ *  style on an instance of the class in one of the following ways:
+ *

+ *

+ *

+ *  By using the class in an MXML declaration and inheriting the
+ *  locale from the document that contains the declaration.
+ *

+ *  Example:
+ *  <listing version="3.0" >
+ *  <fx:Declarations>

+ *         <s:SortField id="sf" />

+ *  </fx:Declarations>
+ *  </listing>
+ *

+ *  By using an MXML declaration and specifying the locale value
+ *  in the list of assignments.
+ *

+ *  Example:
+ *  <listing version="3.0" >
+ *  <fx:Declarations>

+ *      <s:SortField id="sf_SimplifiedChinese" locale="zh-Hans-CN" />

+ *  </fx:Declarations>
+ *  </listing>
+ *

+ *  Calling the setStyle method,
+ *  e.g. sf.setStyle("locale", "zh-Hans-CN")
+ *

+ *

+ *  Inheriting the style from a UIComponent by calling the
+ *  UIComponent's addStyleClient() method.
+ *

+ *

+ *
+
+ *  @mxml
+ *
+ *
The <s:SortField> tag has the following attributes:

+ *
+ *

+ *  <s:SortField
+ *  Properties
+ *  compareFunction="Internal compare function"
+ *  descending="false"
+ *  name="null"
+ *  numeric="null"
+ *  />
+ *

+ *
+ *  @see mx.collections.ICollectionView
+ *  @see spark.collections.Sort
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+ */
+public class SortField extends AdvancedStyleClient implements ISortField
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param name The name of the property that this field uses for
+     *              comparison.
+     *              If the object is a simple type, pass null.
+     *  @param descending Tells the comparator whether to arrange items in
+     *              descending order.
+     *  @param numeric Tells the comparator whether to compare sort items as
+     *              numbers, instead of alphabetically.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function SortField(name:String = null,
+                              descending:Boolean = false,
+                              numeric:Object = null)
+    {
+        super();
+
+        _name = name;
+        _descending = descending;
+        _numeric = numeric;
+        _compareFunction = stringCompare;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Used for accessing localized Error messages.
+     */
+    private var resourceManager:IResourceManager =
+                                    ResourceManager.getInstance();
+
+    /**
+     *  @private
+     *  Cache for "locale" style.
+     *
+     *  The code needs be able to find out if the locale style has been changed
+     *  from earlier.
+     */
+    private var localeStyle:* = undefined;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+    *  @inheritDoc
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 10.1
+    *  @playerversion AIR 2.5
+    *  @productversion Flex 4.5
+    */
+    public function get arraySortOnOptions():int
+    {
+        if (usingCustomCompareFunction
+            || name == null
+            || _compareFunction == xmlCompare
+            || _compareFunction == dateCompare)
+        {
+            return -1;
+        }
+        var options:int = 0;
+        if (descending) options |= Array.DESCENDING;
+        if (numeric == true || _compareFunction == numericCompare) options |= Array.NUMERIC;
+        return options;
+    }
+
+    //---------------------------------
+    //  compareFunction
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the compareFunction property.
+     */
+    private var _compareFunction:Function;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The function that compares two items during a sort of items for the
+     *  associated collection. If you specify a compareFunction
+     *  property in an ISort object, Flex ignores any
+     *  compareFunction properties of the ISort's SortField
+     *  objects.
+     *
The compare function must have the following signature:

+     *
+     *
function myCompare(a:Object, b:Object):int

+     *
+     *
This function must return the following values:

+     *
+     *

+     *
-1, if a should appear before b in
+     *        the sorted sequence

+     *
0, if a equals b

+     *
1, if a should appear after b in the
+     *        sorted sequence

+     *

+     *
+     *
The default value is an internal compare function that can perform
+     *  a string, numeric, or date comparison in ascending or descending order.
+     *  The string comparison is performed using the locale (language,
+     *  region and script) specific comparison method from the
+     *  SortingCollator class.
+     *  This class uses the locale style to determine a locale
+     *  Specify your own function only if you need a need a custom comparison
+     *  algorithm. This is normally only the case if a calculated field is
+     *  used in a display.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get compareFunction():Function
+    {
+        return _compareFunction;
+    }
+
+    /**
+     *  @private
+     */
+    public function set compareFunction(c:Function):void
+    {
+        _compareFunction = c;
+        _usingCustomCompareFunction = (c != null);
+    }
+
+    //---------------------------------
+    //  descending
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the descending property.
+     */
+    private var _descending:Boolean;
+
+    [Inspectable(category="General")]
+    [Bindable("descendingChanged")]
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get descending():Boolean
+    {
+        return _descending;
+    }
+
+    /**
+     *  @private
+     */
+    public function set descending(value:Boolean):void
+    {
+        if (_descending != value)
+        {
+            _descending = value;
+            dispatchEvent(new Event("descendingChanged"));
+        }
+    }
+
+    //---------------------------------
+    //  name
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the name property.
+     */
+    private var _name:String;
+
+    [Inspectable(category="General")]
+    [Bindable("nameChanged")]
+
+    /**
+     *  @inheritDoc
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get name():String
+    {
+        return _name;
+    }
+
+    /**
+     *  @private
+     */
+    public function set name(n:String):void
+    {
+        _name = n;
+        dispatchEvent(new Event("nameChanged"));
+    }
+
+    //---------------------------------
+    //  numeric
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the numeric property.
+     */
+    private var _numeric:Object;
+
+    [Inspectable(category="General")]
+    [Bindable("numericChanged")]
+
+    /**
+     *  @inheritDoc
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get numeric():Object
+    {
+        return _numeric;
+    }
+
+    /**
+     *  @private
+     */
+    public function set numeric(value:Object):void
+    {
+        if (_numeric != value)
+        {
+            _numeric = value;
+            dispatchEvent(new Event("numericChanged"));
+        }
+    }
+
+    //---------------------------------
+    //  usingCustomCompareFunction
+    //---------------------------------
+
+    private var _usingCustomCompareFunction:Boolean;
+
+    /**
+     *  @inheritDoc
+     *
+     *  @see @compareFunction
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get usingCustomCompareFunction():Boolean
+    {
+        return _usingCustomCompareFunction;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Detects changes to style properties. When any style property is set,
+     *  Flex calls the styleChanged() method,
+     *  passing to it the name of the style being set.
+     *
+     *  For the Collator class this method determines whether or not the
+     *  locale style has changed and if needed updates the instance of
+     *  the class to reflect this change. If the locale has been
+     *  updated the change event will be dispatched and
+     *  uses of the bindable methods or properties will be updated.
+     *
+     *  @param styleProp The name of the style property, or null if
+     *  all styles for this component have changed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        localeChanged();
+        super.styleChanged(styleProp);
+    }
+
+    /**
+     *  @private
+     *  A pretty printer for Sort that lists the sort fields and their
+     *  options.
+     */
+    override public function toString():String
+    {
+        return ObjectUtil.toString(this);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function initializeDefaultCompareFunction(obj:Object):void
+    {
+        // if the compare function is not already set then we can set it
+        if (!usingCustomCompareFunction)
+        {
+            if (numeric == true)
+                _compareFunction = numericCompare;
+            else
+            {
+                // we need to introspect the data a little bit
+                var value:Object;
+                if (_name)
+                {
+                    try
+                    {
+                        value = obj[_name];
+                    }
+                    catch(error:Error)
+                    {
+                    }
+                }
+                //this needs to be an == null check because !value will return true
+                //where value == 0 or value == false
+                if (value == null)
+                {
+                    value = obj;
+                }
+
+                var typ:String = typeof(value);
+                switch (typ)
+                {
+                    case "string":
+                        _compareFunction = stringCompare;
+                    break;
+                    case "object":
+                        if (value is Date)
+                        {
+                            _compareFunction = dateCompare;
+                        }
+                        else
+                        {
+                            _compareFunction = stringCompare;
+                            var test:String;
+                            try
+                            {
+                                test = value.toString();
+                            }
+                            catch(error2:Error)
+                            {
+                            }
+                            if (!test || test == "[object Object]")
+                            {
+                                _compareFunction = nullCompare;
+                            }
+                        }
+                    break;
+                    case "xml":
+                        _compareFunction = xmlCompare;
+                    break;
+                    case "boolean":
+                    case "number":
+                        _compareFunction = numericCompare;
+                    break;
+                }
+            }  // else
+        } // if
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function reverse():void
+    {
+        descending = !descending;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Private Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //---------------------------------
+    //  stringCollator
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Locale-aware string collator.
+     */
+    private var internalStringCollator:SortingCollator;
+
+    /**
+     *  @private
+     *  Locale-aware string collator
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    private function get stringCollator():SortingCollator
+    {
+        if (!internalStringCollator)
+        {
+            const locale:String = getStyle("locale");
+            if (!locale)
+                throw new IllegalOperationError("Undefined locale");
+            internalStringCollator = new SortingCollator();
+            internalStringCollator.setStyle("locale", locale);
+        }
+
+        return internalStringCollator;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Private Methods
+    //
+    //--------------------------------------------------------------------------
+
+    private function nullCompare(a:Object, b:Object):int
+    {
+        var value:Object;
+        var left:Object;
+        var right:Object;
+
+        var found:Boolean = false;
+
+        // return 0 (ie equal) if both are null
+        if (a == null && b == null)
+        {
+            return 0;
+        }
+
+        // we need to introspect the data a little bit
+        if (_name)
+        {
+            try
+            {
+                left = a[_name];
+            }
+            catch(error:Error)
+            {
+            }
+
+            try
+            {
+                right = b[_name];
+            }
+            catch(error:Error)
+            {
+            }
+        }
+
+        // return 0 (ie equal) if both are null
+        if (left == null && right == null)
+            return 0;
+
+        if (left == null && !_name)
+            left = a;
+
+        if (right == null && !_name)
+            right = b;
+
+
+        var typeLeft:String = typeof(left);
+        var typeRight:String = typeof(right);
+
+
+        if (typeLeft == "string" || typeRight == "string")
+        {
+                found = true;
+                _compareFunction = stringCompare;
+        }
+        else if (typeLeft == "object" || typeRight == "object")
+        {
+            if (left is Date || right is Date)
+            {
+                found = true;
+                _compareFunction = dateCompare
+            }
+        }
+        else if (typeLeft == "xml" || typeRight == "xml")
+        {
+                found = true;
+                _compareFunction = xmlCompare;
+        }
+        else if (typeLeft == "number" || typeRight == "number"
+                 || typeLeft == "boolean" || typeRight == "boolean")
+        {
+                found = true;
+                _compareFunction = numericCompare;
+        }
+
+        if (found)
+        {
+            return _compareFunction(left, right);
+        }
+        else
+        {
+            var message:String = resourceManager.getString(
+                "collections", "noComparatorSortField", [ name ]);
+            throw new SortError(message);
+        }
+    }
+
+    /**
+     *  Pull the numbers from the objects and call the implementation.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    private function numericCompare(a:Object, b:Object):int
+    {
+        var fa:Number;
+        try
+        {
+            fa = _name == null ? Number(a) : Number(a[_name]);
+        }
+        catch(error:Error)
+        {
+        }
+
+        var fb:Number;
+        try
+        {
+            fb = _name == null ? Number(b) : Number(b[_name]);
+        }
+        catch(error:Error)
+        {
+        }
+
+        return ObjectUtil.numericCompare(fa, fb);
+    }
+
+    /**
+     *  Pull the date objects from the values and compare them.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    private function dateCompare(a:Object, b:Object):int
+    {
+        var fa:Date;
+        try
+        {
+            fa = _name == null ? a as Date : a[_name] as Date;
+        }
+        catch(error:Error)
+        {
+        }
+
+        var fb:Date;
+        try
+        {
+            fb = _name == null ? b as Date : b[_name] as Date;
+        }
+        catch(error:Error)
+        {
+        }
+
+        return ObjectUtil.dateCompare(fa, fb);
+    }
+
+    /**
+     *  Pull the strings from the objects and call the implementation.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    private function stringCompare(a:Object, b:Object):int
+    {
+        var fa:String;
+        try
+        {
+            fa = _name == null ? String(a) : String(a[_name]);
+        }
+        catch(error:Error)
+        {
+        }
+
+        var fb:String;
+        try
+        {
+            fb = _name == null ? String(b) : String(b[_name]);
+        }
+        catch(error:Error)
+        {
+        }
+
+        return stringCollator.compare(fa, fb);
+    }
+
+    /**
+     *  Pull the values out fo the XML object, then compare
+     *  using the string or numeric comparator depending
+     *  on the numeric flag.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    private function xmlCompare(a:Object, b:Object):int
+    {
+        var sa:String;
+        try
+        {
+            sa = _name == null ? a.toString() : a[_name].toString();
+        }
+        catch(error:Error)
+        {
+        }
+
+        var sb:String;
+        try
+        {
+            sb = _name == null ? b.toString() : b[_name].toString();
+        }
+        catch(error:Error)
+        {
+        }
+
+        if (numeric == true)
+        {
+            return ObjectUtil.numericCompare(parseFloat(sa), parseFloat(sb));
+        }
+        else
+        {
+            return stringCollator.compare(sa, sb);
+        }
+    }
+
+    /**
+     *  @private
+     *  This method is called if a style is changed on the instances of
+     *  this formatter.
+     *
+     *  This method determines if the locale style has changed and if
+     *  so it updates the formatter to reflect this change.
+     *  If the locale has been updated the change event
+     *  will be dispatched and uses of the
+     *  bindable methods or properties will be updated.
+     */
+    private function localeChanged():void
+    {
+        const newlocaleStyle:* = getStyle("locale");
+
+        if (localeStyle === newlocaleStyle)
+            return;
+
+        localeStyle = newlocaleStyle;
+
+        if (internalStringCollator)
+        {
+            internalStringCollator.setStyle("locale", localeStyle);
+        }
+
+        dispatchEvent(new Event(Event.CHANGE));
+    }
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4486
Author:   chaase@adobe.com
Date:     2009-01-12T18:41:56.497953Z

Log Message:
-----------
Bitmap/shader transition feature, along with FxWipe and FxCrossFade, the two concrete effects based on this new shader-based transition infrastructure.

QE Notes: None
Doc Notes: None
Bugs:
Reviewer: Corey
Tests: checkintests, Mustella: Effects, gumbo/effects, ListDataEffects

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxCrossFade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxWipe.pbj</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxWipe.pbk</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateShaderTransitionInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxCrossFade.pbj</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxCrossFade.pbk</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/mx/effects/effectClasses/FxWipeInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxWipe.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/WipeDirection.as</path>

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

--- frameworks/projects/spark/src/spark/effects/WipeDirection.as
+++ frameworks/projects/spark/src/spark/effects/WipeDirection.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.effects
+{
+/**
+ *  The WipeDirection class defines the values
+ *  for the direction property of the FxWipe class.
+ *
+ *  @see mx.effects.FxWipe
+ */
+public class WipeDirection
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * Wipe direction that starts at the left and moves right
+     */
+    public static const RIGHT:String = "right";
+
+    /**
+     * Wipe direction that starts at the bottom and moves up
+     */
+    public static const UP:String = "up";
+
+    /**
+     * Wipe direction that starts at the right and moves left
+     */
+    public static const LEFT:String = "left";
+
+    /**
+     * Wipe direction that starts at the top and moves down
+     */
+    public static const DOWN:String = "down";
+}
+}


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

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

 package spark.skins.spark
 {


Better handling for embedded XML types

Better handling for embedded XML types

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
@@ -713,11 +713,24 @@
             }
             else if (children.length > 0 && (result is XML))
             {
+                var tempXML:XML;
+
                 // XML needs special handling as "embedded" XML
                 isNullObject = false;

-                var tempXML:XML = new XML((children[0] as XMLNode).toString());
-                isSimpleType = true;
+                if (children.length > 1)
+                {
+                    // if there's more than one child, use the element *itself*
+                    // as the root node. This will preserve any attributes on it
+                    tempXML = new XML(dataNode);
+                }
+                else
+                {
+                    // otherwise, grab the first child as the root
+                    tempXML = new XML((children[0] as XMLNode).toString());
+                }
+
+                isSimpleType = false;
                 result = tempXML;
             }
             else if (children.length == 0)


If CollisionShape trimesh or convex shape assigned without a collision model, try to get it from the StaticModel in the same node. Closes #769.

--- bin/Data/Scripts/Editor/EditorInspectorWindow.as
+++ bin/Data/Scripts/Editor/EditorInspectorWindow.as
@@ -546,6 +546,28 @@
         if (staticModel !is null)
             staticModel.ApplyMaterialList();
     }
+
+    // If a CollisionShape changed the shape type to trimesh or convex, and a collision model is not set,
+    // try to get it from a StaticModel in the same node
+    if (serializable.typeName == "CollisionShape" && serializable.attributeInfos[index].name == "Shape Type")
+    {
+        int shapeType = serializable.GetAttribute("Shape Type").GetInt();
+        if ((shapeType == 6 || shapeType == 7) && serializable.GetAttribute("CustomGeometry NodeID").GetInt() == 0 &&
+            serializable.GetAttribute("Model").GetResourceRef().name.Trimmed().length == 0)
+        {
+            Node@ ownerNode = cast<Component>(serializable).node;
+            if (ownerNode !is null)
+            {
+                StaticModel@ staticModel = ownerNode.GetComponent("StaticModel");
+                if (staticModel !is null)
+                {
+                    serializable.SetAttribute("Model", staticModel.GetAttribute("Model"));
+                    serializable.ApplyAttributes();
+                }
+            }
+        }
+    }
+
 }

 /// Store the IDs of the actual serializable objects into user-defined variable of the 'attribute editor' (e.g. line-edit, drop-down-list, etc).


update projection when the camera properties are updated

--- src/aerys/minko/scene/controller/camera/CameraController.as
+++ src/aerys/minko/scene/controller/camera/CameraController.as
@@ -5,8 +5,8 @@
 	import aerys.minko.scene.node.Camera;
 	import aerys.minko.scene.node.Scene;
 	import aerys.minko.type.data.DataBindings;
+	import aerys.minko.type.data.IDataProvider;
 	import aerys.minko.type.math.Matrix4x4;
-	import aerys.minko.type.math.Vector4;

 	public final class CameraController extends AbstractController
 	{
@@ -48,6 +48,7 @@
 			sceneBindings.addProvider(camera.cameraData);
 			sceneBindings.addCallback('viewportWidth', viewportSizeChanged);
 			sceneBindings.addCallback('viewportHeight', viewportSizeChanged);
+			camera.cameraData.changed.add(cameraPropertyChangedHandler);

 			updateProjection();
 		}
@@ -59,6 +60,7 @@
 			sceneBindings.removeProvider(camera.cameraData);
 			sceneBindings.removeCallback('viewportWidth', viewportSizeChanged);
 			sceneBindings.removeCallback('viewportHeight', viewportSizeChanged);
+			camera.cameraData.changed.remove(cameraPropertyChangedHandler);
 		}

 		private function worldToLocalChangedHandler(worldToLocal : Matrix4x4, propertyName : String) : void
@@ -77,6 +79,11 @@
 		}

 		private function viewportSizeChanged(bindings : DataBindings, key : String, newValue : Object) : void
+		{
+			updateProjection();
+		}
+
+		private function cameraPropertyChangedHandler(provider : IDataProvider, property : String) : void
 		{
 			updateProjection();
 		}


Adding missing function implementation caught by asdoc.

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/staticControls/beads/models/StringSelectionModel.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/staticControls/beads/models/StringSelectionModel.as
@@ -97,5 +97,20 @@
 			}
 			dispatchEvent(new Event("selectedItemChanged"));
 		}
+
+
+		private var _labelField:String;
+
+		public function get labelField():String
+		{
+			return _labelField;
+		}
+		public function set labelField(value:String):void
+		{
+			if (value != _labelField) {
+				_labelField = value;
+				dispatchEvent(new Event("labelFieldChanged"));
+			}
+		}
 	}
 }


Fix issue with unwrapped negative DTS dropping PES packets.

--- HLSPlugin/src/com/kaltura/hls/m2ts/PESProcessor.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/PESProcessor.as
@@ -357,9 +357,9 @@
                 {
                     CONFIG::LOGGING
                     {
-                        logger.warn("WARNING: parsePESPacket - invalid decode timestamp, skipping");
-                    }
-                    return true;
+                        logger.warn("WARNING: parsePESPacket - invalid decode timestamp? DTS="  + dts);
+                    }
+                    //return true;
                 }

                 pes = new PESPacketStream();


Transferred from the Adobe Open Source Subversion Repository

Revision: 88
Author:   open-source-svn-admin@adobe.com
Date:     2008-01-03T22:47:56.499469Z

Log Message:
-----------
Perforce Change 191925 by proberts@proberts-laptop-flex on 2008/01/03 16:47:12 Severity: ignore Details: doc additions/clean up for FlexNativeMenu. Also FLEXDOCS-320 (update documentation for FlexNativeMenuEvent.MENU_SHOW to explain that the index, label, and item properties are null) Affected files ...

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/air/air_version.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/NoChannelAvailableError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/DirectHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessagingError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/InvalidChannelError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Channel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXContext.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/NetConnectionChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/Grammar.jj</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/InvalidDestinationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXResult.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractMessageStore.as</path>

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

--- frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as
+++ frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as
@@ -4594,6 +4594,8 @@
      */
     protected function UIDToItemRenderer(uid:String):IListItemRenderer
     {
+		if (!listContent) return null;
+
         return visibleData[uid];
     }

@@ -6359,6 +6361,7 @@
                             anchorIndex = index;
                             anchorBookmark = collectionIterator.bookmark;
                         }
+						items.splice(i, 1);
                         break;
                     }

@@ -6374,7 +6377,7 @@
                 catch(e2:ItemPendingError)
                 {
                     e2.addResponder(new ItemResponder(selectionDataPendingResultHandler, selectionDataPendingFailureHandler,
-                                                            new ListBaseSelectionDataPending(false, index, items, CursorBookmark.CURRENT, 1)));
+                                                            new ListBaseSelectionDataPending(false, index, items, CursorBookmark.FIRST, index)));
                     return;
                 }
             }
@@ -7505,13 +7508,13 @@
     /**
      *  @private
      */
-    private function selectionDataPendingResultHandler(
+    mx_internal function selectionDataPendingResultHandler(
                                     data:Object,
                                     info:ListBaseSelectionDataPending):void
     {
         // trace("selectionDataPendingResultHandler", this);
         if (info.bookmark)
-            iterator.seek(info.bookmark, info.offset);
+            collectionIterator.seek(info.bookmark, info.offset);
         setSelectionDataLoop(info.items, info.index, info.useFind);
     }

@@ -8497,8 +8500,16 @@
             anchorIndex += length;

             placeHolder = iterator.bookmark;
-            iterator.seek(CursorBookmark.FIRST, anchorIndex);
-            anchorBookmark = iterator.bookmark;
+			try
+			{
+				iterator.seek(CursorBookmark.FIRST, anchorIndex);
+				anchorBookmark = iterator.bookmark;
+			}
+			catch (e:ItemPendingError)
+			{
+				e.addResponder(new ItemResponder(setBookmarkPendingResultHandler, setBookmarkPendingFailureHandler,
+								{ property: "anchorBookmark", value: anchorIndex } ));
+			}
             iterator.seek(placeHolder);
         }

@@ -8507,8 +8518,16 @@
             caretIndex += length;

             placeHolder = iterator.bookmark;
-            iterator.seek(CursorBookmark.FIRST, caretIndex);
-            caretBookmark = iterator.bookmark;
+			try
+			{
+				iterator.seek(CursorBookmark.FIRST, caretIndex);
+				caretBookmark = iterator.bookmark;
+			}
+			catch (e:ItemPendingError)
+			{
+				e.addResponder(new ItemResponder(setBookmarkPendingResultHandler, setBookmarkPendingFailureHandler,
+								{ property: "caretBookmark", value: caretIndex } ));
+			}
             iterator.seek(placeHolder);
         }

@@ -8562,8 +8581,16 @@
             anchorIndex -= length;

             placeHolder = iterator.bookmark;
-            iterator.seek(CursorBookmark.FIRST, anchorIndex);
-            anchorBookmark = iterator.bookmark;
+			try
+			{
+				iterator.seek(CursorBookmark.FIRST, anchorIndex);
+				anchorBookmark = iterator.bookmark;
+			}
+			catch (e:ItemPendingError)
+			{
+				e.addResponder(new ItemResponder(setBookmarkPendingResultHandler, setBookmarkPendingFailureHandler,
+								{ property: "anchorBookmark", value: anchorIndex } ));
+			}
             iterator.seek(placeHolder);
         }

@@ -8572,12 +8599,51 @@
             caretIndex -= length;

             placeHolder = iterator.bookmark;
-            iterator.seek(CursorBookmark.FIRST, caretIndex);
-            caretBookmark = iterator.bookmark;
+			try
+			{
+				iterator.seek(CursorBookmark.FIRST, caretIndex);
+				caretBookmark = iterator.bookmark;
+			}
+			catch (e:ItemPendingError)
+			{
+				e.addResponder(new ItemResponder(setBookmarkPendingResultHandler, setBookmarkPendingFailureHandler,
+								{ property: "caretBookmark", value: caretIndex } ));
+			}
             iterator.seek(placeHolder);
         }

         return requiresValueCommit;
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function setBookmarkPendingFailureHandler(data:Object,
+                                                 info:Object):void
+    {
+    }
+
+    /**
+     *  @private
+     */
+    mx_internal function setBookmarkPendingResultHandler(data:Object,
+                                                info:Object):void
+    {
+        var placeHolder:CursorBookmark;
+
+        placeHolder = iterator.bookmark;
+        try
+        {
+            iterator.seek(CursorBookmark.FIRST, info.value);
+			this[info.property] = iterator.bookmark;
+        }
+        catch(e:ItemPendingError)
+        {
+			e.addResponder(new ItemResponder(setBookmarkPendingResultHandler, setBookmarkPendingFailureHandler,
+						info ));
+        }
+        iterator.seek(placeHolder);
+
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 19197
Author:   aharui@adobe.com
Date:     2010-12-09T05:34:50.710767Z

Log Message:
-----------
Deal with an IPE situation.  Partial credit to Matthew Frederes

QE notes: Probably need some more IPE tests.
Doc notes: none
Bugs: SDK-21738
Reviewer: Corey
Tests run: checkintests mustella full run
Is noteworthy for integration: no

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

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

--- frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as
+++ frameworks/projects/mx/src/mx/controls/listClasses/ListBase.as
@@ -1789,9 +1789,8 @@
         listContent.bottomOffset = (offscreenExtraRowsBottom > 0) ?
             listItems[listItems.length-1][0].y + rowHeight - oldContentHeight + listContent.topOffset :
             0;
-
-        if (iteratorValid)
-            iterator.seek(cursorPos, 0);
+
+        seekPositionIgnoreError(iterator, cursorPos);

         // make sure list content is moved to the appropriate place.
         // might be able to optimize and not do this every time


OFC-895 - Incorrect error message for missing required single values

--- collect-client/src/main/flex/org/openforis/collect/ui/component/detail/ValidationDisplayManager.as
+++ collect-client/src/main/flex/org/openforis/collect/ui/component/detail/ValidationDisplayManager.as
@@ -129,10 +129,10 @@
 			if(minCountValid != ValidationResultFlag.OK || maxCountValid != ValidationResultFlag.OK) {
 				if(minCountValid != ValidationResultFlag.OK) {
 					flag = minCountValid;
-					if ( defn.minCount > 0 ) {
+					if ( defn.minCount == 1 ) {
+						validationMessages = [Message.get("edit.validation.requiredField")];
+					} else {
 						validationMessages = [Message.get("edit.validation.minCount", [defn.minCount])];
-					} else {
-						validationMessages = [Message.get("edit.validation.requiredField")];
 					}
 				} else {
 					flag = maxCountValid;


Transferred from the Adobe Open Source Subversion Repository

Revision: 3057
Author:   jimurphy@adobe.com
Date:     2008-09-02T15:18:38.819662Z

Log Message:
-----------
Merged 3.0.x revisions [2966,2969,2995,3004,3018-3019,3023,3029-3030,3046,3049,3052] -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/ModalWindowRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/dragClasses/DragProxy.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterDragManagerEvent.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/PopUpRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SWFBridgeEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.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/controls/sliderClasses/SliderThumb.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/DividedBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SizeRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/InterManagerRequest.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/InterManagerRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FocusRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/dividedBoxClasses/BoxDivider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootDragEvent.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/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/SandboxMouseEvent.as" copyfrom-rev="3052" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxMouseEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootRequest.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/EventUtil.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/SandboxRootMouseEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</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/frameworks/projects/framework/src/mx/controls/sliderClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</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/events/SWFBridgeRequest.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Button.as
+++ frameworks/projects/mx/src/mx/controls/Button.as
@@ -43,7 +43,7 @@
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.events.MoveEvent;
-import mx.events.SandboxRootMouseEvent;
+import mx.events.SandboxMouseEvent;
 import mx.managers.IFocusManagerComponent;
 import mx.managers.ISystemManager;
 import mx.states.State;
@@ -2520,7 +2520,7 @@
         systemManager.getSandboxRoot().removeEventListener(
             MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true);
         systemManager.getSandboxRoot().removeEventListener(
-            SandboxRootMouseEvent.MOUSE_UP_SOMEWHERE, stage_mouseLeaveHandler);
+            SandboxMouseEvent.MOUSE_UP_SOMEWHERE, stage_mouseLeaveHandler);

         if (autoRepeatTimer)
         {
@@ -2744,7 +2744,7 @@
         systemManager.getSandboxRoot().addEventListener(
             MouseEvent.MOUSE_UP, systemManager_mouseUpHandler, true);
         systemManager.getSandboxRoot().addEventListener(
-            SandboxRootMouseEvent.MOUSE_UP_SOMEWHERE, stage_mouseLeaveHandler);
+            SandboxMouseEvent.MOUSE_UP_SOMEWHERE, stage_mouseLeaveHandler);

         buttonPressed();


Transferred from the Adobe Open Source Subversion Repository

Revision: 18519
Author:   deeptika@adobe.com
Date:     2010-11-10T11:43:34.250537Z

Log Message:
-----------
Changing priority of an event listener because we want to record select event before editor comes up.

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGridAutomationImpl.as

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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGridAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGridAutomationImpl.as
@@ -99,7 +99,7 @@
 			updateItemRenderers();
 			obj.addEventListener(Event.ADDED, childAddedHandler, false, 0, true);
 			obj.addEventListener(GridEvent.GRID_DOUBLE_CLICK, recordAutomatableEvent, false, 0 , true);
-			obj.grid.addEventListener(GridEvent.GRID_MOUSE_UP, gridMouseUpHandler, false, 100, true);
+			obj.grid.addEventListener(GridEvent.GRID_MOUSE_UP, gridMouseUpHandler, false, 1001, true);
 			obj.addEventListener(GridEvent.SEPARATOR_MOUSE_UP, columnStretchHandler, false, 0, true);
 			obj.addEventListener(GridEvent.GRID_CLICK, gridClickHandler, false, 0 , true);
 			obj.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler, false, 0, true);


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

--- frameworks/projects/charts/src/mx/charts/series/ColumnSeries.as
+++ frameworks/projects/charts/src/mx/charts/series/ColumnSeries.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.charts.series
 {