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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17265
Author:   gruehle@adobe.com
Date:     2010-08-11T01:04:24.987005Z

Log Message:
-----------
Initial checkin of MobileTextField, IDisplayText, and IEditableText. Nothing is using these classes/interfaces yet, so there are no functional changes. Checking in now so Ryan can start using it in item renderers.

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

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IDisplayText.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileTextField.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IEditableText.as</path>

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

--- frameworks/projects/spark/src/spark/core/IDisplayText.as
+++ frameworks/projects/spark/src/spark/core/IDisplayText.as
@@ -0,0 +1,54 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.core
+{
+import flash.events.IEventDispatcher;
+
+/**
+ *  The IDisplayText interface defines the properties and methods
+ *  for simple text display.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+public interface IDisplayText extends IEventDispatcher
+{
+    /**
+     *  The text displayed by this text component.
+	 *
+     *
The formatting of this text is controlled by CSS styles.
+     *  The supported styles depend on the subclass.

+	 *
+	 *  @default ""
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    function get text():String;
+    function set text(value:String):void;
+
+
+    /**
+     *  A flag that indicates whether the text has been truncated.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.0
+     *  @productversion Flex 4.5
+     */
+    function get isTruncated():Boolean;
+}
+}


FLEX-34054 turned grouping off

FLEX-34054 turned grouping off

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -797,6 +797,7 @@
             {
                 dataFormatter = new NumberFormatter();
 				dataFormatter.fractionalDigits = Math.max(0, (stepSize - Math.floor(stepSize)).toString().length - 2);
+				dataFormatter.useGrouping = false;
                 addStyleClient(dataFormatter);
             }


Allow fullscreen to override active window check during interval

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -431,13 +431,18 @@
 			raiseLog(results);

             if (_isPaused == false) {
-                _intervalsUnMeasurable = (results.viewabilityState == OVVCheck.UNMEASURABLE) ? _intervalsUnMeasurable + 1 : 0;
-                _intervalsInView = (results.viewabilityState == OVVCheck.VIEWABLE && results.focus == true) ? _intervalsInView + 1 : 0;
+                _intervalsUnMeasurable = (results.viewabilityState == OVVCheck.UNMEASURABLE)
+                                            ? _intervalsUnMeasurable + 1 : 0;
+                _intervalsInView = (results.viewabilityState == OVVCheck.VIEWABLE &&
+                                    ( results.focus == true ||
+                                        results.viewabilityStateOverrideReason == OVVCheck.FULLSCREEN) )
+                                    ? _intervalsInView + 1 : 0;

                 if (_impressionEventRaised == false && _intervalsInView >= VIEWABLE_IMPRESSION_THRESHOLD) {
                     raiseImpression(results);
                 }
-                else if (_impressionUnmeasurableEventRaised == false && _intervalsUnMeasurable >= UNMEASURABLE_IMPRESSION_THRESHOLD) {
+                else if (_impressionUnmeasurableEventRaised == false &&
+                            _intervalsUnMeasurable >= UNMEASURABLE_IMPRESSION_THRESHOLD) {
                     raiseImpressionUnmeasurable(results);
                 }
             }


Added interpolateAnimations parameter to ParserOptions

--- src/aerys/minko/type/loader/parser/ParserOptions.as
+++ src/aerys/minko/type/loader/parser/ParserOptions.as
@@ -34,6 +34,7 @@
 		private var _indexStreamUsage			: uint;
 		private var _parser						: Class;
 		private var _assets						: AssetsLibrary;
+		private var _interpolateAnimations		: Boolean;

 		public function get skinningMethod() : uint
 		{
@@ -153,6 +154,16 @@
 		public function set assets(value : AssetsLibrary):void
 		{
 			_assets = value;
+		}
+
+		public function get interpolateAnimations():Boolean
+		{
+			return _interpolateAnimations;
+		}
+
+		public function set interpolateAnimations(value:Boolean):void
+		{
+			_interpolateAnimations = value;
 		}

 		public function clone() : ParserOptions
@@ -169,7 +180,8 @@
 				_vertexStreamUsage,
 				_indexStreamUsage,
 				_parser,
-				_assets
+				_assets,
+				_interpolateAnimations
 			);
 		}

@@ -184,7 +196,8 @@
 									  vertexStreamUsage			: uint 			= 0,
 									  indexStreamUsage			: uint 			= 0,
 									  parser					: Class			= null,
