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

--- frameworks/projects/mx/src/mx/effects/effectClasses/AddChildActionInstance.as
+++ frameworks/projects/mx/src/mx/effects/effectClasses/AddChildActionInstance.as
@@ -0,0 +1,163 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.effects.effectClasses
+{
+
+import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
+import mx.core.mx_internal;
+
+/**
+ *  The AddChildActionInstance class implements the instance class
+ *  for the AddChildAction effect.
+ *  Flex creates an instance of this class when it plays
+ *  an AddChildAction effect; you do not create one yourself.
+ *
+ *  @see mx.effects.AddChildAction
+ */
+public class AddChildActionInstance extends ActionEffectInstance
+{
+    include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param target The Object to animate with this effect.
+	 */
+	public function AddChildActionInstance(target:Object)
+	{
+		super(target);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  index
+	//----------------------------------
+
+	/**
+	 *  The index of the child within the parent.
+	 */
+	public var index:int = -1;
+
+	//----------------------------------
+	//  relativeTo
+	//----------------------------------
+
+	/**
+	 *  The location where the child component is added.
+	 */
+	public var relativeTo:DisplayObjectContainer;
+
+	//----------------------------------
+	//  position
+	//----------------------------------
+
+	/**
+	 *  The position of the child component, relative to relativeTo, where it is added.
+	 */
+	public var position:String;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function play():void
+	{
+		var targetDisplayObject:DisplayObject = DisplayObject(target);
+
+		// Dispatch an effectStart event from the target.
+		super.play();
+
+		if (!relativeTo && propertyChanges)
+		{
+			if (propertyChanges.start.parent == null &&
+				propertyChanges.end.parent != null)
+			{
+				relativeTo = propertyChanges.end.parent;
+				position = "index";
+				index = propertyChanges.end.index;
+			}
+		}
+
+		if (!mx_internal::playReversed)
+		{
+			// Set the style property
+			if (target && targetDisplayObject.parent == null && relativeTo)
+			{
+				switch (position)
+				{
+					case "index":
+					{
+						if (index == -1)
+							relativeTo.addChild(targetDisplayObject);
+						else
+							relativeTo.addChildAt(targetDisplayObject,
+												Math.min(index, relativeTo.numChildren));
+						break;
+					}
+
+					case "before":
+					{
+						relativeTo.parent.addChildAt(targetDisplayObject,
+							relativeTo.parent.getChildIndex(relativeTo));
+						break;
+					}
+
+					case "after":
+					{
+						relativeTo.parent.addChildAt(targetDisplayObject,
+							relativeTo.parent.getChildIndex(relativeTo) + 1);
+						break;
+					}
+
+					case "firstChild":
+					{
+						relativeTo.addChildAt(targetDisplayObject, 0);
+					}
+
+					case "lastChild":
+					{
+						relativeTo.addChild(targetDisplayObject);
+					}
+				}
+			}
+		}
+		else
+		{
+			if (target && relativeTo && targetDisplayObject.parent == relativeTo)
+			{
+				relativeTo.removeChild(targetDisplayObject);
+			}
+		}
+
+		// We're done...
+		finishRepeat();
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8486
Author:   smgilson@adobe.com
Date:     2009-07-09T18:42:45.734868Z

Log Message:
-----------
Third checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</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/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButtonGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</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/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Range.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataRenderer.as
+++ frameworks/projects/spark/src/spark/components/DataRenderer.as
@@ -32,7 +32,7 @@
  *
  *
Note: This class may be removed in a later release.

  *
- *  @mxml
The <DataRenderer> tag inherits all of the tag
+ *  @mxml
The <s:DataRenderer> tag inherits all of the tag
  *  attributes of its superclass and adds the following tag attributes:

  *
  *


handle null which could happen when restoring states

--- frameworks/as/src/org/apache/flex/html/staticControls/beads/TextFieldBeadBase.as
+++ frameworks/as/src/org/apache/flex/html/staticControls/beads/TextFieldBeadBase.as
@@ -79,7 +79,7 @@
 		public function set text(value:String):void
 		{
             if (value == null)
-                value == "";
+                value = "";
 			_textField.text = value;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 22625
Author:   chiedozi@adobe.com
Date:     2011-09-19T21:43:00.004916Z

Log Message:
-----------
Prevent the target view navigator from rendering through transparent backgrounds during a FlipViewTransition

QE notes:
Doc notes:
Bugs: SDK-31565,SDK-31564
Reviewer: Evtim
Tests run: checkintests-mobile, mustella-mobile
Is noteworthy for integration: No

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

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as
@@ -350,6 +350,18 @@
         // Align underside 'face' of our card.
         alignCardFaces(targetNavigator);

+        // When doing a consolidated card effect, the targetNavigator and actionBar
+        // need to be hidden in some use cases to prevent them from renderering
+        // through transparent backgrounds.  The visibility of the elements
+        // are retoggled in effectUpdateHandler().
+        if (actionBar)
+        {
+            navigatorProps.actionBarVisible = actionBar.visible;
+            actionBar.visible = false;
+        }
+
+        targetNavigator.setVisible(false, true);
+
         return createCardFlipAnimation(endView.width);
     }

@@ -440,9 +452,18 @@
         if(Math.abs(transitionGroup[animatedProp]) > 90)
         {
             if (!consolidatedTransition)
+            {
                 startView.visible = false;
+            }
             else
+            {
+                targetNavigator.setVisible(true, true);
+
+                if (actionBar)
+                    actionBar.visible = navigatorProps.actionBarVisible;
+
                 cachedNavigator.displayObject.visible = false;
+            }
         }

         // Ensure transform matrix is updated even when layout is disabled.
@@ -696,16 +717,16 @@
         // to be run multiple times.  So we listen for the events and prevent
         // them from propagating.
         if (endView.hasEventListener(FlexEvent.ADD))
-            endView.addEventListener(FlexEvent.ADD, view_addOrRemoveHandler, false, 1);
+            endView.addEventListener(FlexEvent.ADD, stopNavigatorEventFromPropagating, false, 1);

         if (endView.hasEventListener(FlexEvent.REMOVE))
-            endView.addEventListener(FlexEvent.REMOVE, view_addOrRemoveHandler, false, 1);
+            endView.addEventListener(FlexEvent.REMOVE, stopNavigatorEventFromPropagating, false, 1);

         if (startView.hasEventListener(FlexEvent.ADD))
-            startView.addEventListener(FlexEvent.ADD, view_addOrRemoveHandler, false, 1);
+            startView.addEventListener(FlexEvent.ADD, stopNavigatorEventFromPropagating, false, 1);

         if (startView.hasEventListener(FlexEvent.REMOVE))
-            startView.addEventListener(FlexEvent.REMOVE, view_addOrRemoveHandler, false, 1);
+            startView.addEventListener(FlexEvent.REMOVE, stopNavigatorEventFromPropagating, false, 1);

         // Reparent the start and end views into the transition group
         transitionGroup.addElement(endView);
@@ -718,7 +739,7 @@
     /**
      *  @private
      */
-    private function view_addOrRemoveHandler(event:FlexEvent):void
+    private function stopNavigatorEventFromPropagating(event:FlexEvent):void
     {
         event.stopImmediatePropagation();
     }
@@ -874,16 +895,16 @@

             // Remove add handlers added to the views
             if (endView.hasEventListener(FlexEvent.ADD))
-                endView.removeEventListener(FlexEvent.ADD, view_addOrRemoveHandler);
+                endView.removeEventListener(FlexEvent.ADD, stopNavigatorEventFromPropagating);

             if (endView.hasEventListener(FlexEvent.REMOVE))
-                endView.removeEventListener(FlexEvent.REMOVE, view_addOrRemoveHandler);
+                endView.removeEventListener(FlexEvent.REMOVE, stopNavigatorEventFromPropagating);

             if (startView.hasEventListener(FlexEvent.ADD))
-                startView.removeEventListener(FlexEvent.ADD, view_addOrRemoveHandler);
+                startView.removeEventListener(FlexEvent.ADD, stopNavigatorEventFromPropagating);

             if (startView.hasEventListener(FlexEvent.REMOVE))
-                startView.removeEventListener(FlexEvent.REMOVE, view_addOrRemoveHandler);
+                startView.removeEventListener(FlexEvent.REMOVE, stopNavigatorEventFromPropagating);

             // Extract our temporary transition group.
             Group(transitionGroup.parent).removeElement(transitionGroup);
@@ -892,6 +913,7 @@
             if (startView)
             {
                 startView.includeInLayout = startViewProps.includeInLayout;
+                startView.visible = true;
                 startViewProps = null;
             }


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

--- frameworks/projects/framework/src/mx/events/ResourceEvent.as
+++ frameworks/projects/framework/src/mx/events/ResourceEvent.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.events
 {


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

--- frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as
+++ frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 10187
Author:   klin@adobe.com
Date:     2009-09-12T00:07:52.521170Z

Log Message:
-----------
Fix focusSkin not accounting for dynamic focusThickness.

QE Notes: None
Doc Notes: None
Bugs: SDK-23043
Reviewer: Glenn
API Change: No
Is noteworthy for integration: No
tests: checkintests

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as

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

--- frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as
@@ -299,9 +299,9 @@
         {
             bitmap = new Bitmap();
             addChild(bitmap);
-            bitmap.x = bitmap.y = -focusThickness;
-        }
-
+        }
+
+        bitmap.x = bitmap.y = -focusThickness;
         bitmap.bitmapData = bitmapData;

         blendMode = focusObject.getStyle("focusBlendMode");


Switching variable prefix from $ to underscores.

git-svn-id: a0b640c5f6b946a52999c53230b38d51de4b98a3@8553 dfb7d73b-c2ec-0310-8fea-fb051d288c6d

--- Templates/Singleton.tmTemplate/class.as
+++ Templates/Singleton.tmTemplate/class.as
@@ -25,17 +25,17 @@
 		//  SINGLETON CONSTRUCTION
 		//--------------------------------------

-		private static var $instance : ${TM_NEW_FILE_BASENAME};
+		private static var _instance : ${TM_NEW_FILE_BASENAME};

 		public static function get instance() : ${TM_NEW_FILE_BASENAME} {
 			return initialize();
 		}

 		public static function initialize() : ${TM_NEW_FILE_BASENAME} {
-			if ($instance == null){
-				$instance = new ${TM_NEW_FILE_BASENAME}();
+			if (_instance == null){
+				_instance = new ${TM_NEW_FILE_BASENAME}();
 			}
-			return $instance;
+			return _instance;
 		}

 		/**
@@ -46,8 +46,8 @@
 		*/
 		public function ${TM_NEW_FILE_BASENAME}(){
 			super();
-			if( $instance != null ) throw new Error( "Error:${TM_NEW_FILE_BASENAME} already initialised." );
-			if( $instance == null ) $instance = this;
+			if( _instance != null ) throw new Error( "Error:${TM_NEW_FILE_BASENAME} already initialised." );
+			if( _instance == null ) _instance = this;
 		}

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


Booting support to the AS version of TableDirector

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

--- src/as/com/threerings/parlor/client/TableDirector.as
+++ src/as/com/threerings/parlor/client/TableDirector.as
@@ -243,6 +243,20 @@
         _tlobj.getTableService().startTableNow(_ctx.getClient(), tableId, this);
     }

+    /**
+     * Sends a request to boot a player from a table.
+     */
+    public function bootPlayer (tableId :int, bodyId :int) :void
+    {
+        if (_tlobj == null) {
+            log.warning("Requesting to boot a player from a table we're not currently in " +
+                        "[tableId=" + tableId + ", target=" + bodyId + "].");
+            return;
+        }
+
+        _tlobj.getTableService().bootPlayer(_ctx.getClient(), tableId, bodyId, this);
+    }
+
     // documentation inherited
     override public function clientDidLogoff (event :ClientEvent) :void
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/collections/errors/CollectionViewError.as
+++ frameworks/projects/framework/src/mx/collections/errors/CollectionViewError.as
@@ -0,0 +1,42 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections.errors
+{
+
+/**
+ *  The CollectionViewError class represents general errors
+ *  within a collection that are not related to specific activities
+ *  such as Cursor seeking.
+ *  Errors of this class are thrown by the ListCollectionView class.
+ */
+public class CollectionViewError extends Error
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    // Constructor.
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+	 *
+	 *  @param message A message providing information about the error cause.
+     */
+    public function CollectionViewError(message:String)
+    {
+        super(message);
+    }
+}
+
+}


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

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

 package mx.controls.listClasses
 {


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

--- frameworks/projects/framework/src/mx/controls/listClasses/IListItemRenderer.as
+++ frameworks/projects/framework/src/mx/controls/listClasses/IListItemRenderer.as
@@ -55,6 +55,11 @@
  *  a new data and optional listData property.
  *  Therefore in your implementation you must make sure that component
  *  properties are not assumed to contain their initial, or default values.

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface IListItemRenderer extends IDataRenderer, IEventDispatcher,
 										   IFlexDisplayObject,


Transferred from the Adobe Open Source Subversion Repository

Revision: 8736
Author:   chaase@adobe.com
Date:     2009-07-22T18:18:22.159004Z

Log Message:
-----------
Fixed bug in ScrollBar where we were trying to animate stepping toward the end of the range when we'd already reached it. This caused an artifact where the thumb would jump up and down one step as it got confused about which direction it was stepping for this end condition. Fix: avoid running the animation if we're already at the end.

QE Notes: None
Doc Notes: None
Bugs: sdk-22241
Reviewer: Hans
API Change: None
Is noteworthy for integration: No
tests: checkintests mustella gumbo/components/ScrollBar gumbo/components/Scroller

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as
@@ -721,7 +721,10 @@
             // about whether we should animate the first step too
             changeValueByStep(increment);

-            if (getStyle("smoothScrolling"))
+            // Only animate if smoothScrolling enabled and we're not at the end already
+            if (getStyle("smoothScrolling") &&
+                ((increment && value < maximum) ||
+                 (!increment && value > minimum)))
             {
                 systemManager.getSandboxRoot().addEventListener(MouseEvent.MOUSE_UP,
                     button_buttonUpHandler, true);


Transferred from the Adobe Open Source Subversion Repository

Revision: 3509
Author:   jimurphy@adobe.com
Date:     2008-10-07T18:19:17.646255Z

Log Message:
-----------
Rename of flex -> mx.

For compatibility reasons it was decided that the new functionality remain integrated with the old framework, although we will continue to build two separate SWCs, one with primarily existing framework classes, and one with new Flex 4 classes. This change removes duplicate names from the Flex 4 framework to avoid class name overlapping with the old framework code.  The naming overlap consists of two major areas:  New Components, and New Effects

Modified Paths:
--------------
386 paths were modified

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/FilledElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/FilledElement.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package flex.graphics
+package mx.graphics
 {

 import flash.display.Graphics;


formatting whitespace

formatting whitespace


Transferred from the Adobe Open Source Subversion Repository

Revision: 3705
Author:   mhorn@adobe.com
Date:     2008-10-17T15:24:32.617729Z

Log Message:
-----------
asdoc updates

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/MaskType.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/styles/metadata/AdvancedParagraphFormatTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
@@ -23,7 +23,7 @@
 import mx.utils.NameUtil;

 /**
- *  The base class for text-related FXG classes such as TextGraphic.
+ *  The base class for text-related FXG classes such as TextGraphic and TextBox.
  */
 public class TextGraphicElement extends GraphicElement
     implements IStyleClient
@@ -246,7 +246,7 @@
     mx_internal var _text:String = "";

     /**
-     *  Documentation is not currently available.
+     *  The text in this element.
      */
     public function get text():String
     {
@@ -380,24 +380,24 @@
     //--------------------------------------------------------------------------

     /**
+     *  @inheritDoc
+     */
+    public function stylesInitialized():void
+    {
+    }
+
+    /**
+     *  @private
      *  Documentation is not currently available.
      */
-    public function stylesInitialized():void
-    {
-    }
-
-    /**
-     *  @private
+    mx_internal function initProtoChain():void
+    {
+        StyleProtoChain.initProtoChain(this);
+    }
+
+    /**
      *  Documentation is not currently available.
      */
-    mx_internal function initProtoChain():void
-    {
-        StyleProtoChain.initProtoChain(this);
-    }
-
-    /**
-     *  Documentation is not currently available.
-     */
     protected function invalidateTextLines(cause:String):void
     {
     }


Modified by Michael

Modified by Michael

--- src/org/flintparticles/integration/flare3d/v2/F3DRenderer.as
+++ src/org/flintparticles/integration/flare3d/v2/F3DRenderer.as
@@ -143,10 +143,10 @@
 								var 	g:Number =  ( ( pcolor >>> 8 ) & 255 ) / 255;
 								var 		b:Number =  ( ( pcolor ) & 255 ) / 255;
 								var a:Number =  ( ( pcolor >>> 24 ) & 255 ) / 255;
-								ColorFilter(currentLayer).r=r;
-								ColorFilter(currentLayer).g=g;
-								ColorFilter(currentLayer).b=b;
-								ColorFilter(currentLayer).a=a;
+								currentLayer["r"]=r;
+								currentLayer["g"]=g;
+								currentLayer["b"]=b;
+								currentLayer["a"]=a;

 							}
 							////wait till Flare has clone ,currently need to create a new material each time and also clone the bitmapdata


Transferred from the Adobe Open Source Subversion Repository

Revision: 22701
Author:   deeptika@adobe.com
Date:     2011-09-23T05:21:28.705641Z

Log Message:
-----------
QE notes:
Doc notes:
Bugs: FLEXDMV-2658 (Focus will be out of the swf application when holding down the Tab key on the AdvancedDataGrid)
Reviewer:
Tests run: checkintests, fix tested by support team
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as

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

--- frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
+++ frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
@@ -5226,7 +5226,7 @@
         // some other thing like a collection change has changed the
         // position, so bail and wait for commit to reset the editor.
         if (_proposedEditedItemPosition !== undefined)
-            return false;
+            return true;

         _editedItemPosition = lastEditedItemPosition;

@@ -5251,8 +5251,16 @@
                 index += incr;
                 if (index > maxIndex || index < 0)
                 {
-                    loseFocus();
-                    return false;
+					if (endEdit(AdvancedDataGridEventReason.NEW_ROW))
+					{
+						// if we've fallen off the rows, we need to leave the grid. get rid of the editor
+						setEditedItemPosition(null);
+
+						// set focus back to the grid so default handler will move it to the next component
+						deferFocus();
+						return false;
+					}
+                    return true;
                 }
             }

@@ -5363,7 +5371,10 @@
                 if (itemEditorInstance && itemEditorInstance is UIComponent)
                     UIComponent(itemEditorInstance).drawFocus(false);

-                // must call removeChild() so FocusManager.lastFocus becomes null
+				// setfocus back to us so something on stage has focus
+				deferFocus();
+
+				// must call removeChild() so FocusManager.lastFocus becomes null
                 itemEditorInstance.parent.removeChild(DisplayObject(itemEditorInstance));

                 // we are not setting the item renderer's visibility to false while creating an editor,
@@ -5416,6 +5427,18 @@

         return !(advancedDataGridEvent.isDefaultPrevented())
     }
+
+	/**
+	 *  @private
+	 *  Sets focus back to the grid so default handler will move it to the
+	 *  next component.
+	 */
+	private function deferFocus():void
+	{
+		losingFocus = true;
+		setFocus();
+		losingFocus = false;
+	}

     /**
      *  @private
@@ -7373,8 +7396,12 @@
 	                if (_columns[_editedItemPosition.columnIndex].editable &&
 	                    _columns[_editedItemPosition.columnIndex].visible)
 	                {
-                        foundOne = true;
-                        break;
+						var row:Array = listItems[_editedItemPosition.rowIndex];
+						if (row && row[_editedItemPosition.columnIndex])
+						{
+							foundOne = true;
+							break;
+						}
 	                }
 	            }

@@ -8136,8 +8163,8 @@
         if (itemEditorInstance)
         {
             endEdit(AdvancedDataGridEventReason.OTHER);
-            losingFocus = true;
-            setFocus();
+			losingFocus = true;
+			setFocus();
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19614
Author:   mcho@adobe.com
Date:     2011-01-05T23:34:52.119707Z

Log Message:
-----------
Text alignment for LabelItemRenderer and IconItemRenderer

QE notes:
Doc notes:
Bugs:
Reviewer: ryan f, jason sj
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
@@ -15,9 +15,11 @@
 import flash.events.TimerEvent;
 import flash.net.URLRequest;
 import flash.text.TextFieldType;
+import flash.text.TextLineMetrics;
 import flash.utils.Timer;

 import mx.controls.listClasses.*;
+import mx.core.DPIClassification;
 import mx.core.IFlexDisplayObject;
 import mx.core.IVisualElement;
 import mx.core.UIComponentGlobals;
@@ -1699,7 +1701,10 @@
         if (numHorizontalSections > 0)
             paddingAndGapWidth += (getStyle("horizontalGap") * (numHorizontalSections - 1));

-        var verticalGap:Number = (labelDisplay && messageDisplay) ? getStyle("verticalGap") : 0;
+		var hasLabel:Boolean = labelDisplay && labelDisplay.text != "";
+		var hasMessage:Boolean = messageDisplay && messageDisplay.text != "";
+
+        var verticalGap:Number = (hasLabel && hasMessage) ? getStyle("verticalGap") : 0;
         var paddingHeight:Number = getStyle("paddingTop") + getStyle("paddingBottom");

         // Icon is on left
@@ -1736,18 +1741,22 @@
         var labelHeight:Number = 0;
         var messageWidth:Number = 0;
         var messageHeight:Number = 0;
-
-        if (labelDisplay)
+
+		// FIXME mcho: use a baselineShift style
+		var labelShift:Number = 3;
+		var messageShift:Number = 4;
+
+        if (hasLabel)
         {
             // reset text if it was truncated before.
             if (labelDisplay.isTruncated)
                 labelDisplay.text = labelText;

             labelWidth = getElementPreferredWidth(labelDisplay);
-            labelHeight = getElementPreferredHeight(labelDisplay);
-        }
-
-        if (messageDisplay)
+            labelHeight = labelDisplay.getLineMetrics(0).ascent - labelShift;
+        }
+
+        if (hasMessage)
         {
             // now we need to measure messageDisplay's height.  Unfortunately, this is tricky and
             // is dependent on messageDisplay's width
@@ -1756,8 +1765,11 @@
             if (!isNaN(estimatedWidth))
                 messageDisplay.width = estimatedWidth - paddingAndGapWidth - decoratorWidth - myIconWidth;

+			var metrics:TextLineMetrics = messageDisplay.getLineMetrics(0);
             messageWidth = getElementPreferredWidth(messageDisplay);
-            messageHeight = getElementPreferredHeight(messageDisplay);
+            messageHeight = messageDisplay.measuredTextSize.y - StyleableTextField.TEXT_HEIGHT_PADDING - metrics.descent - messageShift;
+			if (messageDisplay.numLines == 1) // account for the extra leading on single line text
+				messageHeight -= metrics.leading;
         }

         myMeasuredWidth += Math.max(labelWidth, messageWidth);
@@ -1773,10 +1785,10 @@
         // now set the local variables to the member variables.  Make sure it means our
         // minimum height of 80
         measuredWidth = myMeasuredWidth
-        measuredHeight = Math.max(80, myMeasuredHeight);
+        measuredHeight = Math.max(itemMinimumHeight, myMeasuredHeight);

         measuredMinWidth = myMeasuredMinWidth;
-        measuredMinHeight = Math.max(80, myMeasuredMinHeight);
+        measuredMinHeight = Math.max(itemMinimumHeight, myMeasuredMinHeight);
     }

     /**
@@ -1853,13 +1865,16 @@
         var decoratorWidth:Number = 0;
         var decoratorHeight:Number = 0;

+		var hasLabel:Boolean = labelDisplay && labelDisplay.text != "";
+		var hasMessage:Boolean = messageDisplay && messageDisplay.text != "";
+
         var paddingLeft:Number   = getStyle("paddingLeft");
         var paddingRight:Number  = getStyle("paddingRight");
         var paddingTop:Number    = getStyle("paddingTop");
         var paddingBottom:Number = getStyle("paddingBottom");
         var horizontalGap:Number = getStyle("horizontalGap");
         var verticalAlign:String = getStyle("verticalAlign");
-        var verticalGap:Number   = (labelDisplay && messageDisplay) ? getStyle("verticalGap") : 0;
+        var verticalGap:Number   = (hasLabel && hasMessage) ? getStyle("verticalGap") : 0;

         var vAlign:Number;
         if (verticalAlign == "top")
@@ -1883,14 +1898,8 @@
             iconWidth = iconDisplay.getLayoutBoundsWidth();
             iconHeight = iconDisplay.getLayoutBoundsHeight();

-            // if there's no messageDisplay, then use vAlign to position the icon.
-            // otherwise, just position it at y = paddingTop
-            var iconDisplayY:Number;
-            if (!messageDisplay)
-                iconDisplayY = Math.round(vAlign * (viewHeight - iconHeight)) + paddingTop;
-            else
-                iconDisplayY = paddingTop;
-
+            // use vAlign to position the icon.
+			var iconDisplayY:Number = Math.round(vAlign * (viewHeight - iconHeight)) + paddingTop;
             setElementPosition(iconDisplay, paddingLeft, iconDisplayY);
         }

@@ -1924,7 +1933,7 @@
         // calculte the natural height for the label
         var labelTextHeight:Number = 0;

-        if (labelDisplay && labelText != "")
+        if (hasLabel)
         {
             // reset text if it was truncated before.
             if (labelDisplay.isTruncated)
@@ -1936,7 +1945,7 @@
             labelTextHeight = getElementPreferredHeight(labelDisplay);
         }

-        if (messageDisplay && messageText != "")
+        if (hasMessage)
         {
             // commit styles to make sure it uses updated look
             messageDisplay.commitStyles();
@@ -1955,7 +1964,7 @@
         var messageWidth:Number = 0;
         var messageHeight:Number = 0;

-        if (labelDisplay)
+        if (hasLabel)
         {
             // handle labelDisplay.  it can only be 1 line

@@ -1963,19 +1972,20 @@
             // height only takes up what it needs so we can properly place the message
             // and make sure verticalAlign is operating on a correct value.
             labelWidth = Math.max(labelComponentsViewWidth, 0);
-            labelHeight = Math.max(Math.min(viewHeight, labelTextHeight), 0);
+			labelHeight = labelTextHeight;
+
             setElementSize(labelDisplay, labelWidth, labelHeight);

             // attempt to truncate text
             labelDisplay.truncateToFit();
         }

-        if (messageDisplay)
+        if (hasMessage)
         {
             // handle message
             messageWidth = Math.max(labelComponentsViewWidth, 0);
-            messageHeight = Math.max(viewHeight - labelHeight - verticalGap, 0);
-
+
+			messageHeight = messageDisplay.measuredTextSize.y;
             setElementSize(messageDisplay, messageWidth, messageHeight);
             messageHeight = Math.max(0, Math.min(messageHeight, getElementPreferredHeight(messageDisplay)));

@@ -1986,17 +1996,39 @@
         }

         // Position the text components now that we know all heights so we can respect verticalAlign style
-        if (labelDisplay || messageDisplay)
-        {
-            var totalHeight:Number = labelHeight + messageHeight + verticalGap;
-            var labelComponentsY:Number = Math.round(vAlign * (viewHeight - totalHeight)) + paddingTop;
-
-            if (labelDisplay)
-                setElementPosition(labelDisplay, labelComponentsX, labelComponentsY);
-
-            if (messageDisplay)
-                setElementPosition(messageDisplay, labelComponentsX, labelComponentsY + labelHeight + verticalGap);
-        }
+		var totalHeight:Number = 0;
+		var labelComponentsY:Number = 0;
+
+		var labelAlignmentHeight:Number = 0;
+		var messageAlignmentHeight:Number = 0;
+
+		// FIXME mcho: use a baselineShift style
+		var labelShift:Number = 3;
+		var messageShift:Number = 4;
+
+		if (hasLabel)
+			labelAlignmentHeight = labelDisplay.getLineMetrics(0).ascent - labelShift;
+		if (hasMessage)
+		{
+			var metrics:TextLineMetrics = messageDisplay.getLineMetrics(0);
+			messageAlignmentHeight = messageDisplay.measuredTextSize.y - StyleableTextField.TEXT_HEIGHT_PADDING - metrics.descent - messageShift;
+			if (messageDisplay.numLines == 1) // account for the extra leading on single line text
+				messageAlignmentHeight -= metrics.leading;
+		}
+		totalHeight = labelAlignmentHeight + messageAlignmentHeight + verticalGap;
+		labelComponentsY = Math.round(vAlign * (viewHeight - totalHeight)) - StyleableTextField.TEXT_HEIGHT_PADDING/2 -
+			(hasLabel ? labelShift : messageShift) + paddingTop;
+
+		if (labelDisplay)
+			setElementPosition(labelDisplay, labelComponentsX, labelComponentsY);
+
+		if (messageDisplay)
+		{
+			var messageY:Number = labelComponentsY + labelAlignmentHeight + verticalGap;
+			if (hasLabel) // account for the differences in shifts
+				messageY += labelShift - messageShift;
+			setElementPosition(messageDisplay, labelComponentsX, messageY);
+		}

         // see if we have an icon that needs to be validated
         if (iconDisplay &&


Transferred from the Adobe Open Source Subversion Repository

Revision: 7256
Author:   aharui@adobe.com
Date:     2009-05-23T20:25:20.378550Z

Log Message:
-----------
Fix various Mustella failures due to frame1 cleanup

QE Notes: None
Doc Notes: None
Bugs: SDK-21372, SDK-21373, SDK-21374
Reviewer: Joan tested a cyclone
tests: checkintests mustella/components mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFont.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>

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

--- frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as
@@ -1215,7 +1215,7 @@
 			if (isRemotePopUp(awm.form) &&
 				RemotePopUp(awm.form).window == bridgeEvent.data.window &&
 				RemotePopUp(awm.form).bridge == bridgeEvent.data.notifier)
-				awm.deactivate(IFocusManagerContainer(awm.form));
+				awm.deactivate(awm.form);
 		}
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 21680
Author:   jszeto@adobe.com
Date:     2011-07-21T21:56:22.533455Z

Log Message:
-----------
Item Snapping, SpinnerList and DateSpinner Initial checkin

Merging in changes from sandbox development branch

SpinnerList and DateSpinner are in usable states, but there is still unimplemented functionality.

QE notes: none
Doc notes: none
Bugs: none
Reviewer: Tom Kraikit, Eric Day, Jason Szeto
Tests run: checkintests, full cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateAndTimeRangeList.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.settings/org.eclipse.core.resources.prefs</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListScrollerSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalendarDate.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSelectorDisplayMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.settings</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/SpinnerListContainerBackground.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/SpinnerListContainerBackground.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/DateSpinnerTest-app.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/effects/ThrowEffect.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/SpinnerListContainerBackground.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/views</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/layouts/VerticalSpinnerLayout.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.flexProperties</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/libs</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/bundles/en_US/components.properties</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/TouchScrollHelper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/TabbedViewNavigatorButtonBarFirstButton_down.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/DateSpinnerTest.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/blackberry-tablet.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/src/views/DateSpinnerTestHomeView.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="dir" action="M">/private/flex/sdk/branches/4.y</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/SpinnerListContainerSelectionIndicator.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/SpinnerListContainerSelectionIndicator.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListItemRenderer.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/.settings</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/SpinnerListContainerSelectionIndicator.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/development/eclipse/flex/DateSpinnerTest/.project</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/SpinnerListContainerShadow.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/SpinnerListContainerShadow.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/SpinnerListContainerShadow.fxg</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as
@@ -0,0 +1,35 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2011 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+package spark.components
+{
+/**
+ *  Container for one or more SpinnerLists. The SpinnerLists are laid out horizontally.
+ *  The SpinnerListContainerSkin displays a frame, shadow gradients and a selection indicator.
+ *
+ *  @langversion 3.0
+ *  @playerversion AIR 3
+ *  @productversion Flex 4.5.2
+ */
+public class SpinnerListContainer extends SkinnableContainer
+{
+	/**
+	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion AIR 3
+	 *  @productversion Flex 4.5.2
+	 */
+	public function SpinnerListContainer()
+	{
+		super();
+	}
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 14124
Author:   cframpto@adobe.com
Date:     2010-02-11T17:53:35.882363Z

Log Message:
-----------
Merge 14123 from 4.x branch to trunk.

Log Message:
***********
Two additions/corrections to 14076.  Add key mappings for layoutDirection="rtl" for spark list components.  Correct type of keyCode variable so it is an uint rather than an int to match event.keyCode.

BitmapImage has a hard-coded layout direction="ltr".

QE notes: For layoutDirection="rtl" need to test LEFT, RIGHT, UP and DOWN keys.
Doc notes: None
Bugs: SDK-25330
Reviewed By: Hans
Tests run: checkintests
Is noteworthy for integration: No

Ticket Links:
***********
    http://bugs.adobe.com/jira/browse/SDK-25330

Modified Paths:
**************
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/containers/Accordion.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/ButtonBar.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/CalendarLayout.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/ColorPicker.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/Menu.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/MenuBar.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/RadioButton.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/Tree.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/core/Container.as
    flex/sdk/branches/4.x/frameworks/projects/framework/src/mx/core/UIComponent.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/List.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/RadioButton.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
    flex/sdk/branches/4.x/frameworks/projects/spark/src/spark/primitives/BitmapImage.as

Property Changed:
****************
    flex/sdk/branches/4.x/frameworks/

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="dir" action="M">/flex/sdk/trunk/frameworks</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/sliderClasses/SliderThumb.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBarBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as
@@ -740,8 +740,9 @@

         if (!dropDownController.processKeyDown(event))
         {
-            var navigationUnit:uint = event.keyCode;
-
+            // If rtl layout, need to swap Keyboard.LEFT and Keyboard.RIGHT.
+            var navigationUnit:uint = mapKeycodeForLayoutDirection(event);
+
             if (findKey(event.charCode))
             {
                 event.preventDefault();
@@ -750,7 +751,7 @@

             if (!NavigationUnit.isNavigationUnit(navigationUnit))
                 return;
-
+
             var proposedNewIndex:int = NO_SELECTION;
             var currentIndex:int;


fix PropertyWatchers in chains.  They don't need to listen to a parent PropertyWatcher


handle more than one fx:style block

handle more than one fx:style block

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleCSSValuesImpl.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleCSSValuesImpl.as
@@ -82,6 +82,16 @@
 			}
 			c = mainClass.constructor as Class;
             generateCSSStyleDeclarations(c["factoryFunctions"], c["data"]);
+            var i:int = 1;
+            while (true)
+            {
+                var ffName:String = "factoryFunctions" + i.toString();
+                var ff:Object = c[ffName];
+                if (ff == null)
+                    break;
+                generateCSSStyleDeclarations(c[ffName], c["data" + i.toString()]);
+                i++;
+            }
         }

         /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 2817
Author:   egeorgie@adobe.com
Date:     2008-08-12T18:47:57.194886Z

Log Message:
-----------
apply GraphicElement transfrom in commitProperties instead of in setActualSize

Reviewed by Chet, Jason

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

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -1115,10 +1115,8 @@
         dispatchPropertyChangeEvent("rotation", oldValue, value);

         rotationChanged = true;
+        invalidateProperties();
         invalidateParentSizeAndDisplayList();
-        // TODO EGeorgie: currently we apply rotation during setActualSize,
-        // however we should do this on commitProperties.
-        // invalidateProperties();
     }

     //----------------------------------
@@ -1162,13 +1160,9 @@

         scaleXChanged = true;
         notifyElementLayerChanged();
-
+        invalidateProperties();
         // Parent layout takes transform into account
         invalidateParentSizeAndDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }

     //----------------------------------
@@ -1212,13 +1206,9 @@

         scaleYChanged = true;
         notifyElementLayerChanged();
-
+        invalidateProperties();
         // Parent layout takes transform into account
         invalidateParentSizeAndDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }

     //----------------------------------
@@ -1303,13 +1293,9 @@

         _transform = value;
         notifyElementLayerChanged();
-
+        invalidateProperties();
         // Parent layout takes transform into account
         invalidateParentSizeAndDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }

     //----------------------------------
@@ -1352,13 +1338,9 @@

         transformXChanged = true;
         notifyElementLayerChanged();
-
+        invalidateProperties();
         // Parent layout takes transform into account
         invalidateParentSizeAndDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }

     //----------------------------------
