Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

--- frameworks/projects/spark/src/spark/components/HScrollBar.as
+++ frameworks/projects/spark/src/spark/components/HScrollBar.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 19266
Author:   hmuller@adobe.com
Date:     2010-12-10T17:32:59.920871Z

Log Message:
-----------
Added support for the liveDragging style to ScrollerBase in the same way it was added in SliderBase. In addition to the new style, this adds a protected pendingValue property to ScrollerBase.

Added a Scroller liveScrolling style that sets the liveDragging style on the Scroller's scrollbars.

QE notes: This is a new Scroller feature to be tested.
Doc notes:
Bugs: SDK-28039
Reviewer: Carol
Tests run: checkin
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>

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

--- frameworks/projects/spark/src/spark/components/VScrollBar.as
+++ frameworks/projects/spark/src/spark/components/VScrollBar.as
@@ -210,7 +210,7 @@
             }

             // calculate new thumb position.
-            thumbPosTrackY = (value - minimum) * ((trackSize - thumbSize) / range);
+            thumbPosTrackY = (pendingValue - minimum) * ((trackSize - thumbSize) / range);
         }

         if (getStyle("fixedThumbSize") === false)
@@ -343,7 +343,7 @@
         {
             // Want to use ScrollBarBase's changeValueByStep() implementation to get the same
             // animated behavior for scrollbars with and without viewports.
-            // For now, just change pageSize temporarily and call the superclass
+            // For now, just change stepSize temporarily and call the superclass
             // implementation.
             oldStepSize = stepSize;
             stepSize = Math.abs(viewport.getVerticalScrollPositionDelta(


Transferred from the Adobe Open Source Subversion Repository

Revision: 10402
Author:   gruehle@adobe.com
Date:     2009-09-18T20:08:24.668748Z

Log Message:
-----------
Move the focus exclusion code from FocusSkin to SparkSkin. Refactor common code in FocusSkin and ErrorSkin into a new HighlightBitmapCaptureSkin base class. Fix focus/error skin rendering issues with contentBackgroundAlpha set to low values.

QE notes: -
Doc notes: Added new class HighlightBitmapCaptureSkin.
Bugs: SDK-23209, SDK-23204, SDK-23200
Reviewer: Ely
Tests run: checkintests, mustella gumbo Button, List, CheckBox, TextInput
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/HighlightBitmapCaptureSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ErrorSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ScrollerSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as
+++ frameworks/projects/spark/src/spark/skins/spark/FocusSkin.as
@@ -43,7 +43,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class FocusSkin extends UIComponent
+public class FocusSkin extends HighlightBitmapCaptureSkin
 {
     include "../../core/Version.as";

@@ -92,44 +92,9 @@
     //
     //--------------------------------------------------------------------------

-    /**
-     *  Bitmap capture of the focused component. This bitmap includes a glow
-     *  filter that shows the focus glow.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    private var bitmap:Bitmap;
-
-    /**
-     *  @private
-     */
-    private var _focusObject:SkinnableComponent;
-
-    /**
-     *  Object to draw focus around.  If null, uses focusManager.getFocus();
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get focusObject():SkinnableComponent
+    override protected function get borderWeight() : Number
     {
-        return _focusObject;
-    }
-
-    public function set focusObject(value:SkinnableComponent):void
-    {
-        _focusObject = value;
-
-        // Add an "updateComplete" listener to the skin so we can redraw
-        // whenever the skin is drawn.
-        if (_focusObject.skin)
-            _focusObject.skin.addEventListener(FlexEvent.UPDATE_COMPLETE,
-                    skin_updateCompleteHandler, false, 0, true);
+        return getStyle("focusThickness");
     }

     //--------------------------------------------------------------------------
@@ -138,203 +103,38 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  @private
+     */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
-        // Grab a bitmap of the focused object
-        if (!focusObject && focusManager)
-            focusObject = focusManager.getFocus() as SkinnableComponent;
-
-        // if we weren't handed a focusObject or we had no focusManager to
-        // give us one, then exit early
-        if (!focusObject)
-           return;
-
-        var focusThickness:Number = focusObject.getStyle("focusThickness");
-        var bitmapData:BitmapData = new BitmapData(
-                    focusObject.width + (focusThickness * 2),
-                    focusObject.height + (focusThickness * 2), true, 0);
-        var m:Matrix = new Matrix();
-
-        // If the focus object already has a focus skin, make sure it is hidden.
-        if (focusObject.focusObj)
-            focusObject.focusObj.visible = false;
-
-        // Ensure no 3D transforms apply, as this skews our snapshot bitmap.
-        var transform3D:Matrix3D = null;
-        if (focusObject.$transform.matrix3D)
-        {
-            transform3D = focusObject.$transform.matrix3D;
-            focusObject.$transform.matrix3D = null;
-        }
-
-		/* Some skins may have elements inside of them that they don't
-		want considered for the focus skins.  if they list any sub elements
-		using the focusSkinExclusions property, we need to first set them to
-		invisible before we render our bitmap
-		*/
-		var skin:Skin = focusObject.skin;
-		var exclusions:Array = skin.focusSkinExclusions;
-		var exclusionCount:Number = (exclusions == null)? 0:exclusions.length;
-		/* we'll store off the previous visibility of the exclusions so we
-		can restore them when we're done
-		*/
-		var exclusionVisibilityValues:Array = [];
-		var needRedraw:Boolean = false;
-		for(var i:int = 0;i<exclusionCount;i++)
-		{
-			var ex:Object = exclusions[i];
-			/* we're going to go under the covers here to try and modify visibility with the least
-			amount of disruption to the component.  For UIComponents, we go to Sprite's alpha property;
-			*/
-			if(ex is UIComponent)
-			{
-				exclusionVisibilityValues[i] = (ex as UIComponent).$alpha;
-				(ex as UIComponent).$alpha = 0;
-			}
-			else if (ex is DisplayObject)
-			{
-				exclusionVisibilityValues[i] = (ex as UIComponent).alpha;
-				(ex as UIComponent).alpha = 0;
-			}
-			else if (ex is IGraphicElement)
-			{
-				/* if we're lucky, the IGE has its own DisplayObject, and we can just trip its visibility.
-				If not, we're going to have to set it to invisible, and force a redraw of the whole component */
-				var ge:IGraphicElement = ex as IGraphicElement;
-				if(ge.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
-				{
-					exclusionVisibilityValues[i] = ge.displayObject.alpha;
-					ge.displayObject.alpha = 0;
-				}
-				else
-				{
-					exclusionVisibilityValues[i] = ge.alpha;
-					ge.alpha = 0;
-					needRedraw = true;
-				}
-			}
-
-		}
-		/* if we excluded an IGE without its own DO, we need to update the component before grabbing the bitmap */
-		if(needRedraw)
-			skin.validateNow();
-
-        m.tx = focusThickness;
-        m.ty = focusThickness;
-        bitmapData.draw(focusObject as IBitmapDrawable, m);
-
-        // Show the focus skin, if needed.
-        if (focusObject.focusObj)
-            focusObject.focusObj.visible = true;
-
-		/* now go through and reverse our visibility modifications.  For any excluded component
-		that we made invisible, set it back to its previous value
-		*/
-		needRedraw = false;
-		for(i=0;i<exclusionCount;i++)
-		{
-			ex = exclusions[i];
-			if(ex is UIComponent)
-			{
-				(ex as UIComponent).$alpha = exclusionVisibilityValues[i];
-			}
-			else if (ex is DisplayObject)
-			{
-				(ex as UIComponent).alpha = exclusionVisibilityValues[i];
-			}
-			else if (ex is IGraphicElement)
-			{
-				ge  = ex as IGraphicElement;
-				if(ge.displayObjectSharingMode == DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT)
-				{
-					ge.displayObject.alpha = exclusionVisibilityValues[i];
-				}
-				else
-				{
-					/* note that this is using a public API of GraphicElements that will, in fact,
-					trigger another update pass on the graphic element
-					*/
-					ge.alpha = exclusionVisibilityValues[i];
-				}
-			}
-
-		}
-
-        // Special case for Scroller - fill the entire rect.
-        // FIXME (gruehle): Figure out a better solution.
-        if (weakIsCheck(focusObject, "spark.components::Scroller"))
-        {
-            rect.x = rect.y = focusThickness;
-            rect.width = focusObject.width;
-            rect.height = focusObject.height;
-            bitmapData.fillRect(rect, 0xFFFFFFFF);
-        }
-
-        // Transform the color to remove the transparency. The GlowFilter has the "knockout" property
-        // set to true, which removes this image from the final display, leaving only the outer glow.
-        rect.x = rect.y = focusThickness;
-        rect.width = focusObject.width;
-        rect.height = focusObject.height;
-        bitmapData.colorTransform(rect, colorTransform);
-
-        // Apply the glow filter
-        rect.x = rect.y = 0;
-        rect.width = bitmapData.width;
-        rect.height = bitmapData.height;
-        // If the focusObject has an errorString, use "errorColor" instead of "focusColor"
-        if (focusObject.errorString != null && focusObject.errorString != "")
-        {
-            glowFilter.color = focusObject.getStyle("errorColor");
-        }
-        else
-        {
-            glowFilter.color = focusObject.getStyle("focusColor");
-        }
-        glowFilter.blurX = glowFilter.blurY = focusThickness * BLUR_MULTIPLIER;
-        glowFilter.alpha = focusObject.getStyle("focusAlpha") * ALPHA_MULTIPLIER;
-
-        bitmapData.applyFilter(bitmapData, rect, filterPt, glowFilter);
-
-        if (!bitmap)
-        {
-            bitmap = new Bitmap();
-            addChild(bitmap);
-        }
-
-        bitmap.x = bitmap.y = -focusThickness;
-        bitmap.bitmapData = bitmapData;
-
-        blendMode = focusObject.getStyle("focusBlendMode");
-
-        // Restore original 3D matrix if applicable.
-        if (transform3D)
-            focusObject.$transform.matrix3D = transform3D;
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        blendMode = target.getStyle("focusBlendMode");
     }
-
-    private static var classDefCache:Object = {};

     /**
      *  @private
      */
-    private function weakIsCheck(obj:Object, className:String):Boolean
+    override protected function processBitmap() : void
     {
-        if (!(className in classDefCache))
-        {
-            var classObj:Class = Class(systemManager.getDefinitionByName(className));
-
-            classDefCache[className] = classObj;
+        // Apply the glow filter
+        rect.x = rect.y = 0;
+        rect.width = bitmap.width;
+        rect.height = bitmap.height;
+        // If the focusObject has an errorString, use "errorColor" instead of "focusColor"
+        if (target.errorString != null && target.errorString != "")
+        {
+            glowFilter.color = target.getStyle("errorColor");
         }
+        else
+        {
+            glowFilter.color = target.getStyle("focusColor");
+        }
+        glowFilter.blurX = glowFilter.blurY = borderWeight * BLUR_MULTIPLIER;
+        glowFilter.alpha = target.getStyle("focusAlpha") * ALPHA_MULTIPLIER;

-        if (!classDefCache[className])
-            return false;
-
-        return obj is classDefCache[className];
-    }
-
-    private function skin_updateCompleteHandler(event:Event):void
-    {
-        // We need to redraw whenever the focus object skin redraws.
-        invalidateDisplayList();
+        bitmap.bitmapData.applyFilter(bitmap.bitmapData, rect, filterPt, glowFilter);
     }
 }
 }


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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as
@@ -644,6 +644,9 @@
         renderer.column = column;
         renderer.label = column.headerText;

+        if (columnHeaderGroup.dataGrid)
+            renderer.owner = grid.dataGrid;
+
         const columnHeaderGroup:GridColumnHeaderGroup = columnHeaderGroup;
         renderer.hovered = columnIndex == columnHeaderGroup.hoverColumnIndex;
         renderer.down = columnIndex == columnHeaderGroup.downColumnIndex;


Transferred from the Adobe Open Source Subversion Repository

Revision: 16596
Author:   cframpto@adobe.com
Date:     2010-06-18T15:50:44.761276Z

Log Message:
-----------
The following changes apply to Spark DataGrid only.   Code reviews have been deferred until the implementation is closer to completion.

More work on ColumnHeaderBar.  It is no longer commented out in the DataGridSkin but if you have problems you can comment it out again.

checkintests pass

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ColumnHeaderBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/DefaultColumnHeaderRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/ColumnHeaderBarSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/GridContainerBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ColumnHeaderBarLayout.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/MouseEventUtil.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridColumnHeaderGroupLayout.as
@@ -0,0 +1,249 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.components.supportClasses
+{
+import flash.geom.Rectangle;
+
+import mx.core.ILayoutElement;
+import mx.core.IVisualElement;
+import mx.core.mx_internal;
+
+import spark.layouts.supportClasses.LayoutBase;
+
+use namespace mx_internal;
+
+public class ColumnHeaderBarLayout extends LayoutBase
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function ColumnHeaderBarLayout()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private var gridLayout:GridLayout;
+
+    /**
+     *  @private
+     */
+    private var visibleColumnIndices:Vector.<int> = new Vector.<int>;
+
+    /**
+     *  @private
+     */
+    private var oldVisibleColumnIndices:Vector.<int>;
+
+    /**
+     *  @private
+     */
+    private var visibleHeaderSeparators:Vector.<IVisualElement> =
+                                        new Vector.<IVisualElement>(0);
+
+    //---------------------------------------------------------------
+    //
+    //  Class properties
+    //
+    //---------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get useVirtualLayout():Boolean
+    {
+        return true;
+    }
+
+    /**
+     *  @private
+     */
+    override public function set useVirtualLayout(value:Boolean):void
+    {
+    }
+
+    /**
+     *  @private
+     */
+    private function get columnGap():Number
+    {
+        return gridDimensions ? gridDimensions.columnGap : 0;
+    }
+
+    /**
+     *  @private
+     *  The GridDimensions associated with this CHB.
+     */
+    private function get gridDimensions():GridDimensions
+    {
+        return gridLayout ? gridLayout.gridDimensions : null;
+    }
+
+    //---------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //---------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Used to connect this layout with the grid layout and to
+     *  signal to this layout that it needs to update.
+     */
+    public function updateLayout(layout:GridLayout):void
+    {
+        gridLayout = layout;
+
+        const layoutTarget:GroupBase = target;
+        if (layoutTarget)
+            layoutTarget.invalidateDisplayList();
+    }
+
+    //---------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //---------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function measure():void
+    {
+        var totalWidth:Number = 0;
+        var totalHeight:Number = 0;
+
+        // loop through the elements
+        var layoutTarget:GroupBase = target;
+        if (!layoutTarget)
+            return;
+
+        var count:int = layoutTarget.numElements;
+        for (var i:int = 0; i < count; i++)
+        {
+            var element:ILayoutElement = layoutTarget.getVirtualElementAt(i);
+
+            // The element returned could still be null. Look at the typical
+            // element instead.
+            if (!element)
+                element = typicalLayoutElement;
+
+            // Find the preferred sizes
+            var elementWidth:Number = element.getPreferredBoundsWidth();
+            var elementHeight:Number = element.getPreferredBoundsHeight();
+
+            totalWidth += elementWidth;
+            totalHeight = Math.max(totalHeight, elementHeight);
+        }
+        if (count > 0)
+            totalWidth += (count - 1) * columnGap;
+
+        layoutTarget.measuredWidth = totalWidth;
+        layoutTarget.measuredHeight = totalHeight;
+
+        // Since we really can't fit the content in space any
+        // smaller than this, set the measured minimum size
+        // to be the same as the measured size.
+        // If the container is clipping and scrolling, it will
+        // ignore these limits and will still be able to
+        // shrink below them.
+        layoutTarget.measuredMinWidth = totalWidth;
+        layoutTarget.measuredMinHeight = totalHeight;
+    }
+
+    /**
+     *  @private
+     */
+    override public function updateDisplayList(unscaledWidth:Number,
+                                               unscaledHeight:Number):void
+    {
+        var maxHeight:Number = 0;
+
+        var layoutTarget:GroupBase = target;
+        if (!layoutTarget || !gridLayout)
+            return;
+
+        oldVisibleColumnIndices = visibleColumnIndices;
+        visibleColumnIndices = gridLayout.getVisibleColumnIndices();
+
+        for each (var columnIndex:int in visibleColumnIndices)
+        {
+            var element:ILayoutElement =
+                layoutTarget.getVirtualElementAt(columnIndex);
+
+            const bounds:Rectangle = gridDimensions.getColumnBounds(columnIndex);
+
+            const elementWidth:Number = bounds.width;
+
+            var elementHeight:Number;
+            const prefHeight:Number =
+                typicalLayoutElement.getPreferredBoundsHeight();
+            if (prefHeight)
+            {
+                elementHeight = prefHeight;
+            }
+            else
+            {
+                // Find out the element's dimensions sizes.
+                // We do this after the element has been already resized
+                // to its preferred size by passing NaN for the constraints.
+                element.setLayoutBoundsSize(NaN, NaN);
+                elementHeight = element.getLayoutBoundsHeight();
+            }
+            element.setLayoutBoundsSize(elementWidth, elementHeight);
+
+            // Position the element.
+            element.setLayoutBoundsPosition(bounds.x, 0);
+
+            // Find maximum element extents. This is needed for
+            // the scrolling support.
+            maxHeight = Math.max(maxHeight, elementHeight);
+        }
+
+        // Scrolling support - update the content size
+        layoutTarget.setContentSize(gridDimensions.contentWidth, maxHeight);
+
+        // ToDo(cframpto):
+        // These separators will need mouse listeners for the column move.
+        // The listeners will have to be removed when the separators are freed
+        // or will have to be cached in a seperate freed list.
+
+        // Now layout the separators between the headers.
+        visibleHeaderSeparators = gridLayout.layoutColumnHeaderSeparators(
+                                                oldVisibleColumnIndices,
+                                                visibleColumnIndices,
+                                                visibleHeaderSeparators);
+
+        oldVisibleColumnIndices.length = 0;
+    }
+
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 7967
Author:   gosmith@adobe.com
Date:     2009-06-18T19:44:16.674676Z

Log Message:
-----------
PARB changes to TextGraphicElement/SimpleText/RichText and to text styles in general.

TextGraphicElement:

The 'truncation' property has been renamed to 'maxDisplayedLines'.

The isTruncated() method has become an 'isTruncated' read-only property.

RichText:

Since a TextFlow object is the fundamental representation for rich test in TLF, the RichText component now has a public textFlow:TextFlow property which you can get or set. To turn TLF markup -- in either String or XML form -- into a TextFlow, use the static importFromString() and importFromXML() methods in the TextFlowUtil class. These are bindable methods so that if the markup parameter changes they will re-evaluate. To turn the TextFlow back into markup, use TextFLowUtil.export(...) to produce XML.

The 'content' property is now intended only for use by the MXML compiler. It is set-only and only supports being set to what MXML markup produces: a String (which will be treated as the text of an implicit span in an implicit paragraph), a FlowElement, or an Array of Strings and FlowElements.

The 'text', 'textFlow', and 'content' properties are interacting properties. For example, you can set 'textFlow' and then get the 'text', and vice versa. In fact, you can now do this immediately, without waiting for the component to undergo a LayoutManager pass. Of these three properties, the last one set in ActionScript wins; if more than one is set in MXML the results are undefined since MXML does not guarantee the order in which properties are set. Setting any of them to null is equivalent to setting the 'text' to the empty String, which is the initial state of the component.

Styles:

The 'lineBreak' style is now non-inheriting, since in TLF it doesn't inherit from FlowElement to FlowElement.

The text styles are now divided into five buckets:

BasicInheritingTextStyles.as
BasicNonInheritingTextStyles.as
AdvancedInheritingTextStyles.as
AdvancedNonInheritingTextStyles.as
SelectionFormatTextStyles.as

Skinnable components like TextInput and TextArea no longer declare any on the noninheriting text styles, because the RichTextElement in the skin doesn't inherit them. You must set them directly on the RichTextElement in the component's skin, either with ActionScript or by reskinning.

The styleInitialized() method has been added to the IAdvancedStyleClient interface.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Carol

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<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/wireframe/src/spark/skins/wireframe/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicTextLayoutFormatStyles.as" copyfrom-rev="7910" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/SparkChromeWindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/WindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultButtonSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProxy.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicTextLayoutFormatStyles.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/utils/TextFlowUtil.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedNonInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ButtonBarMiddleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/TitleBarSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/NonInheritingTextLayoutFormatStyles.as" copyfrom-rev="7910" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/BasicNonInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/CheckBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/CheckBoxSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/NonInheritingTextLayoutFormatStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/RadioButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/RadioButtonSkin.mxml</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedTextLayoutFormatStyles.as" copyfrom-rev="7910" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/styles/metadata/AdvancedInheritingTextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/windowChrome/MacTitleBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -20,8 +20,8 @@
 import mx.events.FlexEvent;
 import mx.managers.IFocusManagerComponent;

-include "../styles/metadata/AdvancedTextLayoutFormatStyles.as"
-include "../styles/metadata/BasicTextLayoutFormatStyles.as"
+include "../styles/metadata/BasicInheritingTextStyles.as"
+include "../styles/metadata/AdvancedInheritingTextStyles.as"
 include "../styles/metadata/SelectionFormatTextStyles.as"

 /**


Pool the bitmap objects (might not be worth it).

git-svn-id: 41360ad359616a519dfba9f2f48af1afe653c9f7@99 be230a1c-449f-4488-b524-6273046f66f0

--- src/as/client/ClientApp.as
+++ src/as/client/ClientApp.as
@@ -871,7 +871,8 @@
                 var bitmap :Bitmap = _bitmaps[idx];
                 if (nvalue != 0x20) {
                     if (bitmap == null) {
-                        _bitmaps[idx] = bitmap = new Bitmap();
+                        _bitmaps[idx] = bitmap = (_bitmapPool.length == 0) ?
+                            new Bitmap() : _bitmapPool.pop();
                         bitmap.x = _x + xx*_charWidth;
                         bitmap.y = _y + yy*_charHeight;
                         addChildAt(bitmap, 1);
@@ -881,6 +882,8 @@
                 } else if (bitmap != null) {
                     removeChild(bitmap);
                     _bitmaps[idx] = null;
+                    bitmap.bitmapData = null;
+                    _bitmapPool.push(bitmap);
                 }
             }
         }
@@ -1039,6 +1042,9 @@
     /** The character bitmaps for each location. */
     protected var _bitmaps :Array;

+    /** A pool of bitmaps to reuse. */
+    protected var _bitmapPool :Array = new Array();
+
     /** The cached bitmap data for each character. */
     protected var _bitmapData :Object;


conform to coding standards

conform to coding standards

--- exporter/src/main/as/flump/SwfTexture.as
+++ exporter/src/main/as/flump/SwfTexture.as
@@ -23,11 +23,12 @@

 public class SwfTexture
 {
-    public function get symbol():String {   return _symbol;     }
-    public function get origin():Point  {   return new Point(_origin.x*_scale, _origin.y*_scale);     }
-    public function get w():int {   return Math.ceil(_w*_scale);  }
-    public function get h():int {   return Math.ceil(_h*_scale);  }
-    public function get a():int {   return this.w*this.h;  }
+    public var symbol :String;
+    public var quality :String;
+    public function get origin() :Point { return new Point(_origin.x * _scale, _origin.y * _scale); }
+    public function get w() :int { return Math.ceil(_w * _scale); }
+    public function get h() :int { return Math.ceil(_h * _scale); }
+    public function get a() :int { return this.w * this.h; }

     public static function fromFlipbook (lib :XflLibrary, movie :MovieMold, frame :int,
         quality :String = StageQuality.BEST, scale :Number = 1) :SwfTexture {
@@ -50,8 +51,8 @@
     }

     public function SwfTexture (symbol :String, disp :DisplayObject, scale :Number, quality :String) {
-        _symbol = symbol;
-        _quality = quality;
+        this.symbol = symbol;
+        this.quality = quality;

         // wrap object twice for convenience
         var wrapper:Sprite = new Sprite();
@@ -96,11 +97,11 @@
         var bmd :BitmapData = new BitmapData(Math.ceil(_w), Math.ceil(_h), true, 0x00);
         var m :Matrix = new Matrix();
         m.translate(_origin.x, _origin.y);
-        bmd.drawWithQuality(_disp, m, null, null, null, true, _quality);
+        bmd.drawWithQuality(_disp, m, null, null, null, true, this.quality);

         // scale bitmap to target size if necessary (only used if _disp contains filters)
         if (_scale != 1.0) {
-            bmd = Util.renderToBitmapData(bmd, this.w, this.h, _quality, _scale);
+            bmd = Util.renderToBitmapData(bmd, this.w, this.h, this.quality, _scale);
         }

         // add padding if necessary
@@ -119,7 +120,7 @@
             // render to bmd
             var topLeft:Point = new Point(_s_filteredBmd.width / 2 - _strictBounds.width / 2 - _strictBounds.x, _s_filteredBmd.height / 2 - _strictBounds.height / 2 - _strictBounds.y);
             var m :Matrix = new Matrix(1,0,0,1, topLeft.x, topLeft.y);
-            _s_filteredBmd.drawWithQuality(_disp, m, null, null, null, true, _quality);
+            _s_filteredBmd.drawWithQuality(_disp, m, null, null, null, true, this.quality);

             // calculate visual bounds
             _visualBounds = _s_filteredBmd.getColorBoundsRect(0xff000000, 0x00000000, false);
@@ -159,14 +160,12 @@
         return false;
     }

-    private var _symbol :String;
     private var _disp :DisplayObjectContainer;
     private var _w :int, _h :int;
     private var _origin :Point;
     private var _strictBounds :Rectangle;
     private var _visualBounds :Rectangle;
     private var _scale :Number;
-    private var _quality :String;
     private var _treatAsFiltered:Boolean;

     static private var _s_filteredBmd:BitmapData = new BitmapData(2048, 2048, true, 0x0);


Transferred from the Adobe Open Source Subversion Repository

Revision: 22362
Author:   mijordan@adobe.com
Date:     2011-09-01T19:20:32.658840Z

Log Message:
-----------
Regression in Fix for SDK-30749

Fixes a bug in rev 22361 that left the sandboxRoot hidden from the screen reader after the last modal popUp was closed in a Marshall Plan scenario.

QE notes: Must be verified manually with a screen reader or other MSAA client.
Doc notes:
Bugs:  SDK-30749
Reviewer:  Max Vujovic, Carol
Tests run: checkin, mustella
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as

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

--- frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as
@@ -1471,8 +1471,8 @@
 			if (p)
 			{
 				handleAccessibilityForNestedPopups(popUp);
-
-				if (!popupInfo.length)
+
+				if (popupInfo.length<=1)
 				{
 					var sbRoot:Object = p.systemManager.getSandboxRoot();
 					sbRoot.document.accessibilityProperties.silent = false;
@@ -1519,7 +1519,7 @@

 				// We should also expose accessibility
 				// of the sandbox root's document.
-				var sbRoot:Object = sm.getSandboxRoot();
+				var sbRoot:Object = popupData.systemManager.getSandboxRoot();
 				sbRoot.document.accessibilityProperties.silent = false;
 			}
 		}


Bubbling now stops when a target is found that has the onEventBubbled() handler (via Richard Lord).

git-svn-id: 9085b6c627c116a57de1019657806a8c000cc042@20 6e9afafe-9be5-11de-811b-9ff18243e0fd

--- src/com/robertpenner/signals/Signal.as
+++ src/com/robertpenner/signals/Signal.as
@@ -106,12 +106,13 @@

 			//// Bubble the event as far as possible.
 			var currentTarget:Object = this.target;
-			while ( currentTarget.hasOwnProperty("parent")
+			while ( currentTarget && currentTarget.hasOwnProperty("parent")
 					&& (currentTarget = currentTarget.parent) )
 			{
 				if (currentTarget is IEventBubbler)
 				{
 					IEventBubbler(currentTarget).onEventBubbled(event);
+					currentTarget = null;
 				}
 			}
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 11468
Author:   smgilson@adobe.com
Date:     2009-11-05T16:54:31.738281Z

Log Message:
-----------
Part 1 of ASDoc localization bug fixes

QE notes: -
Doc notes: -
Bugs: - FLEXDOCS-934, FLEXDOCS-909, FLEXDOCS-908, FLEXDOCS-906, FLEXDOCS-882, FLEXDOCS-883, FLEXDOCS-881
Reviewer: -
Tests run: - checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Pause.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Quartic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/WipeLeft.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Quintic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Quadratic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Cubic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/WipeDown.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/HSBColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/ArrayUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/TweenEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/WipeRight.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/DefaultListEffect.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/WipeUp.as</path>

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

--- frameworks/projects/mx/src/mx/effects/WipeLeft.as
+++ frameworks/projects/mx/src/mx/effects/WipeLeft.as
@@ -22,7 +22,7 @@
 [Alternative(replacement="spark.effects.Wipe", since="4.0")]

 /**
- *  The WipeLeft class defines a bar wipe left effect.
+ *  The WipeLeft class defines a wipe left effect.
  *  The before or after state of the component must be invisible.
  *
  *
You often use this effect with the showEffect
@@ -36,7 +36,7 @@
  *
This effect inherits the MaskEffect.show property.
  *  If you set the value to true, the component appears.
  *  If you set the value to false, the component disappears.
- *	The default value is true.

+ *  The default value is true.

  *
  *
If you specify this effect for a showEffect or
  *  hideEffect trigger, Flex sets the show property
@@ -68,28 +68,28 @@
 {
     include "../core/Version.as";

-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------

-	/**
-	 *  Constructor.
-	 *
-	 *  @param target The Object to animate with this effect.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function WipeLeft(target:Object = null)
-	{
-		super(target);
+    /**
+     *  Constructor.
+     *
+     *  @param target The Object to animate with this effect.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function WipeLeft(target:Object = null)
+    {
+        super(target);

-		instanceClass = WipeLeftInstance;
-	}
+        instanceClass = WipeLeftInstance;
+    }
 }

 }


#FEC-1455 #comment fix OSMF to work with non zero start times time 5h

--- vendors/OSMF/org/osmf/net/httpstreaming/f4f/AdobeFragmentRunTable.as
+++ vendors/OSMF/org/osmf/net/httpstreaming/f4f/AdobeFragmentRunTable.as
@@ -386,7 +386,7 @@

 		private function calculateFragmentId(fdp:FragmentDurationPair, time:Number):uint
 		{
-			if (fdp.duration <= 0)
+			if (fdp.duration <= 0 || time < fdp.durationAccrued)
 			{
 				return fdp.firstFragment;
 			}


Added option for LinkableWatcher target type restriction.

Change-Id: I7fec813cca50f4d8c4dacfc9d74b5f983a942b8a

--- WeaveCore/src/weave/core/LinkableWatcher.as
+++ WeaveCore/src/weave/core/LinkableWatcher.as
@@ -34,13 +34,16 @@
 		/**
 		 * Instead of calling this constructor directly, consider using one of the global functions
 		 * newLinkableChild() or newDisposableChild() to make sure the watcher will get disposed automatically.
+		 * @param typeRestriction Optionally restricts which type of targets this watcher accepts.
 		 * @see weave.api.core.newLinkableChild()
 		 * @see weave.api.core.newDisposableChild()
-		 */
-		public function LinkableWatcher()
+		 */
+		public function LinkableWatcher(typeRestriction:Class = null)
 		{
+			_typeRestriction = typeRestriction;
 		}

+		private var _typeRestriction:Class;
 		private var _target:ILinkableObject; // the current target

 		/**
@@ -57,6 +60,9 @@
 		 */
 		public function set target(newTarget:ILinkableObject):void
 		{
+			if (_typeRestriction)
+				newTarget = newTarget as _typeRestriction as ILinkableObject;
+
 			// do nothing if the targets are the same.
 			if (_target == newTarget)
 				return;


added error reporting

added error reporting

Change-Id: Iddfe49a0733e5e574d01aae79c608a51d6c59fce

--- WeaveData/src/weave/services/EntityCache.as
+++ WeaveData/src/weave/services/EntityCache.as
@@ -20,6 +20,7 @@
 package weave.services
 {
     import mx.rpc.AsyncToken;
+    import mx.rpc.events.FaultEvent;
     import mx.rpc.events.ResultEvent;

     import weave.api.core.ICallbackCollection;
@@ -175,7 +176,7 @@

 			if (adminService && idsToRemove.length)
 			{
-				addAsyncResponder(adminService.removeEntities(idsToRemove), handleIdsToInvalidate, null, true);
+				addAsyncResponder(adminService.removeEntities(idsToRemove), handleIdsToInvalidate, handleServiceFault, true);
 				idsToDelete = {};
 			}

@@ -188,11 +189,11 @@
 				{
 					var tableMetadata:Object = {};
 					tableMetadata[ColumnMetadata.ENTITY_TYPE] = EntityType.TABLE;
-					addAsyncResponder(service.getHierarchyInfo(tableMetadata), handleEntityHierarchyInfo, null, tableMetadata);
+					addAsyncResponder(service.getHierarchyInfo(tableMetadata), handleEntityHierarchyInfo, handleServiceFault, tableMetadata);

 					var hierarchyMetadata:Object = {};
 					hierarchyMetadata[ColumnMetadata.ENTITY_TYPE] = EntityType.HIERARCHY;
-					addAsyncResponder(service.getHierarchyInfo(hierarchyMetadata), handleEntityHierarchyInfo, null, hierarchyMetadata);
+					addAsyncResponder(service.getHierarchyInfo(hierarchyMetadata), handleEntityHierarchyInfo, handleServiceFault, hierarchyMetadata);
 				}
 				else
 					ids.push(int(id));
@@ -208,7 +209,7 @@
 				addAsyncResponder(
 					service.getEntities(splicedIds),
 					getEntityHandler,
-					null,
+					handleServiceFault,
 					splicedIds
 				);
 			}
@@ -293,7 +294,7 @@
 		public function getHierarchyInfo(publicMetadata:Object):AsyncToken
 		{
 			var token:AsyncToken = service.getHierarchyInfo(publicMetadata);
-			addAsyncResponder(token, handleEntityHierarchyInfo, null, publicMetadata);
+			addAsyncResponder(token, handleEntityHierarchyInfo, handleServiceFault, publicMetadata);
 			return token;
 		}

@@ -427,7 +428,7 @@
 				adminService.updateEntity(child_id, diff);
 			}

-			addAsyncResponder(adminService.addChild(parent_id, child_id, index), handleIdsToInvalidate, null, false);
+			addAsyncResponder(adminService.addChild(parent_id, child_id, index), handleIdsToInvalidate, handleServiceFault, false);
 			invalidate(parent_id);
         }
         public function remove_child(parent_id:int, child_id:int):void
@@ -486,5 +487,10 @@
 			}
 			return null;
 		}
+
+		private function handleServiceFault(event:FaultEvent, token:Object = null):void
+		{
+			reportError(event);
+		}
     }
 }


HLSSettings.startFromLevel and seekFromLevel specify a number between 0 and 1, but the type is int instead of Number

--- src/org/mangui/hls/HLSSettings.as
+++ src/org/mangui/hls/HLSSettings.as
@@ -2,25 +2,25 @@
     public final class HLSSettings extends Object {
         /**
          * Limit levels usable in auto-quality by the stage dimensions (width and height).
-         *      true - level width and height (defined in m3u8 playlist) will be compared with the player width and height (stage.stageWidth and stage.stageHeight).
+         *      true - level width and height (defined in m3u8 playlist) will be compared with the player width and height (stage.stageWidth and stage.stageHeight).
          *             Max level will be set depending on the maxLevelCappingMode option.
          *      false - levels will not be limited. All available levels could be used in auto-quality mode taking only bandwidth into consideration.
-         *
+         *
          * Note: this setting is ignored in manual mode so all the levels could be selected manually.
          *
          * Default is false
          */
         public static var capLevelToStage : Boolean = false;
-
+
         /**
          * Defines the max level capping mode to the one available in HLSMaxLevelCappingMode
          *      HLSMaxLevelCappingMode.DOWNSCALE - max capped level should be the one with the dimensions equal or greater than the stage dimensions (so the video will be downscaled)
          *      HLSMaxLevelCappingMode.UPSCALE - max capped level should be the one with the dimensions equal or lower than the stage dimensions (so the video will be upscaled)
-         *
+         *
          * Default is HLSMaxLevelCappingMode.DOWNSCALE
          */
         public static var maxLevelCappingMode : String = HLSMaxLevelCappingMode.DOWNSCALE;
-
+
         // // // // // ///////////////////////////////////
         //
         // org.mangui.hls.stream.HLSNetStream
@@ -28,21 +28,21 @@
         // // // // // ///////////////////////////////////
         /**
          * Defines minimum buffer length in seconds before playback can start, after seeking or buffer stalling.
-         *
+         *
          * Default is -1 = auto
          */
         public static var minBufferLength : Number = -1;
         /**
-         * Defines maximum buffer length in seconds.
+         * Defines maximum buffer length in seconds.
          * (0 means infinite buffering)
-         *
+         *
          * Default is 60.
          */
         public static var maxBufferLength : Number = 60;
         /**
-         * Defines low buffer length in seconds.
+         * Defines low buffer length in seconds.
          * When crossing down this threshold, HLS will switch to buffering state.
-         *
+         *
          * Default is 3.
          */
         public static var lowBufferLength : Number = 3;
@@ -51,13 +51,13 @@
          *      HLSSeekMode.ACCURATE_SEEK - accurate seeking to exact requested position
          *      HLSSeekMode.KEYFRAME_SEEK - key-frame based seeking (seek to nearest key frame before requested seek position)
          *      HLSSeekMode.SEGMENT_SEEK - segment based seeking (seek to beginning of segment containing requested seek position)
-         *
+         *
          * Default is HLSSeekMode.ACCURATE_SEEK.
          */
         public static var seekMode : String = HLSSeekMode.ACCURATE_SEEK;
         /** max nb of retries for Fragment Loading in case I/O errors are met,
          *      0, means no retry, error will be triggered automatically
-         *     -1 means infinite retry
+         *     -1 means infinite retry
          */
         public static var fragmentLoadMaxRetry : int = -1;

@@ -71,15 +71,15 @@
          */
         public static var fragmentLoadMaxRetryTimeout : Number = 64000;
         /**
-         * If set to true, live playlist will be flushed from URL cache before reloading
+         * If set to true, live playlist will be flushed from URL cache before reloading
          * (this is to workaround some cache issues with some combination of Flash Player / IE version)
-         *
+         *
          * Default is false
          */
         public static var flushLiveURLCache : Boolean = false;
         /** max nb of retries for Manifest Loading in case I/O errors are met,
          *      0, means no retry, error will be triggered automatically
-         *     -1 means infinite retry
+         *     -1 means infinite retry
          */
         public static var manifestLoadMaxRetry : int = -1;
         /** manifestLoadMaxRetryTimeout
@@ -93,18 +93,18 @@
         public static var manifestLoadMaxRetryTimeout : Number = 64000;

-        /** start level :
+        /** start level :
          *  from 0 to 1 : indicates the "normalized" preferred bitrate. As such, if it is 0.5, the closest to the middle bitrate will be selected and used first.
-         * -1 : automatic start level selection, playback will start from level matching download bandwidth (determined from download of first segment)
+         * -1 : automatic start level selection, playback will start from level matching download bandwidth (determined from download of first segment)
          */
-        public static var startFromLevel : int = -1;
-
+        public static var startFromLevel : Number = -1;

-        /** seek level :
+
+        /** seek level :
          *  from 0 to 1 : indicates the "normalized" preferred bitrate. As such, if it is 0.5, the closest to the middle bitrate will be selected and used first.
-         * -1 : automatic start level selection, keep previous level matching previous download bandwidth
+         * -1 : automatic start level selection, keep previous level matching previous download bandwidth
          */
-        public static var seekFromLevel : int = -1;
+        public static var seekFromLevel : Number = -1;
         /**
          * Defines whether INFO level log messages will will appear in the console
          * Default is true.


updated unmeasurable threshold to a lower value

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -97,9 +97,9 @@

         /**
          * The number of consecutive intervals of unmeasurability required before
-         * the UNMEASURABLE_IMPRESSION_ event will be fired (2 seconds)
-         */
-        public static const UNMEASURABLE_IMPRESSION_THRESHOLD: Number = 10;
+         * the UNMEASURABLE_IMPRESSION_ event will be fired (800ms)
+         */
+        public static const UNMEASURABLE_IMPRESSION_THRESHOLD: Number = 4;

         /**
          * The number of milliseconds between polling JavaScript for


cleanup

cleanup

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -17,8 +17,9 @@
 package org.openvv
 {
   import flash.display.Sprite;
+  import flash.events.EventDispatcher;
+  import flash.events.TimerEvent;
   import flash.external.ExternalInterface;
-  import flash.events.TimerEvent;
   import flash.utils.Timer;
   import org.openvv.OVVCheck;
   import org.openvv.events.OVVEvent;
@@ -55,9 +56,6 @@

     public function checkViewability():Object
     {
-      if (!_initialized)
-        raiseError("ExternalInterface unavailable");
-
       return performCheck();
     }


Added OVVReady to OVV_EVENTS array.

Added OVVReady to OVV_EVENTS array.

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -195,7 +195,8 @@
 		/**
 		 * A vector of all OVV events
 		 */
-		private static const OVV_EVENTS:Array = ([OVVEvent.OVVError,OVVEvent.OVVLog, OVVEvent.OVVImpression, OVVEvent.OVVImpressionUnmeasurable]);
+		private static const OVV_EVENTS:Array = ([OVVEvent.OVVError,OVVEvent.OVVLog, OVVEvent.OVVImpression,
+			OVVEvent.OVVImpressionUnmeasurable, OVVEvent.OVVReady]);

 		private var _vpaidEventsDispatcher:IEventDispatcher = null;
 		/**


Fixed bug where SpatialIndex callbacks weren't triggering
SelectablePlotLayer callbacks by making PlotLayer callbacks
trigger SelectablePlotLayer callbacks.

Change-Id: I1eef32ec1f2da3c42ad98f77ad73f75c906dcb02

--- WeaveUI/src/weave/visualization/layers/SelectablePlotLayer.as
+++ WeaveUI/src/weave/visualization/layers/SelectablePlotLayer.as
@@ -106,9 +106,9 @@
 			_plotLayer = new PlotLayer();
 			_selectionLayer = new PlotLayer(_plotLayer.getDynamicPlotter(), _plotLayer.spatialIndex as SpatialIndex);
 			_probeLayer = new PlotLayer(_plotLayer.getDynamicPlotter(), _plotLayer.spatialIndex as SpatialIndex);
-			registerDisposableChild(this, _plotLayer);
-			registerDisposableChild(this, _selectionLayer);
-			registerDisposableChild(this, _probeLayer);
+			registerLinkableChild(this, _plotLayer);
+			registerLinkableChild(this, _selectionLayer);
+			registerLinkableChild(this, _probeLayer);

 			// Link the min and max zoom levels for the three child PlotLayers
 			linkSessionState(_plotLayer.layerIsVisible,_selectionLayer.layerIsVisible);


Transferred from the Adobe Open Source Subversion Repository

Revision: 6404
Author:   rfrishbe@adobe.com
Date:     2009-04-30T00:34:09.399480Z

Log Message:
-----------
Finishing up VideoPlayer/VideoElement. Added support for streaming videos and fixed a few of the bugs.  Added the skins from XD.  These still need a little tweaking, and I'll go over them with XD. For the skins, I had to add some new sub-components, like the VideoPlayerVolumeBar and VideoPlayScrubBar.

Also added 3 new events for TrackBase (thumbDrag, thumbPress, thumbRelease).  These were in Halo's Slider, and I needed them for the VideoPlayerScrubBar.

Also fixed some other bugs, like needing to call removeDynamicPartInstance() on the Slider when the dataTip is removed.  Also fixed a bug around alternatingItemsColor for ItemRenderer.

QE Notes: -
Doc Notes: -
Bugs: SDK-19486, SDK-20105, SDK-20789
Reviewer: Glenn, Jason
tests: checkintests, some mustella tests were failing, but seemed like random 1 pixel differences in DropDownList.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="A">/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/skins/default/VideoPlayerPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayerVolumeBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/StreamItem.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarMuteButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarThumbSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/VideoElement.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HSlider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/Flex4Classes.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarThumbSkin.mxml</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerMuteButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenScrubBarTrackSkin.mxml</path>
<path kind="file" action="A">/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/VSlider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenVolumeBarThumbSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenFullScreenButtonSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerVolumeBarTrackSkin.mxml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerFullScreenPlayPauseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/templates/swfobject/index.template.html</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/VideoPlayerScrubBarTrackSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/spark/src/spark/components/mediaClasses/DynamicStreamingVideoSource.as
+++ frameworks/projects/spark/src/spark/components/mediaClasses/DynamicStreamingVideoSource.as
@@ -0,0 +1,149 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 spark.components.supportClasses
+{
+
+[DefaultProperty("streamItems")]
+
+/**
+ *  The StreamingVideoSource class represents a streaming video source and can be
+ *  used for streaming pre-recorded video or live streaming video.  In addition,
+ *  it can support a single stream or multiple streams associated with different
+ *  bitrates.  The VideoPlayer and VideoElement
+ *  classes can take a StreamingVideoSource instance as its source
+ *  property.
+ *
+ *  @see spark.controls.VideoPlayer
+ *  @see spark.primitives.VideoElement
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+public class StreamingVideoSource extends Object
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    public function StreamingVideoSource()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  live
+    //----------------------------------
+
+    private var _live:Boolean = false;
+
+    [Inspectable(category="General", defaultValue="false")]
+
+    /**
+     *  A Boolean value that is true if the video stream is live.
+     *
+     *
Set the live property to false when sending
+     *  a prerecorded video stream to the video player and to true
+     *  when sending real-time data such as a live broadcast.

+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get live():Boolean
+    {
+        return _live;
+    }
+
+    /**
+     *  @private
+     */
+    public function set live(value:Boolean):void
+    {
+        _live = value;
+    }
+
+    //----------------------------------
+    //  serverURI
+    //----------------------------------
+
+    private var _serverURI:String;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The uri pointing to the location of the server
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get serverURI():String
+    {
+        return _serverURI;
+    }
+
+    /**
+     *  @private
+     */
+    public function set serverURI(value:String):void
+    {
+        _serverURI = value;
+    }
+
+    //----------------------------------
+    //  streamItems
+    //----------------------------------
+
+    private var _streamItems:Array;
+
+    [Inspectable(category="General")]
+    [ArrayElementType("spark.components.supportClasses.StreamItem")]
+
+    // TODO (rfrishbe): change to vectors when possible
+
+    /**
+     *  The metadata info object with properties describing the FLB file.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function get streamItems():Array
+    {
+        return _streamItems;
+    }
+
+    /**
+     *  @private
+     */
+    public function set streamItems(value:Array):void
+    {
+        _streamItems = value;
+    }
+
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19684
Author:   mcho@adobe.com
Date:     2011-01-10T23:28:35.118753Z

Log Message:
-----------
Allow the "alternatingItemColors" style accept a single color

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/TileBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGrid.as
+++ frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGrid.as
@@ -2968,7 +2968,12 @@
         if (colors)
             depthColors = true;
         else
-            colors = getStyle("alternatingItemColors");
+		{
+			var colorsStyle:Object = getStyle("alternatingItemColors");
+			if (colorsStyle)
+				colors = (colorsStyle is Array) ? (colorsStyle as Array) : [colorsStyle];
+
+		}

         color = getStyle("backgroundColor");
 		if (color === undefined)


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

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

 package spark.components
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19890
Author:   chiedozi@adobe.com
Date:     2011-01-22T00:54:17.832168Z

Log Message:
-----------
PARB Changes for TabbedViewNavigator.

TabbedViewNavigator
The activeNavigator property has been renamed to selectedNavigator
The following properties and methods have been made mx_internal, thus don't need to be tested:
maintainNaigationStack
tabBarRenderer_clickHandler

TabbedViewNavigatorApplication
The navigator skinpart has been renamed to tabbedNavigator
The creationPolicy and destructionPolicy properties on ViewNavigatorBase have been removed.
The maintainNavigationStack and creationPolicy properties have been removed

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.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/tests/performance/mobile/ComponentCatalog/src/ScriptRunner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/.flexProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
@@ -17,7 +17,6 @@
 import flash.events.StageOrientationEvent;
 import flash.net.registerClassAlias;

-import mx.core.ContainerCreationPolicy;
 import mx.core.mx_internal;
 import mx.utils.BitFlagUtil;

@@ -80,8 +79,6 @@
  *

  *  <s:TabbedViewNavigatorApplication
  *    Properties
- *    creationPolicy="auto"
- *    maintainNavigationStack="true"
  *    navigators="null"
  *
  *  />
@@ -107,14 +104,14 @@
     [Bindable]
     [SkinPart(required="false")]
     /**
-     *  The main navigator for the application.
+     *  The main tabbedNavigator for the application.
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    public var navigator:TabbedViewNavigator;
+    public var tabbedNavigator:TabbedViewNavigator;

     //--------------------------------------------------------------------------
     //
@@ -144,11 +141,6 @@
      */
     private var navigatorProperties:Object = {};

-    /**
-     *  @private
-     */
-    private var maintainNavigationStackPropSet:Boolean = false;
-
     //----------------------------------
     //  activeView
     //----------------------------------
@@ -158,8 +150,8 @@
      */
     override mx_internal function get activeView():View
     {
-        if (navigator)
-            return navigator.activeView;
+        if (tabbedNavigator)
+            return tabbedNavigator.activeView;

         return null;
     }
@@ -178,51 +170,10 @@
      */
     override mx_internal function get exitApplicationOnBackKey():Boolean
     {
-        if (navigator)
-            return navigator.exitApplicationOnBackKey;
+        if (tabbedNavigator)
+            return tabbedNavigator.exitApplicationOnBackKey;

         return super.exitApplicationOnBackKey;
-    }
-
-    //----------------------------------
-    //  creationPolicy
-    //----------------------------------
-    private var _explicitCreationPolicy:String = ContainerCreationPolicy.AUTO;
-
-    /**
-     *
TabbedViewNavigatorApplication cannot have visual elements
-     *  added to it, so the creation policy concept use by the framework
-     *  does not necessarily apply.
-     *  Instead, this property controls whether the application's child
-     *  view navigators create their children when the application initializes.

-     *
-     *  @inheritDoc
-     *
-     *  @default "auto"
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.1
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    override public function get creationPolicy():String
-    {
-        return _explicitCreationPolicy;
-    }
-
-    /**
-     *  @private
-     */
-    override public function set creationPolicy(value:String):void
-    {
-        // Don't want to change real creationPolicy property
-        if (value != _explicitCreationPolicy)
-        {
-            _explicitCreationPolicy = value;
-
-            if (navigator)
-                navigator.creationPolicy = _explicitCreationPolicy;
-        }
     }

     //----------------------------------
@@ -240,8 +191,8 @@
      */
     public function get navigators():Vector.<ViewNavigatorBase>
     {
-        if (navigator)
-            return navigator.navigators;
+        if (tabbedNavigator)
+            return tabbedNavigator.navigators;
         else
             return navigatorProperties.navigators;
     }
@@ -250,47 +201,10 @@
      */
     public function set navigators(value:Vector.<ViewNavigatorBase>):void
     {
-        if (navigator)
-            navigator.navigators = value;
+        if (tabbedNavigator)
+            tabbedNavigator.navigators = value;
         else
             navigatorProperties.navigators = value;
-    }
-
-    //----------------------------------
-    //  maintainNavigationStack
-    //----------------------------------
-    /**
-     *  @copy spark.components.TabbedViewNavigator#maintainNavigationStack
-     *
-     *  @default true
-     *
-     *  @see spark.components.TabbedViewNavigator
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.1
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    public function get maintainNavigationStack():Boolean
-    {
-        if (navigator)
-            return navigator.maintainNavigationStack;
-        else
-            return navigatorProperties.maintainNavigationStack;
-    }
-
-    /**
-     *  @private
-     */
-    public function set maintainNavigationStack(value:Boolean):void
-    {
-        if (navigator)
-        {
-            navigator.maintainNavigationStack = value;
-            maintainNavigationStackPropSet = true;
-        }
-        else
-            navigatorProperties.maintainNavigationStack = value;
     }

     //--------------------------------------------------------------------------
@@ -312,19 +226,19 @@
         // state could potentially be wrong.  Wait for the next stage resize event
         // so that the runtime has a chance to discover its orientation and then
         // properly update and activate the view
-        if (navigator)
+        if (tabbedNavigator)
         {
-            if (navigator.activeView)
+            if (tabbedNavigator.activeView)
                 systemManager.stage.addEventListener(Event.RESIZE, stage_resizeHandler);
         }

         // Set the stage focus to the navigator's active view
-        if (systemManager.stage.focus == null && navigator)
+        if (systemManager.stage.focus == null && tabbedNavigator)
         {
-            if (navigator.activeView)
-                systemManager.stage.focus = navigator.activeView;
+            if (tabbedNavigator.activeView)
+                systemManager.stage.focus = tabbedNavigator.activeView;
             else
-                systemManager.stage.focus = navigator;
+                systemManager.stage.focus = tabbedNavigator;
         }
     }

@@ -339,7 +253,7 @@

         // The active view was deactivated when the application was suspended.  We
         // need to reactivate it here.
-        var view:View = navigator.activeView;;
+        var view:View = tabbedNavigator.activeView;;
         if (!view.isActive)
             view.setActive(true);
     }