-									  assets					: AssetsLibrary	= null)
+									  assets					: AssetsLibrary	= null,
+									  interpolateAnimations		: Boolean		= false)
 		{
 			_dependencyLoaderFunction	= dependencyLoaderFunction 	|| defaultDependencyLoaderFunction;
 			_materialFunction			= materialFunction			|| defaultMaterialFunction;
@@ -198,6 +211,7 @@
 			_indexStreamUsage			= indexStreamUsage;
 			_parser						= parser;
 			_assets						= assets;
+			_interpolateAnimations		= interpolateAnimations;
 		}

 		private function defaultDependencyLoaderFunction(dependencyId	: String,


Transferred from the Adobe Open Source Subversion Repository

Revision: 11657
Author:   rfrishbe@adobe.com
Date:     2009-11-11T17:24:23.830556Z

Log Message:
-----------
We need to set menu's automationParent/automationOwner.  This is needed for automation, and this was already in the MX Window/WindowedApplication but not in Spark Window/WIndowedApplication

QE notes: -
Doc notes: -
Bugs: SDK-23798
Reviewer: Darrell
Tests run: checkintest
Is noteworthy for integration: No

Modified Paths:
--------------
<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/airframework/src/spark/components/WindowedApplication.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/airframework/src/mx/core/WindowedApplication.as</path>

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

--- frameworks/projects/airspark/src/spark/components/WindowedApplication.as
+++ frameworks/projects/airspark/src/spark/components/WindowedApplication.as
@@ -1244,8 +1244,20 @@
      */
     public function set menu(value:FlexNativeMenu):void
     {
+        if (_menu)
+        {
+            _menu.automationParent = null;
+            _menu.automationOwner = null;
+        }
+
         _menu = value;
         menuChanged = true;
+
+        if (_menu)
+        {
+            menu.automationParent = this;
+            menu.automationOwner = this;
+        }
     }

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


fix how extra experimental classes are linked into sec

--- frameworks/projects/experimental_mobile/src/ExperimentalMobileClasses.as
+++ frameworks/projects/experimental_mobile/src/ExperimentalMobileClasses.as
@@ -18,10 +18,6 @@
 ////////////////////////////////////////////////////////////////////////////////
 package
 {
-import spark.components.MobileGrid;
-import spark.components.supportClasses.MobileGridColumn;
-import spark.skins.MobileGridHeaderButtonBarSkin;
-import spark.skins.MobileGridSkin;

 /*
  classes that won't be detected through dependencies
@@ -30,8 +26,9 @@

 internal class ExperimentalMobileClasses
 {
-
-    // mamsellem: for some reason, the import statements alone are not enough to have the classes included
-    private static const classes:Array = [MobileGrid, MobileGridColumn, MobileGridSkin, MobileGridHeaderButtonBarSkin];
+	import spark.components.MobileGrid; MobileGrid;
+	import spark.components.supportClasses.MobileGridColumn; MobileGridColumn;
+	import spark.skins.MobileGridHeaderButtonBarSkin; MobileGridHeaderButtonBarSkin;
+	import spark.skins.MobileGridSkin; MobileGridSkin;
 }
 }


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

--- frameworks/projects/framework/src/mx/formatters/SwitchSymbolFormatter.as
+++ frameworks/projects/framework/src/mx/formatters/SwitchSymbolFormatter.as
@@ -0,0 +1,129 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-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.formatters
+{
+
+/**
+ *  The SwitchSymbolFormatter class is a utility class that you can use
+ *  when creating custom formatters.
+ *  This class performs a substitution by replacing placeholder characters
+ *  in one String with numbers from a second String.
+ *
+ *
For example, you specify the following information
+ *  to the SwitchSymbolFormatter class:

+ *
+ *
Format String: "The SocialSecurity number is: ###-##-####"

+ *
Input String: "123456789"

+ *
+ *
The SwitchSymbolFormatter class parses the format String and replaces
+ *  each placeholder character, by default the number character (#),
+ *  with a number from the input String in the order in which
+ *  the numbers are specified in the input String.
+ *  You can define a different placeholder symbol by passing it
+ *  to the constructor when you instantiate a SwitchSymbolFormatter object.

+ *
+ *
The output String created by the SwitchSymbolFormatter class
+ *  from these two Strings is the following:

+ *
+ *
"The SocialSecurity number is: 123-45-6789"

+ *
+ *
The pattern can contain any characters as long as they are constant
+ *  for all values of the numeric portion of the String.
+ *  However, the value for formatting must be numeric.

+ *
+ *
The number of digits supplied in the source value must match
+ *  the number of digits defined in the pattern String.
+ *  This is the responsibility of the script calling the
+ *  SwitchSymbolFormatter object.

+ *
+ *  @includeExample examples/SwitchSymbolFormatterExample.mxml
+ *
+ *  @see mx.formatters.PhoneFormatter
+ *  @access private
+ */
+public class SwitchSymbolFormatter
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param numberSymbol Character to use as the pattern character.
+	 */
+	public function SwitchSymbolFormatter(numberSymbol:String = "#")
+	{
+		super();
+
+		this.numberSymbol = numberSymbol;
+		isValid = true;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var numberSymbol:String;
+
+	/**
+	 *  @private
+	 */
+	private var isValid:Boolean;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Creates a new String by formatting the source String
+	 *  using the format pattern.
+	 *
+	 *  @param format String that defines the user-requested pattern including.
+	 *
+	 *  @param source Valid number sequence
+	 *  (alpha characters are allowed if needed).
+	 *
+	 *  @returns Formatted String.
+	 */
+	public function formatValue(format:String, source:Object):String
+	{
+		var numStr:String = "";
+
+		var uStrIndx:int = 0;
+
+		var n:int = format.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			var letter:String = format.charAt(i);
+			if (letter == numberSymbol)
+				numStr += String(source).charAt(uStrIndx++);
+			else
+				numStr += format.charAt(i);
+		}
+
+		return numStr;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10872
Author:   cframpto@adobe.com
Date:     2009-10-05T19:39:47.041984Z

Log Message:
-----------
Most changes already approved by PARB and a few are pending.  Given the two reviewers are at MAX and then there is a shutdown week we decided to take a chance that these changes will actually stick.

TLFText.css -> MXFTEText.css
TLFTextField -> FTETextField
UITLFTextField -> UIFTETextField
TLFDataGridItemRenderer -> FTEDataGridItemRenderer
TLFTextInput -> MXFTETextInput

UITextFormat.useTLF -> UITextFormat.useFTE

QE notes:
Doc notes:
Bugs: SDK-22909
Reviewer: Gordon
Tests run: checkintests
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/MXFTETextInput.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/TLFTextInput.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/TLFTextField.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/FTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UITLFTextField.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/TLFDataGridItemRenderer.as" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/TextFieldFactory.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/TLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/CSSTextLayoutFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/dataGridClasses/TLFDataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITextFieldFactory.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/spark/src/spark/components/Label.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/TLFText.css" copyfrom-rev="10865" action="A">/flex/sdk/trunk/frameworks/projects/spark/MXFTEText.css</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/TLFText.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/mx/src/mx/controls/colorPickerClasses/SwatchPanel.as
+++ frameworks/projects/mx/src/mx/controls/colorPickerClasses/SwatchPanel.as
@@ -339,7 +339,7 @@
  *
  *
It can be set to either the mx.core.TextInput class
  *  (to use the classic Halo TextInput control)
- *  or the mx.controls.TLFTextInput class
+ *  or the mx.controls.MXFTETextInput class
  *  (to use the Spark TextInput component based on the Text Layout Framework
  *  to get improved text rendering, including bidirectional layout).

  *
@@ -1220,8 +1220,8 @@
             }

-            // TLFTextInput does not maintain its selection when the
-            // text is reset.  Remember to maintain soft link to FTETextInput.
+            // MXFTETextInput does not maintain its selection when the
+            // text is reset.  Remember to maintain soft link to MXFTETextInput.
             if (!(textInput is TextInput))
             {
                 var anchorPosition:int = textInput.selectionAnchorPosition;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17316
Author:   klin@adobe.com
Date:     2010-08-13T19:04:51.716189Z

Log Message:
-----------
Fix batch of bugs in DataGrid and also add basic border and background styles.

DataGrid.as - Added style metadata for borderAlpha, borderColor, borderVisible, contentBackgroundAlpha, and contentBackgroundColor.
Grid.as - Add backing variable for variableRowHeight so it doesn't depend on gridDimensions.fixedRowHeight anymore.
GridLayout.as - Modified updateTypicalCellSizes() to set the fixedRowHeight to the maximum height of the typical cells when no rowHeight is set and variableRowHeight is false. Also, measuredHeight is now calculated only using the typical item instead of the content.
GridDimensions.as - Added getTypicalContentHeight() for GridLayout to calculate the measuredHeight. Also, we now reset the data structure when the columnCount is 0.
GridColumn.as - Invalidate the grid when dataField and labelFunction are set.
GridEvent.as - Fixed misspelled event constants.
DataGridSkin.mxml - Changed background color to white, caret color to dark blue, and removed the rowBackground.

QE notes: No
Doc notes: No
Bugs: SDK-26895, SDK-26897, SDK-26934, SDK-27166, SDK-27170, SDK-27176, SDK-27216, SDK-27264
Reviewer: Hans
Tests run: checkintests, DataGrid
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
@@ -174,7 +174,8 @@
             dataFieldPath = [value];

         dispatchChangeEvent("dataFieldChanged");
-        // TBD invalidate grid
+
+        maybeInvalidateGrid();
     }

     //----------------------------------
@@ -449,7 +450,8 @@

         _labelFunction = value;
         dispatchChangeEvent("labelFunctionChanged");
-        // TBD invalidate grid
+
+        maybeInvalidateGrid();
     }

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 17313
Author:   hmuller@adobe.com
Date:     2010-08-13T16:29:31.646592Z

Log Message:
-----------
Added alternatingRowColors DataGrid style, alternatingRowColorsBackground DataGrid skin part, and IGridRowBackround interface.  If the new style is specified the alternatingRowColorsBackground DataGrid skin part becomes the grid's rowBackground.

Moved [Bindable] above the corresponding "grid" skin part metadata so that the grid skin part ASDoc shows up.

QE notes:
Doc notes:
Bugs:
Reviewer: Carol
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/IGridRowBackground.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
@@ -704,9 +704,7 @@
             var itemData:Object = item;
             for each (var pathElement:String in labelPath)
                 itemData = itemData[pathElement];
-
-            // Make sure to check for null so that if itemData is "0" the
-            // expression will return true.
+
             if (itemData != null)
                 return itemData.toString();
         }


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

