Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/charts/src/mx/charts/series/PlotSeries.as
+++ frameworks/projects/charts/src/mx/charts/series/PlotSeries.as
@@ -0,0 +1,1408 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.series
+{
+
+import flash.display.DisplayObject;
+import flash.display.Graphics;
+import flash.geom.Rectangle;
+import mx.charts.DateTimeAxis;
+import mx.charts.HitData;
+import mx.charts.chartClasses.BoundedValue;
+import mx.charts.chartClasses.DataDescription;
+import mx.charts.chartClasses.InstanceCache;
+import mx.charts.chartClasses.LegendData;
+import mx.charts.chartClasses.NumericAxis;
+import mx.charts.chartClasses.Series;
+import mx.charts.renderers.DiamondItemRenderer;
+import mx.charts.series.items.PlotSeriesItem;
+import mx.charts.series.renderData.PlotSeriesRenderData;
+import mx.charts.styles.HaloDefaults;
+import mx.collections.CursorBookmark;
+import mx.core.ClassFactory;
+import mx.core.IDataRenderer;
+import mx.core.IFactory;
+import mx.core.IFlexDisplayObject;
+import mx.core.mx_internal;
+import mx.graphics.IFill;
+import mx.graphics.IStroke;
+import mx.graphics.SolidColor;
+import mx.styles.CSSStyleDeclaration;
+import mx.styles.ISimpleStyleClient;
+import mx.charts.chartClasses.CartesianTransform;
+import mx.charts.chartClasses.GraphicsUtilities;
+import flash.geom.Point;
+import mx.charts.chartClasses.IAxis;
+import mx.charts.chartClasses.CartesianChart;
+import mx.core.IFlexModuleFactory;
+
+use namespace mx_internal;
+
+include "../styles/metadata/FillStrokeStyles.as"
+include "../styles/metadata/ItemRendererStyles.as"
+
+/**
+ *  Specifies the number of pixels by which radius of the chart item is to be
+ *  increased when highlighted or selected.
+ *
+ *  @default 2
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="adjustedRadius", type="Number", format="Length", inherit="yes")]
+
+
+/**
+ *  Specifies an Array of fill objects that define the fill for
+ *  each item in the series. This takes precedence over the fill style property.
+ *  If a custom method is specified by the fillFunction property, that takes precedence over this Array.
+ *  If you do not provide enough Array elements for every item,
+ *  Flex repeats the fill from the beginning of the Array.
+ *
+ *
To set the value of this property using CSS:
+ *

+ *    PlotSeries {
+ *      fills:#CC66FF, #9966CC, #9999CC;
+ *    }
+ *

+ *

+ *
+ *
To set the value of this property using MXML:
+ *

+ *    <mx:PlotSeries ... >
+ *     <mx:fills>
+ *      <mx:SolidColor color="0xCC66FF"/>
+ *      <mx:SolidColor color="0x9966CC"/>
+ *      <mx:SolidColor color="0x9999CC"/>
+ *     </mx:fills>
+ *    </mx:PlotSeries>
+ *

+ *

+ *
+ *

+ *  If you specify the fills property and you
+ *  want to have a Legend control, you must manually create a Legend control and
+ *  add LegendItems to it.
+ *

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="fills", type="Array", arrayType="mx.graphics.IFill", inherit="no")]
+
+/**
+ *  Specifies the radius, in pixels, of the chart element at each data point.
+ *  By default, the PlotChart control draws a circle at each data point.
+ *  You can set this property in MXML or using styles.
+ *  The default value is 5 pixels.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="radius", type="Number", format="Length", inherit="no")]
+
+/**
+ *  Defines a data series for a PlotChart control.
+ *  The default item renderer for a PlotChart control
+ *  is the DiamondItemRenderer class.
+ *  Optionally, you can define an item renderer for the data series.
+ *  The item renderer must implement the IDataRenderer interface.
+ *
+ *  @mxml
+ *
+ *
The <mx:PlotSeries> tag inherits all the properties
+ *  of its parent classes, and adds the following properties:

+ *
+ *

+ *  <mx:PlotSeries
+ *    Properties
+ *    fillFunction="Internal fill function"
+ *    horizontalAxis="No default"
+ *    verticalAxis="No default"
+ *    xField="null"
+ *    yField="null"
+ *
+ *    Styles
+ *    adjustedRadius="2"
+ *    fill="0xFFFFFF"
+ *    fills="IFill; no default"
+ *    itemRenderer="itemRenderer"
+ *    legendMarkerRenderer="Defaults to series's itemRenderer"
+ *    radius="5"
+ *    stroke="IStroke; no default"
+ *  />
+ *

+ *

+ *
+ *  @see mx.charts.PlotChart
+ *  @see mx.charts.renderers.DiamondItemRenderer
+ *
+ *  @includeExample ../examples/PlotChartExample.mxml
+ *
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class PlotSeries extends Series
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class initialization
+    //
+    //--------------------------------------------------------------------------
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function PlotSeries()
+    {
+        super();
+
+        _instanceCache = new InstanceCache(null, this);
+        _instanceCache.creationCallback = applyItemRendererProperties;
+
+        dataTransform = new CartesianTransform();
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _moduleFactoryInitialized:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var _instanceCache:InstanceCache;
+
+    /**
+     *  @private
+     */
+    private var _renderData:PlotSeriesRenderData;
+
+    /**
+     *  @private
+     */
+    private var _localFills:Array /* of IFill */;
+
+
+    /**
+     *  @private
+     */
+    private var _fillCount:Number;
+
+    /**
+     * @private
+     */
+    private var _bAxesDirty:Boolean = false;
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  legendData
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get legendData():Array /* of LegendData */
+    {
+        if (fillFunction!=defaultFillFunction || _fillCount!=0)
+        {
+            var keyItems:Array /* of LegendData */ = [];
+            return keyItems;
+        }
+        var ld:LegendData = new LegendData();
+        var marker:IFlexDisplayObject;
+
+        ld.element = this;
+        var markerFactory:IFactory = getStyle("legendMarkerRenderer");
+        if (!markerFactory)
+            markerFactory = getStyle("itemRenderer");
+        if (markerFactory)
+        {
+            marker = markerFactory.newInstance();
+            if (marker as ISimpleStyleClient)
+                (marker as ISimpleStyleClient).styleName = this;
+        }
+
+        ld.marker = marker;
+        ld.aspectRatio = 1;
+        ld.label = displayName;
+
+        return [ ld ];
+
+    }
+
+    //----------------------------------
+    //  renderData
+    //----------------------------------
+
+    /**
+     *  The subtype of ChartRenderData used by this series
+     *  to store all data necessary to render.
+     *  Subclasses can override and return a more specialized class
+     *  if they need to store additional information for rendering.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function get renderData():Object
+    {
+        if (!_renderData)
+        {
+            var renderDataType:Class = this.renderDataType;
+            return new renderDataType([], [], 0);
+        }
+
+        _renderData.radius = getStyle("radius");
+        return _renderData;
+    }
+
+    //----------------------------------
+    //  items
+    //----------------------------------
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function get items():Array /* of PlotSeriesItem */
+    {
+        return _renderData ? _renderData.filteredCache : null;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //-----------------------------------
+    // fillFunction
+    //-----------------------------------
+
+    [Bindable]
+    [Inspectable(category="General")]
+
+    /**
+     * @private
+     * Storage for fillFunction property
+     */
+    private var _fillFunction:Function=defaultFillFunction;
+
+    /**
+     * Specifies a method that returns the fill for the current chart item in the series.
+     * If this property is set, the return value of the custom fill function takes precedence over the
+     * fill and fills style properties.
+     * But if it returns null, then fills and fill will be
+     * prefered in that order.
+     *
+     *
The custom fillFunction has the following signature:
+     *
+     *

+     * function_name (item:ChartItem, index:Number):IFill { ... }
+     *

+     *
+     * item is a reference to the chart item that is being rendered.
+     * index is the index of the chart item in the renderData's cache. This is different
+     * from the index of the chart's data provider because it is sorted based on the x, y, and z values.
+     * This function returns an object that implements the IFill interface.
+     *

+     *
+     *
An example usage of a customized fillFunction is to return a fill
+     * based on some threshold.

+     *
+     * @example
+     *

+     * public function myFillFunction(item:ChartItem, index:Number):IFill {
+     *      var curItem:PlotSeriesItem = PlotSeriesItem(item);
+     *      if (curItem.yNumber > 10)
+     *          return(new SolidColor(0x123456, .75));
+     *      else
+     *          return(new SolidColor(0x563412, .75));
+     * }
+     *

+     *
+     *

+     *  If you specify a custom fill function for your chart series and you
+     *  want to have a Legend control, you must manually create a Legend control and
+     *  add LegendItems to it.
+     *

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+	public function get fillFunction():Function
+    {
+        return _fillFunction;
+    }
+
+    /**
+     * @private
+     */
+    public function set fillFunction(value:Function):void
+    {
+        if (value==_fillFunction)
+            return;
+
+        if (value != null)
+            _fillFunction = value;
+
+        else
+            _fillFunction = defaultFillFunction;
+
+        invalidateDisplayList();
+        legendDataChanged();
+    }
+
+    //----------------------------------
+    //  horizontalAxis
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the horizontalAxis property.
+     */
+    private var _horizontalAxis:IAxis;
+
+    [Inspectable(category="Data")]
+
+    /**
+     *  Defines the labels, tick marks, and data position
+     *  for items on the x-axis.
+     *  Use either the LinearAxis class or the CategoryAxis class
+     *  to set the properties of the horizontalAxis as a child tag in MXML
+     *  or create a LinearAxis or CategoryAxis object in ActionScript.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get horizontalAxis():IAxis
+    {
+        return _horizontalAxis;
+    }
+
+    /**
+     *  @private
+     */
+    public function set horizontalAxis(value:IAxis):void
+    {
+        _horizontalAxis = value;
+        _bAxesDirty = true;
+
+        invalidateData();
+        invalidateProperties();
+    }
+
+    //----------------------------------
+    //  itemType
+    //----------------------------------
+
+    [Inspectable(environment="none")]
+
+    /**
+     *  The subtype of ChartItem used by this series
+     *  to represent individual items.
+     *  Subclasses can override and return a more specialized class
+     *  if they need to store additional information in the items.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function get itemType():Class
+    {
+        return PlotSeriesItem;
+    }
+
+    //----------------------------------
+    //  radius
+    //----------------------------------
+
+    [Inspectable(category="Styles")]
+    [Deprecated(replacement="radius style")]
+
+    /**
+     *  Specifies the radius, in pixels, of the chart element
+     *  at each data point.
+     *  By default, the PlotChart control draws a circle at each data point.
+     *  You can set this property in MXML or using styles.
+     *
+     *  @default 4
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get radius():Number
+    {
+        return getStyle("radius");
+    }
+
+    /**
+     *  @private
+     */
+    public function set radius(value:Number):void
+    {
+        setStyle("radius", value);
+    }
+
+    //----------------------------------
+    //  renderDataType
+    //----------------------------------
+
+    [Inspectable(environment="none")]
+
+    /**
+     *  The subtype of ChartRenderData used by this series to store all data necessary to render.
+     *  Subclasses can override and return a more specialized class if they need to store additional information for rendering.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function get renderDataType():Class
+    {
+        return PlotSeriesRenderData;
+    }
+
+    //----------------------------------
+    //  verticalAxis
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the verticalAxis property.
+     */
+    private var _verticalAxis:IAxis;
+
+    [Inspectable(category="Data")]
+
+    /**
+     *  Defines the labels, tick marks, and data position
+     *  for items on the y-axis.
+     *  Use either the LinearAxis class or the CategoryAxis class
+     *  to set the properties of the verticalAxis as a child tag in MXML
+     *  or create a LinearAxis or CategoryAxis object in ActionScript.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get verticalAxis():IAxis
+    {
+        return _verticalAxis;
+    }
+
+    /**
+     *  @private
+     */
+    public function set verticalAxis(value:IAxis):void
+    {
+        _verticalAxis = value;
+        _bAxesDirty = true;
+
+        invalidateData();
+        //invalidateChildOrder();
+        invalidateProperties();
+    }
+
+    //----------------------------------
+    //  xField
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the xField property.
+     */
+    private var _xField:String = "";
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Specifies the field of the data provider
+     *  that determines the x-axis location of each data point.
+     *  If null, Flex renders the data points
+     *  in the order they appear in the dataProvider.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get xField():String
+    {
+        return _xField;
+    }
+
+    /**
+     *  @private
+     */
+    public function set xField(value:String):void
+    {
+        _xField = value;
+
+        dataChanged();
+    }
+
+    //----------------------------------
+    //  yField
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the yField property.
+     */
+    private var _yField:String = "";
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Specifies the field of the data provider
+     *  that determines the y-axis location of each data point.
+     *  If null, the PlotSeries assumes the data provider
+     *  is an Array of numbers, and uses the numbers as values.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get yField():String
+    {
+        return _yField;
+    }
+
+    /**
+     *  @private
+     */
+    public function set yField(value:String):void
+    {
+        _yField = value;
+
+        dataChanged();
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private function initStyles():Boolean
+	{
+		HaloDefaults.init(styleManager);
+
+		var seriesStyle:CSSStyleDeclaration =
+			HaloDefaults.createSelector("mx.charts.series.PlotSeries", styleManager);
+
+		seriesStyle.defaultFactory = function():void
+		{
+			this.fill = new SolidColor(0x4444AA);
+			this.fills = [];
+			this.itemRenderer = new ClassFactory(DiamondItemRenderer);
+			this.radius = 5;
+			this.adjustedRadius = 2;
+		}
+
+		return true;
+	}
+
+
+	/**
+	 *  @inheritDoc
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	override public function set moduleFactory(factory:IFlexModuleFactory):void
+	{
+		super.moduleFactory = factory;
+
+		if (_moduleFactoryInitialized)
+			return;
+
+		_moduleFactoryInitialized = true;
+
+		// our style settings
+		initStyles();
+	}
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        if (dataTransform)
+        {
+            if (_horizontalAxis)
+            {
+                _horizontalAxis.chartDataProvider = dataProvider;
+                CartesianTransform(dataTransform).setAxis(
+                    CartesianTransform.HORIZONTAL_AXIS,_horizontalAxis);
+            }
+
+            if (_verticalAxis)
+            {
+                _verticalAxis.chartDataProvider = dataProvider;
+                CartesianTransform(dataTransform).setAxis(
+                    CartesianTransform.VERTICAL_AXIS, _verticalAxis);
+            }
+        }
+
+        var c:CartesianChart = CartesianChart(chart);
+        if (c)
+        {
+            if (!_horizontalAxis)
+            {
+                if (c.secondSeries.indexOf(this) != -1 && c.secondHorizontalAxis)
+                {
+                    if (dataTransform.axes[CartesianTransform.HORIZONTAL_AXIS] != c.secondHorizontalAxis)
+                        CartesianTransform(dataTransform).setAxis(
+                            CartesianTransform.HORIZONTAL_AXIS,c.secondHorizontalAxis);
+                }
+                else if (dataTransform.axes[CartesianTransform.HORIZONTAL_AXIS] != c.horizontalAxis)
+                        CartesianTransform(dataTransform).setAxis(
+                            CartesianTransform.HORIZONTAL_AXIS,c.horizontalAxis);
+            }
+
+            if (!_verticalAxis)
+            {
+                if (c.secondSeries.indexOf(this) != -1 && c.secondVerticalAxis)
+                {
+                    if (dataTransform.axes[CartesianTransform.VERTICAL_AXIS] != c.secondVerticalAxis)
+                        CartesianTransform(dataTransform).setAxis(
+                            CartesianTransform.VERTICAL_AXIS,c.secondVerticalAxis);
+                }
+                else if (dataTransform.axes[CartesianTransform.VERTICAL_AXIS] != c.verticalAxis)
+                        CartesianTransform(dataTransform).setAxis(
+                            CartesianTransform.VERTICAL_AXIS, c.verticalAxis);
+            }
+        }
+        dataTransform.elements = [this];
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        var g:Graphics = graphics;
+        g.clear();
+
+        var renderData:PlotSeriesRenderData =
+            transitionRenderData ?
+            PlotSeriesRenderData(transitionRenderData) :
+            _renderData;
+        if (!renderData)
+            return;
+
+        var renderCache:Array /* of PlotSeriesItem */ = renderData.filteredCache;
+
+        var sampleCount:int = renderCache.length;
+        var i:int;
+        var instances:Array /* of IFlexDisplayObject */;
+        var inst:IFlexDisplayObject;
+        var rc:Rectangle;
+        var v:PlotSeriesItem;
+
+        _instanceCache.factory = getStyle("itemRenderer");
+        _instanceCache.count = sampleCount;
+        instances = _instanceCache.instances;
+
+        var bSetData:Boolean =
+            (sampleCount > 0 && (instances[0] is IDataRenderer));
+
+        if (renderData == transitionRenderData &&
+            transitionRenderData.elementBounds)
+        {
+            var elementBounds:Array /* of Rectangle */ = renderData.elementBounds;
+
+            for (i = 0; i < sampleCount; i++)
+            {
+                inst = instances[i];
+                v = renderCache[i];
+                v.itemRenderer = inst;
+                v.fill = fillFunction(v,i);
+                if (!(v.fill))
+                    v.fill = defaultFillFunction(v,i);
+                if ((v.itemRenderer as Object).hasOwnProperty('invalidateDisplayList'))
+                        (v.itemRenderer as Object).invalidateDisplayList();
+                if (bSetData)
+                    (inst as IDataRenderer).data = v;
+                rc = elementBounds[i];
+                inst.move(rc.left, rc.top);
+                inst.setActualSize(rc.width, rc.height);
+            }
+        }
+        else
+        {
+            var radius:Number = getStyle("radius");
+
+            for (i = 0; i < sampleCount; i++)
+            {
+                v = renderCache[i];
+                inst = instances[i];
+                v.itemRenderer = inst;
+                v.fill = fillFunction(v,i);
+                if (!(v.fill))
+                    v.fill = defaultFillFunction(v,i);
+                if ((v.itemRenderer as Object).hasOwnProperty('invalidateDisplayList'))
+                        (v.itemRenderer as Object).invalidateDisplayList();
+                if (bSetData)
+                    (inst as IDataRenderer).data = v;
+                inst.move(v.x - radius, v.y - radius);
+                inst.setActualSize(2 * radius, 2 * radius);
+            }
+            if (chart && allSeriesTransform && chart.chartState == 0)
+            chart.updateAllDataTips();
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override public function stylesInitialized():void
+    {
+        _localFills = getStyle('fills');
+        if (_localFills != null)
+        	_fillCount = _localFills.length;
+        else
+        	_fillCount = 0;
+        super.stylesInitialized();
+    }
+
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        super.styleChanged(styleProp);
+        var styles:String = "fills"
+        if (styles.indexOf(styleProp)!=-1)
+        {
+            _localFills = getStyle('fills');
+            if (_localFills != null)
+        		_fillCount = _localFills.length;
+        	else
+        		_fillCount = 0;
+        }
+        if (styleProp == "itemRenderer")
+        {
+            _instanceCache.remove = true;
+            _instanceCache.discard = true;
+            _instanceCache.count = 0;
+            _instanceCache.discard = false;
+            _instanceCache.remove = false;
+        }
+
+        invalidateDisplayList();
+        legendDataChanged();
+        invalidateData();
+    }
+
+    /**
+     *  @private
+     */
+    override public function describeData(dimension:String,
+                                          requiredFields:uint):Array /* of DataDescription */
+    {
+        validateData();
+
+        var desc:DataDescription = new DataDescription();
+        var cache:Array /* of PlotSeriesItem */ = _renderData.cache;
+        var radius:Number = getStyle("radius");
+
+        if (dimension == CartesianTransform.VERTICAL_AXIS)
+        {
+            if ((requiredFields & DataDescription.REQUIRED_MIN_INTERVAL) != 0)
+            {
+                cache = cache.concat();
+                cache.sortOn("yNumber",Array.NUMERIC);
+            }
+            extractMinMax(cache, "yNumber", desc, (requiredFields & DataDescription.REQUIRED_MIN_INTERVAL) != 0);
+            if ((requiredFields & DataDescription.REQUIRED_BOUNDED_VALUES) != 0)
+            {
+                desc.boundedValues= [];
+                desc.boundedValues.push(new BoundedValue(desc.max,0,radius));
+                desc.boundedValues.push(new BoundedValue(desc.min,radius,0));
+            }
+        }
+        else if (dimension == CartesianTransform.HORIZONTAL_AXIS)
+        {
+            if ((requiredFields & DataDescription.REQUIRED_MIN_INTERVAL) != 0)
+            {
+                cache = cache.concat();
+                cache.sortOn("xNumber",Array.NUMERIC);
+            }
+            extractMinMax(cache, "xNumber", desc, (requiredFields & DataDescription.REQUIRED_MIN_INTERVAL) != 0);
+            if ((requiredFields & DataDescription.REQUIRED_BOUNDED_VALUES) != 0)
+            {
+                desc.boundedValues= [];
+                desc.boundedValues.push(new BoundedValue(desc.max,0,radius));
+                desc.boundedValues.push(new BoundedValue(desc.min,radius,0));
+            }
+        }
+        else
+        {
+            return [];
+        }
+
+        return [ desc ];
+    }
+
+    /**
+     *  @private
+     */
+    override public function getAllDataPoints():Array /* of HitData */
+    {
+        if (!_renderData)
+            return [];
+        if (!(_renderData.filteredCache))
+            return [];
+
+        var itemArr:Array /* of PlotSeriesItem */ = [];
+        if (chart && chart.dataTipItemsSet && dataTipItems)
+            itemArr = dataTipItems;
+        else if (chart && chart.showAllDataTips && _renderData.filteredCache)
+            itemArr = _renderData.filteredCache;
+        else
+            itemArr = [];
+
+        var n:uint = itemArr.length;
+        var i:uint;
+        var result:Array /* of HitData */ = [];
+
+        for (i = 0; i < n; i++)
+        {
+            var v:PlotSeriesItem = itemArr[i];
+            if (_renderData.filteredCache.indexOf(v) == -1)
+            {
+                var itemExists:Boolean = false;
+                var m:int  = _renderData.filteredCache.length;
+                for (var j:int = 0; j < m; j++)
+                {
+                    if (v.item == _renderData.filteredCache[j].item)
+                    {
+                        v = _renderData.filteredCache[j];
+                        itemExists = true;
+                        break;
+                    }
+                }
+                if (!itemExists)
+                    continue;
+            }
+            if (v)
+            {
+                var hd:HitData = new HitData(createDataID(v.index),
+                                         Math.sqrt(0),
+                                         v.x, v.y, v);
+                hd.dataTipFunction = formatDataTip;
+                var fill:IFill = PlotSeriesItem(hd.chartItem).fill;
+                hd.contextColor = GraphicsUtilities.colorFromFill(fill);
+                result.push(hd);
+            }
+        }
+        return result;
+    }
+
+    /**
+     *  @private
+     */
+    override public function findDataPoints(x:Number, y:Number,
+                                            sensitivity:Number):Array /* of HitData */
+    {
+        // esg, 8/7/06: if your mouse is over a series when it gets added and displayed for the first time, this can get called
+        // before updateData, and before and render data is constructed. The right long term fix is to make sure a stubbed out
+        // render data is _always_ present, but that's a little disruptive right now.
+        if (interactive == false || !_renderData)
+            return [];
+
+        var radius:Number = getStyle("radius");
+        var minDist2:Number = radius + sensitivity;
+        minDist2 *= minDist2;
+        var minItems:Array /* of PlotSeriesItem */ = [];
+        var pr2:Number = radius * radius;
+
+        var n:int = _renderData.filteredCache.length;
+        var i:int;
+
+        for (i = n - 1; i >= 0; i--)
+        {
+            var v:Object= _renderData.filteredCache[i];
+            var dist:Number = (v.x  - x) * (v.x  - x) + (v.y - y) * (v.y - y);
+            if (dist <= minDist2)
+                minItems.push(v);
+        }
+
+		n = minItems.length;
+        for (i = 0; i < n; i++)
+        {
+            var item:PlotSeriesItem = minItems[i];
+            var hd:HitData = new HitData(createDataID(item.index),
+                                         Math.sqrt(minDist2),
+                                         item.x, item.y, item);
+            hd.dataTipFunction = formatDataTip;
+            var fill:IFill = PlotSeriesItem(hd.chartItem).fill;
+            hd.contextColor = GraphicsUtilities.colorFromFill(fill);
+            minItems[i] = hd;
+        }
+
+        return minItems;
+    }
+
+    /**
+     *  @private
+     */
+    override public function dataToLocal(... dataValues):Point
+    {
+        var data:Object = {};
+        var da:Array /* of Object */ = [ data ];
+        var n:int = dataValues.length;
+
+        if (n > 0)
+        {
+            data["d0"] = dataValues[0];
+            dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS).
+                mapCache(da, "d0", "v0");
+        }
+
+        if (n > 1)
+        {
+            data["d1"] = dataValues[1];
+            dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).
+                mapCache(da, "d1", "v1");
+        }
+
+        dataTransform.transformCache(da,"v0","s0","v1","s1");
+
+        return new Point(data.s0 + this.x,
+                         data.s1 + this.y);
+    }
+
+    /**
+     *  @private
+     */
+    override public function localToData(v:Point):Array /* of Object */
+    {
+        var values:Array /* of Object */ = dataTransform.invertTransform(
+                                            v.x - this.x,
+                                            v.y - this.y);
+        return values;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: Series
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function updateData():void
+    {
+        var renderDataType:Class = this.renderDataType;
+        _renderData = new renderDataType();
+
+        _renderData.cache = [];
+        var i:int = 0;
+        var itemType:Class = this.itemType;
+        if (cursor)
+        {
+            cursor.seek(CursorBookmark.FIRST);
+            while (!cursor.afterLast)
+            {
+                _renderData.cache[i] = new itemType(this, cursor.current, i);
+                i++;
+                cursor.moveNext();
+            }
+        }
+
+        cacheIndexValues(_xField, _renderData.cache, "xValue");
+        cacheDefaultValues(_yField, _renderData.cache, "yValue");
+
+		if(dataTransform && dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS) is NumericAxis &&
+			!(dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS) is DateTimeAxis) &&
+        	(dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS) as NumericAxis).direction == "inverted")
+        	_renderData.cache = reverseYValues(_renderData.cache);
+        if(dataTransform && dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS) is NumericAxis &&
+        	!(dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS) is DateTimeAxis) &&
+        	(dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS) as NumericAxis).direction == "inverted")
+        	_renderData.cache = reverseXValues(_renderData.cache);
+
+        super.updateData();
+
+        var radius:Number = getStyle("radius");
+
+        var n:int = _renderData.cache.length;
+        for (i = 0; i < n; i++)
+        {
+            _renderData.cache[i].radius = radius;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateMapping():void
+    {
+        dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS).mapCache(
+            _renderData.cache, "xValue", "xNumber", (_xField == ""));
+        dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).mapCache(
+            _renderData.cache, "yValue", "yNumber");
+
+        super.updateMapping();
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateFilter():void
+    {
+        _renderData.filteredCache = filterFunction(_renderData.cache);
+        super.updateFilter();
+    }
+
+    /**
+     *  @private
+     */
+    override protected function updateTransform():void
+    {
+        dataTransform.transformCache(
+            _renderData.filteredCache, "xNumber", "x", "yNumber", "y");
+
+        super.updateTransform();
+        allSeriesTransform = true;
+
+        if (chart && chart is CartesianChart)
+        {
+            var cChart:CartesianChart = CartesianChart(chart);
+            var n:int = cChart.series.length;
+
+            for (var i:int = 0; i < n; i++)
+            {
+                if (cChart.getSeriesTransformState(cChart.series[i]))
+                    allSeriesTransform = false;
+            }
+
+            n = cChart.secondSeries.length;
+            for (i = 0; i < n; i++)
+            {
+                if (cChart.getSeriesTransformState(cChart.secondSeries[i]))
+                    allSeriesTransform = false;
+            }
+            if (allSeriesTransform)
+                cChart.measureLabels();
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override public function getElementBounds(renderData:Object):void
+    {
+        var cache:Array /* of PlotSeriesItem */ = renderData.cache;
+        var rb:Array /* of Rectangle */ = [];
+        var sampleCount:int = cache.length;
+
+        if (sampleCount)
+        {
+            var radius:Number = renderData.radius;
+            var v:Object = cache[0];
+            var maxBounds:Rectangle = new Rectangle(v.x, v.x, 0, 0);
+
+            for (var i:int = 0; i < sampleCount; i++)
+            {
+                v = cache[i];
+
+                var b:Rectangle = new Rectangle(v.x - radius, v.y - radius,
+                                                2 * radius, 2 * radius);
+
+                maxBounds.left = Math.min(maxBounds.left, b.left);
+                maxBounds.top = Math.min(maxBounds.top, b.top);
+                maxBounds.right = Math.max(maxBounds.right, b.right);
+                maxBounds.bottom = Math.max(maxBounds.bottom, b.bottom);
+
+                rb[i] = b;
+            }
+        }
+        else
+        {
+            maxBounds = new Rectangle();
+        }
+
+        renderData.elementBounds = rb;
+        renderData.bounds =  maxBounds;
+    }
+
+    /**
+     *  @private
+     */
+    override public function beginInterpolation(sourceRenderData:Object,
+                                                destRenderData:Object):Object
+    {
+        var idata:Object = initializeInterpolationData(
+            sourceRenderData.cache, destRenderData.cache,
+            { x: true, y: true }, itemType);
+
+        var interpolationRenderData:PlotSeriesRenderData =
+            PlotSeriesRenderData(destRenderData.clone());
+
+        interpolationRenderData.cache = idata.cache;
+        interpolationRenderData.filteredCache = idata.cache;
+
+        transitionRenderData = interpolationRenderData;
+        return idata;
+    }
+
+    /**
+     *  @private
+     */
+    override protected function getMissingInterpolationValues(
+                                    sourceProps:Object, srcCache:Array /* of PlotSeriesItem */,
+                                    destProps:Object, destCache:Array /* of PlotSeriesItem */,
+                                    index:Number, customData:Object):void
+    {
+        for (var p:String in sourceProps)
+        {
+            var src:Number = sourceProps[p];
+            var dst:Number = destProps[p];
+
+            if (p == "x" || p == "y")
+            {
+                if (isNaN(src))
+                    src = dst;
+                if (isNaN(dst))
+                    dst = src;
+            }
+
+            sourceProps[p] = src;
+            destProps[p] = dst;
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override public function getItemsInRegion(r:Rectangle):Array /* of PlotSeriesItem */
+    {
+        if (interactive == false || !_renderData)
+            return [];
+
+        var arrItems:Array /* of PlotSeriesItem */ = [];
+        var localRectangle:Rectangle = new Rectangle();
+        var n:uint = _renderData.filteredCache.length;
+
+        localRectangle.topLeft = globalToLocal(r.topLeft);
+        localRectangle.bottomRight = globalToLocal(r.bottomRight);
+
+        for (var i:int = 0; i < n; i++)
+        {
+            var v:PlotSeriesItem = _renderData.filteredCache[i];
+
+            if (localRectangle.contains(v.x,v.y))
+                arrItems.push(v);
+        }
+        return arrItems;
+    }
+
+
+    /**
+     * @private
+     */
+    override protected function defaultFilterFunction(cache:Array /*of PlotSeriesItem */ ):Array /*of PlotSeriesItem*/
+    {
+    	var filteredCache:Array /*of PlotSeriesItem*/ = [];
+    	if (filterDataValues == "outsideRange")
+        {
+            filteredCache = cache.concat();
+
+            dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS).filterCache(
+                filteredCache, "xNumber", "xFilter");
+            dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).filterCache(
+                filteredCache, "yNumber", "yFilter");
+
+            stripNaNs(filteredCache, "yFilter");
+            stripNaNs(filteredCache, "xFilter");
+
+        }
+        else if (filterDataValues == "nulls")
+        {
+            filteredCache = cache.concat();
+
+            stripNaNs(filteredCache,"yNumber");
+            stripNaNs(filteredCache,"xNumber");
+        }
+        else if (filterDataValues == "none")
+        {
+            filteredCache = cache;
+        }
+        return filteredCache;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * @private
+     */
+    private function defaultFillFunction(element:PlotSeriesItem,i:Number):IFill
+    {
+        if (_fillCount!=0)
+        {
+          return(GraphicsUtilities.fillFromStyle(_localFills[i % _fillCount]));
+        }
+        else
+          return(GraphicsUtilities.fillFromStyle(getStyle("fill")));
+    }
+
+    /**
+     *  Customizes the item renderer instances that are used to represent the chart. This method is called automatically
+     *  whenever a new item renderer is needed while the chart is being rendered. You can override this method to add your own customization as necessary.
+     *  @param instance The new item renderer instance that is being created.
+     *  @param cache The InstanceCache that is used to manage the item renderer instances.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    protected function applyItemRendererProperties(instance:DisplayObject,
+                                               cache:InstanceCache):void
+    {
+        if (instance is ISimpleStyleClient)
+            ISimpleStyleClient(instance).styleName = this;
+    }
+
+    /**
+     *  @private
+     */
+    private function formatDataTip(hd:HitData):String
+    {
+        var dt:String = "";
+        var n:String = displayName;
+        if (n && n != "")
+            dt += "" + n + "
";
+
+        var xName:String = dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS).displayName;
+        if (xName != "")
+            dt += "" + xName+ ": ";
+        dt += dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS).formatForScreen(
+            PlotSeriesItem(hd.chartItem).xValue) + "\n";
+
+        var yName:String = dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).displayName;
+        if (yName != "")
+            dt += "" + yName + ": ";
+        dt += dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).formatForScreen(
+            PlotSeriesItem(hd.chartItem).yValue) + "\n";
+
+        return dt;
+    }
+
+    private function reverseYValues(cache:Array):Array
+    {
+    	var i:int = 0;
+        var n:int = cache.length;
+        for(i = 0; i < n ; i++)
+        {
+        	cache[i]["yValue"] = -(cache[i]["yValue"]);
+        }
+    	return cache;
+    }
+
+    private function reverseXValues(cache:Array):Array
+    {
+    	var i:int = 0;
+        var n:int = cache.length;
+        for(i = 0; i < n ; i++)
+        {
+        	cache[i]["xValue"] = -(cache[i]["xValue"]);
+        }
+    	return cache;
+    }
+}
+
+}


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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 10006
Author:   gruehle@adobe.com
Date:     2009-09-03T22:04:47.081899Z

