Transferred from the Adobe Open Source Subversion Repository

Revision: 7879
Author:   dloverin@adobe.com
Date:     2009-06-16T14:08:15.137863Z

Log Message:
-----------
WindowedApplication/Window P-ARB changes.

WindowedApplication/Window
•             Rename resizeAffordance to resizeAffordanceWidth
•             Change resizeAffordanceWidth from a property to a style
•             Remove showGripper property
•             Remove showTitleBar property
•             Make override functions @private
•             SkinState metadata: rename normalActive to normalAndInactive
•             SkinState metadata: rename disabledInactive to disabledAndInactive

TitleBar
•             SkinState metadata: rename maximized to normalAndMaximized
•             SkinState metadata: rename disabledMaximized to disabledAndMaximized

QE Notes: Expect testing failures do to the changes.
Doc Notes: none.
Bugs: none
Reviewer: Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/WindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/TitleBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/MacTitleBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/FlexChromeSkin.mxml</path>

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

--- frameworks/projects/airspark/src/spark/components/Window.as
+++ frameworks/projects/airspark/src/spark/components/Window.as
@@ -58,6 +58,25 @@
 use namespace mx_internal;

 //--------------------------------------
+//  Styles
+//--------------------------------------
+
+/**
+ *  Provides a margin of error around the application's border so a resize
+ *  and be more easily started. A click on the application is considered a
+ *  click on the application's border if the click occurs with the resizeAffordance
+ *  number of pixels from the outside edge of the application's window.
+ *
+ *  @default 6
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="resizeAffordanceWidth", type="Number", format="length", inherit="no")]
+
+//--------------------------------------
 //  Events
 //--------------------------------------

@@ -274,7 +293,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[SkinState("normalActive")]
+[SkinState("normalAndInactive")]

 /**
  *  The application is disabled and inactive.
@@ -284,7 +303,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-[SkinState("disabledInactive")]
+[SkinState("disabledAndInactive")]

 //--------------------------------------
 //  Other metadata
@@ -709,6 +728,7 @@
     }

     /**
+     *  @private
      *  Specifies the maximum height of the application's window.
      *
      *  @default dependent on the operating system and the AIR systemChrome setting.
@@ -756,6 +776,7 @@
     }

     /**
+     *  @private
      *  Specifies the maximum width of the application's window.
      *
      *  @default dependent on the operating system and the AIR systemChrome setting.
@@ -791,6 +812,7 @@
     [Bindable("windowComplete")]

     /**
+     *  @private
      *  Specifies the minimum height of the application's window.
      *
      *  @default dependent on the operating system and the AIR systemChrome setting.
@@ -838,6 +860,7 @@
     [Bindable("windowComplete")]

     /**
+     *  @private
      *  Specifies the minimum width of the application's window.
      *
      *  @default dependent on the operating system and the AIR systemChrome setting.
@@ -873,6 +896,7 @@
     [Bindable("windowComplete")]

     /**
+     *  @private
      *  Controls the window's visibility. Unlike the
      *  UIComponent.visible property of most Flex
      *  visual components, this property affects the visibility
@@ -1208,6 +1232,7 @@
     //  cursorManager
     //----------------------------------
     /**
+     *  @private
      *  Returns the cursor manager for this Window.
      *
      *  @langversion 3.0
@@ -1342,73 +1367,6 @@
         }
     }

-    //---------------------------------
-    //  resizeAffordance
-    //---------------------------------
-
-    /**
-     *  Provides a margin of error around the application's border so a resize
-     *  and be more easily started. A click on the application is considered a
-     *  click on the application's border if the click occurs with the resizeAffordance
-     *  number of pixels from the outside edge of the application's window.
-     *
-     *  @langversion 3.0
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public var resizeAffordance:Number = 6;
-
-    //----------------------------------
-    //  showGripper
-    //----------------------------------
-
-    /**
-     *  @private
-     *  Storage for the showGripper property.
-     */
-    private var _showGripper:Boolean = true;
-
-    /**
-     *  @private
-     */
-    private var showGripperChanged:Boolean = true;
-
-    /**
-     *  If true, the gripper is visible.
-     *
-     *
On Mac OS X a window with systemChrome
-     *  set to "standard"
-     *  always has an operating system gripper, so this property is ignored
-     *  in that case.
-     *  On other systems, the gripper button only appears when using
-     *  the Flex Chrome, not the system chrome.

-     *
-     *  @default true
-     *
-     *  @langversion 3.0
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 3
-     */
-    public function get showGripper():Boolean
-    {
-        return _showGripper;
-    }
-
-    /**
-     *  @private
-     */
-    public function set showGripper(value:Boolean):void
-    {
-        if (_showGripper == value)
-            return;
-
-        _showGripper = value;
-        showGripperChanged = true;
-
-        invalidateProperties();
-        invalidateDisplayList();
-    }
-
     //----------------------------------
     //  showStatusBar
     //----------------------------------
@@ -1455,53 +1413,6 @@

         _showStatusBar = value;
         showStatusBarChanged = true;
-
-        invalidateProperties();
-        invalidateDisplayList();
-    }
-
-    //----------------------------------
-    //  showTitleBar
-    //----------------------------------
-
-    /**
-     *  Storage for the showTitleBar property.
-     *
-     *  @langversion 3.0
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 3
-     */
-    private var _showTitleBar:Boolean = true;
-
-    /**
-     *  @private
-     */
-    private var showTitleBarChanged:Boolean = true;
-
-    /**
-     *  If true, the window's title bar is visible.
-     *
-     *  @default true
-     *
-     *  @langversion 3.0
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 3
-     */
-    public function get showTitleBar():Boolean
-    {
-        return _showTitleBar;
-    }
-
-    /**
-     *  @private
-     */
-    public function set showTitleBar(value:Boolean):void
-    {
-        if (_showTitleBar == value)
-            return;
-
-        _showTitleBar = value;
-        showTitleBarChanged = true;

         invalidateProperties();
         invalidateDisplayList();
@@ -1975,17 +1886,6 @@
             dispatchEvent(new Event("menuChanged"));
         }

-        if (showTitleBarChanged)
-        {
-            if (titleBar)
-            {
-                titleBar.visible = _showTitleBar;
-                titleBar.includeInLayout = _showTitleBar;
-            }
-
-            showTitleBarChanged = false;
-        }
-
         if (titleIconChanged)
         {
             if (titleBar)
@@ -2014,15 +1914,6 @@
             if (statusText)
                 statusText.text = _status;
             statusChanged = false;
-        }
-
-        if (showGripperChanged)
-        {
-            if (gripper)
-            {
-                gripper.visible = _showGripper;
-            }
-            showGripperChanged = false;
         }

         if (toMax)
