Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/effects/easing/Bounce.as
+++ frameworks/projects/framework/src/mx/effects/easing/Bounce.as
@@ -17,6 +17,11 @@
  *  bounce motion with Flex effect classes.
  *
  *  For more information, see http://www.robertpenner.com/profmx.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class Bounce
 {
@@ -41,6 +46,11 @@
      *  @param d Specifies the duration of the effect, in milliseconds.
      *
      *  @return Number corresponding to the position of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function easeOut(t:Number, b:Number,
                                    c:Number, d:Number):Number
@@ -71,6 +81,11 @@
      *  @param d Specifies the duration of the effect, in milliseconds.
      *
      *  @return Number corresponding to the position of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function easeIn(t:Number, b:Number,
                                   c:Number, d:Number):Number
@@ -92,6 +107,11 @@
      *  @param d Specifies the duration of the effect, in milliseconds.
      *
      *  @return Number corresponding to the position of the component.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public static function easeInOut(t:Number, b:Number,
                                      c:Number, d:Number):Number


Transferred from the Adobe Open Source Subversion Repository

Revision: 10329
Author:   klin@adobe.com
Date:     2009-09-16T22:34:04.580675Z

Log Message:
-----------
Various small fixes

SDK-23047 - Added Inspectable metadata to popUpPosition allowing it to code hint.

SDK-23057 - "icons" property in mx:Button is now protected to allow for override of related functions.

SDK-22445 - Changed HostComponents on ButtonBarButton skins for both spark and wireframe.

SDK-22583 - Removed wireframe directory from \frameworks\projects\wireframe\src\.

SDK-22884 - Updated itemRenderer to make use of DataGroup's mapping of unique indices to data. This fixes the issue with duplicate data and alternating items color.

QE Notes: None
Doc Notes: None
Bugs: SDK-23047, SDK-23057, SDK-22445, SDK-22583, SDK-22884
Reviewer: Glenn
API Change: No
Is noteworthy for integration: FB
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/wireframe/src/wireframe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarFirstButtonSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/PopUpAnchor.as
+++ frameworks/projects/spark/src/spark/components/PopUpAnchor.as
@@ -282,6 +282,8 @@

     private var _popUpPosition:String = PopUpPosition.TOP_LEFT;

+    [Inspectable(category="General", enumeration="left,right,above,below,center,topLeft", defaultValue="topLeft")]
+
     /**
      *  Position of the popUp control when it is opened, relative
      *  to the PopUpAnchor component.


Fixed rectangle intersection code in collideRect().

--- net/flashpunk/Entity.as
+++ net/flashpunk/Entity.as
@@ -230,8 +230,8 @@
 		public function collideRect(x:Number, y:Number, rX:Number, rY:Number, rWidth:Number, rHeight:Number):Boolean
 		{
 			if (!collidable) return false;
-			if (x - originX + width > rX && y - originY + height > rY
-			&& x - originX < rX - rWidth && y - originY < rY - rHeight)
+			if (x - originX + width >= rX && y - originY + height >= rY
+			&& x - originX <= rX + rWidth && y - originY <= rY + rHeight)
 			{
 				if (!_mask) return true;
 				_x = this.x; _y = this.y;


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

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


Transferred from the Adobe Open Source Subversion Repository

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

 package mx.rpc.soap.types
 {


def: 4775 fix disabled media after calling clean media twice

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@86666 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
+++ kdp3Lib/src/com/kaltura/kdpfl/view/media/KMediaPlayerMediator.as
@@ -395,6 +395,7 @@
 					if (!_mediaProxy.vo.isMediaDisabled)
 					{
 						sendNotification( NotificationType.ENABLE_GUI , {guiEnabled : false , enableType : EnableType.CONTROLS} );
+						_mediaProxy.vo.isMediaDisabled = true;
 					}
 					break;
 				case NotificationType.DO_SWITCH:


Add a TIMER constant for events.

Add a TIMER constant for events.

--- frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Timer.as
+++ frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Timer.as
@@ -59,6 +59,14 @@
 public class Timer extends flash.utils.Timer
 {
     /**
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public static const TIMER:String = "timer";
+    /**
      *  Constructor.
      *
      *  @param delay The number of milliseconds
@@ -90,6 +98,15 @@
 COMPILE::JS
 public class Timer extends EventDispatcher
 {
+
+    /**
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public static const TIMER:String = "timer";
     /**
      *  Constructor.
      *


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

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


update default augbubble icon

update default augbubble icon

--- flexEditor/src/org/arisgames/editor/util/AppConstants.as
+++ flexEditor/src/org/arisgames/editor/util/AppConstants.as
@@ -139,7 +139,7 @@
     public static const DEFAULT_ICON_MEDIA_ID_ITEM:Number = 2;
     public static const DEFAULT_ICON_MEDIA_ID_PLAQUE:Number = 3;
 	public static const DEFAULT_ICON_MEDIA_ID_WEBPAGE:Number = 4;
-	public static const DEFAULT_ICON_MEDIA_ID_AUGBUBBLE:Number = 2;
+	public static const DEFAULT_ICON_MEDIA_ID_AUGBUBBLE:Number = 5;

 	// Palette Tree Stuff
 	public static const PALETTE_TREE_SELF_FOLDER_ID:Number = 0;


Updates capitalization in "uploadHandler.php" to match filename. This was exposed on a linux machine which is case sensitive.

--- flexEditor/src/org/arisgames/editor/util/AppConstants.as
+++ flexEditor/src/org/arisgames/editor/util/AppConstants.as
@@ -4,23 +4,23 @@
 {
 	//Server URL
 	//public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://arisgames.org/stagingserver1"; //For other URL's to append to- Staging
-	public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://Phildos.local/server"; //For other URL's to append to- Phil's Machine
+	//public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://Phildos.local/server"; //For other URL's to append to- Phil's Machine
 	//public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://atsosxdev.doit.wisc.edu/aris/server"; //For other URL's to append to- Dev
 	//public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://arisgames.org/qaserver"; //For other URL's to append to- QA
-
+	public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://warhol.arisgames.org/devserver";

 	//Server Version
 	public static const APPLICATION_ENVIRONMENT_SERVER_VERSION:String = "1_5";

 	public static const APPLICATION_ENVIRONMENT_JSON_SERVICES_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/json.php/aris_" + APPLICATION_ENVIRONMENT_SERVER_VERSION + ".";
 	public static const APPLICATION_ENVIRONMENT_SERVICES_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/services/aris_" + APPLICATION_ENVIRONMENT_SERVER_VERSION + "/"; //staging
-	public static const APPLICATION_ENVIRONMENT_UPLOAD_SERVER_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/services/aris_" + APPLICATION_ENVIRONMENT_SERVER_VERSION + "/uploadhandler.php";
+	public static const APPLICATION_ENVIRONMENT_UPLOAD_SERVER_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/services/aris_" + APPLICATION_ENVIRONMENT_SERVER_VERSION + "/uploadHandler.php";
 	public static const APPLICATION_ENVIRONMENT_GATEWAY_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/gateway.php"; //services-config.xml

 	//Google API
-	//public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAA-Z69V9McvCh02XYNV5UHBBRloMOfjiI7F4SM41AgXh_4cb6l9xTHRyPNO3mgDcJkTIE742EL8ZoQ_Q"; //arisgames.org
+	public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAA-Z69V9McvCh02XYNV5UHBBRloMOfjiI7F4SM41AgXh_4cb6l9xTHRyPNO3mgDcJkTIE742EL8ZoQ_Q"; //arisgames.org
 	//public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAArdp0t4v0pcA_JogLZhjrjBTf4EykMftsP7dwAfDsLsFl_zB7rBTq5-3Hy0k3tU1tgyomozB1YmIfNg"; //davembp
-	public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAAo0AIYqWK4StlyQiw0FkCnhTFFMM2iSZ1Oq9cs2gegUR1k01AuBShe9g60gh2q1UpWRotcj3RpzpT2A"; //Phil's Machine
+	//public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAAo0AIYqWK4StlyQiw0FkCnhTFFMM2iSZ1Oq9cs2gegUR1k01AuBShe9g60gh2q1UpWRotcj3RpzpT2A"; //Phil's Machine
 	//public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAA-Z69V9McvCh02XYNV5UHBBQsvlSBtAWfm4N2P3iTGfWOp-UrmRRTU3pFPQwMJB92SZ3plLjvRpMIIw"; //atsosxdev


Transferred from the Adobe Open Source Subversion Repository

Revision: 22809
Author:   tkraikit@adobe.com
Date:     2011-09-29T21:37:35.800090Z

Log Message:
-----------
Reverting 4.y svn 22792 -- fix was for Ultra only, not Mega.

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

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

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

     [Bindable("hide")]
     [Bindable("show")]
-    [Bindable("creationComplete")]
     [Inspectable(category="General", defaultValue="true")]

     /**


setFocus() in showSubMenu()

setFocus() in showSubMenu()

Change-Id: I88c77bdcb5a95a6c719da3bed3e671ad8c87a2c0

--- WeaveUI/src/weave/ui/SubMenu.as
+++ WeaveUI/src/weave/ui/SubMenu.as
@@ -179,6 +179,7 @@
 				menuLocation.y -= height + _uiParent.height;

 			move(menuLocation.x, menuLocation.y);
+			setFocus();
 		}

 		private function isItemShown(item:SubMenuItem, ..._):Boolean


Correction: Menu.show() may put SystemManager in an unusable state, not
SessionManager

Change-Id: I770635a0706c16d48346f7a0e6d5f3f5b2fb8140

--- WeaveUI/src/weave/ui/SubMenu.as
+++ WeaveUI/src/weave/ui/SubMenu.as
@@ -167,7 +167,7 @@
 			if ((collection && collection.length == 0) || (parentMenu && !parentMenu.visible) || visible)
 				return;

-			// fixes a bug where super.show() may put SessionManager in an unusable state
+			// fixes a bug where super.show() may put SystemManager in an unusable state
 			if (mx_internal::parentDisplayObject)
 			{
 				PopUpManager.addPopUp(this, mx_internal::parentDisplayObject, false);


Transferred from the Adobe Open Source Subversion Repository

Revision: 20843
Author:   mhorn@adobe.com
Date:     2011-03-14T14:36:04.836183Z

Log Message:
-----------
merge

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>

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

--- frameworks/projects/framework/src/mx/collections/ISortField.as
+++ frameworks/projects/framework/src/mx/collections/ISortField.as
@@ -30,14 +30,11 @@
     //--------------------------------------------------------------------------

     /**
-     *  This helper property is used internally the Array.sortOn method by
-     *  the Sort class. Other uses of this property are not
+     *  This helper property is used internally the findItem() and sort() methods. Other uses of this property are not
      *  supported.
-     *  Return -1 if this ISortField shouldn't be used by the Sort
-     *  class to sort the field.
+     *  Returns -1 if this ISortField shouldn't be used by the Sort
+     *  class to sort the field (there is no compareFunction or no name). Otherwise, returns a bitmask of sort options..
      *
-     *
-     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -55,7 +52,7 @@
      *
      *
function myCompare(a:Object, b:Object):int

      *
-     *
This function must return the following values:

+     *
This function returns the following values:

      *
      *

      *
-1, if a should appear before b in
@@ -77,7 +74,7 @@
      *  Specifies whether this field should be sorted in descending
      *  order.
      *
-     *
 The default value is false (ascending).

+     *
The default value is false (ascending).

      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -176,7 +173,7 @@
      *  If the field was sorted in descending order, for example, sort it
      *  in ascending order.
      *
-     *
Note: an ICollectionView does not automatically
+     *
NOTE: An ICollectionView does not automatically
      *  update when the ISortFields are modified; call its
      *  refresh() method to update the view.

      *


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

--- frameworks/projects/framework/src/mx/styles/StyleProtoChain.as
+++ frameworks/projects/framework/src/mx/styles/StyleProtoChain.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2004-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.styles
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5151
Author:   egeorgie@adobe.com
Date:     2009-03-03T19:27:14.616237Z

Log Message:
-----------
Minor private comment fix for FxToggleButton.

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

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxToggleButton.as

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

--- frameworks/projects/spark/src/spark/components/ToggleButton.as
+++ frameworks/projects/spark/src/spark/components/ToggleButton.as
@@ -132,7 +132,7 @@

     /**
      *  @private
-     *  Storage for the allowDeselection property
+     *  Storage for the selected property
      */
     private var _selected:Boolean;


Register the character sprite appropriately so we can be hit-test against on mouseover.

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@958 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/stage/client/CharacterIsoSprite.as
+++ src/as/com/threerings/stage/client/CharacterIsoSprite.as
@@ -27,15 +27,17 @@
 import com.threerings.media.Tickable;
 import com.threerings.media.util.Path;
 import com.threerings.media.util.Pathable;
+import com.threerings.miso.client.PriorityIsoDisplayObject;
 import com.threerings.miso.util.MisoSceneMetrics;
 import com.threerings.miso.util.MisoUtil;
 import com.threerings.stage.data.StageLocation;

 import as3isolib.display.IsoSprite;
+import as3isolib.display.scene.IsoScene;
 import as3isolib.graphics.SolidColorFill;

 public class CharacterIsoSprite extends IsoSprite
-    implements Pathable
+    implements Pathable, PriorityIsoDisplayObject
 {
     public function CharacterIsoSprite (bodyOid :int, metrics :MisoSceneMetrics,
         charSprite :CharacterSprite)
@@ -55,6 +57,8 @@
         _character = charSprite;

         sprites = [wrapper];
+
+        autoUpdate = true;
     }

     public function tick (tickStamp :int) :void
@@ -64,7 +68,9 @@
                 _pathStamp = tickStamp
                 _path.init(this, _pathStamp);
             }
