Transferred from the Adobe Open Source Subversion Repository

Revision: 18476
Author:   rfrishbe@adobe.com
Date:     2010-11-05T19:24:22.345498Z

Log Message:
-----------
Adding a "down" state for item renderers when in touch interaction mode.  This means item renderers don't go in to the "selected" state when someone presses down on them.  They first go in to the "down" state.  If the user later starts scrolling or moving around, the item renderer returns to the "normal" state.  If they press down and release up on the same item, the item renderer will go from the "down" state to the "selected" state.  This distinction is necessary on touch devices to distinguish between "down" and "selected".  There's also a new "selectedAndDown" state.

Adding ItemRendererInterationStateDetector as a helper class for item renderer to help detect when they are indeed hovered or pressed down.

QE notes:
Doc notes:
Bugs: SDK-27674, SDK-28110
Reviewer: Eric Day
Tests run: checkintests, full mustella run, QA cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/SparkClasses.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/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRendererInteractionStateDetector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/DropDownListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/wireframe/defaults.css</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
@@ -11,19 +11,20 @@

 package spark.components
 {
-import flash.events.MouseEvent;
+import flash.events.Event;
 import flash.text.TextLineMetrics;

 import mx.controls.listClasses.*;
 import mx.core.IDataRenderer;
 import mx.core.IFlexDisplayObject;
 import mx.core.ILayoutElement;
-import mx.core.InteractionMode;
+import mx.core.IUIComponent;
 import mx.core.UIComponent;
 import mx.core.UITextField;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;

+import spark.components.supportClasses.ItemRendererInteractionStateDetector;
 import spark.components.supportClasses.StyleableTextField;

 use namespace mx_internal;
@@ -43,7 +44,7 @@
  *  @eventType mx.events.FlexEvent.DATA_CHANGE
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -64,12 +65,26 @@
  *  @default undefined
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
 [Style(name="alternatingItemColors", type="Array", arrayType="uint", format="Color", inherit="yes", theme="spark, mobile")]
 // FIXME (rfrishbe): what to do about theme?
+
+/**
+ *  The color of the background of an item renderer when the item is pressed down.
+ *
+ *
This style is only applicable in touch interactionMode.

+ *
+ *  @default 0xB2B2B2
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+ */
+[Style(name="downColor", type="uint", format="Color", inherit="yes")]

 /**
  *  Color of focus ring when the component is in focus.
@@ -77,7 +92,7 @@
  *  @default 0x70B2EE
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -90,7 +105,7 @@
  *  @default 5
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -103,7 +118,7 @@
  *  @default 5
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -115,7 +130,7 @@
  *  @default 0xCEDBEF
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -127,7 +142,7 @@
  *  @default 0xB2B2B2
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -142,7 +157,7 @@
  *  @default 0x000000
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -158,7 +173,7 @@
  *  @default "center"
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -194,7 +209,7 @@
  *  @see spark.components.supportClasses.ItemRenderer
  *
  *  @langversion 3.0
- *  @playerversion Flash 10
+ *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5
  *  @productversion Flex 4.5
  */
@@ -212,21 +227,17 @@
      *  Constructor.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
     public function MobileItemRenderer()
     {
         super();
-        addHandlers();
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Variables
-    //
-    //--------------------------------------------------------------------------
+
+        itemRendererInteractionStateDetector = new ItemRendererInteractionStateDetector(this);
+        itemRendererInteractionStateDetector.addEventListener(Event.CHANGE, itemRendererInteractionStateDetector_changeHandler);
+    }

     //--------------------------------------------------------------------------
     //
@@ -236,9 +247,9 @@

     /**
      *  @private
-     *  Flag that is set when the mouse is hovered over the item renderer.
-     */
-    private var hovered:Boolean = false;
+     *  Helper class to help determine when we are in the hovered or down states
+     */
+    private var itemRendererInteractionStateDetector:ItemRendererInteractionStateDetector;

     //--------------------------------------------------------------------------
     //
@@ -303,7 +314,7 @@
      *  @see mx.core.IDataRenderer
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -324,6 +335,74 @@
     }

     //----------------------------------
+    //  down
+    //----------------------------------
+    /**
+     *  @private
+     *  storage for the down property
+     */
+    private var _down:Boolean = false;
+
+    /**
+     *  Set to true when the user is pressing down on an item renderer.
+     *
+     *
This property is only applicable when interactionMode
+     *  is set to "touch".

+     *
+     *  @default false
+     */
+    protected function get down():Boolean
+    {
+        return _down;
+    }
+
+    /**
+     *  @private
+     */
+    protected function set down(value:Boolean):void
+    {
+        if (value == _down)
+            return;
+
+        _down = value;
+        invalidateDisplayList();
+    }
+
+    //----------------------------------
+    //  hovered
+    //----------------------------------
+    /**
+     *  @private
+     *  storage for the hovered property
+     */
+    private var _hovered:Boolean = false;
+
+    /**
+     *  Set to true when the mouse is hovered over the item renderer.
+     *
+     *
This property is only applicable when interactionMode
+     *  is set to "mouse".

+     *
+     *  @default false
+     */
+    protected function get hovered():Boolean
+    {
+        return _hovered;
+    }
+
+    /**
+     *  @private
+     */
+    protected function set hovered(value:Boolean):void
+    {
+        if (value == _hovered)
+            return;
+
+        _hovered = value;
+        invalidateDisplayList();
+    }
+
+    //----------------------------------
     //  itemIndex
     //----------------------------------

@@ -339,7 +418,7 @@
      *  @default 0
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -375,7 +454,7 @@
      *  display the label data of the item renderer.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -387,7 +466,7 @@
      *  @default ""
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -431,7 +510,7 @@
      *  @default false
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -468,7 +547,7 @@
      *  @default false
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -503,7 +582,7 @@
      *  @inheritDoc
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -603,11 +682,6 @@

         super.styleChanged(styleName);

-        if (allStyles || styleName == "interactionMode")
-        {
-            addHandlers();
-        }
-
         // pass all style changes to labelTextField.  It will deal with them
         // appropriatley and in a performant manner
         if (labelDisplay)
@@ -628,7 +702,7 @@
      *
      *
This method draws the background, the outline,
      *  and the separators for this item renderer.
-     *  When not selected or hovered, the background is transparent.
+     *  When not selected, hovered, or down, the background is transparent.
      *  However, when alternatingItemColors is set to true,
      *  the background is drawn by this method.
      *  Override this method to change the appearance of the background of
@@ -643,7 +717,7 @@
      *  scaleY property of the component.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -653,7 +727,12 @@
         // figure out backgroundColor
         var backgroundColor:uint;
         var drawBackground:Boolean = true;
