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

--- frameworks/projects/charts/src/mx/charts/series/BubbleSeries.as
+++ frameworks/projects/charts/src/mx/charts/series/BubbleSeries.as
@@ -0,0 +1,1546 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.Point;
+import flash.geom.Rectangle;
+
+import mx.charts.BubbleChart;
+import mx.charts.DateTimeAxis;
+import mx.charts.HitData;
+import mx.charts.chartClasses.BoundedValue;
+import mx.charts.chartClasses.CartesianChart;
+import mx.charts.chartClasses.CartesianTransform;
+import mx.charts.chartClasses.DataDescription;
+import mx.charts.chartClasses.GraphicsUtilities;
+import mx.charts.chartClasses.IAxis;
+import mx.charts.chartClasses.InstanceCache;
+import mx.charts.chartClasses.LegendData;
+import mx.charts.chartClasses.NumericAxis;
+import mx.charts.chartClasses.Series;
+import mx.charts.renderers.CircleItemRenderer;
+import mx.charts.series.items.BubbleSeriesItem;
+import mx.charts.series.renderData.BubbleSeriesRenderData;
+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.SolidColor;
+import mx.graphics.Stroke;
+import mx.styles.CSSStyleDeclaration;
+import mx.styles.ISimpleStyleClient;
+import mx.core.IFlexModuleFactory;
+
+use namespace mx_internal;
+
+include "../styles/metadata/FillStrokeStyles.as"
+include "../styles/metadata/ItemRendererStyles.as"
+
+/**
+ *  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:
+ *

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

+ *

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

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

+ *

+ *
+ *

+ *  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")]
+
+
+/**
+ *  Defines a data series for a BubbleChart control. The default itemRenderer is the CircleRenderer class.
+ *  Optionally, you can define an itemRenderer for the
+ *  data series. The itemRenderer must implement the IDataRenderer interface.
+ *
+ *  @mxml
+ *

+ *  The <mx:BubbleSeries> tag inherits all the properties of its parent classes, and
+ *  the following properties:
+ *

+ *

+ *  <mx:BubbleSeries
+ *    Properties
+ *    fillFunction="Internal fill function"
+ *    horizontalAxis="No default"
+ *    itemType="No default"
+ *    legendData="No default"
+ *    maxRadius="50"
+ *    minRadius="0"
+ *    radiusAxis="No default"
+ *    radiusField="No default"
+ *    renderData="No default"
+ *    renderDataType="No default"
+ *    verticalAxis="No default"
+ *    xField="null"
+ *    yField="null"
+ *
+ *    Styles
+ *    fill="IFill; no default"
+ *    fills="IFill; no default"
+ *    itemRenderer="itemRenderer"
+ *    legendMarkerRenderer="Defaults to series's itemRenderer"
+ *    stroke="IStroke; no default"
+ *  />
+ *

+ *
+ *  @see mx.charts.BubbleChart
+ *
+ *  @includeExample ../examples/BubbleChartExample.mxml
+ *
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class BubbleSeries extends Series
+{
+    include "../../core/Version.as";
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class initialization
+    //
+    //--------------------------------------------------------------------------
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  The type of radius axis.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const RADIUS_AXIS:String = "bubbleRadius";
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function BubbleSeries()
+    {
+        super();
+
+        _instanceCache = new InstanceCache(null,this);
+        _instanceCache.creationCallback = applyItemRendererProperties;
+
+        dataTransform = new CartesianTransform();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var _moduleFactoryInitialized:Boolean = false;
+
+	/**
+	 *  @private
+	 */
+    private var _renderData:BubbleSeriesRenderData;
+
+	/**
+	 *  @private
+	 */
+    private var _instanceCache:InstanceCache;
+
+    /**
+     *  @private
+     */
+    private var _localFills:Array /* of IFill */;
+
+
+    /**
+     *  @private
+     */
+    private var _fillCount:int;
+
+    //--------------------------------------------------------------------------
+    //
+    // Overridden Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //-------------------------
+    // items
+    //-------------------------
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function get items():Array /* of BubbleSeriesItem */
+    {
+        return (_renderData)? _renderData.filteredCache : null;
+    }
+
+    //-----------------------------
+    // legendData
+    //-----------------------------
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    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.label = displayName;
+        ld.aspectRatio = 1;
+
+        return [ld];
+
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  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.
+     *

