Transferred from the Adobe Open Source Subversion Repository

Revision: 6480
Author:   hmuller@adobe.com
Date:     2009-05-01T22:52:45.335583Z

Log Message:
-----------
Virtualized TileLayout corner case bugfix.

QE Notes:
Doc Notes:
Bugs: sdk-20822
Reviewer: Evtim

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/spark/layouts/TileLayout.as

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

--- frameworks/projects/spark/src/spark/layouts/TileLayout.as
+++ frameworks/projects/spark/src/spark/layouts/TileLayout.as
@@ -1171,8 +1171,8 @@
             var cwg:Number = _columnWidth + _horizontalGap;
             var rwg:Number = _rowHeight + _verticalGap;

-            var visibleCol0:int = Math.floor(hsp / cwg);
-            var visibleRow0:int = Math.floor(vsp / rwg);
+            var visibleCol0:int = Math.max(0, Math.floor(hsp / cwg));
+            var visibleRow0:int = Math.max(0, Math.floor(vsp / rwg));
             var visibleCol1:int = Math.min(_columnCount - 1, Math.floor((hsp + unscaledWidth) / cwg));
             var visibleRow1:int = Math.min(_rowCount - 1, Math.floor((vsp + unscaledHeight) / rwg));


Transferred from the Adobe Open Source Subversion Repository

Revision: 17611
Author:   klin@adobe.com
Date:     2010-09-08T19:01:35.509943Z

Log Message:
-----------
Fix for rotation issues with explicit width and explicit height for Catalyst. The issue is that when we try to solve width and height such that the post transform bounds satisfy the layout constraints, we only took into account the measured width/height even when there was an explicit size specified. In the case of rotation, it is possible at times to use the explicit width/height to find a fit. Thus, the fix is to try to find a solution first using the explicit size. If no solution exists, then we relax the constraint on the size and try to find other solutions.

