Transferred from the Adobe Open Source Subversion Repository

Revision: 3243
Author:   rfrishbe@adobe.com
Date:     2008-09-17T16:14:14.399661Z

Log Message:
-----------
DataGroup/Group split work.  DataGroup is for holding data items that may require item rendering. Group only holds visual items now.  The Group APIs stay the same (numItems, addItem, etc...).  DataGroup uses the IList APIs through its dataProvider.  So the equivalent methods are now dataProvider.length, dataProvider, addItem, etc...  This is just the initial split work as there's more to come to get the files up to spec.  We will also have to visit how we deal with graphic elements in DataGroup vs. Group.  For now the implementations are roughly the same.

QE: Yes - tests may break.  please update them.
Doc: Yes
Bugs: -
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/BasicLayout.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/DataComponent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/DataComponentSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/events/FlexEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemsComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ListSkin.mxml</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/core/DataGroup.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Selector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/SelectorSkin.mxml</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/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/intf/ILayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/flex4test.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ComplexPanelSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -16,6 +16,8 @@
 import flex.events.ItemExistenceChangedEvent;

 import mx.events.IndexChangedEvent;
+import mx.events.CollectionEvent;
+import mx.events.CollectionEventKind;

 /**
  *  Dispatched when the selection is going to change. Calling preventDefault()
@@ -32,7 +34,7 @@
  *  The Selector class is the base class for all components that support
  *  selection.
  */
-public class Selector extends ItemsComponent
+public class Selector extends DataComponent
 {
     include "../core/Version.as";

@@ -65,10 +67,10 @@
 	 */
 	public function Selector()
     {
-    	addEventListener(FlexEvent.CONTENT_CHANGING, contentChangingHandler);
-    	addEventListener(FlexEvent.CONTENT_CHANGED, contentChangedHandler);
-		addEventListener(ItemExistenceChangedEvent.ITEM_ADD, itemAddedHandler);
-		addEventListener(ItemExistenceChangedEvent.ITEM_REMOVE, itemRemovedHandler);
+    	addEventListener(FlexEvent.DATA_PROVIDER_CHANGING, dataProviderChangingHandler);
+    	addEventListener(FlexEvent.DATA_PROVIDER_CHANGED, dataProviderChangedHandler);
+    	if (dataProvider)
+    	    dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
     }

     //--------------------------------------------------------------------------
@@ -162,12 +164,12 @@
     	if (selectedIndex == NO_SELECTION)
     	   return undefined;

-        return getItemAt(selectedIndex);
+        return dataProvider.getItemAt(selectedIndex);
     }

     public function set selectedItem(value:*):void
     {
-        selectedIndex = getItemIndex(value);
+        selectedIndex = dataProvider.getItemIndex(value);
     }

     //----------------------------------