Log Message:
-----------
Initial checkin of the "More styles for Spark skins" feature. Details here:
http://opensource.adobe.com/wiki/display/flexsdk/More+Styles+for+Spark+Skins

There are some known issues:
* Panel bottom corners not rounded correctly when the panel has a control bar
* cornerRadius on Tab and DateChooser non functional
* cornerRadius values > 4 have drawing artifacts in the "down" state of Button and button-like components
* TextInput/TextArea incorrectly list lineBreak and verticalAlign as valid styles

This checkin also includes a couple minor unrelated bug fixes:
* Remove MiniDebugTarget. This is a logging target that used MiniDebug, which hasn't worked since Flex 1.5
* Fix RTEs when setting focusSkin to null
* Optimization: don't measure skins if the host component has explicit sizes

QE notes: Yes, many baseline images will need to be regenerated
Doc notes: New ASDoc comments should be scrubbed
Bugs: SDK-22931, SDK-22798, SDK-22217, SDK-19358
Reviewer: Jason
Tests run: checkintests, cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperIncrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/PopUpButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/SparkChromeWindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/WindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/targets/MiniDebugTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperDecrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerDecrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatorContent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/BasicTests.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/EditableComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/SparkSkinForHalo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/TextInputBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerIncrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/halo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/PanelBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RectangularDropShadow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/BorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/NumericStepperTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/BorderTestScript.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ApplicationSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -72,6 +72,17 @@
 //--------------------------------------
 //  Styles
 //--------------------------------------