+     *
+     *
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:BubbleSeriesItem = BubbleSeriesItem(item);
+     *      if (curItem.zNumber > 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 BubbleSeriesItem;
+    }
+
+    //----------------------------------
+    //  maxRadius
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The radius of the largest item renderered in this series. When you use a BubbleSeries object in a BubbleChart,
+     *  the chart automatically assigns its maxRadius style value to this property
+     *  on all series in the chart. When you use BubbleSeries objects in CartesianChart controls, you manage this property manually.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var maxRadius:Number = 50;
+
+    //----------------------------------
+    //  minRadius
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The radius of the smallest item renderered in this series. When you use a BubbleSeries object in a BubbleChart, the chart automatically assigns its minRadius style value to this property
+     *  on all series in the chart. When you use BubbleSeries objects in CartesianChart controls, you manage this property manually.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var minRadius:Number = 0;
+
+    //----------------------------------
+    //  radiusAxis
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the radiusAxis property.
+     */
+    private var _radiusAxis:IAxis;
+
+    [Inspectable(category="Data")]
+
+    /**
+     *  The axis the bubble radius is mapped against.
+     *  Bubble charts treat the size of the individual bubbles
+     *  as a third dimension of data which is transformed
+     *  in a similar manner to how x and y position is transformed.
+     *  By default, the radiusAxis is a LinearAxis
+     *  with the autoAdjust property set to false.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get radiusAxis():IAxis
+    {
+        return _radiusAxis;
+    }
+
+    /**
+     *  @private
+     */
+    public function set radiusAxis(value:IAxis):void
+    {
+        _radiusAxis = value;
+        _bAxesDirty = true;
+
+        invalidateData();
+        invalidateProperties();
+    }
+
+    //----------------------------------
+    //  radiusField
+    //----------------------------------
+
+    private var _radiusField:String = "";
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Specifies the field of the data provider that determines the radius of each symbol, relative to the other
+     *  data points in the chart.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get radiusField():String
+    {
+        return _radiusField;
+    }
+
+    /**
+     *  @private
+     */
+    public function set radiusField(value:String):void
+    {
+        _radiusField = value;
+
+        dataChanged();
+    }
+
+    //----------------------------------
+    //  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 BubbleSeriesRenderData;
+    }
+
+        private var _bAxesDirty:Boolean = false;
+
+    //----------------------------------
+    //  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 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 that they appear in the data provider.
+     *
+     *  @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 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 BubbleSeries assumes that the data provider is an Array of numbers,
+     *  and uses the numbers as values for the data points.
+     *
+     *  @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
+    //
+    //--------------------------------------------------------------------------
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: UIComponent
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private function initStyles():Boolean
+	{
+		HaloDefaults.init(styleManager);
+
+		var seriesStyle:CSSStyleDeclaration =
+			HaloDefaults.createSelector("mx.charts.series.BubbleSeries", styleManager);
+
+		seriesStyle.defaultFactory = function():void
+		{
+			this.fill = new SolidColor(0x444444);
+			this.fills = [];
+			this.itemRenderer = new ClassFactory(CircleItemRenderer);
+			this.stroke = new Stroke(0, 1, 0.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);
+            }
+
+            if (_radiusAxis)
+            {
+                _radiusAxis.chartDataProvider = dataProvider;
+                CartesianTransform(dataTransform).setAxis(RADIUS_AXIS, radiusAxis);
+            }
+        }
+
+        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);
+            }
+
+            if (!_radiusAxis)
+            {
+                if (c is BubbleChart)
+                {
+                    if (c.secondSeries.indexOf(this) != -1 && (c as BubbleChart).secondRadiusAxis)
+                    {
+                        if (dataTransform.axes[RADIUS_AXIS] != (c as BubbleChart).secondRadiusAxis)
+                            dataTransform.setAxis(RADIUS_AXIS, (c as BubbleChart).secondRadiusAxis);
+                    }
+                    else if (dataTransform.axes[RADIUS_AXIS] != (c as BubbleChart).radiusAxis)
+                            dataTransform.setAxis(RADIUS_AXIS, (c as BubbleChart).radiusAxis);
+                }
+            }
+        }
+        dataTransform.elements = [this];
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function updateData():void
+    {
+        var renderDataType:Class = this.renderDataType;
+        _renderData= new renderDataType();
+
+        _renderData.cache = [];
+
+        var i:uint = 0;
+        var itemClass:Class = itemType;
+
+        if (cursor)
+        {
+            cursor.seek(CursorBookmark.FIRST);
+            while (!cursor.afterLast)
+            {
+                _renderData.cache[i] = new itemClass(this,cursor.current,i);
+                i++;
+                cursor.moveNext();
+            }
+        }
+
+
+        cacheIndexValues(_xField,_renderData.cache,"xValue");
+        cacheDefaultValues(_yField,_renderData.cache,"yValue");
+        cacheNamedValues(_radiusField,_renderData.cache,"zValue");
+
+		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);
+        /*if(dataTransform && dataTransform.getAxis(BubbleSeries.RADIUS_AXIS) is NumericAxis &&
+        	(dataTransform.getAxis(BubbleSeries.RADIUS_AXIS) as NumericAxis).direction == "inverted")
+        	_renderData.cache = reverseZValues(_renderData.cache);*/
+        super.updateData();
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    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");
+        dataTransform.getAxis(BubbleSeries.RADIUS_AXIS).mapCache(_renderData.cache,"zValue","zNumber");
+
+
+       // _renderData.cache.sortOn("zNumber",Array.NUMERIC | Array.DESCENDING);
+        super.updateMapping();
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function updateFilter():void
+    {
+        _renderData.filteredCache = filterFunction(_renderData.cache);
+        super.updateFilter();
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function updateTransform():void
+    {
+        dataTransform.transformCache(_renderData.filteredCache,"xNumber","x","yNumber","y");
+        dataTransform.getAxis(BubbleSeries.RADIUS_AXIS).transformCache(_renderData.filteredCache,"zNumber","z");
+        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();
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        var g:Graphics = graphics;
+        g.clear();
+
+        var renderData:BubbleSeriesRenderData = (transitionRenderData)? BubbleSeriesRenderData(transitionRenderData):_renderData;
+
+        if (!renderData)
+            return;
+
+        var renderCache:Array /* of BubbleSeriesItem */ = renderData.filteredCache;
+
+
+        var sampleCount:uint = renderCache.length;
+        var i:uint;
+        var instances:Array /* of IFlexDisplayObject */;
+        var inst:IFlexDisplayObject;
+        var rc:Rectangle;
+        var v:BubbleSeriesItem;
+
+
+        _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 offset:Number = maxRadius - minRadius;
+            for (i = 0 ; i < sampleCount; i++)
+            {
+                v = renderCache[i];
+                var rad:Number = minRadius + v.z * offset;
+                if (isNaN(rad))
+                    continue;
+
+                inst = instances[i];
+                v.fill = fillFunction(v,i);
+                if (!(v.fill))
+                    v.fill = defaultFillFunction(v,i);
+                v.itemRenderer = inst;
+                if ((v.itemRenderer as Object).hasOwnProperty('invalidateDisplayList'))
+                    (v.itemRenderer as Object).invalidateDisplayList();
+                if (bSetData)
+                    (inst as IDataRenderer).data = v;
+                inst.move(v.x-rad,v.y-rad);
+                inst.setActualSize(2*rad,2*rad);
+
+            }
+            if (chart && allSeriesTransform && chart.chartState == 0)
+                chart.updateAllDataTips();
+        }
+    }
+
+	/**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function describeData(dimension:String, requiredFields:uint):Array /* of DataDescription */
+    {
+        validateData();
+
+        var desc:DataDescription = new DataDescription();
+
+        var cache:Array /* of BubbleSeriesItem */ = _renderData.cache;
+
+        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,maxRadius));
+                desc.boundedValues.push(new BoundedValue(desc.min,maxRadius,0));
+            }
+        }
+        else 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,maxRadius));
+                desc.boundedValues.push(new BoundedValue(desc.min,maxRadius,0));
+            }
+        }
+        else if (dimension == BubbleSeries.RADIUS_AXIS)
+        {
+            extractMinMax(cache,"zNumber",desc);
+        }
+        else
+            return [];
+
+        return [desc];
+    }
+
+    /**
+     *  @private
+     */
+    override public function getAllDataPoints():Array /* of HitData */
+    {
+        if (!_renderData)
+            return [];
+        if (!(_renderData.filteredCache))
+            return [];
+
+        var itemArr:Array /* of BubbleSeriesItem */ = [];
+        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 right:Number = unscaledWidth;
+        var result:Array /* of HitData */ = [];
+
+        for (i = 0; i < n; i++)
+        {
+            var v:BubbleSeriesItem = 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 = BubbleSeriesItem(hd.chartItem).fill;
+                hd.contextColor = GraphicsUtilities.colorFromFill(fill);
+                result.push(hd);
+            }
+        }
+        return result;
+    }
+
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    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 minDist2:Number = maxRadius + sensitivity;
+        minDist2 *= minDist2;
+        var minItems:Array /* of BubbleSeriesItem */ = [];
+        var n:int;
+        var i:int;
+
+        n = _renderData.filteredCache.length;
+        var offset:Number = maxRadius - minRadius;
+        for (i = n - 1; i >= 0; i--)
+        {
+            var v:BubbleSeriesItem = _renderData.filteredCache[i];
+            var dist:Number = (v.x  - x) * (v.x  - x) + (v.y - y) * (v.y -y);
+            var r2:Number = minRadius + (v.z * offset) + sensitivity;
+            r2 *= r2;
+            if (dist > r2)
+                continue;
+
+            if (dist <= minDist2)
+                minItems.push(v);
+        }
+
+        n = minItems.length;
+        for (i = 0; i < n; i++)
+        {
+            var item:BubbleSeriesItem = minItems[i];
+            var hd:HitData = new HitData(createDataID(item.index),Math.sqrt(minDist2),item.x,item.y,item);
+            hd.dataTipFunction = formatDataTip;
+            var fill:IFill = BubbleSeriesItem(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;
+    }
+
+    /**
+     *  @private
+     */
+    override public function getItemsInRegion(r:Rectangle):Array /* of BubbleSeriesItem */
+    {
+        if (interactive == false || !_renderData)
+            return [];
+
+        var arrItems:Array /* of BubbleSeriesItem */ = [];
+        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:BubbleSeriesItem = _renderData.filteredCache[i];
+
+            if (localRectangle.contains(v.x,v.y))
+                arrItems.push(v);
+        }
+        return arrItems;
+    }
+
+    /**
+     *  @private
+     */
+    override public function stylesInitialized():void
+    {
+        _localFills = getStyle('fills');
+        if (_localFills != null)
+        	_fillCount = _localFills.length;
+        else
+        	_fillCount = 0;
+        super.stylesInitialized();
+    }
+
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function styleChanged(styleProp : String) : void
+    {
+        super.styleChanged(styleProp);
+        var styles:String = "stroke fill";
+        if (styleProp == null || styleProp == "" || styles.indexOf(styleProp) != -1)
+        {
+            invalidateDisplayList();
+            legendDataChanged();
+        }
+        styles = "fills"
+        if (styles.indexOf(styleProp)!=-1)
+        {
+            _localFills = getStyle('fills');
+            if (_localFills != null)
+        		_fillCount = _localFills.length;
+        	else
+        		_fillCount = 0;
+            invalidateDisplayList();
+            legendDataChanged();
+        }
+        if (styleProp == "itemRenderer")
+        {
+            _instanceCache.remove = true;
+            _instanceCache.discard = true;
+            _instanceCache.count = 0;
+            _instanceCache.discard = false;
+        	_instanceCache.remove = false;
+        }
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @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([],[]);
+        }
+
+        return _renderData;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function getElementBounds(renderData:Object):void
+    {
+        var cache :Array /* of BubbleSeriesItem */ = renderData.cache;
+        var rb :Array /* of Rectangle */ = [];
+
+        var sampleCount:uint = cache.length;
+
+        var maxBounds:Rectangle
+
+        if (sampleCount == 0)
+        {
+            maxBounds = new Rectangle(0,0,unscaledWidth,unscaledHeight);
+        }
+        else
+        {
+            var offset:Number = maxRadius - minRadius;
+            var v:Object = cache[0];
+            maxBounds= new Rectangle(v.x,v.y,0,0);
+            var rad:Number = minRadius +(v.z * offset);//v.radius;
+            for (var i:uint = 0; i < sampleCount; i++)
+            {
+                v = cache[i];
+                rad = minRadius +(v.z * offset);//v.radius;
+                var b:Rectangle = new Rectangle(v.x-rad,v.y-rad,2*rad,2*rad);
+                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;
+            }
+        }
+
+
+        renderData.elementBounds = rb;
+        renderData.bounds =  maxBounds;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function beginInterpolation(sourceRenderData:Object,destRenderData:Object):Object
+    {
+        var idata:Object = initializeInterpolationData(
+            sourceRenderData.cache, destRenderData.cache,
+            { x: true, y: true, z: true }, itemType);
+
+        var interpolationRenderData:BubbleSeriesRenderData = BubbleSeriesRenderData(_renderData.clone());
+
+        interpolationRenderData.cache = idata.cache;
+        interpolationRenderData.filteredCache = idata.cache;
+
+        transitionRenderData = interpolationRenderData;
+        return idata;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override protected function getMissingInterpolationValues(sourceProps:Object,
+    										srcCache:Array /* of BubbleSeriesItem */,
+    										destProps:Object,
+    										destCache:Array /* of BubbleSeriesItem */,
+    										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;
+                    }
+            }
+            else if (p == "z")
+            {
+                if (isNaN(src))
+                {
+                    src = 0;
+                }
+                if (isNaN(dst))
+                {
+                    dst = 0;
+                }
+            }
+            sourceProps[p] = src;
+            destProps[p] = dst;
+        }
+    }
+
+
+    /**
+     * @private
+     */
+    override protected function defaultFilterFunction(cache:Array /*of BubbleSeriesItem */ ):Array /*of BubbleSeriesItem*/
+    {
+    	var filteredCache:Array /*of BubbleSeriesItem*/ = [];
+    	if (filterDataValues == "outsideRange")
+        {
+            filteredCache = cache.concat();
+            dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS).filterCache(filteredCache,"xNumber","xFilter");
+            stripNaNs(filteredCache,"xFilter");
+            dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).filterCache(filteredCache,"yNumber","yFilter");
+            stripNaNs(filteredCache,"yFilter");
+            dataTransform.getAxis(BubbleSeries.RADIUS_AXIS).filterCache(filteredCache,"zNumber","zFilter");
+            stripNaNs(filteredCache,"zFilter");
+        }
+        else if (filterDataValues == "nulls")
+        {
+            filteredCache = cache.concat();
+
+            stripNaNs(filteredCache,"xNumber");
+            stripNaNs(filteredCache,"yNumber");
+            stripNaNs(filteredCache,"zNumber");
+
+        }
+        else if (filterDataValues == "none")
+        {
+            filteredCache = cache;
+        }
+        return filteredCache;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    private function defaultFillFunction(element:BubbleSeriesItem,i:Number):IFill
+    {
+        if (_fillCount!=0)
+            return(GraphicsUtilities.fillFromStyle(_localFills[i % _fillCount]));
+        else
+            return(GraphicsUtilities.fillFromStyle(getStyle("fill")));
+    }
+
+
+    /**
+     *  Applies style properties to the specified DisplayObject. This method is the
+     *  callback that the InstanceCache calls when it creates a new renderer.
+     *
+     *  @param instance The instance being created.
+     *  @param cache A reference to the instance cache itself.
+     *
+     *  @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(BubbleSeriesItem(hd.chartItem).xValue) + "\n";
+
+        var yName:String = dataTransform.getAxis(CartesianTransform.HORIZONTAL_AXIS).displayName;
+        if (yName != "")
+            dt += "" + yName + ": ";
+        dt += dataTransform.getAxis(CartesianTransform.VERTICAL_AXIS).formatForScreen(BubbleSeriesItem(hd.chartItem).yValue) + "\n";
+
+        var radName:String = dataTransform.getAxis(BubbleSeries.RADIUS_AXIS).displayName;
+        if (radName != "")
+            dt += "" + radName + ": ";
+        dt += dataTransform.getAxis(BubbleSeries.RADIUS_AXIS).formatForScreen(BubbleSeriesItem(hd.chartItem).zValue) + "\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: 5067
Author:   smgilson@adobe.com
Date:     2009-02-25T16:21:22.849704Z

Log Message:
-----------
In preparation for adding ASDoc version tags for Flex, remove old tags from AIR files

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/WindowExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as
+++ frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as
@@ -22,7 +22,6 @@
  *
  *  @see mx.controls.FlexNativeMenu
  *
- *  @playerversion AIR 1.1
  */
 public class FlexNativeMenuEvent extends Event
 {


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

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

 package mx.events
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 88
Author:   open-source-svn-admin@adobe.com
Date:     2008-01-03T22:47:56.499469Z

Log Message:
-----------
Perforce Change 191925 by proberts@proberts-laptop-flex on 2008/01/03 16:47:12 Severity: ignore Details: doc additions/clean up for FlexNativeMenu. Also FLEXDOCS-320 (update documentation for FlexNativeMenuEvent.MENU_SHOW to explain that the index, label, and item properties are null) Affected files ...

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/air/air_version.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Consumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/NoChannelAvailableError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/DirectHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingConnectionHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessagingError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/InvalidChannelError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractProducer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/MessageSerializationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/Channel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureStreamingHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXContext.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/PollingChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/NetConnectionChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/StreamingAMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/Grammar.jj</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ConsumerMessageDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/SecureHTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/errors/InvalidDestinationError.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXResult.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/amfx/AMFXEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractMessageStore.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/SecureAMFChannel.as
@@ -1,21 +1,14 @@
-/*************************************************************************
- *
- * ADOBE CONFIDENTIAL
- * __________________
- *
- *  [2002] - [2007] Adobe Systems Incorporated
- *  All Rights Reserved.
- *
- * NOTICE:  All information contained herein is, and remains
- * the property of Adobe Systems Incorporated and its suppliers,
- * if any.  The intellectual and technical concepts contained
- * herein are proprietary to Adobe Systems Incorporated
- * and its suppliers and may be covered by U.S. and Foreign Patents,
- * patents in process, and are protected by trade secret or copyright law.
- * Dissemination of this information or reproduction of this material
- * is strictly forbidden unless prior written permission is obtained
- * from Adobe Systems Incorporated.
- */
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
 package mx.messaging.channels
 {

@@ -58,4 +51,4 @@
     }
 }