@@ -237,7 +239,7 @@

             if (requiresSelection &&
                     selectedIndex == NO_SELECTION &&
-                    numItems > 0)
+                    dataProvider.length > 0)
             {
             	// Set the proposed selected index here to make sure
             	// commitSelectedIndex() is called below.
@@ -298,14 +300,14 @@
     private function commitSelectedIndex():Boolean
     {
         // Step 1: make sure the proposed selected index is in range.
-        var maxIndex:int = numItems - 1;
+        var maxIndex:int = dataProvider.length - 1;
         var oldIndex:int = _selectedIndex;

         if (_proposedSelectedIndex < NO_SELECTION)
             _proposedSelectedIndex = NO_SELECTION;
         if (_proposedSelectedIndex > maxIndex)
             _proposedSelectedIndex = maxIndex;
-        if (requiresSelection && _proposedSelectedIndex == NO_SELECTION && numItems > 0)
+        if (requiresSelection && _proposedSelectedIndex == NO_SELECTION && dataProvider.length > 0)
             return false;

         // Step 2: dispatch the "selectionChanging" event. If preventDefault() is called
@@ -322,9 +324,9 @@

         // Step 3: commit the selection change
         if (_selectedIndex != NO_SELECTION)
-        	itemSelected(getItemAt(_selectedIndex), false);
+        	itemSelected(dataProvider.getItemAt(_selectedIndex), false);
         if (_proposedSelectedIndex != NO_SELECTION)
-        	itemSelected(getItemAt(_proposedSelectedIndex), true);
+        	itemSelected(dataProvider.getItemAt(_proposedSelectedIndex), true);
         _selectedIndex = _proposedSelectedIndex;
         _proposedSelectedIndex = NO_PROPOSED_SELECTION;

@@ -369,16 +371,14 @@
      *  @private
      *  Called when an item has been added to this component.
      */
-    protected function itemAddedHandler(event:ItemExistenceChangedEvent):void
+    protected function itemAddedHandler(item:*, index:int):void
     {
         if (selectedIndex == NO_SELECTION || doingWholesaleChanges)
             return;
-
-        var itemIndex:int = getItemIndex(event.relatedObject);

         // If an item is added before the selected item, bump up our
         // selected index backing variable.
-        if (itemIndex <= selectedIndex)
+        if (index <= selectedIndex)
             adjustSelectedIndex(selectedIndex + 1);
     }

@@ -386,23 +386,21 @@
      *  @private
      *  Called when an item has been removed from this component.
      */
-    protected function itemRemovedHandler(event:ItemExistenceChangedEvent):void
+    protected function itemRemovedHandler(item:*, index:int):void
     {
         if (selectedIndex == NO_SELECTION || doingWholesaleChanges)
             return;
-
-        var itemIndex:int = getItemIndex(event.relatedObject);

         // If the selected item is being removed, clear the selection (or
         // reset to the first item if requiresSelection is true)
-        if (itemIndex == selectedIndex)
-        {
-            if (requiresSelection && numItems > 0)
+        if (index == selectedIndex)
+        {
+            if (requiresSelection && dataProvider.length > 0)
                 selectedIndex = 0;
             else
                 selectedIndex = -1;
         }
-        else if (itemIndex < selectedIndex)
+        else if (index < selectedIndex)
         {
             // An item below the selected index has been removed, bump
             // the selected index backing variable.
@@ -413,22 +411,63 @@
     /**
      *  @private
      */
-    private function contentChangingHandler(event:FlexEvent):void
-    {
+    private function dataProviderChangingHandler(event:FlexEvent):void
+    {
+        dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+
     	doingWholesaleChanges = true;
     }

     /**
      *  @private
      */
-    private function contentChangedHandler(event:FlexEvent):void
+    private function dataProviderChangedHandler(event:FlexEvent):void
     {
     	doingWholesaleChanges = false;

-    	if (selectedIndex >= 0 && selectedIndex < numItems)
-    	   itemSelected(getItemAt(selectedIndex), true);
+    	if (selectedIndex >= 0 && selectedIndex < dataProvider.length)
+    	   itemSelected(dataProvider.getItemAt(selectedIndex), true);
     	else
     	   selectedIndex = -1;
+
+    	dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+    }
+
+    protected function collectionChangeHandler(event:Event):void
+    {
+        if (event is CollectionEvent)
+        {
+            var ce:CollectionEvent = CollectionEvent(event);
+
+            if (ce.kind == CollectionEventKind.ADD)
+            {
+                itemAddedHandler(ce.items[0], ce.location);
+            }
+            else if (ce.kind == CollectionEventKind.REPLACE)
+            {
+                itemRemovedHandler(ce.items[0], ce.location);
+            }
+            else if (ce.kind == CollectionEventKind.REMOVE)
+            {
+
+            }
+            else if (ce.kind == CollectionEventKind.MOVE)
+            {
+
+            }
+            else if (ce.kind == CollectionEventKind.REFRESH)
+            {
+
+            }
+            else if (ce.kind == CollectionEventKind.RESET)
+            {
+            }
+            else if (ce.kind == CollectionEventKind.UPDATE)
+            {
+
+            }
+        }
+
     }
 }


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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkFormAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkFormAutomationImpl.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.automation.delegates.components
 {


Fixed bug in URLRequestUtils where a URLLoader that encountered an
error would crash Weave. Now the error is handled by returning a
duplicate loader (which never loaded).

Change-Id: Iff55263528d0522ddb8b86528f26a85e87bceced

--- WeaveData/src/weave/services/URLRequestUtils.as
+++ WeaveData/src/weave/services/URLRequestUtils.as
@@ -67,8 +67,25 @@
 		 */
 		public function getURL(request:URLRequest, asyncResultHandler:Function = null, asyncFaultHandler:Function = null, token:Object = null, dataFormat:String = "binary"):URLLoader
 		{
-			var urlLoader:CustomURLLoader = new CustomURLLoader(request, dataFormat);
-			urlLoader.addResponder(new AsyncResponder(asyncResultHandler || noOp, asyncFaultHandler || noOp, token));
+			var urlLoader:CustomURLLoader;
+			try
+			{
+				urlLoader = new CustomURLLoader(request, dataFormat);
+				urlLoader.addResponder(new AsyncResponder(asyncResultHandler || noOp, asyncFaultHandler || noOp, token));
+			}
+			catch (e:Error)
+			{
+				// When an error occurs, we need to run the asyncFaultHandler later
+				// and return a new URLLoader. CustomURLLoader doesn't load if the
+				// last parameter to the constructor is false.
+				urlLoader = new CustomURLLoader(request, dataFormat, false);
+				StageUtils.callLater(
+					this,
+					asyncFaultHandler || noOp,
+					[new FaultEvent(FaultEvent.FAULT, false, true, new Fault(String(e.errorID), e.name, e.message)), token]
+				);
+			}
+
 			return urlLoader;
 		}

@@ -204,21 +221,25 @@

 internal class CustomURLLoader extends URLLoader
 {
-	public function CustomURLLoader(request:URLRequest, dataFormat:String)
-	{
-		// keep track of pending requests
-		WeaveAPI.ProgressIndicator.addTask(this);
-		addResponder(new AsyncResponder(removePendingRequest, removePendingRequest));
-
-		// set up event listeners
-		addEventListener(Event.COMPLETE, handleGetResult);
-		addEventListener(IOErrorEvent.IO_ERROR, handleGetError);
-		addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityError);
-		addEventListener(ProgressEvent.PROGRESS, handleProgressUpdate);
-
-		_urlRequest = request;
-		this.dataFormat = dataFormat;
-		super.load(request);
+	public function CustomURLLoader(request:URLRequest, dataFormat:String, loadNow:Boolean = true)
+	{
+		_urlRequest = request;
+		this.dataFormat = dataFormat;
+
+		if (loadNow)
+		{
+			// keep track of pending requests
+			WeaveAPI.ProgressIndicator.addTask(this);
+			addResponder(new AsyncResponder(removePendingRequest, removePendingRequest));
+
+			// set up event listeners
+			addEventListener(Event.COMPLETE, handleGetResult);
+			addEventListener(IOErrorEvent.IO_ERROR, handleGetError);
+			addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityError);
+			addEventListener(ProgressEvent.PROGRESS, handleProgressUpdate);
+
+			super.load(request);
+		}
 	}

 	private var _asyncToken:AsyncToken = new AsyncToken();
@@ -234,7 +255,7 @@
 	{
 		WeaveAPI.ProgressIndicator.removeTask(this);
 		_isClosed = true;
-		try {
+		try {
 			super.close();
 		} catch (e:Error) { } // ignore close() errors
 	}


Removed comment from PlotManager.as

Removed comment from PlotManager.as

--- WeaveUISpark/src/weave/visualization/layers/PlotManager.as
+++ WeaveUISpark/src/weave/visualization/layers/PlotManager.as
@@ -397,8 +397,7 @@
 					if ( geometry is GeneralizedGeometry )
 					{
 						var geometryAsSimpleGeometries:Array = (geometry as GeneralizedGeometry).getSimpleGeometries();
-						throw new Error("missing spatialIndex.getKeysGeometryOverlapGeometries()");
-						//queriedKeys = spatialIndex.getKeysGeometryOverlapGeometries(geometryAsSimpleGeometries);
+						queriedKeys = spatialIndex.getKeysGeometryOverlapGeometries(geometryAsSimpleGeometries);
 					}
 					else if (simpleGeometry)
 					{


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

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


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

--- frameworks/projects/framework/src/mx/core/LayoutDirection.as
+++ frameworks/projects/framework/src/mx/core/LayoutDirection.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Taking into account undocumented SELECT tag.

--- src/main/flex/org/postgresql/febe/message/CommandComplete.as
+++ src/main/flex/org/postgresql/febe/message/CommandComplete.as
@@ -12,6 +12,7 @@
         public var oid:int;
         public var affectedRows:int;

+        private static const SELECT_CMD:RegExp = /SELECT/;
         private static const INSERT_CMD:RegExp = /INSERT (\d+) (\d+)/;
         private static const COPY_CMD:RegExp = /COPY (\d+)?/;
         private static const OTHER_CMD:RegExp = /(DELETE|UPDATE|MOVE|FETCH) (\d+)/;
@@ -24,7 +25,9 @@
         public function read(input:ICDataInput):void {
             commandTag = input.readCString();
             var match:Array;
-            if (INSERT_CMD.test(commandTag)) {
+            if (SELECT_CMD.test(commandTag)) {
+                // nothing to do here
+            } else if (INSERT_CMD.test(commandTag)) {
                 match = commandTag.match(INSERT_CMD);
                 if (match.length != 3) {
                      badTag(commandTag);


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

--- frameworks/projects/advancedgrids/src/mx/collections/ISummaryCalculator.as
+++ frameworks/projects/advancedgrids/src/mx/collections/ISummaryCalculator.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: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

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

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

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

--- frameworks/projects/framework/src/mx/effects/effectClasses/MoveInstance.as
+++ frameworks/projects/framework/src/mx/effects/effectClasses/MoveInstance.as
@@ -21,6 +21,8 @@
 import mx.events.MoveEvent;
 import mx.styles.IStyleClient;

+use namespace mx_internal;
+
 /**
  *  The MoveInstance class implements the instance class
  *  for the Move effect.
@@ -270,7 +272,7 @@
 		super.play();

 		// Try to cache the target as a bitmap.
-		EffectManager.mx_internal::startBitmapEffect(IUIComponent(target));
+		EffectManager.startBitmapEffect(IUIComponent(target));

 		// The user may have supplied some combination of xFrom, xTo, and xBy.
 		// If either xFrom or xTo is not explicitly defined, calculate its
@@ -329,12 +331,12 @@
 				yFrom + target.height > b || yTo + target.height > b)
 			{
 				forceClipping = true;
-				p.mx_internal::forceClipping = true;
-			}
-
-		}
-
-		mx_internal::applyTweenStartValues();
+				p.forceClipping = true;
+			}
+
+		}
+
+		applyTweenStartValues();

 		if (target is IStyleClient)
 		{
@@ -404,7 +406,7 @@
 					value[1] < t || value[1] + target.height > b)
 				{
 					forceClipping = true;
-					p.mx_internal::forceClipping = true;
+					p.forceClipping = true;
 				}
 			}
 		}
@@ -418,7 +420,7 @@
 	 */
 	override public function onTweenEnd(value:Object):void
 	{
-		EffectManager.mx_internal::endBitmapEffect(IUIComponent(target));
+		EffectManager.endBitmapEffect(IUIComponent(target));

 		if (left != undefined)
 			target.setStyle("left", left);
@@ -450,7 +452,7 @@
 			if (p)
 			{
 				forceClipping = false;
-				p.mx_internal::forceClipping = false;
+				p.forceClipping = false;
 			}
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 18073
Author:   chiedozi@adobe.com
Date:     2010-10-07T21:34:57.888413Z

Log Message:
-----------
Temporarily restored the Complete event on ViewNavigator so mustella tests don't fail.

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -1711,6 +1711,10 @@
         {
             lastAction = ViewNavigatorAction.NONE;
             viewChanging = false;
+
+            // Notify listeners that the view change is complete
+            if (hasEventListener(Event.COMPLETE))
+                dispatchEvent(new Event(Event.COMPLETE));
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3916
Author:   gosmith@adobe.com
Date:     2008-10-27T22:45:53.541205Z

Log Message:
-----------
Renamed the getAttributes() and setAttributes() methods of TextView and FxTextArea to getSelectionFormat() and setSelectionFormat(), to match the spec.

Also, the contentWidth, contentHeight, horizontalScrollPosition, and verticalScrollPosition properties of TextView now implement binding using a PropertyChangeEvent, because this is what a Scroller expects. As part of this, I've moved the dispatchPropertyChangeEvent() utility method from GroupBase to UIComponent.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Hans

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.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/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -807,20 +807,6 @@
     {
         return null;
     }
-
-    /**
-     *  Helper method to wrap up the changes in a PropertyChangeEvent event object,
-     *  and dispatch the event.
-     *
-     *  @param prop Property that's changed.
-     *
-     *  @param oldValue Old value of the property.
-     *
-     *  @param value New value of the property.
-     */
-    protected function dispatchPropertyChangeEvent(prop:String, oldValue:*, value:*):void
-    {
-        dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, prop, oldValue, value));
-    }
 }
+
 }


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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  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.
 //
 ////////////////////////////////////////////////////////////////////////////////


SimpleBinding must use flash.Events on the AS side for click and other mouse events

--- frameworks/as/src/org/apache/flex/binding/SimpleBinding.as
+++ frameworks/as/src/org/apache/flex/binding/SimpleBinding.as
@@ -18,11 +18,12 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.binding
 {
+	import flash.events.IEventDispatcher;
+	import flash.events.Event;
+
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.core.IDocument;
-	import org.apache.flex.events.Event;
-	import org.apache.flex.events.IEventDispatcher;

 	public class SimpleBinding implements IBead, IDocument
 	{


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

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPTrace.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPTrace.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: 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@1259192 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/FlexMovieClip.as
+++ frameworks/projects/framework/src/mx/core/FlexMovieClip.as
@@ -0,0 +1,97 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 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.core
+{
+
+import flash.display.MovieClip;
+import mx.utils.NameUtil;
+
+/**
+ *  FlexMovieClip is a subclass of the Player's MovieClip class.
+ *  It overrides the toString() method
+ *  to return a string indicating the location of the object
+ *  within the hierarchy of DisplayObjects in the application.
+ */
+public class FlexMovieClip extends MovieClip
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+	 *
+	 *
Sets the name property to a string
+	 *  returned by the createUniqueName()
+	 *  method of the mx.utils.NameUtils class.

+	 *
+	 *
This string is the name of the object's class concatenated
+	 *  with an integer that is unique within the application,
+	 *  such as "FlexMovieClip14".

+	 *
+	 *  @see flash.display.DisplayObject#name
+	 *  @see mx.utils.NameUtil#createUniqueName()
+     */
+    public function FlexMovieClip()
+	{
+		super();
+
+		try
+		{
+			name = NameUtil.createUniqueName(this);
+		}
+		catch(e:Error)
+		{
+			// The name assignment above can cause the RTE
+			//   Error #2078: The name property of a Timeline-placed
+			//   object cannot be modified.
+			// if this class has been associated with an asset
+			// that was created in the Flash authoring tool.
+			// The only known case where this is a problem is when
+			// an asset has another asset PlaceObject'd onto it and
+			// both are embedded separately into a Flex application.
+			// In this case, we ignore the error and toString() will
+			// use the name assigned in the Flash authoring tool.
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  Returns a string indicating the location of this object
+	 *  within the hierarchy of DisplayObjects in the Application.
+	 *  This string, such as "MyApp0.HBox5.FlexMovieClip14",
+	 *  is built by the displayObjectToString() method
+	 *  of the mx.utils.NameUtils class from the name
+	 *  property of the object and its ancestors.
+	 *
+	 *  @return A String indicating the location of this object
+	 *  within the DisplayObject hierarchy.
+	 *
+	 *  @see flash.display.DisplayObject#name
+	 *  @see mx.utils.NameUtil#displayObjectToString()
+     */
+    override public function toString():String
+	{
+		return NameUtil.displayObjectToString(this);
+	}
+}
+
+}


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

--- frameworks/projects/framework/src/mx/events/ModuleEvent.as
+++ frameworks/projects/framework/src/mx/events/ModuleEvent.as
@@ -0,0 +1,266 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+
+import flash.events.Event;
+import flash.events.ProgressEvent;
+import mx.modules.IModuleInfo;
+
+/**
+ *  The ModuleEvent class represents the event object passed to the event listener
+ *  for events related to dynamically-loaded modules.
+ */
+public class ModuleEvent extends ProgressEvent
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Dispatched when there is an error downloading the module.
+     *  The ModuleEvent.ERROR constant defines the value of the
+     *  type property of the event object for an error event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
bytesLoaded	Empty

+     *
bytesTotal	Empty

+     *
cancelable	false

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

+     *
errorText	The error message.

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

+     *

+     *
+     *  @eventType error
+     */
+    public static const ERROR:String = "error";
+
+    /**
+     *  Dispatched when the module is in the process of downloading. This module is
+     *  dispatched at regular intervals during the download process.
+     *  The ModuleEvent.PROGRESS constant defines the value of the
+     *  type property of the event object for a progress event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
bytesLoaded	The number of bytes loaded.

+     *
bytesTotal	The total number of bytes to load.

+     *
cancelable	false

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

+     *
errorText	Empty

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

+     *

+     *
+     *  @eventType progress
+     */
+    public static const PROGRESS:String = "progress";
+
+    /**
+     *  Dispatched when the module has finished downloading.
+     *  The ModuleEvent.READY constant defines the value of the
+     *  type property of the event object for a complete event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
bytesLoaded	The number of bytes loaded.

+     *
bytesTotal	The total number of bytes to load.

+     *
cancelable	false

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

+     *
errorText	Empty

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

+     *

+     *
+     *  @eventType ready
+     */
+    public static const READY:String = "ready";
+
+    /**
+     *  Dispatched when enough of a module has been downloaded that you can get information
+     *  about the module. You do this by calling the IFlexModuleFactory.info()
+     *  method on the module.
+     *  The ModuleEvent.SETUP constant defines the value of the
+     *  type property of the event object for a setup event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
bytesLoaded	Empty

+     *
bytesTotal	Empty

+     *
cancelable	false

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

+     *
errorText	An error message.

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

+     *

+     *
+     *  @eventType setup
+     */
+    public static const SETUP:String = "setup";
+
+    /**
+     *  Dispatched when the module is unloaded.
+     *
+     *  The ModuleEvent.UNLOAD constant defines the value of the
+     *  type property of the event object for an unload event.
+     *
+     *
The properties of the event object have the following values:

+     *

+     *
Property	Value

+     *
bubbles	false

+     *
bytesLoaded	Empty

+     *
bytesTotal	Empty

+     *
cancelable	false

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

+     *
errorText	An error message.

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

+     *

+     *
+     *  @eventType unload
+     */
+    public static const UNLOAD:String = "unload";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param type The type of event. Possible values are:
+     *

+     *
"progress" (ModuleEvent.PROGRESS);

+     *
"ready" (ModuleEvent.READY);

+     *
"setup" (ModuleEvent.SETUP);

+     *
"error" (ModuleEvent.ERROR);

+     *
"unload" (ModuleEvent.UNLOAD);

+     *

+     *
+     *  @param bubbles Determines whether the Event object
+     *  participates in the bubbling stage of the event flow.
+     *
+     *  @param cancelable Determines whether the Event object can be cancelled
+     *  during event propagation.
+     *
+     *  @param bytesLoaded The number of bytes loaded
+     *  at the time the listener processes the event.
+     *
+     *  @param bytesTotal The total number of bytes
+     *  that will be loaded if the loading process succeeds.
+     *
+     *  @param errorText The error message when the event type
+     *  is ModuleEvent.ERROR.
+     *
+     *  @tiptext Constructor for ModuleEvent objects.
+     */
+    public function ModuleEvent(type:String, bubbles:Boolean = false,
+                                cancelable:Boolean = false,
+                                bytesLoaded:uint = 0, bytesTotal:uint = 0,
+								errorText:String = null, module:IModuleInfo = null)
+    {
+        super(type, bubbles, cancelable, bytesLoaded, bytesTotal);
+
+        this.errorText = errorText;
+		this._module = module;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  errorText
+    //----------------------------------
+
+    /**
+     *  The error message if the type is ModuleEvent.ERROR;
+     *  otherwise, it is null.
+     */
+    public var errorText:String;
+
+    //----------------------------------
+    //  module
+    //----------------------------------
+
+	private var _module:IModuleInfo;
+
+    /**
+     *  The target, which is an instance of an
+     *  interface for a particular module.
+     */
+    public function get module():IModuleInfo
+	{
+		if (_module) return _module;
+		return target as IModuleInfo;
+	}
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties: Event
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function clone():Event
+    {
+        return new ModuleEvent(type, bubbles, cancelable,
+                               bytesLoaded, bytesTotal, errorText, module);
+    }
+}
+
+}


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

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

 package mx.filters
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 7593
Author:   srahim@adobe.com
Date:     2009-06-05T22:45:37.893107Z

Log Message:
-----------
ASDoc update per community help comments.
QE Notes: None
Doc Notes: None
Bugs: n/a
Checkintests: passed

Modified Paths:
--------------
<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/framework/src/mx/controls/RadioButtonGroup.as</path>

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

--- frameworks/projects/mx/src/mx/controls/RadioButtonGroup.as
+++ frameworks/projects/mx/src/mx/controls/RadioButtonGroup.as
@@ -72,10 +72,15 @@
 /**
  *  The RadioButtonGroup control defines a group of RadioButton controls
  *  that act as a single mutually exclusive control; therefore,
- *  a user can select only one RadioButton control at a time.
- *  The id property is required when you use the
+ *  a user can select only one RadioButton control at a time. While grouping
+ *  RadioButton instances
+ *  in a RadioButtonGroup is optional, a group lets you do things
+ *  like set a single event handler on a group of buttons, rather than
+ *  on each individual button.
+ *
+ *
The id property is required when you use the
  *  <mx:RadioButtonGroup> tag to define the name
- *  of the group.
+ *  of the group.

  *
  *
Notice that the RadioButtonGroup control is a subclass of EventDispatcher, not UIComponent,
  *  and implements the IMXMLObject interface.


Transferred from the Adobe Open Source Subversion Repository

Revision: 18339
Author:   aharui@adobe.com
Date:     2010-10-27T20:25:33.284148Z

Log Message:
-----------
If selection is set back to no-selection, we should not call itemToLabel because it will leave a space in the TextInput

QE notes: none
Doc notes: none
Bugs: SDK-28232
Reviewer: Corey
Tests run: checkintests mustella full run
Is noteworthy for integration: no

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

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

--- frameworks/projects/spark/src/spark/components/ComboBox.as
+++ frameworks/projects/spark/src/spark/components/ComboBox.as
@@ -845,7 +845,12 @@
         {
             // Restore the previous selectedItem
             if (textInput)
-                textInput.text = itemToLabel(selectedItem);
+            {
+                if (selectedItem != null)
+                    textInput.text = itemToLabel(selectedItem);
+                else
+                textInput.text = "";
+            }
             changeHighlightedSelection(selectedIndex);
         }
     }
@@ -900,7 +905,8 @@
         if (!isDropDownOpen)
         {
             if (textInput &&
-                textInput.text != itemToLabel(selectedItem))
+                ((selectedItem == null && textInput.text != "") ||
+                 textInput.text != itemToLabel(selectedItem)))
                 applySelection();
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20079
Author:   cframpto@adobe.com
Date:     2011-02-02T23:44:40.205838Z

Log Message:
-----------
If the selection change is cancelled by calling preventDefault() on the selectionChanging event, the caret should not be updated.

QE notes:
Doc notes:
Bugs: SDK-29303
Reviewer: Kevin
Tests run: cyclone
Is noteworthy for integration:

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

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

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -2387,12 +2387,13 @@
         if (selectionMode == GridSelectionMode.MULTIPLE_CELLS ||
             selectionMode == GridSelectionMode.MULTIPLE_ROWS)
         {
-            commitInteractiveSelection(
+            if (commitInteractiveSelection(
                 GridSelectionEventKind.SELECT_ALL,
-                0, 0, dataProvider.length, columns.length);
-
-            grid.anchorRowIndex = 0;
-            grid.anchorColumnIndex = 0;
+                0, 0, dataProvider.length, columns.length))
+            {
+                grid.anchorRowIndex = 0;
+                grid.anchorColumnIndex = 0;
+            }
         }
     }

@@ -3317,10 +3318,10 @@
      *  the 0-based row indices of the rows in the selection.  The default is
      *  null to indicate this parameter is not being used.
      *
-     *  @return true if the selection was committed, or false
-     *  if the selection was canceled or could not be committed due to an error, such as
-     *  index out of range or the selectionEventKind is not compatible
-     *  with the selectionMode.
+     *  @return true if the selection was committed or did not change, or
+     *  false if the selection was canceled or could not be committed due to
+     *  an error, such as index out of range or the selectionEventKind is not
+     *  compatible with the selectionMode.
      *
      *  @see spark.events.GridSelectionEvent#SELECTION_CHANGE
      *  @see spark.events.GridSelectionEvent#SELECTION_CHANGING
@@ -3351,7 +3352,7 @@
         // Step 1: determine if the selection will change if the operation.
         // is committed.
         if (!doesChangeCurrentSelection(selectionEventKind, selectionChange))
-            return false;
+            return true;

         // Step 2: dispatch the "changing" event. If preventDefault() is called
         // on this event, the selection change will be cancelled.
@@ -3934,13 +3935,14 @@
                 kind = GridSelectionEventKind.SET_CELL;
         }

-        var changed:Boolean =
+        var success:Boolean =
             commitInteractiveSelection(kind, rowIndex, columnIndex);

-        // Update the caret even if the selection did not change.
-        commitCaretPosition(rowIndex, columnIndex);
-
-        return changed;
+        // Update the caret if the selection was not cancelled.
+        if (success)
+            commitCaretPosition(rowIndex, columnIndex);
+
+        return success;
     }

     /**
@@ -3956,11 +3958,11 @@

         const startRowIndex:int = Math.min(grid.anchorRowIndex, caretRowIndex);
         const endRowIndex:int = Math.max(grid.anchorRowIndex, caretRowIndex);
-        var changed:Boolean;
+        var success:Boolean;

         if (selectionMode == GridSelectionMode.MULTIPLE_ROWS)
         {
-            changed = commitInteractiveSelection(
+            success = commitInteractiveSelection(
                 GridSelectionEventKind.SET_ROWS,
                 startRowIndex, -1,
                 endRowIndex - startRowIndex + 1, 0);
@@ -3968,7 +3970,7 @@
         else if (selectionMode == GridSelectionMode.SINGLE_ROW)
         {
             // Can't extend the selection so move it to the caret position.
-            changed = commitInteractiveSelection(
+            success = commitInteractiveSelection(
                 GridSelectionEventKind.SET_ROW, caretRowIndex, -1, 1, 0);
         }
         else if (selectionMode == GridSelectionMode.MULTIPLE_CELLS)
@@ -3980,7 +3982,7 @@
                 Math.max(grid.anchorColumnIndex, caretColumnIndex);
             const columnCount:int = endColumnIndex - startColumnIndex + 1;

-            changed = commitInteractiveSelection(
+            success = commitInteractiveSelection(
                 GridSelectionEventKind.SET_CELL_REGION,
                 startRowIndex, startColumnIndex,
                 rowCount, columnCount);
@@ -3988,15 +3990,16 @@
         else if (selectionMode == GridSelectionMode.SINGLE_CELL)
         {
             // Can't extend the selection so move it to the caret position.
-            changed = commitInteractiveSelection(
+            success = commitInteractiveSelection(
                 GridSelectionEventKind.SET_CELL,
                 caretRowIndex, caretColumnIndex, 1, 1);
         }

         // Update the caret.
-        commitCaretPosition(caretRowIndex, caretColumnIndex);
-
-        return changed;
+        if (success)
+            commitCaretPosition(caretRowIndex, caretColumnIndex);
+
+        return success;
     }

     /**
@@ -4007,29 +4010,31 @@
     {
         // click sets the selection and updates the caret and anchor
         // positions.
-        var changed:Boolean;
+        var success:Boolean;
         if (isRowSelectionMode())
         {
             // Select the row.
-            changed = commitInteractiveSelection(
+            success = commitInteractiveSelection(
                 GridSelectionEventKind.SET_ROW,
                 rowIndex, columnIndex);
         }
         else if (isCellSelectionMode())
         {
             // Select the cell.
-            changed = commitInteractiveSelection(
+            success = commitInteractiveSelection(
                 GridSelectionEventKind.SET_CELL,
                 rowIndex, columnIndex);
         }

-        // Update the caret and anchor positions even if the selection did not
-        // change.
-        commitCaretPosition(rowIndex, columnIndex);
-        grid.anchorRowIndex = rowIndex;
-        grid.anchorColumnIndex = columnIndex;
-
-        return changed;
+        // Update the caret and anchor positions unless cancelled.
+        if (success)
+        {
+            commitCaretPosition(rowIndex, columnIndex);
+            grid.anchorRowIndex = rowIndex;
+            grid.anchorColumnIndex = columnIndex;
+        }
+
+        return success;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 20342
Author:   jszeto@adobe.com
Date:     2011-02-17T00:29:01.144705Z

Log Message:
-----------
TextArea Scroller bug fixes

http://bugs.adobe.com/jira/browse/SDK-29516 - TextArea does not autoscroll on edit if it's height is not specified
http://bugs.adobe.com/jira/browse/SDK-29517 - TextArea with default height unexpectedly scrolls to the top when SoftKeyboard predicted text appears

TextAreaSkin now sends events when the caret bounds have changed. Scroller listens for these events and adjusts the scroll position so that the caret is in view.

QE notes: yes, need mobile softkeyboard retesting
Doc notes: none
Bugs: SDK-29516, SDK-29517
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/CaretBoundsChangeEvent.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -57,6 +57,7 @@
 import spark.effects.easing.IEaser;
 import spark.effects.easing.Power;
 import spark.effects.easing.Sine;
+import spark.events.CaretBoundsChangeEvent;
 import spark.layouts.supportClasses.LayoutBase;
 import spark.utils.MouseEventUtil;

@@ -749,7 +750,12 @@
      *  @private
      */
     mx_internal var preventThrows:Boolean = false;
-
+
+    /**
+     *  @private
+     */
+    private var lastFocusedElementCaretBounds:Rectangle;
+
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -997,6 +1003,19 @@
      */
     public function ensureElementIsVisible(element:IVisualElement):void
     {
+        ensureElementPositionIsVisible(element);
+    }
+
+    /**
+     *  @private
+     *
+     *  @param elementLocalBounds ensure that these bounds of the element are
+     *  visible. The bounds are in the coordinate system of the element
+     *  @param doValidateNow if true, call validateNow() at the end of the
+     *  function
+     */
+    private function ensureElementPositionIsVisible(element:IVisualElement, elementLocalBounds:Rectangle = null, doValidateNow:Boolean = true):void
+    {
         // First check that the element is a descendant
         // If we are a GraphicElement, use the element's parent
         var possibleDescendant:DisplayObject = element as DisplayObject;
@@ -1023,36 +1042,41 @@
                 throwEffect.stop();
                 snapContentScrollPosition();
             }
-
+
             // Scroll the element into view
-            var delta:Point = layout.getScrollPositionDeltaToAnyElement(element);
+
+            var delta:Point = layout.getScrollPositionDeltaToAnyElement(element, elementLocalBounds);

             if (delta)
             {
-                var eltBounds:Rectangle = layout.getChildElementBounds(element);
-                var focusThickness:Number = 0;
-
                 viewport.horizontalScrollPosition += delta.x;
                 viewport.verticalScrollPosition += delta.y;

-                if (element is IStyleClient)
-                    focusThickness = IStyleClient(element).getStyle("focusThickness");
+                // We only care about focusThickness if we are positioning the whole element
+                if (!elementLocalBounds)
+                {
+                    var eltBounds:Rectangle = layout.getChildElementBounds(element);
+                    var focusThickness:Number = 0;

-                // Make sure that the focus ring is visible. Top and left sides have priority
-                if (focusThickness)
-                {
-                    if (viewport.verticalScrollPosition > eltBounds.top - focusThickness)
-                        viewport.verticalScrollPosition = eltBounds.top - focusThickness;
-                    else if (viewport.verticalScrollPosition + height < eltBounds.bottom + focusThickness)
-                        viewport.verticalScrollPosition = eltBounds.bottom + focusThickness - height;
+                    if (element is IStyleClient)
+                        focusThickness = IStyleClient(element).getStyle("focusThickness");

-                    if (viewport.horizontalScrollPosition > eltBounds.left - focusThickness)
-                        viewport.horizontalScrollPosition = eltBounds.left - focusThickness;
-                    else if (viewport.horizontalScrollPosition + width < eltBounds.right + focusThickness)
-                        viewport.horizontalScrollPosition = eltBounds.right + focusThickness - width;
+                    // Make sure that the focus ring is visible. Top and left sides have priority
+                    if (focusThickness)
+                    {
+                        if (viewport.verticalScrollPosition > eltBounds.top - focusThickness)
+                            viewport.verticalScrollPosition = eltBounds.top - focusThickness;
+                        else if (viewport.verticalScrollPosition + height < eltBounds.bottom + focusThickness)
+                            viewport.verticalScrollPosition = eltBounds.bottom + focusThickness - height;
+
+                        if (viewport.horizontalScrollPosition > eltBounds.left - focusThickness)
+                            viewport.horizontalScrollPosition = eltBounds.left - focusThickness;
+                        else if (viewport.horizontalScrollPosition + width < eltBounds.right + focusThickness)
+                            viewport.horizontalScrollPosition = eltBounds.right + focusThickness - width;
+                    }
                 }

-                if (viewport is UIComponent)
+                if (doValidateNow && viewport is UIComponent)
                     UIComponent(viewport).validateNow();
             }
         }
@@ -1860,6 +1884,8 @@
             addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_DEACTIVATE,
                 softKeyboardDeactivateHandler, false,
                 EventPriority.DEFAULT, true);
+            addEventListener(CaretBoundsChangeEvent.CARET_BOUNDS_CHANGE,
+                caretBoundsChangeHandler);
         }
     }

@@ -2616,11 +2642,22 @@
             if (lastFocusedElement && ensureElementIsVisibleForSoftKeyboard &&
                 (keyboardRect.height != oldSoftKeyboardHeight ||
                  keyboardRect.width != oldSoftKeyboardWidth))
-                ensureElementIsVisible(lastFocusedElement);
+            {
+                // lastFocusedElementCaretBounds might have been set in the
+                // caretBoundsChange event handler
+                if (lastFocusedElementCaretBounds == null)
+                {
+                    ensureElementIsVisible(lastFocusedElement);
+                }
+                else
+                {
+                    ensureElementPositionIsVisible(lastFocusedElement, lastFocusedElementCaretBounds);
+                    lastFocusedElementCaretBounds = null;
+                }
+            }

             oldSoftKeyboardHeight = keyboardRect.height;
             oldSoftKeyboardWidth = keyboardRect.width;
-
         }
     }

@@ -2650,7 +2687,27 @@
         else
             snapContentScrollPosition();
     }
-
+
+    /**
+     *  @private
+     */
+    private function caretBoundsChangeHandler(event:CaretBoundsChangeEvent):void
+    {
+        if (event.isDefaultPrevented())
+            return;
+
+        // If the soft keyboard is not up yet, then just store the caretBounds
+        // It will be used in the softKeyboardActivateHandler
+        if (!isNaN(oldSoftKeyboardHeight))
+        {
+            ensureElementPositionIsVisible(lastFocusedElement, event.newCaretBounds, false);
+            event.preventDefault();
+        }
+
+        lastFocusedElementCaretBounds = event.newCaretBounds;
+
+
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3983
Author:   hmuller@adobe.com
Date:     2008-10-31T19:10:19.937648Z

Log Message:
-----------
Fixed 17820, 17834, various small improvements to the viewport et al ASDoc.

QE Notes: viewport and scroller mustella tests pass
Doc Notes: None
Bugs: sdk-17820, sdk-17834
Reviewer:

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -117,7 +117,11 @@
      *  which lays out both the viewport and scrollbars.
      *
      *  When the viewport property is set, the viewport's clipContent property is
-     *  set to true to enable scrolling.</p>
+     *  set to true to enable scrolling.
+     *
+     *  Scroller does not support rotating the viewport directly.  The viewport's
+     *  contents can be transformed arbitrarily but the viewport itself can not.
+     * </p>
      */
     public function get viewport():IViewport
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20649
Author:   smgilson@adobe.com
Date:     2011-03-07T20:19:16.700368Z

Log Message:
-----------
ASDoc updates

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/animation/SimpleMotionPath.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentRequest.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/interpolation/RGBInterpolator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentCache.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/NavigationUnit.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IGraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>

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

--- frameworks/projects/spark/src/spark/core/ContentRequest.as
+++ frameworks/projects/spark/src/spark/core/ContentRequest.as
@@ -120,6 +120,16 @@

     /**
      *  Constructor.
+     *
+     *  @param contentLoader The IContentLoader object.
+     *
+     *  @param content A reference to contained content.
+     *
+     *  @param shared true indicates that this request is currently
+     *  being shared by other previous requests
+     *
+     *  @param complete true indicates that someone has called load on a cache,
+     *  and the cache has returned immediately with a fully loaded result
      *
      *  @langversion 3.0
      *  @playerversion Flash 10
@@ -159,7 +169,7 @@
     protected var _content:Object;

     /**
-     *  Returns reference to contained content. This
+     *  A reference to contained content. This
      *  can be (among many things), a LoaderInfo instance, BitmapData,
      *  or any other generic content.  When the complete event has fired
      *  and/or complete() returns true, the content is considered valid.
@@ -191,10 +201,15 @@
     private var _complete:Boolean;

     /**
-     *  Read-only flag. Returns true if content is
+     *  Contains true if content is
      *  considered fully loaded and accessible.
      *
-     *  @default false.
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get complete():Boolean
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17992
Author:   rfrishbe@adobe.com
Date:     2010-10-01T20:59:13.104275Z

Log Message:
-----------
Making performance changes to optimize list scrolling.  Most of the changes are around gating dispatchEvent() with hasEventListener().  The biggest of these is that UIComponent SHOW and HIDE don't dispatch all the time anymore--they only dispatch if someone has attached an event listener directly to them (capture phase won't work).

Also, adding an mx_internal property for Design View on MobileIconItemRenderer, iconDisplayClass.

Also, adding a FIXME in ButtonSkinbase related to my last change around text measurement.

QE notes: None
Doc notes: None
Bugs: -
Reviewer: Corey
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/ContentRequest.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataRenderer.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@1283170 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/core/ContentRequest.as
+++ frameworks/projects/spark/src/spark/core/ContentRequest.as
@@ -23,9 +23,9 @@
 import flash.net.URLRequest;
 import flash.system.LoaderContext;

+import mx.core.mx_internal;
+
 import spark.events.LoaderInvalidationEvent;
-
-import mx.core.mx_internal;
 use namespace mx_internal;

 //--------------------------------------
@@ -217,11 +217,13 @@
     {
         if (_content && _content is LoaderInfo)
         {
-            _content.addEventListener(Event.COMPLETE, content_completeHandler);
-            _content.addEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
-            _content.addEventListener(ProgressEvent.PROGRESS, dispatchEvent);
-            _content.addEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
-            _content.addEventListener(HTTPStatusEvent.HTTP_STATUS, dispatchEvent);
+            var _contentLoaderInfo:LoaderInfo = LoaderInfo(_content);
+
+            _contentLoaderInfo.addEventListener(Event.COMPLETE, content_completeHandler);
+            _contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
+            _contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, dispatchEvent);
+            _contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
+            _contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, dispatchEvent);
         }
     }

@@ -232,11 +234,13 @@
     {
         if (_content && _content is LoaderInfo)
         {
-            _content.removeEventListener(Event.COMPLETE, content_completeHandler);
-            _content.removeEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
-            _content.removeEventListener(ProgressEvent.PROGRESS, dispatchEvent);
-            _content.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
-            _content.removeEventListener(HTTPStatusEvent.HTTP_STATUS, dispatchEvent);
+            var _contentLoaderInfo:LoaderInfo = LoaderInfo(_content);
+
+            _contentLoaderInfo.removeEventListener(Event.COMPLETE, content_completeHandler);
+            _contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, content_ioErrorHandler);
+            _contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, dispatchEvent);
+            _contentLoaderInfo.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, dispatchEvent);
+            _contentLoaderInfo.removeEventListener(HTTPStatusEvent.HTTP_STATUS, dispatchEvent);
         }
     }


Added workaround for MenuBar crash bug

Added workaround for MenuBar crash bug

--- WeaveUI/src/weave/ui/controlBars/CustomMenuBar.as
+++ WeaveUI/src/weave/ui/controlBars/CustomMenuBar.as
@@ -31,7 +31,6 @@

 	import mx.controls.Menu;
 	import mx.controls.MenuBar;
-	import mx.controls.menuClasses.MenuBarItem;
 	import mx.core.ClassFactory;
 	import mx.core.mx_internal;
 	import mx.events.MenuEvent;
@@ -47,6 +46,15 @@
 			this.addEventListener(MenuEvent.MENU_SHOW, handleMenuShow);
 			this.addEventListener(MenuEvent.MENU_HIDE, handleMenuHide);
 			this.menuBarItemRenderer = new ClassFactory(CustomMenuBarItem);
+		}
+
+		override public function styleChanged(styleProp:String):void
+		{
+			// Fixes bug where styleChanged() stores menuBarItems.length into a local
+			// variable and then calls getMenuAt(), which modifies menuBarItems.length.
+			if (menuBarItems.length)
+				getMenuAt(0);
+			super.styleChanged(styleProp);
 		}

 		override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void


Transferred from the Adobe Open Source Subversion Repository

Revision: 7163
Author:   aharui@adobe.com
Date:     2009-05-21T02:19:55.813792Z

Log Message:
-----------
Initial checkin of frame 1 cleanup.  In an RSL linkage, more classes will now come from the RSL because they are no longer needed in frame 1, and the size of the application SWF will be smaller.

QE Notes: None
Doc Notes: Maybe.  All new classes should be undocumented, but it might be worth checking that and any changes to interfaces
Bugs:
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.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/flex4/src/spark/primitives/RichText.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/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ResourceModuleRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IMarshalSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/MustellaResultsParser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="A">/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/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/DragManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/PopUpManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManagerChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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

--- frameworks/projects/mx/src/mx/controls/Alert.as
+++ frameworks/projects/mx/src/mx/controls/Alert.as
@@ -561,7 +561,9 @@
         if (!parent)
         {
             var sm:ISystemManager = ISystemManager(FlexGlobals.topLevelApplication.systemManager);
-            if (sm.useSWFBridge())
+		    // no types so no dependencies
+		    var mp:Object = sm.getImplementation("mx.managers.IMarshallPlanSystemManager");
+		    if (mp && mp.useSWFBridge())
                 parent = Sprite(sm.getSandboxRoot());
             else
                 parent = Sprite(FlexGlobals.topLevelApplication);
@@ -595,7 +597,13 @@
 		// Setting a module factory allows the correct embedded font to be found.
         if (parent is UIComponent)
         	alert.moduleFactory = UIComponent(parent).moduleFactory;
-
+        else
+        {
+            alert.moduleFactory = FlexGlobals.topLevelApplication.moduleFactory;
+            // also set document is parent isn't a UIComponent
+            alert.document = FlexGlobals.topLevelApplication.document;
+        }
+
         PopUpManager.addPopUp(alert, parent, modal);

         alert.setActualSize(alert.getExplicitOrMeasuredWidth(),


Transferred from the Adobe Open Source Subversion Repository

Revision: 10755
Author:   clucier@adobe.com
Date:     2009-09-30T19:32:20.239118Z

Log Message:
-----------
Cleanup. Removing all 2.x APIs that have been deprecated since 3.0.

QE notes:  None
Doc notes: None
Bugs: SDK-23265
Reviewer: Ryan, Gordon
Tests run: Checkin
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceBundle.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.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/framework/src/mx/managers/IHistoryManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/FormItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/Locale.as</path>

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

--- frameworks/projects/mx/src/mx/controls/MenuBar.as
+++ frameworks/projects/mx/src/mx/controls/MenuBar.as
@@ -148,43 +148,6 @@
 include "../styles/metadata/LeadingStyle.as"
 include "../styles/metadata/SkinStyles.as"
 include "../styles/metadata/TextStyles.as"
-
-/**
- *  Alpha level of the color defined by the backgroundColor
- *  property.
- *  Valid values range from 0.0 to 1.0.
- *  @default 1.0
- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
-[Style(name="backgroundAlpha", type="Number", inherit="no", deprecatedReplacement="menuStyleName", deprecatedSince="3.0")]
-
-/**
- *  Background color of the component.
- *  The default value is undefined, which means it is not
- *  set and the component has a transparent background.
- *
- *
The default skins of most Flex controls are partially transparent.
- *  As a result, the background color of a container partially "bleeds through"
- *  to controls that are in that container.
- *  You can avoid this by setting the alpha values of the control's
- *  fillAlphas property to 1, as the following example shows:
- *

- *

- *  <mx:Container backgroundColor="0x66CC66"/>
- *      <mx:ControlName ... fillAlphas="[1,1]"/>
- *  </mx:Container>
- *

- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
-[Style(name="backgroundColor", type="uint", format="Color", inherit="no", deprecatedReplacement="menuStyleName", deprecatedSince="3.0")]

 /**
  *  The background skin of the MenuBar control.


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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridBaseSelectionData.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridBaseSelectionData.as
@@ -0,0 +1,164 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.controls.advancedDataGridClasses
+{
+
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+/**
+ *  The AdvancedDataGridBaseSelectionData class defines a data structure
+ *  used by the advanced data grid classes to track selected cells in the AdvancedDataGrid control.
+ *  Each selected cell is represented by an instance of this class.
+ *
+ *  @see mx.controls.AdvancedDataGrid
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AdvancedDataGridBaseSelectionData
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param data The data Object that represents the selected cell.
+     *
+     *  @param rowIndex The index in the data provider of the selected item.
+     *  This value may be approximate.
+     *
+     *  @param columnIndex The column index of the selected cell.
+     *
+     *  @param approximate If true, the index property
+     *  contains an approximate value and not the exact value.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AdvancedDataGridBaseSelectionData(data:Object,
+                                                    rowIndex:int,
+                                                    columnIndex:int,
+                                                    approximate:Boolean)
+    {
+        super();
+
+        this.data        = data;
+        this.rowIndex    = rowIndex;
+        this.columnIndex = columnIndex;
+        this.approximate = approximate;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  The next AdvancedDataGridBaseSelectionData in a linked list
+     *  of AdvancedDataGridBaseSelectionData.
+     *  AdvancedDataGridBaseSelectionData instances are linked together and keep track
+     *  of the order in which the user selects items.
+     *  This order is reflected in selectedIndices, selectedItems, selectedCells.
+     */
+    mx_internal var nextSelectionData:AdvancedDataGridBaseSelectionData;
+
+    /**
+     *  @private
+     *  The previous AdvancedDataGridBaseSelectionData in a linked list
+     *  of AdvancedDataGridBaseSelectionData.
+     *  AdvancedDataGridBaseSelectionData instances are linked together and keep track
+     *  of the order in which the user selects items.
+     *  This order is reflected in selectedIndices, selectedItems, selectedCells.
+     */
+    mx_internal var prevSelectionData:AdvancedDataGridBaseSelectionData;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  approximate
+    //----------------------------------
+
+    /**
+     *  If true, the rowIndex and columnIndex
+     *  properties contain approximate values, and not the exact value.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var approximate:Boolean;
+
+    //----------------------------------
+    //  data
+    //----------------------------------
+
+    /**
+     *  The data Object from the data provider that represents the selected cell.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var data:Object;
+
+    //----------------------------------
+    //  rowIndex
+    //----------------------------------
+
+    /**
+     *  The row index in the data provider of the selected cell.
+     *  This value is approximate if the approximate property is true.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var rowIndex:int;
+
+    //----------------------------------
+    //  columnIndex
+    //----------------------------------
+
+    /**
+     *  The column index in the data provider of the selected cell.
+     *  This value is approximate if the approximate property is true.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var columnIndex:int;
+}
+
+}