@@ -1400,13 +1382,9 @@

         transformYChanged = true;
         notifyElementLayerChanged();
-
+        invalidateProperties();
         // Parent layout takes transform into account
         invalidateParentSizeAndDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }

     //----------------------------------
@@ -1530,13 +1508,9 @@
         dispatchPropertyChangeEvent("x", oldValue, value);

         xChanged = true;
-
+        invalidateProperties();
         // Parent layout takes transform into account
         invalidateParentSizeAndDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }

     //----------------------------------
@@ -1580,13 +1554,9 @@
         dispatchPropertyChangeEvent("y", oldValue, value);

         yChanged = true;
-
+        invalidateProperties();
         // Parent layout takes transform into account
         invalidateParentSizeAndDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }

     //----------------------------------
@@ -1672,12 +1642,13 @@
         _displayObject = value;
         dispatchPropertyChangeEvent("displayObject", oldValue, value);

+        // We need to apply the display object related properties.
+        // TODO EGeorgie: add an option 'display object changed'
+        xChanged = yChanged = rotationChanged = true;
+        invalidateProperties();
+
         // New display object, we need to redraw
         invalidateDisplayList();
-
-        // TODO EGeorgie: apply the transform properties in commitProperties
-        // instead of in setActualSize, setActualPosition.
-        // invalidateProperties();
     }

     //--------------------------------------------------------------------------