--- frameworks/projects/automation_air/src/mx/core/Version.as
+++ frameworks/projects/automation_air/src/mx/core/Version.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@1268541 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/controls/ToggleButtonBar.as
+++ frameworks/projects/mx/src/mx/controls/ToggleButtonBar.as
@@ -0,0 +1,627 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls
+{
+
+import flash.events.Event;
+import flash.events.KeyboardEvent;
+import flash.events.MouseEvent;
+import flash.ui.Keyboard;
+import mx.core.IFlexDisplayObject;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Styles
+//--------------------------------------
+
+/**
+ *  Name of CSS style declaration that specifies styles for the text of the
+ *  selected button.
+ */
+[Style(name="selectedButtonTextStyleName", type="String", inherit="no")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="horizontalLineScrollSize", kind="property")]
+[Exclude(name="horizontalPageScrollSize", kind="property")]
+[Exclude(name="horizontalScrollBar", kind="property")]
+[Exclude(name="horizontalScrollPolicy", kind="property")]
+[Exclude(name="horizontalScrollPosition", kind="property")]
+[Exclude(name="maxHorizontalScrollPosition", kind="property")]
+[Exclude(name="maxVerticalScrollPosition", kind="property")]
+[Exclude(name="verticalLineScrollSize", kind="property")]
+[Exclude(name="verticalPageScrollSize", kind="property")]
+[Exclude(name="verticalScrollBar", kind="property")]
+[Exclude(name="verticalScrollPolicy", kind="property")]
+[Exclude(name="verticalScrollPosition", kind="property")]
+
+[Exclude(name="scroll", kind="event")]
+[Exclude(name="click", kind="event")]
+
+[Exclude(name="backgroundAlpha", kind="style")]
+[Exclude(name="backgroundAttachment", kind="style")]
+[Exclude(name="backgroundColor", kind="style")]
+[Exclude(name="backgroundImage", kind="style")]
+[Exclude(name="backgroundSize", kind="style")]
+[Exclude(name="borderColor", kind="style")]
+[Exclude(name="borderSides", kind="style")]
+[Exclude(name="borderSkin", kind="style")]
+[Exclude(name="borderStyle", kind="style")]
+[Exclude(name="borderThickness", kind="style")]
+[Exclude(name="cornerRadius", kind="style")]
+[Exclude(name="dropShadowColor", kind="style")]
+[Exclude(name="dropShadowEnabled", kind="style")]
+[Exclude(name="horizontalScrollBarStyleName", kind="style")]
+[Exclude(name="shadowCapColor", kind="style")]
+[Exclude(name="shadowColor", kind="style")]
+[Exclude(name="shadowDirection", kind="style")]
+[Exclude(name="shadowDistance", kind="style")]
+[Exclude(name="verticalScrollBarStyleName", kind="style")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[IconFile("ButtonBar.png")]
+
+/**
+ *  The ToggleButtonBar control defines a horizontal or vertical
+ *  group of buttons that maintain their selected or deselected state.
+ *  Only one button in the ToggleButtonBar control
+ *  can be in the selected state.
+ *  This means that when a user selects a button in a ToggleButtonBar control,
+ *  the button stays in the selected state until the user selects a different button.
+ *
+ *
If you set the toggleOnClick property of the
+ *  ToggleButtonBar container to true,
+ *  selecting the currently selected button deselects it.
+ *  By default the toggleOnClick property is set to
+ *  false.

+ *
+ *
You can use the ButtonBar control to define a group
+ *  of push buttons.

+ *
+ *
The typical use for a toggle button is for maintaining selection
+ *  among a set of options, such as switching between views in a ViewStack
+ *  container.

+ *
+ *
The ToggleButtonBar control creates Button controls based on the value of
+ *  its dataProvider property.
+ *  Even though ToggleButtonBar is a subclass of Container, do not use methods such as
+ *  Container.addChild() and Container.removeChild()
+ *  to add or remove Button controls.
+ *  Instead, use methods such as addItem() and removeItem()
+ *  to manipulate the dataProvider property.
+ *  The ToggleButtonBar control automatically adds or removes the necessary children based on
+ *  changes to the dataProvider property.

+ *
+ *
To control the styling of the buttons of the ToggleButtonBar control,
+ *  use the buttonStyleName, firstButtonStyleName,
+ *  and lastButtonStyleName style properties;
+ *  do not try to style the individual Button controls
+ *  that make up the ToggleButtonBar control.

+ *
+ *
ToggleButtonBar control has the following default characteristics:

+ *

+ *

+ *        Characteristic
+ *        Description
+ *

+ *

+ *        Preferred size
+ *        Wide enough to contain all buttons with their label text and icons, if any, plus any
+ *            padding and separators, and high enough to accommodate the button height.
+ *

+ *

+ *        Control resizing rules
+ *        The controls do not resize by default. Specify percentage sizes if you want your
+ *            ToggleButtonBar to resize based on the size of its parent container.
+ *

+  *

+ *        selectedIndex
+ *        Determines which button will be selected when the control is created. The default value is "0"
+ *            and selects the leftmost button in the bar. Setting the selectedIndex property to "-1" deselects
+ *            all buttons in the bar.
+ *

+*

+ *        Padding
+ *        0 pixels for the top, bottom, left, and right properties.
+ *

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:ToggleButtonBar> tag inherits all of the tag attributes
+ *  of its superclass, and adds the following tag attributes:

+ *
+ *

+ *  <mx:ToggleButtonBar
+ *    Properties
+ *    selectedIndex="0"
+ *    toggleOnClick="false|true"
+ *
+ *    Styles
+ *    selectedButtonTextStyleName="Name of CSS style declaration that specifies styles for the text of the selected button.">
+ *    ...
+ *       child tags
+ *    ...
+ *  </mx:ToggleButtonBar>
+ *

+ *
+ *  @includeExample examples/ToggleButtonBarExample.mxml
+ *
+ *  @see mx.controls.ButtonBar
+ *  @see mx.controls.LinkBar
+ */
+public class ToggleButtonBar extends ButtonBar
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function ToggleButtonBar()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private.
+     */
+    private var initializeSelectedButton:Boolean = true;
+
+    /**
+     *  @private
+     *  Name of style used to specify selectedButtonTextStyleName.
+     *  Overridden by TabBar.
+     */
+    mx_internal var selectedButtonTextStyleNameProp:String =
+        "selectedButtonTextStyleName";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  selectedIndex
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the selectedIndex property.
+     */
+    private var _selectedIndex:int = -2;
+
+    /**
+     *  @private.
+     */
+    private var selectedIndexChanged:Boolean = false;
+
+    [Bindable("click")]
+    [Bindable("valueCommit")]
+    [Inspectable(category="General")]
+
+    /**
+     *  Index of the selected button.
+     *  Indexes are in the range of 0, 1, 2, ..., n - 1,
+     *  where n is the number of buttons.
+     *
+     *
The default value is 0.
+	 *  A value of -1 deselects all the buttons in the bar.

+     */
+    override public function get selectedIndex():int
+    {
+      return super.selectedIndex;
+      //return _selectedIndex;
+    }
+
+    /**
+     *  @private.
+     */
+    override public function set selectedIndex(value:int):void
+    {
+        if (value == selectedIndex)
+            return;
+
+        // If the buttons have not been created yet, store the selectedIndex.
+        if (numChildren == 0)
+        {
+            _selectedIndex = value;
+            selectedIndexChanged = true;
+        }
+
+        // Otherwise set the index locally and invalidate properties.
+        if ( value < numChildren)
+        {
+            _selectedIndex = value;
+            selectedIndexChanged = true;
+
+            invalidateProperties();
+
+            dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  toggleOnClick
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the toggleOnClick property.
+     */
+    private var _toggleOnClick:Boolean = false;
+
+    [Inspectable(category="General", defaultValue="false")]
+
+    /**
+     *  Specifies whether the currently selected button can be deselected by
+     *  the user.
+     *
+     *  By default, the currently selected button gets deselected
+     *  automatically only when another button in the group is selected.
+     *  Setting this property to true lets the user
+     *  deselect it.
+     *  When the currently selected button is deselected,
+     *  the selectedIndex property is set to -1.
+     *
+     *  @default false
+     */
+    public function get toggleOnClick():Boolean
+    {
+        return _toggleOnClick;
+    }
+
+    /**
+     *  @private
+     */
+    public function set toggleOnClick(value:Boolean):void
+    {
+        _toggleOnClick = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        if (selectedIndexChanged)
+        {
+            hiliteSelectedNavItem(_selectedIndex);
+
+            // Update parent index.
+            super.selectedIndex = _selectedIndex;
+
+            selectedIndexChanged = false;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        // Select the first selectedIndex in the UI. If the user has defined it,
+        // the value will be waiting in the selectedIndex property
+        if (initializeSelectedButton)
+        {
+            initializeSelectedButton = false;
+
+            var index:int = _selectedIndex;
+            if (index == -2)
+            {
+            	if (numChildren > 0)
+                	index = 0;
+                else
+                	index = -1;
+           	}
+            hiliteSelectedNavItem(index);
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        var allStyles:Boolean = styleProp == null || styleProp == "styleName";
+
+        super.styleChanged(styleProp);
+
+        if (allStyles ||
+            styleProp == selectedButtonTextStyleNameProp)
+        {
+            if (selectedIndex != -1 && selectedIndex < numChildren)
+            {
+                var child:Button = Button(getChildAt(selectedIndex));
+                if (child)
+                {
+                    var selectedButtonTextStyleName:String =
+                        getStyle(selectedButtonTextStyleNameProp);
+
+                    child.getTextField().styleName =
+                        selectedButtonTextStyleName ?
+                        selectedButtonTextStyleName :
+                        "activeButtonStyle";
+                }
+            }
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: NavBar
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function createNavItem(
+                                        label:String,
+                                        icon:Class = null):IFlexDisplayObject
+    {
+        var b:Button = Button(super.createNavItem(label, icon));
+        b.toggle = true;
+        return b;
+    }
+
+    /**
+     *  @private
+     */
+    override protected function hiliteSelectedNavItem(index:int):void
+    {
+        var child:Button;
+
+        // Un-hilite the current selection
+        if (selectedIndex != -1 && selectedIndex < numChildren)
+        {
+            child = Button(getChildAt(selectedIndex));
+
+            child.selected = false;
+            child.getTextField().styleName = child;
+
+            child.invalidateDisplayList();
+            child.invalidateSize();
+        }
+
+        // Set new index
+        super.selectedIndex = index;
+
+        if (index > -1)
+        {
+            // Hilite the new selection
+            child = Button(getChildAt(selectedIndex));
+
+            child.selected = true;
+
+            var selectedButtonTextStyleName:String =
+                getStyle(selectedButtonTextStyleNameProp);
+
+            child.getTextField().styleName =
+                selectedButtonTextStyleName ?
+                selectedButtonTextStyleName :
+                "activeButtonStyle";
+
+            child.invalidateDisplayList();
+        }
+
+
+    }
+
+    /**
+     *  @private
+     */
+    override protected function resetNavItems():void
+    {
+        var selectedButtonTextStyleName:String =
+            getStyle(selectedButtonTextStyleNameProp);
+
+        // Need to reset the index values, selection state,
+        // and selected text style...
+        var n:int = numChildren;
+        for (var i:int = 0; i < n; i++)
+        {
+            var child:Button = Button(getChildAt(i));
+
+            if (i == selectedIndex)
+            {
+                child.selected = true;
+                child.getTextField().styleName =
+                    selectedButtonTextStyleName ?
+                    selectedButtonTextStyleName :
+                    "activeButtonStyle";
+            }
+            else
+            {
+                child.selected = false;
+                child.getTextField().styleName = child;
+            }
+        }
+
+        super.resetNavItems();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Select the button at the specified index.
+     */
+    mx_internal function selectButton(index:int,
+                                      updateFocusIndex:Boolean = false,
+                                      trigger:Event = null):void
+    {
+        // 143958
+        _selectedIndex = index;
+
+        if (updateFocusIndex)
+        {
+            drawButtonFocus(focusedIndex, false);
+            focusedIndex = index;
+            drawButtonFocus(focusedIndex, false);
+        }
+
+        var child:Button = Button(getChildAt(index));
+        simulatedClickTriggerEvent = trigger;
+        child.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
+        simulatedClickTriggerEvent = null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden event handlers: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function keyDownHandler(event:KeyboardEvent):void
+    {
+        var targetIndex:int = -1;
+        var updateFocusIndex:Boolean = true;
+        var n:int = numChildren;
+
+        switch (event.keyCode)
+        {
+            case Keyboard.PAGE_DOWN:
+            {
+                targetIndex = nextIndex(selectedIndex);
+                break;
+            }
+
+            case Keyboard.PAGE_UP:
+            {
+                if (selectedIndex != -1)
+                    targetIndex = prevIndex(selectedIndex);
+                else if (n > 0)
+                    targetIndex = 0;
+                break;
+            }
+
+            case Keyboard.HOME:
+            {
+                if (n > 0)
+                    targetIndex = 0;
+                break;
+            }
+
+            case Keyboard.END:
+            {
+                if (n > 0)
+                    targetIndex = n - 1;
+                break;
+            }
+
+            case Keyboard.SPACE:
+            case Keyboard.ENTER:
+            {
+                if (focusedIndex != -1)
+                {
+                    targetIndex = focusedIndex;
+                    updateFocusIndex = false;
+                }
+                break;
+            }
+
+            default:
+            {
+                super.keyDownHandler(event);
+            }
+        }
+
+        if (targetIndex != -1)
+        {
+            selectButton(targetIndex, updateFocusIndex, event);
+        }
+
+        event.stopPropagation();
+    }
+
+    /**
+     *  @private
+     */
+    override protected function keyUpHandler(event:KeyboardEvent):void
+    {
+        // Override superclass's keyUpHandler() but do nothing.
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden event handlers: NavBar
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function clickHandler(event:MouseEvent):void
+    {
+        var index:int = getChildIndex(Button(event.currentTarget));
+
+        // 143958
+        _selectedIndex = index;
+
+        if (_toggleOnClick && index == selectedIndex)
+        {
+        	selectedIndex = -1;
+            hiliteSelectedNavItem(-1);
+        }
+        else
+            hiliteSelectedNavItem(index);
+
+        super.clickHandler(event);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20455
Author:   egeorgie@adobe.com
Date:     2011-02-24T18:39:34.625731Z

Log Message:
-----------
Fix for http://bugs.adobe.com/jira/browse/SDK-29635 When a child swf is loaded with loadForCompatibility=true, the Spark Slider pop up and DropDownList drop down are not positioned correctly.

In this change:
- update HSlider and VSlider to correctly convert the tooltip position form sandboxRoot to systemManager coordinates (the tip is in system manager coordinates).
- DropDown/ComboBox and other pop-up related code now calcualtes the concatenatedMatrix up to the sandboxRoot instead of the root sprite (the root sprite is the systemManager in a sub-app but the actual pop-up parent is the sandboxRoot).

QE notes: Verify grid item renderers' tooltips in sub-app/marshall plan/mobile density scaling scenarios; A general pass over drop-down and combo box in sub-app/marshall plan/mobile density scaling scenarios.
Doc notes:
Bugs: SDK-29635
Reviewer: Alex
Tests run: mustella full cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/BitmapUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>

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

--- frameworks/projects/spark/src/spark/components/VSlider.as
+++ frameworks/projects/spark/src/spark/components/VSlider.as
@@ -187,6 +187,11 @@
                                                            NaN,
                                                            null,
                                                            new Point(relX, relY));
+
+            // The point is in sandboxRoot coordinates, however tipAsDisplayObject is paranted to systemManager,
+            // convert to tipAsDisplayObject's parent coordinates
+            pt = tipAsDisplayObject.parent.globalToLocal(systemManager.getSandboxRoot().localToGlobal(pt));
+
             tipAsDisplayObject.x = Math.floor(pt.x);
             tipAsDisplayObject.y = Math.floor(pt.y);
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19635
Author:   aharui@adobe.com
Date:     2011-01-07T00:25:18.039632Z

Log Message:
-----------
revert the layout changes from svn 18635.  Management feels that there isn't enough time to thoroughly test the changes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.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="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.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="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<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/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/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/TileLayout.as
+++ frameworks/projects/spark/src/spark/layouts/TileLayout.as
@@ -11,16 +11,12 @@

 package spark.layouts
 {
-import flash.geom.Point;
 import flash.geom.Rectangle;

-import mx.core.FlexVersion;
 import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
-import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
 import mx.events.PropertyChangeEvent;
-import mx.managers.ILayoutManagerClient;

 import spark.components.supportClasses.GroupBase;
 import spark.core.NavigationUnit;
@@ -1239,9 +1235,6 @@
     {
         if (!elt || !elt.includeInLayout)
             return;
-        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-            if (elt is ILayoutManagerClient)
-                UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(elt), true);
         var w:Number = elt.getPreferredBoundsWidth();
         var h:Number = elt.getPreferredBoundsHeight();
         _tileWidthCached = isNaN(_tileWidthCached) ? w : Math.max(w, _tileWidthCached);
@@ -1270,7 +1263,7 @@
         if ((visibleStartIndex != -1) && (visibleEndIndex != -1))
         {
             for (var index:int = visibleStartIndex; index <= visibleEndIndex; index++)
-                updateVirtualTileSize(target.getVirtualElementAt(index, NaN, NaN, true));
+                updateVirtualTileSize(target.getVirtualElementAt(index));
         }

         // Make sure that we always have non-NaN values in the cache, even
@@ -1454,12 +1447,9 @@
                 i = visibleEndIndex;
                 continue;
             }
-            var el:ILayoutElement = layoutTarget.getVirtualElementAt(i, NaN, NaN, true);
+            var el:ILayoutElement = layoutTarget.getVirtualElementAt(i);
             if (!el)
                 continue;
-            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-                if (el is ILayoutManagerClient)
-                    UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(el), true);
             el.setLayoutBoundsSize(0, 0);
             if (el is IVisualElement)
                 IVisualElement(el).visible = false;
@@ -1608,7 +1598,6 @@
         if (!g)
             return;

-        g.invalidateEstimatedSizesOfChildren();
         g.invalidateSize();
         g.invalidateDisplayList();
     }
@@ -1621,75 +1610,6 @@

     /**
      *  @private
-     *  customize handling of a few cases
-     */
-    override protected function estimateSizeOfElement(layoutElement:ILayoutElement,
-                                                               percentWidth:Number,
-                                                               percentHeight:Number,
-                                                               parentEstimatedWidth:Number,
-                                                               parentEstimatedHeight:Number,
-                                                               estimatedSize:Point):void
-    {
-        super.estimateSizeOfElement(layoutElement,
-                                                percentWidth,
-                                                percentHeight,
-                                                parentEstimatedWidth,
-                                                parentEstimatedHeight,
-                                                estimatedSize);
-
-        var c:Number;
-        if (isNaN(estimatedSize.y) || !isNaN(explicitRowHeight))
-        {
-            c = explicitRowHeight;
-            if (isNaN(c))
-            {
-                if (requestedRowCount > 0)
-                {
-                    c = target.estimatedHeight;
-                    if (isNaN(c) && !isNaN(target.explicitHeight))
-                        c = target.explicitHeight;
-                    c = (c - (requestedRowCount - 1) * verticalGap) / requestedRowCount;
-                }
-            }
-            if (!isNaN(c))
-            {
-                // if verticalAlign is "justify" or "contentJustify",
-                // restrict the height to constrainedHeight.  Otherwise,
-                // size it normally
-                if (verticalAlign == VerticalAlign.JUSTIFY)
-				// ||
-                //    verticalAlign == VerticalAlign.CONTENT_JUSTIFY)
-                    estimatedSize.y = c;
-            }
-        }
-        if (isNaN(estimatedSize.x) || !isNaN(explicitColumnWidth))
-        {
-            c = explicitColumnWidth;
-            if (isNaN(c))
-            {
-                if (requestedColumnCount > 0)
-                {
-                    c = target.estimatedWidth;
-                    if (isNaN(c) && !isNaN(target.explicitWidth))
-                        c = target.explicitWidth;
-                    c = (c - (requestedColumnCount - 1) * horizontalGap) / requestedColumnCount;
-                }
-            }
-            if (!isNaN(c))
-            {
-                // if horizontalAlign is "justify" or "contentJustify",
-                // restrict the width to restrictedWidth.  Otherwise,
-                // size it normally
-                if (horizontalAlign == HorizontalAlign.JUSTIFY)
-				// ||
-                //    horizontalAlign == HorizontalAlign.CONTENT_JUSTIFY)
-                    estimatedSize.x = c;
-            }
-        }
-    }
-
-    /**
-     *  @private
      */
     override protected function scrollPositionChanged():void
     {
@@ -1703,17 +1623,6 @@
             layoutTarget.invalidateDisplayList();
     }

-    /**
-     *  @private
-     */
-	override public function setEstimatedSize(estimatedWidth:Number = NaN,
-												estimatedHeight:Number = NaN,
-												invalidateSize:Boolean = true):void
-    {
-		if (invalidateSize)
-        	target.invalidateSize();
-    }
-
     /**
      *  @private
      */
@@ -1723,11 +1632,7 @@
         if (!layoutTarget)
             return;

-        var cw:Number = !isNaN(layoutTarget.explicitWidth) ? layoutTarget.explicitWidth :
-                                                             layoutTarget.estimatedWidth;
-        var ch:Number = !isNaN(layoutTarget.explicitHeight) ? layoutTarget.explicitHeight :
-                                                              layoutTarget.estimatedHeight;
-        updateActualValues(cw, ch);
+        updateActualValues(layoutTarget.explicitWidth, layoutTarget.explicitHeight);

         // For measure, any explicit overrides for rowCount and columnCount take precedence
         var columnCount:int = _requestedColumnCount != -1 ? Math.max(1, _requestedColumnCount) : _columnCount;
@@ -2047,7 +1952,7 @@
             var el:ILayoutElement = null;
             if (useVirtualLayout)
             {
-                el = layoutTarget.getVirtualElementAt(index, NaN, NaN, true);
+                el = layoutTarget.getVirtualElementAt(index);
                 if (el is IVisualElement)  // see updateVirtualLayout
                     IVisualElement(el).visible = true;
             }
@@ -2064,9 +1969,6 @@
             var cellWidth:int = Math.round(xPos + _columnWidth) - cellX;
             var cellHeight:int = Math.round(yPos + _rowHeight) - cellY;

-            if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-                if (el is ILayoutManagerClient)
-                    UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(el), true);
             sizeAndPositionElement(el, cellX, cellY, cellWidth, cellHeight);

             // Move along the major axis
@@ -2109,7 +2011,6 @@

         // If actual values have chnaged, notify listeners
         dispatchEventsForActualValueChanges();
-
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 18480
Author:   egeorgie@adobe.com
Date:     2010-11-07T04:57:01.323333Z

Log Message:
-----------
Various Resizing Bugs: Ellipse, Path, Rounded Rect

In this change:

- new iterative algorithm for fitting transformed Path, Ellipse, Rounded Rect
- tweaked iterative algorithm for fitting non-transformed Path with miter limit
- fixes to calculating the bounding box of a rounded rect when radiusX != radiusY
- fix to MatrixUtil.fitBounds to take explicits into account in the case where both dimensions are specified
- fix to MatrixUtil to properly return null when no solution exists for 45 degree rotated elements when trying to fit in both dimensions
- fix to MatrixUtil to take explicit settings into account when relaxing constraints while trying to fit an element in both dimensions
- added min/max properties to SpriteVisualElement
- fix GraphicElement to avoid extra layout pass when dealing with transformations (looks like extra invalidation was added with the mirroring infrastrucutre)

QE notes: Maybe add a couple of tests for rotated ellipse, rotated path, rotated round rect, non-rotated path with stroke and miter limit joints
Doc notes:
Bugs: SDK-17269, SDK-26762, SDK-27321, SDK-27516, SDK-27589, SDK-28389
Reviewer: Kevin
Tests run: full mustella cyclone
Is noteworthy for integration: Yes, Yes, Yyyyyyyeeeeeeeeeeeees sir!!

Modified Paths:
--------------
<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/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/Rect.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Ellipse.as
+++ frameworks/projects/spark/src/spark/primitives/Ellipse.as
@@ -211,5 +211,137 @@

         return stroke + this.y;
     }
+
+    /**
+     *  @private
+     *  Returns the bounding box of the transformed ellipse(width, height) with matrix m.
+     */
+    private function getBoundingBox(width:Number, height:Number, m:Matrix):Rectangle
+    {
+        return MatrixUtil.getEllipseBoundingBox(0, 0, width / 2, height / 2, m);
+    }
+
+    /**
+     *  @private
+     */
+    override public function setLayoutBoundsSize(width:Number,
+                                                 height:Number,
+                                                 postLayoutTransform:Boolean = true):void
+    {
+        var m:Matrix = getComplexMatrix(postLayoutTransform);
+        if (!m)
+        {
+            super.setLayoutBoundsSize(width, height, postLayoutTransform);
+            return;
+        }
+
+        setLayoutBoundsTransformed(width, height, m);
+    }
+
+    /**
+     *  @private
+     */
+    private function setLayoutBoundsTransformed(width:Number, height:Number, m:Matrix):void
+    {
+        var strokeExtents:Rectangle = getStrokeExtents(true);
+        width -= strokeExtents.width;
+        height -= strokeExtents.height;
+
+        var size:Point = fitLayoutBoundsIterative(width, height, m);
+
+        // We couldn't find a solution, try to relax the constraints
+        if (!size && !isNaN(width) && !isNaN(height))
+        {
+            // Try without width constraint
+            var size1:Point = fitLayoutBoundsIterative(NaN, height, m);
+
+            // Try without height constraint
+            var size2:Point = fitLayoutBoundsIterative(width, NaN, m);
+
+            // Ignore solutions that will exceed the requested size
+            if (size1 && getBoundingBox(size1.x, size1.y, m).width > width)
+                size1 = null;
+            if (size2 && getBoundingBox(size2.x, size2.y, m).height > height)
+                size2 = null;
+
+            // Which size was better?
+            if (size1 && size2)
+            {
+                var pickSize1:Boolean = size1.x * size1.y > size2.x * size2.y;
+
+                if (pickSize1)
+                    size = size1;
+                else
+                    size = size2;
+            }
+            else if (size1)
+            {
+                size = size1;
+            }
+            else
+            {
+                size = size2;
+            }
+        }
+
+        if (size)
+            setActualSize(size.x, size.y);
+        else
+            setActualSize(minWidth, minHeight);
+    }
+
+    /**
+     *  Iteratively approach a solution. Returns 0 if no exact solution exists.
+     *  NaN values for width/height mean "not constrained" in that dimesion.
+     *
+     *  @private
+     */
+    private function fitLayoutBoundsIterative(width:Number, height:Number, m:Matrix):Point
+    {
+        var newWidth:Number = this.preferredWidthPreTransform();
+        var newHeight:Number = this.preferredHeightPreTransform();
+        var fitWidth:Number = MatrixUtil.transformBounds(newWidth, newHeight, m).x;
+        var fitHeight:Number = MatrixUtil.transformBounds(newWidth, newHeight, m).y;
+
+        if (isNaN(width))
+            fitWidth = NaN;
+        if (isNaN(height))
+            fitHeight = NaN;
+
+        var i:int = 0;
+        while (i++ < 150)
+        {
+            var postTransformBounds:Rectangle = getBoundingBox(newWidth, newHeight, m);
+
+            var widthDifference:Number = isNaN(width) ? 0 : width - postTransformBounds.width;
+            var heightDifference:Number = isNaN(height) ? 0 : height - postTransformBounds.height;
+
+            if (Math.abs(widthDifference) < 0.1 && Math.abs(heightDifference) < 0.1)
+            {
+                return new Point(newWidth, newHeight);
+            }
+
+            fitWidth += widthDifference * 0.5;
+            fitHeight += heightDifference * 0.5;
+
+            var newSize:Point = MatrixUtil.fitBounds(fitWidth,
+                                                     fitHeight,
+                                                     m,
+                                                     explicitWidth,
+                                                     explicitHeight,
+                                                     preferredWidthPreTransform(),
+                                                     preferredHeightPreTransform(),
+                                                     minWidth, minHeight,
+                                                     maxWidth, maxHeight);
+
+            if (!newSize)
+                break;
+
+            newWidth = newSize.x;
+            newHeight = newSize.y;
+        }
+
+        return null;
+    }
 }
 }


Fix bug : dispatch MediaErrorEvent on the _loadTrait (see OSMF F4MLoader class)

--- src/org/mangui/osmf/plugins/loader/HLSLoaderBase.as
+++ src/org/mangui/osmf/plugins/loader/HLSLoaderBase.as
@@ -145,7 +145,7 @@
             Log.warn("HLS Error event received, dispatching MediaError " + errorCode + "," + errorMsg);
             }
             updateLoadTrait(_loadTrait, LoadState.LOAD_ERROR);
-            dispatchEvent(new MediaErrorEvent(MediaErrorEvent.MEDIA_ERROR, true, true, new MediaError(errorCode, errorMsg)));
+            _loadTrait.dispatchEvent(new MediaErrorEvent(MediaErrorEvent.MEDIA_ERROR, false, false, new MediaError(errorCode, errorMsg)));
         }
     }
 }