QE notes: No
Doc notes: No
Bugs: SDK-26614
Reviewer: Evtim
Tests run: checkintests, full cyclone
Is noteworthy for integration: Yes

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/core/LayoutElementUIComponentUtils.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@1285661 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/primitives/Ellipse.as
+++ frameworks/projects/spark/src/spark/primitives/Ellipse.as
@@ -138,6 +138,7 @@

         // Calculate the width and height pre-transform:
         var newSize:Point = MatrixUtil.fitBounds(width, height, m,
+                                                 explicitWidth, explicitHeight,
                                                  preferredWidthPreTransform(),
                                                  preferredHeightPreTransform(),
                                                  minWidth, minHeight,
@@ -171,6 +172,7 @@

         // Calculate the width and height pre-transform:
         var newSize:Point = MatrixUtil.fitBounds(width, height, m,
+                                                 explicitWidth, explicitHeight,
                                                  preferredWidthPreTransform(),
                                                  preferredHeightPreTransform(),
                                                  minWidth, minHeight,


Everything working on this end... committing because other server is bugging out

--- flexEditor/src/org/arisgames/editor/view/GameDetailsEditorView.as
+++ flexEditor/src/org/arisgames/editor/view/GameDetailsEditorView.as
@@ -84,6 +84,7 @@

 	public var game:Game;
 	[Bindable] public var nodes:ArrayCollection;
+	private var editors:ArrayCollection;

     /**
      * Constructor
@@ -480,6 +481,9 @@
 		}
 	}

+	public function populateEditors(){
+
+	}

 	public function handleAddEditor(evt:Event):void {
 		if(addEditorEmail.text != ""){


Transferred from the Adobe Open Source Subversion Repository

Revision: 2462
Author:   jimurphy@adobe.com
Date:     2008-07-14T19:13:06.620116Z

Log Message:
-----------
gumbo push to trunk

Modified Paths:
--------------
214 paths were modified

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

--- frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as
+++ frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as
@@ -0,0 +1,414 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Copyright (C) 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved. The following is Source Code and is subject to all
+//  restrictions on such code as contained in the End User License Agreement
+//  accompanying this product.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.graphics
+{
+
+import flash.display.Graphics;
+import flash.events.EventDispatcher;
+import flash.events.Event;
+import flash.geom.Rectangle;
+import mx.events.PropertyChangeEvent;
+
+
+/**
+ *  The SolidColorStroke class defines the properties for a line.
+ *
+ *  You can define a SolidColorStroke object in MXML, but you must attach that SolidColorStroke to
+ *  another object for it to appear in your application. The following example
+ *  defines two SolidColorStroke objects and then uses them in the horizontalAxisRenderer
+ *  of a LineChart control:
+ *
+ *

+ *  ...
+ *  <mx:SolidColorStroke id="ticks" color="0xFF0000" weight="1"/>
+ *  <mx:SolidColorStroke id="mticks" color="0x0000FF" weight="1"/>
+ *
+ *  <mx:LineChart id="mychart" dataProvider="{ndxa}">
+ *  	<mx:horizontalAxisRenderer>
+ *  		<mx:AxisRenderer placement="bottom" canDropLabels="true">
+ *  			<mx:tickStroke>{ticks}</mx:tickStroke>
+ *  			<mx:minorTickStroke>{mticks}</mx:minorTickStroke>
+ *  		</mx:AxisRenderer>
+ *  	</mx:horizontalAxisRenderer>
+ *  </LineChart>
+ *  ...
+ *

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

+ *
+ *

+ *  <mx:SolidColorStroke
+ *    Properties
+ *    alpha="1.0"
+ *    caps="null|none|round|square"
+ *    color="0x000000"
+ *    joints="null|bevel|miter|round"
+ *    miterLimit="0"
+ *    pixelHinting="false|true"
+ *    scaleMode="normal|none|noScale|vertical"
+ *    weight="1 (in most cases)"
+ *  />
+ *

+ *
+ *  @see flash.display.Graphics
+ */
+public class SolidColorStroke extends EventDispatcher implements IStroke
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param color Specifies the line color.
+	 *  The default value is 0x000000 (black).
+	 *
+	 *  @param weight Specifies the line weight, in pixels.
+	 *  The default value is 0.
+	 *
+	 *  @param alpha Specifies the alpha value in the range 0.0 to 1.0.
+	 *  The default value is 1.0 (opaque).
+	 *
+	 *  @param pixelHinting Specifies whether to hint strokes to full pixels.
+	 *  This value affects both the position of anchors of a curve
+	 *  and the line stroke size itself.
+	 *  The default value is false.
+	 *
+     *  @param scaleMode A value from the LineScaleMode class
+     *  that specifies which scale mode to use.
+     *  Valid values are LineScaleMode.HORIZONTAL,
+     *  LineScaleMode.NONE, LineScaleMode.NORMAL,
+     *  and LineScaleMode.VERTICAL.
+     *  This parameter is optional,
+     *  with a default value of LineScaleMode.NONE.
+	 *
+	 *  @param caps Specifies the type of caps at the end of lines.
+	 *  Valid values are "round", "square",
+	 *  and "none".
+	 *  The default value is null.
+	 *
+	 *  @param joints Specifies the type of joint appearance used at angles.
+	 *  Valid values are "round", "miter",
+	 *  and "bevel".
+	 *  The default value is null.
+	 *
+	 *  @param miterLimit Indicates the limit at which a miter is cut off.
+	 *  Valid values range from 0 to 255.
+	 *  The default value is 0.
+	 */
+	public function SolidColorStroke(color:uint = 0x000000, weight:Number = 0,
+						   alpha:Number = 1.0, pixelHinting:Boolean = false,
+						   scaleMode:String = "none", caps:String = null,
+						   joints:String = null, miterLimit:Number = 0)
+	{
+		super();
+
+		this.color = color;
+		this._weight = weight;
+		this.alpha = alpha;
+		this.pixelHinting = pixelHinting;
+		this.scaleMode = scaleMode;
+		this.caps = caps;
+		this.joints = joints;
+		this.miterLimit = miterLimit;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  alpha
+	//----------------------------------
+
+	private var _alpha:Number = 0.0;
+
+	[Bindable("propertyChange")]
+    [Inspectable(category="General")]
+
+	/**
+	 *  The transparency of a line.
+	 *  Possible values are 0.0 (invisible) through 1.0 (opaque).
+	 *
+	 *  @default 1.0.
+	 */
+	public function get alpha():Number
+	{
+		return _alpha;
+	}
+
+	public function set alpha(value:Number):void
+	{
+		var oldValue:Number = _alpha;
+		if (value != oldValue)
+		{
+			_alpha = value;
+			dispatchStrokeChangedEvent("alpha", oldValue, value);
+		}
+	}
+
+	//----------------------------------
+	//  caps
+	//----------------------------------
+
+	private var _caps:String = null;
+
+	[Bindable("propertyChange")]
+	[Inspectable(category="General", enumeration="round,square,none", defaultValue="round")]
+
+	/**
+	 *  Specifies the type of caps at the end of lines.
+	 *  Valid values are: "round", "square",
+	 *  and "none".
+	 */
+	public function get caps():String
+	{
+		return _caps;
+	}
+
+	public function set caps(value:String):void
+	{
+		var oldValue:String = _caps;
+		if (value != oldValue)
+		{
+			_caps = value;
+			dispatchStrokeChangedEvent("caps", oldValue, value);
+		}
+	}
+
+	//----------------------------------
+	//  color
+	//----------------------------------
+
+	private var _color:uint = 0x000000;
+
+	[Bindable("propertyChange")]
+    [Inspectable(category="General", format="Color")]
+
+	/**
+	 *  The line color.
+	 *
+	 *  @default 0x000000 (black).
+	 */
+	public function get color():uint
+	{
+		return _color;
+	}
+
+	public function set color(value:uint):void
+	{
+		var oldValue:uint = _color;
+		if (value != oldValue)
+		{
+			_color = value;
+			dispatchStrokeChangedEvent("color", oldValue, value);
+		}
+	}
+
+	//----------------------------------
+	//  joints
+	//----------------------------------
+
+	private var _joints:String = null;
+
+	[Bindable("propertyChange")]
+	[Inspectable(category="General", enumeration="round,bevel,miter", defaultValue="round")]
+
+	/**
+	 *  Specifies the type of joint appearance used at angles.
+	 *  Valid values are "round", "miter",
+	 *  and "bevel".
+	 */
+	public function get joints():String
+	{
+		return _joints;
+	}
+
+	public function set joints(value:String):void
+	{
+		var oldValue:String = _joints;
+		if (value != oldValue)
+		{
+			_joints = value;
+			dispatchStrokeChangedEvent("joints", oldValue, value);
+		}
+	}
+
+	//----------------------------------
+	//  miterLimit
+	//----------------------------------
+
+	private var _miterLimit:Number = 0;
+
+	[Bindable("propertyChange")]
+	[Inspectable(category="General")]
+
+	/**
+	 *  Indicates the limit at which a miter is cut off.
+	 *  Valid values range from 0 to 255.
+	 *
+	 *  @default 0
+	 */
+	public function get miterLimit():Number
+	{
+		return _miterLimit;
+	}
+
+	public function set miterLimit(value:Number):void
+	{
+		var oldValue:Number = _miterLimit;
+		if (value != oldValue)
+		{
+			_miterLimit = value;
+			dispatchStrokeChangedEvent("miterLimit", oldValue, value);
+		}
+	}
+
+	//----------------------------------
+	//  pixelHinting
+	//----------------------------------
+
+	private var _pixelHinting:Boolean = false;
+
+	[Bindable("propertyChange")]
+    [Inspectable(category="General")]
+
+	/**
+	 *  Specifies whether to hint strokes to full pixels.
+	 *  This value affects both the position of anchors of a curve
+	 *  and the line stroke size itself.
+	 *
+	 *  @default false
+	 */
+	public function get pixelHinting():Boolean
+	{
+		return _pixelHinting;
+	}
+
+	public function set pixelHinting(value:Boolean):void
+	{
+		var oldValue:Boolean = _pixelHinting;
+		if (value != oldValue)
+		{
+			_pixelHinting = value;
+			dispatchStrokeChangedEvent("pixelHinting", oldValue, value);
+		}
+	}
+
+	//----------------------------------
+	//  scaleMode
+	//----------------------------------
+
+	private var _scaleMode:String = "normal";
+
+	[Bindable("propertyChange")]
+	[Inspectable(category="General", enumeration="normal,vertical,horizontal,none", defaultValue="normal")]
+
+	/**
+	 *  Specifies how to scale a stroke.
+	 *  Valid values are "normal", "none",
+	 *  "vertical", and "noScale".
+	 *
+	 *  @default "normal"
+	 */
+	public function get scaleMode():String
+	{
+		return _scaleMode;
+	}
+
+	public function set scaleMode(value:String):void
+	{
+		var oldValue:String = _scaleMode;
+		if (value != oldValue)
+		{
+			_scaleMode = value;
+			dispatchStrokeChangedEvent("scaleMode", oldValue, value);
+		}
+	}
+
+	//----------------------------------
+	//  weight
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the weight property.
+	 */
+	private var _weight:Number;
+
+	[Bindable("propertyChange")]
+    [Inspectable(category="General")]
+
+	/**
+	 *  The line weight, in pixels.
+	 *  For many charts, the default value is 1 pixel.
+	 */
+	public function get weight():Number
+	{
+		return _weight;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set weight(value:Number):void
+	{
+		var oldValue:Number = _weight;
+		if (value != oldValue)
+		{
+			_weight = value;
+			dispatchStrokeChangedEvent("weight", oldValue, value);
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Applies the properties to the specified Graphics object.
+	 *
+	 *  @param g The Graphics object to which the SolidColorStroke's styles are applied.
+	 */
+	public function apply(g:Graphics):void
+	{
+		draw(g, new Rectangle());
+	}
+
+	public function draw(g:Graphics, rc:Rectangle):void
+	{
+		g.lineStyle(weight, color, alpha, pixelHinting,
+					scaleMode, caps, joints, miterLimit);
+	}
+
+	/**
+	 *  @private
+	 */
+	private function dispatchStrokeChangedEvent(prop:String, oldValue:*,
+												value:*):void
+	{
+        dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, prop,
+															oldValue, value));
+	}
+}
+
+}


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

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

 package spark.events
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19060
Author:   harishs@adobe.com
Date:     2010-12-06T17:34:15.020965Z

Log Message:
-----------
QE notes: Did checkintests, performed full cyclone run. There were 19 failures in mustella report. QE Judy (Mingzhou Gao and Joann Chung Anderson) confirmed that they are known problems.
Doc notes: As part of Sort and Sortfield updates, the asdoc comments were updated to reflect globalization changes.
Bugs: Fixed sdk-28493, 28691,28494, 28345, 28320, 28387, 28314, 28145
Reviewer: Gordon Smith
Tests run: cyclone, checkintests, bugs testfiles
Is noteworthy for integration: Sort and Sortfield updated with globalization support using the new spark globalization sort classes.
Number and CurrencyValidators support national digits and unicode minus symbols.
groupingPattern property dropped for Number and Currency Validators.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/NumberValidatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ICollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/NumberValidator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/OLAPCube.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/CurrencyValidator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections/SortField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/bundles/en_US/validators.properties</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/collections</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/validators/supportClasses/GlobalizationUtils.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/olap/DefaultCubeImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/SortTestScript.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionView.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/Sort.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/collections/ModifiedCollectionView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/SortTests.mxml</path>

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

--- frameworks/projects/spark/src/spark/validators/NumberValidator.as
+++ frameworks/projects/spark/src/spark/validators/NumberValidator.as
@@ -87,10 +87,8 @@
  *    fractionalDigits="(locale specified number or customized by user)."
  *    fractionalDigitsError="The amount entered has too many digits beyond the
  *    decimal point."
- *    groupingPattern="(locale specified string or customized by user)."
  *    groupingSeparator="(locale specified string or customized by user)."
  *    groupingSeparationError="The number digits grouping is not following the
- *    grouping pattern."
  *  />
  *  </pre>
  *
@@ -295,7 +293,7 @@
     private var negativeNumberFormatErrorOverride:String;

     [Inspectable(category="Errors", defaultValue="null")]
-
+    [Bindable("change")]
     /**
      *  Error message when the input number's negative number format is not
      *  following the pattern specified by the negativeNumberFormat property.
@@ -314,10 +312,17 @@

     public function set negativeNumberFormatError(value:String):void
     {
+        if (negativeNumberFormatErrorOverride &&
+            (negativeNumberFormatErrorOverride == value))
+        {
+            return;
+        }
+
         negativeNumberFormatErrorOverride = value;

         _negativeNumberFormatError = value ? value :
            resourceManager.getString("validators", "negativeNumberFormatError");
+        update();
     }

@@ -332,9 +337,6 @@
      */
     override mx_internal function createWorkingInstance():void
     {
-        // release groupingPatternSymbols as it contains grouping symbols based
-        // on previous locale grouping pattern.
-        groupingPatternSymbols = null;
         createWorkingInstanceCore(NUMBER_VALIDATOR_TYPE);
     }

@@ -394,8 +396,8 @@
     /**
      *  Convenience method for calling a validator from within a custom
      *  validation function. Each of the standard Flex validators has a similar
-     *  convenience method. Caller must check the lastOperationStatus after
-     *  this.
+     *  convenience method. Caller must check the ValidationResult objects in
+     *  the returned array for validation status.
      *
      *  @param value A number string to validate.
      *
@@ -427,11 +429,19 @@
         if (!inputStr)
             return results;

-        // If spark formatter is null, no-go-forward.
-        if (!g11nWorkingInstance)
-        {
-            fallbackLastOperationStatus =
-                            LastOperationStatus.LOCALE_UNDEFINED_ERROR;
+        // If spark formatter is null, no-go-forward. If spark formatter locale
+        // id is null or last operationstatus has locale undefined, then also
+        // no forward going situaion.
+        // The spark formatter createion has a situation where it's localeid is
+        // null but LasyOperationStatus is not set. TestLocaleUndef.mxml
+        // testcase has this situation.
+        if ((!g11nWorkingInstance) || (!g11nWorkingInstance.actualLocaleIDName) ||
+            (g11nWorkingInstance.lastOperationStatus ==
+                LastOperationStatus.LOCALE_UNDEFINED_ERROR))
+        {
+            results.push(new ValidationResult(
+                true, baseField, "localeUndefinedError",
+                localeUndefinedError));
             return results;
         }

@@ -450,7 +460,6 @@
         const nf:spark.formatters.NumberFormatter =
                g11nWorkingInstance as spark.formatters.NumberFormatter;
         const inputNum:Number = nf.parseNumber(input);
-
         // parseNumber() only returns PARSE_ERROR if it finds any error in input
         // string. If there is a PARSE_ERROR, validate the input
         // string further, detect and report the error. parse() is lenient than
@@ -474,22 +483,13 @@
         // See if negative number is allowed.
         if (!validateNumberNegativity(inputNum, baseField, results))
             return results;
-
-        // If grouping separator(s) are present in the input string
-        // make sure it's followed by correct number of digits per grouping
-        // pattern. We need the original number string extracted from input
-        // string with grouping separators intact. If input string has a
-        // decimal, then we need the number string upto last digit before the
-        // decimal.
-        var valStr:String = inputNum.toString();
-        if (inputNum < 0)
-            valStr = valStr.substring(1);
-        const numStart:int = input.indexOf(valStr.charAt(0));
-        const numEnd:int = input.lastIndexOf(valStr.charAt(valStr.length-1));
-        const decimalSeparatorIndex:Number = input.indexOf(decimalSeparator);
-        const end:int = (decimalSeparatorIndex == -1) ? numEnd :
-                                                      decimalSeparatorIndex - 1;
-
+
+        var dindex:int;
+        if (negativeNumberFormat <= 2)
+            dindex = input.lastIndexOf(decimalSeparator);
+        else
+            dindex = input.indexOf(decimalSeparator);
+
         //
         // Make sure every character after the decimal is a digit,
         // and that there aren't too many digits after the decimal point:
@@ -497,16 +497,8 @@
         // otherwise there should be no more than specified by fractionalDigits.
         //
         if (!validateFractionPart(
-                            input, decimalSeparatorIndex, baseField, results))
-        {
-            return results;
-        }
-
-        if (!validateGrouping(input.substring(numStart, end), end-numStart))
-        {
-            results.push(new ValidationResult(
-                true, baseField, "groupingSeparation",
-                groupingSeparationError));
+                            input, dindex, baseField, results))
+        {
             return results;
         }

@@ -537,8 +529,8 @@
         const len:int = input.length;
         // Check for invalid characters in input.
         // One of the negative format of number is enclosing in parenthesis.
-        const validChars:String = DECIMAL_DIGITS + "-" + "(" + ")" +
-            decimalSeparator + groupingSeparator;
+        const validChars:String = VALID_CHARS +
+                                  decimalSeparator + groupingSeparator;

         if (validateInputCharacters(input, len, validChars))
         {
@@ -548,22 +540,27 @@
             return false;
         }
         // Make sure there's only one decimal point.
-        else if (input.indexOf(decimalSeparator) !=
-                 input.lastIndexOf(decimalSeparator))
+        else if ((decimalSeparator != negativeSymbol) &&
+                 (input.indexOf(decimalSeparator) !=
+                 input.lastIndexOf(decimalSeparator)))
         {
             results.push(new ValidationResult(
                 true, baseField, "decimalPointCount",
                 decimalPointCountError));
             return false;
         }
+
+        var negPosLeft:Boolean = false;
+        if (negativeNumberFormat <= 2)
+            negPosLeft = true;
         // NumberValidatorBase has this method.
-        else if (!validateDecimalString(input, baseField, results))
+        else if (!validateDecimalString(input, baseField, results, negPosLeft))
         {
             return false;
         }
         // all errors are already checked. Only remaining error is
         // negativeNumberFormat.
-        else if ((input.indexOf(negativeSymbol) != -1) ||
+        else if ((inputHasNegativeSymbol(input)) ||
             ((input.charAt(0) == "(") && (input.charAt(len-1) == ")")))

         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17308
Author:   dthakkar@adobe.com
Date:     2010-08-12T23:22:20.533632Z

Log Message:
-----------
Flex integration feature (includes spark formatters and related checkintests.)
UIComponent.as - Added API's to support non visual style client
IAdvancedStyleClient.as - Added setter for StyleParent method
StyleProtoChain.as - Added else loop to verify if the component is IAdvancedStyleClient
StyleProxy.as - added setter for styleParent method (this class inherits IAdvancedStyleClient interface)

QE notes: No
Doc notes: No
Bugs: No
Reviewer: Gordon , Darrell
Tests run: CheckinTests, Mustella
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/CollatorBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/supportClasses/NumberBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters/supportClasses</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/CollatorTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/SortingCollator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/StringToolsTestScript.mxml</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/formatters</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/AdvancedStyleClientTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/BasicTests-config.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest/ADVStyleTestEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/NumberFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/CurrencyFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/CollatorTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/NumberFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/DateTimeFormatterTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/CurrencyFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/DateTimeFormatterTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/AdvancedStyleClientTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses/GlobalizationBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/formatters/IFormatter.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/styleTest/ADVStyleTestClass.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/supportClasses</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/LastOperationStatus.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/views/StringToolsTests.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/globalization/MatchingCollator.as</path>

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

--- frameworks/projects/framework/src/mx/styles/StyleProxy.as
+++ frameworks/projects/framework/src/mx/styles/StyleProxy.as
@@ -303,6 +303,10 @@
         return _advancedSource ? _advancedSource.styleParent : null;
     }

+	public function set styleParent(parent:IAdvancedStyleClient):void
+	{
+
+	}
     //--------------------------------------------------------------------------
     //
     //  Methods - ISimpleStyleClient and IStyleClient


Transferred from the Adobe Open Source Subversion Repository

Revision: 22118
Author:   jasonsj@adobe.com
Date:     2011-08-19T22:45:54.903069Z

Log Message:
-----------
SDK-31259 CalloutSkin graphic ordering
SDK-29673 default button skins for ActionBar buttons.

Update CalloutArrow to match spec, useBackgroundGradient should be protected.

Update mobile skins test app with emphasized examples and fix Callout examples to use to contentBackgroundAppearance.

QE notes: Fixed regression from contentBackgroundAppearance. Update baselines for ActionBar accentColor tests.
Doc notes: ActionBar buttons now support emphasized (i.e. accentColor)
Bugs:
SDK-31259 slight difference in callout content for 320 and 240/160 runs
SDK-29673 accentColor not working inside ActionBarsdk
Reviewer: tkraikit, betravis
Tests run: checkintests, mustella-mobile
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/MobileThemeClasses.as
+++ frameworks/projects/mobiletheme/src/MobileThemeClasses.as
@@ -30,7 +30,11 @@
 import spark.skins.mobile.CalloutActionBarSkin; spark.skins.mobile.CalloutActionBarSkin;
 import spark.skins.mobile.CalloutViewNavigatorSkin; spark.skins.mobile.CalloutViewNavigatorSkin;
 import spark.skins.mobile.CheckBoxSkin; spark.skins.mobile.CheckBoxSkin;
+import spark.skins.mobile.DefaultBeveledActionButtonSkin; spark.skins.mobile.DefaultBeveledActionButtonSkin;
+import spark.skins.mobile.DefaultBeveledBackButtonSkin; spark.skins.mobile.DefaultBeveledBackButtonSkin;
 import spark.skins.mobile.DefaultButtonSkin; spark.skins.mobile.DefaultButtonSkin;
+import spark.skins.mobile.DefaultTransparentActionButtonSkin; spark.skins.mobile.DefaultTransparentActionButtonSkin;
+import spark.skins.mobile.DefaultTransparentNavigationButtonSkin; spark.skins.mobile.DefaultTransparentNavigationButtonSkin;
 import spark.skins.mobile.DateSpinnerSkin; spark.skins.mobile.DateSpinnerSkin;
 import spark.skins.mobile.HScrollBarSkin; spark.skins.mobile.HScrollBarSkin;
 import spark.skins.mobile.HSliderSkin; spark.skins.mobile.HSliderSkin;


Transferred from the Adobe Open Source Subversion Repository

Revision: 22006
Author:   jasonsj@adobe.com
Date:     2011-08-15T23:49:37.068379Z

Log Message:
-----------
SDK-31052 erase the CalloutSkin drop shadow when backgroundAlpha < 1
SDK-31028 New contentBackgroundAppearance style and CalloutContentBackgroundAppearance to remove content background shadow and/or color in Callout.

QE notes: ViewNavigatorCalloutSkin has been removed. Instead, set contentBackgroundAppearance=none on the Callout. It's no longer necessary to set contentBackgroundAlpha=1 on ViewNavigators inside a Callout.
Doc notes:
Bugs:
SDK-31052 Drop shadow appears beneath arrow when Callout has a backgroundAlpha less than 1
SDK-31028 Callout skinning/styling should account for arbitrary use of a ViewNavigator child
Reviewer: betravis
Tests run: checkintests, mustella-mobile
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="D">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorCalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/MobileComponentsClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile320/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile240/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile160/assets/CalloutContentBackground.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>

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

--- frameworks/projects/mobiletheme/src/MobileThemeClasses.as
+++ frameworks/projects/mobiletheme/src/MobileThemeClasses.as
@@ -58,7 +58,6 @@
 import spark.skins.mobile.ViewMenuSkin; ViewMenuSkin;
 import spark.skins.mobile.ViewNavigatorApplicationSkin; ViewNavigatorApplicationSkin;
 import spark.skins.mobile.ViewNavigatorSkin; ViewNavigatorSkin;
-import spark.skins.mobile.ViewNavigatorCalloutSkin; ViewNavigatorCalloutSkin;
 import spark.skins.mobile.VScrollBarSkin; spark.skins.mobile.VScrollBarSkin;
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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

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

Modified Paths:
--------------
151 paths were modified

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

--- frameworks/projects/spark/src/spark/components/HSlider.as
+++ frameworks/projects/spark/src/spark/components/HSlider.as
@@ -25,6 +25,11 @@
  *  The FxHSlider class defines a horizontal slider component.
  *
  *  @includeExample examples/FxHSliderExample.mxml
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class FxHSlider extends FxSlider
 {
@@ -38,6 +43,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public function FxHSlider()
     {
@@ -52,6 +62,11 @@

     /**
      *  The size of the track, which equals the width of the track.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function get trackSize():Number
     {
@@ -60,6 +75,11 @@

     /**
      *  The size of the thumb button, which equals the height of the thumb button.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function calculateThumbSize():Number
     {
@@ -79,6 +99,11 @@
      *
      *  @param thumbPos A number representing the new position of
      *  the thumb button in the control.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function positionThumb(thumbPos:Number):void
     {
@@ -106,6 +131,11 @@
      *  @param localY The y position relative to the track.
      *
      *  @return The position of the thumb button.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function pointToPosition(localX:Number,
                                                 localY:Number):Number
@@ -115,6 +145,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     override protected function pointClickToPosition(localX:Number,
                                                      localY:Number):Number


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

--- frameworks/projects/spark/src/spark/components/VSlider.as
+++ frameworks/projects/spark/src/spark/components/VSlider.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: 12368
Author:   dsubrama@adobe.com
Date:     2009-12-02T16:37:28.078960Z

Log Message:
-----------
Rename spark.components.supportClasses.Slider to spark.components.supportClasses.SliderBase as well as spark.components.supportClasses.ScrollBar to spark.components.supportClasses.ScrollBarBase. This means the spark manifest entries have also changed (for CSS styling purposes, not for use as mxml tags) (Slider -> SliderBase, ScrollBar -> ScrollBarBase).

Change is PARB approved.

QE notes: Please check-in the updated tests
Doc notes: ASDoc has been updated. If any updates need to happen in livedocs, please do so.
Bugs: SDK-24401
Reviewer: Ryan/Jason
Tests run: Jacob ran a cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as" copyfrom-rev="12283" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderAccImpl.as" copyfrom-rev="12283" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderBaseAccImpl.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as" copyfrom-rev="12283" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/accessibility/SliderAccImpl.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/components/CircularScrollBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/VSlider.as
+++ frameworks/projects/spark/src/spark/components/VSlider.as
@@ -18,7 +18,7 @@

 import mx.core.IDataRenderer;

-import spark.components.supportClasses.Slider;
+import spark.components.supportClasses.SliderBase;

 //--------------------------------------
 //  Other metadata
@@ -83,7 +83,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class VSlider extends Slider
+public class VSlider extends SliderBase
 {
     include "../core/Version.as";


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/core/IEditableText.as
+++ frameworks/projects/spark/src/spark/core/IEditableText.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
 package spark.core
 {
 import flash.accessibility.AccessibilityProperties;


Arkleus: never allow volume to be less than 0.

--- kdp3Lib/src/com/kaltura/kdpfl/view/controls/KVolumeBar.as
+++ kdp3Lib/src/com/kaltura/kdpfl/view/controls/KVolumeBar.as
@@ -338,7 +338,12 @@
 		 * change volume all in one click - mouse_down and move
 		 * **/
 		private function onMouseMove(e:MouseEvent):void{
-			changeVolume(_slider.mouseX/_slider.width);
+			var vol:Number		= _slider.mouseX/_slider.width;
+
+			if(vol < 0)
+				changeVolume(0);
+			else
+				changeVolume(vol);
 		}

 		/**


now preventing infinite servlet request loop on failure

--- WeaveData/src/weave/data/DataSources/WeaveDataSource.as
+++ WeaveData/src/weave/data/DataSources/WeaveDataSource.as
@@ -35,6 +35,7 @@
 	import weave.api.data.IDataRowSource;
 	import weave.api.data.IDataSource;
 	import weave.api.data.IQualifiedKey;
+	import weave.api.detectLinkableObjectChange;
 	import weave.api.disposeObjects;
 	import weave.api.newLinkableChild;
 	import weave.api.objectWasDisposed;
@@ -201,6 +202,9 @@
 					// stop if hierarchy is defined
 					return;
 				}
+
+				_attributeHierarchy.value = <hierarchy/>;
+
 				//trace("getDataServiceMetadata()");

 				// temporary solution
@@ -339,9 +343,9 @@
 		/**
 		 * Called when the hierarchy is downloaded from a URL.
 		 */
-		private function handleHierarchyURLDownload(event:ResultEvent, token:Object = null):void
-		{
-			if (objectWasDisposed(this))
+		private function handleHierarchyURLDownload(event:ResultEvent, url:String):void
+		{
+			if (objectWasDisposed(this) || url != hierarchyURL.value)
 				return;
 			_attributeHierarchy.value = XML(event.result); // this will run callbacks
 		}
@@ -349,9 +353,11 @@
 		/**
 		 * Called when the hierarchy fails to download from a URL.
 		 */
-		private function handleHierarchyURLDownloadError(event:FaultEvent, token:Object = null):void
-		{
-			reportError(event, null, token);
+		private function handleHierarchyURLDownloadError(event:FaultEvent, url:String):void
+		{
+			if (url != hierarchyURL.value)
+				return;
+			reportError(event, null, url);
 		}

 		public static const ENTITY_ID:String = 'weaveEntityId';
@@ -390,7 +396,7 @@
 				//trace("handleGetDataServiceMetadata",ObjectUtil.toString(event));

 				if (_attributeHierarchy.value == null)
-					_attributeHierarchy.value = <hierarchy name="Weave Data Service"/>;
+					_attributeHierarchy.value = <hierarchy/>;

 				// add each missing category
 				parent = <category name="Data Tables"/>;


Transferred from the Adobe Open Source Subversion Repository

Revision: 13046
Author:   hneelu@adobe.com
Date:     2009-12-17T12:34:07.695337Z

Log Message:
-----------
Updating automation sources..

Modified Paths:
--------------
451 paths were modified

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

--- frameworks/projects/automation_spark/src/spark/automation/tabularData/SkinnableContainerTabularData.as
+++ frameworks/projects/automation_spark/src/spark/automation/tabularData/SkinnableContainerTabularData.as
@@ -102,7 +102,7 @@
 			var visibleChildren:int = 0;
 			// code modified to avoid the usage of numAutomationChildren and
 			// getAutomationChildAt in a loop
-			var childList:Array  =  Automation.automationManager2.getAutomationChildrenArray(containerDelegate);
+			var childList:Array  =  containerDelegate.getAutomationChildren();

 			var n:int = childList?childList.length:0;
 			for (var i:int = 0; i < n; ++i)
@@ -154,7 +154,7 @@
 			var k:int = 0;
 			// code modified to avoid the usage of numAutomationChildren and
 			// getAutomationChildAt in a loop
-			var childList:Array  =  Automation.automationManager2.getAutomationChildrenArray(containerDelegate);
+			var childList:Array  =  containerDelegate.getAutomationChildren();

 			var n:int = childList? childList.length:0;
 			for (var i:int = 0; i < n && k <= end; i++)


handle classname changes

handle classname changes

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/CSSTextField.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/CSSTextField.as
@@ -23,6 +23,7 @@
 	import flash.text.TextFormat;

 	import org.apache.flex.core.ValuesManager;
+    import org.apache.flex.events.Event;

     /**
      *  The CSSTextField class implements CSS text styles in a TextField.
@@ -69,7 +70,8 @@
 			var sp:Object = parent;
 			if (!sp)
 				sp = styleParent;
-
+			sp.addEventListener("classNameChanged", updateStyles);
+
 			var tf: TextFormat = new TextFormat();
 			tf.font = ValuesManager.valuesImpl.getValue(sp, "fontFamily") as String;
 			tf.size = ValuesManager.valuesImpl.getValue(sp, "fontSize");
@@ -108,5 +110,11 @@
 			defaultTextFormat = tf;
 			super.text = value;
 		}
+
+        private function updateStyles(event:Event):void
+        {
+            // force styles to be re-calculated
+            this.text = text;
+        }
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 21789
Author:   tkraikit@adobe.com
Date:     2011-08-03T06:18:54.848967Z

Log Message:
-----------
DateSpinner changes:
* refactoring for cleaner organization
* minor fixes to min and max date handling and minuteStepSize handling
* updated REGEXP for globalization (fixes ko_KR and en_SG in DATE_AND_TIME mode)

QE notes: n/a
Doc notes: n/a
Bugs: n/a
Reviewer: Jason Szeto
Tests run: checkintests, cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateAndTimeRangeList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/DateTimeFormatterEx.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as
+++ frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as
@@ -11,20 +11,15 @@
 package spark.components
 {
 import flash.events.Event;
-import flash.utils.getTimer;

 import mx.collections.ArrayCollection;
 import mx.collections.IList;
 import mx.collections.ISort;
-import mx.core.ClassFactory;
 import mx.core.IFactory;
 import mx.core.IVisualElementContainer;
-import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
-import mx.resources.Locale;
-
-import spark.accessibility.ListAccImpl;
+
 import spark.collections.Sort;
 import spark.collections.SortField;
 import spark.components.supportClasses.SkinnableComponent;
@@ -334,11 +329,11 @@
     //  displayMode
     //----------------------------------

-    // default value is DATE
     private var _displayMode:String;

-    // set to true initially so lists will be created
-    private var displayModeChanged:Boolean = true;
+    private var displayModeChanged:Boolean;
+
+    [Inspectable(category="General", enumeration="date,time,dateAndTime", defaultValue="date")]

     /**
      *  Mode the DateSpinner is currently using for display. See
@@ -395,7 +390,7 @@
             _maxDateDefault.fullYear += Math.floor(DEFAULT_YEAR_RANGE / 2);
         }

-        syncSelectedDate = true; // force lists to spin to selected date
+        syncSelectedDate = true; // force lists to spin to current selected date

         invalidateProperties();
     }
@@ -485,11 +480,11 @@
     private var minuteStepSizeChanged:Boolean = false;

     /**
-     * Minute interval to be used when displaying minutes. Only
-     * applicable in TIME and DATEANDTIME modes. Valid values must
-     * be evenly divisible into 60; invalid values will revert to
-     * the default interval of 1. For example, a value of "15" will show
-     * the values 0, 15, 30, 45.
+     *  Minute interval to be used when displaying minutes. Only
+     *  applicable in TIME and DATEANDTIME modes. Valid values must
+     *  be evenly divisible into 60; invalid values will revert to
+     *  the default interval of 1. For example, a value of "15" will show
+     *  the values 0, 15, 30, 45.
      *
      *  @default 1
      *  @langversion 3.0
@@ -564,7 +559,7 @@
     {
         super.commitProperties();

-        var listsCreated:Boolean = false;
+        var listsNewlyCreated:Boolean = false;

         // TODO: CHECK ON THIS ASSUMPTION
         // TODO: Jason says this is wrong; just use styleName = DateSpinner to link styles
@@ -587,186 +582,27 @@
             refreshDateTimeFormatter = false;
         }

-        // an array of the list and position objects that will be sorted by position
-        var fieldPositionObjArray:ArrayCollection = new ArrayCollection();
-        var listSort:ISort = new Sort();
-        listSort.fields = [new SortField("position")];
-        fieldPositionObjArray.sort = listSort;
-
         // ==================================================
         // switch out lists if the display mode changed
+
         if (displayModeChanged)
         {
-            // clean out the container and all existing lists
-            // they may be in different positions, which will affect how they
-            // need to be (re)created
-            cleanContainer();
-
-            var fieldPosition:int = 0;
-            var listItem:Object;
-            var tempList:SpinnerList;
-            var numItems:int;
-
-            // configure the correct lists to use
-            if (displayMode == DateSelectorDisplayMode.TIME ||
-                displayMode == DateSelectorDisplayMode.DATE_AND_TIME)
-            {
-                fieldPositionObjArray.addItem(generateFieldPositionObject(HOUR_ITEM, dateTimeFormatterEx.getHourPosition()));
-                fieldPositionObjArray.addItem(generateFieldPositionObject(MINUTE_ITEM, dateTimeFormatterEx.getMinutePosition()));
-
-                if (displayMode == DateSelectorDisplayMode.DATE_AND_TIME)
-                    fieldPositionObjArray.addItem(generateFieldPositionObject(DATE_ITEM, dateTimeFormatterEx.getMonthPosition()));
-
-                if (!use24HourTime)
-                    fieldPositionObjArray.addItem(generateFieldPositionObject(MERIDIAN_ITEM, dateTimeFormatterEx.getAmPmPosition()));
-
-                // sort fieldPosition objects by position
-                fieldPositionObjArray.refresh();
-
-                numItems = fieldPositionObjArray.length;
-
-                for each (listItem in fieldPositionObjArray)
-                {
-                    switch(listItem.dateItem)
-                    {
-                        case HOUR_ITEM:
-                        {
-                            hourList = createDateItemList(HOUR_ITEM, fieldPosition++, numItems);
-                            tempList = hourList;
-                            break;
-                        }
-                        case MINUTE_ITEM:
-                        {
-                            minuteList = createDateItemList(MINUTE_ITEM, fieldPosition++, numItems);
-                            tempList = minuteList;
-                            break;
-                        }
-                        case MERIDIAN_ITEM:
-                        {
-                            meridianList = createDateItemList(MERIDIAN_ITEM, fieldPosition++, numItems);
-                            tempList = meridianList;
-                            break;
-                        }
-                        case DATE_ITEM:
-                        {
-                            dateList = createDateItemList(DATE_ITEM, fieldPosition++, numItems);
-                            tempList = dateList;
-                            break;
-                        }
-                    }
-                    tempList.addEventListener(IndexChangeEvent.CHANGE, dateItemList_changeHandler);
-                    listContainer.addElement(tempList);
-                }
-            }
-            else // default case: DATE mode
-            {
-                fieldPositionObjArray.addItem(generateFieldPositionObject(MONTH_ITEM, dateTimeFormatterEx.getMonthPosition()));
-                fieldPositionObjArray.addItem(generateFieldPositionObject(DATE_ITEM, dateTimeFormatterEx.getDayOfMonthPosition()));
-                fieldPositionObjArray.addItem(generateFieldPositionObject(YEAR_ITEM, dateTimeFormatterEx.getYearPosition()));
-
-                // sort fieldPosition objects by position
-                fieldPositionObjArray.refresh();
-
-                numItems = fieldPositionObjArray.length;
-
-                for each (listItem in fieldPositionObjArray)
-                {
-                    switch(listItem.dateItem)
-                    {
-                        case MONTH_ITEM:
-                        {
-                            monthList = createDateItemList(MONTH_ITEM, fieldPosition++, numItems);
-                            tempList = monthList;
-                            break;
-                        }
-                        case DATE_ITEM:
-                        {
-                            dateList = createDateItemList(DATE_ITEM, fieldPosition++, numItems);
-                            tempList = dateList;
-                            break;
-                        }
-                        case YEAR_ITEM:
-                        {
-                            yearList = createDateItemList(YEAR_ITEM, fieldPosition++, numItems);
-                            tempList = yearList;
-                            break;
-                        }
-                    }
-                    tempList.addEventListener(IndexChangeEvent.CHANGE, dateItemList_changeHandler);
-                    listContainer.addElement(tempList);
-                }
-                // set item renderers prototype
-                // yearList.itemRenderer = new ClassFactory(DefaultDateSpinnnerItemRendererThingy);
-            }
+            setupDateItemLists();
+
             displayModeChanged = false;
-            listsCreated = true;
+            listsNewlyCreated = true;
+            syncSelectedDate = true;
         }

         // ==================================================
-        var today:Date = new Date();
-
-        // populate lists that are being shown
-        if (yearList && populateYearDataProvider)
-        {
-            yearList.dataProvider = generateYears(today);
-            //			yearList.dataProvider = new YearRangeList(localeStr, minDate.fullYear, maxDate.fullYear);
-            populateYearDataProvider = false;
-
-            yearList.typicalItem = getLongestLabel(yearList.dataProvider);
-        }
-        if (monthList && populateMonthDataProvider)
-        {
-            monthList.dataProvider = generateMonths(today);
-            populateMonthDataProvider = false;
-
-            // set size
-            monthList.typicalItem = getLongestLabel(monthList.dataProvider);
-        }
-        if (dateList && populateDateDataProvider)
-        {
-            if (displayMode == DateSelectorDisplayMode.DATE_AND_TIME)
-            {
-                dateList.dataProvider = new DateAndTimeRangeList(minDate, maxDate,
-                    localeStr, today, getStyle("accentColor"));
-
-                // set size to longest string
-                dateList.typicalItem = dateList.dataProvider.getItemAt(0); // TODO: localize? better way to do this? add a dot? ask Masa
-            }
-            else
-            {
-                dateList.dataProvider = generateMonthOfDates(today);
-
-                // set size to width of longest visible value
-                dateList.typicalItem = getLongestLabel(dateList.dataProvider);
-            }
-
-            populateDateDataProvider = false;
-        }
-        if (hourList && populateHourDataProvider)
-        {
-            hourList.dataProvider = generateHours(use24HourTime);
-            hourList.typicalItem = getLongestLabel(hourList.dataProvider);
-            populateHourDataProvider = false;
-        }
-        if (minuteList && populateMinuteDataProvider)
-        {
-            minuteList.dataProvider = generateMinutes();
-            minuteList.typicalItem = getLongestLabel(minuteList.dataProvider);
-            populateMinuteDataProvider = false;
-        }
-        if (meridianList && populateMeridianDataProvider)
-        {
-            var amObject:Object = generateAmPm(AM);
-            var pmObject:Object = generateAmPm(PM);
-            meridianList.dataProvider = new ArrayCollection([amObject, pmObject]);
-            meridianList.typicalItem = getLongestLabel(meridianList.dataProvider);
-            populateMeridianDataProvider = false;
-        }
+        // populate the lists with the appropriate data providers
+
+        populateDateItemLists(localeStr);

         // ==================================================

         // correct any integrity violations
-        if (minDateChanged || maxDateChanged || syncSelectedDate || listsCreated || minuteStepSizeChanged)
+        if (minDateChanged || maxDateChanged || syncSelectedDate || listsNewlyCreated || minuteStepSizeChanged)
         {
             // check min <= max
             if (minDate.time > maxDate.time)
@@ -783,72 +619,42 @@

             // check minDate <= selectedDate <= maxDate
             if (!selectedDate || selectedDate.time < minDate.time)
-                selectedDate = minDate;
+            {
+                _selectedDate = minDate;
+            }
             else if (selectedDate.time > maxDate.time)
-                selectedDate = maxDate;
+            {
+                _selectedDate = maxDate;
+            }

             minDateChanged = false;
             maxDateChanged = false;

-            // verify minutes are a multiple of minuteStepSize
-            if (minuteList && selectedDate.minutes % minuteStepSize != 0)
-            {
-                selectedDate.minutes -= selectedDate.minutes % minuteStepSize;
+            if (minuteStepSizeChanged)
+            {
+                // verify minutes are a multiple of minuteStepSize
+                if (minuteList && ((selectedDate.minutes % minuteStepSize) != 0))
+                {
+                    _selectedDate.minutes -= (selectedDate.minutes % minuteStepSize);
+
+                    // last adjustment to make sure we didn't accidentally go below minDate
+                    if (selectedDate.time < minDate.time)
+                        _selectedDate.minutes += minuteStepSize;
+                }

-                // last adjustment to make sure we didn't accidentally go below minDate
-                if (selectedDate.time < minDate.time)
-                    selectedDate.minutes += minuteStepSize;
-            }
-
+                minuteStepSizeChanged = false;
+            }
+
             disableInvalidSpinnerValues(selectedDate);
+
+            syncSelectedDate = true;
         }

         // ==================================================
         // update selections on the lists if necessary
         if (syncSelectedDate)
         {
-            var newIndex:int;
-            if (yearList)
-            {
-                // TODO: use math for the year instead of iterating through each one; remove that function
-                newIndex = findDateItemIndexInDataProvider(selectedDate.fullYear, yearList.dataProvider);
-                goToIndex(yearList, newIndex, listsCreated);
-            }
-
-            if (monthList)
-                goToIndex(monthList, selectedDate.month, listsCreated);
-
-            if (dateList)
-            {
-                if (displayMode == DateSelectorDisplayMode.DATE)
-                {
-                    goToIndex(dateList, selectedDate.date - 1, listsCreated);
-                }
-                else // DATE_AND_TIME mode
-                {
-                    newIndex = findDateIndex(selectedDate, dateList.dataProvider);
-                    goToIndex(dateList, newIndex, listsCreated);
-                }
-            }
-            if (hourList)
-            {
-                // TODO: double-check the math
-                newIndex = use24HourTime ? selectedDate.hours : (selectedDate.hours + 11) % 12;
-                goToIndex(hourList, newIndex, listsCreated);
-            }
-            if (minuteList)
-            {
-                // TODO: calculate instead of iterate?
-                newIndex = findDateItemIndexInDataProvider(selectedDate.minutes, minuteList.dataProvider);
-                goToIndex(minuteList, newIndex, listsCreated);
-            }
-            if (!use24HourTime && meridianList)
-            {
-                newIndex = selectedDate.hours < 12 ? 0 : 1;
-                goToIndex(meridianList, newIndex, listsCreated);
-            }
-
-            dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+            updateListsToSelectedDate(listsNewlyCreated);
             syncSelectedDate = false;
         }

@@ -883,8 +689,6 @@
         }
     }

-
-
     //--------------------------------------------------------------------------
     //
     //  Methods
@@ -909,8 +713,193 @@
         // if itemIndex == itemCount - 1, align as last column

         var s:SpinnerList = SpinnerList(createDynamicPartInstance("dateItemList"));
-        //		s.itemRenderer = // ...;
+//        s.addEventListener(TouchInteractionEvent.TOUCH_INTERACTION_START, dateItemList_touchEventHandler);
+//        s.addEventListener(TouchInteractionEvent.TOUCH_INTERACTION_END, dateItemList_touchEventHandler);
+        //		TODO: s.itemRenderer = // ...; for first column (or equivalent)
         return s;
+    }
+
+    /**
+     *  Sets up the date item lists based on the current mode. Clears pre-existing lists.
+     *
+     */
+    private function setupDateItemLists():void
+    {
+        // an array of the list and position objects that will be sorted by position
+        var fieldPositionObjArray:ArrayCollection = new ArrayCollection();
+        var listSort:ISort = new Sort();
+        listSort.fields = [new SortField("position")];
+        fieldPositionObjArray.sort = listSort;
+
+        // clean out the container and all existing lists
+        // they may be in different positions, which will affect how they
+        // need to be (re)created
+        cleanContainer();
+
+        var fieldPosition:int = 0;
+        var listItem:Object;
+        var tempList:SpinnerList;
+        var numItems:int;
+
+        // configure the correct lists to use
+        if (displayMode == DateSelectorDisplayMode.TIME ||
+            displayMode == DateSelectorDisplayMode.DATE_AND_TIME)
+        {
+            fieldPositionObjArray.addItem(generateFieldPositionObject(HOUR_ITEM, dateTimeFormatterEx.getHourPosition()));
+            fieldPositionObjArray.addItem(generateFieldPositionObject(MINUTE_ITEM, dateTimeFormatterEx.getMinutePosition()));
+
+            if (displayMode == DateSelectorDisplayMode.DATE_AND_TIME)
+                fieldPositionObjArray.addItem(generateFieldPositionObject(DATE_ITEM, dateTimeFormatterEx.getMonthPosition()));
+
+            if (!use24HourTime)
+                fieldPositionObjArray.addItem(generateFieldPositionObject(MERIDIAN_ITEM, dateTimeFormatterEx.getAmPmPosition()));
+
+            // sort fieldPosition objects by position
+            fieldPositionObjArray.refresh();
+
+            numItems = fieldPositionObjArray.length;
+
+            for each (listItem in fieldPositionObjArray)
+            {
+                switch(listItem.dateItem)
+                {
+                    case HOUR_ITEM:
+                    {
+                        hourList = createDateItemList(HOUR_ITEM, fieldPosition++, numItems);
+                        tempList = hourList;
+                        break;
+                    }
+                    case MINUTE_ITEM:
+                    {
+                        minuteList = createDateItemList(MINUTE_ITEM, fieldPosition++, numItems);
+                        tempList = minuteList;
+                        break;
+                    }
+                    case MERIDIAN_ITEM:
+                    {
+                        meridianList = createDateItemList(MERIDIAN_ITEM, fieldPosition++, numItems);
+                        tempList = meridianList;
+                        break;
+                    }
+                    case DATE_ITEM:
+                    {
+                        dateList = createDateItemList(DATE_ITEM, fieldPosition++, numItems);
+                        tempList = dateList;
+                        break;
+                    }
+                }
+                tempList.addEventListener(IndexChangeEvent.CHANGE, dateItemList_changeHandler);
+                listContainer.addElement(tempList);
+            }
+        }
+        else // default case: DATE mode
+        {
+            fieldPositionObjArray.addItem(generateFieldPositionObject(MONTH_ITEM, dateTimeFormatterEx.getMonthPosition()));
+            fieldPositionObjArray.addItem(generateFieldPositionObject(DATE_ITEM, dateTimeFormatterEx.getDayOfMonthPosition()));
+            fieldPositionObjArray.addItem(generateFieldPositionObject(YEAR_ITEM, dateTimeFormatterEx.getYearPosition()));
+
+            // sort fieldPosition objects by position
+            fieldPositionObjArray.refresh();
+
+            numItems = fieldPositionObjArray.length;
+
+            for each (listItem in fieldPositionObjArray)
+            {
+                switch(listItem.dateItem)
+                {
+                    case MONTH_ITEM:
+                    {
+                        monthList = createDateItemList(MONTH_ITEM, fieldPosition++, numItems);
+                        tempList = monthList;
+                        break;
+                    }
+                    case DATE_ITEM:
+                    {
+                        dateList = createDateItemList(DATE_ITEM, fieldPosition++, numItems);
+                        tempList = dateList;
+                        break;
+                    }
+                    case YEAR_ITEM:
+                    {
+                        yearList = createDateItemList(YEAR_ITEM, fieldPosition++, numItems);
+                        // remove this if we go with the year range dataprovider
+                        yearList.wrapElements = false;
+                        tempList = yearList;
+                        break;
+                    }
+                }
+                tempList.addEventListener(IndexChangeEvent.CHANGE, dateItemList_changeHandler);
+                listContainer.addElement(tempList);
+            }
+        }
+    }
+
+    /**
+     *  Populate the currently existing date item lists with correct data providers using the
+     *  provided locale to format the
+     */
+    private function populateDateItemLists(localeStr:String):void
+    {
+        var today:Date = new Date();
+
+        // populate lists that are being shown
+        if (yearList && populateYearDataProvider)
+        {
+            yearList.dataProvider = generateYears(today);
+            //			yearList.dataProvider = new YearRangeList(localeStr, minDate.fullYear, maxDate.fullYear);
+
+            yearList.typicalItem = getLongestLabel(yearList.dataProvider);
+        }
+        if (monthList && populateMonthDataProvider)
+        {
+            monthList.dataProvider = generateMonths(today);
+
+            // set size
+            monthList.typicalItem = getLongestLabel(monthList.dataProvider);
+        }
+        if (dateList && populateDateDataProvider)
+        {
+            if (displayMode == DateSelectorDisplayMode.DATE_AND_TIME)
+            {
+                dateList.dataProvider = new DateAndTimeRangeList(minDate, maxDate,
+                    localeStr, today, getStyle("accentColor"));
+
+                // set size to longest string
+                dateList.typicalItem = dateList.dataProvider.getItemAt(0); // TODO: localize? better way to do this? add a dot? ask Masa
+            }
+            else
+            {
+                dateList.dataProvider = generateMonthOfDates(today);
+
+                // set size to width of longest visible value
+                dateList.typicalItem = getLongestLabel(dateList.dataProvider);
+            }
+        }
+        if (hourList && populateHourDataProvider)
+        {
+            hourList.dataProvider = generateHours(use24HourTime);
+            hourList.typicalItem = getLongestLabel(hourList.dataProvider);
+        }
+        if (minuteList && populateMinuteDataProvider)
+        {
+            minuteList.dataProvider = generateMinutes();
+            minuteList.typicalItem = getLongestLabel(minuteList.dataProvider);
+        }
+        if (meridianList && populateMeridianDataProvider)
+        {
+            var amObject:Object = generateAmPm(AM);
+            var pmObject:Object = generateAmPm(PM);
+            meridianList.dataProvider = new ArrayCollection([amObject, pmObject]);
+            meridianList.typicalItem = getLongestLabel(meridianList.dataProvider);
+        }
+
+        // reset all flags
+        populateYearDataProvider = false;
+        populateMonthDataProvider = false;
+        populateDateDataProvider = false;
+        populateHourDataProvider = false;
+        populateMinuteDataProvider = false;
+        populateMeridianDataProvider = false;
     }

     // set the selected index on the SpinnerList. use animation only if the lists
@@ -1061,6 +1050,52 @@
             return list.getItemAt(idx);

         return null;
+    }
+
+    private function updateListsToSelectedDate(listsNewlyCreated:Boolean):void
+    {
+        var newIndex:int;
+        if (yearList)
+        {
+            // TODO: use math for the year instead of iterating through each one; remove that function
+            newIndex = findDateItemIndexInDataProvider(selectedDate.fullYear, yearList.dataProvider);
+            goToIndex(yearList, newIndex, listsNewlyCreated);
+        }
+
+        if (monthList)
+            goToIndex(monthList, selectedDate.month, listsNewlyCreated);
+
+        if (dateList)
+        {
+            if (displayMode == DateSelectorDisplayMode.DATE)
+            {
+                goToIndex(dateList, selectedDate.date - 1, listsNewlyCreated);
+            }
+            else // DATE_AND_TIME mode
+            {
+                newIndex = findDateIndex(selectedDate, dateList.dataProvider);
+                goToIndex(dateList, newIndex, listsNewlyCreated);
+            }
+        }
+        if (hourList)
+        {
+            // TODO: double-check the math
+            newIndex = use24HourTime ? selectedDate.hours : (selectedDate.hours + 11) % 12;
+            goToIndex(hourList, newIndex, listsNewlyCreated);
+        }
+        if (minuteList)
+        {
+            // TODO: calculate instead of iterate?
+            newIndex = findDateItemIndexInDataProvider(selectedDate.minutes, minuteList.dataProvider);
+            goToIndex(minuteList, newIndex, listsNewlyCreated);
+        }
+        if (!use24HourTime && meridianList)
+        {
+            newIndex = selectedDate.hours < 12 ? 0 : 1;
+            goToIndex(meridianList, newIndex, listsNewlyCreated);
+        }
+
+        dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
     }

     // modify existing date item spinner list data providers to mark
@@ -1167,7 +1202,7 @@
         return days;
     }

-    // clean out the container: remove all elements detach event listeners, null out
+    // clean out the container: remove all elements, detach event listeners, null out references
     private function cleanContainer():void
     {
         listContainer.removeAllElements();
@@ -1204,6 +1239,7 @@
         }
     }

+    // convenience method to generate the standard object format for data in the list dataproviders
     private function generateDateItemObject(label:String, data:*, enabled:Boolean = true):Object
     {
         var obj:Object = { label:label, data:data, enabled:enabled };
@@ -1305,5 +1341,15 @@
         selectedDate = newDate;
     }

+//    private var animatingList:Vector.<SpinnerList> = new Vector.<SpinnerList>();
+
+//    private function dateItemList_touchEventHandler(event:TouchInteractionEvent):void
+//    {
+//        if (event.type == TouchInteractionEvent.TOUCH_INTERACTION_START)
+//        {
+//            if (animatingList.c ...
+//        }
+//        trace("touch event [" + event.type + "] start on: " + event.target);
+//    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridColumn.as
@@ -45,6 +45,11 @@
  *  The default value is undefined, which means it uses the value of the
  *  backgroundColor style of the associated DataGrid control.
  *  The default value for the DataGrid control is 0xFFFFFF.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="backgroundColor", type="uint", format="Color", inherit="no")]