@@ -1770,8 +1741,6 @@
         dispatchPropertyChangeEvent("includeInLayout", oldValue, value);

         invalidateParentSizeAndDisplayList();
-        // TODO EGeorgie: if the displayObject is shared, we need to
-        // invalidateDisplayList();
     }

     //----------------------------------
@@ -2136,6 +2105,15 @@
                 visibleChanged = false;
                 displayObject.visible = _visible;
             }
+
+            if (_matrix || scaleXChanged || scaleYChanged ||
+                rotationChanged || transformXChanged || transformYChanged)
+            {
+                commitScaleAndRotation();
+            }
+
+            if (xChanged || yChanged)
+                commitXY();
         }
     }

@@ -2323,19 +2301,11 @@
      */
     protected function computeMatrix(actualMatrix:Boolean):Matrix
     {
-        if (_matrix)
-            return TransformUtil.isDeltaIdentity(_matrix) ? null : _matrix;
-
-        if (_scaleX == 1 && _scaleY == 1 && _rotation == 0)
+        if (!displayObject)
             return null;

-        // TODO EGeorgie: share the duplicated code with the TransformUtil.applyTransforms?
-        var m:Matrix = new Matrix();
-        m.translate(-_transformX, -_transformY);
-        m.scale(_scaleX, _scaleY);
-        m.rotate(TransformUtil.rotationInRadians(_rotation));
-        m.translate(_transformX, _transformY);
-        return m;
+        var m:Matrix = displayObject.transform.matrix;
+        return TransformUtil.isDeltaIdentity(m) ? null : m;
     }

     /**
@@ -2492,9 +2462,6 @@
             invalidateDisplayList();
         }

-        // TODO EGeorgie: move to commit properties
-        // Finally, apply the transforms to the object
-        commitScaleAndRotation();
         return actualSize;
     }

@@ -2546,6 +2513,9 @@
         yChanged = false;

         endCommitTransformProps();
+
+        // TODO EGeorgie: if the drawing depends on x & y, we need to
+        // invalidateDisplayList();
     }

     /**
@@ -2684,15 +2654,12 @@
                 if (_transform)
                 {
                     _matrix = _transform.matrix.clone();
+
                     clearTransformProperties();
                     notifyElementLayerChanged();
-
+                    invalidateProperties();
                     // Parent layout takes transform into account
                     invalidateParentSizeAndDisplayList();
-
-                    // TODO EGeorgie: apply the transform properties in commitProperties
-                    // instead of in setActualSize, setActualPosition.
-                    // invalidateProperties();
                 }
             }
             else if (event.property == "colorTransform")


Transferred from the Adobe Open Source Subversion Repository

Revision: 3047
Author:   gruehle@adobe.com
Date:     2008-08-29T22:18:20.601349Z

Log Message:
-----------
Checking in for Jason.

This is the big display object sharing optimization for Group. Adjacent graphic elements that do not require their own display object now draw into a common shared display object.

There should be no functionality changes. The only exception is masks on graphic elements are broken. If you find any other functional differences, please file a bug.

The changes have been cycloned by the SDK QE and Thermo.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/IDisplayObjectElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Line.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/FilledElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/TextGraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as
@@ -11,26 +11,18 @@

 package flex.graphics
 {
-import flash.display.BlendMode;
-import flash.display.DisplayObject;
 import flash.display.Graphics;
+import flash.display.Shape;
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.EventDispatcher;
-import flash.geom.ColorTransform;
-import flash.geom.Matrix;
-import flash.geom.Point;
 import flash.geom.Rectangle;
-import flash.geom.Transform;

-import flex.intf.ILayoutItem;
 import flex.geom.Transform;
 import flex.graphics.graphicsClasses.GraphicElement;

 import mx.core.mx_internal;
-import mx.core.UIComponent;
 import mx.events.PropertyChangeEvent;
-import mx.events.PropertyChangeEventKind;
 import mx.filters.BaseFilter;
 import mx.filters.IBitmapFilter;
 import mx.graphics.IStroke;
@@ -63,33 +55,7 @@
 	//  Properties
 	//
 	//--------------------------------------------------------------------------
-
-	//----------------------------------
-	//  alwaysNeedsDisplayObject
-	//----------------------------------

-	private var _alwaysNeedsDisplayObject:Boolean = false;
-
-	/*
-	 *  Set this to true to force the Graphic Element to create an underlying Shape
-	 */
-	mx_internal function set alwaysNeedsDisplayObject(value:Boolean):void
-	{
-		if (value != _alwaysNeedsDisplayObject)
-		{
-			_alwaysNeedsDisplayObject = value;
-			notifyElementLayerChanged();
-		}
-	}
-
-	mx_internal function get alwaysNeedsDisplayObject():Boolean
-	{
-		return _alwaysNeedsDisplayObject;
-	}
-
-	// TODO!!! Optimize this so we don't always create a sprite
-	protected var needsSprite:Boolean = false;
-
 	//----------------------------------
 	//  stroke
 	//----------------------------------