-        if (selected)
+
+        if (down)
+        {
+            backgroundColor = getStyle("downColor");
+        }
+        else if (selected)
         {
             backgroundColor = getStyle("selectionColor");
         }
@@ -733,7 +812,7 @@
      *  scaleY property of the component.
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -768,7 +847,7 @@
         if (label != "")
         {
             labelDisplay.commitStyles();
-
+
             // reset text if it was truncated before.
             if (labelDisplay.isTruncated)
                 labelDisplay.text = label;
@@ -794,74 +873,7 @@
     //
     //--------------------------------------------------------------------------

-    /**
-     *  @private
-     *  Keeps track of whether rollover/rollout events were added
-     *
-     *  We need to be careful about calling add/remove event listener because
-     *  of the reference counting going on in
-     *  super.addEventListener/removeEventListener.
-     */
-    private var rolloverEventsAdded:Boolean = false;
-
-    /**
-     *  @private
-     *  Attach the mouse events.
-     */
-    private function addHandlers():void
-    {
-        if (getStyle("interactionMode") == InteractionMode.MOUSE)
-        {
-            if (!rolloverEventsAdded)
-            {
-                rolloverEventsAdded = true;
-                addEventListener(MouseEvent.ROLL_OVER, itemRenderer_rollOverHandler);
-                addEventListener(MouseEvent.ROLL_OUT, itemRenderer_rollOutHandler);
-            }
-        }
-        else
-        {
-            if (rolloverEventsAdded)
-            {
-                rolloverEventsAdded = false;
-                removeEventListener(MouseEvent.ROLL_OVER, itemRenderer_rollOverHandler);
-                removeEventListener(MouseEvent.ROLL_OUT, itemRenderer_rollOutHandler);
-            }
-        }
-    }
-
-    /**
-     *  @private
-     */
-    private function anyButtonDown(event:MouseEvent):Boolean
-    {
-        var type:String = event.type;
-        // TODO (rfrishbe): we should not code to literals here (and other places where this code is used)
-        return event.buttonDown || (type == "middleMouseDown") || (type == "rightMouseDown");
-    }
-
-    /**
-     *  @private
-     *  Mouse rollOver event handler.
-     */
-    protected function itemRenderer_rollOverHandler(event:MouseEvent):void
-    {
-        if (!anyButtonDown(event))
-        {
-            hovered = true;
-            invalidateDisplayList();
-        }
-    }
-
-    /**
-     *  @private
-     *  Mouse rollOut event handler.
-     */
-    protected function itemRenderer_rollOutHandler(event:MouseEvent):void
-    {
-        hovered = false;
-        invalidateDisplayList();
-    }
+

     /**
      *  A helper method to position the children of this item renderer.
@@ -878,7 +890,7 @@
      *  @see #resizeElement
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -914,7 +926,7 @@
      *  @see #positionElement
      *
      *  @langversion 3.0
-     *  @playerversion Flash 10
+     *  @playerversion Flash 10.1
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
@@ -934,5 +946,20 @@
             part.height = height;
         }
     }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Event Handlers
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    private function itemRendererInteractionStateDetector_changeHandler(event:Event):void
+    {
+        hovered = itemRendererInteractionStateDetector.hovered;
+        down = itemRendererInteractionStateDetector.down;
+    }
 }
 }


Fix FLEX-34107  IconItemRenderer separators disappear when using a large font. changed usedOpaqueBackground to CSS

--- frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
@@ -170,6 +170,18 @@
  */
 [Style(name="verticalAlign", type="String", enumeration="bottom,middle,top", inherit="no")]

+/**
+ * Option to use an opaqueBackground property for this renderer. This can improve scrolling speed.
+ * Since opaqueBackground adds  space around the text proportional to the font's size,
+ * you might need to turn it off when using large fonts to avoid background overflow.
+ * @default  true
+ *
+ *   @langversion 3.0
+ *  @playerversion AIR 3.0
+ *  @productversion Flex 4.12
+ */
+
+[Style(name="useOpaqueBackground", type="Boolean",  inherit="yes")]

 //--------------------------------------
 //  Excluded APIs
@@ -329,23 +341,6 @@
      *  Whether or not we're the last element in the list
      */
     mx_internal var isLastItem:Boolean = false;
-
-    private var _useOpaqueBackground: Boolean = true;
-
-    /**
-     * Option to use an opaqueBackground property for this renderer. This can improve scrolling speed.
-     * Since opaqueBackground adds  space around the text proportional to the font's size,
-     * you might need to turn it off when using large fonts to avoid background overflow.
-     * @default  true
-     */
-    public function get useOpaqueBackground(): Boolean {
-        return _useOpaqueBackground;
-    }
-
-    public function set useOpaqueBackground(value: Boolean): void {
-        _useOpaqueBackground = value;
-        invalidateDisplayList();
-    }

     //--------------------------------------------------------------------------
     //
@@ -909,7 +904,8 @@
 		{
 			// If our background is a solid color, use it as the opaqueBackground property
 			// for this renderer. This makes scrolling considerably faster.
-            if (_useOpaqueBackground)
+            var useOpaqueBackground: * = getStyle("useOpaqueBackground") ;        // if not defined, then true
+            if (useOpaqueBackground == undefined || useOpaqueBackground == true )
 			     opaqueBackgroundColor = backgroundColor;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 18544
Author:   rfrishbe@adobe.com
Date:     2010-11-11T21:48:17.001134Z

Log Message:
-----------
Making StyleableTextField changes.  StyleableTextField now implements ISimpleStyleClient.  styleProvider has been renamed to styleName.  Also, there's no need to call styleChanged() on StyleableTextField anymore since it implements ISimpleStyleClient and can be done automatically.

Also, fixing an issue in MobileIconItemRenderer where icons were refreshing if they were embedded.  We now handle embedded assets better in the icon setter because we set them immiedately, rather than wait for a 500ms delay.

QE notes:
Doc notes:
Bugs:
Reviewer: Eric Day, Glenn
Tests run: checkintests, mustella DataGroup, List, ListDND
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
+++ frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as
@@ -615,7 +615,7 @@
         if (!labelDisplay)
         {
             labelDisplay = StyleableTextField(createInFontContext(StyleableTextField));
-            labelDisplay.styleProvider = this;
+            labelDisplay.styleName = this;
             labelDisplay.editable = false;
             labelDisplay.selectable = false;
             labelDisplay.multiline = false;
@@ -671,21 +671,6 @@
         drawBackground(unscaledWidth, unscaledHeight);

         layoutContents(unscaledWidth, unscaledHeight);
-    }
-
-    /**
-     *  @private
-     */
-    override public function styleChanged(styleName:String):void
-    {
-        var allStyles:Boolean = !styleName || styleName == "styleName";
-
-        super.styleChanged(styleName);
-
-        // pass all style changes to labelTextField.  It will deal with them
-        // appropriatley and in a performant manner
-        if (labelDisplay)
-            labelDisplay.styleChanged(styleName);
     }

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


[VectorEditor] fixed tiny bug for standalone edition with restriction enzymes loading

git-svn-id: adbdea8fc1759bd16b0eaf24a244a7e5f870a654@116 fe3f0490-d73e-11de-a956-c71e7d3a9d2f

--- VectorEditorStandalone/src/org/jbei/registry/control/RestrictionEnzymeGroupManager.as
+++ VectorEditorStandalone/src/org/jbei/registry/control/RestrictionEnzymeGroupManager.as
@@ -9,6 +9,9 @@
 	import org.jbei.registry.models.UserRestrictionEnzymeGroup;
 	import org.jbei.registry.models.UserRestrictionEnzymes;

+    /**
+     * @author Zinovii Dmytriv
+     */
 	public final class RestrictionEnzymeGroupManager
 	{
         private static var _instance:RestrictionEnzymeGroupManager = new RestrictionEnzymeGroupManager();
@@ -92,7 +95,7 @@
 			// load user groups
 			_userGroups.removeAll();

-			if(!userRestrictionEnzymes || (userRestrictionEnzymes && userRestrictionEnzymes.activeEnzymeNames == null && userRestrictionEnzymes.groups == null)) {
+			if(!userRestrictionEnzymes || (userRestrictionEnzymes && (userRestrictionEnzymes.activeEnzymeNames == null || userRestrictionEnzymes.groups == null))) {
 				return;
 			}

@@ -109,6 +112,10 @@
 				}
 			}

+            CONFIG::standalone {
+                return;
+            }
+
 			// load user active group
 			_activeGroup.removeAll();

@@ -181,7 +188,7 @@
         private function initializeDefaultActiveGroup():void
         {
 			for(var i:int = 0; i < (_systemGroups[0] as RestrictionEnzymeGroup).enzymes.length; i++) {
-				activeGroup.addItem((_systemGroups[0] as RestrictionEnzymeGroup).enzymes[i]);
+                _activeGroup.addItem((_systemGroups[0] as RestrictionEnzymeGroup).enzymes[i]);
 			}
         }


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

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


Update Alert.as

Update Alert.as

This typo causes an error when assigning a skinClass at runtime. This is my first time using git. Forgive me if I have done this incorrectly.

--- frameworks/projects/experimental/src/spark/components/Alert.as
+++ frameworks/projects/experimental/src/spark/components/Alert.as
@@ -640,7 +640,7 @@
         }

         override protected function partRemoved(partName:String, instance:Object):void {
-            super.partAdded(partName, instance);
+            super.partRemoved(partName, instance);
             if (partName == "buttonGroup") {
                 destroyButtons(Group(instance));
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

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

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

 package mx.core
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

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

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

 package spark.components


Transferred from the Adobe Open Source Subversion Repository

Revision: 12934
Author:   rfrishbe@adobe.com
Date:     2009-12-15T01:54:22.402049Z

Log Message:
-----------
Cleaning up some FIXMEs in the code and fixing up some ASDocs.  Also fixing VSlider/HSlider dataTip positioning so that the thumb doesn't have to be in the same coordinate system as the Slider itself.

QE notes: -
Doc notes: -
Bugs: -
Reviewer: Kevin for part of it--otherwise just doc fixes
Tests run: checkintests, mustella Slider
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/VideoDisplay.as
+++ frameworks/projects/spark/src/spark/components/VideoDisplay.as
@@ -862,10 +862,19 @@
     [Bindable("sourceChanged")]

     /**
-     *  For progressive download, the source is just a path or URL pointing
-     *  to the video file to play.  For streaming (streaming, live streaming,
+     *  The video source.
+     *
+     *
For progressive download, the source is just a path or URL pointing
+     *  to the video file to play.

+     *
+     *
For streaming (recorded streaming, live streaming,
      *  or multi-bitrate streaming), the source property is a
-     *  DynamicStreamingVideoSource object.
+     *  DynamicStreamingVideoSource object.  If you just want to play
+     *  a recorded or live streaming video with no multi-bitrate support,
+     *  you can just pass in a String URL pointing to the video
+     *  stream.  However, if you do this, the streamType is assumed to be "any,"
+     *  and you don't have as much control over the streaming as you would if
+     *  you used the DynamicStreamingVideoSource object.

      *
      *  @see spark.components.mediaClasses.DynamicStreamingVideoSource
      *


Bugfix: don't autorewind if someone seeks to the end while paused.

Feature: if there is no metadata telling us the duration, well then
we're up the old poo river. But what we can do is whip out our
trusty paddle and continually call the highest position we've seen
the duration. It makes playback a little weird, but allows seeking
and so is a step in the right direction.

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

--- src/as/com/threerings/flash/media/FlvVideoPlayer.as
+++ src/as/com/threerings/flash/media/FlvVideoPlayer.as
@@ -161,6 +161,8 @@
     public function unload () :void
     {
         _metadata = null;
+        _duration = NaN;
+        _gotDurationFromMetadata = false;
         _sizeChecker.reset();
         _positionChecker.reset();
         _vid.attachNetStream(null);
@@ -200,9 +202,14 @@
         dispatchEvent(new ValueEvent(MediaPlayerCodes.SIZE, _size.clone()));
     }

-    protected function handlePositionCheck (event :TimerEvent) :void
-    {
-        dispatchEvent(new ValueEvent(MediaPlayerCodes.POSITION, getPosition()));
+    protected function handlePositionCheck (event :TimerEvent = null) :void
+    {
+        const pos :Number = getPosition();
+        if (!_gotDurationFromMetadata && (isNaN(_duration) || (pos > _duration))) {
+            _duration = pos;
+            dispatchEvent(new ValueEvent(MediaPlayerCodes.DURATION, _duration));
+        }
+        dispatchEvent(new ValueEvent(MediaPlayerCodes.POSITION, pos));
     }

     protected function handleNetStatus (event :NetStatusEvent) :void
@@ -232,14 +239,17 @@

         switch (event.info.code) {
         case "NetStream.Play.Stop":
-            // rewind to the beginning
-            _netStream.seek(0);
-            _netStream.pause();
-            updateState(MediaPlayerCodes.STATE_PAUSED);
+            if (_state == MediaPlayerCodes.STATE_PLAYING) {
+                handlePositionCheck(); // if we never got metadata, retrieve final position as dur
+                // rewind to the beginning
+                _netStream.seek(0);
+                _netStream.pause();
+                updateState(MediaPlayerCodes.STATE_PAUSED);
+            }
             break;

         case "NetStream.Seek.Notify":
-            MethodQueue.callLater(handlePositionCheck, [ null ]);
+            MethodQueue.callLater(handlePositionCheck);
             break;
         }
     }
@@ -275,6 +285,7 @@
     {
         if ("duration" in info) {
             _duration = Number(info.duration);
+            _gotDurationFromMetadata = true;
             if (!isNaN(_duration)) {
                 dispatchEvent(new ValueEvent(MediaPlayerCodes.DURATION, _duration));
             }
@@ -295,7 +306,7 @@
         } else {
             _positionChecker.reset();
             if (oldState == MediaPlayerCodes.STATE_PLAYING) {
-                handlePositionCheck(null);
+                handlePositionCheck();
             }
         }

@@ -318,6 +329,8 @@
     protected var _size :Point;

     protected var _duration :Number = NaN;
+
+    protected var _gotDurationFromMetadata :Boolean;

     protected var _volume :Number = 1;


Fix potential stackoverflow.
Refreshing the scene can otherwise cascade back through loaded back through itself.  Instead, wait til all the ones on our current frame are done and then refresh.

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

--- src/as/com/threerings/miso/client/MisoScenePanel.as
+++ src/as/com/threerings/miso/client/MisoScenePanel.as
@@ -287,10 +287,12 @@
     {
         _model = model;
         _ctx.getTileManager().ensureLoaded(_model.getAllTilesets(), function() :void {
-                refreshScene();
                 DelayUtil.delayFrame(function() :void {
-                    removeChild(_loading);
-                    addChild(_isoView);
+                    refreshScene();
+                    DelayUtil.delayFrame(function() :void {
+                        removeChild(_loading);
+                        addChild(_isoView);
+                    });
                 });
             }, loadingProgress);
     }


Speeling.

Speeling.

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

--- src/main/as/com/threerings/presents/dobj/DObject.as
+++ src/main/as/com/threerings/presents/dobj/DObject.as
@@ -137,7 +137,7 @@
     }

     /**
-     * Posts a message event on this distrubuted object.
+     * Posts a message event on this distributed object.
      */
     public function postMessage (name :String, args :Array) :void
     {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/advancedgrids/src/mx/skins/halo/AdvancedDataGridHeaderHorizontalSeparator.as
+++ frameworks/projects/advancedgrids/src/mx/skins/halo/AdvancedDataGridHeaderHorizontalSeparator.as
@@ -0,0 +1,105 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.skins.halo
+{
+
+import flash.display.Graphics;
+import mx.skins.ProgrammaticSkin;
+
+/**
+ *  The skin for the separator between column headers in an AdvancedDataGrid control.
+ *
+ *  @see mx.controls.AdvancedDataGrid
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class AdvancedDataGridHeaderHorizontalSeparator extends ProgrammaticSkin
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function AdvancedDataGridHeaderHorizontalSeparator()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  measuredWidth
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get measuredWidth():Number
+    {
+        return 10;
+    }
+
+    //----------------------------------
+    //  measuredHeight
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    override public function get measuredHeight():Number
+    {
+        return 2;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(w:Number, h:Number):void
+    {
+        super.updateDisplayList(w, h);
+        var g:Graphics = graphics;
+
+        g.clear();
+
+        g.moveTo(0, 0);
+        g.lineTo(w, 0);
+        g.lineStyle(1, getStyle("borderColor"));
+        g.moveTo(0, 1);
+        g.lineTo(w, 1);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8723
Author:   chaase@adobe.com
Date:     2009-07-21T23:19:39.441122Z

Log Message:
-----------
Fixed 2 areas of effects bugs (playheadTime and transform effects shared instances). Also fixed bug in GraphicElement.localToGlobal(). Fixes remaining transform effects bugs prior to feature signoff.

QE Notes: None
Doc Notes: None
Bugs: SDK-22315, sdk-22304, sdk-22302, sdk-21931, sdk-21068, sdk-20179, sdk-21069
Reviewer: Hans, Jason (GraphicElement), Glenn (SharedObjectDepot)
API Change: None
Is noteworthy for integration: No
tests: checkintests mustella spark/effects,mx/effects (run locally and in cyclone by Matt)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/CompositeEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/interpolation/RGBInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/interpolation/HSBInterpolator.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SharedObjectDepot.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as
@@ -310,35 +310,37 @@
      */
     public function addMotionPath(newMotionPath:MotionPath, newEffectStartTime:Number = 0):void
     {
+        var added:Boolean = false;
         if (motionPaths)
         {
             var i:int;
             var j:int;
-            var prop:MotionPath;
+            var mp:MotionPath;
             var n:int = motionPaths.length;
             if (newEffectStartTime < instanceStartTime)
             {
                 var deltaStartTime:Number = instanceStartTime - newEffectStartTime;
                 for (i = 0; i < n; i++)
                 {
-                    prop = MotionPath(motionPaths[i]);
-                    for (j = 0; j < prop.keyframes.length; j++)
-                        prop.keyframes[j].time += deltaStartTime;
+                    mp = MotionPath(motionPaths[i]);
+                    for (j = 0; j < mp.keyframes.length; j++)
+                        mp.keyframes[j].time += deltaStartTime;
                 }
                 instanceStartTime = newEffectStartTime;
             }
             for (i = 0; i < n; i++)
             {
-                prop = MotionPath(motionPaths[i]);
-                if (prop.property == newMotionPath.property)
+                mp = MotionPath(motionPaths[i]);
+                if (mp.property == newMotionPath.property)
                 {
                     // add mp's keyframes here
                     for (j = 0; j < newMotionPath.keyframes.length; j++)
                     {
-                        insertKeyframe(prop.keyframes, newMotionPath.keyframes[j],
+                        insertKeyframe(mp.keyframes, newMotionPath.keyframes[j],
                             (newEffectStartTime - instanceStartTime));
                     }
-                    return;
+                    added = true;
+                    break;
                 }
             }
         }
@@ -349,14 +351,27 @@
             // it below
             instanceStartTime = newEffectStartTime;
         }
-        // MotionPath on mp.property does not exist yet; add it
-        if (newEffectStartTime > instanceStartTime)
-        {
-            for (j = 0; j < newMotionPath.keyframes.length; j++)
-                newMotionPath.keyframes[j].time +=
-                    (newEffectStartTime - instanceStartTime);
-        }
-        motionPaths.push(newMotionPath);
+        if (!added)
+        {
+            // MotionPath on mp.property does not exist yet; add it
+            if (newEffectStartTime > instanceStartTime)
+            {
+                for (j = 0; j < newMotionPath.keyframes.length; j++)
+                    newMotionPath.keyframes[j].time +=
+                        (newEffectStartTime - instanceStartTime);
+            }
+            motionPaths.push(newMotionPath);
+        }
+        // Now adjust the duration if new final time of any keyframe sequence
+        // is greater than our current duration
+        n = motionPaths.length;
+        for (i = 0; i < n; i++)
+        {
+            mp = MotionPath(motionPaths[i]);
+            var kf:Keyframe = mp.keyframes[mp.keyframes.length-1];
+            if (!isNaN(kf.time))
+                duration = Math.max(duration, kf.time);
+        }
     }

    /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 7163
Author:   aharui@adobe.com
Date:     2009-05-21T02:19:55.813792Z

Log Message:
-----------
Initial checkin of frame 1 cleanup.  In an RSL linkage, more classes will now come from the RSL because they are no longer needed in frame 1, and the size of the application SWF will be smaller.

QE Notes: None
Doc Notes: Maybe.  All new classes should be undocumented, but it might be worth checking that and any changes to interfaces
Bugs:
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFont.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ResourceModuleRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>
<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/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IMarshalSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/MustellaResultsParser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/DragManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/PopUpManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManagerChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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

--- frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
+++ frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as
@@ -0,0 +1,359 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.managers.systemClasses
+{
+
+import flash.display.DisplayObject;
+import flash.display.DisplayObjectContainer;
+import flash.display.InteractiveObject;
+import flash.events.Event;
+import flash.events.IEventDispatcher;
+
+import mx.core.IFlexDisplayObject;
+import mx.core.IFlexModuleFactory;
+import mx.core.IInvalidating;
+import mx.core.IUIComponent;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+import mx.events.FlexEvent;
+import mx.managers.ILayoutManagerClient;
+import mx.managers.ISystemManager;
+import mx.managers.ISystemManagerChildManager;
+import mx.managers.SystemManager;
+import mx.messaging.config.LoaderConfig;
+import mx.styles.ISimpleStyleClient;
+import mx.styles.IStyleClient;
+
+use namespace mx_internal;
+
+[ExcludeClass]
+
+public class ChildManager implements ISystemManagerChildManager
+{
+    include "../../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *
This is the starting point for all Flex applications.
+	 *  This class is set to be the root class of a Flex SWF file.
+         *  Flash Player instantiates an instance of this class,
+	 *  causing this constructor to be called.

+	 */
+	public function ChildManager(systemManager:IFlexModuleFactory)
+	{
+		super();
+
+		if (systemManager is SystemManager)
+		{
+			SystemManager(systemManager).childManager = this;
+			this.systemManager = SystemManager(systemManager);
+			this.systemManager.registerImplementation("mx.managers.ISystemManagerChildManager", this);
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private var systemManager:SystemManager;
+
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods: Child management
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+     *  @private
+     */
+	public function addingChild(child:DisplayObject):void
+	{
+		var newNestLevel:int = 1;
+
+		// non-top level system managers may not be able to reference their parent if
+		// they are a proxy for popups.
+		if (!systemManager.topLevel && systemManager.parent)
+		{
+			// non-topLevel SystemManagers are buried by Flash.display.Loader and
+			// other non-framework layers so we have to figure out the nestlevel
+			// by searching up the parent chain.
+			var obj:DisplayObjectContainer = systemManager.parent.parent;
+			while (obj)
+			{
+				if (obj is ILayoutManagerClient)
+				{
+					newNestLevel = ILayoutManagerClient(obj).nestLevel + 1;
+					break;
+				}
+				obj = obj.parent;
+			}
+		}
+		systemManager.nestLevel = newNestLevel;
+
+		if (child is IUIComponent)
+			IUIComponent(child).systemManager = systemManager;
+
+		// If the document property isn't already set on the child,
+		// set it to be the same as this component's document.
+		// The document setter will recursively set it on any
+		// descendants of the child that exist.
+		if (child is IUIComponent &&
+			!IUIComponent(child).document)
+		{
+			IUIComponent(child).document = systemManager.document;
+		}
+
+		// Set the nestLevel of the child to be one greater
+		// than the nestLevel of this component.
+		// The nestLevel setter will recursively set it on any
+		// descendants of the child that exist.
+		if (child is ILayoutManagerClient)
+        	ILayoutManagerClient(child).nestLevel = systemManager.nestLevel + 1;
+
+		if (child is InteractiveObject)
+			if (systemManager.doubleClickEnabled)
+				InteractiveObject(child).doubleClickEnabled = true;
+
+		if (child is IUIComponent)
+			IUIComponent(child).parentChanged(systemManager);
+
+		// Sets up the inheritingStyles and nonInheritingStyles objects
+		// and their proto chains so that getStyle() works.
+		// If this object already has some children,
+		// then reinitialize the children's proto chains.
+        if (child is IStyleClient)
+			IStyleClient(child).regenerateStyleCache(true);
+
+		if (child is ISimpleStyleClient)
+			ISimpleStyleClient(child).styleChanged(null);
+
+        if (child is IStyleClient)
+			IStyleClient(child).notifyStyleChangeInChildren(null, true);
+
+		// Need to check to see if the child is an UIComponent
+		// without actually linking in the UIComponent class.
+		if (child is UIComponent)
+			UIComponent(child).initThemeColor();
+
+		// Inform the component that it's style properties
+		// have been fully initialized. Most components won't care,
+		// but some need to react to even this early change.
+		if (child is UIComponent)
+			UIComponent(child).stylesInitialized();
+	}
+
+	/**
+	 *  @private
+	 */
+	public function childAdded(child:DisplayObject):void
+	{
+		child.dispatchEvent(new FlexEvent(FlexEvent.ADD));
+
+		if (child is IUIComponent)
+			IUIComponent(child).initialize(); // calls child.createChildren()
+	}
+
+	/**
+     *  @private
+     */
+	public function removingChild(child:DisplayObject):void
+	{
+		child.dispatchEvent(new FlexEvent(FlexEvent.REMOVE));
+	}
+
+	/**
+     *  @private
+     */
+	public function childRemoved(child:DisplayObject):void
+	{
+		if (child is IUIComponent)
+			IUIComponent(child).parentChanged(null);
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods: Styles
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Call regenerateStyleCache() on all children of this SystemManager.
+	 *  If the recursive parameter is true, continue doing this
+	 *  for all descendants of these children.
+	 */
+	public function regenerateStyleCache(recursive:Boolean):void
+	{
+		var foundTopLevelWindow:Boolean = false;
+
+		var n:int = systemManager.rawChildren.numChildren;
+		for (var i:int = 0; i < n; i++)
+		{
+			var child:IStyleClient =
+				systemManager.rawChildren.getChildAt(i) as IStyleClient;
+
+			if (child)
+				child.regenerateStyleCache(recursive);
+
+			if (systemManager.isTopLevelWindow(DisplayObject(child)))
+				foundTopLevelWindow = true;
+
+			// Refetch numChildren because notifyStyleChangedInChildren()
+			// can add/delete a child and therefore change numChildren.
+			n = systemManager.rawChildren.numChildren;
+		}
+
+		// During startup the top level window isn't added
+		// to the child list until late into the startup sequence.
+		// Make sure we call regenerateStyleCache()
+		// on the top level window even if it isn't a child yet.
+		if (!foundTopLevelWindow && systemManager.topLevelWindow is IStyleClient)
+			IStyleClient(systemManager.topLevelWindow).regenerateStyleCache(recursive);
+	}
+
+	/**
+	 *  @private
+	 *  Call styleChanged() and notifyStyleChangeInChildren()
+	 *  on all children of this SystemManager.
+	 *  If the recursive parameter is true, continue doing this
+	 *  for all descendants of these children.
+	 */
+	public function notifyStyleChangeInChildren(styleProp:String,
+													 recursive:Boolean):void
+	{
+		var foundTopLevelWindow:Boolean = false;
+
+		var n:int = systemManager.rawChildren.numChildren;
+		for (var i:int = 0; i < n; i++)
+		{
+			var child:IStyleClient =
+				systemManager.rawChildren.getChildAt(i) as IStyleClient;
+
+			if (child)
+			{
+				child.styleChanged(styleProp);
+				child.notifyStyleChangeInChildren(styleProp, recursive);
+			}
+
+			if (systemManager.isTopLevelWindow(DisplayObject(child)))
+				foundTopLevelWindow = true;
+
+			// Refetch numChildren because notifyStyleChangedInChildren()
+			// can add/delete a child and therefore change numChildren.
+			n = systemManager.rawChildren.numChildren;
+		}
+
+		// During startup the top level window isn't added
+		// to the child list until late into the startup sequence.
+		// Make sure we call notifyStyleChangeInChildren()
+		// on the top level window even if it isn't a child yet.
+		if (!foundTopLevelWindow && systemManager.topLevelWindow is IStyleClient)
+		{
+			IStyleClient(systemManager.topLevelWindow).styleChanged(styleProp);
+			IStyleClient(systemManager.topLevelWindow).notifyStyleChangeInChildren(
+				styleProp, recursive);
+		}
+	}
+
+	/**
+	 *  @private
+	 *  Instantiates an instance of the top level window
+	 *  and adds it as a child of the SystemManager.
+	 */
+	public function initializeTopLevelWindow(width:Number, height:Number):void
+	{
+		var app:IUIComponent;
+		// Create a new instance of the toplevel class
+        systemManager.document = app = systemManager.topLevelWindow = IUIComponent(systemManager.create());
+
+		if (systemManager.document)
+		{
+			// Add listener for the creationComplete event
+			IEventDispatcher(app).addEventListener(FlexEvent.CREATION_COMPLETE,
+												   appCreationCompleteHandler);
+
+			// if somebody has set this in our applicationdomain hierarchy, don't overwrite it
+			if (!LoaderConfig._url)
+			{
+				LoaderConfig._url = systemManager.loaderInfo.url;
+				LoaderConfig._parameters = systemManager.loaderInfo.parameters;
+			}
+
+			IFlexDisplayObject(app).setActualSize(width, height);
+
+			// Wait for the app to finish its initialization sequence
+			// before doing an addChild().
+			// Otherwise, the measurement/layout code will cause the
+			// player to do a bunch of unnecessary screen repaints,
+			// which slows application startup time.
+
+			// Pass the application instance to the preloader.
+			// Note: preloader can be null when the user chooses
+			// Control > Play in the standalone player.
+			if (systemManager.preloader)
+				systemManager.preloader.registerApplication(app);
+
+			// The Application doesn't get added to the SystemManager in the standard way.
+			// We want to recursively create the entire application subtree and process
+			// it with the LayoutManager before putting the Application on the display list.
+			// So here we what would normally happen inside an override of addChild().
+			// Leter, when we actually attach the Application instance,
+			// we call super.addChild(), which is the bare player method.
+			addingChild(DisplayObject(app));
+			childAdded(DisplayObject(app)); // calls app.createChildren()
+		}
+		else
+		{
+			systemManager.document = this;
+		}
+	}
+
+ 	/**
+	 *  Override this function if you want to perform any logic
+	 *  when the application has finished initializing itself.
+	 */
+	private function appCreationCompleteHandler(event:FlexEvent):void
+	{
+		if (!systemManager.topLevel && systemManager.parent)
+		{
+			var obj:DisplayObjectContainer = systemManager.parent.parent;
+			while (obj)
+			{
+				if (obj is IInvalidating)
+				{
+					IInvalidating(obj).invalidateSize();
+					IInvalidating(obj).invalidateDisplayList();
+					return;
+				}
+				obj = obj.parent;
+			}
+		}
+ 	}
+
+}
+
+}
+
+


foxed typo ( excuteServiceCall => executeServiceCall )

--- src_rpc/org/puremvc/as3/multicore/utilities/fabrication/patterns/proxy/FabricationRemoteProxy.as
+++ src_rpc/org/puremvc/as3/multicore/utilities/fabrication/patterns/proxy/FabricationRemoteProxy.as
@@ -44,7 +44,7 @@
          * @param faultHandler fault handler [ optional ]. If not provided defaultFaultHandler
          * will be used ( if defined )
          */
-        public function excuteServiceCall(call:AsyncToken, resultHandler:Function, faultHandler:Function = null):void
+        public function executeServiceCall(call:AsyncToken, resultHandler:Function, faultHandler:Function = null):void
         {
             call.addResponder(new CallResponder( resultHandler, faultHandler || defaultFaultHandler ));
         }


ListView needs to be IScrollingLayoutParent

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ListView.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/ListView.as
@@ -25,7 +25,7 @@
 	import org.apache.flex.core.IBeadView;
 	import org.apache.flex.core.ISelectableItemRenderer;
 	import org.apache.flex.core.IItemRendererParent;
-	import org.apache.flex.core.ILayoutParent;
+	import org.apache.flex.core.IScrollingLayoutParent;
 	import org.apache.flex.core.IParent;
     import org.apache.flex.core.IParentIUIBase;
 	import org.apache.flex.core.IRollOverModel;
@@ -54,7 +54,7 @@
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public class ListView extends Strand implements IBeadView, IStrand, IListView, ILayoutParent
+	public class ListView extends Strand implements IBeadView, IStrand, IListView, IScrollingLayoutParent
 	{
 		public function ListView()
 		{
@@ -190,7 +190,7 @@
             if (_strand.getBeadByType(IBeadLayout) == null)
             {
                 var mapper:IBeadLayout = new (ValuesManager.valuesImpl.getValue(_strand, "iBeadLayout")) as IBeadLayout;
-				strand.addBead(mapper);
+				_strand.addBead(mapper);
             }

 			handleSizeChange(null);


Transferred from the Adobe Open Source Subversion Repository

Revision: 20259
Author:   chiedozi@adobe.com
Date:     2011-02-10T02:09:58.097846Z

Log Message:
-----------
Fixed an issue where doing a navigation operation during a view transition would corrupt ViewNavigator's navigation stack

QE notes:
Doc notes:
Bugs: SDK-29476
Reviewer: Ryan
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -346,18 +346,6 @@

     /**
      *  @private
-     *  This flag is set to true if a navigation operation, e.g., pushView()
-     *  is called during a transition.  If so, another validation pass is
-     *  run after the transition is complete.
-     *
-     *  @langversion 3.0
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    private var revalidateWhenComplete:Boolean = false;
-
-    /**
-     *  @private
      */
     private var showingActionBar:Boolean;

@@ -1307,9 +1295,18 @@
                 return;
         }

-        // If the action queue doesn't exist, create it
+        // Navigation operations are not committed immediately to allow the UI
+        // to update before beginning the creation process.  When an action is
+        // queued for the first time, we add an enter frame listener.
         if (delayedNavigationActions.length == 0)
-            addEventListener(Event.ENTER_FRAME, executeDelayedActions);
+        {
+            // If the navigator is currently in the process of switching views,
+            // the queued actions will automatically be run later in
+            // navigatorActionCommitted() when the transition is complete.
+            // So there is no need to add the ENTER_FRAME listener.
+            if (!viewChanging)
+                addEventListener(Event.ENTER_FRAME, executeDelayedActions);
+        }

         delayedNavigationActions.push({action:action, viewClass:viewClass,
             data:data, transition:transition, context:context});
@@ -1321,17 +1318,16 @@
     /**
      *  @private
      *  Executes all the navigation operations that have been queued
-     *  by the navigation methods (e.g., popView, pushView).
-
-     *  @param transition The view transition to play
+     *  by the navigation methods (e.g., popView, pushView).
      *
      *  @langversion 3.0
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    private function executeDelayedActions(event:Event):void
-    {
-        removeEventListener(Event.ENTER_FRAME, executeDelayedActions);
+    private function executeDelayedActions(event:Event = null):void
+    {
+        if (event)
+            removeEventListener(Event.ENTER_FRAME, executeDelayedActions);

         if (delayedNavigationActions.length == 0)
             return;
@@ -1346,6 +1342,9 @@
         }

         delayedNavigationActions.length = 0;
+
+        viewChangeRequested = true;
+        invalidateProperties();
     }

     /**
@@ -1403,42 +1402,11 @@
             {
                 navigationStack.clear();
             }
-
-            // If the currentView navigation data object is the same as the
-            // new one, the activeView doesn't need to be changed.  This can
-            // happen if a pushView() is followed immediately by a popView().
-            if (navigationStack.topView == currentViewDescriptor)
-            {
-                if (viewChanging)
-                {
-                    revalidateWhenComplete = false;
-                }
-                else
-                {
-                    viewChangeRequested = false;
-                }
-
-                lastAction = ViewNavigatorAction.NONE;
-                return;
-            }
         }

         pendingViewTransition = transition;
         if (pendingViewTransition == null)
             pendingViewTransition = defaultTransition;
-
-        // If a new view is in the process of being activated, we set the
-        // revalidateWhenComplete flag to true so that the navigator knows
-        // to apply this action after the previous one completes.
-        if (viewChanging)
-        {
-            revalidateWhenComplete = true;
-        }
-        else
-        {
-            viewChangeRequested = true;
-            invalidateProperties();
-        }
     }

     /**
@@ -1774,10 +1742,9 @@
         // The revalidateWhenComplete flag will be true in this case and will
         // force another validation to commit that change.  If the flag is
         // false, we can end the validation process.
-        if (revalidateWhenComplete)
-        {
-            revalidateWhenComplete = false;
-            viewChangeRequested = true;
+        if (delayedNavigationActions.length > 0)
+        {
+            executeDelayedActions();
             commitNavigatorAction();
         }
         else
@@ -1838,12 +1805,15 @@
      */
     protected function commitNavigatorAction():void
     {
+        if (!isActive)
+        {
+            viewChangeRequested = false;
+            return;
+        }
+
         // Private event
         if (hasEventListener("viewChangeStart"))
             dispatchEvent(new Event("viewChangeStart"));
-
-        if (!isActive)
-            return;

         // If a ui control is animating, force it to end
         if (actionBarVisibilityEffect)


Transferred from the Adobe Open Source Subversion Repository

Revision: 19918
Author:   chiedozi@adobe.com
Date:     2011-01-24T22:01:49.187902Z

Log Message:
-----------
Fixed an issue where tabBar and actionBar hide and show animations weren't played after orientation changes.
Fixed an issue where the explicitWidth and explicitHeight properties of a navigator's contentGroup weren't properly restored after the tabBar or actionBar was hidden or shown.

QE notes:
Doc notes:
Bugs: SDK-29217
Reviewer: Ryan
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -1248,6 +1248,13 @@

         if (actionBarVisibilityInvalidated)
             commitVisibilityChanges();
+
+        // When true, this flag prevents action bar animations from running.  This flag
+        // is only set to  true if the application received an orientation event this
+        // frame (See ViewNavigatorBase).  The flag is reset at the end of commitProperties
+        // so that animations run again.
+        if (disableNextControlAnimation)
+            disableNextControlAnimation = false;
     }

     /**
@@ -1483,7 +1490,7 @@
                                             createActionBarHideEffect();

                 actionBarVisibilityEffect.addEventListener(EffectEvent.EFFECT_END,
-                                                           visibilityAnimation_completeHandler);
+                                                           visibilityAnimation_effectEndHandler);

                 actionBarVisibilityEffect.play();
             }
@@ -1493,10 +1500,6 @@

                 if (activeView)
                     activeView.setActionBarVisible(showingActionBar);
-
-                // When this flag is true, the animations should only be disabled for the
-                // current frame, so reset the flag so animations play on subsequent frames.
-                disableNextControlAnimation = false;
             }
         }

@@ -1640,33 +1643,6 @@

     /**
      *  @private
-     *  Captures the important animation values of component to use
-     *  when animating the actionBar's visiblity.
-     *
-     *  @param component The component to capture the values from
-     *
-     *  @return Returns an object that contains the properties
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    private function captureAnimationValues(component:UIComponent):Object
-    {
-        var values:Object = {   x:component.x,
-                                y:component.y,
-                                width:component.width,
-                                height:component.height,
-                                visible: component.visible,
-                                includeInLayout: component.includeInLayout,
-                                cacheAsBitmap: component.cacheAsBitmap };
-
-        return values;
-    }
-
-    /**
-     *  @private
      *  Creates the effect to play on the contentGroup when the navigator is
      *  generating an animation to play to hide or show the action bar.  This effect
      *  should only target the contentGroup as it will be played in parallel with
@@ -1701,9 +1677,9 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    private function visibilityAnimation_completeHandler(event:EffectEvent):void
-    {
-        event.target.removeEventListener(EffectEvent.EFFECT_END, visibilityAnimation_completeHandler);
+    private function visibilityAnimation_effectEndHandler(event:EffectEvent):void
+    {
+        event.target.removeEventListener(EffectEvent.EFFECT_END, visibilityAnimation_effectEndHandler);

         // Clear flags and temporary properties
         actionBarVisibilityEffect = null;
@@ -1726,6 +1702,18 @@
         if (contentGroupProps)
         {
             contentGroup.includeInLayout = contentGroupProps.start.includeInLayout;
+
+            // The default action bar hide and show animation will animate the width and height
+            // of the navigator's contentGroup.  If the explicitWidth or explicitHeight properties
+            // were NaN before the animation, they'll be set to real values by the animation.  As
+            // a result, it is necessary to restore them to NaN so that layout properly sizes these
+            // components.
+            if (isNaN(contentGroupProps.start.explicitHeight))
+                contentGroup.explicitHeight = NaN;
+
+            if (isNaN(contentGroupProps.start.explicitWidth))
+                contentGroup.explicitWidth = NaN;
+
             contentGroupProps = null;
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17366
Author:   rfrishbe@adobe.com
Date:     2010-08-18T20:55:44.548390Z

Log Message:
-----------
Adding touchDelay and minimumDownState styles to Button.

In addition, there are some other PARB changes (touchScroll is renamed to more generic gestureCapture).  This means TouchScrollEvent has been renamed to GestureCaptureEvent as well.

QE notes: None
Doc notes: None
Bugs: -
Reviewer: Chiedo
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchScrollEvent.as" copyfrom-rev="17335" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/MobileTextFieldTextStyles.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/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.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/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchScrollEvent.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
@@ -21,7 +21,7 @@
 import mx.events.FlexEvent;
 import mx.events.ResizeEvent;
 import mx.events.SandboxMouseEvent;
-import mx.events.TouchScrollEvent;
+import mx.events.GestureCaptureEvent;

 import spark.components.Button;
 import spark.events.TrackBaseEvent;
@@ -418,7 +418,7 @@
         if (instance == thumb)
         {
             thumb.addEventListener(MouseEvent.MOUSE_DOWN, thumb_mouseDownHandler);
-            thumb.addEventListener(TouchScrollEvent.TOUCH_SCROLL_STARTING, thumb_touchScrollDragStart);
+            thumb.addEventListener(GestureCaptureEvent.GESTURE_CAPTURE_STARTING, thumb_gestureCaptureStartingHandler);
             thumb.addEventListener(ResizeEvent.RESIZE, thumb_resizeHandler);
             thumb.addEventListener(FlexEvent.UPDATE_COMPLETE, thumb_updateCompleteHandler);
             thumb.stickyHighlighting = true;
@@ -443,7 +443,7 @@
         if (instance == thumb)
         {
             thumb.removeEventListener(MouseEvent.MOUSE_DOWN, thumb_mouseDownHandler);
-            thumb.removeEventListener(TouchScrollEvent.TOUCH_SCROLL_STARTING, thumb_touchScrollDragStart);
+            thumb.removeEventListener(GestureCaptureEvent.GESTURE_CAPTURE_STARTING, thumb_gestureCaptureStartingHandler);
             thumb.removeEventListener(ResizeEvent.RESIZE, thumb_resizeHandler);
             thumb.removeEventListener(FlexEvent.UPDATE_COMPLETE, thumb_updateCompleteHandler);
         }
@@ -618,7 +618,7 @@
     /**
      *  @private
      */
-    protected function thumb_touchScrollDragStart(event:TouchScrollEvent):void
+    protected function thumb_gestureCaptureStartingHandler(event:GestureCaptureEvent):void
     {
         // cancel this event b/c I want to control it
         event.preventDefault();


Transferred from the Adobe Open Source Subversion Repository

Revision: 10214
Author:   cframpto@adobe.com
Date:     2009-09-13T14:33:58.570082Z

Log Message:
-----------
This fixes the problem that if two text components share the same textFlow there is an infinite loop involving updateDisplayList -> damageHandler -> invalidateDisplaylist -> back to updateDisplayList.  The bug file was for TextArea which is RET but the same bug was in RichText as well.

This example with a renderer exposed it because the typicalItem that is composed to figure out sizes and the actual first item in the list share the same textFlow.  It actually has nothing to do with useVirtualDisplay other than it was sharing a textFlow.

It turns out that the TextFlowFactory dispatches damage events every time the textFlow is composed.  Unlike when the flowComposer is used, it always considers the flow damaged.  It was exacerbated by each of the two components having a damage handler for the same textFlow.

The solution is to use the textFlow generation number.  In the damageHandler if the generation is the last known generation number, assume no changes, and return immediately from the damage handler.

QE notes: There are 1 TextArea, 6 TextInput and 2 NumericStepper failuers, with or without my changes.  The common link seems to be DispatchKeyEvent.  Most were testing maxChar, displayAsPassword and restrict.  I tested these and they seem to be working correctly.

Doc notes:
Bugs: SDK-23002
Reviewer: Gordon
Tests run: checkintests, TextArea, TextInput and NumericStepper
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -234,18 +234,6 @@
     /**
      *  @private
      */
-    override public function setText(text:String):void
-    {
-        textDisplay.ignoreDamageEvent = true;
-
-        super.setText(text);
-
-        textDisplay.ignoreDamageEvent = false;
-    }
-
-    /**
-     *  @private
-     */
     override protected function createEditManager(
                         undoManager:flashx.undo.IUndoManager):IEditManager
     {