Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

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

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

 package mx.collections
 {


Transferred from the Adobe Open Source Subversion Repository

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

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


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

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

--- frameworks/projects/charts/src/mx/styles/metadata/IconColorStyles.as
+++ frameworks/projects/charts/src/mx/styles/metadata/IconColorStyles.as
@@ -1,4 +1,30 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.
+//
+////////////////////////////////////////////////////////////////////////////////

+/**
+ *  The color for the icon in a skin.
+ *  For example, this style is used by the CheckBoxIcon skin class
+ *  to draw the check mark for a CheckBox control,
+ *  by the ComboBoxSkin class to draw the down arrow of the ComboBox control,
+ *  and by the DateChooserMonthArrowSkin skin class to draw the month arrow
+ *  for the DateChooser control.
+ *
+ *  The default value depends on the component class;
+ *  if it is not overridden by the class, the default value is 0x111111.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
 [Style(name="iconColor", type="uint", format="Color", inherit="yes")]

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 16664
Author:   ealimam@adobe.com
Date:     2010-06-24T21:39:07.894426Z

Log Message:
-----------
(Button Skin) Refactoring, clean-up

* Refactored common code out of createChildren and set currentState dealing with the setting of FXG artwork
* Refactored common text styling code out of createChildren andstyleChanged.
* Tweaked drawing of background rect to fill entire inner area of button.
* Other clean-up here and there.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/Button_bg_up.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as
@@ -41,27 +41,85 @@

 			_currentState = value;

-			if (_currentState == "down")
-			{
+			applyFXG();
+		}
+
+		//////////////////////////////////////////
+		// Methods
+		//////////////////////////////////////////
+
+		override protected function createChildren():void
+		{
+			// Set up text fields only if we have a hostComponent
+			if(hostComponent != null) {
+				var tf:TextFormat = new TextFormat;
+
+				textField = new TextField();
+				textFieldShadow = new TextField();
+
+				tf = setTextFormat(tf);
+
+				textField.defaultTextFormat = tf;
+				tf.color = 0x000000;
+				textFieldShadow.defaultTextFormat = tf;
+				textFieldShadow.alpha = .20;
+
+				addChild(textField);
+				addChild(textFieldShadow);
+			}
+
+			applyFXG();
+		}
+
+		override public function styleChanged(styleProp:String):void {
+			// TODO: Refactor to check whether styleProp is one of three following value types and update
+			// the styles accordingly:
+			// 1) Individual style name (e.g. "fontSize"). 2) "styleName". 3) null.
+			// If 1) reset only individual style. If 2) or 3), reset all styles
+
+			// Only deal with text if a hostComponent exists and text fields are not empty
+			if(hostComponent != null && textField != null && textFieldShadow != null) {
+				var tf:TextFormat = textField.defaultTextFormat;
+
+				tf = setTextFormat(tf);
+
+				textField.setTextFormat(tf);
+				tf.color = 0x000000;
+				textFieldShadow.setTextFormat(tf);
+				textFieldShadow.alpha = .20;
+			}
+			super.styleChanged(styleProp);
+		}
+
+		private function setTextFormat(tf:TextFormat):TextFormat {
+			tf.align = "center";
+			tf.color = getStyle("color");
+			tf.font = getStyle("fontFamily");
+			tf.size = getStyle("fontSize");
+			tf.bold = getStyle("fontWeight") == "bold";
+
+			return tf;
+		}
+
+		private function applyFXG():void {
+			if (_currentState == "down") {
 				if(bgImg != null) {
 					removeChild(bgImg);
 				}
 				bgImg = new Button_bg_down();
-				addChild(bgImg);
-				invalidateDisplayList();
-			}
-			else
-			{
-				if (!(bgImg is Button_bg_up))
-				{
+			}
+			else {
+				if (!(bgImg is Button_bg_up)) {
 					if(bgImg != null) {
 						removeChild(bgImg);
 					}
-
 					bgImg = new Button_bg_up();
-					addChild(bgImg);
-					invalidateDisplayList();
 				}
+			}
+
+			if(bgImg != null) {
+				addChild(bgImg);
+				invalidateDisplayList();
 			}

 			if(_currentState == "disabled") {
@@ -70,52 +128,7 @@
 			else
 				alpha = 1;
 		}
-
-		//////////////////////////////////////////
-		// Methods
-		//////////////////////////////////////////
-
-		override protected function createChildren():void
-		{
-			// Set up text fields only if we have a hostComponent
-			if(hostComponent != null) {
-				var tf:TextFormat = new TextFormat;
-
-				textField = new TextField();
-				textFieldShadow = new TextField();
-
-				tf.align = "center";
-				tf.color = getStyle("color");
-				tf.font = getStyle("fontFamily");
-				tf.size = getStyle("fontSize");
-				tf.bold = getStyle("fontWeight") == "bold";
-				textField.defaultTextFormat = tf;
-				tf.color = 0x000000;
-				textFieldShadow.defaultTextFormat = tf;
-				textFieldShadow.alpha = .20;
-
-				addChild(textField);
-				addChild(textFieldShadow);
-			}
-
-			if(_currentState == "down" ) {
-				if(bgImg != null) {
-					removeChild(bgImg);
-				}
-				bgImg = new Button_bg_down();
-			}
-			else {
-				if(bgImg != null) {
-					removeChild(bgImg);
-				}
-				bgImg = new Button_bg_up();
-			}
-
-			if(bgImg != null) {
-				addChild(bgImg);
-			}
-		}
-
+
 		override protected function commitProperties():void
 		{
 			if(hostComponent != null) {
@@ -123,19 +136,6 @@
 				textFieldShadow.text = hostComponent.label;
 			}
 		}
-//
-//		override public function getExplicitOrMeasuredWidth():Number
-//		{
-//			if(hostComponent != null)
-//				return textField.textWidth + 20;
-//
-//			return bgImg.width;
-//		}
-//
-//		override public function getExplicitOrMeasuredHeight():Number
-//		{
-//			return bgImg.height;
-//		}

 		override protected function measure():void
 		{
@@ -152,9 +152,6 @@

 			if(bgImg != null) {
 				bgImg.x = bgImg.y = 0.5;
-
-				// use when using fxg paths
-				//bgImg.x = bgImg.y = 0;
 				bgImg.width = unscaledWidth;
 				bgImg.height = unscaledHeight;
 			}
@@ -184,38 +181,17 @@
 			colors[0] = ColorUtil.adjustBrightness2(chromeColor, 20);
 			colors[1] = chromeColor;
 			colors[2] = ColorUtil.adjustBrightness2(chromeColor, -20);
-
+
 			graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, matrix);

-			// Draw the background rectangle within the border, so the corners of the rect don't spill over into the rounded corners of the Button
-			graphics.drawRect(1, 1, unscaledWidth - 2, unscaledHeight - 3);
+			// Draw the background rectangle within the border, so the corners of the rect don't
+			// spill over into the rounded corners of the Button
+			graphics.drawRect(1, 1, unscaledWidth - 1, unscaledHeight - 2);
 			graphics.endFill();

 			super.updateDisplayList(unscaledWidth, unscaledHeight);
 		}
-
-		override public function styleChanged(styleProp:String):void {
-			// Only deal with text if a hostComponent exists and text fields are not empty
-			if(hostComponent != null && textField != null && textFieldShadow != null) {
-				var tf:TextFormat = textField.defaultTextFormat;
-				tf.size = getStyle("fontSize");
-
-				if(getStyle("fontWeight") == "bold")
-					tf.bold = true ;
-				else if(getStyle("fontWeight") == "normal")
-					tf.bold = false;
-
-				tf.color = getStyle("color");
-				tf.align = "center";
-
-				textField.setTextFormat(tf);
-				tf.color = 0x000000;
-				textFieldShadow.setTextFormat(tf);
-				textFieldShadow.alpha = .20;
-			}
-			super.styleChanged(styleProp);
-		}
-
+
 		//////////////////////////////////////////
 		// Internals
 		//////////////////////////////////////////


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


Transferred from the Adobe Open Source Subversion Repository

Revision: 11899
Author:   rfrishbe@adobe.com
Date:     2009-11-17T18:24:33.641492Z

Log Message:
-----------
Cleaning up some FIXMEs assigned to me in the code:

In UIMC, we now call invalidateParentSizeAndDL() on setting explicitMaxWidth.  We already do this for explicitMaxHeight.  I also changed a FIXME around invalidateLayering() in to a TODO.

In GroupBase, I removed a FIXME around the focusPane as we are using the overlay API now.

In DataGroup, I changed a FIXME to a TODO with some clarifying comments.

In SkinnableContainer, I removed a FIXME and just commented on why it was needed.  I also removed another FIXME and some code now that it seems like we don’t need to do the array conversion with IDefferedInstance since the compiler handles it for us now.

In SkinnableDataContainer, I changed a FIXME around event delegation to a TODO.

In DropDownController, when you drag around the volume bar, the popup stays open even if the mouse isn’t over the open button or the dropdown.  However, when the mouse is released, we should immediately close the drop down, rather than wait for another mouseMove to occur.  This involved some refactoring of some code in to a private helper method.  The "@private" protected methods in DropDownController should probably be made mx_internal.  I will do that in a subsequent checkin.

QE notes: -
Doc notes: -
Bugs: -
Reviewer: Jason for the DropDownController change, Glenn for the rest
Tests run: checkintests, mustella FCK, Panel, SkinnableContainer, DropDownList
Is noteworthy for integration: No

Modified Paths:
--------------
<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/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.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/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -740,16 +740,13 @@
                 {
                     var sourceContent:Array = _placeHolderGroup.getMXMLContent();

-                    // FIXME (rfrishbe): investigate why we need this, especially if these elements shouldn't
-                    // be added to the place holder Group's display list
-                    // (aharui) They are added via calls to addElement if no other mxmlContent has been
-                    // set.  This is a typical pattern when creating views from AS.  Create the child,
-                    // create the parent, addElement the child to the parent.
-
                     // FIXME (rfrishbe): Also look at why we need a defensive copy for mxmlContent in Group,
                     // especially if we make it mx_internal.  Also look at controlBarContent.

-                    // Temporary workaround because copying content from one Group to another throws RTE
+                    // If a child element has been addElemented() to the placeHolderGroup,
+                    // then it wouldn't been added to the display list and we can't just
+                    // copy the mxmlContent from the placeHolderGroup, but we must also
+                    // call removeElement() on those children.
                     for (var i:int = _placeHolderGroup.numElements; i > 0; i--)
                     {
                         _placeHolderGroup.removeElementAt(0);
@@ -876,14 +873,8 @@

             if (_mxmlContentFactory)
             {
-                // FIXME (rfrishbe): If we have compiler support for deferred content
-                // to do autotype conversion (do I create a single object,
-                // an array, or an IList in the function)
                 var deferredContent:Object = _mxmlContentFactory.getInstance();
-                if (deferredContent is Array)
-                    mxmlContent = deferredContent as Array;
-                else
-                    mxmlContent = [deferredContent];
+                mxmlContent = deferredContent as Array;
                 _deferredContentCreated = true;
                 dispatchEvent(new FlexEvent(FlexEvent.CONTENT_CREATION_COMPLETE));
             }


change from mouse_down to click

change from mouse_down to click

--- src/flash/FlashMediaElement.as
+++ src/flash/FlashMediaElement.as
@@ -354,8 +354,8 @@
 			// listen for resize
 			stage.addEventListener(Event.RESIZE, resizeHandler);

-			// test
-			stage.addEventListener(MouseEvent.MOUSE_DOWN, stageClicked);
+			// send click events up to javascript
+			stage.addEventListener(MouseEvent.CLICK, stageClicked);

 			// resize
 			stage.addEventListener(FullScreenEvent.FULL_SCREEN, stageFullScreenChanged);


Occam's razor.

Occam's razor.

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

--- src/as/com/threerings/media/image/ImageUtil.as
+++ src/as/com/threerings/media/image/ImageUtil.as
@@ -19,7 +19,7 @@
     public static function createErrorImage (width :int, height :int) :Shape
     {
         var shape :Shape = new Shape();
-        shape.graphics.beginBitmapFill(createErrorBitmap(), null, true);
+        shape.graphics.beginBitmapFill(createErrorBitmap());
         shape.graphics.drawRect(0, 0, width, height);
         shape.graphics.endFill();
         return shape;


Wrong namespace was used when configuring a room, pointed out in http://www.igniterealtime.org/community/thread/41206

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

--- src/org/igniterealtime/xiff/conference/Room.as
+++ src/org/igniterealtime/xiff/conference/Room.as
@@ -363,6 +363,7 @@
 		 * form variables and the values being arrays. For single value fields, use a single
 		 * element array.
 		 * @see	#configureForm
+		 * @see http://xmpp.org/extensions/xep-0045.html#registrar-formtype-owner
 		 */
 		public function configure( fieldmap:Object ):void
 		{
@@ -377,7 +378,7 @@
 			else
 			{
 				form = new FormExtension();
-				fieldmap[ "FORM_TYPE" ] = [ MUCOwnerExtension.NS ];
+				fieldmap[ "FORM_TYPE" ] = [ "http://jabber.org/protocol/muc#roomconfig" ];
 				form.setFields( fieldmap );
 			}
 			form.type = FormExtension.TYPE_SUBMIT;


ensure that the "button" instance fills the Flash stage

--- src/flash/ZeroClipboard.as
+++ src/flash/ZeroClipboard.as
@@ -22,7 +22,8 @@

     public function ZeroClipboard() {
       // constructor, setup event listeners and external interfaces
-      stage.scaleMode = StageScaleMode.EXACT_FIT;
+      stage.align = "TL";
+      stage.scaleMode = "noScale";
       flash.system.Security.allowDomain("*");

       // import flashvars
@@ -34,7 +35,7 @@
       button.buttonMode = true;
       button.useHandCursor = true;
       button.graphics.beginFill(0xCCFF00);
-      button.graphics.drawRect(0, 0, Math.floor(flashvars.width), Math.floor(flashvars.height));
+      button.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
       button.alpha = 0.0;
       addChild(button);
       button.addEventListener(MouseEvent.CLICK, function(event:Event): void {


Transferred from the Adobe Open Source Subversion Repository

Revision: 16951
Author:   klin@adobe.com
Date:     2010-07-15T23:05:55.967699Z

Log Message:
-----------
The following changes apply to DataGrid only.

-Optimized getCellY so that it uses a recently searched row instead of always starting from the beginning
-setCellHeight now tries to correct the recently searched rows' y values instead of clearing them.
-Fixed getContentHeight so that it returns the correct height when the number of rows is specified.
-Initial implementation of insertRows which is used to handle ADD events from the data provider.

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

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as
@@ -46,6 +46,8 @@
     //cache for cumulative y values.
     private var startY:Number = 0;
     private var recentNode:GridRowNode = null;
+    private var startY2:Number = 0;
+    private var recentNode2:GridRowNode = null;

     private const typicalCellWidths:Array = new Array();
     private const typicalCellHeights:Array = new Array();
@@ -205,6 +207,7 @@

         // reset recent node.
         recentNode = null;
+        recentNode2 = null;
     }

     //----------------------------------
@@ -425,12 +428,21 @@
         if (!isNaN(fixedRowHeight))
             return;

-        var node:GridRowNode = rowList.insert(row);
-
-        if (node)
-        {
-           if (node.setCellHeight(col, height))
-                recentNode = null;
+        var node:GridRowNode = rowList.find(row);
+        var oldHeight:Number = defaultRowHeight;
+
+        if (node == null)
+            node = rowList.insert(row);
+        else
+            oldHeight = node.maxCellHeight;
+
+        if (node && node.setCellHeight(col, height))
+        {
+           if (recentNode && node.rowIndex < recentNode.rowIndex)
+               startY += node.maxCellHeight - oldHeight;
+
+           if (recentNode2 && node.rowIndex < recentNode2.rowIndex)
+               startY2 += node.maxCellHeight - oldHeight;
         }
     }

@@ -480,44 +492,133 @@
      *  Returns the Y coordinate of the origin of the specified cell.
      */
     public function getCellY(row:int, col:int):Number
-    {        // no cache so we use default heights for each row.
+    {
+        // no cache so we use default heights for each row.
         if (!isNaN(fixedRowHeight))
             return row * (fixedRowHeight + rowGap);

         if (rowList.length == 0)
             return row * (defaultRowHeight + rowGap);

-        var node:GridRowNode = rowList.first;
-        var y:Number = 0;
-        var index:int = 0;
+        if (row == 0)
+            return 0;
+
+        // initialize first node.
+        if (!recentNode2)
+        {
+            recentNode2 = rowList.first;
+            startY2 = recentNode2.rowIndex * (defaultRowHeight + rowGap);
+        }
+
+        var y:Number;
+        var recentIndex:int = recentNode2.rowIndex;
+
+        if (row == recentIndex)
+            y = startY2;
+        else if (row < recentIndex)
+            y = getPrevYAt(row, recentNode2, startY2);
+        else
+            y = getNextYAt(row, recentNode2, startY2);
+
+        return y;
+    }
+
+    /**
+     *  Returns the starting y value of the specified row. The row must be before
+     *  startNode.
+     *
+     *  @param row the target row
+     *  @param startNode the node to search from
+     *  @param startY the cumulative y value from the first row to the beginning
+     *  of startNode's row.
+     *
+     *  @return the y value of the start of the row.
+     */
+    private function getPrevYAt(row:int, startNode:GridRowNode, startY:Number):Number
+    {
+        var node:GridRowNode = startNode;
+        var nodeY:Number = startY;
+        var prevNode:GridRowNode;
+        var currentY:Number = startY;
+        var indDiff:int;

         while (node)
         {
-            // success case: row index is <= to node's index.
-            if (row <= node.rowIndex)
+            if (node.rowIndex == row)
+                break;
+
+            prevNode = node.prev;
+
+            if (!prevNode || (row < node.rowIndex && row > prevNode.rowIndex))
             {
-                y += (row - index) * (defaultRowHeight + rowGap);
-                return y;
+                // at the beginning or somewhere between nodes
+                // so we've found the target row.
+                indDiff = node.rowIndex - row;
+                currentY -= indDiff * (defaultRowHeight + rowGap);
+                break;
             }

-            // otherwise, row index is > node's index
-
-            // case if node index is much greater than current index.
-            if (node.rowIndex > index)
+            // subtract previous node's height and its gap.
+            indDiff = node.rowIndex - prevNode.rowIndex - 1;
+            nodeY = currentY = currentY - indDiff * (defaultRowHeight + rowGap) - (prevNode.maxCellHeight + rowGap);
+            node = prevNode;
+        }
+
+        this.recentNode2 = node;
+        this.startY2 = nodeY;
+
+        return currentY;
+    }
+
+    /**
+     *  Returns the starting y value of the specified row. The row must be after
+     *  startNode.
+     *
+     *  @param row the target row
+     *  @param startNode the node to search from
+     *  @param startY the cumulative y value from the first row to beginning of
+     *  startNode's row.
+     *
+     *  @return the y value of the start of the row.
+     */
+    private function getNextYAt(row:int, startNode:GridRowNode, startY:Number):Number
+    {
+        var node:GridRowNode = startNode;
+        var nodeY:Number = startY;
+        var nextNode:GridRowNode;
+        var currentY:Number = startY;
+        var indDiff:int;
+
+        while (node)
+        {
+            if (node.rowIndex == row)
+                break;
+
+            currentY += node.maxCellHeight;
+            if (node.rowIndex < _rowCount - 1)
+                currentY += rowGap;
+
+            nextNode = node.next;
+
+            if (!nextNode || (row > node.rowIndex && row < nextNode.rowIndex))
             {
-                y += (node.rowIndex - index) * (defaultRowHeight + rowGap);
-                index += node.rowIndex - index; // index == node.rowIndex
+                // at the beginning or somewhere between nodes
+                // so we've found the target row.
+                indDiff = row - node.rowIndex - 1;
+                currentY += indDiff * (defaultRowHeight + rowGap);
+                break;
             }

-            // index is now equal to node's index but row index is > node's index so we add node.
-            y += node.maxCellHeight;
-            index++;
-            node = node.next;
-        }
-
-        // no more nodes, so we just add the rest.
-        y += (row - index) * (defaultRowHeight + rowGap);
-        return y;
+            // add next node's maxCellHeight and rowGap
+            indDiff = nextNode.rowIndex - node.rowIndex - 1;
+            nodeY = currentY = currentY + indDiff * (defaultRowHeight + rowGap);
+            node = nextNode;
+        }
+
+        this.recentNode2 = node;
+        this.startY2 = nodeY;
+
+        return currentY;
     }

     /**
@@ -572,10 +673,7 @@
             return y / (defaultRowHeight + rowGap);

         if (y == 0)
-        {
-            recentNode = null;
             return 0;
-        }

         // initialize first node.
         if (!recentNode)
@@ -633,7 +731,7 @@
         var currentY:Number = startY;
         var prevY:Number;
         var targetY:Number = y;
-
+
         while (node)
         {
             // check the current node.
@@ -696,7 +794,7 @@
         var currentY:Number = startY;
         var nextY:Number;
         var targetY:Number = y;
-
+
         while (node)
         {
             // check the current node.
@@ -826,14 +924,18 @@
         var node:GridRowNode = rowList.first;
         var numRows:int = 0;

-        while (node)
+        while (node && node.rowIndex < nRows)
         {
             height += node.maxCellHeight;
             numRows++;
             node = node.next;
         }

-        return height + ((nRows - numRows) * (defaultRowHeight) + (nRows - 1) * rowGap);
+        var contentHeight:Number = height + (nRows - numRows) * defaultRowHeight;
+        if (nRows > 1)
+            contentHeight += (nRows - 1) * rowGap;
+
+        return contentHeight;
     }

     /**
@@ -900,19 +1002,25 @@
      */
     public function insertRows(startRow:int, count:int):void
     {
-        var startNode:GridRowNode = rowList.findNearest(startRow);
-        var tempNode:GridRowNode;
-
-        // shift indices by count.
-        if (startNode)
-            tempNode = startNode.next;
-        while (tempNode)
-        {
-            tempNode.rowIndex += count;
-            tempNode = tempNode.next;
+        if (startRow < 0 || count <= 0)
+            return;
+
+        var node:GridRowNode = rowList.findNearest(startRow);
+
+        // start on the index we're inserting at.
+        if (node && node.rowIndex < startRow)
+            node = node.next;
+        while (node)
+        {
+            node.rowIndex += count;
+            node = node.next;
         }

         this.rowCount += count;
+
+        // cache is invalid now.
+        recentNode = null;
+        recentNode2 = null;
     }

     /**
@@ -966,7 +1074,9 @@
         rowCount = 0;
         rowList.removeAll();
         this.recentNode = null;
+        this.recentNode2 = null;
         this.startY = 0;
+        this.startY2 = 0;
     }

     /**
@@ -995,7 +1105,7 @@
      */
     private function dataProviderCollectionAdd(event:CollectionEvent):Boolean
     {
-        rowCount +=  event.items.length;
+        insertRows(event.location, event.items.length);
         return true;
     }


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

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

 package mx.collections
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3553
Author:   chaase@adobe.com
Date:     2008-10-09T23:14:18.257660Z

Log Message:
-----------
Fixed sdk-17113, sdk-17139, sdk-16526, sdk-16884, sdk-17154, sdk-16999, sdk-16631, sdk-17214. Most of these fixes are related to making effects work when contraints are enabled on the target. For that, two new attributes were added to FxAnimate: disableLayout (default false) and adjustConstraints (default false). Fixes were also made for various other effects issues, such as running all animations and startDelays off of the same global timer.
The change also includes renames of some effects classes and the easing API (now in mx.effects.interpolation).

Reviewed by: Jason (effects code) and Hans (renames)
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/IEaser.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/IEaser.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Linear.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/Animate3DInstance.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animate3D.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/Animate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Timeline.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Constant.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Constant.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/Rotate3DInstance.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateFilter.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Rotate3D.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate3D.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/EaseInOut.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/EaseInOut.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Power.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Power.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/Rotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Sine.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Sine.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Rotate3D.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/ResizeInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/ResizeInstance.as
@@ -242,77 +242,10 @@
         // effects manually on the children themselves
         var childrenHiding:Boolean = false; // hidePanelChildren();

-        if (target is IStyleClient)
-        {
-            var left:* = target.getStyle("left");
-            if (left != undefined)
-                target.setStyle("left",undefined);
-
-            var right:* = target.getStyle("right");
-            if (right != undefined)
-                target.setStyle("right",undefined);
-
-            var top:* = target.getStyle("top");
-            if (top != undefined)
-                target.setStyle("top",undefined);
-
-            var bottom:* = target.getStyle("bottom");
-            if (bottom != undefined)
-                target.setStyle("bottom",undefined);
-        }
-
         propertyValuesList =
             [new PropertyValuesHolder("width", [widthFrom, widthTo]),
              new PropertyValuesHolder("height", [heightFrom, heightTo])];
-
-        // TODO: These additional pvholder items are a workaround for the
-        // current difference between GraphicElement constraints and
-        // UIComponent constraints. For components, the constraints
-        // side-effect the width/height properties which we can then animate.
-        // For GraphicElements, this does not happen, so animations on
-        // width/height are ignored when constraints are set.
-        // Expect this to change with GraphicElement and UIComponent are
-        // more closely aligned in behavior.
-        if (target is IGraphicElement && propertyChanges)
-        {
-            if (propertyChanges.start["left"] !== undefined ||
-                propertyChanges.start["right"] !== undefined ||
-                propertyChanges.end["left"] !== undefined ||
-                propertyChanges.end["right"] !== undefined)
-            {
-                var lFrom:Number = (propertyChanges.start["left"] !== undefined) ?
-                    propertyChanges.start["left"] : getCurrentValue("left");
-                var rFrom:Number = (propertyChanges.start["right"] !== undefined) ?
-                    propertyChanges.start["right"] : getCurrentValue("right");
-                var lTo:Number = (propertyChanges.end["left"] !== undefined) ?
-                    propertyChanges.end["left"] : getCurrentValue("left");
-                var rTo:Number = (propertyChanges.end["right"] !== undefined) ?
-                    propertyChanges.end["right"] : getCurrentValue("right");
-                if (!isNaN(lFrom) && !isNaN(lTo))
-                    propertyValuesList.push(new PropertyValuesHolder("left", [lFrom, lTo]));
-                if (!isNaN(rFrom) && !isNaN(rTo))
-                    propertyValuesList.push(new PropertyValuesHolder("right", [rFrom, rTo]));
-            }
-            if (propertyChanges.start["top"] !== undefined ||
-                propertyChanges.start["bottom"] !== undefined ||
-                propertyChanges.end["top"] !== undefined ||
-                propertyChanges.end["bottom"] !== undefined)
-            {
-                var tFrom:Number = (propertyChanges.start["top"] !== undefined) ?
-                    propertyChanges.start["top"] : getCurrentValue("top");
-                var bFrom:Number = (propertyChanges.start["bottom"] !== undefined) ?
-                    propertyChanges.start["bottom"] : getCurrentValue("bottom");
-                var tTo:Number = (propertyChanges.end["top"] !== undefined) ?
-                    propertyChanges.end["top"] : getCurrentValue("top");
-                var bTo:Number = (propertyChanges.end["bottom"] !== undefined) ?
-                    propertyChanges.end["bottom"] : getCurrentValue("bottom");
-                if (!isNaN(tFrom) && !isNaN(tTo))
-                    propertyValuesList.push(new PropertyValuesHolder("top", [tFrom, tTo]));
-                if (!isNaN(bFrom) && !isNaN(bTo))
-                    propertyValuesList.push(new PropertyValuesHolder("bottom", [bFrom, bTo]));
-            }
-        }
-
+
         super.play();

         if (childrenHiding)


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

--- frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as
+++ frameworks/projects/framework/src/mx/containers/utilityClasses/Flex.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-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: 19722
Author:   egeorgie@adobe.com
Date:     2011-01-12T00:53:24.336848Z

Log Message:
-----------
Fix popups/tooltips and scaling bugs:
Slider tooltip renders far above under 2.0 scaling - http://bugs.adobe.com/jira/browse/SDK-28833
Mobile HSliderSkin dataTip sometimes stops following the thumb all the way to the right edge - http://bugs.adobe.com/jira/browse/SDK-28762
When the app is scaled, DropDownList shows the list at wrong place - http://bugs.adobe.com/jira/browse/SDK-28818

In this change:
- update popup/tooltip positioning code to work with scaling.

QE notes:  make another test pass on tooltips/pop-ups
Doc notes:
Bugs: SDK-28833, SDK-28762, SDK-28818
Reviewer: Alex
Tests run: full mustella cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/PopUpUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>

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

--- frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as
@@ -38,6 +38,7 @@
 import mx.events.ToolTipEvent;
 import mx.events.TreeEvent;
 import mx.managers.ISystemManager;
+import mx.utils.PopUpUtil;

 use namespace mx_internal;

@@ -597,23 +598,16 @@
     private function toolTipShowHandler(event:ToolTipEvent):void
     {
         var toolTip:IToolTip = event.toolTip;
-
-        // Calculate global position of label.
-        var sm:ISystemManager = systemManager.topLevelSystemManager;
-        var sbRoot:DisplayObject = sm.getSandboxRoot();
-        var screen:Rectangle = sm.getVisibleApplicationRect(null, true);
-        var pt:Point = new Point(0, 0);
-        pt = label.localToGlobal(pt);
-        pt = sbRoot.globalToLocal(pt);
-
-        toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);
-
-        var screenRight:Number = screen.x + screen.width;
-        pt.x = toolTip.x;
-        pt.y = toolTip.y;
-        pt = sbRoot.localToGlobal(pt);
-        if (pt.x + toolTip.width > screenRight)
-            toolTip.move(toolTip.x - (pt.x + toolTip.width - screenRight), toolTip.y);
+
+        // We need to position the tooltip at same x coordinate,
+        // center vertically and make sure it doesn't overlap the screen.
+        // Call the helper function to handle this for us.
+        var pt:Point = PopUpUtil.positionOverComponent(DisplayObject(label),
+                                                       systemManager,
+                                                       toolTip.width,
+                                                       toolTip.height,
+                                                       height / 2);
+        toolTip.move(pt.x, pt.y);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 8679
Author:   jimurphy@adobe.com
Date:     2009-07-20T13:23:31.007823Z

Log Message:
-----------
These are Asdoc edit from 3.x rev 8623.  I somehow missed committing these when they were supposed to be committed during my previous merge.

bug: no
qa: no
doc: no
checkintests: pass

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/CallResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MultiTopicConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractInvoker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/Responder.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/XMLLoadEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/IResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Producer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncToken.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/WSDLLoadEvent.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as
@@ -31,11 +31,11 @@
     //--------------------------------------------------------------------------

     /**
-     *  Creates an new SecureHTTPChannel instance.
+     *  Constructor.
      *
-	 *  @param id The id of this Channel.
-	 *
-	 *  @param uri The uri for this Channel.
+     *  @param id The id of this Channel.
+     *
+     *  @param uri The uri for this Channel.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

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

--- frameworks/projects/framework/src/mx/controls/ButtonLabelPlacement.as
+++ frameworks/projects/framework/src/mx/controls/ButtonLabelPlacement.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
 {


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

--- frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as
+++ frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as
@@ -0,0 +1,93 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.messaging.config
+{
+
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+[ExcludeClass]
+
+/**
+ *  This class acts as a context for the messaging framework so that it
+ *  has access the URL and arguments of the SWF without needing
+ *  access to the root MovieClip's LoaderInfo or Flex's Application
+ *  class.
+ */
+public class LoaderConfig
+{
+	include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+	 *
+	 *
One instance of LoaderConfig is created by the SystemManager.
+	 *  You should not need to construct your own.

+     */
+    public function LoaderConfig()
+    {
+        super();
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  parameters
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the parameters property.
+	 */
+	mx_internal static var _parameters:Object;
+
+    /**
+     *  If the LoaderConfig has been initialized, this
+     *  should represent the top-level MovieClip's parameters.
+     */
+    public static function get parameters():Object
+    {
+        return _parameters;
+    }
+
+	//----------------------------------
+	//  url
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the url property.
+	 */
+    mx_internal static var _url:String = null;
+
+    /**
+     *  If the LoaderConfig has been initialized, this
+     *  should represent the top-level MovieClip's URL.
+     */
+    public static function get url():String
+    {
+        return _url;
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17943
Author:   jszeto@adobe.com
Date:     2010-09-29T22:22:15.975011Z

Log Message:
-----------
ViewMenu initial checkin

Implemented ViewMenu, ViewMenuItem, ViewMenuLayout and all relevant skins.
Integrated into MobileApplicationBase and MobileApplication
Includes PARB review changes
Appearance will change once the visual design has been completed

QE notes: Ready to test!
Doc notes: Needs an ASDoc pass
Bugs: none
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/layouts/ViewMenuLayout.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/layouts</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewMenuItem.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewMenu.as
@@ -0,0 +1,316 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+package spark.components
+{
+import flash.display.StageOrientation;
+import flash.events.Event;
+import flash.events.KeyboardEvent;
+import flash.events.MouseEvent;
+import flash.events.StageOrientationEvent;
+import flash.ui.Keyboard;
+
+import mx.core.InteractionMode;
+import mx.core.mx_internal;
+import mx.managers.IFocusManagerComponent;
+
+import spark.core.NavigationUnit;
+
+use namespace mx_internal;
+
+[DefaultProperty("items")]
+
+[SkinState("normalAndLandscape")]
+[SkinState("disabledAndLandscape")]
+
+/**
+ *  The ViewMenu class display a set of ViewMenuItems. MobileApplication
+ *  will automatically create and display an ViewMenu when the user has
+ *  pressed the device's Menu button.
+ *
+ *  ViewMenu's default layout is ViewMenuLayout
+ *
+ *  Set the items property to a Vector of ViewMenuItems.
+ */
+
+/*
+
+TODO:
+
+- add transitions
+- use PopUpAnchor instead of PopUpManager
+- integrate into TabbedMobileApplication
+
+*/
+
+public class ViewMenu extends SkinnableContainer implements IFocusManagerComponent
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+    /**
+     *  Constructor
+     */
+    public function ViewMenu()
+    {
+        super();
+        // Listen for orientation change events when we are attached to the stage
+        addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  caretIndex
+    //----------------------------------
+
+    private var _caretIndex:int = -1;
+    private var oldCaretIndex:int = -1;
+    private var caretIndexChanged:Boolean = false;
+
+    /**
+     *  The item that is currently in the caret state. A value of -1 means that
+     *  no item is in the caret state.
+     *
+     *  @default -1
+     */
+    public function get caretIndex():int
+    {
+        return _caretIndex;
+    }
+
+    public function set caretIndex(value:int):void
+    {
+        if (_caretIndex == value)
+            return;
+
+        oldCaretIndex = _caretIndex;
+
+        _caretIndex = value;
+        caretIndexChanged = true;
+        invalidateProperties();
+    }
+
+    //----------------------------------
+    //  items
+    //----------------------------------
+
+    private var _items:Vector.<ViewMenuItem>;
+
+    /**
+     *  The Vector of ViewMenuItems to display in the ViewMenu
+     */
+    public function get items():Vector.<ViewMenuItem>
+    {
+        return _items;
+    }
+
+    public function set items(value:Vector.<ViewMenuItem>):void
+    {
+        _items = value;
+
+        var elements:Array = [];
+
+        if (value)
+        {
+            for (var i:int = 0; i < value.length; i++)
+            {
+                elements.push(_items[i]);
+            }
+        }
+
+        mxmlContent = elements;
+
+    }
+
+    // Returns true if the stage is in landscape orientation
+    private function get landscapeOrientation():Boolean
+    {
+        if (systemManager && systemManager.stage)
+            return systemManager.stage.deviceOrientation == StageOrientation.ROTATED_LEFT ||
+                systemManager.stage.deviceOrientation == StageOrientation.ROTATED_RIGHT;
+        else
+            return false;
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden Methods
+    //
+    //--------------------------------------------------------------------------
+
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        if (caretIndexChanged)
+        {
+            caretIndexChanged = false;
+
+            // Hide the old caret and show the new one
+            setShowsCaret(oldCaretIndex, false);
+            setShowsCaret(caretIndex, true);
+        }
+    }
+
+    /**
+     *  @private
+     *  Build in basic keyboard navigation support in ViewMenu.
+     */
+    override protected function keyDownHandler(event:KeyboardEvent):void
+    {
+        super.keyDownHandler(event);
+
+        if (!items || !layout || event.isDefaultPrevented())
+            return;
+
+        // 1. Was the space bar hit?
+        // Hitting the space bar means the current caret item,
+        // that is the item currently in focus, is being
+        // selected.
+        if (event.keyCode == Keyboard.SPACE)
+        {
+            selectItemAt(caretIndex);
+            event.preventDefault();
+            return;
+        }
+
+        // FIXME (rfrishbe): hack for 5-way
+        if (getStyle("interactionMode") == InteractionMode.TOUCH && event.keyCode == Keyboard.ENTER)
+        {
+            selectItemAt(caretIndex);
+            event.preventDefault();
+            return;
+        }
+
+        // 3. Was a navigation key hit (like an arrow key,
+        // or Shift+arrow key)?
+        // Delegate to the layout to interpret the navigation
+        // key and adjust the selection and caret item based
+        // on the combination of keystrokes encountered.
+        adjustSelectionAndCaretUponNavigation(event);
+    }
+
+    override protected function getCurrentSkinState():String
+    {
+        if (!landscapeOrientation)
+            return super.getCurrentSkinState();
+        else
+            return enabled ? "normalAndLandscape" : "disabledAndLandscape";
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    private function addedToStageHandler(event:Event):void
+    {
+        addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
+        systemManager.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChangeHandler, true);
+    }
+
+    private function removedFromStageHandler(event:Event):void
+    {
+        removeEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
+        systemManager.stage.removeEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChangeHandler, true);
+    }
+
+    // Update the size and display if orientation has changed
+    private function orientationChangeHandler(event:StageOrientationEvent):void
+    {
+        invalidateSkinState();
+        invalidateSize();
+        invalidateDisplayList();
+    }
+
+    /**
+     *  Adjusts the selection based on what keystroke or
+     *  keystroke combinations were encountered. The keystroke
+     *  is sent down to the layout and it is up to the layout's
+     *  getNavigationDestinationIndex() method to determine
+     *  what the index to navigate to based on the item that
+     *  is currently in focus. Once the index is determined,
+     *  single selection, caret item and if necessary, multiple
+     *  selections are updated to reflect the newly selected
+     *  item.
+     *
+     *  @param event The Keyboard Event encountered
+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    private function adjustSelectionAndCaretUponNavigation(event:KeyboardEvent):void
+    {
+        // If rtl layout, need to swap Keyboard.LEFT and Keyboard.RIGHT.
+        var navigationUnit:uint = mapKeycodeForLayoutDirection(event);
+
+        // Some unrecognized key stroke was entered, return.
+        if (!NavigationUnit.isNavigationUnit(event.keyCode))
+            return;
+
+        // Delegate to the layout to tell us what the next item is we should select or focus into.
+        // TODO (dsubrama): At some point we should refactor this so we don't depend on layout
+        // for keyboard handling. If layout doesn't exist, then use some other keyboard handler
+        var proposedNewIndex:int = layout.getNavigationDestinationIndex(caretIndex, navigationUnit, false);
+
+        // Note that the KeyboardEvent is canceled even if the current selected or in focus index
+        // doesn't change because we don't want another component to start handling these
+        // events when the index reaches a limit.
+        if (proposedNewIndex == -1)
+            return;
+
+        event.preventDefault();
+
+        // Entering the caret state with the Ctrl key down
+        // FIXME (rfrishbe): shouldn't just check interactionMode but should depend on
+        // either the platform or whether it was a 5-way button or whether
+        // soem other keyboardSelection style.
+        if (event.ctrlKey || getStyle("interactionMode") == InteractionMode.TOUCH)
+        {
+            setShowsCaret(caretIndex, false);
+            _caretIndex = proposedNewIndex;
+            setShowsCaret(caretIndex, true);
+        }
+    }
+
+
+    // Called when a particular item is selected using the ENTER or SPACE key
+    private function selectItemAt(index:int):void
+    {
+        if (index < 0 || !items || index >= items.length)
+            return;
+
+        var item:ViewMenuItem = ViewMenuItem(getElementAt(index));
+        item.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
+    }
+
+    // Helper function which updates the item's caret state
+    private function setShowsCaret(index:int, showsCaret:Boolean):void
+    {
+        if (index < 0 || !items || index >= items.length)
+            return;
+
+        var item:ViewMenuItem = ViewMenuItem(getElementAt(index));
+        item.showsCaret = showsCaret;
+    }
+}
+}


Rollup FilterTerm/FilterEntry into xobj base

--- as3/xobjas3/src/com/rpath/xobj/FilterTerm.as
+++ as3/xobjas3/src/com/rpath/xobj/FilterTerm.as
@@ -28,8 +28,19 @@
         this.value = value;
     }

+    /**
+     * The field/property to filter on (LHS)
+     */
     public var name:String;
+
+    /**
+     * The logical operator to apply (see static consts below)
+     */
     public var operator:String;
+
+    /**
+     * The value to test the field against (RHS)
+     */
     public var value:String;

     public static const EQUAL:String = "EQUALS";
@@ -45,6 +56,13 @@
     public static const MATCHING:String = "MATCHING";
     public static const NOT_MATCHING:String = "NOT_MATCHING";

+    public static const IS:String = "IS";
+    public static const IS_NOT:String = "IS_NOT";
+    public static const CONTAINS:String = "CONTAINS";

+    public static const YES:String = "YES";
+    public static const NO:String = "NO";
+
+
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 4009
Author:   jimurphy@adobe.com
Date:     2008-11-04T15:10:34.970681Z

Log Message:
-----------
Merged alpha_gumbo revisions 3929,3936-3937,3945,3956,3971,3986,3994,4002,4006 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/BitmapGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/flash_component_icon.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/flash_container_icon_small.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/StrokedElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/TweenEffectInstance.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ResizeMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/flash_container_icon.png</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/utilities/src/flash_component_icon_small.png</path>

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as
@@ -313,6 +313,17 @@
 		// Needs to be overridden
 	}

+    override public function seek(seekTime:Number):void
+    {
+        // Subclasses should tell their child effects to seek
+        // appropriately. This logic just sets the internal time on
+        // the overall CompositeEffectInstance.
+        if (timerTween)
+            timerTween.seek(seekTime);
+        else
+            _playheadTime = seekTime;
+    }
+
 	/**
 	 *  @private
 	 */


fix coding style

fix coding style

--- src/aerys/minko/type/Signal.as
+++ src/aerys/minko/type/Signal.as
@@ -2,16 +2,16 @@
 {
 	public final class Signal
 	{
-		private var _name			: String			= null;
+		private var _name			: String	= null;

-		private var _callbacks		: Array				= [];
-		private var _numCallbacks	: uint				= 0;
+		private var _callbacks		: Array		= [];
+		private var _numCallbacks	: uint		= 0;

-		private var _executed		: Boolean			= false;
-		private var _numAdded		: uint				= 0;
-		private var _toAdd			: Array				= null;
-		private var _numRemoved		: uint				= 0;
-		private var _toRemove		: Array				= null;
+		private var _executed		: Boolean	= false;
+		private var _numAdded		: uint		= 0;
+		private var _toAdd			: Array		= null;
+		private var _numRemoved		: uint		= 0;
+		private var _toRemove		: Array		= null;

 		public function get numCallbacks() : uint
 		{


Added utility method

Added utility method

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/util/ArrayUtil.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/util/ArrayUtil.as
@@ -190,5 +190,15 @@
 		public static function isNotIn(array:Array, value:*):Boolean {
 			return ! isIn(array, value);
 		}
+
+		/**
+		 * Similar to the concat method of array but makes side effect on the source array
+		 */
+		public static function addAll(array:Array, values:Array):void {
+			for each (var value:* in values) {
+				array.push(value);
+			}
+
+		}
 	}
 }


Implement getPayload() method to extract SPS/PPS bytes

--- src/com/axis/rtspclient/NALU.as
+++ src/com/axis/rtspclient/NALU.as
@@ -40,5 +40,12 @@
       output.writeByte((0x0 & 0x80) | (nri & 0x60) | (ntype & 0x1F)); // NAL header
       output.writeBytes(data, data.position);
     }
+
+    public function getPayload():ByteArray {
+      var payload:ByteArray = new ByteArray();
+      data.position -= 1;
+      data.readBytes(payload, 0, data.bytesAvailable);
+      return payload;
+    }
   }
 }


- bugfix: non-displayed elements didn't cleanly finish validation

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@593 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/ui/UIObject.as
+++ src/reprise/ui/UIObject.as
@@ -812,6 +812,7 @@
 			if (!m_isRendered)
 			{
 				visible = false;
+				m_isValidating = false;
 				return;
 			}
 			validateChildren();


Transferred from the Adobe Open Source Subversion Repository

Revision: 17547
Author:   rfrishbe@adobe.com
Date:     2010-09-01T21:04:52.456703Z

Log Message:
-----------
Fixing 2 List bugs for Beta.

SDK-27686: MobileIconItemRenderer needs to handle null items in the data for message, icon, and label better than it currently does, and it needs to make sure that when encountering a null that a recycled item renderer resets appropriately.

SDK-27371: ListBase now keeps track of when it should play transitions better.  This is a pretty large change in how we deal with transitions, but we are now keeping track of when caret or selection occurs and whether it occurred due to item recycling or not.

QE notes: None
Doc notes: None
Bugs: SDK-27686, SDK-27371
Reviewer: Glenn for MIIR change, Hans for ListBase change
Tests run: checkintests, mustella List, ButtonBar, spark/effects/Regression/test/CatalystMatrixTransitions_test, spark/effects/Regression/test/CatalystMatrixSequences_test
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as
@@ -66,8 +66,8 @@
 /**
  *  The MobileIconItemRenderer class is a performant item
  *  renderer optimized for mobile devices.  It contains
- *  four optional parts: 1) an icon on the left, 2) label
- *  on top next to the icon, 3) message below label and
+ *  four optional parts: 1) an icon on the left, 2) single-line label
+ *  on top next to the icon, 3) multi-line message below label and
  *  next to the icon, and 4) a decorator on the right.
  *
  *  @see spark.components.List
@@ -906,13 +906,14 @@
             {
                 try
                 {
-                    if (iconField in data && data[iconField] != null)
+                    if (iconField in data)
                     {
                         iconDisplay.source = data[iconField];
                     }
                 }
                 catch(e:Error)
                 {
+                    iconDisplay.source = null;
                 }
             }
         }
@@ -935,9 +936,16 @@
                         messageText = data[messageField];
                         messageDisplay.text = messageText;
                     }
+                    else
+                    {
+                        messageText = "";
+                        messageDisplay.text = messageText;
+                    }
                 }
                 catch(e:Error)
                 {
+                    messageText = "";
+                    messageDisplay.text = messageText;
                 }
             }
         }
@@ -965,9 +973,20 @@
                             createLabelDisplay();
                         labelDisplay.text = labelText;
                     }
+                    else
+                    {
+                        labelText = "";
+                        if (!labelDisplay)
+                            createLabelDisplay();
+                        labelDisplay.text = labelText;
+                    }
                 }
                 catch(e:Error)
                 {
+                    labelText = "";
+                    if (!labelDisplay)
+                        createLabelDisplay();
+                    labelDisplay.text = labelText;
                 }
             }
             else if (label && labelField === null) // if there's a label and labelField === null, then show label


fix bug

fix bug

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/MXMLBeadViewBaseDataBinding.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/MXMLBeadViewBaseDataBinding.as
@@ -147,7 +147,7 @@
                                 {
                                     if (destObject)
                                     {
-                                        sb.destination = destObject;
+                                        cb.destination = destObject;
                                         _strand.addBead(sb);
                                     }
                                     else