declared text skinParts as interfaces

declared text skinParts as interfaces

--- skinnable-popup-fx/src/main/actionscript/net/riastar/components/Alert.as
+++ skinnable-popup-fx/src/main/actionscript/net/riastar/components/Alert.as
@@ -28,7 +28,7 @@
 import net.riastar.events.AlertResponse;

 import spark.components.supportClasses.ButtonBase;
-import spark.components.supportClasses.TextBase;
+import spark.core.IDisplayText;

 public class Alert extends SkinnablePopUp {
@@ -38,10 +38,10 @@
     /* ----------------- */

     [SkinPart(required="true")]
-    public var textDisplay:TextBase;
-
-    [SkinPart(required="false")]
-    public var titleDisplay:TextBase;
+    public var textDisplay:IDisplayText;
+
+    [SkinPart(required="false")]
+    public var titleDisplay:IDisplayText;

     [SkinPart(required="false")]
     public var commitButton:IVisualElement;


Another edge case in NameGeneratorTest

Another edge case in NameGeneratorTest

--- raw/src/test/yellcorp/tools/StringConstants/NameGeneratorTest.as
+++ raw/src/test/yellcorp/tools/StringConstants/NameGeneratorTest.as
@@ -51,6 +51,7 @@
         assertEquals("SPACE_SEPARATED", StringConstants.generateName("Space separated"));
         assertEquals("FACEBOOK_COM", StringConstants.generateName("facebook.com"));
         assertEquals("O_AUTH_INIT", StringConstants.generateName("OAuth.init"));
+        assertEquals("_1_NUMBER_AT_START", StringConstants.generateName("1numberAtStart"));
     }
 }
 }