@@ -55,6 +60,11 @@
  *  headerStyleName style of the associated DataGrid control.
  *  The default value for the DataGrid control is
  *  ".dataGridStyles".
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="headerStyleName", type="String", inherit="no")]

@@ -62,6 +72,11 @@
  *  The number of pixels between the container's left border and its content
  *  area.
  *  @default 0
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingLeft", type="Number", format="Length", inherit="no")]

@@ -69,6 +84,11 @@
  *  The number of pixels between the container's right border and its content
  *  area.
  *  @default 0
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 [Style(name="paddingRight", type="Number", format="Length", inherit="no")]

@@ -157,6 +177,11 @@
  *  @see mx.controls.DataGrid
  *
  *  @see mx.styles.CSSStyleDeclaration
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class DataGridColumn extends CSSStyleDeclaration implements IIMESupport
 {
@@ -211,6 +236,11 @@
      *  associated with the column, and the text for the header cell of this
      *  column.  This is equivalent to setting the dataField
      *  and headerText properties.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function DataGridColumn(columnName:String = null)
     {
@@ -291,6 +321,11 @@
      *  Click on the column header to perform the sort.

      *
      *  @default false;
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var sortDescending:Boolean = false;

@@ -315,6 +350,11 @@
      *
      *
The default item renderer is the DataGridItemRenderer class,
      *  which displays the item data as text.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get itemRenderer():IFactory
     {
@@ -378,6 +418,11 @@
      *  For more information, see the headerText property.

      *
      *  @see #headerText
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var dataField:String;

@@ -403,6 +448,11 @@
      *  specify a different property.
      *  For example, you could set the value to "FullName" when a user views a
      *  set of people's names included from a database.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get dataTipField():String
     {
@@ -456,6 +506,11 @@
      *
      *
The function must take a single Object parameter, containing the
      *  data provider element, and return a String.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get dataTipFunction():Function
     {
@@ -490,6 +545,11 @@
      *  the column headers to a new position
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var draggable:Boolean = true;

@@ -508,6 +568,11 @@
      *  Tab and Arrow keys.
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var editable:Boolean = true;

@@ -522,6 +587,11 @@
      *  column, when it is editable.
      *
      *  @default new ClassFactory(mx.controls.TextInput)
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var itemEditor:IFactory = new ClassFactory(TextInput);

@@ -540,6 +610,11 @@
      *  text property of the TextInput control.
      *
      *  @default "text"
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var editorDataField:String = "text";

@@ -559,6 +634,11 @@
      *  item renderer that opens an editor.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var editorHeightOffset:Number = 0;

@@ -578,6 +658,11 @@
      *  item renderer that opens an editor.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var editorWidthOffset:Number = 0;

@@ -598,6 +683,11 @@
      *  item renderer that opens an editor.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var editorXOffset:Number = 0;

@@ -618,6 +708,11 @@
      *  item renderer that opens an editor.
      *
      *  @default 0
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var editorYOffset:Number = 0;

@@ -637,6 +732,11 @@
      *  item renderer that opens an editor.
      *
      *  @default false.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var editorUsesEnterKey:Boolean = false;

@@ -662,6 +762,11 @@
      *
      *
The default item renderer is the DataGridItemRenderer class,
      *  which displays the item data as text.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get headerRenderer():IFactory
     {
@@ -702,6 +807,11 @@
      *  Text for the header of this column. By default, the DataGrid
      *  control uses the value of the dataField property
      *  as the header text.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get headerText():String
     {
@@ -740,6 +850,11 @@
      *  is used.
      *
      *  @default undefined
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get headerWordWrap():*
     {
@@ -784,6 +899,11 @@
      *  DataGrid control's imeMode property.

      *
      *  @see flash.system.IMEConversionMode
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get imeMode():String
     {
@@ -811,6 +931,11 @@
      *  renderer for that item as the editor.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var rendererIsEditor:Boolean = false;

@@ -845,6 +970,11 @@
      *
A callback function might concatenate the firstName and
      *  lastName fields in the data, or do some custom formatting on a Date,
      *  or convert a number for the month into the string for the month.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get labelFunction():Function
     {
@@ -882,6 +1012,11 @@
     /**
      *  The minimum width of the column.
      *  @default 20
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get minWidth():Number
     {
@@ -928,6 +1063,11 @@
      *
      *
The default item renderer is the DataGridItemRenderer class,
      *  which displays the item data as text.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get nullItemRenderer():IFactory
     {
@@ -965,6 +1105,11 @@
      *  the column.
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var resizable:Boolean = true;

@@ -986,6 +1131,11 @@
      *  are tooltips designed to show the text that is too long for the row.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get showDataTips():*
     {
@@ -1024,6 +1174,11 @@
      *  to reorder the items in the dataProvider.
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var sortable:Boolean = true;

@@ -1075,6 +1230,11 @@
      *  just the data for the item.

      *
      *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get sortCompareFunction():Function
     {
@@ -1108,6 +1268,11 @@
      *  If true, the column is visible.
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get visible():Boolean
     {
@@ -1164,6 +1329,11 @@
      *  small or too large for the displayable area.
      *
      *  @default 100
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get width():Number
     {
@@ -1231,6 +1401,11 @@
      *  true.

      *
      *  @default undefined
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get wordWrap():*
     {
@@ -1403,6 +1578,11 @@
      *  @param data Object to be rendered.
      *
      *  @return Displayable String based on the data.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function itemToLabel(data:Object):String
     {
@@ -1454,6 +1634,11 @@
      *  @param data Object to be rendered.
      *
      *  @return Displayable String based on the data.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function itemToDataTip(data:Object):String
     {
@@ -1504,6 +1689,11 @@
      *
      *  @return if data is null, the default item renderer,
      *  otherwis it returns the custom item renderer.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function getItemRendererFactory(forHeader:Boolean, data:Object):IFactory
     {
@@ -1670,6 +1860,11 @@
      *  This property is a Dictionary indexed by factories
      *  where the values are Dictionaries of itemRenderers
      *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     mx_internal var freeItemRenderersByFactory:Dictionary;


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

--- frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as
+++ frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.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.
 //
 ////////////////////////////////////////////////////////////////////////////////