+
+/**
+ *  The background color of the application. This color is used as the stage color for the
+ *  application and the background color for the HTML embed tag.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+[Style(name="backgroundColor", type="uint", format="Color", inherit="no")]

 //--------------------------------------
 //  Excluded APIs
@@ -238,45 +249,6 @@
      * so that we can update it for runtime localization.
      */
     private var viewSourceCMI:ContextMenuItem;
-
-    //----------------------------------
-    //  backgroundColor
-    //----------------------------------
-
-    private var _backgroundColor:uint = 0xFFFFFF;
-
-    [Inspectable(category="General", format="Color", defaultValue="0xFFFFFF")]
-    [Bindable("backgroundColorUpdated")]
-
-    /**
-     *  Background color of a component.
-     *  This property specifies the background color, both while the application
-     *  loads, and while it is running.
-     *
-     *  @default 0xFFFFFF
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get backgroundColor():uint
-    {
-        return _backgroundColor;
-    }
-
-    /**
-     * @private
-     */
-    public function set backgroundColor(value:uint):void
-    {
-        if (value == _backgroundColor)
-            return;
-
-        _backgroundColor = value;
-
-        dispatchEvent(new Event("backgroundColorUpdated"));
-    }

     //----------------------------------
     //  colorCorrection


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

--- frameworks/projects/spark/src/spark/layouts/FormItemLayout.as
+++ frameworks/projects/spark/src/spark/layouts/FormItemLayout.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.layouts
 {


Alas, it was too good to be true, and I had to track down and debug something.
Damn actionscript. "for" vs "for each" and each one uses (bla in foo), which
is also a statement in itself. That and the optional semicolons. I bet
the parser for the compiler was fun to write.

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

--- src/as/com/threerings/util/Log.as
+++ src/as/com/threerings/util/Log.as
@@ -120,7 +120,7 @@
      */
     public static function setLevels (settingString :String) :void
     {
-        for (var module :String in settingString.split(";")) {
+        for each (var module :String in settingString.split(";")) {
             var setting :Array = module.split(":");
             _setLevels[setting[0]] = stringToLevel(String(setting[1]));
         }


change part colors to match java client /cc @kazimuth

--- src/battlecode/client/viewer/render/DrawMap.as
+++ src/battlecode/client/viewer/render/DrawMap.as
@@ -220,7 +220,7 @@
                     }

                     var density:Number = Math.max(.25, Math.min(1, parts[i][j] / 200));
-                    this.partsCanvas.graphics.beginFill(0xCC33CC, 0.7);
+                    this.partsCanvas.graphics.beginFill(0xF48F4B, 1);
                     this.partsCanvas.graphics.drawCircle(j * g + g / 2, i * g + g / 2, density * g / 2);
                     this.partsCanvas.graphics.endFill();
                 }


git-svn-id: http://svn.rails2u.com/as3rails2u/trunk@65 96db6a20-122f-0410-8d9f-89437bbe4005

--- src/com/rails2u/bridge/JSProxy.as
+++ src/com/rails2u/bridge/JSProxy.as
@@ -14,11 +14,6 @@
             _stack = stack || [];
         }