fix coding style

fix coding style

--- src/aerys/minko/render/geometry/stream/format/VertexComponent.as
+++ src/aerys/minko/render/geometry/stream/format/VertexComponent.as
@@ -34,11 +34,30 @@
 		private var _offsets			: Object;
 		private var _vertexComponentId	: String;	// used to avoid array comparison

-		public function get size()				: int 				{ return VertexComponentType.NB_DWORDS[_nativeFormat]; }
-		public function get offsets()				: Object 			{ return _offsets; }
-		public function get fields()				: Vector.<String> 	{ return _fields; }
-		public function get nativeFormat()			: int				{ return _nativeFormat; }
-		public function get nativeFormatString()	: String 			{ return VertexComponentType.STRINGS[_nativeFormat]; }
+		public function get size() : int
+		{
+			return VertexComponentType.NB_DWORDS[_nativeFormat];
+		}
+
+		public function get offsets() : Object
+		{
+			return _offsets;
+		}
+
+		public function get fields() : Vector.<String>
+		{
+			return _fields;
+		}
+
+		public function get nativeFormat() : int
+		{
+			return _nativeFormat;
+		}
+
+		public function get nativeFormatString() : String
+		{
+			return VertexComponentType.STRINGS[_nativeFormat];
+		}

 		public static function create(fields : Array, nativeFormat : uint) : VertexComponent
 		{


Issue #95: Reset any URL adjustments when user changes the Portal URL.

--- src/com/esri/builder/components/PortalURLInputChecker.as
+++ src/com/esri/builder/components/PortalURLInputChecker.as
@@ -73,6 +73,7 @@
     override protected function cancelURLValidationInProgress():void
     {
         removeURLCheckerListeners();
+        resetURLAdjusting();
         super.cancelURLValidationInProgress();
     }


FLEX-14581 Stop null being displayed if month name not set

--- frameworks/projects/mx/src/mx/controls/DateChooser.as
+++ frameworks/projects/mx/src/mx/controls/DateChooser.as
@@ -2986,6 +2986,9 @@
         var monthName:String = monthNames ?
                                monthNames[dateGrid.displayedMonth] :
                                "";
+		// month name could be null and want to display "null"
+		if (monthName == null)
+			monthName = "";
         monthDisplay.text = monthName + monthSymbol;
         yearDisplay.text = displayedYear.toString() + yearSymbol;
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11669
Author:   gosmith@adobe.com
Date:     2009-11-11T20:56:09.050685Z

Log Message:
-----------
Spark now provides localized RTE messages for TLF.

TLF is a layer below Flex and doesn't have a localization scheme like Flex's ResourceManager; it just has hard-coded English RTE messages. But it now also has a hook function (GlobalSettings.getResourceStringFunction) that higher layers like Flex can set to provide localized messages instead.

Spark.swc now has a new resource bundle named "textLayout" with these RTE messages for TLF, copied from TLF's GlobalSettings file. And Spark.swc implements the hook in TextUtil.getResourceString().

Various classes that use TLF -- such as RichText, RichEditableText, TextFlowUtils, and UIFTETextField -- set the hook function, typically in their class initialization code. UIFTETextField didn't have class init code so I just do it repeatedly in the constuctor… it's just an assignment statement and should be fast enough.

QE notes: None
Doc notes: None
Bugs: SDK-23782
Reviewer: Carol
Tests run: ant checkintests
Is noteworthy for integration: Need localization of this new resource bundle

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/fi_FI/textLayout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/sv_SE/textLayout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/TextUtil.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/ja_JP/textLayout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/build.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/zh_TW/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/nb_NO/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/ru_RU/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/es_ES/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/fr_FR/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/de_DE/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/zh_CN/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/da_DK/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/nl_NL/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/ko_KR/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/pt_BR/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/it_IT/textLayout.properties</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/bundles/en_US/textLayout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/TextFlowUtil.as</path>

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

--- frameworks/projects/spark/src/spark/utils/TextUtil.as
+++ frameworks/projects/spark/src/spark/utils/TextUtil.as
@@ -19,9 +19,14 @@
 import flashx.textLayout.elements.SpanElement;
 import flashx.textLayout.elements.TextFlow;
 import flashx.textLayout.formats.ITextLayoutFormat;
+
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
 import mx.utils.StringUtil;

 [ExcludeClass]
+
+[ResourceBundle("textLayout")]

 /**
  *  @private
@@ -132,6 +137,16 @@
             }
         }
     }
+
+    /**
+     *  @private
+     */
+	public static function getResourceString(resourceName:String,
+											 args:Array = null):String
+	{
+		var resourceManager:IResourceManager = ResourceManager.getInstance();
+		return resourceManager.getString("textLayout", resourceName, args);
+	}
 }

 }