@@ -349,8 +263,8 @@
      */
     override protected function deactivateHandler(event:Event):void
     {
-        if (navigator && navigator.activeView)
-            navigator.activeView.setActive(false);
+        if (tabbedNavigator && tabbedNavigator.activeView)
+            tabbedNavigator.activeView.setActive(false);

         // super is called after so that the active view can get the
         // viewDeactive event before the persistence process begins.
@@ -366,8 +280,8 @@

         if (viewMenuOpen)
             viewMenuOpen = false;
-        else if (navigator)
-            navigator.backKeyUpHandler();
+        else if (tabbedNavigator)
+            tabbedNavigator.backKeyUpHandler();
     }

     /**
@@ -378,7 +292,7 @@
         super.saveNavigatorState();

         if (navigators.length > 0)
-            persistenceManager.setProperty("navigatorState", navigator.saveViewData());
+            persistenceManager.setProperty("navigatorState", tabbedNavigator.saveViewData());
     }

     /**
@@ -391,7 +305,7 @@
         var savedState:Object = persistenceManager.getProperty("navigatorState");

         if (savedState)
-            navigator.loadViewData(savedState);
+            tabbedNavigator.loadViewData(savedState);
     }

     //--------------------------------------------------------------------------
@@ -407,25 +321,15 @@
     {
         super.partAdded(partName, instance);

-        if (instance == navigator)
+        if (instance == tabbedNavigator)
         {
-            var newNavigatorProperties:uint = 0;
-
-            navigator.creationPolicy = _explicitCreationPolicy;
-
             if (navigatorProperties.navigators !== undefined)
             {
-                navigator.navigators = navigatorProperties.navigators;
-            }
-
-            if (navigatorProperties.maintainNavigationStack !== undefined)
-            {
-                navigator.maintainNavigationStack = navigatorProperties.maintainNavigationStack;
-                maintainNavigationStackPropSet = true;
+                tabbedNavigator.navigators = navigatorProperties.navigators;
             }

             // Set the stage focus to the navigator
-            systemManager.stage.focus = navigator;
+            systemManager.stage.focus = tabbedNavigator;
         }
     }

@@ -435,17 +339,6 @@
     override protected function partRemoved(partName:String, instance:Object):void
     {
         super.partRemoved(partName, instance);
-
-        if (instance == navigator)
-        {
-            // Always want to save the navigation stack
-            var newNavigatorProperties:Object = {navigationStack: navigator.navigationStack};
-
-            if (maintainNavigationStackPropSet)
-                newNavigatorProperties.maintainNavigationStack = navigator.maintainNavigationStack;
-
-            navigatorProperties = newNavigatorProperties;
-        }
     }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/InstanceCache.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/InstanceCache.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 18884
Author:   jasonsj@adobe.com
Date:     2010-12-01T01:01:18.896589Z

Log Message:
-----------
Use authorDensity in Mobile theme

QE notes: By default, 240 devices should still report as 240. Mustella known goods should not be affected.
Doc notes:
Bugs:
Reviewer: egeorgie
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<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/MobileSkin.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/supportClasses/ActionBarButtonSkinBase.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" 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/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.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/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/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -14,12 +14,12 @@

 import flash.events.Event;

+import mx.core.DeviceDensity;
 import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;

 import spark.components.TextArea;
-import spark.skins.mobile.supportClasses.MobileSkin;
 import spark.skins.mobile.supportClasses.TextSkinBase;
 import spark.skins.mobile160.assets.TextInput_border;
 import spark.skins.mobile240.assets.TextInput_border;
@@ -48,9 +48,9 @@

         useChromeColor = false;

-        switch (targetDensity)
+        switch (authorDensity)
         {
-            case MobileSkin.PPI240:
+            case DeviceDensity.PPI_240:
             {
                 borderClass = spark.skins.mobile240.assets.TextInput_border;
                 layoutCornerEllipseSize = 16;