@@ -2303,6 +2194,7 @@
     //--------------------------------------------------------------------------

     /**
+     *  @private
      *  Returns the name of the state to be applied to the skin. For example, a
      *  Button component could return the String "up", "down", "over", or "disabled"
      *  to specify the state.
@@ -2324,7 +2216,7 @@
         if (nativeWindow.active)
             return enabled ? "normal" : "disabled";
         else
-            return enabled ? "normalInactive" : "disabledInactive";
+            return enabled ? "normalAndInactive" : "disabledAndInactive";

     }

@@ -2649,8 +2541,9 @@
         }

         var hitTestResults:String = NativeWindowResize.NONE;
-        var borderWidth:int = resizeAffordance;
-        var cornerSize:int = resizeAffordance * 2;
+        var resizeAfforanceWidth:Number = getStyle("resizeAffordanceWidth");
+        var borderWidth:int = resizeAfforanceWidth;
+        var cornerSize:int = resizeAfforanceWidth * 2;

         if (event.stageY < borderWidth)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8447
Author:   smgilson@adobe.com
Date:     2009-07-08T14:43:53.695916Z

Log Message:
-----------
Add ASDoc version info to IToggleButton.as and ITransientDeferredInstance.as.

Update ASDoc comments for IVisualElement.as and IVisualElementContainer.as

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ITransientDeferredInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElementContainer.as</path>

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

--- frameworks/projects/framework/src/mx/core/IVisualElement.as
+++ frameworks/projects/framework/src/mx/core/IVisualElement.as
@@ -16,9 +16,8 @@
 import mx.geom.TransformOffsets;

 /**
- *  The IVisualElement interface represents the common methods and properties between UIComponents and
- *  GraphicElements and the minimum properties/methods required for a visual element to be
- *  laid out and displayed in a Spark application.
+ *  The IVisualElement interface defines the minimum properties and methods
+ *  required for a visual element to be laid out and displayed in a Spark container.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -29,9 +28,10 @@
 {

     /**
-     *  The owner of this IVisualElement. By default, it is the parent of this IVisualElement.
+     *  The owner of this IVisualElement object.
+     *  By default, it is the parent of this IVisualElement object.
      *  However, if this IVisualElement object is a child component that is
-     *  popped up by its parent, such as the dropdown list of a ComboBox control,
+     *  popped up by its parent, such as the drop-down list of a ComboBox control,
      *  the owner is the component that popped up this IVisualElement object.
      *
      *
This property is not managed by Flex, but by each component.
@@ -56,10 +56,10 @@

     /**
      *  The parent container or component for this component.
-     *  Only visual elements should have a parent property.
+     *  Only visual elements should have a parent property.
      *  Non-visual items should use another property to reference
      *  the object to which they belong.
-     *  By convention, non-visual item objects use an owner
+     *  By convention, non-visual objects use an owner
      *  property to reference the object to which they belong.
      *
      *  @langversion 3.0
@@ -69,12 +69,14 @@
      */
     function get parent():DisplayObjectContainer;

-	/**
-     *  Determines the order in which items inside of groups and datagroups
-     *  are rendered. Groups and DataGroups order their items based on their
-     *  depth property, with the lowest depth in the back, and the higher in
-     *  the front.  items with the same depth value will appear in the order
-     *  they are added to the Groups item list.
+    /**
+     *  Determines the order in which items inside of containers
+     *  are rendered.
+     *  Spark containers order their items based on their
+     *  depth property, with the lowest depth in the back,
+     *  and the higher in the front.
+     *  Items with the same depth value appear in the order
+     *  they are added to the container.
      *
      *  @default 0
      *
@@ -91,19 +93,19 @@
     function get depth():Number;

     /**
-     *  Controls the visibility of this visual element. If true,
-     *  the object is visible.
-     *
-     *
If an object is not visible, but includeInLayout is set
-     *  to true, then the object still takes up space as far
-     *  as layout is concerned.

+     *  Controls the visibility of this visual element.
+     *  If true, the object is visible.
+     *
+     *
If an object is not visible, but the includeInLayout
+     *  property is set to true, then the object
+     *  takes up space in the container, but is invisible.

      *
      *
If visible is set to true, the object may not
-     *  necessarily be visible due to its size and whether clipping is turned on
-     *  or not.

-     *
-     *
Setting visible to false, should
-     *  disallow the component from getting focus.

+     *  necessarily be visible due to its size and whether container clipping
+     *  is enabled.

+     *
+     *
Setting visible to false,
+     *  prevents the component from getting focus.

      *
      *  @default true
      *  @see ILayoutElement#includeInLayout


FLEX-33221.  Improve doc on the length param for encode() and encodeBytes().

git-svn-id: 7d913817b0a978d84de757191e4bce372605a781@1399681 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/utils/Base64Encoder.as
+++ frameworks/projects/framework/src/mx/utils/Base64Encoder.as
@@ -136,7 +136,8 @@
      *
      * @param data The String to encode.
      * @param offset The character position from which to start encoding.
-     * @param length The number of characters to encode from the offset.
+     * @param length The number of characters to encode from the offset, or
+     * all the characters if the length is 0.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -201,7 +202,8 @@
      *
      * @param data The ByteArray to encode.
      * @param offset The index from which to start encoding.
-     * @param length The number of bytes to encode from the offset.
+     * @param length The number of bytes to encode from the offset, or all
+     * the bytes if the length is 0.
      *
      *  @langversion 3.0
      *  @playerversion Flash 9


Transferred from the Adobe Open Source Subversion Repository

Revision: 3410
Author:   rfrishbe@adobe.com
Date:     2008-09-29T22:27:50.984483Z

Log Message:
-----------
Here are some changes to DataGroup.

The big change is the way we instantiate components.  We aren’t re-using the Group logic anymore.  This means there’s no display object sharing going on, which reduces the complexity of the code.  It also treats renderers differently now.  Basically anytime a renderer is specified, it’ll attempt to wrap you up in that renderer, even if you are a GraphicElement or a DisplayObject and may not need one.

There are some other changes, like changing an itemRenderer at runtime now works.  It’s a bit heavy in what it invalidates right now, but I’ll go back and revisit some of this logic.

Also, when no dataProvider is given, we don’t automatically create one for the user.  This means I had to add some defense mechanisms where we were relying on the dataProvider, but doing a check for dataProvider != null was all that was really needed.

QE: Yes
Doc: Yes
Bugs: SDK-16809, SDK-16983
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Selector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/flex4test.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -25,16 +25,15 @@

 import mx.collections.ICollectionView;
 import mx.collections.IList;
-import mx.collections.ListCollectionView;
 import mx.controls.Label;
 import mx.core.IDataRenderer;
 import mx.core.IDeferredInstance;
 import mx.core.IFactory;
 import mx.core.UIComponent;
 import mx.events.CollectionEvent;
+import mx.events.CollectionEventKind
 import mx.events.PropertyChangeEvent;
 import mx.events.PropertyChangeEventKind;
-import mx.collections.ArrayCollection;
 import mx.styles.IStyleClient;

 /**
@@ -53,22 +52,111 @@
     public function DataGroup()
     {
         super();
-
-        // TODO (rfrishbe): work on initialization of dataProvider
-        _dataProvider = new ArrayCollection();
-        _dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler, false, 0, true);
     }

     private var skinRegistry:Dictionary;

-    // item renderer
-    public var itemRenderer:IFactory;
-    public var itemRendererFunction:Function; // signature: itemRendererFunction(item:*):IFactory
-
-    // TODO (rfrishbe): be smarter about initialization
+    //----------------------------------
+    //  itemRenderer
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the itemRenderer property.
+     */
+    private var _itemRenderer:IFactory;
+
+    private var itemRendererChanged:Boolean;
+
+    [Inspectable(category="Data")]
+
+    /**
+     *  Renderer to use for data items. The class must
+     *  implement the IDataRenderer interface.
+     *  The itemRendererFunction property,
+     *  if defined, takes precedence over this property.
+     *
+     *  @default null
+     */
+    public function get itemRenderer():IFactory
+    {
+        return _itemRenderer;
+    }
+
+    /**
+     *  @private
+     */
+    public function set itemRenderer(value:IFactory):void
+    {
+        _itemRenderer = value;
+
+        invalidateProperties();
+        invalidateSize();
+        invalidateDisplayList();
+
+        itemRendererChanged = true;
+
+        dispatchEvent(new Event("itemRendererChanged"));
+    }
+
+    //----------------------------------
+    //  itemRendererFunction
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the itemRendererFunction property.
+     */
+    private var _itemRendererFunction:Function;
+
+    [Inspectable(category="Data")]
+
+    /**
+     *  Function that returns an item renderer for a specific item.
+     *  The signature of the function is:
+     *
+     *  function itemRendererFunction(item:Object):IFactory
+     *
+     *  @default null
+     */
+    public function get itemRendererFunction():Function
+    {
+        return _itemRendererFunction;
+    }
+
+    /**
+     *  @private
+     */
+    public function set itemRendererFunction(value:Function):void
+    {
+        _itemRendererFunction = value;
+
+        invalidateProperties();
+        invalidateSize();
+        invalidateDisplayList();
+
+        itemRendererChanged = true;
+
+        dispatchEvent(new Event("itemRendererChanged"));
+    }
+
     private var _dataProvider:IList;
     private var dataProviderChanged:Boolean = false;