@@ -145,14 +111,16 @@
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void
 	{
-	    if (!displayObject || !(displayObject is Sprite))
+		//trace("StrokedElement.updateDisplayList w",unscaledWidth,"h",unscaledHeight,"drawnDisplayObject",drawnDisplayObject,"this",this);
+	    if (!drawnDisplayObject || !(drawnDisplayObject is Sprite))
 	        return;
+
+	    if (displayObject is Sprite)
+	       	Sprite(displayObject).graphics.clear();
+	    else if (displayObject is Shape)
+	    	Shape(displayObject).graphics.clear();

-	    var g:Graphics = (displayObject as Sprite).graphics;
-
-	    // TODO EGeorgie: clearing the graphics needs to be shared when
-	    // the display objects are shared.
-	    g.clear();
+	    var g:Graphics = (drawnDisplayObject as Sprite).graphics;

 		beginDraw(g);
 		drawElement(g);
@@ -164,16 +132,6 @@
 	//  Methods
 	//
 	//--------------------------------------------------------------------------
-
-	protected function clearDisplayObject():void
-	{
-		if (displayObject)
-		{
-			if (displayObject.parent)
-				displayObject.parent.removeChild(displayObject);
-			displayObject = null;
-		}
-	}

 	/**
 	 *  Set up the drawing for this element. This is the first of three steps


Add error message to Packer.

Add error message to Packer.

--- lib/goplayer/Packer.as
+++ lib/goplayer/Packer.as
@@ -91,7 +91,7 @@
     else if (isImplicit(item))
       return (item as DisplayObject).width
     else
-      throw new Error
+      throw new Error("Invalid item: " + item)
   }

   private function isImplicit(item : Object) : Boolean


Brevify.

Brevify.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5398 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/util/MultiLoader.as
+++ src/as/com/threerings/util/MultiLoader.as
@@ -129,16 +129,8 @@
             var l :Loader = new Loader();
             var lc :LoaderContext = new LoaderContext(false, appDom);
             try {
-                // In Air players, LoaderContext has an additional property that dictates whether
-                // a Loader is allowed to load bytes that contain executable code (SWFs).  Since
-                // that is the default for non-air runtimes, and that is the expected behavior
-                // for MultiLoader, we set the property to true if it's found in the current
-                // runtime's LoaderContext.
-                Object(lc)["allowLoadBytesCodeExecution"] = true;
-            } catch (err :Error) {
-                // throw this away, it merely indicates the property was not found on the
-                // LoaderContext.
-            }
+                Object(lc)["allowLoadBytesCodeExecution"] = true; // AIR compatibility
+            } catch (err :Error) { /* We must not be in AIR! */ }
             // now we only need handle the two cases
             if (source is URLRequest) {
                 l.load(URLRequest(source), lc);


This is why MultiLoader didn't work in Air.  Explanatory comment below.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5397 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/util/MultiLoader.as
+++ src/as/com/threerings/util/MultiLoader.as
@@ -128,6 +128,17 @@
             }
             var l :Loader = new Loader();
             var lc :LoaderContext = new LoaderContext(false, appDom);