fixed null pointer error

fixed null pointer error

--- WeaveJS/src/weavejs/util/BackwardsCompatibility.as
+++ WeaveJS/src/weavejs/util/BackwardsCompatibility.as
@@ -43,22 +43,23 @@
 					for each (key in childStateKeys)
 					{
 						var propType:String = classLookup[className][key];
-
-						// Hack - if the class name is an interface, remove the package and the "I" from the beginning to get the implementation.
-						if (propType.indexOf('weave.api.') == 0)
+						if (propType)
 						{
-							var name:String = propType.split('::').pop();
-							if (name.charAt(0) === 'I' && name.charAt(1) === name.charAt(1).toUpperCase())
+							// Hack - if the class name is an interface, remove the package and the "I" from the beginning to get the implementation.
+							if (propType.indexOf('weave.api.') == 0)
 							{
-								name = name.substr(1);
-								var classDef:Class = Weave.getDefinition(name);
-								if (classDef)
-									propType = Weave.className(classDef);
+								var name:String = propType.split('::').pop();
+								if (name.charAt(0) === 'I' && name.charAt(1) === name.charAt(1).toUpperCase())
+								{
+									name = name.substr(1);
+									var classDef:Class = Weave.getDefinition(name);
+									if (classDef)
+										propType = Weave.className(classDef);
+								}
 							}
+
+							typedChildState.push(DynamicState.create(key, propType, updateSessionState(childState[key])));
 						}
-
-						if (propType)
-							typedChildState.push(DynamicState.create(key, propType, updateSessionState(childState[key])));
 					}
 					childState = typedChildState;
 				}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4205