-}+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 2863
Author:   dloverin@adobe.com
Date:     2008-08-16T03:28:51.231298Z

Log Message:
-----------
Changes recommend from API review.

QE: YES
Doc: YES
Checkintests: YES
Reviewer:
Bugs:

Move APIs from IFocusManager2 into IFocusManager and remove IFocusManager2.
Rename SandboxUtil -> SecurityUtil
* mx.utils.SecurityUtil
Remove hasMutualTrustWithParent()
Remove hasMutualTrustWithChild()
Add hasMutualTrustBetweenParentAndChild()

Rename SWFLoader.compatibleLoad -> SWFLoader.loadForCompatibility
Create mx.managers.FocusDirection
Rename SystemManager.dispatchEventToSandboxes -> SystemManager.dispatchEventFromSWFBridges

* mx.managers.IFocusManager

addFocusManagerBridge() -> addSWFBridge
removeFocusManagerBridge() -> removeSWFBridge

* mx.managers.SystemManagerProxy
activateProxy() -> activateByProxy()
deactivateProxy() -> deactivateByProxy()

* mx.managers.ISystemManager
useBridge() -> useSWFBridge()

Move/Rename mx.sandbox.ISandboxBridgeProvider -> mx.core.ISWFBridgeProvider
Move/Rename mx.sandbox.ISandboxBridgeGroup -> mx.core.ISWFBridgeGroup
Move/Rename mx.sandbox.SandboxBridgeGroup -> mx.core.SWFBridgeGroup