-    private var needsDisplayObjectAssignment:Boolean = false;
+
+    [Bindable("dataProviderChanged")]
+    /**
+     *  DataProvider for this DataGroup.  It must be an IList.
+     *
+     *  @default undefined
+     *
+     *  @see #itemRenderer
+     *  @see #itemRendererFunction
+     */
+    public function get dataProvider():IList
+    {
+        return _dataProvider;
+    }
+

     public function set dataProvider(value:IList):void
     {
@@ -92,34 +180,22 @@
         invalidateProperties();
     }

-    public function get dataProvider():IList
-    {
-        return _dataProvider;
-    }
-
-    protected function initializeChildrenArray():void
+    protected function initializeDataProvider():void
     {
-        dispatchEvent(new FlexEvent(FlexEvent.CONTENT_CHANGING));
+        dispatchEvent(new FlexEvent(FlexEvent.DATA_PROVIDER_CHANGING));

         // Get rid of existing display object children.
         // !!!!! This should probably be done through change notification
-        // TODO!! This should be removing the last child b/c we want to
-        // send an event for each content child. This logic will send
-        // remove event for the 0th content child x times.
         for (var idx:int = numChildren; idx > 0; idx--)
-            //itemRemoved(0);
             super.removeChildAt(0);

-        if (_dataProvider !== null)
+        if (_dataProvider != null)
         {
             for (var i:int = 0; i < _dataProvider.length; i++)
             {
                 itemAdded(_dataProvider.getItemAt(i), i);
             }
         }
-
-        assignDisplayObjects();
-        needsDisplayObjectAssignment = false;

         /* if (maskElements)
         {
@@ -146,55 +222,54 @@
             }
         } */

-        dispatchEvent(new FlexEvent(FlexEvent.CONTENT_CHANGED));
-    }
-
-    protected function createVisualForItem(item:*):DisplayObject
-    {
-        var itemSkin:DisplayObject;
-
-        if (item === undefined || item === null)
-            throw new Error("DataGroup content can not contain null or undefined items.");
-
+        dispatchEvent(new FlexEvent(FlexEvent.DATA_PROVIDER_CHANGED));
+    }
+
+    protected function createVisualForItem(item:Object):DisplayObject
+    {
+        var itemSkin:Object;
+        var itemDisplayObject:DisplayObject;
+
+        if (item === null)
+            throw new Error("DataGroup content can not contain null items.");
+
         // Rules for skin lookup:
-        // 0. if the item is a deferred instance, instantiate it and fall through to the other item(s)
-        // 1. if the item is a display object, use it directly
-        // 2. if itemRendererFunction is defined, call it to get the renderer factory and instantiate it
-        // 3. if itemRenderer is defined, instantiate one
-        // 4. create a Label component and call toString() on the item
-
-        // 0. if the item is a deferred instance, instantiate it and fall through to the other item(s)
-        if (item is IDeferredInstance)
-            item = IDeferredInstance(item).getInstance();
-        // TODO (rfrishbe): do deferred instantiation in DataGroup?
-
-        // 1. if the item is a display object, use it directly unless the alwaysUseItemRenderer
-        // flag is set.
-        if (item is DisplayObject && itemRendererFunction == null)
-            itemSkin = item;
-
-        // 2. if itemRendererFunction is defined, call it to get the renderer factory and instantiate it
-        if (!itemSkin && itemRendererFunction != null)
+        // 1. if itemRendererFunction is defined, call it to get the renderer factory and instantiate it
+        // 2. if itemRenderer is defined, instantiate one
+        // 3. if item is a GraphicElement, create the display object for it
+        // 4. if item is a DisplayObject, use it directly
+
+        // 1. if itemRendererFunction is defined, call it to get the renderer factory and instantiate it
+        if (itemRendererFunction != null)
         {
             var rendererFactory:IFactory = itemRendererFunction(item);

             if (rendererFactory)
-                itemSkin = rendererFactory.newInstance();
-            else if (item is DisplayObject)
-                itemSkin = item;
-        }
-
-        // 3. if itemRenderer is defined, instantiate one
-        if (!itemSkin && itemRenderer != null)
-            itemSkin = itemRenderer.newInstance();
-
-        // 4. create a Label component and call toString() on the item
-        if (!itemSkin)
-        {
-            // No custom skin, use a Label
-            itemSkin = new Label();
-            Label(itemSkin).condenseWhite = true;
-            Label(itemSkin).htmlText = item.toString();
+                itemSkin = itemDisplayObject = rendererFactory.newInstance();
+        }
+
+        // 2. if itemRenderer is defined, instantiate one
+        if (!itemSkin && itemRenderer)
+        {
+            itemSkin = itemDisplayObject = itemRenderer.newInstance();
+        }
+
+        // 3. if item is a GraphicElement, create the display object for it
+        if (!itemSkin && item is GraphicElement)
+        {
+            var graphicItem:GraphicElement = GraphicElement(item);
+
+            if (!graphicItem.displayObject)
+                graphicItem.displayObject = graphicItem.createDisplayObject();
+
+            itemDisplayObject = graphicItem.displayObject;
+            itemSkin = graphicItem;
+        }
+
+        // 4. if item is a DisplayObject, use it directly
+        if (!itemSkin && item is DisplayObject)
+        {
+            itemSkin = itemDisplayObject = DisplayObject(item);
         }

         // Set the skin data to the item, but only if the item and skin are different
@@ -203,10 +278,10 @@

         registerSkin(item, itemSkin);

-        return itemSkin;
-    }
-
-    protected function registerSkin(item:*, itemSkin:DisplayObject):void
+        return itemDisplayObject;
+    }
+
+    protected function registerSkin(item:*, itemSkin:Object):void
     {
         if (!skinRegistry)
             skinRegistry = new Dictionary(true);
@@ -229,27 +304,27 @@
         if (dataProviderChanged)
         {
             dataProviderChanged = false;
-            initializeChildrenArray();
+            initializeDataProvider();

             // maskChanged = true; TODO (rfrishbe): need this maskChanged?
+        }
+
+        if (itemRendererChanged)
+        {
+            itemRendererChanged = false;
+            initializeDataProvider();
         }

         // Check whether we manage the elements, or are they managed by an ItemRenderer
         // TODO EGeorgie: we need to optimize this, iterating through all the elements is slow.
         // Validate element properties
-        var length:int = dataProvider.length;
+        var length:int = dataProvider ? dataProvider.length : 0;
         for (var i:int = 0; i < length; i++)
         {
             var element:GraphicElement = dataProvider.getItemAt(i) as GraphicElement;
             if (element)
                 element.validateProperties();
         }
-
-        if (needsDisplayObjectAssignment)
-        {
-            needsDisplayObjectAssignment = false;
-            assignDisplayObjects();
-        }
     }

     override public function validateSize(recursive:Boolean = false):void
@@ -260,7 +335,7 @@
         // Check whether we manage the elements, or are they managed by an ItemRenderer
         // TODO EGeorgie: we need to optimize this, iterating through all the elements is slow.
         // Validate element size