Author:   clucier@adobe.com
Date:     2008-12-01T19:48:53.571431Z

Log Message:
-----------
Initial baselinePosition support for our new skinnable components.
QE Notes: Please wait until Evtim completes his baseline support in our new layouts to test.
Doc Notes: None
Reviewer: Glenn, Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxDefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextGraphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxNumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/TextBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.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/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -18,6 +18,7 @@

 import mx.collections.IList;
 import mx.components.FxDataContainer;
+import mx.core.IVisualElement;
 import mx.events.IndexChangedEvent;
 import mx.events.CollectionEvent;
 import mx.events.CollectionEventKind;
@@ -278,7 +279,67 @@
             invalidateProperties();
         }
     }
-
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  baselinePosition
+    //----------------------------------
+
+    /**
+     *  @private
+     *  The baseline position of a ListBase is calculated for the first item renderer.
+     *  If there are no items, one is temporarily added to do the calculation.
+     */
+    override public function get baselinePosition():Number
+    {
+        if (!mx_internal::validateBaselinePosition())
+            return NaN;
+
+        // Fabricate temporary data provider if necessary.
+        var isNull:Boolean = dataProvider == null;
+        var isEmpty:Boolean = dataProvider != null && dataProvider.length == 0;
+
+        if (isNull || isEmpty)
+        {
+            var originalProvider:IList = isEmpty ? dataProvider : null;
+            dataProvider = new mx.collections.ArrayList([ new Object() ]);
+            validateNow();
+        }
+
+        if (!dataGroup || dataGroup.numLayoutElements == 0)
+            return super.baselinePosition;
+
+        // Obtain reference to newly generated item element which will be used
+        // to compute the baseline.
+        var listItem:Object = dataGroup.getItemRenderer(0);
+        if (!listItem)
+            return super.baselinePosition;
+
+        // Compute baseline position of item relative to our list component.
+        if ("baselinePosition" in listItem)
+            var result:Number = getSkinPartPosition(IVisualElement(listItem)).y + listItem.baselinePosition;
+        else
+            super.baselinePosition;
+
+        // Restore the previous state of our list.
+        if (isNull || isEmpty)
+        {
+            if (isNull)
+                dataProvider = null;
+            else if (isEmpty)
+                dataProvider = originalProvider;
+
+            validateNow();
+        }
+
+        return result;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Overridden Methods
@@ -588,4 +649,4 @@
     }
 }