Delete ISandboxGroupAccess, IParentAccess, IChildAccess

Rename many methods in mx.core.ISWFBridgeGroup
Rename mx.core.IAppliationLoader -> mx.core.ISWFLoader

* mx.core.ISWFBridgeProvider
Rename sandboxBridge -> swfBridge
add parentAllowsChild property
add childAllowsParent property

Modified Paths:
--------------
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/utils/SandboxUtil.as" copyfrom-rev="2851" action="A">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/utils/SecurityUtil.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/FocusDirection.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/utils/EventUtil.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/SandboxBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/IFocusManagerContainer.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/IContainer.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/IApplicationLoader.as" copyfrom-rev="2851" action="A">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/ISWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="A">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>
<path kind="file" action="D">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/core/IApplicationLoader.as</path>
<path kind="file" action="M">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/events/FocusRequest.as</path>
<path kind="file" action="D">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/utils/SandboxUtil.as</path>
<path kind="dir" action="D">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/sandbox</path>
<path kind="file" action="D">/flex/sdk/branches/3.0.x/frameworks/projects/framework/src/mx/managers/IFocusManager2.as</path>

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

--- frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as
+++ frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as
@@ -0,0 +1,181 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+import flash.display.DisplayObject;
+import flash.utils.Dictionary;
+import flash.events.IEventDispatcher;
+
+import mx.managers.ISystemManager;
+
+/**
+ *  A SWFBridgeGroup represents all of the sandbox bridges that an
+ *  application needs to communicate with its parent and children.
+ */
+public class SWFBridgeGroup implements ISWFBridgeGroup
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param owner The DisplayObject that owns this group.
+     *  This should be the SystemManager of an application.
+     */
+	public function SWFBridgeGroup(owner:ISystemManager)
+	{
+        super();
+
+		_groupOwner = owner;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  groupOwner
+    //----------------------------------
+
+    /**
+	 *  @private
+     *  The DisplayObject that owns this group.
+	 */
+	private var _groupOwner:ISystemManager;
+
+	/**
+	 *  @private
+	 *  Allows communication with children that are in different sandboxes.
+	 *  The sandbox bridge is used as a hash to find the display object.
+	 */
+	private var _childBridges:Dictionary;
+
+ 	//--------------------------------------------------------------------------
+	//
+	//  Properties: ISWFBridgeGroup
+	//
+	//--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  parentBridge
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _parentBridge:IEventDispatcher;
+
+    /**
+     *  Allows communication with the parent
+     *  if the parent is in a different sandbox.
+     *  May be null if the parent is in the same sandbox
+     *  or this is the top-level root application.
+     */
+	public function get parentBridge():IEventDispatcher
+	{
+		return _parentBridge;
+	}
+
+    /**
+     *  @private
+     */
+	public function set parentBridge(bridge:IEventDispatcher):void
+	{
+		_parentBridge = bridge;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods: ISWFBridgeGroup
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @inheritdoc
+	 */
+	public function addChildBridge(bridge:IEventDispatcher, bridgeProvider:ISWFBridgeProvider):void
+	{
+		if (!_childBridges)
+			_childBridges = new Dictionary();
+
+		_childBridges[bridge] = bridgeProvider;
+	}
+
+	/**
+	 *  @inheritdoc
+	 */
+	public function removeChildBridge(bridge:IEventDispatcher):void
+	{
+		if (!_childBridges || !bridge)
+			return;
+
+		for (var iter:Object in _childBridges)
+		{
+			if (iter == bridge)
+				delete _childBridges[iter];
+		}
+	}
+
+	/**
+	 *  @inheritdoc
+	 */
+	public function getChildBridgeProvider(bridge:IEventDispatcher):ISWFBridgeProvider
+	{
+		if (!_childBridges)
+			return null;
+
+		return ISWFBridgeProvider(_childBridges[bridge]);
+	}
+
+	/**
+	 *  @inheritdoc
+	 */
+	public function getChildBridges():Array
+	{
+		var bridges:Array = [];
+
+        for (var iter:Object in _childBridges)
+		{
+			bridges.push(iter);
+		}
+
+		return bridges;
+	}
+
+	/**
+	 *  @inheritdoc
+	 */
+	public function containsBridge(bridge:IEventDispatcher):Boolean
+	{
+		if (parentBridge && parentBridge == bridge)
+			return true;
+
+		for (var iter:Object in _childBridges)
+		{
+			if (bridge == iter)
+				return true;
+		}
+
+		return false;
+	}
+}
+
+}


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

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

 package mx.rpc.http.mxml
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4283
Author:   rfrishbe@adobe.com
Date:     2008-12-10T22:34:18.162845Z