+            try {
+                // In Air players, LoaderContext has an additional property that dictates whether
+                // a Loader is allowed to load bytes that contain executable code (SWFs).  Since
+                // that is the default for non-air runtimes, and that is the expected behavior
+                // for MultiLoader, we set the property to true if it's found in the current
+                // runtime's LoaderContext.
+                Object(lc)["allowLoadBytesCodeExecution"] = true;
+            } catch (err :Error) {
+                // throw this away, it merely indicates the property was not found on the
+                // LoaderContext.
+            }
             // now we only need handle the two cases
             if (source is URLRequest) {
                 l.load(URLRequest(source), lc);


don't require all objects to have id properties

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as
@@ -180,6 +180,16 @@
                     comp.document = document;
                 else if (name == "_id")
                     id = value as String; // and don't assign to comp
+                else if (name == "id")
+                {
+                    // not all objects have to have their own id property
+                    try {
+                        comp["id"] = value;
+                    } catch (e:Error)
+                    {
+
+                    }
+                }
                 else
                     comp[name] = value;
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3085
Author:   chaase@adobe.com
Date:     2008-09-03T22:22:09.170095Z

Log Message:
-----------
New effects, as requested by Thermo (and which made sense for SDK effects as well):
Wait: This effect waits for either/both a timeout period and a specified event. useful for choreographing Effect sequences.
CallFunctionAction: When played, this effect calls a specified function with an optional list of parameters. Again, useful when choreographing multiple effects in a sequence, where a function might be called after/before specific effects are played.

Also, tweaked NumberInterpolator to clamp start/end values to the supplied start/end values, rather than depending on floating-point precision to round off correctly in the parametric calculation of the proper result.

Reviewed by Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/CallFunctionActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/CallFunctionAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/WaitInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Wait.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/CallActionInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/CallActionInstance.as
@@ -0,0 +1,99 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flex.effects.effectClasses
+{
+
+import mx.effects.effectClasses.ActionEffectInstance;
+
+/**
+ *  The CallFunctionActionInstance class implements the instance class
+ *  for the CallFunctionAction effect.
+ *  Flex creates an instance of this class when it plays a CallFunctionAction
+ *  effect; you do not create one yourself.
+ *
+ *  @see flex.effects.CallFunctionAction
+ */
+public class CallFunctionActionInstance extends ActionEffectInstance
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param target The Object to animate with this effect.
+     */
+    public function CallFunctionActionInstance(target:Object)
+    {
+        super(target);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  functionName
+    //----------------------------------
+
+    /**
+     * Function that will be called on the target when this effect plays
+     */
+    public var functionName:String;
+
+    //----------------------------------
+    //  parameters
+    //----------------------------------
+
+    /**
+     * Parameters that will be supplied to the function that is called
+     * by this effect
+     */
+    public var parameters:Array;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function play():void
+    {
+        // Dispatch an effectStart event from the target.
+        super.play();
+
+        if (parameters)
+        {
+            var theFunction:Function = target[functionName];
+            theFunction.apply(target, parameters);
+        }
+        else
+        {
+            target[functionName]();
+        }
+
+        // We're done...
+        finishRepeat();
+    }
+
+}
+}


Issue #89: Rename function that ensures known dynamic layer image formats.

--- src/com/esri/builder/model/ConfigLayer.as
+++ src/com/esri/builder/model/ConfigLayer.as
@@ -279,7 +279,7 @@
         // TODO - configLayer.displayLevels = displayLevels;
         var imageFormat:String = layerXML.@imageformat[0];
         var isDynamic:Boolean = (configLayer.type == DYNAMIC);
-        configLayer.imageFormat = isDynamic ? parseImageFormat(imageFormat) : imageFormat;
+        configLayer.imageFormat = isDynamic ? toKnownImageFormat(imageFormat) : imageFormat;
         configLayer.token = layerXML.@token;
         configLayer.url = layerXML.@url;
         const useproxy:String = layerXML.@useproxy;
@@ -343,9 +343,9 @@
         return configLayer;
     }