-            _path.tick(this, tickStamp);
+            if (_path != null) {
+                _path.tick(this, tickStamp);
+            }
         }
         _character.tick(tickStamp);
     }
@@ -98,13 +104,11 @@
     public function setLocation (x :Number, y :Number) :void
     {
         moveTo(x, y, 0);
-        render();
     }

     public function setOrientation (orient :int) :void
     {
         _character.setOrientation(toIsoOrient(orient));
-        render();
     }

     public function toIsoOrient (orient :int) :int
@@ -172,6 +176,16 @@
         }
     }

+    public function getPriority () :int
+    {
+        return 0;
+    }
+
+    public function hitTest (stageX :int, stageY :int) :Boolean
+    {
+        return _character == null ? false : _character.hitTest(stageX, stageY);
+    }
+
     protected var _bodyOid :int;

     protected var _metrics :MisoSceneMetrics;


Added simple freelook camera controls to NinjaSnowWar server when run with rendering enabled. Disabled the status overlay from NinjaSnowWar server.

--- Bin/Data/Scripts/NinjaSnowWar.as
+++ Bin/Data/Scripts/NinjaSnowWar.as
@@ -218,7 +218,7 @@

 void CreateOverlays()
 {
-    if (engine.headless)
+    if (engine.headless || runServer)
         return;

     int height = graphics.height / 22;
@@ -420,10 +420,6 @@

 void HandlePostUpdate()
 {
-    // Not necessary on the server
-    if (runServer)
-        return;
-
     UpdateCamera();
     UpdateStatus();
 }
@@ -811,6 +807,17 @@

 void UpdateCamera()
 {
+    if (engine.headless)
+        return;
+
+    // On the server, use a simple freelook camera
+    if (runServer)
+    {
+        UpdateFreelookCamera();
+        return;
+    }
+
+
     Node@ playerNode = FindOwnNode();
     if (playerNode is null)
         return;
@@ -843,9 +850,33 @@
     audio.listenerRotation = dir;
 }

+void UpdateFreelookCamera()
+{
+    float timeStep = time.timeStep;
+    float speedMultiplier = 1.0;
+    if (input.keyDown[KEY_LSHIFT])
+        speedMultiplier = 5.0;
+    if (input.keyDown[KEY_LCTRL])
+        speedMultiplier = 0.1;
+
+    if (input.keyDown['W'])
+        gameCameraNode.TranslateRelative(Vector3(0, 0, 1000) * timeStep * speedMultiplier);
+    if (input.keyDown['S'])
+        gameCameraNode.TranslateRelative(Vector3(0, 0, -1000) * timeStep * speedMultiplier);
+    if (input.keyDown['A'])
+        gameCameraNode.TranslateRelative(Vector3(-1000, 0, 0) * timeStep * speedMultiplier);
+    if (input.keyDown['D'])
+        gameCameraNode.TranslateRelative(Vector3(1000, 0, 0) * timeStep * speedMultiplier);
+
+    playerControls.yaw += mouseSensitivity * input.mouseMoveX;
+    playerControls.pitch += mouseSensitivity * input.mouseMoveY;
+    playerControls.pitch = Clamp(playerControls.pitch, -90, 90);
+    gameCameraNode.rotation = Quaternion(playerControls.pitch, playerControls.yaw, 0);
+}
+
 void UpdateStatus()
 {
-    if (engine.headless)
+    if (engine.headless || runServer)
         return;

     if (singlePlayer)


Don't try to do drag/drop on non-Sprites.

--- flash/ExampleCode.as
+++ flash/ExampleCode.as
@@ -161,8 +161,10 @@
     }

 		private function beginDrag(e:MouseEvent):void {
-      DOMEventDrag.startDrag(spr);
-      //spr.startDrag();
+      if (e.target is Sprite) {
+        DOMEventDrag.startDrag(spr);
+        //spr.startDrag();
+      }
     }
     private function doDrag(e:MouseEvent):void {
       if (draggable) {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12397
Author:   jszeto@adobe.com
Date:     2009-12-02T23:43:40.649644Z

Log Message:
-----------
BorderContainer ASDoc change

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/BorderContainer.as

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

--- frameworks/projects/spark/src/spark/components/BorderContainer.as
+++ frameworks/projects/spark/src/spark/components/BorderContainer.as
@@ -18,9 +18,9 @@

 /**
  *  Background image of a container.
- *  You can have both a backgroundColor and a
- *  backgroundImage set at the same time.
- *  The background image is displayed on top of the background color.
+ *  If you have both a backgroundColor and a
+ *  backgroundImage set at the same time,  backgroundColor
+ *  is ignored.
  *  The default value is undefined, meaning "not set".
  *  If this style and the backgroundColor style are undefined,
  *  the component has a transparent background.


Transferred from the Adobe Open Source Subversion Repository

Revision: 17973
Author:   dloverin@adobe.com
Date:     2010-09-30T22:28:57.338114Z

Log Message:
-----------
First delivery of DataGrid editor code.

Still a ways to go to get it ready for testing and get the APIs correct.

QE notes: Not ready for testing.
Doc notes: None.
Bugs:
Reviewer: Hans, Alex (FocusManager)
Tests run: cyclone server
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/IGridItemEditor.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/DataGridEditEvent.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/spark/src/spark/components/gridClasses/TextGridItemEditor.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/DataGridEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/ComboBoxGridItemEditor.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>

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

--- frameworks/projects/spark/src/spark/events/GridItemEditorEvent.as
+++ frameworks/projects/spark/src/spark/events/GridItemEditorEvent.as
@@ -0,0 +1,344 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 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.events
+{
+import flash.events.Event;
+
+import spark.components.IGridItemEditor;
+import spark.components.supportClasses.GridColumn;
+
+/**
+ *  The DatGridEditEvent class represents events that are dispatched over
+ *  the life cycle of an item editor.
+ *
+ *
The life cycle starts with the dispatch of an
+ *  START_GRID_ITEM_EDITOR_SESSION event. This event may be cancelled by a
+ *  listener to stop the creation of an editing session.

+ *
+ *
Next, after the editor is opened the OPEN_GRID_ITEM_EDITOR_SESSION
+ *  is dispatched to notify listeners that the editor has been opened.

+ *
+ *
The editing session can be saved or cancelled. If the session is saved
+ *  then the SAVE_GRID_ITEM_EDITOR_SESSION event is dispatched.
+ *  If the editor is cancelled a CANCEL_GRID_ITEM_EDITOR_SESSION
+ *  event is dispatched.
+ *

+ *
+ *  @see spark.components.DataGrid
+ *  @see spark.components.IGridItemEditor
+ *  @see spark.components.supportClasses.GridColumn;
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+public class DataGridEditEvent extends Event
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The DataGridEditEvent.START_GRID_ITEM_EDITOR_SESSION
+     *  constant defines the value of the type property of the
+     *  event object for a startGridItemEditorSession event.
+     *  This event is dispatch by the data grid when a new item editor
+     *  session has been requested. A listener can dynamically determine
+     *  if a cell is editable and cancel the edit if it is not. A listener
+     *  may also dynamically change the editor that will be used by assigning a
+     *  different item editor to a column.
+     *
+     *
If this event is cancelled the item editor will not be created.

+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	true

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
columnIndex	The zero-based column
+     *       index of the requested item editor.

+     *
rowIndex	The zero-based row index
+     *        of the requested item editor.

+     *
column	The column of the cell associated
+     *     with the edit request.
+     *

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *
type
+     *     DataGridEditEvent.START_GRID_ITEM_EDITOR_SESSION

+     *

+     *
+     *  @eventType startGridItemEditorSession
+     *
+     *  @see spark.components.supportClasses.GridColumn;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public static const START_GRID_ITEM_EDITOR_SESSION:String = "startGridItemEditorSession";
+
+    /**
+     *  The DataGridEditEvent.OPEN_GRID_ITEM_EDITOR_SESSION
+     *  constant defines the value of the type property of the
+     *  event object for a openGridItemEditor event.
+     *  This event is dispatch by the data grid after an item editor has
+     *  been opened for a cell.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
columnIndex	The zero-based column
+     *       index of the item editor.

+     *
rowIndex	The zero-based row index
+     *        of the item editor.

+     *
column	The column of the cell that is
+     *     being edited.
+     *

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *
type
+     *     DataGridEditEvent.OPEN_GRID_ITEM_EDITOR_SESSION

+     *

+     *
+     *  @eventType openGridItemEditor
+     *
+     *  @see spark.components.supportClasses.GridColumn;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public static const OPEN_GRID_ITEM_EDITOR_SESSION:String = "openGridItemEditor";
+
+    /**
+     *  The DataGridEditEvent.SAVE_GRID_ITEM_EDITOR_SESSION
+     *  constant defines the value of the type property of the
+     *  event object for a saveGridItemEditor event.
+     *  This event is dispatch by the data grid after the data in item editor
+     *  has been saved into the item and the editor has been closed.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
columnIndex	The zero-based column
+     *       index of the item that was modified.

+     *
rowIndex	The zero-based row index
+     *        of the item that was modified.

+     *
column	The column of the cell that was
+     *     edited.
+     *

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *
type
+     *     DataGridEditEvent.SAVE_GRID_ITEM_EDITOR_SESSION

+     *

+     *
+     *  @eventType saveGridItemEditor
+     *
+     *  @see spark.components.supportClasses.GridColumn;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public static const SAVE_GRID_ITEM_EDITOR_SESSION:String = "saveGridItemEditor";
+
+    /**
+     *  The DataGridEditEvent.CANCEL_GRID_ITEM_EDITOR_SESSION
+     *  constant defines the value of the type property of the
+     *  event object for a cancelridItemEditor event.
+     *  This event is dispatch by the data grid after item editor has been
+     *  closed with saving its data.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
cancelable	false

+     *
currentTarget	The Object that defines the
+     *       event listener that handles the event. For example, if you use
+     *       myButton.addEventListener() to register an event listener,
+     *       myButton is the value of the currentTarget.

+     *
columnIndex	The zero-based column
+     *       index of the item that was edited but not modified.

+     *
rowIndex	The zero-based row index
+     *        of the item that was edited but not modified.

+     *
column	The column of the cell that was
+     *     edited.
+     *

+     *
target	The Object that dispatched the event;
+     *       it is not always the Object listening for the event.
+     *       Use the currentTarget property to always access the
+     *       Object listening for the event.

+     *
type
+     *     DataGridEditEvent.CANCEL_GRID_ITEM_EDITOR_SESSION

+     *

+     *
+     *  @eventType cancelGridItemEditor
+     *
+     *  @see spark.components.supportClasses.GridColumn;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public static const CANCEL_GRID_ITEM_EDITOR_SESSION:String = "cancelGridItemEditor";
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param type The event type; indicates the action that caused the event.
+     *
+     *  @param bubbles Specifies whether the event can bubble
+     *  up the display list hierarchy.
+     *
+     *  @param cancelable Specifies whether the behavior
+     *  associated with the event can be prevented.
+     *
+     *  @param kind The kind of changing event.  The valid values are defined in
+     *  GridSelectionEventKind class as constants.  This value
+     *  determines which properties in the event are used.
+     *
+     *  @param rowIndex The zero-based index of the column that is being edited.
+     *
+     *  @param columnIndex The zero-based index of the column that is being edited.
+     *
+     *  @param column The column that is being edited.
+     *
+     *  @see spark.components.supportClasses.GridColumn;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public function DataGridEditEvent(type:String,
+                                      bubbles:Boolean = false,
+                                      cancelable:Boolean = false,
+                                      rowIndex:uint = -1,
+                                      columnIndex:uint = -1,
+                                      column:GridColumn = null)
+    {
+        super(type, bubbles, cancelable);
+
+        this.rowIndex = rowIndex;
+        this.columnIndex = columnIndex;
+        this.column = column;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  columnIndex
+    //----------------------------------
+
+    /**
+     *  The zero-based index of the column that is being edited.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public var columnIndex:int;
+
+
+    //----------------------------------
+    //  column
+    //----------------------------------
+
+    /**
+     *  The column of the cell that is being edited.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public var column:GridColumn;
+
+    //----------------------------------
+    //  rowIndex
+    //----------------------------------
+
+    /**
+     *  The index of the row that is being edited.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    public var rowIndex:int;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: Event
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function clone():Event
+    {
+        var cloneEvent:DataGridEditEvent = new DataGridEditEvent(type, bubbles, cancelable,
+            rowIndex, columnIndex, column);
+
+        return cloneEvent;
+    }
+
+}
+}


http://www.igniterealtime.org/community/thread/41305?tstart=0
XHTMLExtension contained incorrect namespace

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

--- src/org/igniterealtime/xiff/data/xhtml/XHTMLExtension.as
+++ src/org/igniterealtime/xiff/data/xhtml/XHTMLExtension.as
@@ -43,7 +43,7 @@
 	 */
 	public class XHTMLExtension extends Extension implements IExtension, ISerializable
 	{
-		public static const NS:String = "http://www.w3.org/1999/xhtml";
+		public static const NS:String = "http://jabber.org/protocol/xhtml-im";
 		public static const ELEMENT_NAME:String = "html";

 	    private static var staticDepends:Class = ExtensionClassRegistry;
@@ -73,7 +73,7 @@
 		 */
         public function deserialize( node:XMLNode ):Boolean
         {
-			getNode().appendChild(node);
+			getNode().appendChild(node.cloneNode(true));
         	return true;
         }


Fixed bugs in CKAN legacy API support.

Fixed bugs in CKAN legacy API support.

--- WeaveData/src/weave/data/DataSources/CKANDataSource.as
+++ WeaveData/src/weave/data/DataSources/CKANDataSource.as
@@ -395,7 +395,7 @@

 		if (action == PACKAGE_SHOW || action == GROUP_SHOW || action == TAG_SHOW)
 			return metadata['name'] || metadata['description'] || metadata['url']
-				|| result['title'] || result['display_name'] || result['name']
+				|| (result is String ? result as String : (result['title'] || result['display_name'] || result['name']))
 				|| params['id'];

 		if (action == GET_DATASOURCE)
@@ -426,9 +426,9 @@
 			return internalNode.hasChildBranches();

 		if (action == PACKAGE_SHOW)
-			return result['resources'] is Array && (result['resources'] as Array).length;
+			return getChildren().length > 0;
 		if (action == GROUP_SHOW || action == TAG_SHOW)
-			return result['packages'] is Array && (result['packages'] as Array).length;
+			return getChildren().length > 0;

 		return action != GET_DATASOURCE && action != NO_ACTION;
 	}
@@ -489,18 +489,27 @@
 		// handle all situations where result is just an array of IDs
 		if (action == PACKAGE_LIST || action == GROUP_LIST || action == TAG_LIST || (action == TAG_SHOW && !apiVersion3))
 			return updateChildren(result as Array, function(node:CKANAction, id:String):void {
-				node.action = StandardLib.replace(action, "_list", "_show");
+				if (action == PACKAGE_LIST)
+					node.action = PACKAGE_SHOW;
+				if (action == GROUP_LIST)
+					node.action = GROUP_SHOW;
+				if (action == TAG_LIST)
+					node.action = TAG_SHOW;
+				if (action == TAG_SHOW)
+					node.action = PACKAGE_SHOW;
 				node.metadata = node.params = {"id": id};
 			});

-		if (action == GROUP_SHOW || action == TAG_SHOW)
+		if ((action == GROUP_SHOW || action == TAG_SHOW) && result.hasOwnProperty('packages'))
 			return updateChildren(result['packages'], function(node:CKANAction, pkg:Object):void {
+				if (pkg is String)
+					pkg = {"id": pkg};
 				node.action = PACKAGE_SHOW;
 				node.metadata = pkg;
 				node.params = {"id": pkg.id};
 			});

-		if (action == PACKAGE_SHOW)
+		if (action == PACKAGE_SHOW && result.hasOwnProperty('resources'))
 		{
 			return updateChildren(result['resources'], function(node:CKANAction, resource:Object):void {
 				node.action = GET_DATASOURCE;
@@ -542,7 +551,7 @@
 		return _childNodes;
 	}

-	private const _KEY_ORDER:Array = ['title', 'display_name', 'name', 'description', 'format', 'url', 'mimetype', 'created', 'revision_timestamp'];
+	private const _KEY_ORDER:Array = ['title', 'display_name', 'name', 'description', 'format', 'resource_type', 'url', 'mimetype', 'created', 'revision_timestamp'];
 	private function keySort(a:Object, b:Object):int
 	{
 		var order:Array = _KEY_ORDER;


Fixed bug where reprojected WMS tiles weren't being displayed (wrong
triangle-culling parameter).

Change-Id: I5b9e7053a44efe532985dc479ba3388682b323f5

--- WeaveUI/src/weave/visualization/plotters/WMSPlotter.as
+++ WeaveUI/src/weave/visualization/plotters/WMSPlotter.as
@@ -221,7 +221,7 @@
 			//newShape.graphics.lineStyle(1, 0xFFFFFF, 0.5, false, LineScaleMode.NONE);
 			//newShape.graphics.lineStyle(1, 0, 1, true, LineScaleMode.NONE);
 			newShape.graphics.beginBitmapFill(tile.bitmapData, null, false, true); // it's important to disable the repeat option
-			newShape.graphics.drawTriangles(vertices, indices, uvtData, TriangleCulling.POSITIVE);
+			newShape.graphics.drawTriangles(vertices, indices, uvtData, TriangleCulling.NEGATIVE);
 			newShape.graphics.endFill();

 			// save the shape and bounds into the token object and put in cache


Transferred from the Adobe Open Source Subversion Repository

Revision: 19887
Author:   jszeto@adobe.com
Date:     2011-01-22T00:21:36.826316Z

Log Message:
-----------
Mobile SoftKeyboard support updates

Changed Scroller.ensureFocusedElementIsVisible property to a function called ensureElementIsVisible
Changed Scroller auto-scroll behavior to only occur when the soft keyboard is opening

SDK-29211 - Focused TextInput doesn't autoscroll in Scroller when softKeyboard opens

Clear the focusedElement in focusOutHandler

SDK-29196 - If the SoftKeyboard is deactivated while the Scroller is currently animating a throw, the Scroller is left in a bad scroll position

Stop the throw animation when the softKeyboard is deactivated

SDK-29172 - Clicking on a nested List causes the outer scroll position to change

Removed the auto-scroll behavior of Scroller in most cases.

QE notes: none
Doc notes: Need to update the ASDoc of the new Scroller.ensureElementIsVisible function
Bugs: SDK-29211, SDK-29196, SDK-29172
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -193,7 +193,7 @@
             scroller = new Scroller();
             scroller.minViewportInset = 0;
             scroller.measuredSizeIncludesScrollBars = false;
-            scroller.ensureFocusedElementIsVisible = false;
+            scroller.ensureElementIsVisibleForSoftKeyboard = false;
             addChild(scroller);
         }


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

--- frameworks/projects/mx/src/mx/controls/videoClasses/CuePointManager.as
+++ frameworks/projects/mx/src/mx/controls/videoClasses/CuePointManager.as
@@ -0,0 +1,803 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls.videoClasses
+{
+
+import flash.events.Event;
+import mx.controls.VideoDisplay;
+import mx.core.mx_internal;
+import mx.events.MetadataEvent;
+import mx.managers.ISystemManager;
+import mx.managers.SystemManager;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+
+use namespace mx_internal;
+
+[ResourceBundle("controls")]
+
+/**
+ *  The CuePointManager class lets you use ActionScript code to
+ *  manage the cue points associated with the VideoDisplay control.
+ *
+ *  @see mx.controls.VideoDisplay
+ */
+public class CuePointManager
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  @private
+     */
+	private var _owner:VideoPlayer;
+
+	private var _metadataLoaded:Boolean;
+	private var _disabledCuePoints:Array;
+	private var _disabledCuePointsByNameOnly:Object;
+	private var _cuePointIndex:uint;
+	private var _cuePointTolerance:Number;
+	private var _linearSearchTolerance:Number;
+
+	private static var DEFAULT_LINEAR_SEARCH_TOLERANCE:Number = 50;
+
+	private var cuePoints:Array;
+
+	/**
+	 *  @private
+	 *  Reference to VideoDisplay object associated with this CuePointManager
+	 *  instance.
+	 */
+	mx_internal var videoDisplay:VideoDisplay;
+
+	/**
+	 *  @private
+	 *  Used for accessing localized Error messages.
+	 */
+	private var resourceManager:IResourceManager =
+									ResourceManager.getInstance();
+
+	//
+	// public APIs
+	//
+
+	/**
+	 *  Constructor.
+	 */
+	public function CuePointManager(owner:VideoPlayer, id:uint = 0)
+    {
+    	// take in id just to be back-wards compatible
+		super();
+
+		_owner = owner;
+		reset();
+		_cuePointTolerance = _owner.playheadUpdateInterval / 2000;
+		_linearSearchTolerance = DEFAULT_LINEAR_SEARCH_TOLERANCE;
+	}
+
+	/**
+	 *  @private
+	 *  Reset cue point lists
+	 */
+	private function reset():void
+	{
+		_metadataLoaded = false;
+		cuePoints = null;
+		_disabledCuePoints = null;
+		_cuePointIndex = 0;
+	}
+
+	/**
+	 *  @private
+	 *  read only, has metadata been loaded
+	 */
+	private function get metadataLoaded():Boolean
+	{
+		return _metadataLoaded;
+	}
+
+	/**
+	 *  @private
+	 *
Set by FLVPlayback to update _cuePointTolerance

+	 *  Should be exposed in VideoDisplay/ here in Flex 2.0.
+	 */
+	private function set playheadUpdateInterval(aTime:Number):void
+	{
+		_cuePointTolerance = aTime / 2000;
+	}
+
+	/**
+	 *  Adds a cue point.
+	 *
+	 *
You can add multiple cue points with the same
+	 *  name and time.  When you call the removeCuePoint() method
+	 *  with the name and time,  it removes the first matching cue point.
+	 *  To remove all matching cue points, you have to make additional calls to
+	 *  the removeCuePoint() method.

+	 *
+	 *  @param cuePoint The Object describes the cue
+	 *  point.  It must contain the properties name:String
+	 *  and time:Number (in seconds).
+	 *  If the Object does not conform to these
+	 *  conventions, it throws a VideoError error.
+	 *
+	 *  @return A copy of the cue point Object added. The copy has the
+	 *  following additional properties:
+	 *
+	 *

+	 *
array - the Array of all cue points. Treat
+	 *    this Array as read only because adding, removing or editing objects
+	 *    within it can cause cue points to malfunction.

+	 *
+	 *
index - the index into the Array for the
+	 *    returned cue point.

+	 *

+	 *
+	 *  @throws mx.controls.videoClasses.VideoError If the arguments are invalid.
+	 */
+	public function addCuePoint(cuePoint:Object):Object
+	{
+		var message:String;
+
+		// make sense of param
+		var copy:Object = deepCopyObject(cuePoint);
+
+		// sanity check
+		var timeUndefined:Boolean = (isNaN(copy.time) || copy.time < 0);
+		if (timeUndefined)
+		{
+			message = resourceManager.getString(
+				"controls", "wrongTime");
+			throw new VideoError(VideoError.ILLEGAL_CUE_POINT, message);
+		}
+		if (!copy.name)
+		{
+			message = resourceManager.getString(
+				"controls", "wrongName");
+			throw new VideoError(VideoError.ILLEGAL_CUE_POINT, message);
+		}
+
+		// add cue point to cue point array
+		var index:Number;
+		copy.type = "actionscript";
+		if (cuePoints == null || cuePoints.length < 1)
+		{
+			index = 0;
+			cuePoints = [];
+			cuePoints.push(copy);
+		}
+		else
+		{
+			index = getCuePointIndex(cuePoints, true, copy.time, null, 0, 0);
+			index = (cuePoints[index].time > copy.time) ? 0 : index + 1;
+			cuePoints.splice(index, 0, copy);
+		}
+
+		// adjust _cuePointIndex
+		var now:Number = _owner.playheadTime;
+		if (now > 0)
+		{
+			if (_cuePointIndex == index)
+			{
+				if (now > cuePoints[index].time)
+				{
+					_cuePointIndex++;
+				}
+			}
+			else if (_cuePointIndex > index)
+			{
+				_cuePointIndex++;
+			}
+		}
+		else
+		{
+			_cuePointIndex = 0;
+		}
+
+		// return the cue point
+		var returnObject:Object = deepCopyObject(cuePoints[index]);
+		returnObject.array = cuePoints;
+		returnObject.index = index;
+		videoDisplay.dispatchEvent(new Event("cuePointsChanged"));
+		return returnObject;
+	}
+
+	/**
+	 *  Removes a cue point from the currently
+	 *  loaded FLV file.  Only the name and time
+	 *  properties are used from the cuePoint argument to
+	 *  determine the cue point to be removed.
+	 *
+	 *
If multiple cue points match the search criteria, only
+	 *  one will be removed.  To remove all cue points, call this function
+	 *  repeatedly in a loop with the same arguments until it returns
+	 *  null.

+	 *
+	 *  @param cuePoint The Object must contain at least one of
+	 *  name:String and time:Number properties, and
+	 *  removes the cue point that matches the specified properties.
+	 *
+	 *  @return An object representing the cue point removed. If there was no
+	 *  matching cue point, then it returns null.
+	 */
+	public function removeCuePoint(cuePoint:Object):Object
+	{
+		// bail if no cue points
+		if (cuePoints == null || cuePoints.length < 1)
+			return null;
+
+		// remove cue point from cue point array
+		var index:Number = getCuePointIndex(cuePoints, false, cuePoint.time, cuePoint.name, 0, 0);
+		if (index < 0)
+			return null;
+
+		cuePoint = cuePoints[index];
+		cuePoints.splice(index, 1);
+
+		// adjust _cuePointIndex
+		if (_owner.playheadTime > 0)
+		{
+			if (_cuePointIndex > index)
+			{
+				_cuePointIndex--;
+			}
+		}
+		else
+		{
+			_cuePointIndex = 0;
+		}
+
+		videoDisplay.dispatchEvent(new Event("cuePointsChanged"));
+		// return the cue point
+		return cuePoint;
+	}
+
+	/**
+	 *  @private
+	 *  removes enabled cue points from _disabledCuePoints
+	 */
+	private function removeCuePoints(cuePointArray:Array, cuePoint:Object):Number
+	{
+		var matchIndex:Number;
+		var matchCuePoint:Object;
+		var numChanged:Number = 0;
+		for (matchIndex = getCuePointIndex(cuePointArray, true, -1, cuePoint.name, 0, 0); matchIndex >= 0;
+		     matchIndex = getNextCuePointIndexWithName(matchCuePoint.name, cuePointArray, matchIndex))
+		{
+			// remove match
+			matchCuePoint = cuePointArray[matchIndex];
+			cuePointArray.splice(matchIndex, 1);
+			matchIndex--;
+			numChanged++;
+		}
+		return numChanged;
+	}
+
+	/**
+	 *  @private
+	 *  inserts cue points into array
+	 */
+	private function insertCuePoint(insertIndex:Number, cuePointArray:Array, cuePoint:Object):Array
+	{
+		if (insertIndex < 0)
+		{
+			cuePointArray = [];
+			cuePointArray.push(cuePoint);
+		}
+		else
+		{
+			// find insertion point
+			if (cuePointArray[insertIndex].time > cuePoint.time)
+			{
+				insertIndex = 0;
+			}
+			else
+			{
+				insertIndex++;
+			}
+			// insert into sorted cuePointArray
+			cuePointArray.splice(insertIndex, 0, cuePoint);
+		}
+		return cuePointArray;
+	}
+
+	//
+	// package internal methods, called by FLVPlayback
+	//
+
+	/**
+	 *  @private
+	 *
Called by FLVPlayback on "playheadUpdate" event
+	 *  to throw "cuePoint" events when appropriate.

+	 */
+	mx_internal function dispatchCuePoints():void
+	{
+		var now:Number = _owner.playheadTime;
+		if (_owner.stateResponsive && cuePoints != null)
+		{
+			while (_cuePointIndex < cuePoints.length &&
+			        cuePoints[_cuePointIndex].time <= now + _cuePointTolerance)
+			{
+				var metadataEvent:MetadataEvent =
+					new MetadataEvent(MetadataEvent.CUE_POINT);
+				metadataEvent.info = deepCopyObject(cuePoints[_cuePointIndex++]);
+				_owner.dispatchEvent(metadataEvent);
+			}
+		}
+	}
+
+	/**
+	 *  @private
+	 *  When our place in the stream is changed, this is called
+	 *  to reset our index into actionscript cue point array.
+	 *  Another method is used when cue points are added
+	 *  are removed.
+	 */
+	mx_internal function resetCuePointIndex(time:Number):void
+	{
+		if (time <= 0 || cuePoints == null)
+		{
+			_cuePointIndex = 0;
+			return;
+		}
+		var index:Number = getCuePointIndex(cuePoints, true, time, null, 0, 0);
+		_cuePointIndex = (cuePoints[index].time < time) ? index + 1 : index;
+	}
+
+	/**
+	 *  @private
+	 *  Search for a cue point in an array sorted by time.  See
+	 *  closeIsOK parameter for search rules.
+	 *
+	 *  @param cuePointArray array to search
+	 *  @param closeIsOK If true, the behavior differs depending on the
+	 *  parameters passed in:
+	 *
+	 *

+	 *
+	 *
If name is null or undefined, then if the specific time is
+	 *  not found then the closest time earlier than that is returned.
+	 *  If there is no cue point earlier than time, the first cue point
+	 *  is returned.

+	 *
+	 *
If time is null, undefined or less than 0 then the first
+	 *  cue point with the given name is returned.

+	 *
+	 *
If time and name are both defined then the closest cue
+	 *  point, then if the specific time and name is not found then the
+	 *  closest time earlier than that with that name is returned.  If
+	 *  there is no cue point with that name and with an earlier time,
+	 *  then the first cue point with that name is returned.  If there
+	 *  is no cue point with that name, null is returned.

+	 *
+	 *
If time is null, undefined or less than 0 and name is null
+	 *  or undefined, a VideoError is thrown.

+	 *
+	 *

+	 *
+	 *
If closeIsOK is false the behavior is:

+	 *
+	 *

+	 *
+	 *
If name is null or undefined and there is a cue point with
+	 *  exactly that time, it is returned.  Otherwise null is
+	 *  returned.

+	 *
+	 *
If time is null, undefined or less than 0 then the first
+	 *  cue point with the given name is returned.

+	 *
+	 *
If time and name are both defined and there is a cue point
+	 *  with exactly that time and name, it is returned.  Otherwise null
+	 *  is returned.

+	 *
+	 *
If time is null, undefined or less than 0 and name is null
+	 *  or undefined, a VideoError is thrown.

+	 *
+	 *

+	 *  @param time search criteria
+	 *  @param name search criteria
+	 *  @param start index of first item to be searched, used for
+	 *  recursive implementation, defaults to 0 if undefined
+	 *  @param len length of array to search, used for recursive
+	 *  implementation, defaults to cuePointArray.length if undefined
+	 *  @returns index for cue point in given array or -1 if no match found
+	 *  @throws VideoError if time and/or name parameters are bad
+	 *  @see #cuePointCompare()
+	 */
+	private function getCuePointIndex(cuePointArray:Array, closeIsOK:Boolean,
+											  time:Number, name:String,
+	                                          start:Number, len:Number):Number
+	{
+		// sanity checks
+		if (cuePointArray == null || cuePointArray.length < 1)
+			return -1;
+
+		var timeUndefined:Boolean = (isNaN(time) || time < 0);
+		if (timeUndefined && !name)
+		{
+			var message:String = resourceManager.getString(
+				"controls", "wrongTimeName");
+			throw new VideoError(VideoError.ILLEGAL_CUE_POINT, message);
+		}
+
+		if (len == 0) len = cuePointArray.length;
+
+		// name is passed in and time is undefined or closeIsOK is
+		// true, search for first name starting at either start
+		// parameter index or index at or after passed in time, respectively
+		if (name && (closeIsOK || timeUndefined))
+		{
+			var firstIndex:Number;
+			var index:Number;
+			if (timeUndefined)
+				firstIndex = start;
+			else
+				firstIndex = getCuePointIndex(cuePointArray, closeIsOK, time, null, 0, 0);
+			for (index = firstIndex; index >= start; index--)
+				if (cuePointArray[index].name == name)
+					break;
+			if (index >= start)
+				return index;
+			for (index = firstIndex + 1; index < len; index++)
+				if (cuePointArray[index].name == name)
+					break;
+			if (index < len)
+				return index;
+			return -1;
+		}
+
+		var result:Number;
+
+		// iteratively check if short length
+		if (len <= _linearSearchTolerance)
+		{
+			var max:Number = start + len;
+			for (var i:uint = start; i < max; i++)
+			{
+				result = cuePointCompare(time, name, cuePointArray[i]);
+				if (result == 0)
+					return i;
+				if (result < 0) break;
+			}
+			if (closeIsOK)
+			{
+				if (i > 0)
+					return i - 1;
+				return 0;
+			}
+			return -1;
+		}
+
+		// split list and recurse
+		var halfLen:Number = Math.floor(len / 2);
+		var checkIndex:Number = start + halfLen;
+		result = cuePointCompare(time, name, cuePointArray[checkIndex]);
+		if (result < 0)
+			return getCuePointIndex(cuePointArray, closeIsOK, time, name,
+			                         start, halfLen);
+		if (result > 0)
+			return getCuePointIndex(cuePointArray, closeIsOK, time, name,
+			                         checkIndex + 1, halfLen - 1 + (len % 2));
+		return checkIndex;
+	}
+
+	/**
+	 *  @private
+	 *
Given a name, array and index, returns the next cue point in
+	 *  that array after given index with the same name.  Returns null
+	 *  if no cue point after that one with that name.  Throws
+	 *  VideoError if argument is invalid.

+	 *
+	 *  @returns index for cue point in given array or -1 if no match found
+	 */
+	private function getNextCuePointIndexWithName(name:String, array:Array, index:Number):Number
+	{
+		var message:String;
+
+		// sanity checks
+		if (!name)
+		{
+			message = resourceManager.getString(
+				"controls", "wrongName");
+			throw new VideoError(VideoError.ILLEGAL_CUE_POINT, message);
+		}
+		if (!array)
+		{
+			message = resourceManager.getString(
+				"controls", "undefinedArray");
+			throw new VideoError(VideoError.ILLEGAL_CUE_POINT, message);
+		}
+		if (isNaN(index) || index < -1 || index >= array.length)
+		{
+			message = resourceManager.getString(
+				"controls", "wrongIndex");
+			throw new VideoError(VideoError.ILLEGAL_CUE_POINT, message);
+		}
+
+		// find it
+		var i:int;
+		for (i = index + 1; i < array.length; i++)
+			if (array[i].name == name)
+				break;
+		if (i < array.length)
+			return i;
+		return -1;
+	}
+
+	/**
+	 *  @private
+	 *  Takes two cue point Objects and returns -1 if first sorts
+	 *  before second, 1 if second sorts before first and 0 if they are
+	 *  equal.  First compares times with millisecond precision.  If
+	 *  they match, compares name if name parameter is not null or undefined.
+	 */
+	private static function cuePointCompare(time:Number, name:String, cuePoint:Object):Number
+	{
+		var compTime1:Number = Math.round(time * 1000);
+		var compTime2:Number = Math.round(cuePoint.time * 1000);
+		if (compTime1 < compTime2) return -1;
+		if (compTime1 > compTime2) return 1;
+		if (name != null)
+		{
+			if (name == cuePoint.name) return 0;
+			if (name < cuePoint.name) return -1;
+			return 1;
+		}
+		return 0;
+	}
+
+	/**
+	 *  @private
+	 *
+	 *
Search for a cue point in the given array at the given time
+	 *  and/or with given name.

+	 *
+	 *  @param closeIsOK If true, the behavior differs depending on the
+	 *  parameters passed in:
+	 *
+	 *

+	 *
+	 *
If name is null or undefined, then if the specific time is
+	 *  not found then the closest time earlier than that is returned.
+	 *  If there is no cue point earlier than time, the first cue point
+	 *  is returned.

+	 *
+	 *
If time is null, undefined or less than 0 then the first
+	 *  cue point with the given name is returned.

+	 *
+	 *
If time and name are both defined then the closest cue
+	 *  point, then if the specific time and name is not found then the
+	 *  closest time earlier than that with that name is returned.  If
+	 *  there is no cue point with that name and with an earlier time,
+	 *  then the first cue point with that name is returned.  If there
+	 *  is no cue point with that name, null is returned.

+	 *
+	 *
If time is null, undefined or less than 0 and name is null
+	 *  or undefined, a VideoError is thrown.

+	 *
+	 *

+	 *
+	 *
If closeIsOK is false the behavior is:

+	 *
+	 *

+	 *
+	 *
If name is null or undefined and there is a cue point with
+	 *  exactly that time, it is returned.  Otherwise null is
+	 *  returned.

+	 *
+	 *
If time is null, undefined or less than 0 then the first
+	 *  cue point with the given name is returned.

+	 *
+	 *
If time and name are both defined and there is a cue point
+	 *  with exactly that time and name, it is returned.  Otherwise null
+	 *  is returned.

+	 *
+	 *
If time is null, undefined or less than 0 and name is null
+	 *  or undefined, a VideoError is thrown.

+	 *
+	 *

+	 *  @param timeOrCuePoint If String, then name for search.  If
+	 *  Number, then time for search.  If Object, then cuepoint object
+	 *  containing time and/or name parameters for search.
+	 *  @returns null if no match was found, otherwise
+	 *  copy of cuePoint object with additional properties:
+	 *
+	 *

+	 *
+	 *
array - the array that was searched. Treat
+	 *  this array as read only as adding, removing or editing objects
+	 *  within it can cause cue points to malfunction.

+	 *
+	 *
index - the index into the array for the
+	 *  returned cuepoint.

+	 *
+	 *

+	 *  @see #getCuePointIndex()
+	 */
+	private function getCuePoint(cuePointArray:Array, closeIsOK:Boolean,
+	                      timeNameOrCuePoint:Object = null):Object
+	{
+		var cuePoint:Object;
+		switch (typeof(timeNameOrCuePoint))
+		{
+		case "string":
+			cuePoint = {name:timeNameOrCuePoint};
+			break;
+		case "number":
+			cuePoint = {time:timeNameOrCuePoint};
+			break;
+		case "object":
+			cuePoint = timeNameOrCuePoint;
+			break;
+		} // switch
+		var index:Number = getCuePointIndex(cuePointArray, closeIsOK, cuePoint.time, cuePoint.name, 0, 0);
+		if (index < 0) return null;
+		cuePoint = deepCopyObject(cuePointArray[index]);
+		cuePoint.array = cuePointArray;
+		cuePoint.index = index;
+		return cuePoint;
+	}
+
+	/**
+	 *  @private
+	 *
Given a cue point object returned from getCuePoint (needs
+	 *  the index and array properties added to those cue points),
+	 *  returns the next cue point in that array after that one with
+	 *  the same name.  Returns null if no cue point after that one
+	 *  with that name.  Throws VideoError if argument is invalid.

+	 *
+	 *  @returns null if no match was found, otherwise
+	 *  copy of cuePoint object with additional properties:
+	 *
+	 *

+	 *
+	 *
array - the array that was searched.  Treat
+	 *  this array as read only as adding, removing or editing objects
+	 *  within it can cause cue points to malfunction.

+	 *
+	 *
index - the index into the array for the
+	 *  returned cuepoint.

+	 *
+	 *

+	 */
+	private function getNextCuePointWithName(cuePoint:Object):Object
+	{
+		var message:String;
+
+		// sanity checks
+		if (!cuePoint)
+		{
+			message = resourceManager.getString(
+				"controls", "undefinedParameter");
+			throw new VideoError(VideoError.ILLEGAL_CUE_POINT, message);
+		}
+		if (isNaN(cuePoint.time) || cuePoint.time < 0)
+		{
+			message = resourceManager.getString(
+				"controls", "wrongTime");
+			throw new VideoError(VideoError.ILLEGAL_CUE_POINT, message);
+		}
+
+		// get index
+		var index:Number = getNextCuePointIndexWithName(cuePoint.name, cuePoint.array, cuePoint.index);
+		if (index < 0)
+			return null;
+
+		// return copy
+		var returnCuePoint:Object = deepCopyObject(cuePoint.array[index]);
+		returnCuePoint.array = cuePoint.array;
+		returnCuePoint.index = index;
+		return returnCuePoint;
+	}
+
+	/**
+	 *  Search for a cue point with specified name.
+	 *
+	 *  @param name The name of the cue point.
+	 *
+	 *  @return null if no match was found, or
+	 *  a copy of the matching cue point Object with additional properties:
+	 *
+	 *

+	 *
array - the Array of cue points searched. Treat
+	 *    this array as read only because adding, removing or editing objects
+	 *    within it can cause cue points to malfunction.

+	 *
+	 *
index - the index into the Array for the
+	 *    returned cue point.

+	 *

+	 */
+	public function getCuePointByName(name:String):Object
+	{
+		return getCuePoint(cuePoints, false, name);
+	}
+
+	/**
+	 *  Returns an Array of all cue points.
+	 *
+	 *  @return An Array of cue point objects.
+	 *  Each cue point object describes the cue
+	 *  point, and contains the properties name:String
+	 *  and time:Number (in seconds).
+	 */
+	public function getCuePoints():Array
+	{
+		return cuePoints;
+	}
+
+	/**
+	 *  Removes all cue points.
+	 */
+	public function removeAllCuePoints():void
+	{
+		cuePoints = null;
+		videoDisplay.dispatchEvent(new Event("cuePointsChanged"));
+	}
+
+	/**
+	 * Set the array of cue points.
+	 *
+	 *
You can add multiple cue points with the same
+	 * name and time.  When you call the removeCuePoint() method
+	 * with this name, only the first one is removed.

+	 *
+	 *  @param cuePointArray An Array of cue point objects.
+	 *  Each cue point object describes the cue
+	 *  point. It must contain the properties name:String
+	 *  and time:Number (in seconds).
+	 */
+	public function setCuePoints(cuePointArray:Array):void
+	{
+		// sanity checks
+		if (cuePointArray == null)
+			return;
+		for (var index:uint = 0; index < cuePointArray.length; index++)
+		{
+			addCuePoint(cuePointArray[index]);
+		}
+	}
+
+	/**
+	 *  @private
+	 *  Used to make copies of cue point objects.
+	 */
+	private static function deepCopyObject(obj:Object, recurseLevel:Number = 0):Object
+	{
+		if (obj == null || typeof(obj) != "object") return obj;
+		if (isNaN(recurseLevel)) recurseLevel = 0;
+		var newObj:Object = {};
+		for (var i:Object in obj)
+		{
+			if (recurseLevel == 0 && (i == "array" || i == "index"))
+			{
+				// skip it
+			}
+			else if (typeof(obj[i]) == "object")
+			{
+				newObj[i] = deepCopyObject(obj[i], recurseLevel+1);
+			}
+			else
+			{
+				newObj[i] = obj[i];
+			}
+		}
+		return newObj;
+	}
+
+} // class mx.controls.videoClasses.CuePointManager
+
+}


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

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


Issue 886 updating failing actionscript core test

git-svn-id: d565a5fbffec933846bf643895bf9c245569575b@1844 59b500cc-1b3d-0410-9834-0bbf25fbcc57

--- actionscript/core/test/com/google/zxing/EncodeDecodeEAN8Test.as
+++ actionscript/core/test/com/google/zxing/EncodeDecodeEAN8Test.as
@@ -69,17 +69,20 @@
     }

     [Test(description="Encode a number, decode it, and compare.")]
-    public function encodedEAN8shouldBeDecodedSuccessfully():void {
+    public function testEncodedEAN8shouldBeDecodedSuccessfully():void {
       var testCode:Number = 48512343;
       var decodedNumber:Number = encodeAndDecode(testCode);
       assertEquals(testCode, decodedNumber);
     }

-    [Test(description="Bug: Endoding and decoding 1 fails")]
-    public function shouldEncodeAndDecodeAnyValidEAN8number():void {
-      var testCode:Number = 12345678;
-      var decodedNumber:Number = encodeAndDecode(testCode);
-      assertEquals(testCode, decodedNumber);
+    [Test(description="Encodes EAN8 from 0 to 9999999.")]
+    public function testEncodeAndDecodeAnyValidEAN8Number():void {
+      for (var testCode:Number = 9999999; testCode >= 0; testCode -= 1111111) {
+        var checkSum:Number = calculateEANChecksumDigit(testCode);
+        var testCodeWithCheckSum:Number = testCode * 10 + checkSum;
+        var decodedNumber:Number = encodeAndDecode(testCodeWithCheckSum);
+        assertEquals(testCodeWithCheckSum, decodedNumber);
+      }
     }

     private function encodeAndDecode(testCode:Number):Number {
@@ -125,7 +128,6 @@

     private function generateImage(resultBits:Array, imageWidth:Number,
         imageHeight:Number):Bitmap {
-      // generate an image
       var bitmapData:BitmapData = new BitmapData(imageWidth, imageHeight, false,
           0xFFFFFF);
       var bitmap:Bitmap = new Bitmap(bitmapData);
@@ -176,5 +178,22 @@
       }
       return contents;
     }
+
+    public function calculateEANChecksumDigit(number:Number):Number {
+      var checksum:Number = 0;
+      var weightedSumOfDigits:Number = 0;
+      var weight:Number = 3;
+      while (number > 0) {
+        var lastDigit:int = number % 10;
+        weightedSumOfDigits = weightedSumOfDigits + lastDigit * weight;
+        number = (number - lastDigit) / 10;
+        weight = weight == 3 ? 1 : 3;
+      }
+      var additionToTen:Number = weightedSumOfDigits % 10;
+      if (additionToTen > 0) {
+        checksum = 10 - additionToTen;
+      }
+      return checksum;
+    }
   }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/framework/src/mx/effects/CompositeEffect.as
+++ frameworks/projects/framework/src/mx/effects/CompositeEffect.as
@@ -167,12 +167,12 @@
             // Remove this effect as the parent of the old child effects
             for (i = 0; i < _children.length; ++i)
                 if (_children[i])
-                    Effect(_children[i]).mx_internal::parentCompositeEffect = null;
+                    Effect(_children[i]).parentCompositeEffect = null;
         _children = value;
         if (_children)
             for (i = 0; i < _children.length; ++i)
                 if (_children[i])
-                    Effect(_children[i]).mx_internal::parentCompositeEffect = this;
+                    Effect(_children[i]).parentCompositeEffect = this;
     }

     /**
@@ -256,7 +256,7 @@
     override protected function filterInstance(propChanges:Array,
                                                targ:Object):Boolean
     {
-        if (mx_internal::filterObject)
+        if (filterObject)
         {
             // If we don't have any targets, then that means
             // we are nested inside of another CompositeEffect.
@@ -269,7 +269,7 @@
             var n:int = targs.length;
             for (var i:int = 0; i < n; i++)
             {
-                if (mx_internal::filterObject.filterInstance(propChanges, effectTargetHost, targs[i]))
+                if (filterObject.filterInstance(propChanges, effectTargetHost, targs[i]))
                     return true;
             }

@@ -286,8 +286,7 @@
     {
         super.initInstance(instance);

-        var compInst:CompositeEffectInstance =
-            CompositeEffectInstance(instance);
+        var compInst:CompositeEffectInstance = CompositeEffectInstance(instance);

         var targets:Object = childTargets;
         if (!(targets is Array))
@@ -301,19 +300,17 @@
                 var childEffect:Effect = children[i];

                 // Pass the propertyChangesArray to each child
-                if (mx_internal::propertyChangesArray != null)
+                if (propertyChangesArray != null)
                 {
-                    childEffect.mx_internal::propertyChangesArray =
-                        mx_internal::propertyChangesArray;
+                    childEffect.propertyChangesArray = propertyChangesArray;
                 }

                 // Pass the filterObject down to the child
                 // if it doesn't have a filterObject.
-                if (childEffect.mx_internal::filterObject == null &&
-                    mx_internal::filterObject)
+                if (childEffect.filterObject == null &&
+                    filterObject)
                 {
-                    childEffect.mx_internal::filterObject =
-                        mx_internal::filterObject;
+                    childEffect.filterObject = filterObject;
                 }

 				// TODO This doesn't seem good enough...
@@ -346,18 +343,18 @@
         var childTargets:Array = getChildrenTargets();

         // Generate the PropertyChanges array
-        mx_internal::propertyChangesArray = [];
+        propertyChangesArray = [];

         var n:int = childTargets.length;
         for (var i:int = 0; i < n; i++)
         {
-            mx_internal::propertyChangesArray.push(
+            propertyChangesArray.push(
                 new PropertyChanges(childTargets[i]));
         }

         // call captureValues
-        mx_internal::propertyChangesArray =
-            captureValues(mx_internal::propertyChangesArray, true);
+        propertyChangesArray =
+            captureValues(propertyChangesArray, true);

         endValuesCaptured = false;
     }
@@ -397,10 +394,9 @@
                                      child.targets :
                                      targets;

-            if (child.mx_internal::filterObject == null &&
-                mx_internal::filterObject)
-            {
-                child.mx_internal::filterObject = mx_internal::filterObject;
+            if (child.filterObject == null && filterObject)
+            {
+                child.filterObject = filterObject;
             }

             child.applyStartValues(propChanges, childTargets);
@@ -422,10 +418,9 @@
                                      child.targets :
                                      targets;

-            if (child.mx_internal::filterObject == null &&
-                mx_internal::filterObject)
-            {
-                child.mx_internal::filterObject = mx_internal::filterObject;
+            if (child.filterObject == null && filterObject)
+            {
+                child.filterObject = filterObject;
             }

             child.applyEndValues(propChanges, childTargets);
@@ -463,7 +458,7 @@
         // Null out the list of affected properties,
         // so that it gets recalculated to include the new child.
         _affectedProperties = null;
-        Effect(childEffect).mx_internal::parentCompositeEffect = this;
+        Effect(childEffect).parentCompositeEffect = this;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/skins/halo/TabSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/TabSkin.as
@@ -25,6 +25,11 @@

 /**
  *  The skin for all the states of a Tab in a TabNavigator or TabBar.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class TabSkin extends Border
 {
@@ -93,6 +98,11 @@

 	/**
 	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function TabSkin()
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 15526
Author:   chaase@adobe.com
Date:     2010-04-16T23:14:38.571769Z

Log Message:
-----------
Two effects fixes, one states/SetProperty fix.
The Fade fix allows objects which don't exist in the next state, but which don't have valid values set in that state for position/orientation, to fade out in place.
The states fix cleans up the layout constraint docs in UIComponent and fixes logic in SetProperty that makes it possible to actually unset these properties in MXML.
The AnimateTransform fix cleans up logic when using AnimateTransform directly to auto-animate properties that change between states.

QE notes: Fade_accessor Fade_relevantProperties_Default fails because the affectedProperties of Fade has changed with one of these fixes. The test needs to be updated.
Doc notes: None
Bugs: sdk-25389, sdk-24989, sdk-24925
Reviewer: Corey (UIComponent, SetProperty) and Jason (the rest)
Tests run: checkintests, Mustella spark/effects, mx/states
Is noteworthy for integration: yes: downstream tools wanted fix for sdk-24925

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/SetProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Fade.as
+++ frameworks/projects/spark/src/spark/effects/Fade.as
@@ -150,7 +150,10 @@
      */
     override public function getAffectedProperties():Array /* of String */
     {
-        return ["alpha", "visible", "parent", "index"];
+        return ["alpha", "visible", "parent", "index",
+            "explicitWidth", "explicitHeight", "rotation", "x", "y",
+            "left", "right", "top", "bottom",
+            "percentWidth", "percentHeight"];
     }

     override protected function getValueFromTarget(target:Object, property:String):*
@@ -186,8 +189,14 @@
         // We only want to track "parent" as it affects how
         // we fade; we don't actually want to change target properties
         // other than alpha or visibility
-        if (property == "parent" || property == "index")
+        if (property == "parent" || property == "index" ||
+            property == "explicitWidth" || property == "explicitHeight" ||
+            property == "percentWidth" || property == "percentHeight" ||
+            property == "rotation" || property == "x" || property == "y" ||
+            property == "left" || property == "right" || property == "top" || property == "bottom")
+        {
             return;
+        }

         super.applyValueToTarget(target, property, value, props);
     }


replaced hack with correct solution for saving/comparing with selections on all layers.

--- WeaveUISpark/src/weave/visualization/layers/InteractiveVisualization.as
+++ WeaveUISpark/src/weave/visualization/layers/InteractiveVisualization.as
@@ -31,10 +31,11 @@
 	import spark.components.Group;

 	import weave.Weave;
+	import weave.api.getSessionState;
+	import weave.api.registerLinkableChild;
+	import weave.api.data.IDynamicKeyFilter;
 	import weave.api.data.IQualifiedKey;
-	import weave.api.getSessionState;
 	import weave.api.primitives.IBounds2D;
-	import weave.api.registerLinkableChild;
 	import weave.api.ui.IPlotter;
 	import weave.compiler.StandardLib;
 	import weave.core.LinkableBoolean;
@@ -234,14 +235,24 @@
 			handleMouseEvent(event);
 		}