Log Message:
-----------
PARB Review changes for Group and DataGroup.  The main API changes are:

- content property on Group and FxContainer renamed to mxmlContent.

- contentFactory property on FxContainer renamed to mxmlContentFactory

- New names for DataGroup methods: getRendererForItemAt(index:int):IVisualElement and getItemIndexForRenderer(renderer:IVisualElement):int.  These are now in the mxml_internal namespace (not public anymore)

- registerRenderer and unregisterRenderer are private methods (not public)

Also, I made a minor fix to ITransformable.

QE Notes: Steve's changing the mustella tests for me and will be checking in shortly.
Doc Notes: None
Bugs: SDK-18042
Reviewer: Hans
tests: checkintests, Steve ran mustella tests for all of gumbo and states

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/ITransformable.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/MyScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/MyVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/wireframe/FxDefaultComplexItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/CircularScrollBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/wireframe/FxDefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxDefaultComplexItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/CircularScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -150,8 +150,12 @@
     [Bindable("dataProviderChanged")]
     /**
      *  DataProvider for this DataGroup.  It must be an IList.
-     *
-     *  @default undefined
+     *
+     *
There are several IList implementations included in the
+     *  Flex framework, including ArrayCollection, ArrayList, and
+     *  XMLListCollection.

+     *
+     *  @default null
      *
      *  @see #itemRenderer
      *  @see #itemRendererFunction
@@ -167,12 +171,12 @@
     public function set dataProvider(value:IList):void
     {
         if (_dataProvider)
-            _dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
+            _dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, dataProvider_collectionChangeHandler);

         _dataProvider = value;

         if (_dataProvider)
-            _dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler, false, 0, true);
+            _dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, dataProvider_collectionChangeHandler, false, 0, true);

         dataProviderChanged = true;
         invalidateProperties();
@@ -192,7 +196,7 @@
         {
             for (var i:int = 0; i < _dataProvider.length; i++)
             {
-                itemAdded(_dataProvider.getItemAt(i), i);
+                mx_internal::itemAdded(_dataProvider.getItemAt(i), i);
             }
         }
     }
@@ -217,7 +221,7 @@
      *
      *  @return The renderer that represents the data elelement.
      */