-    private static function parseImageFormat(imageFormat:String):String
-    {
-        var parsedImageFormat:String;
+    private static function toKnownImageFormat(imageFormat:String):String
+    {
+        var knownFormat:String;

         switch (imageFormat)
         {
@@ -354,16 +354,16 @@
             case "jpg":
             case "gif":
             {
-                parsedImageFormat = imageFormat;
+                knownFormat = imageFormat;
                 break;
             }
             default:
             {
-                parsedImageFormat = "png8";
-            }
-        }
-
-        return parsedImageFormat;
+                knownFormat = "png8";
+            }
+        }
+
+        return knownFormat;
     }

     public function encodeXML():XML


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/advancedgrids/src/mx/olap/aggregators/CountAggregator.as
+++ frameworks/projects/advancedgrids/src/mx/olap/aggregators/CountAggregator.as
@@ -0,0 +1,139 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.olap.aggregators
+{
+import mx.olap.IOLAPCustomAggregator;
+
+/**
+ *  The CountAggregator class  implements the count aggregator.
+ *  The count aggregator returns the count of the measures.
+ *  Flex uses this aggregator when you set the OLAPMeasure.aggregator property
+ *  to "COUNT".
+ *
+ *  @see mx.olap.OLAPMeasure
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class CountAggregator implements IOLAPCustomAggregator
+{
+	//--------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+
+	//count functions.
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+	public function computeBegin(dataField:String):Object
+	{
+		var newObj:Object = {};
+		newObj[dataField] = [];
+		newObj[dataField + "Counter"] = 0;
+		return newObj;
+	}
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+	public function computeLoop(data:Object, dataField:String, value:Object):void
+	{
+		if (!data.hasOwnProperty(dataField))
+		{
+			data[dataField] = [value[dataField]];
+			data[dataField + "Counter"] = 1;
+		}
+		else
+		{
+			data[dataField].push(value[dataField]);
+			data[dataField + "Counter"] = data[dataField + "Counter"] + 1;
+		}
+	}
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+	public function computeEnd(data:Object, dataField:String):Number
+	{
+		return data[dataField + "Counter"];
+	}
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+	public function computeObjectBegin(value:Object):Object
+	{
+		var newObj:Object = {};
+		for (var p:String in value)
+		{
+			newObj[p] = value[p];
+		}
+		return newObj;
+	}
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+	public function computeObjectLoop(oldValue:Object, newValue:Object):void
+	{
+		for (var p:String in newValue)
+		{
+			if (oldValue[p] is Array)
+				oldValue[p] = oldValue[p].concat(newValue[p]);
+			else
+			oldValue[p] += newValue[p];
+	    }
+	}
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+	public function computeObjectEnd(oldValue:Object, dataField:String):Number
+	{
+		return oldValue[dataField + "Counter"];
+	}
+}
+}


Move "if" statement checking for is type prepared for cloning to method Cloner.prepareTypeForCloning().

--- dolly-framework/src/main/actionscript/dolly/Cloner.as
+++ dolly-framework/src/main/actionscript/dolly/Cloner.as
@@ -37,6 +37,10 @@
 	}

 	private static function prepareTypeForCloning(type:Type):void {
+		if (isTypePreparedForCloning(type)) {
+			return;
+		}
+
 		ClassUtil.registerAliasFor(type.clazz);

 		_isClassPreparedForCloningMap[type.clazz] = true;
@@ -65,15 +69,13 @@
 			type = Type.forInstance(source);
 		}

-		if (!isTypePreparedForCloning(type)) {
-			prepareTypeForCloning(type);
-		}
+		prepareTypeForCloning(type);

 		const fieldsToClone:Vector.<Field> = findAllWritableFieldsForType(type);

 		for each(var field:Field in fieldsToClone) {
 			var fieldType:Type = field.type;
-			if (isTypeCloneable(fieldType) && !isTypePreparedForCloning(fieldType)) {
+			if (isTypeCloneable(fieldType)) {
 				prepareTypeForCloning(fieldType);
 			}
 		}


[SequenceChecker] Updated labels for alignment sequences from Query/Subject to Expected/Trace

git-svn-id: adbdea8fc1759bd16b0eaf24a244a7e5f870a654@84 fe3f0490-d73e-11de-a956-c71e7d3a9d2f

--- SequenceCheckerStandalone/src/org/jbei/registry/mediators/AlignmentPanelMediator.as
+++ SequenceCheckerStandalone/src/org/jbei/registry/mediators/AlignmentPanelMediator.as
@@ -85,9 +85,9 @@
 				var highlightedSubjectRowSequence:String = highlightMismatches(subjectRowSequence, queryRowSequence);

 				if(i == 0) {
-					output += "<b>Query  " + StringFormatter.sprintf("%5d", traceSequence.traceSequenceAlignment.queryStart) + ": </b>";
+					output += "<b>Expected " + StringFormatter.sprintf("%5d", traceSequence.traceSequenceAlignment.queryStart) + ": </b>";
 				} else {
-					output += "              ";
+					output += "                ";
 				}

 				output += highlightedQueryRowSequence;
@@ -99,9 +99,9 @@
 				output += "\n";

 				if(i == 0) {
-					output += "<b>Subject" + StringFormatter.sprintf("%5d", traceSequence.traceSequenceAlignment.subjectStart) + ": </b>";
+					output += "<b>Trace    " + StringFormatter.sprintf("%5d", traceSequence.traceSequenceAlignment.subjectStart) + ": </b>";
 				} else {
-					output += "              ";
+					output += "                ";
 				}

 				output += highlightedSubjectRowSequence;