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

--- frameworks/projects/advancedgrids/src/mx/printing/PrintAdvancedDataGrid.as
+++ frameworks/projects/advancedgrids/src/mx/printing/PrintAdvancedDataGrid.as
@@ -0,0 +1,967 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.printing
+{
+
+import flash.events.KeyboardEvent;
+
+import mx.collections.CursorBookmark;
+import mx.controls.AdvancedDataGrid;
+import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
+import mx.core.EdgeMetrics;
+import mx.core.ScrollPolicy;
+import mx.core.mx_internal;
+import mx.events.AdvancedDataGridEvent;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+//--------------------------------------
+//  public properties
+//--------------------------------------
+
+[Exclude(name="allowDragSelection", kind="property")]
+[Exclude(name="allowMultipleSelection", kind="property")]
+[Exclude(name="dataTipField", kind="property")]
+[Exclude(name="dataTipFunction", kind="property")]
+[Exclude(name="doubleClickEnabled", kind="property")]
+[Exclude(name="dragEnabled", kind="property")]
+[Exclude(name="draggableColumns", kind="property")]
+[Exclude(name="dragMoveEnabled", kind="property")]
+[Exclude(name="dropEnabled", kind="property")]
+[Exclude(name="dropTarget", kind="property")]
+[Exclude(name="editable", kind="property")]
+[Exclude(name="editedItemPosition", kind="property")]
+[Exclude(name="editedItemRenderer", kind="property")]
+[Exclude(name="horizontalScrollBar", kind="property")]
+[Exclude(name="horizontalScrollPolicy", kind="property")]
+[Exclude(name="maxHorizontalScrollPosition", kind="property")]
+[Exclude(name="maxVerticalScrollPosition", kind="property")]
+[Exclude(name="scrollTipFunction", kind="property")]
+[Exclude(name="selectable", kind="property")]
+[Exclude(name="selectedIndex", kind="property")]
+[Exclude(name="selectedIndices", kind="property")]
+[Exclude(name="selectedItem", kind="property")]
+[Exclude(name="selectedItems", kind="property")]
+[Exclude(name="showScrollTips", kind="property")]
+[Exclude(name="toolTip", kind="property")]
+[Exclude(name="useHandCursor", kind="property")]
+[Exclude(name="verticalScrollBar", kind="property")]
+[Exclude(name="verticalScrollPolicy", kind="property")]
+
+//--------------------------------------
+//  protected properties
+//--------------------------------------
+
+[Exclude(name="anchorBookmark", kind="property")]
+[Exclude(name="anchorIndex", kind="property")]
+[Exclude(name="caretBookmark", kind="property")]
+[Exclude(name="caretIndex", kind="property")]
+[Exclude(name="caretIndicator", kind="property")]
+[Exclude(name="caretItemRenderer", kind="property")]
+[Exclude(name="caretUID", kind="property")]
+[Exclude(name="dragImage", kind="property")]
+[Exclude(name="dragImageOffsets", kind="property")]
+[Exclude(name="highlightIndicator", kind="property")]
+[Exclude(name="highlightUID", kind="property")]
+[Exclude(name="keySelectionPending", kind="property")]
+[Exclude(name="lastDropIndex", kind="property")]
+[Exclude(name="selectionLayer", kind="property")]
+[Exclude(name="selectionTweens", kind="property")]
+[Exclude(name="showCaret", kind="property")]
+
+//--------------------------------------
+//  public methods
+//--------------------------------------
+
+[Exclude(name="calculateDropIndex", kind="method")]
+[Exclude(name="createItemEditor", kind="method")]
+[Exclude(name="destroyItemEditor", kind="method")]
+[Exclude(name="effectFinished", kind="method")]
+[Exclude(name="effectStarted", kind="method")]
+[Exclude(name="endEffectStarted", kind="method")]
+[Exclude(name="hideDropFeedback", kind="method")]
+[Exclude(name="isItemHighlighted", kind="method")]
+[Exclude(name="isItemSelected", kind="method")]
+[Exclude(name="showDropFeedback", kind="method")]
+[Exclude(name="startDrag", kind="method")]
+
+//--------------------------------------
+//  protected methods
+//--------------------------------------
+
+[Exclude(name="dragCompleteHandler", kind="method")]
+[Exclude(name="dragDropHandler", kind="method")]
+[Exclude(name="dragEnterHandler", kind="method")]
+[Exclude(name="dragExitHandler", kind="method")]
+[Exclude(name="dragOverHandler", kind="method")]
+[Exclude(name="dragScroll", kind="method")]
+[Exclude(name="drawCaretIndicator", kind="method")]
+[Exclude(name="drawHighlightIndicator", kind="method")]
+[Exclude(name="drawSelectionIndicator", kind="method")]
+[Exclude(name="mouseClickHandler", kind="method")]
+[Exclude(name="mouseDoubleClickHandler", kind="method")]
+[Exclude(name="mouseDownHandler", kind="method")]
+[Exclude(name="mouseEventToItemRenderer", kind="method")]
+[Exclude(name="mouseMoveHandler", kind="method")]
+[Exclude(name="mouseOutHandler", kind="method")]
+[Exclude(name="mouseOverHandler", kind="method")]
+[Exclude(name="mouseUpHandler", kind="method")]
+[Exclude(name="mouseWheelHandler", kind="method")]
+[Exclude(name="moveSelectionHorizontally", kind="method")]
+[Exclude(name="moveSelectionVertically", kind="method")]
+[Exclude(name="placeSortArrow", kind="method")]
+[Exclude(name="removeIndicators", kind="method")]
+[Exclude(name="selectItem", kind="method")]
+[Exclude(name="setScrollBarProperties", kind="method")]
+[Exclude(name="expandItemHandler", kind="method")]
+
+//--------------------------------------
+//  events
+//--------------------------------------
+
+[Exclude(name="click", kind="event")]
+[Exclude(name="doubleClick", kind="event")]
+[Exclude(name="dragComplete", kind="event")]
+[Exclude(name="dragDrop", kind="event")]
+[Exclude(name="dragEnter", kind="event")]
+[Exclude(name="dragExit", kind="event")]
+[Exclude(name="dragOver", kind="event")]
+[Exclude(name="effectEnd", kind="event")]
+[Exclude(name="effectStart", kind="event")]
+[Exclude(name="headerRelease", kind="event")]
+[Exclude(name="itemClick", kind="event")]
+[Exclude(name="itemDoubleClick", kind="event")]
+[Exclude(name="itemEditBegin", kind="event")]
+[Exclude(name="itemEditBeginning", kind="event")]
+[Exclude(name="itemEditEnd", kind="event")]
+[Exclude(name="itemFocusIn", kind="event")]
+[Exclude(name="itemFocusOut", kind="event")]
+[Exclude(name="itemRollOut", kind="event")]
+[Exclude(name="itemRollOver", kind="event")]
+[Exclude(name="keyDown", kind="event")]
+[Exclude(name="keyUp", kind="event")]
+[Exclude(name="mouseDown", kind="event")]
+[Exclude(name="mouseDownOutside", kind="event")]
+[Exclude(name="mouseFocusChange", kind="event")]
+[Exclude(name="mouseMove", kind="event")]
+[Exclude(name="mouseOut", kind="event")]
+[Exclude(name="mouseOver", kind="event")]
+[Exclude(name="mouseUp", kind="event")]
+[Exclude(name="mouseWheel", kind="event")]
+[Exclude(name="mouseWheelOutside", kind="event")]
+[Exclude(name="rollOut", kind="event")]
+[Exclude(name="rollOver", kind="event")]
+[Exclude(name="toolTipCreate", kind="event")]
+[Exclude(name="toolTipEnd", kind="event")]
+[Exclude(name="toolTipHide", kind="event")]
+[Exclude(name="toolTipShow", kind="event")]
+[Exclude(name="toolTipShown", kind="event")]
+[Exclude(name="toolTipStart", kind="event")]
+
+//--------------------------------------
+//  styles
+//--------------------------------------
+
+[Exclude(name="columnDropIndicatorSkin", kind="style")]
+[Exclude(name="columnResizeSkin", kind="style")]
+[Exclude(name="dropIndicatorSkin", kind="style")]
+[Exclude(name="headerDragProxyStyleName", kind="style")]
+[Exclude(name="horizontalScrollBarStyleName", kind="style")]
+[Exclude(name="rollOverColor", kind="style")]
+[Exclude(name="selectionColor", kind="style")]
+[Exclude(name="selectionDisabledColor", kind="style")]
+[Exclude(name="selectionDuration", kind="style")]
+[Exclude(name="selectionEasingFunction", kind="style")]
+[Exclude(name="strechCursor", kind="style")]
+[Exclude(name="textRollOverColor", kind="style")]
+[Exclude(name="textSelectedColor", kind="style")]
+[Exclude(name="useRollOver", kind="style")]
+[Exclude(name="verticalScrollBarStyleName", kind="style")]
+
+//--------------------------------------
+//  effects
+//--------------------------------------
+
+[Exclude(name="addedEffect", kind="effect")]
+[Exclude(name="creationCompleteEffect", kind="effect")]
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+[Exclude(name="hideEffect", kind="effect")]
+[Exclude(name="mouseDownEffect", kind="effect")]
+[Exclude(name="mouseUpEffect", kind="effect")]
+
+[Exclude(name="moveEffect", kind="effect")]
+[Exclude(name="removedEffect", kind="effect")]
+[Exclude(name="resizeEffect", kind="effect")]
+[Exclude(name="rollOutEffect", kind="effect")]
+[Exclude(name="rollOverEffect", kind="effect")]
+[Exclude(name="showEffect", kind="effect")]
+
+/**
+ *  The PrintAdvancedDataGrid control is an AdvancedDataGrid subclass that is styled
+ *  to show a table with line borders and is optimized for printing.
+ *  It can automatically size to properly fit its container, and removes
+ *  any partially displayed rows.
+ *
+ *  @mxml
+ *
+ *
The <mx:PrintAdvancedDataGrid> tag inherits the tag attributes
+ *  of its superclass; however, you do not use the properties, styles, events,
+ *  and effects (or methods) associated with user interaction.
+ *  The <mx:PrintAdvancedDataGrid> tag adds the following tag attribute:
+ *

+ *

+ *  <mx:PrintAdvancedDataGrid
+ *    Properties
+ *    allowInteraction="true|false"
+ *    displayIcons="true|false"
+ *    sizeToPage="true|false"
+ *    source="null"
+ *  >
+ *  ...
+ *  </mx:PrintAdvancedDataGrid>
+ *

+ *
+ *  @see mx.printing.FlexPrintJob
+ *  @see mx.printing.PrintDataGrid
+ *  @see mx.controls.AdvancedDataGrid
+ *
+ *  @includeExample examples/AdvancedPrintDataGridExample.mxml
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class PrintAdvancedDataGrid extends AdvancedDataGrid
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *
Constructs a PrintAdvancedDataGrid control with no scroll bars, user interactivity,
+     *  column sorting, resizing, drag scrolling, selection, or keyboard
+     *  interaction.
+     *  The default height is 100% of the container height, or the height
+     *  required to display all the data provider rows, whichever is smaller.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function PrintAdvancedDataGrid()
+    {
+        super();
+
+        horizontalScrollPolicy = ScrollPolicy.OFF;
+        verticalScrollPolicy = ScrollPolicy.OFF;
+        sortableColumns = false;
+        selectable = false;
+        // to disable dragScrolling
+        dragEnabled = true;
+        resizableColumns = false;
+        mouseChildren = false;
+        super.percentHeight = 100;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Previous Page row count.
+     */
+    private var previousPageRowCount:int = 0;
+
+    /**
+     *  @private
+     *  Variable for storing the folderClosedIcon.
+     */
+    private var folderClosedIconClass:Class;
+
+    /**
+     *  @private
+     *  Variable for storing the folderOpenIcon.
+     */
+     private var folderOpenIconClass:Class;
+
+    /**
+     *  @private
+     *  Variable for storing the defaultLeafIcon.
+     */
+    private var defaultLeafIconClass:Class;
+
+    /**
+     *  @private
+     *  Storage variable for changes to displayIcons.
+     */
+    private var displayIconsChanged:Boolean;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  height
+    //----------------------------------
+
+    [Bindable("heightChanged")]
+    [Inspectable(category="General")]
+    [PercentProxy("percentHeight")]
+
+    /**
+     *  @private
+     *  Getter needs to be overridden if setter is overridden.
+     */
+    override public function get height():Number
+    {
+        return super.height;
+    }
+
+    /**
+     *  @private
+     *  Height setter needs to be overridden to update _originalHeight.
+     */
+    override public function set height(value:Number):void
+    {
+        _originalHeight = value;
+        if (!isNaN(percentHeight))
+        {
+            super.percentHeight = NaN;
+            measure();
+            value = measuredHeight;
+        }
+
+        super.height = value;
+
+        invalidateDisplayList();
+
+        if (sizeToPage && !isNaN(explicitHeight))
+            explicitHeight = NaN;
+    }
+
+    //----------------------------------
+    //  percentHeight
+    //----------------------------------
+
+    [Bindable("resize")]
+    [Inspectable(category="Size", defaultValue="NaN")]
+    /**
+     *  @private
+     *  Getter needs to be overridden if setter is overridden.
+     */
+    override public function get percentHeight():Number
+    {
+        return super.percentHeight;
+    }
+
+    /**
+     *  @private
+     *  percentHeight setter needs to be overridden to update _originalHeight.
+     */
+    override public function set percentHeight(value:Number):void
+    {
+        _originalHeight = NaN;
+        super.percentHeight = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  currentPageHeight
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the currentPageHeight property.
+     */
+    private var _currentPageHeight:Number;
+
+    /**
+     *  The height that the PrintAdvancedDataGrid would be if the sizeToPage
+     *  property is true, meaning that the PrintAdvancedDataGrid displays only completely
+     *  viewable rows and displays no partial rows.
+     *  If the sizeToPage property
+     *  is false, the value of this property equals
+     *  the height property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get currentPageHeight():Number
+    {
+        return _currentPageHeight;
+    }
+
+    //----------------------------------
+    //  displayIcons
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Indicates that the folder/leaf icons will be displayed or not.
+     */
+    private var _displayIcons:Boolean = true;
+
+    /**
+     *  If true, display the folder and leaf icons in the navigation tree.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get displayIcons():Boolean
+    {
+        return _displayIcons;
+    }
+
+    public function set displayIcons(value:Boolean):void
+    {
+        if (value != _displayIcons)
+        {
+            _displayIcons = value;
+            displayIconsChanged = true;
+
+            itemsSizeChanged = true;
+            invalidateProperties();
+            invalidateSize();
+            invalidateDisplayList();
+        }
+    }
+
+    //----------------------------------
+    //  allowInteraction
+    //----------------------------------
+
+    /**
+     *  Storage for the allowInteraction property.
+     *  @private
+     */
+    private var _allowInteraction:Boolean;
+
+    /**
+     *  If true, allows some interactions with the control,
+     *  such as column resizing, column reordering, and expanding or collapsing nodes.
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get allowInteraction():Boolean
+    {
+        return _allowInteraction;
+    }
+
+    public function set allowInteraction(value:Boolean):void
+    {
+        _allowInteraction = value;
+        if(value)
+        {
+            mouseChildren = true;
+            resizableColumns = true;
+        }
+        else
+        {
+            mouseChildren = false;
+            resizableColumns = false;
+        }
+    }
+
+    //----------------------------------
+    //  originalHeight
+    //----------------------------------
+
+    /**
+     *  Storage for the originalHeight property.
+     *  @private
+     */
+    private var _originalHeight:Number;
+
+    /**
+     *  The height of the PrintAdvancedDataGrid as set by the user.
+     *  If the sizeToPage property is false,
+     *  the value of this property equals the height property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get originalHeight():Number
+    {
+        return _originalHeight;
+    }
+
+    //----------------------------------
+    //  sizeToPage
+    //----------------------------------
+
+    /**
+     *  If true, the PrintAdvancedDataGrid readjusts its height to display
+     *  only completely viewable rows.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var sizeToPage:Boolean = true;
+
+    //----------------------------------
+    //  source
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Source ADG.
+     */
+    private var _source:AdvancedDataGrid;
+
+    /**
+     *  Initializes the PrintAdvancedDataGrid control and all of its properties
+     *  from the specified AdvancedDataGrid control.
+     *
+     *
Note: The width and height of the PrintAdvancedDataGrid control
+     *  are not taken from the source AdvancedDataGrid control.
+     *  Changes to the source AdvancedDataGrid control are not automatically reflected
+     *  in the PrintAdvancedDataGrid instance.
+     *  Therefore, you must reset the source property after changing
+     *  the source AdvancedDataGrid control.

+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get source():AdvancedDataGrid
+    {
+        return _source;
+    }
+
+    /**
+     *  @private
+     */
+    public function set source(value:AdvancedDataGrid):void
+    {
+    	_source = value;
+
+        this.dataProvider = value.dataProvider; // set the dataProvider
+
+        var i:int = 0;
+        var n:int = 0;
+
+        // assign groupedColumns only if Column Grouping
+        // is present in the source AdvancedDataGrid
+        if (value.groupedColumns != null)
+        {
+        	var groupColumnsArray:Array = [];
+        	n = value.groupedColumns.length;
+        	for (i = 0; i < n; i++)
+	        {
+	        	groupColumnsArray.push(value.groupedColumns[i].clone());
+	        }
+
+	        this.groupedColumns = groupColumnsArray;
+        }
+        else
+        {
+        	// assign the columns
+	        var columnArray:Array = [];
+	        n = value.columns != null ? value.columns.length : 0;
+	        for (i = 0; i < n; i++)
+	        {
+	        	var sourceColumn:AdvancedDataGridColumn = value.columns[i];
+	        	var col:AdvancedDataGridColumn = sourceColumn.clone();
+
+	        	// check for treeColumn
+	        	if (sourceColumn == value.treeColumn)
+	        		this.treeColumn = col;
+
+	        	columnArray.push(col);
+	        }
+
+	        this.columns = columnArray;
+        }
+
+        this.itemRenderer = value.itemRenderer; // set the itemRenderer
+        this.headerRenderer = value.headerRenderer; // set the headerRenderer
+        this.groupItemRenderer = value.groupItemRenderer; // set the groupItemRenderer
+        this.rendererProviders = value.rendererProviders; // set the rendererProviders
+
+        this.labelField = value.labelField; // set the labelField
+        this.labelFunction = value.labelFunction; // set the labelFunction
+        this.groupIconFunction = value.groupIconFunction; // set the groupIconFunction
+        this.groupLabelFunction = value.groupLabelFunction; // set the groupLabelFunction
+
+        this.displayDisclosureIcon = value.displayDisclosureIcon; // set displayDisclosureIcon
+        this.displayItemsExpanded = value.displayItemsExpanded; // set displayItemsExpanded
+        this.itemIcons = value.itemIcons; // set the itemsIcons
+
+        this.lockedColumnCount = value.lockedColumnCount; // set lockecColumnCount
+        this.lockedRowCount = value.lockedRowCount; // set lockedRowCount
+
+        this.wordWrap = value.wordWrap; // set wordWrap
+        this.variableRowHeight = value.variableRowHeight; // set variableRowHeight
+
+        columnsInvalid = true;
+        itemsSizeChanged = true;
+
+        // invalidate everything
+        invalidateProperties();
+        invalidateSize();
+        invalidateDisplayList();
+
+    }
+
+    //----------------------------------
+    //  validNextPage
+    //----------------------------------
+
+    /**
+     *  Indicates that the data provider contains additional data rows that follow
+     *  the rows that the PrintAdvancedDataGrid control currently displays.
+     *
+     *  @return A Boolean value of true if a set of rows is
+     *  available else false</false>.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get validNextPage():Boolean
+    {
+        var vPos:int = verticalScrollPosition + rowCount ;
+
+        return dataProvider && vPos < dataProvider.length ? true : false;
+    }
+
+    //----------------------------------
+    //  validPreviousPage
+    //----------------------------------
+
+    /**
+     *  Indicates that the data provider contains data rows that precede
+     *  the rows that the PrintAdvancedDataGrid control currently displays.
+     *
+     *  @return A Boolean value of true if a set of rows is
+     *  available else false</false>.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get validPreviousPage():Boolean
+    {
+        var vPos:int = verticalScrollPosition - previousPageRowCount ;
+
+        return dataProvider && vPos >= 0 ? true : false;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Checks the changes in displayIcons and update the display.
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        // set treeColumn in case of a column grouped AdvacnedDataGrid
+        if (source && source.groupedColumns && source.treeColumn)
+        {
+        	var n:int = source.columns.length;
+	        for (var i:int = 0; i < n; i++)
+	        {
+	        	var sourceColumn:AdvancedDataGridColumn = source.columns[i];
+
+	        	if (sourceColumn == source.treeColumn)
+	        	{
+	        		this.treeColumn = this.columns[i];
+	        		break;
+	        	}
+	        }
+	    }
+
+        if(displayIconsChanged)
+        {
+            displayIconsChanged = false;
+            if(displayIcons)
+            {
+                setStyle("defaultLeafIcon",defaultLeafIconClass);
+                setStyle("folderClosedIcon",folderClosedIconClass);
+                setStyle("folderOpenIcon",folderOpenIconClass);
+            }
+            else
+            {
+                // get the styles and store them
+                folderClosedIconClass = getStyle("folderClosedIcon");
+                folderOpenIconClass = getStyle("folderOpenIcon");
+                defaultLeafIconClass = getStyle("defaultLeafIcon");
+
+                // set the folder/leaf icons to null
+                setStyle("defaultLeafIcon",null);
+                setStyle("folderClosedIcon",null);
+                setStyle("folderOpenIcon",null);
+            }
+        }
+    }
+
+    /**
+     *  @private
+     *  Sets the default number of display rows to dataProvider.length.
+     */
+    override protected function measure():void
+    {
+        var oldRowCount:uint = rowCount;
+
+        var count:uint;
+
+        count = (dataProvider) ? dataProvider.length : 0;
+
+        // Headers should show even if there is no dataProvider
+        if (count == 0 && headerVisible)
+        	count++;
+
+        if (count >= verticalScrollPosition)
+            count -= verticalScrollPosition;
+        else
+            count = 0;
+
+        setRowCount(count);
+
+        // need to calculate rowCount before super()
+        super.measure();
+        measureHeight();
+
+        if (isNaN(_originalHeight))
+            _originalHeight = measuredHeight;
+        _currentPageHeight = measuredHeight;
+
+        if (!sizeToPage)
+        {
+            setRowCount(oldRowCount);
+            super.measure();
+        }
+    }
+
+    /**
+     *  @private
+     *  setActualSize() is overridden to update _originalHeight.
+     */
+    override public function setActualSize(w:Number, h:Number):void
+    {
+        if (!isNaN(percentHeight))
+        {
+            _originalHeight = h;
+            super.percentHeight = NaN;
+            measure();
+            h = measuredHeight;
+        }
+
+        super.setActualSize(w, h);
+
+        invalidateDisplayList();
+
+        if (sizeToPage && !isNaN(explicitHeight))
+            explicitHeight = NaN;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: ListBase
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Overridden configureScrollBars to disable autoScrollUp.
+     */
+    override protected function configureScrollBars():void
+    {
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Puts the next set of data rows in view;
+     *  that is, it sets the PrintAdvancedDataGrid verticalScrollPosition
+     *  property to equal verticalScrollPosition + (number of scrollable rows).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function nextPage():void
+    {
+        previousPageRowCount = rowCount - lockedRowCount;
+
+        if (verticalScrollPosition < dataProvider.length)
+        {
+            verticalScrollPosition += rowCount - lockedRowCount;
+            // TODO: can this be avoided?
+            itemsSizeChanged = true;
+            invalidateSize();
+            invalidateDisplayList();
+        }
+    }
+
+    /**
+     *  Puts the previous set of data rows in view;
+     *  that is, it sets the PrintAdvancedDataGrid verticalScrollPosition
+     *  property to equal verticalScrollPosition - (number of rows in the previous page).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function previousPage():void
+    {
+        if (verticalScrollPosition > 0)
+        {
+            verticalScrollPosition = Math.max(0, (verticalScrollPosition - previousPageRowCount));
+
+            invalidateSize();
+            invalidateDisplayList();
+        }
+    }
+
+    /**
+     *  @private
+     *  ListBase.measure() does'nt calculate measuredHeight in required way
+     *  so have to add the code here.
+     */
+    private function measureHeight():void
+    {
+        if( dataProvider && dataProvider.length > 0
+            && (verticalScrollPosition >= dataProvider.length))
+        {
+            setRowCount(0);
+            measuredHeight = 0;
+            measuredMinHeight = 0;
+            return;
+        }
+
+        var o:EdgeMetrics = viewMetrics;
+        var rc:int = (explicitRowCount < 1) ? rowCount : explicitRowCount;
+
+        var maxHeight:Number = isNaN(_originalHeight) ? -1
+                                : _originalHeight - o.top - o.bottom;
+
+        measuredHeight = measureHeightOfItemsUptoMaxHeight(
+            -1, rc, maxHeight) + o.top + o.bottom;
+
+        measuredMinHeight = measureHeightOfItemsUptoMaxHeight(
+            -1, Math.min(rc, 2), maxHeight) + o.top + o.bottom;
+    }
+
+    /**
+     *  Moves to the first page of the PrintAdvancedDataGrid control,
+     *  which corresponds to the first set of visible rows.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function moveToFirstPage():void
+    {
+        // move the iterator to the first position
+        // this is done because when nextPage() is called without
+        // checking for validNextPage(), listItems becomes empty after the last page
+        // and the iterator is not seeked to the desired position.
+        iterator.seek(CursorBookmark.FIRST);
+        verticalScrollPosition = 0;
+
+        invalidateSize();
+        invalidateDisplayList();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden event handlers: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Overridden keyDown to disable keyboard functionality.
+     */
+    override protected function keyDownHandler(event:KeyboardEvent):void
+    {
+    }
+
+    /**
+     *  @private
+     *  Overridden expandItemHandler to disable animation
+     *  and recalculate the height
+     *  when allowInteraction is false.
+     */
+    override mx_internal function expandItemHandler(event:AdvancedDataGridEvent):void
+    {
+            event.animate = false; // no animation
+            super.expandItemHandler(event);
+
+            // we have to recalculate the height
+            itemsSizeChanged = true;
+
+            invalidateDisplayList();
+            invalidateSize();
+            invalidateProperties();
+    }
+}
+
+}


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

--- frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorShader.as
+++ frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorShader.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.graphics.shaderClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19344
Author:   egeorgie@adobe.com
Date:     2010-12-14T00:38:13.222484Z

Log Message:
-----------
PARB changes for density scaling

- authorDensity -> applicationDPI, type changed to int
- DensityUtil not visible in the documentation anymore [ExcludeClass]
- DensityUtil. screenDPIToDeviceDensity() -> classifyDPI(), returns int now
- DensityUtil. getDensityScale() -> getDPIScale(), takes int now
- DeviceDensity enum -> DPIClassification enum
- ISystemManager.densityScale property has been removed.
- New property to Application -> runtimeDPI.

QE notes: can start writing automated tests now
Doc notes:
Bugs:
Reviewer: Alex, Glenn, Jason SJ,
Tests run: checkintest
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/DensityUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DeviceDensity.as" copyfrom-rev="19256" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DPIClassification.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationAngledButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DeviceDensity.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreen.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as
@@ -14,7 +14,7 @@
 import flash.display.DisplayObject;
 import flash.display.Graphics;

-import mx.core.DeviceDensity;
+import mx.core.DPIClassification;

 import spark.components.Button;
 import spark.primitives.Graphic;
@@ -61,16 +61,16 @@
         useChromeColor = true;

         // set the right assets and dimensions to use based on the screen density
-        switch (authorDensity)
+        switch (applicationDPI)
         {
-            case DeviceDensity.PPI_320:
-            {
-                thumbImageWidth = 58;
-                thumbImageHeight = 58;
-
-                thumbNormalClass = spark.skins.mobile320.assets.HSliderThumb_normal;
-                thumbPressedClass = spark.skins.mobile320.assets.HSliderThumb_pressed;
-
+			case DPIClassification.DPI_320:
+			{
+				thumbImageWidth = 58;
+				thumbImageHeight = 58;
+
+				thumbNormalClass = spark.skins.mobile320.assets.HSliderThumb_normal;
+				thumbPressedClass = spark.skins.mobile320.assets.HSliderThumb_pressed;
+
                 hitZoneOffset = 10;
                 hitZoneSideLength = 80;

@@ -81,7 +81,7 @@

                 break;
             }
-            case DeviceDensity.PPI_240:
+            case DPIClassification.DPI_240:
             {
                 thumbImageWidth = 44;
                 thumbImageHeight = 44;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7078
Author:   jimurphy@adobe.com
Date:     2009-05-19T17:37:04.234888Z

Log Message:
-----------
Merged beta1 revisions 7038,7042,7052,7066 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/oem/internal/OEMConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/webapps/webtier/build.xml</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/modules/webtier/j2ee/coldfusion/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/webapps/webtier/WEB-INF/flex/flex-config.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -17,6 +17,7 @@
 import flash.display.DisplayObject;
 import flash.display.Sprite;
 import flash.events.Event;
+import flash.events.MouseEvent;
 import flash.geom.ColorTransform;
 import flash.geom.Matrix;
 import flash.geom.Rectangle;
@@ -651,23 +652,23 @@
         return ResizeMode.NORMAL;
     }

-/**
- *  The ResizeMode for this container.  If the resize mode
- *  is set to ResizeMode.NORMAL, resizing is done by laying
- *  out the children with our new width and height.  If the
- *  resize mode is set to ResizeMode.SCALE, all of the children
- *  keep their unscaled width and height and the children
- *  are scaled to change size.
- *
- *
The default value is ResizeMode.NORMAL, corresponding to "normal".

- *
- * @see spark.components.ResizeMode
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
- */
+    /**
+     *  The ResizeMode for this container.  If the resize mode
+     *  is set to ResizeMode.NORMAL, resizing is done by laying
+     *  out the children with our new width and height.  If the
+     *  resize mode is set to ResizeMode.SCALE, all of the children
+     *  keep their unscaled width and height and the children
+     *  are scaled to change size.
+     *
+     *
The default value is ResizeMode.NORMAL, corresponding to "normal".

+     *
+     * @see spark.components.ResizeMode
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     public function get resizeMode():String
     {
         return resizeModeToString(_resizeMode);
@@ -693,7 +694,101 @@
         // Invalidate the display list so that our validateMatrix() gets called.
         invalidateDisplayList();
     }
-
+
+    //----------------------------------
+    //  mouseOpaque
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the mouseOpaque property
+     */
+    private var _mouseOpaque:Boolean = true;
+    protected var mouseEventReferenceCount:int;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  When set to true the mouseOpaque flag ensures that the entire bounds
+     *  of the Group are opaque to all mouse events such as clicks, rollOvers,
+     *  etc.
+     *
+     *  @default true
+     *
+     *  @langversion 4.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get mouseOpaque():Boolean
+    {
+        return _mouseOpaque;
+    }
+
+    /**
+     *  @private
+     */
+    public function set mouseOpaque(value:Boolean):void
+    {
+        if (value == _mouseOpaque)
+            return;
+
+        _mouseOpaque = value;
+
+        if (_hasMouseListeners)
+            invalidateDisplayList();
+    }
+
+    /**
+     *  @private
+     *  Render a transparent background fill as necessary to support the mouseOpaque flag.
+     *  We assume for now that we are the first layer to be rendered into the graphics
+     *  context.
+     */
+    protected function renderFillForMouseOpaque():void
+    {
+        if (_mouseOpaque && _hasMouseListeners)
+        {
+            graphics.clear();
+            graphics.beginFill(0xFFFFFF, 0);
+
+            var w:Number = (_resizeMode == _SCALE_UINT) ? measuredWidth : unscaledWidth;
+            var h:Number = (_resizeMode == _SCALE_UINT) ? measuredHeight : unscaledHeight;
+            graphics.drawRect(0, 0, w, h);
+
+            graphics.endFill();
+        }
+    }
+
+    //----------------------------------
+    //  hasMouseListeners
+    //----------------------------------
+
+    private var _hasMouseListeners:Boolean = false;
+
+    /**
+     * @private
+     *
+     * This is a protected helper property used when selectively rendering
+     * the fill layer for mouseOpaque (we only render when we have active
+     * mouse event listeners).
+     *
+     */
+    mx_internal function set hasMouseListeners(value:Boolean):void
+    {
+        if (_mouseOpaque)
+            $invalidateDisplayList();
+	_hasMouseListeners = value;
+    }
+
+    /**
+     * @private
+     */
+    mx_internal function get hasMouseListeners():Boolean
+    {
+        return _hasMouseListeners;
+    }
+
     /**
      *  @private
      */
@@ -1018,7 +1113,94 @@
         setContentWidth(width);
         setContentHeight(height);
     }
-
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: EventDispatcher
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  We render a transparent background fill by default when we have mouse
+     *  listeners.
+     */
+    override public function addEventListener(type:String, listener:Function,
+        useCapture:Boolean = false, priority:int = 0,
+        useWeakReference:Boolean = false):void
+    {
+        super.addEventListener(type, listener, useCapture, priority,
+            useWeakReference);
+
+        if (type == MouseEvent.CLICK ||
+            type == MouseEvent.DOUBLE_CLICK ||
+            type == MouseEvent.MOUSE_DOWN ||
+            type == MouseEvent.MOUSE_MOVE ||
+            type == MouseEvent.MOUSE_OVER ||
+            type == MouseEvent.MOUSE_OUT ||
+            type == MouseEvent.ROLL_OUT ||
+            type == MouseEvent.ROLL_OVER ||
+            type == MouseEvent.MOUSE_UP ||
+            type == MouseEvent.MOUSE_WHEEL)
+        {
+            if (mouseEventReferenceCount++ == 0)
+                hasMouseListeners = true;
+        }
+    }
+
+    /**
+     *  @private
+     *  We no longer render our default transparent background fill when we have
+     *  no mouse listeners.
+     */
+    override public function removeEventListener( type:String, listener:Function,
+        useCapture:Boolean = false):void
+    {
+        super.removeEventListener(type, listener, useCapture);
+
+        if (type == MouseEvent.CLICK ||
+            type == MouseEvent.DOUBLE_CLICK ||
+            type == MouseEvent.MOUSE_DOWN ||
+            type == MouseEvent.MOUSE_MOVE ||
+            type == MouseEvent.MOUSE_OVER ||
+            type == MouseEvent.MOUSE_OUT ||
+            type == MouseEvent.ROLL_OUT ||
+            type == MouseEvent.ROLL_OVER ||
+            type == MouseEvent.MOUSE_UP ||
+            type == MouseEvent.MOUSE_WHEEL)
+        {
+            if (--mouseEventReferenceCount == 0)
+                hasMouseListeners = false;
+        }
+    }
+
+    /**
+     *  @private
+     *  Automation requires a version of addEventListener that does not
+     *  affect behavior of the underlying component.
+     */
+    mx_internal function $addEventListener(
+                            type:String, listener:Function,
+                            useCapture:Boolean = false,
+                            priority:int = 0,
+                            useWeakReference:Boolean = false):void
+    {
+        super.addEventListener(type, listener, useCapture,
+                               priority, useWeakReference);
+    }
+
+    /**
+     *  @private
+     *  Automation requires a version of removeEventListener that does not
+     *  affect behavior of the underlying component.
+     */
+    mx_internal function $removeEventListener(
+                              type:String, listener:Function,
+                              useCapture:Boolean = false):void
+    {
+        super.removeEventListener(type, listener, useCapture);
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Properties: Overriden Focus management


Transferred from the Adobe Open Source Subversion Repository

Revision: 5803
Author:   clucier@adobe.com
Date:     2009-03-31T16:21:01.408983Z

Log Message:
-----------
mx:List now correctly manages default button when editor is active.
Bugs: SDK-20157
QE Notes: None
Doc Notes: None
Reviewer: Alex

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as

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

--- frameworks/projects/mx/src/mx/controls/List.as
+++ frameworks/projects/mx/src/mx/controls/List.as
@@ -2197,6 +2197,11 @@

         // listen for keyStrokes on the itemEditorInstance (which lets the grid supervise for ESC/ENTER)
         DisplayObject(itemEditorInstance).addEventListener(KeyboardEvent.KEY_DOWN, editorKeyDownHandler);
+
+        // Disable framework default button support when editor is enabled.
+        if (focusManager)
+            focusManager.defaultButtonEnabled = false;
+
         // we disappear on any mouse down outside the editor
         // use weak reference
         systemManager.getSandboxRoot().
@@ -2271,6 +2276,11 @@
         if (itemEditorInstance)
         {
             DisplayObject(itemEditorInstance).removeEventListener(KeyboardEvent.KEY_DOWN, editorKeyDownHandler);
+
+            // Re-enable framework default button support.
+            if (focusManager)
+                focusManager.defaultButtonEnabled = true;
+
             systemManager.getSandboxRoot().
                 removeEventListener(MouseEvent.MOUSE_DOWN, editorMouseDownHandler, true);
             systemManager.getSandboxRoot().
@@ -2579,6 +2589,11 @@
 			return;

         endEdit(ListEventReason.OTHER);
+
+        // set focus back to the grid so grid logic will deal if focus doesn't
+        // end up somewhere else
+        losingFocus = true;
+        setFocus();
     }

     /**
@@ -2605,9 +2620,13 @@
             // The 229 keyCode is for IME compatability. When entering an IME expression,
             // the enter key is down, but the keyCode is 229 instead of the enter key code.
             // Thanks to Yukari for this little trick...
-            if (endEdit(ListEventReason.NEW_ROW))
-                if (!dontEdit)
-                    findNextEnterItemRenderer(event);
+            if (endEdit(ListEventReason.NEW_ROW) && !dontEdit)
+            {
+                findNextEnterItemRenderer(event);
+
+                if (focusManager)
+                    focusManager.defaultButtonEnabled = false;
+            }
         }
     }

@@ -2747,8 +2766,7 @@
             // trace("setting focus to item editor");
             if (itemEditorInstance is IFocusManagerComponent)
                 fm.setFocus(IFocusManagerComponent(itemEditorInstance));
-            fm.defaultButtonEnabled = false;
-
+
             var event:ListEvent =
                 new ListEvent(ListEvent.ITEM_FOCUS_IN);
             event.rowIndex = _editedItemPosition.rowIndex;


Transferred from the Adobe Open Source Subversion Repository

Revision: 13965
Author:   build@adobe.com
Date:     2010-02-03T20:37:12.428300Z

Log Message:
-----------
Version update to 4.5.0

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_air/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_flashflexkit/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_dmv/src/mx/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/build.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/core/Version.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/VersionInfo.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Version.as</path>

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

--- frameworks/projects/rpc/src/mx/core/Version.as
+++ frameworks/projects/rpc/src/mx/core/Version.as
@@ -14,4 +14,4 @@
  *  @private
  *  Version string for this class.
  */
-mx_internal static const VERSION:String = "4.0.0.0";
+mx_internal static const VERSION:String = "4.5.0.13964";


:memo:

:memo:

--- index.as
+++ index.as
@@ -1,48 +1,11 @@
-
-// [ ] IR Source should be just a SPAN not the full AST node
-// [x] Parse/Build: Pointer Arithmetic
-// [x] Cast: Alias (pointer)
-// [x] Relational: Pointer
-// [x] Function "Objects"
-// [x] Compound/Augmented Assignment `+=`
-// [x] str is just a name for *int8 (not alias)
-// [x] Implicit cast to type alias from unnamed _literal_ of underlying type
-// [x] Arithmetic of named integer against literal
-// [x] Relational of named integer against literal
-// [x] If Expression
-// [x] UNIT Type / Value
-// [x] DIVERGENT Type / Value
-// [x] Repeat: Break
-// [x] Repeat: Continue
-// [x]   `break` and `continue` are considered divergent (block)
-// [x] warning: unreachable code
-// [x] Type cast
-// [x] Function hoisting segfaults compiler in type deduction
-// [x] Parse: TypeFunction
-// [x] Parse: TypeTuple
-// [x] Parse: Augmented Assignment
-// [x] Parse: Structure
-// [x] Struct
-// [ ] Implement (T)
-// [x] Augmented Assignment for `<<=` and `>>=`
-
-// [x] Get proper size of C INT in a few places
-
-// [x] Functions can have generic type parameters `def method[..]`
-// [x] `Identifier` is wrapped in a `Name` object (that can optionally have type parameters)
-// [x] TypeDeduce in regards to `Name`
-// [x] Duplicate instantiate should not create more things
-// [x] Test!
-
+// [ ] IR -> source :: a SPAN (not the full AST node)
+// [ ] Methods / Member Functions :: `implement T`
 // [ ] Error: Use before declare (applies mainly to `let r = r * 2` cases)
-
-// [x] C Import -> Structure
-// [x] C Import -> Union (as opaque structure)
-
 // [ ] Structure return from function (direct via compressed integers or sret)
+// [ ] `c_void` -> Alias to `()`
 // [ ] Unit should be an empty llvm struct instead of <nothing>
 // [ ] Type alias of a type alias should refer to the canoncial type
-// [ ] Generic structures
-
-import "std";
-std.exit(0);
+// [ ] Generic structures :: `struct Box<T> { }`
+// [ ] `import ".."` cache
+// [ ] `#include ".."` cache
+// [ ] `extern ..` cache


Added avoidOtherPopups. A hole was rabbitted while I debugged
that assigning to Rectangle.topLeft sets x and y and width! and height!
Gah.

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@729 ed5b42cb-e716-0410-a449-f6a68f950b19

--- src/as/com/threerings/flex/PopUpUtil.as
+++ src/as/com/threerings/flex/PopUpUtil.as
@@ -47,10 +47,44 @@
      */
     public static function fitInRect (popup :UIComponent, rect :Rectangle) :void
     {
-        var p :Point = DisplayUtil.fitRectInRect(new Rectangle(popup.x, popup.y,
-            popup.getExplicitOrMeasuredWidth(), popup.getExplicitOrMeasuredHeight()), rect);
+        var p :Point = DisplayUtil.fitRectInRect(createPopupRect(popup), rect);
         popup.x = p.x;
         popup.y = p.y;
+    }
+
+    /**
+     * Try to fit inside the specified rectangle, also avoiding other popups.
+     *
+     * @param popup the popup we'll try to move.
+     * @param bounds the boundary within which to place the popup.
+     * @param padding extra padding to place between popups (but not around the inside of
+     *        the bounds, do that yourself if you want it).
+     */
+    public static function avoidOtherPopups (
+        popup :UIComponent, bounds :Rectangle, padding :int = 0) :void
+    {
+        var avoid :Array = [];
+        var r :Rectangle;
+
+        // find the other popups we need to avoid
+        for (var ii :int = popup.parent.numChildren - 1; ii >= 0; ii--) {
+            var comp :UIComponent = popup.parent.getChildAt(ii) as UIComponent;
+            if (comp != null && comp.isPopUp && comp.visible && comp != popup) {
+                r = createPopupRect(comp);
+                r.inflate(padding, padding);
+                avoid.push(r);
+            }
+        }
+
+        r = createPopupRect(popup);
+        // put the rectangle in-bounds, so that even if avoiding the others fails, we're
+        // at least in-bounds when fitRectInRect resets to the original position.
+        var p :Point = DisplayUtil.fitRectInRect(r, bounds);
+        r.x = p.x;
+        r.y = p.y; // assigning to topLeft adjusts width/height too, so don't do it!
+        DisplayUtil.positionRect(r, bounds, avoid);
+        popup.x = r.x;
+        popup.y = r.y;
     }

     /**
@@ -60,5 +94,11 @@
     {
         return new Rectangle(0, 0, popup.stage.stageWidth, popup.stage.stageHeight);
     }
+
+    protected static function createPopupRect (popup :UIComponent) :Rectangle
+    {
+        return new Rectangle(popup.x, popup.y,
+            popup.getExplicitOrMeasuredWidth(), popup.getExplicitOrMeasuredHeight());
+    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 13035
Author:   hneelu@adobe.com
Date:     2009-12-17T07:35:16.160630Z

Log Message:
-----------
Updating automation project to latest p4 changes.

Modified Paths:
--------------
228 paths were modified

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

--- frameworks/projects/automation/src/mx/automation/tabularData/ChartBaseTabularData.as
+++ frameworks/projects/automation/src/mx/automation/tabularData/ChartBaseTabularData.as
@@ -103,8 +103,7 @@
 			maxItems = 0;
 			// code modified to avoid the usage of numAutomationChildren and
 			// getAutomationChildAt in a loop
-			//var childList:Array  = delegate.getAutomationChildren();
-			var childList:Array  = Automation.automationManager2.getAutomationChildrenArray(delegate);
+			var childList:Array  = delegate.getAutomationChildren();
 			var n:int = childList?childList.length:0;
 			//for(var i:int = 0; i < delegate.numAutomationChildren; ++i)
 			for (var i:int = 0; i < n; ++i)
@@ -159,8 +158,7 @@

 			// code modified to avoid the usage of numAutomationChildren and
 			// getAutomationChildAt in a loop
-			//var childList:Array  = delegate.getAutomationChildren();
-			var childList:Array  = Automation.automationManager2.getAutomationChildrenArray(delegate);
+			var childList:Array  = delegate.getAutomationChildren();
 			if (childList)
 			{
 				end  = end > childList.length ? childList.length : end;


Transferred from the Adobe Open Source Subversion Repository

Revision: 13038
Author:   hneelu@adobe.com
Date:     2009-12-17T09:45:13.816497Z

Log Message:
-----------
Reverting P4 changes made for automation project.

Modified Paths:
--------------
228 paths were modified

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

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

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

 			var n:int = childList? childList.length:0;
 			// for (var i:int = 0;


improved error msg

improved error msg

--- WeaveData/src/weave/data/DataSources/WeaveDataSource.as
+++ WeaveData/src/weave/data/DataSources/WeaveDataSource.as
@@ -470,9 +470,8 @@
 			if (request.proxyColumn.wasDisposed)
 				return;

-			var node:XML = HierarchyUtils.getLeafNodeFromPath(request.pathInHierarchy);
-			var str:String = node ? node.toXMLString() : '';
-			var msg:String = "Error retrieving column " + str + ' (' + event.fault.faultString + ')';
+			var xml:XML = HierarchyUtils.getLeafNodeFromPath(request.pathInHierarchy) || request.pathInHierarchy;
+			var msg:String = "Error retrieving column: " + xml.toXMLString() + ' (' + event.fault.faultString + ')';
 			reportError(event.fault, msg, request);

 			request.proxyColumn.setInternalColumn(ProxyColumn.undefinedColumn);


FLEX-33682 fixed issue with last commit ".." should be "."

--- frameworks/projects/advancedgrids/src/mx/printing/PrintAdvancedDataGrid.as
+++ frameworks/projects/advancedgrids/src/mx/printing/PrintAdvancedDataGrid.as
@@ -728,7 +728,7 @@
         	var n:int = source.mx_internal::rawColumns.length;
 	        for (var i:int = 0; i < n; i++)
 	        {
-	        	var sourceColumn:AdvancedDataGridColumn = source..mx_internal::rawColumns[i];
+	        	var sourceColumn:AdvancedDataGridColumn = source.mx_internal::rawColumns[i];

 	        	if (sourceColumn == source.treeColumn)
 	        	{


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

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

 package mx.graphics.shaderClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19800
Author:   hmuller@adobe.com
Date:     2011-01-19T17:43:25.081406Z

Log Message:
-----------
GridLayout optimization for GridItemRenderer (custom) item renderers.

IGridItemRenderer ASDoc cleanup.

Removed unused mx_internal method Grid/getDataProviderItemIndex().

GridColumnHeaderGroupLayout sets renderer owner property to dataGrid, as in GridLayout.

QE notes: One Mustella test screenshot to be revised (Jody)
Doc notes:
Bugs:
Reviewer: Carol
Tests run: checkin, mustella
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/UITextFieldGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/IGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
@@ -18,8 +18,8 @@
 {
 import flash.text.TextFieldAutoSize;

+import mx.core.UIFTETextField;
 import mx.core.mx_internal;
-import mx.core.UIFTETextField;
 import mx.styles.CSSMergedStyleDeclaration;
 import mx.styles.IStyleClient;
 import mx.styles.IStyleManager2;
@@ -102,12 +102,6 @@
 public class DefaultGridItemRenderer extends UIFTETextField implements IGridItemRenderer, IStyleClient
 {

-    //--------------------------------------------------------------------------
-    //
-    //  Constructor.
-    //
-    //--------------------------------------------------------------------------
-
     /**
      *  Constructor.
      *


Transferred from the Adobe Open Source Subversion Repository

Revision: 18532
Author:   chiedozi@adobe.com
Date:     2010-11-10T22:11:29.162852Z

Log Message:
-----------
Added a new menuKeyPressed event to FlexEvent that is dispatched on an active view when the menu key is pressed
A View can now cancel MobileApplication's default menu logic by canceling the menuKeyPressed event
MobileApplicationBase.backKeyHandler() now takes a KeyboardEvent as a parameter

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as
@@ -13,6 +13,7 @@
 {
 import flash.events.Event;
 import flash.events.InvokeEvent;
+import flash.events.KeyboardEvent;
 import flash.events.StageOrientationEvent;
 import flash.net.registerClassAlias;

@@ -639,9 +640,9 @@
     /**
      *  @private
      */
-    override protected function backKeyHandler():void
-    {
-        super.backKeyHandler();
+    override protected function backKeyHandler(event:KeyboardEvent):void
+    {
+        super.backKeyHandler(event);

         if (viewMenuOpen)
             viewMenuOpen = false;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18731
Author:   clucier@adobe.com
Date:     2010-11-19T15:50:29.937447Z

Log Message:
-----------
Initial drop of mobile SlideViewTransition inclusive of push/cover/pop modes, and up/down/left/right directions. Refactored and renamed classes per PARB review and current view transitions specification.

e.g. ViewTransition -> ViewTransitionBase , SlideViewTransition constructor signature changed.

QE notes: None
Doc notes: None
Bugs: None
Reviewer: Chiedo
Tests run: Checkin, TransitionTests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="dir" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as" copyfrom-rev="18652" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransition.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/ViewTransitionDirection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransitionMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="dir" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions</path>

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransitionMode.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/SlideViewTransitionMode.as
@@ -0,0 +1,49 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.transitions
+{
+
+/**
+ *  The SlideViewTransitionMode class provides the constants used when hinting
+ *  the style mode of a slide transition instance.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+ */
+public class SlideViewTransitionMode
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * The new view slides in to cover the previous view.
+     */
+    public static const COVER:String = "cover";
+
+    /**
+     * The previous view slides away as the new view slides in.
+     */
+    public static const PUSH:String = "push";
+
+    /**
+     * The previous view slides away to reveal the new view.
+     */
+    public static const UNCOVER:String = "uncover";
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 6443
Author:   rfrishbe@adobe.com
Date:     2009-04-30T22:46:07.257552Z

Log Message:
-----------
Renaming SkinnableComponent's loadSkin() and unloadSkin() skinning lifecycle methods to createSkin() and destroySkin() as no loading actually occurs here.

Also fixing up a few ASDoc bugs in the videoplayer stuff.  Also, checking in modifications to TrackBase, which was a file I missed yesterday when checking in.  The changes add 3 new events to TrackBase and clean it up so the setters don't do any extra work if it's being set to the same value as it was before.

QE Notes: -
Doc Notes: -
Bugs: SDK-19779
Reviewer: Jason
tests: checkintests, mustella SkinnableComponent tests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerScrubBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBarMuteButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/airspark/src/spark/components/windowClasses/TitleBar.as
+++ frameworks/projects/airspark/src/spark/components/windowClasses/TitleBar.as
@@ -295,14 +295,14 @@
      *  When we are running on the mac, switch to the mac skin and continue the load.
      *
      */
-    override protected function loadSkin():void
+    override protected function createSkin():void
     {
        if (isMac() && getStyle("skinClass") == TitleBarSkin)
        {
             setStyle("skinClass", MacTitleBarSkin);
        }

-       super.loadSkin();
+       super.createSkin();
     }

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


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

--- frameworks/projects/charts/src/mx/charts/renderers/ShadowBoxItemRenderer.as
+++ frameworks/projects/charts/src/mx/charts/renderers/ShadowBoxItemRenderer.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.renderers
 {


Add a .toString() method on BoundingBox class.

--- src/aerys/minko/type/bounding/BoundingBox.as
+++ src/aerys/minko/type/bounding/BoundingBox.as
@@ -175,5 +175,11 @@
 			vmax.y = _vertices[13] = _vertices[16] = _vertices[19] = _vertices[22] = max.y;
 			vmax.z = _vertices[8] = _vertices[11] = _vertices[14] = _vertices[17] = max.z;
 		}
+
+		public function toString() : String
+		{
+			return '[BoundingBox=(' + _min.toString() + '), (' + _max.toString() + ')]';
+		}
+
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 22083
Author:   aharui@adobe.com
Date:     2011-08-18T22:58:59.545709Z

Log Message:
-----------
Fix a Marshall Plan bug.  Popups were disturbing focus handling in the main app after they went way.

QE notes: none
Doc notes: none
Bugs: SDK-31246
Reviewer: Darrell
Tests run: Mustella Cyclone
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>

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

--- frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as
@@ -280,13 +280,59 @@
 		for (var i:int = forms.length - 1; i >= 0; i--)
 		{
 			// Verify the form is visible and enabled
-			if (forms[i] != f && canActivatePopUp(forms[i]))
+			if (!areFormsEqual(forms[i], f) && canActivatePopUp(forms[i]))
 				return forms[i];
 		}

         return null;  // should never get here
 	}

+    /**
+     * Test if two forms are equal.
+     *
+     * @param form1 - may be of type a DisplayObjectContainer or a RemotePopUp
+     * @param form2 - may be of type a DisplayObjectContainer or a RemotePopUp
+     *
+     * @return true if the forms are equal, false otherwise.
+     */
+    private function areFormsEqual(form1:Object, form2:Object):Boolean
+    {
+        if (form1 == form2)
+            return true;
+
+        // if the forms are both remote forms, then compare them, otherwise
+        // return false.
+        if (form1 is RemotePopUp && form2 is RemotePopUp)
+        {
+            return areRemotePopUpsEqual(form1, form2);
+        }
+
+        return false;
+    }
+
+    /**
+     * @private
+     *
+     * @return true if form1 and form2 are both of type RemotePopUp and are equal, false otherwise.
+     */
+    private static function areRemotePopUpsEqual(form1:Object, form2:Object):Boolean
+    {
+        if (!(form1 is RemotePopUp))
+            return false;
+
+        if (!(form2 is RemotePopUp))
+            return false;
+
+        var remotePopUp1:RemotePopUp = RemotePopUp(form1);
+        var remotePopUp2:RemotePopUp = RemotePopUp(form2);
+
+        if (remotePopUp1.window == remotePopUp2.window &&
+            remotePopUp1.bridge && remotePopUp2.bridge)
+            return true;
+
+        return false;
+    }
+

 	/**
 	 * @private


Transferred from the Adobe Open Source Subversion Repository

Revision: 7445
Author:   gruehle@adobe.com
Date:     2009-05-29T20:51:55.035384Z

Log Message:
-----------
Replace a bunch of event name literals with constants.

Bug: SDK-21271
QA Notes:
Doc Notes:
Reviewer: Chet

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/flex4/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SoundEffectInstance.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/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/ButtonBar.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/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/ErrorSkin.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
@@ -859,7 +859,7 @@
             textView.addEventListener(SelectionEvent.SELECTION_CHANGE,
                                       textView_selectionChangeHandler);

-            textView.addEventListener(TextOperationEvent.CHANGING,
+            textView.addEventListener(TextOperationEvent.CHANGING,
                                       textView_changingHandler);

             textView.addEventListener(TextOperationEvent.CHANGE,
@@ -888,10 +888,10 @@
             textView.removeEventListener(SelectionEvent.SELECTION_CHANGE,
                                          textView_selectionChangeHandler);

-            textView.removeEventListener("changing",
+            textView.removeEventListener(TextOperationEvent.CHANGING,
                                          textView_changingHandler);

-            textView.removeEventListener("change",
+            textView.removeEventListener(TextOperationEvent.CHANGE,
                                          textView_changeHandler);

             textView.removeEventListener(FlexEvent.ENTER,


Transferred from the Adobe Open Source Subversion Repository

Revision: 3723
Author:   gosmith@adobe.com
Date:     2008-10-17T21:06:45.659621Z

Log Message:
-----------
The 'content' property of an FxTextArea now updates as you edit text in it. The failure to do so was having the side-effect of not being able to set 'content' to something, then edit, then set 'content' back to the same thing.

Reviewer: Ryan
Bugs: SDK-17396
QA: No
Doc: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxTextArea.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
@@ -283,7 +283,7 @@
                                          textView_changingHandler);

 			textView.removeEventListener("change",
-                                          textView_changeHandler);
+                                         textView_changeHandler);

 			textView.removeEventListener(FlexEvent.ENTER,
                                          textView_enterHandler);
@@ -405,11 +405,10 @@
 	}

 	/**
-	 *  @private
 	 *  Called when the TextView dispatches a 'change' event
 	 *  after an editing operation.
 	 */
-	private function textView_changeHandler(event:TextOperationEvent):void
+	protected function textView_changeHandler(event:TextOperationEvent):void
 	{
 		// Update our storage variable for the text string.
 		mx_internal::_text = textView.text;


Transferred from the Adobe Open Source Subversion Repository

Revision: 15871
Author:   dloverin@adobe.com
Date:     2010-05-03T19:14:33.392012Z

Log Message:
-----------
Changes so modules and sub-applications will not load RSLs that are already loaded.

Changes to support not loading RSLs that are already loaded.

frameworks/projects/framework/src/mx/core/RSLData.as
            New class to allow access to RSL properties in a structured way.

frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as
            Used new format of rsl data. Cleaned up  constructor.

frameworks/projects/framework/src/mx/core/FlexModuleFactory.as
frameworks/projects/framework/src/mx/managers/SystemManager.as
            Checked if an RSL is already loaded before loading it. In the future this check could retrieve the module factory  of where the RSL should be loaded.

frameworks/projects/framework/src/mx/utils/LoaderUtil.as
            New method to check for loaded RSLs.

modules/compiler/src/java/flex2/tools/PreLink.java
            Generate RSL data in new format. Digests are now always present even when verify-digests is false. The value of verify digests is passed as an RSL property. Cache the value of info().

QE notes: None.
Doc notes: New feature.
Bugs:
Reviewer: Alex
Tests run: checkintests, submitted patch to testing service.
Is noteworthy for integration: No.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/RSLData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>

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

--- frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as
+++ frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as
@@ -29,6 +29,7 @@
 import flash.utils.ByteArray;
 //import flash.utils.getTimer;        // PERFORMANCE_INFO

+import mx.core.RSLData;
 import mx.events.RSLEvent;
 import mx.utils.SHA256;
 import mx.utils.LoaderUtil;
@@ -57,11 +58,12 @@
     //
     //--------------------------------------------------------------------------

-    private var rslUrls:Array;  // first url is the primary url in the url parameter, others are failovers
-    private var policyFileUrls:Array; // optional policy files, parallel array to rslUrls
-    private var digests:Array;      // option rsl digest, parallel array to rslUrls
-    private var isSigned:Array;     // each entry is a boolean value. "true" if the rsl in the parallel array is signed
-    private var hashTypes:Array;     //  type of hash used to create the digest
+    private var rsls:Array = [];     // of type RSLInstanceData
+//    private var rslUrls:Array;  // first url is the primary url in the url parameter, others are failovers
+//    private var policyFileUrls:Array; // optional policy files, parallel array to rslUrls
+//    private var digests:Array;      // option rsl digest, parallel array to rslUrls
+//    private var isSigned:Array;     // each entry is a boolean value. "true" if the rsl in the parallel array is signed
+//    private var hashTypes:Array;     //  type of hash used to create the digest
     private var urlIndex:int = 0;   // index into url being loaded in rslsUrls and other parallel arrays

     // this reference to the loader keeps the loader from being garbage
@@ -79,20 +81,9 @@
     /**
     *  Create a cross-domain RSL item to load.
     *
-    *  @param rslUrls Array of Strings, may not be null. Each String is the url of an RSL to load.
-    *  @param policyFileUrls Array of Strings, may not be null. Each String contains the url of an
-    *                       policy file which may be required to allow the RSL to be read from another
-    *                       domain. An empty string means there is no policy file specified.
-    *  @param digests Array of Strings, may not be null. A String contains the value of the digest
-    *                computed by the hash in the corresponding entry in the hashTypes Array. An empty
-    *                string may be provided for unsigned RSLs to loaded them without verifying the digest.
-    *                This is provided as a development cycle convenience and should not be used in a
-    *                production application.
-    *  @param hashTypes Array of Strings, may not be null. Each String identifies the type of hash
-    *                  used to compute the digest. Currently the only valid value is SHA256.TYPE_ID.
-    *  @param isSigned Array of boolean, may not be null. Each boolean value specifies if the RSL to be
-    *                  loaded is a signed or unsigned RSL. If the value is true the RSL is signed.
-    *                  If the value is false the RSL is unsigned.
+    *  @param rsls Array of Objects. Each Object describes and RSL to load.
+    *  The first Object in the Array is the primary RSL and the others are
+    *  failover RSLs.
     *  @param rootURL provides the url used to locate relative RSL urls.
     *  @param moduleFactory The module factory that is loading the RSLs. The
     *  RSLs will be loaded into the application domain of the given module factory.
@@ -104,21 +95,13 @@
     *  @playerversion AIR 1.1
     *  @productversion Flex 3
     */
-    public function CrossDomainRSLItem(rslUrls:Array,
-                             policyFileUrls:Array,
-                             digests:Array,
-                             hashTypes:Array,
-                             isSigned:Array,
+    public function CrossDomainRSLItem(rsls:Array,
                              rootURL:String = null,
                              moduleFactory:IFlexModuleFactory = null)
     {
-        super(rslUrls[0], rootURL, moduleFactory);
-
-        this.rslUrls = rslUrls;
-        this.policyFileUrls = policyFileUrls;
-        this.digests = digests;
-        this.hashTypes = hashTypes;
-        this.isSigned = isSigned;
+        super(rsls[0].url, rootURL, moduleFactory);
+
+        this.rsls = rsls;

         // startTime = getTimer(); // PERFORMANCE_INFO
     }
@@ -126,14 +109,35 @@

     //--------------------------------------------------------------------------
     //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+
+    /**
+     *  Get the RSLData for the current RSL. This could be the primary RSL or one
+     *  of the failover RSLs.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    private function get currentRSLData():RSLData
+    {
+        return RSLData(rsls[urlIndex]);
+    }
+
+    //--------------------------------------------------------------------------
+    //
     //  Overridden Methods
     //
     //--------------------------------------------------------------------------

-    /**
-     *
-     * Load an RSL.
+   /**
+    *
+    * Load an RSL.
     *
     * @param progressHandler       receives ProgressEvent.PROGRESS events, may be null
     * @param completeHandler       receives Event.COMPLETE events, may be null
@@ -187,7 +191,9 @@
 *  @productversion Flex 3
 */

-        urlRequest = new URLRequest(LoaderUtil.createAbsoluteURL(rootURL, rslUrls[urlIndex]));
+        var rslData:RSLData = currentRSLData;
+        urlRequest = new URLRequest(LoaderUtil.createAbsoluteURL(rootURL, rslData.url));
+
         var loader:URLLoader = new URLLoader();
         loader.dataFormat = URLLoaderDataFormat.BINARY;

@@ -205,34 +211,15 @@
         loader.addEventListener(
             SecurityErrorEvent.SECURITY_ERROR, itemErrorHandler);

-        if (policyFileUrls.length > urlIndex &&
-            policyFileUrls[urlIndex] != "")
-        {
-            Security.loadPolicyFile(policyFileUrls[urlIndex]);
-        }
-
-        if (isSigned[urlIndex])
-        {
-            if (urlRequest.hasOwnProperty("digest"))
-            {
-                // load a signed rsl by specifying the digest
-                urlRequest.digest = digests[urlIndex];
-            }
-            else if (hasFailover())
-            {
-                loadFailover();
-                return;
-            }
-            else
-            {
-                // B Feature: externalize error message
-                var rslError:ErrorEvent = new ErrorEvent(RSLEvent.RSL_ERROR);
-                rslError.text = "Flex Error #1002: Flash Player 9.0.115 and above is required to support signed RSLs. Problem occurred when trying to load the RSL " +
-                                urlRequest.url +
-                                ".  Upgrade your Flash Player and try again.";
-                super.itemErrorHandler(rslError);
-                return;
-            }
+        if (rslData.policyFileUrl != "")
+        {
+            Security.loadPolicyFile(rslData.policyFileUrl);
+        }
+
+        if (rslData.isSigned)
+        {
+            // load a signed rsl by specifying the digest
+            urlRequest.digest = rslData.digest;
         }

 //        trace("start load of " + urlRequest.url + " at " + (getTimer() - startTime)); // PERFORMANCE_INFO
@@ -285,13 +272,14 @@
         }

         // verify the digest, if any, is correct
-        if (digests[urlIndex] != null && String(digests[urlIndex]).length > 0)
+        var rslData:RSLData = currentRSLData;
+        if (rslData.digest != null && rslData.verifyDigest)
         {
             var verifiedDigest:Boolean = false;
-            if (!isSigned[urlIndex])
+            if (!rslData.isSigned)
             {
                 // verify an unsigned rsl
-                if (hashTypes[urlIndex] == SHA256.TYPE_ID)
+                if (rslData.hashType == SHA256.TYPE_ID)
                 {
                     // get the bytes from the rsl and calculate the hash
                     var rslDigest:String = null;
@@ -300,7 +288,7 @@
                         rslDigest = SHA256.computeDigest(urlLoader.data);
                     }

-                    if (rslDigest == digests[urlIndex])
+                    if (rslDigest == rslData.digest)
                     {
                         verifiedDigest = true;
                     }
@@ -348,7 +336,7 @@
     */
     public function hasFailover():Boolean
     {
-        return (rslUrls.length > (urlIndex + 1));
+        return (rsls.length > (urlIndex + 1));
     }

@@ -363,12 +351,12 @@
     public function loadFailover():void
     {
         // try to load the failover from the same node again
-        if (urlIndex < rslUrls.length)
-        {
-            trace("Failed to load RSL " + rslUrls[urlIndex]);
-            trace("Failing over to RSL " + rslUrls[urlIndex+1]);
+        if (urlIndex < rsls.length)
+        {
+            trace("Failed to load RSL " + currentRSLData.url);
+            trace("Failing over to RSL " + RSLData(rsls[urlIndex+1]).url);
             urlIndex++;        // move to failover url
-            url = rslUrls[urlIndex];
+            url = currentRSLData.url;
             load(chainedProgressHandler,
                  chainedCompleteHandler,
                  chainedIOErrorHandler,


Transferred from the Adobe Open Source Subversion Repository

Revision: 8625
Author:   jszeto@adobe.com
Date:     2009-07-16T17:59:26.132133Z

Log Message:
-----------
Updating copyright text

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/FilledElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Line.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/RadialGradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Ellipse.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Rect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as</path>

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

--- frameworks/projects/framework/src/mx/graphics/GradientStroke.as
+++ frameworks/projects/framework/src/mx/graphics/GradientStroke.as
@@ -1,3 +1,14 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.graphics
 {
 import flash.display.CapsStyle;