-}+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 13371
Author:   smgilson@adobe.com
Date:     2010-01-08T14:45:11.390761Z

Log Message:
-----------
Update ASDoc for bug SDK-24803 to add more infom about the valueCommit vs the change/changing events

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

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as
@@ -40,6 +40,12 @@
  *  Dispatched when the selection is going to change.
  *  Calling the preventDefault() method
  *  on the event prevents the selection from changing.
+ *
+ *
This event is dispatched when the user interacts with the control.
+ *  When you change the value of the selectedIndex
+ *  or selectedItem properties programmatically,
+ *  the control does not dispatch the changing event.
+ *  It dispatches the valueCommit event instead.

  *
  *  @eventType spark.events.IndexChangeEvent.CHANGING
  *
@@ -52,6 +58,12 @@

 /**
  *  Dispatched after the selection has changed.
+ *  This event is dispatched when the user interacts with the control.
+ *
+ *
When you change the value of the selectedIndex
+ *  or selectedItem properties programmatically,
+ *  the control does not dispatch the change event.
+ *  It dispatches the valueCommit event instead.

  *
  *  @eventType spark.events.IndexChangeEvent.CHANGE
  *
@@ -564,6 +576,11 @@
      *     and there is at least one item.

      *

      *
+     *
When the user changes the selectedIndex property by interacting with the control,
+     *  the control dispatches the change and changing events.
+     *  When you change the value of the selectedIndex property programmatically,
+     *  it dispatches the valueCommit event.

+     *
      *  @default -1
      *
      *  @langversion 3.0
@@ -639,6 +656,11 @@
      *
The first item if requireSelection = true
      *      and there is at least one item.

      *

+     *
+     *
When the user changes the selectedItem property by interacting with the control,
+     *  the control dispatches the change and changing events.
+     *  When you change the value of the selectedItem property programmatically,
+     *  it dispatches the valueCommit event.

      *
      *  @default undefined
      *


Small Change to ConditionalSyllogism

Small Change to ConditionalSyllogism

--- Arguments/src/Controller/logic/ConditionalSyllogism.as
+++ Arguments/src/Controller/logic/ConditionalSyllogism.as
@@ -56,8 +56,10 @@
 			trace(reasonModels.length);
 			inferenceModel.statements[0].text = reasonModels[reasonModels.length-1].statements[0].text;
 			inferenceModel.statements[1].text = claimModel.statements[1].text;
-
-			switch(argumentTypeModel.language){
+			var switchString:String = argumentTypeModel.language;
+			if(argumentTypeModel.claimModel.argumentTypeModel!=null)
+				switchString = argumentTypeModel.claimModel.argumentTypeModel.language;
+			switch(switchString){
 				case langTypes[0]:
 					trace(inferenceModel.statements[0].text);
 					trace(inferenceModel.statements[1].text);


Added necessary needsReviving parameter to extendJson()

Change-Id: Ifa71269a4f43e7de4b48e34bc9c86521506e75a5

--- WeaveAPI/src/JavaScript.as
+++ WeaveAPI/src/JavaScript.as
@@ -88,6 +88,11 @@
 		private static const JSON_REVIVER:String = "_jsonReviver";

 		/**
+		 * JSON extension property name for the needsReviving function.
+		 */
+		private static const NEEDS_REVIVING:String = "_needsReviving";
+
+		/**
 		 * The name of the property used to store a lookup from JSON IDs to values.
 		 */
 		private static const JSON_LOOKUP:String = "_jsonLookup";
@@ -121,14 +126,9 @@
 		private static var _needsReviving:Boolean = false;

 		/**
-		 * Extensions to _jsonReplacer.
-		 */
-		private static const _jsonReplacerExtensions:Array = [];
-
-		/**
-		 * Extensions to _jsonReviver.
-		 */
-		private static const _jsonReviverExtensions:Array = [];
+		 * Extensions to _jsonReplacer/_jsonReviver.
+		 */
+		private static const _jsonExtensions:Array = [];

 		/**
 		 * Alias for ExternalInterface.available
@@ -341,8 +341,13 @@
 				_needsReviving = true;
 				value = value + JSON_SUFFIX;
 			}
-			for each (var extension:Function in _jsonReplacerExtensions)
-				value = extension(key, value);
+			for each (var extension:Object in _jsonExtensions)
+			{
+				if (extension[NEEDS_REVIVING] is Function && extension[NEEDS_REVIVING](key, value))
+					_needsReviving = true;
+				if (extension[JSON_REPLACER] is Function)
+					value = extension[JSON_REPLACER](key, value);
+			}
 			return value;
 		}

@@ -377,8 +382,9 @@
 					value = func as Function;
 				}
 			}
-			for each (var extension:Function in _jsonReviverExtensions)
-				value = extension(key, value);
+			for each (var extension:Object in _jsonExtensions)
+				if (extension[JSON_REVIVER] is Function)
+					value = extension[JSON_REVIVER](key, value);
 			return value;
 		}

@@ -388,6 +394,7 @@
 		 * Objects are to be supported.
 		 * @param replacer function(key:String, value:*):* ; Replaces an Object with a JSON-serializable representation.
 		 * @param reviver function(key:String, value:*):* ; Revives an Object from its JSON representation.
+		 * @param needsReviving function(key:String, value:*):Boolean ; Determines if a value requires reviving in JavaScript once replaced in ActionScript.
 		 *
 		 * @example Example JavaScript code (func1 and func2 should be function definitions)
 		 * <listing version="3.0">
@@ -397,12 +404,13 @@
 		 * );
 		 * </listing>
 		 */
-		public static function extendJson(replacer:Function, reviver:Function):void
-		{
-			if (replacer != null)
-				_jsonReplacerExtensions.push(replacer);
-			if (reviver != null)
-				_jsonReviverExtensions.push(reviver);
+		public static function extendJson(replacer:Function, reviver:Function, needsReviving:Function):void
+		{
+			var extension:Object = {};
+			extension[JSON_REPLACER] = replacer;
+			extension[JSON_REVIVER] = reviver;
+			extension[NEEDS_REVIVING] = needsReviving;
+			_jsonExtensions.push(extension);
 		}

 		/**