-        var length:int = dataProvider.length;
+        var length:int = dataProvider ? dataProvider.length : 0;
         for (var i:int = 0; i < length; i++)
         {
             var element:GraphicElement = dataProvider.getItemAt(i) as GraphicElement;
@@ -277,7 +352,7 @@

         // TODO EGeorgie: we need to optimize this, iterating through all the elements is slow.
         // Iterate through the graphic elements, clear their graphics and draw them
-        var length:int = dataProvider.length;
+        var length:int = dataProvider ? dataProvider.length : 0;
         for (var i:int = 0; i < length; i++)
         {
             var element:GraphicElement = dataProvider.getItemAt(i) as GraphicElement;
@@ -300,7 +375,7 @@
      */
     override public function get numLayoutItems():int
     {
-        return dataProvider.length;
+        return dataProvider ? dataProvider.length : 0;
     }

     /**
@@ -316,31 +391,35 @@
     {
         var item:* = dataProvider.getItemAt(index);

-        if (!(item is IGraphicElement))
-            item = getItemSkin(item);
-
-        return LayoutItemFactory.getLayoutItemFor(item);
-    }
-
-    protected function itemAdded(item:*, index:int):void
-    {
-        var child:DisplayObject;
+        var itemSkin:Object = getItemSkin(item);
+
+        return LayoutItemFactory.getLayoutItemFor(itemSkin);
+    }
+
+    protected function itemAdded(item:Object, index:int):void
+    {
+        var childDO:DisplayObject;

         if (item is GraphicElement)
         {
-            item.elementHost = this;
+            var graphicItem:GraphicElement = GraphicElement(item);
+            graphicItem.elementHost = this;

             // If a styleable GraphicElement is being added,
             // build its protochain for use by getStyle().
             if (item is IStyleClient)
                 IStyleClient(item).regenerateStyleCache(true);
+
+            childDO = createVisualForItem(graphicItem);
         }
         else
         {
             // This always adds the child to the end of the display list. Any
             // ordering discrepancies will be fixed up in assignDisplayObjects().
-            child = addItemToDisplayList(createVisualForItem(item), item);
-        }
+            childDO = createVisualForItem(item);
+        }
+
+        addItemToDisplayList(childDO, item);

         dispatchEvent(new ItemExistenceChangedEvent(
                       ItemExistenceChangedEvent.ITEM_ADD, false, false, item));
@@ -379,82 +458,6 @@
         invalidateSize();
         invalidateDisplayList();
     }
-
-    // Returns true if the Group's display object can be shared with graphic elements
-    // inside the group
-    private function get canShareDisplayObject():Boolean
-    {
-    	return blendMode == "normal";
-    }
-
-    // This function assumes that the only displayObjects are either items in the content array
-    // or created directly for an item in the content array.
-    private function assignDisplayObjects(startIndex:int = 0):void
-    {
-        var currentAssignableDO:DisplayObject = canShareDisplayObject ? this : null;
-        var lastDisplayObject:DisplayObject = this;
-
-        // Iterate through all of the items
-        var len:int = _dataProvider.length;
-        for (var i:int = startIndex; i < len; i++)
-        {
-            var item:* = _dataProvider.getItemAt(i);
-            var insertIndex:int;
-
-            if (!(item is GraphicElement))
-                item = getItemSkin(item);
-
-        	if (lastDisplayObject == this)
-        		insertIndex = 0;
-        	else
-        		insertIndex = super.getChildIndex(lastDisplayObject) + 1;
-
-            if (item is DisplayObject)
-            {
-            	super.setChildIndex(item as DisplayObject, insertIndex);
-
-                lastDisplayObject = item as DisplayObject;
-                // Null this out so that we are forced to create one for the next item
-                currentAssignableDO = null;
-            }
-            else if (item is GraphicElement)
-            {
-                var element:GraphicElement = item as GraphicElement;
-
-                if (currentAssignableDO == null || element.needsDisplayObject)
-                {
-                    var newChild:DisplayObject = element.displayObject;
-
-                    if (newChild == null)
-                    {
-                        newChild = element.createDisplayObject();
-                        element.displayObject = newChild; // TODO!! Handle this in createDisplayObject?
-                    }
-
-                    addItemToDisplayList(newChild, item, insertIndex);
-                    // If the element is transformed, the next item needs its own DO
-                    currentAssignableDO = element.nextSiblingNeedsDisplayObject ? null : newChild;
-                    lastDisplayObject = newChild;
-                }
-                else
-                {
-                    // Item should be assigned the currentAssignableDO
-                    // If it already has a DO, we need to remove it
-                    if (element.displayObject)
-                    {
-                        if (element.displayObject.parent == this)
-                            super.removeChild(element.displayObject);
-                        element.destroyDisplayObject();
-                    }
-
-                    element.sharedDisplayObject = currentAssignableDO;
-                    if (element.nextSiblingNeedsDisplayObject)
-                        currentAssignableDO = null;
-                }
-            }
-        }
-    }
-

     // Helper function to remove child from other Group or display list before
     // adding to the display list.
@@ -502,22 +505,13 @@
         return super.addChildAt(child, index != -1 ? index : super.numChildren);
     }

-    override public function elementLayerChanged(e:IGraphicElement):void
-    {
-        super.elementLayerChanged(e);
-
-        // One of our children have told us they might need a displayObject
-        assignDisplayObjects();
-    }
-
-
     protected function collectionChangeHandler(event:Event):void
     {
         if (event is CollectionEvent)
         {
             var ce:CollectionEvent = CollectionEvent(event);

-            /* if (ce.kind == CollectionEventKind.ADD)
+            if (ce.kind == CollectionEventKind.ADD)
             {

             }
@@ -542,8 +536,8 @@
             }
             else if (ce.kind == CollectionEventKind.UPDATE)
             {
-
-            } */
+                return;
+            }

             // TODO!! Fow now, always reapply the content. This needs to
             // be optimized in the future
@@ -559,9 +553,9 @@
     //
     //--------------------------------------------------------------------------

-    public function getItemSkin(item:*):DisplayObject
-    {
-        var result:DisplayObject = null;
+    public function getItemSkin(item:*):Object
+    {
+        var result:Object = null;

         if (skinRegistry)
             result = skinRegistry[item];
@@ -572,7 +566,7 @@
         return result;
     }

-    public function getSkinItem(skin:DisplayObject):*
+    public function getSkinItem(skin:Object):*
     {
         // !! This implementation is really slow...
         var item:*;
@@ -616,37 +610,44 @@

 	override public function addChild(child:DisplayObject):DisplayObject
     {
-        throw(new Error("addChild is not available in Group. Use addItem instead."));
+        throw(new Error("addChild is not available in DataGroup. " +
+                "Use methods defined on the dataProvider instead"));
     }

     override public function addChildAt(child:DisplayObject, index:int):DisplayObject
     {
-        throw(new Error("addChildAt is not available in Group. Use addItemAt instead."));
+        throw(new Error("addChildAt is not available in DataGroup. " +
+                "Use methods defined on the dataProvider instead"));
     }

     override public function removeChild(child:DisplayObject):DisplayObject
     {
-        throw(new Error("removeChild is not available in Group. Use removeItem instead."));
+        throw(new Error("removeChild is not available in DataGroup. " +
+                "Use methods defined on the dataProvider instead"));
     }

     override public function removeChildAt(index:int):DisplayObject
     {
-        throw(new Error("removeChildAt is not available in Group. Use removeItemAt instead."));
+        throw(new Error("removeChildAt is not available in DataGroup. " +
+                "Use methods defined on the dataProvider instead"));
     }

     override public function setChildIndex(child:DisplayObject, index:int):void
     {
-        throw(new Error("setChildIndex is not available in Group. Use setItemIndex instead."));
+        throw(new Error("setChildIndex is not available in DataGroup. " +
+                "Use methods defined on the dataProvider instead"));
     }

     override public function swapChildren(child1:DisplayObject, child2:DisplayObject):void
     {
-        throw(new Error("swapChildren is not available in Group. Use swapItems instead."));
+        throw(new Error("swapChildren is not available in DataGroup. " +
+                "Use methods defined on the dataProvider instead"));
     }

     override public function swapChildrenAt(index1:int, index2:int):void
     {
-        throw(new Error("swapChildrenAt is not available in Group. Use swapItemsAt instead."));
+        throw(new Error("swapChildrenAt is not available in DataGroup. " +
+                "Use methods defined on the dataProvider instead"));
     }
 }
 }


U using skinning shader part in BasicShader

--- src/aerys/minko/render/effect/basic/BasicShader.as
+++ src/aerys/minko/render/effect/basic/BasicShader.as
@@ -1,13 +1,28 @@
 package aerys.minko.render.effect.basic
 {
+	import aerys.minko.render.shader.ActionScriptShader;
 	import aerys.minko.render.shader.SFloat;
-	import aerys.minko.render.shader.ActionScriptShader;
+	import aerys.minko.render.shader.parts.SkinningShaderPart;

 	public class BasicShader extends ActionScriptShader
 	{
+		private var _skinning	: SkinningShaderPart	= null;
+
+		public function BasicShader()
+		{
+			super();
+
+			_skinning = new SkinningShaderPart(this);
+		}
+
 		override protected function getVertexPosition() : SFloat
 		{
-			return localToScreen(vertexXYZ);
+			var vertexPosition	: SFloat = vertexXYZ;
+
+			if (meshBindings.propertyExists("skinningMethod"))
+				vertexPosition = _skinning.skinPosition(vertexPosition);
+
+			return localToScreen(vertexPosition);
 		}

 		override protected function getPixelColor() : SFloat


Fix delete triangle function

Fix delete triangle function

--- src/aerys/minko/render/geometry/stream/IndexStream.as
+++ src/aerys/minko/render/geometry/stream/IndexStream.as
@@ -128,10 +128,19 @@
 		public function deleteTriangle(triangleIndex : uint) : void
 		{
 			checkWriteUsage(this);
-
-			_data.position = 0;
-			_data.writeBytes(_data, triangleIndex * 12, 12);
-			_data.length -= 12;
+
+			_data.position = _data.length - 6;
+			var v0 : uint = _data.readShort();
+			var v1 : uint = _data.readShort();
+			var v2 : uint = _data.readShort();
+
+			_data.position = triangleIndex * 12;
+			_data.writeShort(v0);
+			_data.writeShort(v1);
+			_data.writeShort(v2);
+
+//			_data.writeBytes(_data, triangleIndex * 12, 12);
+			_data.length -= 6;
 			_data.position = 0;

 			invalidate();


Fix in Render2D to resize background to stage2D dimensions.

--- src/engine/tetragon/view/render2d/core/Render2D.as
+++ src/engine/tetragon/view/render2d/core/Render2D.as
@@ -502,7 +502,9 @@
 		public function setBackground(background:DisplayObject2D):void
 		{
 			removeBackground();
-			_background = background;
+			_background = background;
+			_background.width = _stage2D.stageWidth;
+			_background.height = _stage2D.stageHeight;
 			_stage2D.addChildAt(_background, 0);
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 16823
Author:   deeptika@adobe.com
Date:     2010-07-07T06:36:40.772938Z

Log Message:
-----------
Invalidating transitions only once when data is changed. If data is not changed, we need not invalidate anything.

QE notes:
Doc notes:
Bugs: FLEXDMV-2018 (Showdataeffect loops for columnchart with two vertical axis)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/Series.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/charts/chartClasses/ChartElement.as</path>

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/ChartElement.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/ChartElement.as
@@ -205,6 +205,8 @@
      */
     public function set dataProvider(value:Object):void
     {
+		if(_userDataProvider == value)
+			return;
         _userDataProvider = value;
         processNewDataProvider(value);
     }


Fix NPE in WebSocketDataSource.

Fix NPE in WebSocketDataSource.

--- WeaveASJS/src/weavejs/data/source/WebSocketDataSource.as
+++ WeaveASJS/src/weavejs/data/source/WebSocketDataSource.as
@@ -72,6 +72,7 @@
 			if (_socket && _socket.readyState == 1)
 			{
 				var ks:IKeySet = selectionFilter.getInternalKeyFilter() as IKeySet;
+				if (!ks || !ks.keys) return;
 				_socket.send(JSON.stringify(ks.keys.map(function (key:IQualifiedKey, idx:int, a:Array):String {
 					return key.localName;
 				})));


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

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

 package mx.olap
 {


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

--- frameworks/projects/mx/src/mx/controls/tabBarClasses/Tab.as
+++ frameworks/projects/mx/src/mx/controls/tabBarClasses/Tab.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2003-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//  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
+//
+//      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: 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@1269942 13f79535-47bb-0310-9956-ffa450edef68

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 12048
Author:   hmuller@adobe.com
Date:     2009-11-20T17:17:00.759220Z

Log Message:
-----------
Added mx_internal createItemRendererFor(index:int):IVisualElement to
DataGroup.  this method is intended to be used by clients which need
to measure virtual IRs that may not be visible/allocated.

QE notes:
Doc notes:
Bugs: sdk-23667
Reviewer: Hans
Tests run:
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -279,7 +279,33 @@
             IInvalidating(obj).validateNow();
         setTypicalLayoutElement(renderer);
         super.removeChild(obj);
-    }
+    }
+
+    /**
+     *  @private
+     *  Create and validate a new item renderer (IR) for dataProvider[index].
+     *
+     *  This method creates a new IR which is not a child of this DataGroup.  It does not
+     *  return the existing IR at the specified index and it does not cache the IRs it
+     *  creates.   This method is intended to be used by clients which need to measure
+     *  virtual IRs that may not be visible/allocated.
+     */
+    mx_internal function createItemRendererFor(index:int):IVisualElement
+    {
+        if ((index < 0) || (dataProvider == null) || (index >= dataProvider.length))
+            return null;
+
+        const item:Object = dataProvider.getItemAt(index);
+        const renderer:IVisualElement = createRendererForItem(item);
+
+        super.addChild(DisplayObject(renderer));
+        setUpItemRenderer(renderer, index, item);
+        if (renderer is IInvalidating)
+            IInvalidating(renderer).validateNow();
+        super.removeChild(DisplayObject(renderer));
+
+        return renderer;
+    }

     /**
      *  @private


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/effects/IEffectTargetHost.as
+++ frameworks/projects/framework/src/mx/effects/IEffectTargetHost.as
@@ -0,0 +1,90 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.effects
+{
+
+/**
+ *  The IEffectTargetHost interface defines the interface that lets you access the
+ *  target list-based control of a data effect.
+ *  All list-based controls implement this interface.
+ *  This interface enables an instance of an effect class to communicate with the
+ *  list-based control on which the effect is playing.
+ *  This interface is also used for determining whether to play an effect based on if a data item is
+ *  added, removed, or replaced in the target control.
+ *
+ *  @see mx.controls.listClasses.ListBase
+ */
+public interface IEffectTargetHost
+{
+
+    /**
+     *  Called by an UnconstrainItemAction effect
+     *  as part of a data change effect if the item renderers corresponding
+     *  to certain data items need to move outside the normal positions
+     *  of item renderers in the control.
+     *  The control does not attempt to position the item render for the
+     *  duration of the effect.
+     *
+     *  @param item The item renderer that is a target of the effect.
+     */
+    function unconstrainRenderer(item:Object):void;
+
+    /**
+     *  Removes an item renderer if a data change effect is running.
+     *  The item renderer must correspond to data that has already
+     *  been removed from the data provider collection.
+     *
+     *  This function will be called by a RemoveItemAction
+     *  effect as part of a data change effect to specify the point
+     *  at which a data item ceases to displayed by the control using
+     *  an item renderer.
+     *
+     *  @param item The item renderer to remove from the control's layout.
+     */
+    function removeDataEffectItem(target:Object):void;
+
+    /**
+     *  Adds an item renderer if a data change effect is running.
+     *  The item renderer should correspond to a recently added
+     *  data item in the data provider's collection that isn't
+     *  yet being displayed.
+     *
+     *
This function will be called by an AddItemAction
+     *  effect as part of a data change effect to specify the point
+     *  at which a data item added to a collection begins to be displayed
+     *  by the control using an item renderer.

+     *
+     *  @param item The item renderer to add to the control's layout.
+     */
+    function addDataEffectItem(target:Object):void;
+
+    /**
+     *  Returns true or false
+     *  to indicates whether the effect should play on the target.
+     *  The EffectTargetFilter class calls this method when you set
+     *  the filter property on a data effect.
+     *  For example, you set filter property
+     *  to addItem or removeItem.
+     *
+     *  @param target An item renderer
+     *
+     *  @param semanticProperty The semantic property of the renderer
+     *  whose value will be returned.
+     *
+     *  @return true or false
+     *  to indicates whether the effect should play on the target.
+     */
+    function getRendererSemanticValue(target:Object,semanticProperty:String):Object;
+
+}
+
+}


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

--- frameworks/projects/spark/src/spark/components/BorderContainer.as
+++ frameworks/projects/spark/src/spark/components/BorderContainer.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: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/spark/src/spark/components/ButtonBarButton.as
+++ frameworks/projects/spark/src/spark/components/ButtonBarButton.as
@@ -15,6 +15,8 @@

 import spark.components.IItemRenderer;
 import mx.core.mx_internal;
+
+use namespace mx_internal;

 /**
  *  The ButtonBarButton class defines the custom item renderer
@@ -114,7 +116,7 @@
             return;

         _caret = value;
-        mx_internal::drawFocusAnyway = true;
+        drawFocusAnyway = true;
         drawFocus(value);
     }


Allow relaying data while one end of a ProxyPair is disconnected.

Data could be left stranded when one end became closed after data had
been read but before it had been flushed to the other side.

--- ProxyPair.as
+++ ProxyPair.as
@@ -86,13 +86,13 @@
         public function connect():void
         {
             s_r.addEventListener(Event.CONNECT, relay_connected);
-            s_r.addEventListener(Event.CLOSE, socket_error("Relay: closed", s_c));
+            s_r.addEventListener(Event.CLOSE, relay_closed);
             s_r.addEventListener(IOErrorEvent.IO_ERROR, socket_error("Relay: I/O error", s_c));
             s_r.addEventListener(SecurityErrorEvent.SECURITY_ERROR, socket_error("Relay: security error", s_c));
             s_r.addEventListener(ProgressEvent.SOCKET_DATA, relay_to_client);

             s_c.addEventListener(Event.CONNECT, client_connected);
-            s_c.addEventListener(Event.CLOSE, socket_error("Client: closed", s_r));
+            s_c.addEventListener(Event.CLOSE, client_closed);
             s_c.addEventListener(IOErrorEvent.IO_ERROR, socket_error("Client: I/O error", s_r));
             s_c.addEventListener(SecurityErrorEvent.SECURITY_ERROR, socket_error("Client: security error", s_r));
             s_c.addEventListener(ProgressEvent.SOCKET_DATA, client_to_relay);
@@ -111,6 +111,18 @@
         private function client_connected(e:Event):void
         {
             log("Client: connected.");
+        }
+
+        private function relay_closed(e:Event):void
+        {
+            log("Relay: closed.");
+            flush();
+        }
+
+        private function client_closed(e:Event):void
+        {
+            log("Client: closed.");
+            flush();
         }

         private function relay_to_client(e:ProgressEvent):void
@@ -141,24 +153,41 @@
         /* Send as much data as the rate limit currently allows. */
         private function flush():void
         {
+            var busy:Boolean;
+
             if (flush_id)
                 clearTimeout(flush_id);
             flush_id = undefined;

-            if (!(s_r.connected && s_c.connected))
-                /* Can't do anything until both sockets are connected. */
+            if (!s_r.connected && !s_c.connected)
+                /* Can't do anything while both sockets are disconnected. */
                 return;

-            while (!ui.rate_limit.is_limited() &&
-                   (r2c_schedule.length > 0 || c2r_schedule.length > 0)) {
-                if (r2c_schedule.length > 0)
+            busy = true;
+            while (busy && !ui.rate_limit.is_limited()) {
+                busy = false;
+                if (s_c.connected && r2c_schedule.length > 0) {
                     transfer_chunk(s_r, s_c, r2c_schedule.shift(), "Relay");
-                if (c2r_schedule.length > 0)
+                    busy = true;
+                }
+                if (s_r.connected && c2r_schedule.length > 0) {
                     transfer_chunk(s_c, s_r, c2r_schedule.shift(), "Client");
+                    busy = true;
+                }
             }

-            /* Call again when safe, if necessary. */
-            if (r2c_schedule.length > 0 || c2r_schedule.length > 0)
+            if (!s_r.connected && r2c_schedule.length == 0) {
+                log("Client: closing.");
+                s_c.close();
+            }
+            if (!s_c.connected && c2r_schedule.length == 0) {
+                log("Relay: closing.");
+                s_r.close();
+            }
+
+            if (!s_c.connected && !s_r.connected)
+                dispatchEvent(new Event(Event.COMPLETE));
+            else if (r2c_schedule.length > 0 || c2r_schedule.length > 0)
                 flush_id = setTimeout(flush, ui.rate_limit.when() * 1000);
         }
     }


When selecting a date from the calendar, symbol is not overwritten

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/DateAttributePresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/DateAttributePresenter.as
@@ -7,8 +7,10 @@

 	import org.openforis.collect.client.ClientFactory;
 	import org.openforis.collect.client.DataClient;
+	import org.openforis.collect.client.UpdateRequestToken;
 	import org.openforis.collect.remoting.service.UpdateRequest;
 	import org.openforis.collect.remoting.service.UpdateRequestOperation;
+	import org.openforis.collect.ui.component.detail.CompositeAttributeRenderer;
 	import org.openforis.collect.ui.component.input.DateAttributeRenderer;
 	import org.openforis.collect.ui.component.input.DateField;
 	import org.openforis.collect.ui.component.input.InputField;
@@ -67,9 +69,12 @@
 				var o:UpdateRequestOperation = field.presenter.getApplyValueOperation();
 				operations.addItem(o);
 			}
+			var token:UpdateRequestToken = new UpdateRequestToken(UpdateRequestToken.TYPE_UPDATE_VALUE);
+			token.updatedFields = _view.attribute.fields;
+			token.symbol = null;
 			var req:UpdateRequest = new UpdateRequest();
 			req.operations = operations;
-			dataClient.updateActiveRecord(req, null, null, faultHandler);
+			dataClient.updateActiveRecord(req, token, null, faultHandler);
 		}

 		protected function getDateFromFields():Date {
@@ -77,8 +82,16 @@
 			if(StringUtil.isNotBlank(view.day.text) &&
 				StringUtil.isNotBlank(view.month.text) &&
 				StringUtil.isNotBlank(view.year.text)) {
-				var tempDate:Date = new Date(view.year.text, int(view.month.text) - 1, view.day.text);
-				return tempDate;
+				var year:Number = Number(view.year.text);
+				var month:Number = Number(view.month.text) - 1;
+				var day:Number = Number(view.day.text);
+				if(!isNaN(year) && !isNaN(month) && !isNaN(day)) {
+					var tempDate:Date = new Date(year, month, day);
+					if(! isNaN(tempDate.valueOf()) && tempDate.fullYear == year && tempDate.month == month && tempDate.date == day) {
+						//valid date
+						return tempDate;
+					}
+				}
 			}
 			return null;
 		}


修正 GObjectPool._pool 清理不掉的问题

修正 GObjectPool._pool 清理不掉的问题

--- source/fairygui/GObjectPool.as
+++ source/fairygui/GObjectPool.as
@@ -9,8 +9,7 @@
 		}

 		public function clear(): void {
-			var length1: Number = this._pool.length;
-			for (var i1: Number = 0; i1 < length1; i1++) {
+			for (var i1:String in this._pool) {
 				var arr: Array = this._pool[i1];
 				var cnt: Number = arr.length;
 				for (var i: Number = 0; i < cnt; i++)


fix png publishing

fix png publishing

--- src/com/merlinds/miracle_tool/services/PublishBuilder.as
+++ src/com/merlinds/miracle_tool/services/PublishBuilder.as
@@ -45,7 +45,7 @@
 			_file = _workDir.resolvePath("png4atf.png");
 			_atf = _workDir.resolvePath("output.atf");
 			var stream:FileStream = new FileStream();
-			stream.openAsync(_file, FileMode.WRITE);
+			stream.open(_file, FileMode.WRITE);
 			stream.writeBytes(png);
 			stream.close();
 			//execute atf packer


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 17201
Author:   cframpto@adobe.com
Date:     2010-08-05T14:56:08.412026Z

Log Message:
-----------
Add listStylePosition and listStyleType metadata for TLF's new list element.  Add them both to the list of size invalidating styles.  Add styles to list of styles in ASdoc.

QE notes:  listStylePosition=outside leaks outside our components - known issue which we're working with TLF on
Doc notes:
Bugs: SDK-27254
Reviewer: Corey
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<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/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/styles/metadata/AdvancedInheritingTextStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/NumericStepper.as
+++ frameworks/projects/spark/src/spark/components/NumericStepper.as
@@ -200,6 +200,8 @@
 *    ligatureLevel="COMMON"
 *    lineHeight="120%"
 *    lineThrough="false"
+*    listStylePosition="outside"
+*    listStyleType="disc"
 *    locale="en"
 *    paragraphEndIndent="0"
 *    paragraphSpaceAfter="0"


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

--- frameworks/projects/spark/src/spark/events/TextOperationEvent.as
+++ frameworks/projects/spark/src/spark/events/TextOperationEvent.as
@@ -20,6 +20,11 @@
  *  Represents events that are dispatched when text content
  *  changes due to user operations such as inserting characters,
  *  backspacing, pasting, changing attributes, etc.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public class TextOperationEvent extends Event
 {
@@ -52,6 +57,11 @@
 	 *  </table>
 	 *
      *  @eventType changing
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
 	public static const CHANGING:String = "changing";

@@ -76,6 +86,11 @@
 	 *  </table>
 	 *
      *  @eventType change
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
 	public static const CHANGE:String = "change";

@@ -99,6 +114,11 @@
 	 *  @param operation Reference to the FlowOperation object
 	 *  describing the editing operation being performed
 	 *  on the text by the user.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
 	public function TextOperationEvent(type:String, bubbles:Boolean = false,
 									   cancelable:Boolean = true,
@@ -121,6 +141,11 @@

 	/**
 	 *  The FlowOperation being performed by the user.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10
+	 *  @playerversion AIR 1.5
+	 *  @productversion Flex 4
 	 */
 	public var operation:FlowOperation;


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

--- frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
+++ frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-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.
 //
 ////////////////////////////////////////////////////////////////////////////////
 package mx.utils


Transferred from the Adobe Open Source Subversion Repository

Revision: 3552
Author:   rfrishbe@adobe.com
Date:     2008-10-09T22:07:55.906700Z

Log Message:
-----------
This patch contains multiple changes, mostly renames, outlined below:

1.Rename properties in FxComponent: skinObject -> skin, skinZZ -> skinClass.
2.Rename property in Skin: data -> fxComponent (this also means Skin doesn’t implement IDataRenderer anymore)
3.Renames in DataGroup: Mostly around "skin" to "renderer" to get terminology correct
4.Random other cleanups: For instance changing typing of "*" to "Object" in ItemsComponent and DataGroup or removing some un-used imports in Group and GroupBase.
5.Lots of cleanup in flex4tests to deal with renaming of classes and renaming of properties
6.Gumbo-manifest.mxml  - typo...some files listed as mx.componentss.* instead of mx.components.*.  This file is going away as all components are moved into the 2009 namespace, but we'll fix this for now.
7.Defaults.css – FxDataComponent should be FxDataContainer.
8.SystemManger fix: this was in the previous SystemManager but got overwritten by a bad merge.  Jim’s aware of the issue, and I’m checking in the fix for it.

QE: Yes - Joann and Steve have pre-emptively made the changes
Doc: Yes
Bugs: SDK-17056, SDK-17174
Reviewer: Chet, Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxNumericStepperSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/NewEffects.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/AddItemsTest.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/MyVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/EffectsProperties.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/RemoveItemsTest.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxSpinnerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/components/AnimationPropertiesForm.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxHScrollBarSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/ScrollbarFrenzy.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/flex4test.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/components/CircularScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/skins/CircularScrollBarSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/Skin.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/Skin.as
@@ -10,8 +10,7 @@
 ////////////////////////////////////////////////////////////////////////////////

 package mx.components
-{
-import mx.core.IDataRenderer;
+{

 /**
  *  The Skin class defines the base class for all skins used by skinnable components.
@@ -37,7 +36,7 @@
  *
  *  @see mx.core.SkinnableComponent
  */
-public class Skin extends Group implements IDataRenderer
+public class Skin extends Group
 {
     include "../core/Version.as";

@@ -61,22 +60,22 @@
     //
     //--------------------------------------------------------------------------

-	private var _data:Object;
+	private var _fxComponent:Object;
     [Bindable]
     /**
      *  A reference to the component that hosts this skin instance.
      */
-    public function get data():Object
+    public function get fxComponent():Object
     {
-        return _data;
+        return _fxComponent;
     }

     /**
      *  @private
      */
-    public function set data(value:Object):void
+    public function set fxComponent(value:Object):void
     {
-        _data = value;
+        _fxComponent = value;
     }

 }


We should be removing ourselves from our parent when we're finished.

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

--- src/as/com/threerings/flash/FloatingTextAnimation.as
+++ src/as/com/threerings/flash/FloatingTextAnimation.as
@@ -69,6 +69,7 @@
         var perc :Number = elapsed / duration;
         if (perc >= 1) {
             AnimationManager.removeDisplayAnimation(this);
+            parent.removeChild(this);
             return;
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 14483
Author:   smgilson@adobe.com
Date:     2010-03-01T19:01:18.459430Z

Log Message:
-----------
merge 14456: Adding ASDoc version tags classes

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkRangeAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkRadioButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkPanelAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkButtonBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonBarAutomationImpl.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_air/src/mx/automation/air/AirFunctionsHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkSkinnableContainerAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/events/SparkValueChangeAutomationEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkButtonBarBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkNavigatorContentAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkDataGroupAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkTrackBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation/src/mx/automation/events/EventDetails.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/events/SparkListItemSelectEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTabBarAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonBarButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkGroupAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkSkinnableContainerBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/mediaClasses/SparkMuteButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_air/src/mx/automation/air/AirDragManagerAutomationHandler.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/SOAPResult.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkTextBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTitleWindowAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkTileGroupAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkToggleButtonAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkSpinnerAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/accessibility/AccConst.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkLabelAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkBorderContainerAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkGroupBaseAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkVideoPlayerAutomationImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/automation_spark/src/spark/automation/delegates/components/supportClasses/SparkSkinnableComponentAutomationImpl.as</path>

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

--- frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkLabelAutomationImpl.as
+++ frameworks/projects/automation_spark/src/spark/automation/delegates/components/SparkLabelAutomationImpl.as
@@ -11,85 +11,100 @@

 package spark.automation.delegates.components
 {
-	import flash.display.DisplayObject;
-
-	import mx.automation.Automation;
-	import mx.core.mx_internal;
-
-	import spark.automation.delegates.components.supportClasses.SparkTextBaseAutomationImpl;
-	import spark.components.Label;
-
-	use namespace mx_internal;
-
-	[Mixin]
-	/**
-	 *
-	 *  Defines methods and properties required to perform instrumentation for the
-	 *  Label control.
-	 *
-	 *  @see spark.components.Label
-	 *
-	 */
-	public class SparkLabelAutomationImpl extends SparkTextBaseAutomationImpl
-	{
-
-		include "../../../core/Version.as";
-		//--------------------------------------------------------------------------
-		//
-		//  Class methods
-		//
-		//--------------------------------------------------------------------------
-
-		/**
-		 *  Registers the delegate class for a component class with automation manager.
-		 *
-		 *  @param root The SystemManger of the application.
-		 */
-		public static function init(root:DisplayObject):void
-		{
-			Automation.registerDelegateClass(spark.components.Label, SparkLabelAutomationImpl);
-		}
-
-		/**
-		 *  Constructor.
-		 * @param obj Label object to be automated.
-		 */
-		public function SparkLabelAutomationImpl(obj:spark.components.Label)
-		{
-			super(obj);
-
-		}
-
-		/**
-		 *  @private
-		 *  storage for the owner component
-		 */
-		protected function get label():spark.components.Label
-		{
-			return uiComponent as spark.components.Label;
-		}
-
-		/**
-		 *  @private
-		 */
-		override public function get automationName():String
-		{
-			return label.id||label.text || super.automationName;
-		}
-
-		//----------------------------------
-		//  automationValue
-		//----------------------------------
-
-		/**
-		 *  @private
-		 */
-		override public function get automationValue():Array
-		{
-			return [ automationName ];
-		}
-
-
-	}
-
+    import flash.display.DisplayObject;
+
+    import mx.automation.Automation;
+    import mx.core.mx_internal;
+
+    import spark.automation.delegates.components.supportClasses.SparkTextBaseAutomationImpl;
+    import spark.components.Label;
+
+    use namespace mx_internal;
+
+    [Mixin]
+    /**
+     *
+     *  Defines methods and properties required to perform instrumentation for the
+     *  Label control.
+     *
+     *  @see spark.components.Label
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     *
+     */
+    public class SparkLabelAutomationImpl extends SparkTextBaseAutomationImpl
+    {
+
+        include "../../../core/Version.as";
+        //--------------------------------------------------------------------------
+        //
+        //  Class methods
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Registers the delegate class for a component class with automation manager.
+         *
+         *  @param root The SystemManger of the application.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.5
+         *  @productversion Flex 4
+         */
+        public static function init(root:DisplayObject):void
+        {
+            Automation.registerDelegateClass(spark.components.Label, SparkLabelAutomationImpl);
+        }
+
+        /**
+         *  Constructor.
+         * @param obj Label object to be automated.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.5
+         *  @productversion Flex 4
+         */
+        public function SparkLabelAutomationImpl(obj:spark.components.Label)
+        {
+            super(obj);
+
+        }
+
+        /**
+         *  @private
+         *  storage for the owner component
+         */
+        protected function get label():spark.components.Label
+        {
+            return uiComponent as spark.components.Label;
+        }
+
+        /**
+         *  @private
+         */
+        override public function get automationName():String
+        {
+            return label.id||label.text || super.automationName;
+        }
+
+        //----------------------------------
+        //  automationValue
+        //----------------------------------
+
+        /**
+         *  @private
+         */
+        override public function get automationValue():Array
+        {
+            return [ automationName ];
+        }
+
+
+    }
+
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 39
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-19T15:48:08.368215Z

Log Message:
-----------
Perforce Change 191478 by smgilson@SMGILSON-XP on 2007/12/19 10:46:56 Update asdoc for SDK-13989 Checkin Test Passed: Yes QA: No Bug: SDK-13989 Doc: No Affected files ...

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -747,7 +747,7 @@
  *    automationName="null"
  *    cachePolicy="auto|on|off"
  *    currentState="null"
- *    doubleClickEnabled="true|false"
+ *    doubleClickEnabled="false|true"
  *    enabled="true|false"
  *    explicitHeight="NaN"
  *    explicitMaxHeight="NaN"
@@ -1929,8 +1929,8 @@

     /**
      *  Specifies whether the UIComponent object receives doubleClick events.
-     *  The default value is true, which means that the UIComponent object
-     *  receives doubleClick events.
+     *  The default value is false, which means that the UIComponent object
+     *  does not receive doubleClick events.
      *
      *
The mouseEnabled property must also be set to true,
      *  its default value, for the object to receive doubleClick events.


Transferred from the Adobe Open Source Subversion Repository

Revision: 3447
Author:   egeorgie@adobe.com
Date:     2008-10-01T23:06:20.188517Z

Log Message:
-----------
Change UIComponent.unscaledWidth and unscaledHeight properties from protected to mx_internal. We need this change to make mustella compareBitmap work.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -6200,7 +6200,7 @@
      *
      *  @return A Number which is unscaled width of the component.
      */
-    protected function get unscaledWidth():Number
+    mx_internal function get unscaledWidth():Number
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
             return width / Math.abs(scaleX);
@@ -6245,7 +6245,7 @@
      *
      *  @return A Number which is unscaled height of the component.
      */
-    protected function get unscaledHeight():Number
+    mx_internal function get unscaledHeight():Number
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
             return height / Math.abs(scaleY);


fixed bug with defaultType feature.

fixed bug with defaultType feature.

--- WeaveCore/src/weave/primitives/Dictionary2D.as
+++ WeaveCore/src/weave/primitives/Dictionary2D.as
@@ -47,16 +47,16 @@
 		 */
 		public function get(key1:Object, key2:Object):*
 		{
+			var value:* = undefined;
 			var d2:* = dictionary[key1];
 			if (d2)
-				return d2[key2];
-			if (defaultType)
+				value = d2[key2];
+			if (value === undefined && defaultType)
 			{
-				var value:* = new defaultType();
+				value = new defaultType();
 				set(key1, key2, value);
-				return value;
 			}
-			return undefined;
+			return value;
 		}

 		/**


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

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

 package spark.automation.delegates.components
 {


remove copy of original ActionScript implementation

--- original.as
+++ original.as
@@ -1,104 +0,0 @@
-/* -- formatInscription : formats the text to fit the slab dimensions -- */
-public function formatInscription(rect:Rectangle, useMargin:Boolean):Void {
-
-    // calculate height of the ’ideal’ line
-    var idealLineAspectRatio:Number = PS.fontInfo.altGoth3D.aspectRatio * PS.fontInfo.altGoth3D.idealLineLength;
-    var idealLineWidth:Number = rect.width;
-    var idealLineHeight:Number = idealLineWidth / idealLineAspectRatio;
-    var lineCount:Number = Math.floor(rect.height / idealLineHeight);
-    var idealCharPerLine:Number = Math.min(60, Math.max(Math.round(this._inscription.length / lineCount), 1));
-
-
-    // segment the text into lines
-    var words:Array = this._inscription.split(“ ”);
-    var lineBreaks:Array = new Array();
-    var preText,postText,finalText:String;
-    var preDiff,postDiff:Number;
-    var wordIndex:Number = 0;
-    var lineText:Array = new Array();
-
-
-    var counter:Number = 0;
-
-    // while we still have words left, build the next line
-    while (wordIndex < words.length) {
-        postText = “”;
-
-        // build two strings (preText and postText) word by word, with one
-        // string always one word behind the other, until
-        // the length of one string is less than the ideal number of characters
-        // per line, while the length of the other is greater than that ideal
-        while (postText.length < idealCharPerLine) {
-            preText = postText;
-            postText += words[wordIndex]+“ ”;
-            wordIndex++;
-            if (wordIndex >= words.length) {
-                break;
-            }
-        }
-
-        // calculate the character difference between the two strings and the
-        // ideal number of characters per line
-        preDiff = idealCharPerLine - preText.length;
-        postDiff = postText.length - idealCharPerLine;
-
-        // if the smaller string is closer to the length of the ideal than
-        // the longer string, and doesn’t contain just a single space, then
-        // use that one for the line
-        if ((preDiff < postDiff) && (preText.length > 2)) {
-            finalText = preText;
-            wordIndex--;
-
-        // otherwise, use the longer string for the line
-        } else {
-            finalText = postText;
-        }
-
-        lineText.push(finalText.substr(0, finalText.length-1));
-    }
-
-    lineCount = lineText.length;
-
-    // create inscription clip
-    this._inscriptionClip.removeMovieClip();
-    this.createEmptyMovieClip(“inscriptionClip”, 10);
-    this._inscriptionClip = this[“inscriptionClip”];
-
-    // build the text fields
-    var curY:Number = 0;
-    this._lines = new Array();
-    for (var i:Number=0; i<lineCount; i++) {
-        this._inscriptionClip.attachMovie(“altGoth3DText”, “line”+i, 10+i);
-        this._lines.push(this._inscriptionClip[“line”+i]);
-        this._lines[i].content.text = lineText[i];
-
-        // scale this line so it exactly fits with width of the rect
-        this._lines[i]._yscale = this._lines[i]._xscale = (rect.width / this._lines[i].content.textWidth) * 100;
-
-        this._lines[i]._y = curY;
-        curY += this._lines[i]._height * .59;
-    }
-
-    this._inscriptionWidth = rect.width;
-    this._inscriptionHeight = curY;
-    this._inscriptionAR = this._inscriptionWidth / this._inscriptionHeight;
-
-    if (useMargin) {
-        var margin:Number = this._margin;
-    } else {
-        var margin:Number = 0;
-    }
-
-    // calculate the scaling to apply so the total inscription fits inside the rect
-    // centered, with the given margin
-    var clipScale:Number;
-    clipScale = ((rect.width-(margin * 2)) / rect.width) * 100;
-    if (this._inscriptionHeight > rect.height) {
-        clipScale = ((rect.height-(margin * 2)) / this._inscriptionHeight) * 100;
-    }
-    this._inscriptionClip._yscale = this._inscriptionClip._xscale = clipScale;
-    this._inscriptionClip._x = (rect.width - (rect.width * (clipScale / 100))) / 2;
-    this._inscriptionClip._y = (rect.height - (this._inscriptionHeight * (clipScale / 100))) / 2;
-    GraphicUtil.changeColor(this._inscriptionClip, this._colorScheme.text_color);
-
-}