-		private var hack_mouseDownSelectionState:Object = null;
+		private var mouseDownSelectionState:Object = null; // layer name -> selection state
+		private function getAllLayerSelectionState():Object
+		{
+			var result:Object = {};
+			for each (var name:String in plotManager.layerSettings.getNames())
+			{
+				var idkf:IDynamicKeyFilter = (plotManager.layerSettings.getObject(name) as LayerSettings).selectionFilter;
+				result[name] = idkf.internalObject ? getSessionState(idkf.internalObject) : null;
+			}
+			return result;
+		}
+
 		protected function handleMouseDown(event:MouseEvent):void
 		{
 			updateMouseMode(InteractionController.INPUT_DRAG); // modifier keys may have changed just prior to pressing mouse button, so update mode now
-
-			//for detecting change between drag start and drag end
-			// TEMPORARY HACK - Weave.defaultSelectionKeySet
-			hack_mouseDownSelectionState = getSessionState(Weave.defaultSelectionKeySet);
+
+			//for detecting change between drag start and drag end
+			mouseDownSelectionState = getAllLayerSelectionState();

 			mouseDragActive = true;
 			// clear probe when drag starts
@@ -818,12 +829,10 @@
 				break; // select only one layer at a time
 			}

-
-			// TEMPORARY HACK - Weave.defaultSelectionKeySet
-			var hack_noSelectionChangeSinceMouseDown:Boolean = WeaveAPI.SessionManager.computeDiff(hack_mouseDownSelectionState, getSessionState(Weave.defaultSelectionKeySet)) === undefined;
+			var noSelectionChangeSinceMouseDown:Boolean = StandardLib.compare(mouseDownSelectionState, getAllLayerSelectionState()) == 0;

 			// if mouse is released and selection hasn't changed since mouse down, clear selection
-			if (_mouseMode == InteractionController.SELECT && !WeaveAPI.StageUtils.mouseButtonDown && hack_noSelectionChangeSinceMouseDown)
+			if (_mouseMode == InteractionController.SELECT && !WeaveAPI.StageUtils.mouseButtonDown && noSelectionChangeSinceMouseDown)
 			{
 				clearSelection();
 			}


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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as
@@ -24,7 +24,7 @@
 import mx.collections.ArrayCollection;
 import mx.collections.ICollectionView;
 import mx.collections.IList;
-import mx.collections.Sort;
+import mx.collections.ISort;
 import mx.core.mx_internal;
 import mx.events.CubeEvent;
 import mx.resources.ResourceManager;
@@ -156,7 +156,7 @@
     private var prepare:Boolean = false;

     //saved sort property of the source dataProvider.
-    private var oldSort:Sort;
+    private var oldSort:ISort;

     // index of the dimension being processed.
     private var dimIndex:int = 0;