-        public function get _():JSProxy {
-            _nextCallIsstack = true;
-            return this;
-        }
-
         public function get proxy():JSProxy {
             return getProperty('proxy');
         }
@@ -28,28 +23,43 @@
         }

         flash_proxy override function callProperty(name:*, ...args):* {
-            if (_nextCallIsstack) {
-                _nextCallIsstack = false;
-                _stack.push([name, args]);
-                return this;
+            var $name:* = $check(name);
+            if ($name) {
+                return callJS(newStack($name, args));
             } else {
-                return callJS(newStack.apply(null, [name].concat(args)));
+                return new JSProxy(newStack(name, args));
+            }
+        }
+
+        flash_proxy function $check(name:*):* {
+            if (name.toString().indexOf('$') == 0 && name.toString().length >= 2) {
+                var r:String = name.toString().replace(/^\$+/, '');
+                if (name is QName) {
+                    return new QName(name.uri, r);
+                } else {
+                    return r;
+                }
+            } else {
+                return '';
             }
         }

         flash_proxy override function getProperty(name:*):* {
-            _nextCallIsstack = false;
-            return new JSProxy(newStack(name));
+            var $name:* = $check(name);
+            if ($name) {
+                return callJS(newStack($name));
+            } else {
+                return new JSProxy(newStack(name));
+            }
         }

         flash_proxy override function getDescendants(name:*):* {
-            _nextCallIsstack = false;
             return callJS(newStack(name));
         }

-        flash_proxy function newStack(name:*, ...args):Array {
+        flash_proxy function newStack(name:*, args:Array = null):Array {
             var stack:Array = _stack.slice();
-            if (args.length > 0) {
+            if (args != null) {
                 stack.push([name, args.slice()]);
             } else {
                 stack.push(name);
@@ -58,11 +68,10 @@
         }

         flash_proxy override function hasProperty(name:*):Boolean {
-            return false;
+            return callJS(newStack(new QName('', name))) !== undefined;
         }

         flash_proxy override function setProperty(name:*, value:*):void {
-            _nextCallIsstack = false;
             callJSSetProperty(newStack(name), value);
         }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/ContainerGlobals.as
+++ frameworks/projects/framework/src/mx/core/ContainerGlobals.as
@@ -0,0 +1,95 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+import flash.display.InteractiveObject;
+import mx.managers.IFocusManager;
+
+public class ContainerGlobals
+{
+    /**
+     *  @private
+     *  Internal variable that keeps track of the container
+     *  that currently has focus.
+     */
+    public static var focusedContainer:InteractiveObject;
+
+	/**
+     *  @private
+     *  Support for defaultButton.
+     */
+    public static function checkFocus(oldObj:InteractiveObject,
+                                           newObj:InteractiveObject):void
+    {
+        var objParent:InteractiveObject = newObj;
+        var currObj:InteractiveObject = newObj;
+        var lastUIComp:IUIComponent = null;
+
+        if (newObj != null && oldObj == newObj)
+            return;
+
+        // Find the Container parent with a defaultButton defined.
+        while (currObj)
+        {
+            if (currObj.parent)
+            {
+                objParent = currObj.parent;
+            }
+            else
+            {
+                objParent = null;
+            }
+
+            if (currObj is IUIComponent)
+                lastUIComp = IUIComponent(currObj);
+
+            currObj = objParent;
+
+            if (currObj &&
+                currObj is IContainer && IContainer(currObj).defaultButton)
+            {
+                break;
+            }
+        }
+
+        if (ContainerGlobals.focusedContainer != currObj ||
+        	(ContainerGlobals.focusedContainer == null && currObj == null))
+        {
+            if (!currObj)
+                currObj = InteractiveObject(lastUIComp);
+
+            if (currObj && currObj is IContainer)
+            {
+                var fm:IFocusManager = IContainer(currObj).focusManager;
+				if (!fm)
+					return;
+                var defButton:IButton = IContainer(currObj).defaultButton as IButton;
+                if (defButton)
+                {
+                    ContainerGlobals.focusedContainer = InteractiveObject(currObj);
+                    fm.defaultButton = defButton as IButton;
+                }
+                else
+                {
+                    ContainerGlobals.focusedContainer = InteractiveObject(currObj);
+                    fm.defaultButton = null;
+                }
+            }
+        }
+    }
+
+
+}
+
+}
+


Fixes to connection error handling.

Fixes to connection error handling.

This is what happens when one of your dev environments refuses to run
your tests because RSLs fail verification for no apparent reason even
though you've turned that off (for development) like five different
ways. Thanks a lot, Adobe.

--- driver/src/main/flex/org/postgresql/febe/FEBEConnection.as
+++ driver/src/main/flex/org/postgresql/febe/FEBEConnection.as
@@ -130,7 +130,7 @@
         }

         private function send(msg:IFEMessage):void {
-            if (_connected || (_connecting && msg is StartupMessage)) {
+            if (_connected || (_connecting && (msg is StartupMessage || msg is PasswordMessage))) {
                 try {
                     _stream.send(msg);
                 } catch (e:Error) {
@@ -338,7 +338,7 @@
         }

         private function handleStreamError(e:MessageStreamErrorEvent):void {
-            _connected = false;
+            close();
             _connHandler.handleStreamError(new Error("Error event: " + e.text));
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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:
--------------
147 paths were modified

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

--- frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLEncoder.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLEncoder.as
@@ -19,6 +19,11 @@
 /**
  * The SimpleXMLEncoder class takes ActionScript Objects and encodes them to XML
  * using default serialization.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class SimpleXMLEncoder
 {
@@ -114,6 +119,11 @@
      *
      * @param parentNode An XMLNode under which to put the encoded
      * value.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function encodeValue(obj:Object, qname:QName, parentNode:XMLNode):XMLNode
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3109
Author:   hmuller@adobe.com
Date:     2008-09-05T04:22:32.753328Z

Log Message:
-----------
Substantially revised the Scroller component.  This version supports
the vertical,horizontalScrollPolicy properties (as in Halo) and no
longer includes a vestigal "viewportHolder" skin part.  Layout is
now handled programatically, instead of with MXML constraints.

There are still some limitations for the "auto" scroll policies, and
some other minor layout problems.  There is no documentation (yet).

Corrected minimum size calculation in Vertical,HorizontalLayout
for the cases where an explicit rowCount or columnCount was specified.
The measured min sizes are now only based on the first rowCount
or columnCount (visible) layout items.

QE: Scroller can now be tested
Doc: No
Checkintests: Pass
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/intf/IViewport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ScrollerSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -12,9 +12,11 @@

 package flex.component
 {
-	import flex.core.SkinnableComponent;
-	import flex.core.Group;
-	import flex.intf.IViewport;
+import flex.core.SkinnableComponent;
+import flex.core.Group;
+import flex.intf.IViewport;
+import mx.events.PropertyChangeEvent;
+import mx.core.ScrollPolicy;

 [DefaultProperty("viewport")]
@@ -41,6 +43,20 @@
     //--------------------------------------------------------------------------

     //----------------------------------
+    //  horizontalScrollBar
+    //----------------------------------
+
+    [SkinPart]
+    public var horizontalScrollBar:HScrollBar;
+
+    //----------------------------------
+    //  verticalScrollBar
+    //----------------------------------
+
+    [SkinPart]
+    public var verticalScrollBar:VScrollBar;
+
+    //----------------------------------
     //  viewport - default property
     //----------------------------------

@@ -57,19 +73,145 @@
     {
         if (value == _viewport)
             return;
+        uninstallViewport();
         _viewport = value;
         installViewport();
     }
-
+
     private function installViewport():void
     {
-        if (viewportHolder)
-        {
-            if (viewportHolder.numItems > 0)     // remove the old viewport
-        	   viewportHolder.removeItemAt(0);
-        	if (_viewport)                       // add the new viewport
-        	   viewportHolder.addItemAt(_viewport, 0);
-        }
+        if (skinObject && viewport)
+        {
+            skinObject.addItemAt(viewport, 0);
+            viewport.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
+        }
+
+    }
+
+    private function uninstallViewport():void
+    {
+    	if (skinObject && viewport)
+    	{
+    		skinObject.removeItem(viewport);
+    		viewport.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
+    	}
+    }
+
+    //----------------------------------
+    //  verticalScrollPolicy
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _verticalScrollPolicy:String = ScrollPolicy.AUTO;
+
+    /**
+     *  Documentation is not currently available.
+     */
+    public function get verticalScrollPolicy():String
+    {
+        return _verticalScrollPolicy;
+    }
+
+    /**
+     *  @private
+     */
+    public function set verticalScrollPolicy(value:String):void
+    {
+        if (value == _verticalScrollPolicy)
+            return;
+
+        _verticalScrollPolicy = value;
+        if (skinObject)
+        {
+            skinObject.invalidateSize();
+            skinObject.invalidateDisplayList();
+        }
+    }
+
+
+    //----------------------------------
+    //  horizontalScrollPolicy
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _horizontalScrollPolicy:String = ScrollPolicy.AUTO;
+
+    /**
+     *  Documentation is not currently available.
+     */
+    public function get horizontalScrollPolicy():String
+    {
+        return _horizontalScrollPolicy;
+    }
+
+    /**
+     *  @private
+     */
+    public function set horizontalScrollPolicy(value:String):void
+    {
+        if (value == _horizontalScrollPolicy)
+            return;
+
+        _horizontalScrollPolicy = value;
+        if (skinObject)
+        {
+        	skinObject.invalidateSize();
+            skinObject.invalidateDisplayList();
+        }
+    }
+
+
+    //--------------------------------------------------------------------------
+    //
+    // Event Handlers
+    //
+    //--------------------------------------------------------------------------
+
+    protected function vsb_valueCommitHandler(event:Event):void
+    {
+        if (viewport)
+            viewport.verticalScrollPosition = verticalScrollBar.value;
+    }
+
+    protected function hsb_valueCommitHandler(event:Event):void
+    {
+    	if (viewport)
+    	   viewport.horizontalScrollPosition = horizontalScrollBar.value;
+    }
+
+    private function viewport_propertyChangeHandler(event:PropertyChangeEvent):void
+    {
+    	switch(event.property) {
+    		case "contentWidth":
+    		    viewportContentWidthChanged(event);
+    		    break;
+
+    		case "contentHeight":
+    		    viewportContentHeightChanged(event);
+    		    break;
+    	}
+    }
+
+    protected function viewportContentWidthChanged(event:PropertyChangeEvent):void
+    {
+        if (skinObject)
+        {
+        	skinObject.invalidateSize()
+            skinObject.invalidateDisplayList();
+        }
+    }
+
+    protected function viewportContentHeightChanged(event:PropertyChangeEvent):void
+    {
+    	if (skinObject)
+    	{
+    		skinObject.invalidateSize();
+            skinObject.invalidateDisplayList();
+    	}
     }

     //--------------------------------------------------------------------------
@@ -78,27 +220,59 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  @private
+     */
+    override protected function skinLoaded():void
+    {
+        super.skinLoaded();
+        installViewport();
+    }
+
+    /**
+     *  @private
+     */
+    override protected function unloadingSkin():void
+    {
+        super.unloadingSkin();
+        uninstallViewport();
+    }
+
+    /**
+     *  @private
+     */
     override protected function partAdded(partName:String, instance:*):void
     {
-    	super.partAdded(partName, instance);
-    	if (instance == viewportHolder)
-    	    installViewport();
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    // SkinParts
-    //
-    //--------------------------------------------------------------------------
-
-    [SkinPart]
-    public var viewportHolder:Group;
-
-    [SkinPart]
-    public var verticalScrollBar:VScrollBar;
-
-    [SkinPart]
-    public var horizontalScrollBar:HScrollBar;
+        super.partAdded(partName, instance);
+
+        if (instance == verticalScrollBar)
+        {
+        	verticalScrollBar.addEventListener("valueCommit", vsb_valueCommitHandler);
+        }
+
+        if (instance == horizontalScrollBar)
+        {
+            horizontalScrollBar.addEventListener("valueCommit", hsb_valueCommitHandler);
+        }
+    }
+
+    /**
+     *  @private
+     */
+    override protected function partRemoved(partName:String, instance:*):void
+    {
+        super.partRemoved(partName, instance);
+
+        if (instance == verticalScrollBar)
+        {
+            verticalScrollBar.removeEventListener("valueCommit", vsb_valueCommitHandler);
+        }
+
+        if (instance == horizontalScrollBar)
+        {
+            horizontalScrollBar.removeEventListener("valueCommit", hsb_valueCommitHandler);
+        }
+    }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 11144
Author:   cframpto@adobe.com
Date:     2009-10-26T14:21:48.483377Z

Log Message:
-----------
Add support for lineBreak and verticalAlign styles to TextArea.  The TextAreaSkin will push the styles down to RET.

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -83,13 +83,6 @@
  *  @productversion Flex 4
  */
 [SkinState("disabled")]
-
-//--------------------------------------
-//  Excluded APIs
-//--------------------------------------
-
-[Exclude(name="verticalAlign", kind="style")]
-[Exclude(name="lineBreak", kind="style")]

 //--------------------------------------
 //  Other metadata


Transferred from the Adobe Open Source Subversion Repository

Revision: 6122
Author:   chaase@adobe.com
Date:     2009-04-10T14:30:17.762458Z

Log Message:
-----------
Various refactorings/renamings/changes from effects PARB review.

QE Notes: mx/effects and spark/effects currently broken (and disabled) due to these API changes. Matt is fixing.
Doc Notes: None
Bugs:
Reviewer: Hans
tests: checkintests, mustella tests/ListDataEffects

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformMove.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EaseInOut.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/EasingFraction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EffectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/TweenEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Animate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/RepeatBehavior.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/flex4/src/spark/effects/interpolation/NumberArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformScale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Animate3DInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as" copyfrom-rev="5944" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/SimpleMotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateColorInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateShaderTransitionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/Rotate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/events/AnimationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/IEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/RotateInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/ResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/MotionPath.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimationProperty.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/MoveInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransformRotate.as</path>

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

--- frameworks/projects/spark/src/spark/effects/easing/Sine.as
+++ frameworks/projects/spark/src/spark/effects/easing/Sine.as
@@ -20,7 +20,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class Sine extends EaseInOut
+public class Sine extends EaseInOutBase
 {
     /**
      * Constructs a Sine instance with an optional


FEC-125 #comment support widevine mbr #time 1d

--- plugins/wvPlugin/src/WvMediator.as
+++ plugins/wvPlugin/src/WvMediator.as
@@ -148,7 +148,7 @@

 						}
 					}
-
+
 					break;

 				case NotificationType.PLAYER_UPDATE_PLAYHEAD:
@@ -209,13 +209,26 @@
 					break;

 				case NotificationType.DO_SWITCH:
-					if (_isWv)
+					if (_isWv && _mediaProxy.vo.forceDynamicStream)
 					{
 						var preferedFlavorBR:int = int(note.getBody());
-						var index:int = _mediaProxy.getFlavorByBitrate(preferedFlavorBR);
-						//index is zero based, track is not
-						index++;
-						trace ("--select track ", index);
+						var index:int;
+
+						if (preferedFlavorBR==-1)
+						{
+							index = 0;
+							_mediaProxy.vo.autoSwitchFlavors = true;
+						}
+						else
+						{
+							//index is zero based, track is not
+							 index = _mediaProxy.getFlavorByBitrate(preferedFlavorBR) + 1;
+							 //if player was asked to turn auto off we will receive same stream index
+							 if (_wvPluginInfo.wvMediaElement.netStream.getCurrentQualityLevel() == index)
+								  index=1;
+							 _mediaProxy.vo.autoSwitchFlavors = false;
+						}
+
 						_wvPluginInfo.wvMediaElement.netStream.selectTrack(index);
 						sendNotification( NotificationType.SWITCHING_CHANGE_STARTED, {currentIndex : String(index)});
 					}
@@ -228,10 +241,17 @@
 						(_mediaProxy.vo.kalturaMediaFlavorArray[0] is KalturaWidevineFlavorAsset))
 					{
 						_isWv = true;
-						_mediaProxy.vo.forceDynamicStream = true;
-						_mediaProxy.vo.preferedFlavorBR = _mediaProxy.vo.kalturaMediaFlavorArray[0].bitrate;
-						//to fix flavor combo box, re-trigger the setter
-						_mediaProxy.vo.kalturaMediaFlavorArray = _mediaProxy.vo.kalturaMediaFlavorArray.concat();
+						//TODO: add condition to do this only when the asset is marked with "widevine_mbr"
+						if (_mediaProxy.vo.kalturaMediaFlavorArray.length == 1)
+						{
+							_mediaProxy.vo.forceDynamicStream = true;
+							_mediaProxy.vo.kalturaMediaFlavorArray = null;
+							// disable flavor selector until we receive bitrates from wv netstream
+							setTimeout(function():void {sendNotification(NotificationType.SWITCHING_CHANGE_STARTED, {newIndex: -1});}, 1);
+						}
+						//if more than one wvm flavor, don't use the stream packaged bitrates
+						else
+							_mediaProxy.vo.forceDynamicStream = false;
 					}
 					else
 					{
@@ -339,17 +359,32 @@

 				case "NetStream.Wv.SwitchUp":
 				case "NetStream.Wv.SwitchDown":
-					var detailsArr:Array = (e.info.details as String).split(":");
-					if (detailsArr && detailsArr.length)
-					{
-						var indx:int = parseInt(detailsArr[1]);
-						if (_mediaProxy.vo.kalturaMediaFlavorArray.length > indx) {
-							_mediaProxy.vo.preferedFlavorBR = _mediaProxy.vo.kalturaMediaFlavorArray[indx].bitrate
-							sendNotification( NotificationType.SWITCHING_CHANGE_COMPLETE, {newIndex : detailsArr[1], newBitrate: _mediaProxy.vo.preferedFlavorBR }  );
-						}
-
-					}
-					break;
+					_wvPluginInfo.wvMediaElement.netStream.parseTransitionMsg(e.info.details);
+					//first time we get bitrates info - save it to kalturaflavorarray
+					if (_mediaProxy.vo.forceDynamicStream && !_mediaProxy.vo.kalturaMediaFlavorArray)
+					{
+
+						var bitrates:Array = _wvPluginInfo.wvMediaElement.netStream.getBitrates();
+						if (bitrates)
+						{
+							var flvArray:Array = new Array();
+							for (var i:int = 0; i<bitrates.length; i++)
+							{
+								var fa : KalturaFlavorAsset = new KalturaFlavorAsset();
+								fa.bitrate = bitrates[i] * 8 / 1024;
+								flvArray.push(fa);
+							}
+							_mediaProxy.vo.kalturaMediaFlavorArray = flvArray;
+						}
+						_mediaProxy.vo.autoSwitchFlavors = true;
+					}
+
+
+					var newIndx:int = _wvPluginInfo.wvMediaElement.netStream.getCurrentQualityLevel() - 1;
+					_mediaProxy.vo.preferedFlavorBR = _mediaProxy.vo.kalturaMediaFlavorArray[newIndx].bitrate;
+					sendNotification( NotificationType.SWITCHING_CHANGE_COMPLETE, {newIndex : newIndx , newBitrate: _mediaProxy.vo.preferedFlavorBR}  );
+					break;
+

 				/*	case "NetStream.Buffer.Empty":

@@ -363,9 +398,7 @@

 				break;

-				case "NetStream.Play.Start" :
-
-				break;
+

 				case "NetStream.Wv.EmmSuccess":


Transferred from the Adobe Open Source Subversion Repository

Revision: 14900
Author:   deeptika@adobe.com
Date:     2010-03-22T11:02:50.703900Z

Log Message:
-----------
Merging revision 14899 from 4.x branch

Setting ChartLabel's layoutDirection to LTR always, as it is similar to TextBase / RichEditableText etc.. that are mentioned on the LayoutMirroring spec.

Also using newly added LayoutDirection constants file.

QE notes:
Doc notes:
Bugs: FLEXDMV-2361 ([Mirroring] Axis titles are inverted and unreadable when layoutDirection is rtl)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/series/BarSeries.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/chartClasses/ChartBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/chartClasses/ChartLabel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/series/ColumnSeries.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/charts/series/PieSeries.as</path>

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/ChartLabel.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/ChartLabel.as
@@ -14,14 +14,16 @@

 import flash.display.*;
 import flash.geom.*;
+
 import mx.charts.AxisLabel;
 import mx.charts.AxisRenderer;
 import mx.core.FlexBitmap;
 import mx.core.IDataRenderer;
 import mx.core.IUITextField;
-import mx.core.mx_internal;
+import mx.core.LayoutDirection;
 import mx.core.UIComponent;
 import mx.core.UITextField;
+import mx.core.mx_internal;

 use namespace mx_internal;

@@ -71,6 +73,7 @@
 	{
 		super();
 		this.includeInLayout = false;
+		this.layoutDirection = LayoutDirection.LTR;
 	}

 	//--------------------------------------------------------------------------
@@ -235,7 +238,8 @@
 		if (parent && parent is AxisRenderer && parent.rotation == 90 && _label.embedFonts == true)
 		{
 			var p:AxisRenderer = AxisRenderer(parent);
-			if (p.getStyle('verticalAxisTitleAlignment') == 'vertical')
+			if ((p.getStyle('verticalAxisTitleAlignment') == 'vertical' && p.layoutDirection == LayoutDirection.LTR) ||
+				(p.getStyle('verticalAxisTitleAlignment') == 'flippedVertical' && p.layoutDirection == LayoutDirection.RTL))
 			{
 				_label.rotation = 180;
 				_label.y = _label.y + _label.height;
@@ -301,14 +305,14 @@
 			if (parent && parent.rotation == 90 && parent is AxisRenderer)
 			{
 				p = AxisRenderer(parent);
-				if (p.getStyle('verticalAxisTitleAlignment')=="vertical")
+				if((p.getStyle('verticalAxisTitleAlignment')=="vertical" && p.layoutDirection == LayoutDirection.LTR) ||
+					(p.getStyle('verticalAxisTitleAlignment') == 'flippedVertical' && p.layoutDirection == LayoutDirection.RTL))
 				{
 					_bitmap.rotation = 180;
 					_bitmap.y = _label.x + _bitmap.height;
 					_bitmap.x = _label.y + _bitmap.width;
 				}
-			}
-
+			}
 		}
 	}
 }


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

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

 package mx.managers
 {


backporting changes to WeavePromise

backporting changes to WeavePromise

--- WeaveCore/src/weave/utils/WeavePromise.as
+++ WeaveCore/src/weave/utils/WeavePromise.as
@@ -148,16 +148,24 @@
 			if (handlers.length == 0 && error !== undefined)
 				reportError(error);

+			var shouldCallLater:Boolean = false;
+
 			for (var i:int = 0; i < handlers.length; i++)
 			{
 				var handler:Handler = handlers[i];
-				if (newHandlersOnly && handler.wasCalled)
+				if (newHandlersOnly != handler.isNew)
+				{
+					shouldCallLater = handler.isNew;
 					continue;
+				}
 				if (result !== undefined)
 					handler.onResult(result);
 				else if (error !== undefined)
 					handler.onError(error);
 			}
+
+			if (shouldCallLater)
+				WeaveAPI.StageUtils.callLater(relevantContext, callHandlers, [true]);
 		}

 		public function then(onFulfilled:Function = null, onRejected:Function = null):WeavePromise
@@ -175,10 +183,7 @@

 			// call new handler(s) if promise has already been resolved
 			if (result !== undefined || error !== undefined)
-			{
-				// callLater will not call the function if the context was disposed
 				WeaveAPI.StageUtils.callLater(relevantContext, callHandlers, [true]);
-			}

 			return next;
 		}
@@ -261,7 +266,7 @@

 	public function onResult(result:Object):void
 	{
-		wasCalled = true;
+		isNew = true;
 		try
 		{
 			next.setResult(onFulfilled(result));
@@ -274,10 +279,10 @@

 	public function onError(error:Object):void
 	{
-		wasCalled = true;
+		isNew = true;
 		try
 		{
-			next.setError(onRejected(error));
+			next.setResult(onRejected(error));
 		}
 		catch (e:Error)
 		{
@@ -286,7 +291,7 @@
 	}

 	/**
-	 * Used as a flag to indicate whether or not this handler has been called
+	 * Used as a flag to indicate that this handler has not been called yet
 	 */
-	public var wasCalled:Boolean = false;
+	public var isNew:Boolean = true;
 }


Whoops! Forgot to wire one of the new functions up!

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

--- src/as/com/threerings/ezgame/client/GameControlBackend.as
+++ src/as/com/threerings/ezgame/client/GameControlBackend.as
@@ -150,6 +150,7 @@
         o["endTurn_v2"] = endTurn_v2;
         o["endGame_v2"] = endGame_v2;
         o["getTurnHolder_v1"] = getTurnHolder_v1;
+        o["getOccupantName_v1"] = getOccupantName_v1;
         o["getPlayers_v1"] = getPlayers_v1;
     }


AIROptionsParser: fixed typo in win32 (was win3d)

--- src/com/nextgenactionscript/asconfigc/AIROptionsParser.as
+++ src/com/nextgenactionscript/asconfigc/AIROptionsParser.as
@@ -52,7 +52,7 @@
 					{
 						parseSigningOptions(options[AIRPlatformType.MAC][AIROptions.SIGNING_OPTIONS], debug, result);
 					}
-					else if(process.platform === "win3d" &&
+					else if(process.platform === "win32" &&
 						overridesOptionForPlatform(options, AIROptions.SIGNING_OPTIONS, AIRPlatformType.WINDOWS))
 					{
 						parseSigningOptions(options[AIRPlatformType.WINDOWS][AIROptions.SIGNING_OPTIONS], debug, result);


Fixed a few bugs with Draw.rect() not ignoring the most significant (alpha) bytes of color.

--- net/flashpunk/utils/Draw.as
+++ net/flashpunk/utils/Draw.as
@@ -271,7 +271,7 @@
 		{
 			if (outline)
 			{
-				if (color < 0xFF000000) color += 0xFF000000;
+				if (color < 0xFF000000) color = 0xFF000000 | color;
 				var x:int = e.x - e.originX - _camera.x,
 					y:int = e.y - e.originY - _camera.y;
 				_rect.x = x;
@@ -289,9 +289,9 @@
 				_target.fillRect(_rect, color);
 				return;
 			}
-			if (alpha >= 1)
-			{
-				if (color < 0xFF000000) color += 0xFF000000;
+			if (alpha >= 1 && !blend)
+			{
+				if (color < 0xFF000000) color = 0xFF000000 | color;
 				_rect.x = e.x - e.originX - _camera.x;
 				_rect.y = e.y - e.originY - _camera.y;
 				_rect.width = e.width;
@@ -299,6 +299,7 @@
 				_target.fillRect(_rect, color);
 				return;
 			}
+			if (color >= 0xFF000000) color = 0xFFFFFF & color;
 			_graphics.clear();
 			_graphics.beginFill(color, alpha);
 			_graphics.drawRect(e.x - e.originX - _camera.x, e.y - e.originY - _camera.y, e.width, e.height);


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

--- frameworks/projects/mx/src/mx/events/ListEventReason.as
+++ frameworks/projects/mx/src/mx/events/ListEventReason.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006 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.
 //
 ////////////////////////////////////////////////////////////////////////////////