-    protected function createRendererForItem(item:Object, index:int):IVisualElement
+    private function createRendererForItem(item:Object):IVisualElement
     {
         var myItemRenderer:IVisualElement;

@@ -267,7 +271,7 @@
      *  @param index The item index to associate the renderer with
      *  @param myItemRenderer The item renderer
      */
-    protected function registerRenderer(index:int, myItemRenderer:IVisualElement):void
+    private function registerRenderer(index:int, myItemRenderer:IVisualElement):void
     {
         itemRendererRegistry.splice(index, 0, myItemRenderer);
     }
@@ -279,7 +283,7 @@
      *  @param index The item index to dis-associate the renderer with
      *  @param myItemRenderer The item renderer
      */
-    protected function unregisterRenderer(index:int, myItemRenderer:IVisualElement):void
+    private function unregisterRenderer(index:int, myItemRenderer:IVisualElement):void
     {
         itemRendererRegistry.splice(index, 1);
     }
@@ -295,7 +299,7 @@
      *          is a visual element and has no item renderer,
      *          the visual element itself is returned.
      */
-    public function getItemRenderer(index:int):IVisualElement
+    mx_internal function getRendererForItemAt(index:int):IVisualElement
     {
         return itemRendererRegistry[index];
     }
@@ -309,7 +313,7 @@
      *          or -1 if there is no item associated with the passed in
      *          renderer.
      */
-    public function getRendererItem(renderer:IVisualElement):int
+    mx_internal function getItemIndexForRenderer(renderer:IVisualElement):int
     {
         return itemRendererRegistry.indexOf(renderer);
     }
@@ -433,7 +437,7 @@
      */
     override public function getLayoutElementAt(index:int):ILayoutElement
     {
-        var myItemRenderer:Object = getItemRenderer(index);
+        var myItemRenderer:Object = mx_internal::getRendererForItemAt(index);

         return LayoutElementFactory.getLayoutElementFor(myItemRenderer);
     }
@@ -455,9 +459,9 @@
      *
      *  @param index The index where the item was added.
      */
-    protected function itemAdded(item:Object, index:int):void
-    {
-        var myItemRenderer:IVisualElement = createRendererForItem(item, index);
+    mx_internal function itemAdded(item:Object, index:int):void
+    {
+        var myItemRenderer:IVisualElement = createRendererForItem(item);

         // Set the renderer's data to the item, but only if the item and renderer are different
         if (myItemRenderer is IDataRenderer && myItemRenderer != item)
@@ -484,9 +488,9 @@
      *
      *  @param index The index of the item that is being removed.
      */
-    protected function itemRemoved(item:Object, index:int):void
+    mx_internal function itemRemoved(item:Object, index:int):void
     {
-        var myItemRenderer:IVisualElement = getItemRenderer(index);
+        var myItemRenderer:IVisualElement = mx_internal::getRendererForItemAt(index);

         dispatchEvent(new ItemExistenceChangedEvent(
                       ItemExistenceChangedEvent.ITEM_REMOVE, false, false,
@@ -553,7 +557,7 @@
      *
      *  @param event The collection change event
      */
-    protected function collectionChangeHandler(event:CollectionEvent):void
+    protected function dataProvider_collectionChangeHandler(event:CollectionEvent):void
     {
         switch (event.kind)
         {
@@ -622,7 +626,7 @@
         var length:int = items.length;
         for (var i:int = 0; i < length; i++)
         {
-            itemAdded(items[i], location + i);
+            mx_internal::itemAdded(items[i], location + i);
         }
     }

@@ -634,7 +638,7 @@
         var length:int = items.length;
         for (var i:int = length-1; i >= 0; i--)
         {
-            itemRemoved(items[i], location + i);
+            mx_internal::itemRemoved(items[i], location + i);
         }
     }

@@ -643,14 +647,14 @@
      */
     protected function adjustAfterMove(item:Object, location:int, oldLocation:int):void
     {
-        itemRemoved(item, oldLocation);
+        mx_internal::itemRemoved(item, oldLocation);

         // if item is removed before the newly added item
         // then change index to account for this
         if (location > oldLocation)
-            itemAdded(item, location-1);
+            mx_internal::itemAdded(item, location-1);
         else
-            itemAdded(item, location);
+            mx_internal::itemAdded(item, location);
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 3341
Author:   rfrishbe@adobe.com
Date:     2008-09-24T23:10:20.245436Z

Log Message:
-----------
Changing the definition of some methods in SkinnableComponent.  So instead of:

protected function partAdded(partName:String, instance:*):void

We now have:

protected function partAdded(partName:String, instance:Object):void

Technically this just means we can't support the value of "undefined" anymore.  This change was made to partAdded(), partRemoved(), createPartInstance(), removePartInstance(), and getDyanamicPartAt().

As I was making these changes in all the files that override these methods, I noticed Slider should have a partRemoved() method, so I added it.

I also made a minor change in Selector where there was a bug in the dataProvider collectionChange eventHandler.  Basically we were doing remove code on replace rather than remove.

QE: Yes - This will break (as in, it won't compile) some tests in SkinnableComponent.  Joann will change them soon after I checkin.
Doc: Yes
Bugs: SDK-16640, SDK-16709
Reviewer: Hans

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/DataComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Selector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemsComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextInput.as
+++ frameworks/projects/spark/src/spark/components/TextInput.as
@@ -128,7 +128,7 @@
 	/**
 	 *  @private
 	 */
-	override protected function partAdded(partName:String, instance:*):void
+	override protected function partAdded(partName:String, instance:Object):void
 	{
 		super.partAdded(partName, instance);


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/framework/src/mx/core/IChildList.as
+++ frameworks/projects/framework/src/mx/core/IChildList.as
@@ -50,6 +50,11 @@
  *  @see mx.managers.SystemManager#popUpChildren
  *  @see mx.managers.SystemManager#toolTipChildren
  *  @see mx.managers.SystemManager#cursorChildren
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public interface IChildList
 {
@@ -65,6 +70,11 @@

 	/**
 	 *  The number of children in this child list.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function get numChildren():int;

@@ -86,6 +96,11 @@
      *
      *  @return The child that was added; this is the same
 	 *  as the argument passed in.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	function addChild(child:DisplayObject):DisplayObject;

@@ -104,6 +119,11 @@
      *
      *  @return The child that was added; this is the same
 	 *  as the child argument passed in.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	function addChildAt(child:DisplayObject, index:int):DisplayObject;

@@ -120,6 +140,11 @@
      *
      *  @return The child that was removed; this is the same
 	 *  as the argument passed in.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	function removeChild(child:DisplayObject):DisplayObject;

@@ -136,6 +161,11 @@
      *  @param index The child index of the DisplayObject to remove.
      *
      *  @return The child that was removed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	function removeChildAt(index:int):DisplayObject;

@@ -146,6 +176,11 @@
 	 *  that specifies the index of a child in this child list.
 	 *
 	 *  @return The child at the specified index.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
   	function getChildAt(index:int):DisplayObject;

@@ -156,6 +191,11 @@
      *  @param name The name of the child to return.
 	 *
      *  @return The child with the specified name.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
   	function getChildByName(name:String):DisplayObject;

@@ -195,6 +235,11 @@
 	 *
 	 *  @return The index of the child, which is an integer
 	 *  between 0 and (numChildren - 1).
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
   	function getChildIndex(child:DisplayObject):int;

@@ -207,6 +252,11 @@
 	 *
 	 *  @param newIndex The new index for the specified child.
 	 *  This must be an integer between zero and (numChildren - 1).
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function setChildIndex(child:DisplayObject, newIndex:int):void;

@@ -218,6 +268,11 @@
 	 *
      *  @return An array of object that lie under the specified point
 	 *  that are children of this Container.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
 	function getObjectsUnderPoint(point:Point):Array;

@@ -230,6 +285,11 @@
 	 *  @return true if the DisplayObject is in this child list
 	 *  or is a descendant of an child in this child list;
 	 *  false otherwise.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function contains(child:DisplayObject):Boolean;
 }


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

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

 package mx.containers
 {