Transferred from the Adobe Open Source Subversion Repository

Revision: 5085
Author:   cframpto@adobe.com
Date:     2009-02-26T13:47:28.045444Z

Log Message:
-----------
Update selected radio button if it changed based on selection being set.  These couple of lines of code didn't get moved from the halo to gumbo version of the code.

QE Notes:
Doc Notes:
Bugs: SDK-19475
Reviewers: Pete

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxRadioButton.as

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

--- frameworks/projects/spark/src/spark/components/RadioButton.as
+++ frameworks/projects/spark/src/spark/components/RadioButton.as
@@ -536,6 +536,26 @@

     //--------------------------------------------------------------------------
     //
+    //  Overridden functions: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+        super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+        // If this button is in a rb group and it's selected, but it's not the
+        // current selection, deselect the old rb and select this rb.
+        if (_group && selected && _group.selection != this)
+            group.mx_internal::setSelection(this, false);
+    }
+
+    //--------------------------------------------------------------------------
+    //
     //  Overridden event handlers: UIComponent
     //
     //--------------------------------------------------------------------------


Transferred from the Adobe Open Source Subversion Repository

Revision: 11264
Author:   smgilson@adobe.com
Date:     2009-10-29T17:34:22.099841Z

Log Message:
-----------
ASDoc updates for TileList

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/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TitleWindowSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TitleWindowCloseButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/TitleWindowBoundsEvent.as</path>

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

--- frameworks/projects/spark/src/spark/components/TitleWindow.as
+++ frameworks/projects/spark/src/spark/components/TitleWindow.as
@@ -38,8 +38,6 @@
  *  Dispatched when the user selects the close button.
  *
  *  @eventType mx.events.CloseEvent.CLOSE
- *  @helpid 3985
- *  @tiptext close event
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -49,8 +47,8 @@
 [Event(name="close", type="mx.events.CloseEvent")]

 /**
- *  Dispatched when the user presses the moveArea and
- *  begins to drag the window.
+ *  Dispatched when the user presses and hold the mouse button
+ *  in the move area and begins to drag the window.
  *
  *  @eventType spark.events.TitleWindowBoundsEvent.WINDOW_MOVE_START
  *
@@ -62,7 +60,7 @@
 [Event(name="windowMoveStart", type="spark.events.TitleWindowBoundsEvent")]

 /**
- *  Dispatched when the user tries to drag the window.
+ *  Dispatched when the user drags the window.
  *
  *  @eventType spark.events.TitleWindowBoundsEvent.WINDOW_MOVING
  *
@@ -74,7 +72,7 @@
 [Event(name="windowMoving", type="spark.events.TitleWindowBoundsEvent")]

 /**
- *  Dispatched when the user moves the window successfully.
+ *  Dispatched after the user dragged the window successfully.
  *
  *  @eventType spark.events.TitleWindowBoundsEvent.WINDOW_MOVE
  *
@@ -86,7 +84,7 @@
 [Event(name="windowMove", type="spark.events.TitleWindowBoundsEvent")]

 /**
- *  Dispatched when the user releases the moveArea after
+ *  Dispatched when the user releases the mouse button after
  *  dragging.
  *
  *  @eventType spark.events.TitleWindowBoundsEvent.WINDOW_MOVE_END
@@ -103,8 +101,8 @@
 //--------------------------------------

 /**
- *  Inactive State which is used for a TitleWindow
- *  when it or all of its children are not in focus.
+ *  Inactive view state used for a TitleWindow
+ *  when it, or all of its children, are not in focus.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -114,7 +112,7 @@
 [SkinState("inactive")]

 /**
- *  Inactive State with control bar present.
+ *  Inactive view state with a control bar visible.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -126,9 +124,32 @@
 [IconFile("TitleWindow.png")]

 /**
- *  The TitleWindow Class extends Panel to include
- *  a close button and drag area. TitleWindow is
- *  designed as a floating or pop-up window.
+ *  The TitleWindow class extends Panel to include
+ *  a close button and move area.
+ *
+ *
The TitleWindow is designed as a pop-up window.
+ *  Do not create a TitleWindow in MXML as part of an application.
+ *  Instead, you typically create a custom MXML component based on
+ *  the TitleWindow class, and then use the
+ *  PopUpManager.createPopUp() method to pop up the component,
+ *  and the PopUpManager.removePopUp() method
+ *  to remove the component.

+ *
+ *
The TitleWindow container has the following default sizing characteristics:

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           Height is large enough to hold all of the children in the content area at the default or
+ *               explicit heights of the children, plus the title bar and border, plus any vertical gap between
+ *               the children, plus the top and bottom padding of the container.

+ *               Width is the larger of the default or explicit width of the widest child, plus the left and
+ *               right container borders padding, or the width of the title text.
+ *

+ *

  *
  *  @mxml
  *
@@ -149,8 +170,9 @@
  *  @includeExample examples/SimpleTitleWindowExample.mxml -noswf
  *  @includeExample examples/TitleWindowApp.mxml
  *
- *  @see Panel
+ *  @see spark.components.Panel
  *  @see spark.skins.spark.TitleWindowSkin
+ *  @see spark.skins.spark.TitleWindowCloseButtonSkin
  *  @see mx.managers.PopUpManager
  *
  *  @langversion 3.0
@@ -160,435 +182,451 @@
  */
 public class TitleWindow extends Panel
 {
-	include "../core/Version.as";
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @langversion 3.0
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
-	 */
+     */
     public function TitleWindow()
     {
         super();
     }
-
-	//--------------------------------------------------------------------------
-	//
-	//  Variables
-	//
-	//--------------------------------------------------------------------------
-
-	private var addedHandlers:Boolean = false;
-	private var active:Boolean = false;
-
-	/**
-	 *  @private
-	 *  Horizontal location where the user pressed the mouse button
-	 *  on the moveArea to start dragging, relative to the original
-	 *  horizontal location of the TitleWindow.
-	 */
-	private var offsetX:Number;
-
-	/**
-	 *  @private
-	 *  Vertical location where the user pressed the mouse button
-	 *  on the moveArea to start dragging, relative to the original
-	 *  vertical location of the TitleWindow.
-	 */
-	private var offsetY:Number;
-
-	/**
-	 *  @private
-	 *  The starting bounds of the TitleWindow before a user
-	 *  moves or resizes it.
-	 */
-	private var startBounds:Rectangle;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
-
-	//----------------------------------
-	//  closeButton
-	//----------------------------------
-
-	[SkinPart(required="false")]
-
-	/**
-	 *  The Button that when clicked dispatches a "close" event.
-	 *  Focus is disabled for this button.
-	 */
-	public var closeButton:Button;
-
-	//----------------------------------
-	//  moveArea
-	//----------------------------------
-
-	[SkinPart(required="false")]
-
-	/**
-	 *  The area where the user may click and drag to move the window.
-	 */
-	public var moveArea:InteractiveObject;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: UIComponent, SkinnableComponent
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	override public function parentChanged(p:DisplayObjectContainer):void
-	{
-		if (focusManager)
-		{
-			focusManager.removeEventListener(FlexEvent.FLEX_WINDOW_ACTIVATE,
-											 activateHandler);
-			focusManager.removeEventListener(FlexEvent.FLEX_WINDOW_DEACTIVATE,
-											 deactivateHandler);
-		}
-
-		super.parentChanged(p);
-
-		if (focusManager)
-		{
-			addActivateHandlers();
-		}
-		else
-		{
-			// if no focusmanager yet, add capture phase to detect when it
-			// gets added
-			if (systemManager)
-			{
-				systemManager.getSandboxRoot().addEventListener(
-					FlexEvent.ADD_FOCUS_MANAGER, addFocusManagerHandler, true, 0, true);
-			}
-			else
-			{
-				// no systemManager yet?  Check again when added to stage
-				addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
-			}
-		}
-	}
-
-	/**
-	 *  @private
-	 */
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    private var addedHandlers:Boolean = false;
+    private var active:Boolean = false;
+
+    /**
+     *  @private
+     *  Horizontal location where the user pressed the mouse button
+     *  on the moveArea to start dragging, relative to the original
+     *  horizontal location of the TitleWindow.
+     */
+    private var offsetX:Number;
+
+    /**
+     *  @private
+     *  Vertical location where the user pressed the mouse button
+     *  on the moveArea to start dragging, relative to the original
+     *  vertical location of the TitleWindow.
+     */
+    private var offsetY:Number;
+
+    /**
+     *  @private
+     *  The starting bounds of the TitleWindow before a user
+     *  moves or resizes it.
+     */
+    private var startBounds:Rectangle;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  closeButton
+    //----------------------------------
+
+    [SkinPart(required="false")]
+
+    /**
+     *  The skin part that defines the appearance of the
+     *  close icon (a small x in the upper-right corner of the TitleWindow title bar).
+     *  When clicked, the close icon dispatches a close event.
+     *
+     *
Flex does not close the window automatically.
+     *  To suport the close icon, you must create a handler for the close event
+     *  and close the TitleWindow from that event handler.

+     *
+     *
Focus is disabled for this skin part.

+     */
+    public var closeButton:Button;
+
+    //----------------------------------
+    //  moveArea
+    //----------------------------------
+
+    [SkinPart(required="false")]
+
+    /**
+     *  The area where the user must click and drag to move the window.
+     *  By default, the move area is the title bar of the TitleWindow container.
+     *
+     *
To drag the TitleWindow container, click and hold the mouse pointer in
+     *  the title bar area of the window, then move the mouse.
+     *  Create a custom skin class to change the move area.

+     */
+    public var moveArea:InteractiveObject;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent, SkinnableComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function parentChanged(p:DisplayObjectContainer):void
+    {
+        if (focusManager)
+        {
+            focusManager.removeEventListener(FlexEvent.FLEX_WINDOW_ACTIVATE,
+                                             activateHandler);
+            focusManager.removeEventListener(FlexEvent.FLEX_WINDOW_DEACTIVATE,
+                                             deactivateHandler);
+        }
+
+        super.parentChanged(p);
+
+        if (focusManager)
+        {
+            addActivateHandlers();
+        }
+        else
+        {
+            // if no focusmanager yet, add capture phase to detect when it
+            // gets added
+            if (systemManager)
+            {
+                systemManager.getSandboxRoot().addEventListener(
+                    FlexEvent.ADD_FOCUS_MANAGER, addFocusManagerHandler, true, 0, true);
+            }
+            else
+            {
+                // no systemManager yet?  Check again when added to stage
+                addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
+            }
+        }
+    }
+
+    /**
+     *  @private
+     */
     override protected function partAdded(partName:String, instance:Object) : void
     {
         super.partAdded(partName, instance);

         if (instance == moveArea)
-		{
-			moveArea.addEventListener(MouseEvent.MOUSE_DOWN, moveArea_mouseDownHandler);
-		}
-		else if (instance == closeButton)
-		{
-			closeButton.focusEnabled = false;
-			closeButton.addEventListener(MouseEvent.CLICK, closeButton_clickHandler);
-		}
-    }
-
-	/**
-	 *  @private
-	 */
+        {
+            moveArea.addEventListener(MouseEvent.MOUSE_DOWN, moveArea_mouseDownHandler);
+        }
+        else if (instance == closeButton)
+        {
+            closeButton.focusEnabled = false;
+            closeButton.addEventListener(MouseEvent.CLICK, closeButton_clickHandler);
+        }
+    }
+
+    /**
+     *  @private
+     */
     override protected function partRemoved(partName:String, instance:Object):void
     {
-		super.partRemoved(partName, instance);
-
+        super.partRemoved(partName, instance);
+
         if (instance == moveArea)
-			moveArea.removeEventListener(MouseEvent.MOUSE_DOWN, moveArea_mouseDownHandler);
-		else if (instance == closeButton)
+            moveArea.removeEventListener(MouseEvent.MOUSE_DOWN, moveArea_mouseDownHandler);
+        else if (instance == closeButton)
             closeButton.removeEventListener(MouseEvent.CLICK, closeButton_clickHandler);
     }
-
-	/**
-	 *  @inheritDoc
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	override protected function getCurrentSkinState():String
-	{
-		// In focus window is the active window.
-		if (enabled && isPopUp && !active)
-		{
-			var state:String = "inactive";
-
-			if (controlBarGroup)
-			{
-				if (BitFlagUtil.isSet(controlBarGroupProperties as uint, CONTROLBAR_PROPERTY_FLAG) &&
-					BitFlagUtil.isSet(controlBarGroupProperties as uint, VISIBLE_PROPERTY_FLAG))
-					state += "WithControlBar";
-			}
-			else
-			{
-				if (controlBarGroupProperties.controlBarContent &&
-					controlBarGroupProperties.visible)
-					state += "WithControlBar";
-			}
-
-			return state;
-		}
-
-		return super.getCurrentSkinState();
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function move(x:Number, y:Number) : void
-	{
-		var beforeBounds:Rectangle = new Rectangle(this.x, this.y, width, height);
-
-		super.move(x, y);
-
-		// Dispatch "windowMove" event when TitleWindow is moved.
-		var afterBounds:Rectangle = new Rectangle(this.x, this.y, width, height);
-		var e2:TitleWindowBoundsEvent =
-			new TitleWindowBoundsEvent(TitleWindowBoundsEvent.WINDOW_MOVE,
-									   false, false, beforeBounds, afterBounds);
-
-		dispatchEvent(e2);
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	// Event Handlers
-	//
-	//--------------------------------------------------------------------------
-
-	//----------------------------------
-	//  closeButton Handler
-	//----------------------------------
-
-	/**
-	 *  Dispatches the "close" event when the closeButton
-	 *  is clicked.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	protected function closeButton_clickHandler(event:MouseEvent):void
-	{
-		dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
-	}
-
-	//----------------------------------
-	//  moveArea Handlers
-	//----------------------------------
-
-	/**
-	 *  Called when the user starts dragging a TitleWindow.
-	 *  It begins a move on the TitleWindow if it was popped
-	 *  up either by PopUpManager or PopUpAnchor.
-	 *
+
+    /**
+     *  @inheritDoc
+     *
      *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    override protected function getCurrentSkinState():String
+    {
+        // In focus window is the active window.
+        if (enabled && isPopUp && !active)
+        {
+            var state:String = "inactive";
+
+            if (controlBarGroup)
+            {
+                if (BitFlagUtil.isSet(controlBarGroupProperties as uint, CONTROLBAR_PROPERTY_FLAG) &&
+                    BitFlagUtil.isSet(controlBarGroupProperties as uint, VISIBLE_PROPERTY_FLAG))
+                    state += "WithControlBar";
+            }
+            else
+            {
+                if (controlBarGroupProperties.controlBarContent &&
+                    controlBarGroupProperties.visible)
+                    state += "WithControlBar";
+            }
+
+            return state;
+        }
+
+        return super.getCurrentSkinState();
+    }
+
+    /**
+     *  @private
+     */
+    override public function move(x:Number, y:Number) : void
+    {
+        var beforeBounds:Rectangle = new Rectangle(this.x, this.y, width, height);
+
+        super.move(x, y);
+
+        // Dispatch "windowMove" event when TitleWindow is moved.
+        var afterBounds:Rectangle = new Rectangle(this.x, this.y, width, height);
+        var e2:TitleWindowBoundsEvent =
+            new TitleWindowBoundsEvent(TitleWindowBoundsEvent.WINDOW_MOVE,
+                                       false, false, beforeBounds, afterBounds);
+
+        dispatchEvent(e2);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    // Event Handlers
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  closeButton Handler
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Dispatches the "close" event when the closeButton
+     *  is clicked.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function closeButton_clickHandler(event:MouseEvent):void
+    {
+        dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
+    }
+
+    //----------------------------------
+    //  moveArea Handlers
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Called when the user starts dragging a TitleWindow.
+     *  It begins a move on the TitleWindow if it was popped
+     *  up either by PopUpManager or PopUpAnchor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
     protected function moveArea_mouseDownHandler(event:MouseEvent):void
     {
-		// Only allow dragging of pop-upped windows
+        // Only allow dragging of pop-upped windows
         if (enabled && isPopUp)
-		{
-			// Calculate the mouse's offset in the window
-			// TODO (klin): Investigate globalToLocal method
-			offsetX = event.stageX - x;
-			offsetY = event.stageY - y;
-
-			var sbRoot:DisplayObject = systemManager.getSandboxRoot();
-
-			sbRoot.addEventListener(
-				MouseEvent.MOUSE_MOVE, moveArea_mouseMoveHandler, true);
-			sbRoot.addEventListener(
-				MouseEvent.MOUSE_UP, moveArea_mouseUpHandler, true);
-			sbRoot.addEventListener(
-				SandboxMouseEvent.MOUSE_UP_SOMEWHERE, moveArea_mouseUpHandler)
-
-			// add the mouse shield so we can drag over untrusted applications.
-			systemManager.deployMouseShields(true);
-		}
-    }
-
-	/**
-	 *  Called when the user drags a TitleWindow.
-	 *
+        {
+            // Calculate the mouse's offset in the window
+            // TODO (klin): Investigate globalToLocal method
+            offsetX = event.stageX - x;
+            offsetY = event.stageY - y;
+
+            var sbRoot:DisplayObject = systemManager.getSandboxRoot();
+
+            sbRoot.addEventListener(
+                MouseEvent.MOUSE_MOVE, moveArea_mouseMoveHandler, true);
+            sbRoot.addEventListener(
+                MouseEvent.MOUSE_UP, moveArea_mouseUpHandler, true);
+            sbRoot.addEventListener(
+                SandboxMouseEvent.MOUSE_UP_SOMEWHERE, moveArea_mouseUpHandler)
+
+            // add the mouse shield so we can drag over untrusted applications.
+            systemManager.deployMouseShields(true);
+        }
+    }
+
+    /**
+     *  @private
+     *  Called when the user drags a TitleWindow.
+     *
      *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	protected function moveArea_mouseMoveHandler(event:MouseEvent):void
-	{
-		// Check to see if this is the first mouseMove
-		if (!startBounds)
-		{
-			// First dispatch a cancellable "windowMoveStart" event
-			startBounds = new Rectangle(x, y, width, height);
-			var startEvent:TitleWindowBoundsEvent =
-				new TitleWindowBoundsEvent(TitleWindowBoundsEvent.WINDOW_MOVE_START,
-					false, true, startBounds, null);
-			dispatchEvent(startEvent);
-
-			if (startEvent.isDefaultPrevented())
-			{
-				// Clean up code if entire move is canceled.
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function moveArea_mouseMoveHandler(event:MouseEvent):void
+    {
+        // Check to see if this is the first mouseMove
+        if (!startBounds)
+        {
+            // First dispatch a cancellable "windowMoveStart" event
+            startBounds = new Rectangle(x, y, width, height);
+            var startEvent:TitleWindowBoundsEvent =
+                new TitleWindowBoundsEvent(TitleWindowBoundsEvent.WINDOW_MOVE_START,
+                    false, true, startBounds, null);
+            dispatchEvent(startEvent);
+
+            if (startEvent.isDefaultPrevented())
+            {
+                // Clean up code if entire move is canceled.
                 var sbRoot:DisplayObject = systemManager.getSandboxRoot();

-				sbRoot.removeEventListener(
-					MouseEvent.MOUSE_MOVE, moveArea_mouseMoveHandler, true);
-				sbRoot.removeEventListener(
-					MouseEvent.MOUSE_UP, moveArea_mouseUpHandler, true);
-				sbRoot.removeEventListener(
-					SandboxMouseEvent.MOUSE_UP_SOMEWHERE, moveArea_mouseUpHandler);
-
-				systemManager.deployMouseShields(false);
-
-				offsetX = NaN;
-				offsetY = NaN;
-				startBounds = null;
-				return;
-			}
-		}
-
-		// Dispatch cancelable "windowMoving" event with before and after bounds.
-		var beforeBounds:Rectangle = new Rectangle(x, y, width, height);
-		var afterBounds:Rectangle =
-			new Rectangle(Math.round(event.stageX - offsetX),
-						  Math.round(event.stageY - offsetY),
-						  width, height);
-
-		var e1:TitleWindowBoundsEvent =
-			new TitleWindowBoundsEvent(TitleWindowBoundsEvent.WINDOW_MOVING,
-									   false, true, beforeBounds, afterBounds);
-		dispatchEvent(e1);
-
-		// Move only if not canceled.
-		if (!(e1.isDefaultPrevented()))
-			move(afterBounds.x, afterBounds.y);
-
-		event.updateAfterEvent();
-	}
-
-	/**
-	 *  Called when the user releases the TitleWindow.
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	protected function moveArea_mouseUpHandler(event:Event):void
-	{
-		var sbRoot:DisplayObject = systemManager.getSandboxRoot();
-
-		sbRoot.removeEventListener(
-			MouseEvent.MOUSE_MOVE, moveArea_mouseMoveHandler, true);
-		sbRoot.removeEventListener(
-			MouseEvent.MOUSE_UP, moveArea_mouseUpHandler, true);
-		sbRoot.removeEventListener(
-			SandboxMouseEvent.MOUSE_UP_SOMEWHERE, moveArea_mouseUpHandler);
-
-		systemManager.deployMouseShields(false);
-
-		// Check to see that a move actually occurred and that the
-		// user did not just click on the moveArea
-		if (startBounds)
-		{
-			// Dispatch "windowMoveEnd" event with the starting bounds and current bounds.
-			var endEvent:TitleWindowBoundsEvent =
-				new TitleWindowBoundsEvent(TitleWindowBoundsEvent.WINDOW_MOVE_END,
-										   false, false, startBounds,
-										   new Rectangle(x, y, width, height));
-			dispatchEvent(endEvent);
-			startBounds = null;
-		}
-
-		offsetX = NaN;
-		offsetY = NaN;
-	}
-
-	//----------------------------------
-	//  Active Window Handlers and helper methods
-	//----------------------------------
-
-	/**
-	 *  @private
-	 */
+                sbRoot.removeEventListener(
+                    MouseEvent.MOUSE_MOVE, moveArea_mouseMoveHandler, true);
+                sbRoot.removeEventListener(
+                    MouseEvent.MOUSE_UP, moveArea_mouseUpHandler, true);
+                sbRoot.removeEventListener(
+                    SandboxMouseEvent.MOUSE_UP_SOMEWHERE, moveArea_mouseUpHandler);
+
+                systemManager.deployMouseShields(false);
+
+                offsetX = NaN;
+                offsetY = NaN;
+                startBounds = null;
+                return;
+            }
+        }
+
+        // Dispatch cancelable "windowMoving" event with before and after bounds.
+        var beforeBounds:Rectangle = new Rectangle(x, y, width, height);
+        var afterBounds:Rectangle =
+            new Rectangle(Math.round(event.stageX - offsetX),
+                          Math.round(event.stageY - offsetY),
+                          width, height);
+
+        var e1:TitleWindowBoundsEvent =
+            new TitleWindowBoundsEvent(TitleWindowBoundsEvent.WINDOW_MOVING,
+                                       false, true, beforeBounds, afterBounds);
+        dispatchEvent(e1);
+
+        // Move only if not canceled.
+        if (!(e1.isDefaultPrevented()))
+            move(afterBounds.x, afterBounds.y);
+
+        event.updateAfterEvent();
+    }
+
+    /**
+     *  @private
+     *  Called when the user releases the TitleWindow.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    protected function moveArea_mouseUpHandler(event:Event):void
+    {
+        var sbRoot:DisplayObject = systemManager.getSandboxRoot();
+
+        sbRoot.removeEventListener(
+            MouseEvent.MOUSE_MOVE, moveArea_mouseMoveHandler, true);
+        sbRoot.removeEventListener(
+            MouseEvent.MOUSE_UP, moveArea_mouseUpHandler, true);
+        sbRoot.removeEventListener(
+            SandboxMouseEvent.MOUSE_UP_SOMEWHERE, moveArea_mouseUpHandler);
+
+        systemManager.deployMouseShields(false);
+
+        // Check to see that a move actually occurred and that the
+        // user did not just click on the moveArea
+        if (startBounds)
+        {
+            // Dispatch "windowMoveEnd" event with the starting bounds and current bounds.
+            var endEvent:TitleWindowBoundsEvent =
+                new TitleWindowBoundsEvent(TitleWindowBoundsEvent.WINDOW_MOVE_END,
+                                           false, false, startBounds,
+                                           new Rectangle(x, y, width, height));
+            dispatchEvent(endEvent);
+            startBounds = null;
+        }
+
+        offsetX = NaN;
+        offsetY = NaN;
+    }
+
+    //----------------------------------
+    //  Active Window Handlers and helper methods
+    //----------------------------------
+
+    /**
+     *  @private
+     */
     private function activateHandler(event:Event):void
     {
         active = true;
         invalidateSkinState();
     }
-
-	/**
-	 *  @private
-	 */
+
+    /**
+     *  @private
+     */
     private function deactivateHandler(event:Event):void
     {
         active = false;
         invalidateSkinState();
     }
-
-	/**
-	 *  @private
-	 *  add listeners to focusManager
-	 */
-	private function addActivateHandlers():void
-	{
-		focusManager.addEventListener(FlexEvent.FLEX_WINDOW_ACTIVATE,
-			activateHandler, false, 0, true);
-		focusManager.addEventListener(FlexEvent.FLEX_WINDOW_DEACTIVATE,
-			deactivateHandler, false, 0, true);
-	}
-
-	/**
-	 *  @private
-	 *  find the right time to listen to the focusmanager
-	 */
-	private function addedToStageHandler(event:Event):void
-	{
-		if (event.target == this)
-		{
-			removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
-			callLater(addActivateHandlers);
-		}
-	}
-
-	/**
-	 *  @private
-	 *  Called when a FocusManager is added to an IFocusManagerContainer.
-	 *  We need to check that it belongs to us before listening to it.
-	 *  Because we listen to sandboxroot, you cannot assume the type of
-	 *  the event.
-	 */
-	private function addFocusManagerHandler(event:Event):void
-	{
-		if (focusManager == event.target["focusManager"])
-		{
-			systemManager.getSandboxRoot().removeEventListener(FlexEvent.ADD_FOCUS_MANAGER,
-				addFocusManagerHandler, true);
-			addActivateHandlers();
-		}
-	}
+
+    /**
+     *  @private
+     *  add listeners to focusManager
+     */
+    private function addActivateHandlers():void
+    {
+        focusManager.addEventListener(FlexEvent.FLEX_WINDOW_ACTIVATE,
+            activateHandler, false, 0, true);
+        focusManager.addEventListener(FlexEvent.FLEX_WINDOW_DEACTIVATE,
+            deactivateHandler, false, 0, true);
+    }
+
+    /**
+     *  @private
+     *  find the right time to listen to the focusmanager
+     */
+    private function addedToStageHandler(event:Event):void
+    {
+        if (event.target == this)
+        {
+            removeEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
+            callLater(addActivateHandlers);
+        }
+    }
+
+    /**
+     *  @private
+     *  Called when a FocusManager is added to an IFocusManagerContainer.
+     *  We need to check that it belongs to us before listening to it.
+     *  Because we listen to sandboxroot, you cannot assume the type of
+     *  the event.
+     */
+    private function addFocusManagerHandler(event:Event):void
+    {
+        if (focusManager == event.target["focusManager"])
+        {
+            systemManager.getSandboxRoot().removeEventListener(FlexEvent.ADD_FOCUS_MANAGER,
+                addFocusManagerHandler, true);
+            addActivateHandlers();
+        }
+    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

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

--- frameworks/projects/spark/src/spark/components/VideoPlayer.as
+++ frameworks/projects/spark/src/spark/components/VideoPlayer.as
@@ -1,4 +1,4 @@
-package mx.components
+package spark.components
 {
 import fl.video.VideoEvent;
 import fl.video.VideoState;
@@ -10,13 +10,13 @@
 import flash.events.ProgressEvent;
 import flash.geom.Rectangle;

-import mx.components.baseClasses.FxComponent;
-import mx.components.baseClasses.FxRange;
+import spark.components.supportClasses.SkinnableComponent;
+import spark.components.supportClasses.Range;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.events.SandboxMouseEvent;
-import mx.graphics.VideoElement;
-import mx.graphics.baseClasses.TextGraphicElement;
+import spark.primitives.VideoElement;
+import spark.primitives.supportClasses.TextGraphicElement;
 import mx.utils.BitFlagUtil;

 import spark.events.MetadataEvent;
@@ -233,10 +233,10 @@

 [DefaultProperty("source")]

-[IconFile("FxVideoDisplay.png")]
-
-/**
- *  The FxVideoDisplay class is skinnable video player that supports
+[IconFile("VideoDisplay.png")]
+
+/**
+ *  The VideoDisplay class is skinnable video player that supports
  *  progressive download, multi-bitrate, and streaming video.
  *
  *
VideoElement is the chromeless version.

@@ -248,7 +248,7 @@
  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class FxVideoDisplay extends FxComponent
+public class VideoDisplay extends SkinnableComponent
 {
     //--------------------------------------------------------------------------
     //
@@ -300,7 +300,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    public function FxVideoDisplay()
+    public function VideoDisplay()
     {
         super();
     }
@@ -345,7 +345,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var fullScreenButton:FxButton;
+    public var fullScreenButton:Button;

     [SkinPart(required="false")]

@@ -360,7 +360,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var muteButton:FxToggleButton;
+    public var muteButton:ToggleButton;

     [SkinPart(required="false")]

@@ -372,7 +372,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var pauseButton:FxButton;
+    public var pauseButton:Button;

     [SkinPart(required="false")]

@@ -384,7 +384,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var playButton:FxButton;
+    public var playButton:Button;

     [SkinPart(required="false")]

@@ -399,7 +399,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var playPauseButton:FxToggleButton;
+    public var playPauseButton:ToggleButton;

     [SkinPart(required="false")]

@@ -412,7 +412,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var scrubBar:FxRange;
+    public var scrubBar:Range;

     [SkinPart(required="false")]

@@ -424,7 +424,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var stopButton:FxButton;
+    public var stopButton:Button;

     [SkinPart(required="false")]

@@ -448,7 +448,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public var volumeBar:FxRange;
+    public var volumeBar:Range;

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3321
Author:   hmuller@adobe.com
Date:     2008-09-23T21:21:31.020570Z

Log Message:
-----------
Created ILayout implementation LayoutBase and made it the base
class for the three existing layouts. LayoutBase defines the
following properties:

  target - the Group or DataGroup (GroupBase) that whose
  layout property is _this_ layout.

  verticalScrollPosition, horizontalScrollPosition - the
  origin of the target's scrollRect.  These properties were
  defined by GroupBase.

LayoutBase also adds some new protected methods:

  scrollPositionChanged() - called when the
  vertical,horizontalScrollPosition properties change.

  updateScrollRect() - syncs the scrollRect with the
  vertical,horizontalScrollPosition properties

  invalidateTargetSizeAndDisplayList() - convenience
  method that calls invalidateSize,DisplayList().

LayoutBase also defines empty implementations of measure
and updateDisplayList.

GroupBase now delegates vertical,horizontalScrollPosition
to its layout and redispatches the layout's propertyChange
events for these properties.

QE: No
Doc: No
Checkintests: Pass
Reviewer: Evtim
Bugs:
   SDK-17002 -  includeInLayout no longer being respected

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Selector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/VerticalLayout.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/layout/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/intf/ILayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -29,7 +29,7 @@
 /**
  *  Documentation is not currently available.
  */
-public class VerticalLayout extends EventDispatcher implements ILayout
+public class VerticalLayout extends LayoutBase
 {
     include "../core/Version.as";

@@ -39,16 +39,6 @@
     //
     //--------------------------------------------------------------------------

-    private static function hasPercentWidth( layoutItem:ILayoutItem ):Boolean
-    {
-    	return !isNaN( layoutItem.percentSize.x );
-    }
-
-    private static function hasPercentHeight( layoutItem:ILayoutItem ):Boolean
-    {
-        return !isNaN( layoutItem.percentSize.y );
-    }
-
     private static function calculatePercentWidth( layoutItem:ILayoutItem, width:Number ):Number
     {
     	var percentWidth:Number = LayoutItemHelper.pinBetween( layoutItem.percentSize.x * width,
@@ -77,31 +67,9 @@
     //
     //--------------------------------------------------------------------------

-    private var _target:GroupBase;
-
-    public function get target():GroupBase
-    {
-        return _target;
-    }
-
-    public function set target(value:GroupBase):void
-    {
-        _target = value;
-    }
-
     //----------------------------------
     //  gap
     //----------------------------------
-
-    private function invalidateTargetSizeAndDisplayList():void
-    {
-        var layoutTarget:GroupBase = target;
-        if (layoutTarget != null)
-        {
-            layoutTarget.invalidateSize();
-            layoutTarget.invalidateDisplayList();
-        }
-    }

     private var _gap:int = 6;

@@ -381,6 +349,13 @@
         _lastIndexInView = lastIndex;
         dispatchEvent(new Event("indexInViewChanged"));
     }
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------

 	/**
 	 *  An index is "in view" if the corresponding non-null layout item is
@@ -544,7 +519,7 @@
     }

-    public function measure():void
+    override public function measure():void
     {
     	var layoutTarget:GroupBase = target;
         if (!layoutTarget)
@@ -558,7 +533,7 @@
     }

-    public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+    override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
     	var layoutTarget:GroupBase = target;
         if (!layoutTarget)
@@ -566,11 +541,12 @@

         // TODO EGeorgie: use vector
         var layoutItemArray:Array = new Array();
+        var layoutItem:ILayoutItem;
         var count:uint = layoutTarget.numLayoutItems;
         var totalCount:uint = count; // How many items will be laid out
         for (var i:int = 0; i < count; i++)
         {
-            var layoutItem:ILayoutItem = layoutTarget.getLayoutItemAt(i);
+            layoutItem = layoutTarget.getLayoutItemAt(i);
             if (!layoutItem || !layoutItem.includeInLayout)
             {
             	totalCount--;
@@ -605,19 +581,19 @@

         for (var index:int = 0; index < count; index++)
         {
-            var lo:ILayoutItem = layoutTarget.getLayoutItemAt(index);
+            layoutItem = layoutTarget.getLayoutItemAt(index);
             if (!layoutItem || !layoutItem.includeInLayout)
                 continue;

         	// Set the layout item's acutual size and position
-            var x:Number = (unscaledWidth - lo.actualSize.x) * hAlign;
-            lo.setActualPosition(x, y);
-            var dx:Number = lo.actualSize.x;
+            var x:Number = (unscaledWidth - layoutItem.actualSize.x) * hAlign;
+            layoutItem.setActualPosition(x, y);
+            var dx:Number = layoutItem.actualSize.x;
             if (!variableRowHeight)
-                lo.setActualSize(dx, rowHeight);
+                layoutItem.setActualSize(dx, rowHeight);

             // Update maxX,Y, first,lastVisibleIndex, and y
-            var dy:Number = lo.actualSize.y;
+            var dy:Number = layoutItem.actualSize.y;
             maxX = Math.max(maxX, x + dx);
             maxY = Math.max(maxY, y + dy);
             if ((y < maxVisibleY) && ((y + dy) > minVisibleY))
@@ -634,8 +610,8 @@
         setRowCount(visibleRows);
         setIndexInView(firstRowInView, lastRowInView);
         layoutTarget.setContentSize(maxX, maxY);
-    }
-
+        updateScrollRect(unscaledWidth, unscaledHeight);
+    }

     /**
      *  This function sets the height of each child


Transferred from the Adobe Open Source Subversion Repository

Revision: 3665
Author:   hmuller@adobe.com
Date:     2008-10-15T20:42:18.087020Z

Log Message:
-----------
Fixed 17335, completed Scrollbar viewport property, fixed an FxRange::setValue() problem.

Added a special case for zero-height rows/columns to
Vertical,HorizontalLayout::updateDisplayList(),::inView()
to fix 17335.

Fixed FxRange: now FlexEvent.VALUE_COMMIT event handlers
will see the final constrained value, per
FxRange::nearestValidValue(), as they should.

Completed the ScrollBar viewport property implementation.   Now
all of the synchronization between scrollbars and a their viewport
is handled by the scrollbar.   Previously it was handled by both
FxScroller, ScrollerSkin, and the layout classes.

ScrollBar now tracks its viewport's actual size, content size, and
scroll positions.  The corresonding code and protected API has been
removed from FxScroller, notably:

  protected function vsb_valueCommitHandler(event:Event):void
  protected function hsb_valueCommitHandler(event:Event):void
  protected function viewportContentWidthChanged(event:PropertyChangeEvent):void
  protected function viewportContentHeightChanged(event:PropertyChangeEvent):void
  protected function viewportHorizontalScrollPositionChanged(event:PropertyChangeEvent):void
  protected function viewportVerticalScrollPositionChanged(event:PropertyChangeEvent):void

The protected methods for tracking the viewport have moved,
with slightly different names, to FxScrollBar:

  protected function viewportResizeHandler(event:ResizeEvent):void
  protected function viewportContentWidthChangeHandler(event:PropertyChangeEvent):void
  protected function viewportContentHeightChangeHandler(event:PropertyChangeEvent):void
  protected function viewportHorizontalScrollPositionChangeHandler(event:PropertyChangeEvent):void
  protected function viewportVerticalScrollPositionChangeHandler(event:PropertyChangeEvent):void

QE: I've made API changes
Doc: No
Checkintests: Pass
Reviewer: Ryan
Bugs:
    SDK-17335 - inView reports incorrectly when setting rowHeight to zero on a VerticalLayout

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxRange.as</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/FxScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/VerticalLayout.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
+++ frameworks/projects/spark/src/spark/layouts/VerticalLayout.as
@@ -385,7 +385,7 @@

 	    if ((index < 0) || (index >= g.numLayoutItems))
 	       return 0.0;
-
+
         var li:ILayoutItem = g.getLayoutItemAt(index);
         if ((li == null) || !li.includeInLayout)
             return 0.0;
@@ -407,7 +407,7 @@
         var iy0:Number = li.actualPosition.y;
         var iy1:Number = iy0 + li.actualSize.y;
         if (iy0 >= iy1)  // item has 0 or negative height
-            return 0.0;
+            return 1.0;
         if ((iy0 >= y0) && (iy1 <= y1))
             return 1.0;
         return (Math.min(y1, iy1) - Math.max(y0, iy0)) / (iy1 - iy0);
@@ -885,7 +885,8 @@
             var dy:Number = layoutItem.actualSize.y;
             maxX = Math.max(maxX, x + dx);
             maxY = Math.max(maxY, y + dy);
-            if ((y < maxVisibleY) && ((y + dy) > minVisibleY))
+            if (((y < maxVisibleY) && ((y + dy) > minVisibleY)) ||
+                ((dy <= 0) && ((y == maxVisibleY) || (y == minVisibleY))))
             {
             	visibleRows += 1;
             	if (firstRowInView == -1)


fixed line chart geom probing bug created in previous revision

Change-Id: I73f7c0df615a9e1bae65667e2dd7fb075ccc4791

--- WeaveUISpark/src/weave/visualization/plotters/ParallelCoordinatesPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/ParallelCoordinatesPlotter.as
@@ -313,10 +313,10 @@
 			for (var i:int = 0; i < _yColumns.length; ++i)
 			{
 				getCoords(recordKey, i, tempPoint);
-				if (!includeUndefinedBounds || isFinite(tempPoint.x) && isFinite(tempPoint.y))
+				if (includeUndefinedBounds || isFinite(tempPoint.x) && isFinite(tempPoint.y))
 					(output[outIndex] as IBounds2D).includePoint(tempPoint);
 				// when geom probing is enabled, report a single data bounds
-				if (!includeUndefinedBounds || !enableGeomProbing)
+				if (includeUndefinedBounds || !enableGeomProbing)
 					outIndex++;
 			}
 			while (output.length > outIndex + 1)


Transferred from the Adobe Open Source Subversion Repository

Revision: 6112
Author:   jszeto@adobe.com
Date:     2009-04-10T00:52:20.424522Z

Log Message:
-----------
DropDownList Bug Fixes

- Added functionality to keep the anchor button in the down state when the dropDown is open.
- Changed SkinnableDataContainer's dataGroup skin part from required to optional. Added some null check protection to List, and ListBase. Changed the DropDownListSkin to only include the dropDown in the open state.

Bug Fixes:

SDK-20534 - DropDownList does not gray out text when disabled

Updated the skin to set the alpha in the disabled state

SDK-20532 - When using scroll bar on the dropDown of a DropDownList the dropDown closes

Added dropDown skinPart that defines the area that doesn't automatically close DropDownList on a mouseDown

SDK-19868 - Gumbo DropDownList should support symbolColor style

Changed the down arrow in the DropDownListButtonSkin to use a radialGradient fill instead of a DropShadowFilter. Also, the PopUp component now passes its styles along to its content.

SDK-19572 - DropDownList popup doesnt close or move when resizing browser window

Added a systemManager resize handler that closes the dropDown

SDK-20535 - DropDownList text styles are not passed on to dropDown and no dropDown styles exist

The PopUp component now passes its styles along to its content.

SDK-20555 - Spark DropDownList should size itself a bit better so partial rows arent displayed if possible

Changed the default size of the dropDown from 140 to 134. This should handle this issue if the DropDownList is using the default item renderer

QE Notes:
Doc Notes: Added dropDown skin part to DropDownList
Bugs: SDK-20534, SDK-20532, SDK-19868, SDK-19572, SDK-20535, SDK-20555
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/DropDownListButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/default/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUp.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableDataContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as
@@ -21,11 +21,14 @@
 import flash.utils.Timer;

 import spark.components.supportClasses.SkinnableComponent;
+import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.events.SandboxMouseEvent;
 import spark.primitives.supportClasses.TextGraphicElement;
 import mx.managers.IFocusManagerComponent;
 import mx.utils.StringUtil;
+
+use namespace mx_internal;

 include "../../styles/metadata/BasicTextLayoutFormatStyles.as"

@@ -540,6 +543,33 @@

         _explicitToolTip = value != null;
     }
+
+    //----------------------------------
+    //  keepDown
+    //----------------------------------
+	private var _keepDown:Boolean = false;
+
+	/**
+     *  @private
+     *  If true, forces the button to be in the down state
+     */
+	mx_internal function set keepDown(value:Boolean):void
+	{
+		if (_keepDown == value)
+			return;
+
+		_keepDown = value;
+		invalidateSkinState();
+	}
+
+	/**
+     *  @private
+     */
+	mx_internal function get keepDown():Boolean
+	{
+		return _keepDown;
+	}
+

     //--------------------------------------------------------------------------
     //
@@ -619,6 +649,9 @@
     {
         if (!enabled)
             return false;
+
+		if (keepDown)
+			return true;

         if (keyboardPressed)
             return true;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10372
Author:   klin@adobe.com
Date:     2009-09-18T00:49:09.441663Z

Log Message:
-----------
https://bugs.adobe.com/jira/browse/SDK-23273 - Excluded borderAlpha and borderVisible from mx:TabBar.

https://bugs.adobe.com/jira/browse/SDK-23042 - Pushed Exclude of focusThickness style from SkinnableComponent into specific subclasses (GroupBase, ScrollBar, SkinnableContainerBase, VideoPlayer, TitleBar) so that other subclasses will inherit the focusThickness style.

https://bugs.adobe.com/jira/browse/SDK-23172 - Revert of 10349. Fixed bug where dataTipInstance was not inheriting Slider's styles by assigning Slider as its owner. Also excluded unsupported text styles.

QE Notes: None
Doc Notes: None
Bugs: SDK-23273, SDK-23042, SDK-23172
Reviewer: Jason
API Change: No
Is noteworthy for integration: FB
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TabBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableContainerBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SliderBase.as
@@ -33,6 +33,8 @@
 import spark.events.TrackBaseEvent;

 use namespace mx_internal;
+
+include "../../styles/metadata/BasicInheritingTextStyles.as"

 /**
  *  The alpha of the focus ring for this component.
@@ -67,6 +69,15 @@
  *  @productversion Flex 4
  */
 [Style(name="liveDragging", type="Boolean", inherit="no")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="color", kind="style")]
+[Exclude(name="fontSize", kind="style")]
+[Exclude(name="fontWeight", kind="style")]
+[Exclude(name="textAlign", kind="style")]

 /**
  *  The Slider class lets users select a value by moving a slider thumb between
@@ -471,14 +482,23 @@
         if (dataTip && showDataTip && enabled)
         {
             dataTipInstance = IDataRenderer(createDynamicPartInstance("dataTip"));
-            systemManager.toolTipChildren.addChild(DisplayObject(dataTipInstance));
-
-            dataTipInstance.data = formatDataTipText(
-                nearestValidValue(pendingValue, snapInterval));
-
+
+			dataTipInstance.data = formatDataTipText(
+				nearestValidValue(pendingValue, snapInterval));
+
+			var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
+
+			// Allow styles to be inherited from Slider.
+			if (tipAsUIComponent)
+			{
+				tipAsUIComponent.owner = this;
+				tipAsUIComponent.isPopUp = true;
+			}
+
+			systemManager.toolTipChildren.addChild(DisplayObject(dataTipInstance));
+
             // Force the dataTip to render so that we have the correct size since
             // updateDataTip might need the size
-            var tipAsUIComponent:UIComponent = dataTipInstance as UIComponent;
             if (tipAsUIComponent)
             {
                 tipAsUIComponent.validateNow();


fixed bug where DBFDataSource was always busy

--- WeaveData/src/weave/data/DataSources/DBFDataSource.as
+++ WeaveData/src/weave/data/DataSources/DBFDataSource.as
@@ -68,7 +68,7 @@
 		{
 			// make sure everything is ready before column requests get handled.
 			return super.initializationComplete
-				&& !linkableObjectIsBusy(this)
+				&& dbfData
 				&& (!shpfile || shpfile.geomsReady);
 		}


organize imports

organize imports

--- WeaveUI/src/weave/visualization/tools/ExternalTool.as
+++ WeaveUI/src/weave/visualization/tools/ExternalTool.as
@@ -18,10 +18,7 @@
 */
 package weave.visualization.tools
 {
-	import com.hurlant.crypto.hash.MD5;
-
 	import mx.utils.Base64Encoder;
-	import mx.utils.UIDUtil;

 	import weave.api.WeaveAPI;
 	import weave.api.data.IAttributeColumn;


Version 1.1.

Version 1.1.

--- net/flashpunk/FP.as
+++ net/flashpunk/FP.as
@@ -19,7 +19,7 @@
 		/**
 		 * The FlashPunk major version.
 		 */
-		public static const VERSION:String = "1.0";
+		public static const VERSION:String = "1.1";

 		/**
 		 * Width of the game.


Transferred from the Adobe Open Source Subversion Repository

Revision: 17228
Author:   jszeto@adobe.com
Date:     2010-08-07T00:36:47.941230Z

Log Message:
-----------
CheckBox and RadioButton skins

- Added new ToggleButtonSkinBase which subclasses ButtonBase. It uses the iconDisplay to hold the check box or radio circle.
- Added RadioButtonSkin and CheckBoxSkin which subclass ToggleButtonSkinBase and specifies the icons for the different states.
- Improved FXG skin creation logic in ButtonSkin.

SDK-27296 - Setting iconClass using setStyle does not work

Added logic to styleChanged and moved the iconClass logic to commitProperties

SDK-27295 - Button skin on 'up' state not consistent after clicking a button

Fixed up FXG skin creation logic

QE notes: CheckBox and RadioButton still need some visual tweaks to the FXG skins
Doc notes: none
Bugs: SDK-27296, SDK-27295
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/MobileSkin.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/mobiletheme/src/spark/skins/mobile/ButtonSkinBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ToggleButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/Button.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as
@@ -61,6 +61,7 @@
     private var bgImg:DisplayObject;

     private var changeFXGSkin:Boolean = false;
+    private var backgroundClass:Class;

     private static var matrix:Matrix = new Matrix();

@@ -78,18 +79,18 @@
      *  @private
      */
     override protected function commitCurrentState():void
-    {
-        // TODO (jszeto) Don't use previousState and use "is" checks in applyFXG
+    {
+        if (currentState == "down")
+            backgroundClass = Button_bg_down;
+        else
+            backgroundClass = Button_bg_up;

-        // Over and up states are the same
-        if ((currentState == "down" &&
-            (previousState == "up" || previousState == "over")) ||
-            (previousState == "down" &&
-                (currentState == "up" || currentState == "over")))
+        if (!(bgImg is backgroundClass))
         {
             changeFXGSkin = true;
             invalidateDisplayList();
         }
+
     }

     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
@@ -101,8 +102,12 @@
         // Size the FXG background
         if (changeFXGSkin)
         {
-            applyFXG();
             changeFXGSkin = false;
+
+            if (bgImg)
+                removeChild(bgImg);
+            bgImg = new backgroundClass();
+            addChildAt(bgImg, 0);
         }

         if (bgImg != null)
@@ -130,24 +135,6 @@
         // The label and icon should be placed on top of the FXG skins
         super.updateDisplayList(unscaledWidth, unscaledHeight);
     }
-
-    /**
-     *  @private
-     */
-    private function applyFXG():void
-    {
-        if (currentState == null)
-            return;
-
-        if (bgImg != null)
-            removeChild(bgImg);
-
-        if (currentState == "down")
-            bgImg = new Button_bg_down();
-        else if (currentState == "up" || currentState == "over")
-            bgImg = new Button_bg_up();
-
-        addChildAt(bgImg, 0);
-    }
+
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20684
Author:   rfrishbe@adobe.com
Date:     2011-03-08T19:14:07.872274Z

Log Message:
-----------
ASDoc changes: some cleanups and clarifying mobile vs. spark where appropriate

QE notes: -
Doc notes:
Bugs: SDK-29845
Reviewer: Carol F
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/spark/src/spark/styles/metadata/BasicInheritingTextStyles.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/wireframe/src/spark/skins/wireframe/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.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/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>

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

--- frameworks/projects/spark/src/spark/components/SkinnableContainer.as
+++ frameworks/projects/spark/src/spark/components/SkinnableContainer.as
@@ -141,8 +141,6 @@
 /**
  *  @copy spark.components.supportClasses.GroupBase#style:downColor
  *
- *  @default undefined
- *
  *  @langversion 3.0
  *  @playerversion Flash 10.1
  *  @playerversion AIR 2.5


Updated version # for link release!

Updated version # for link release!

--- src/U.as
+++ src/U.as
@@ -25,7 +25,7 @@
 	 * @author Nicholas "PleasingFungus" Feinberg
 	 */
 	public class U {
-		public static const VERSION:String = "0.853";
+		public static const VERSION:String = "0.86";
 		public static const SAVE_VERSION:int = 5;

 		public static const BINARY_SAVES:Boolean = true;


Added StandardLib.parseDate().

Added StandardLib.parseDate().

Change-Id: I9785bbc8cfbb90f27049f3002baed67fcdf5a878

--- WeaveCore/src/weave/compiler/StandardLib.as
+++ WeaveCore/src/weave/compiler/StandardLib.as
@@ -19,6 +19,7 @@

 package weave.compiler
 {
+	import mx.formatters.DateFormatter;
 	import mx.formatters.NumberFormatter;
 	import mx.utils.ObjectUtil;

@@ -472,5 +473,34 @@
 		{
 			return Math.log(1 + normValue * factor) / Math.log(1 + factor);
 		}
+
+		/**
+		 * This will parse a date string into a Date object or a Number.
+		 * @param dateString The date string to parse.
+		 * @param formatString The format of the date string.
+		 * @param returnDateObject If set to true, a Date object will be returned.  Otherwise, a Number will be returned.
+		 * @return The result of parsing the date string.
+		 *
+		 * @see mx.formatters::DateFormatter#formatString
+		 * @see Date
+		 */
+		public static function parseDate(dateString:String, formatString:String = null, returnDateObject:Boolean = true):Object
+		{
+			var formattedDateString:String = dateString;
+			if (formatString)
+			{
+				_dateFormatter.formatString = formatString;
+				formattedDateString = _dateFormatter.format(dateString);
+			}
+			if (returnDateObject)
+				return DateFormatter.parseDateString(formattedDateString);
+			return Date.parse(formattedDateString);
+
+		}
+
+		/**
+		 * This is the DateFormatter used by parseDate().
+		 */
+		private static const _dateFormatter:DateFormatter = new DateFormatter();
 	}
 }


SessionStateLog now makes copies of computed diffs before saving to avoid errors that occur when session state objects are modified directly.

--- WeaveJS/src/weavejs/core/SessionStateLog.as
+++ WeaveJS/src/weavejs/core/SessionStateLog.as
@@ -42,7 +42,7 @@

 			_subject = subject;
 			_syncDelay = syncDelay;
-			_prevState = WeaveAPI.SessionManager.getSessionState(_subject); // remember the initial state
+			_prevState = JS.copyObject(WeaveAPI.SessionManager.getSessionState(_subject)); // remember the initial state
 			WeaveAPI.SessionManager.registerDisposableChild(_subject, this); // make sure this is disposed when _subject is disposed

 			var cc:ICallbackCollection = WeaveAPI.SessionManager.getCallbackCollection(_subject);
@@ -235,11 +235,11 @@
 			cc.delayCallbacks();

 			var state:Object = sm.getSessionState(_subject);
-			var forwardDiff:* = sm.computeDiff(_prevState, state);
+			var forwardDiff:* = JS.copyObject(sm.computeDiff(_prevState, state));
 			if (forwardDiff !== undefined)
 			{
 				var diffDuration:int = currentTime - (_syncTime + _triggerDelay);
-				var backwardDiff:* = sm.computeDiff(state, _prevState);
+				var backwardDiff:* = JS.copyObject(sm.computeDiff(state, _prevState));
 				var oldEntry:LogEntry;
 				var newEntry:LogEntry;
 				if (_undoActive)
@@ -400,7 +400,7 @@
 				_undoActive = delta < 0 && _savePending;
 				_redoActive = delta > 0 && _savePending;
 				if (!_savePending)
-					_prevState = sm.getSessionState(_subject);
+					_prevState = JS.copyObject(sm.getSessionState(_subject));
 				sm.getCallbackCollection(this).triggerCallbacks();
 			}
 		}


Add default parameter to support MXML.

Add default parameter to support MXML.

--- src/org/flintparticles/twoD/actions/TweenToCurrentPosition.as
+++ src/org/flintparticles/twoD/actions/TweenToCurrentPosition.as
@@ -63,7 +63,7 @@
 		 *
 		 * @param zone The zone for the particle's position when its energy is 0.
 		 */
-		public function TweenToCurrentPosition( zone : Zone2D )
+		public function TweenToCurrentPosition( zone : Zone2D = null )
 		{
 			_zone = zone;
 			priority = -10;


Changes on Mouse Manager for control, shift and alt keys

--- src/aerys/minko/type/MouseManager.as
+++ src/aerys/minko/type/MouseManager.as
@@ -12,6 +12,9 @@
 		private var _leftButtonDown		: Boolean			= false;
 		private var _middleButtonDown	: Boolean			= false;
 		private var _rightButtonDown	: Boolean			= false;
+
+		private var _ctrlEnabled		: Boolean			= false;
+		private var _shiftEnabled		: Boolean			= false;

 		private var _mouseDown			: Signal			= new Signal("mouseDown");
 		private var _mouseUp			: Signal			= new Signal("mouseUp");
@@ -58,6 +61,16 @@
 			return _mouseUp;
 		}

+		public function get ctrlEnabled() : Boolean
+		{
+			return _ctrlEnabled;
+		}
+
+		public function get shiftEnabled() : Boolean
+		{
+			return _shiftEnabled;
+		}
+
 		public function MouseManager()
 		{
 		}
@@ -88,38 +101,52 @@
 		{
 			_x = event.localX;
 			_y = event.localY;
+			_ctrlEnabled = event.ctrlKey;
+			_shiftEnabled = event.shiftKey;
 		}

 		private function mouseLeftDownHandler(event : MouseEvent) : void
 		{
 			_leftButtonDown = true;
 			_mouseDown.execute();
+			_ctrlEnabled = event.ctrlKey;
+			_shiftEnabled = event.shiftKey;
 		}

 		private function mouseLeftUpHandler(event : MouseEvent) : void
 		{
 			_leftButtonDown = false;
 			_mouseUp.execute();
+			_ctrlEnabled = event.ctrlKey;
+			_shiftEnabled = event.shiftKey;
 		}

 		private function mouseMiddleDownHandler(event : MouseEvent) : void
 		{
 			_rightButtonDown = true;
+			_ctrlEnabled = event.ctrlKey;
+			_shiftEnabled = event.shiftKey;
 		}

 		private function mouseMiddleUpHandler(event : MouseEvent) : void
 		{
 			_rightButtonDown = false;
+			_ctrlEnabled = event.ctrlKey;
+			_shiftEnabled = event.shiftKey;
 		}

 		private function mouseRightDownHandler(event : MouseEvent) : void
 		{
 			_rightButtonDown = true;
+			_ctrlEnabled = event.ctrlKey;
+			_shiftEnabled = event.shiftKey;
 		}

 		private function mouseRightUpHandler(event : MouseEvent) : void
 		{
 			_rightButtonDown = false;
+			_ctrlEnabled = event.ctrlKey;
+			_shiftEnabled = event.shiftKey;
 		}

 		public function pushCursor(cursor : String) : MouseManager


vast 3: by default, play ads in sequence, if no sequence is set - select a random ad to play

--- plugins/vastPlugin/src/com/kaltura/kdpfl/plugin/component/VastLinearAdProxy.as
+++ plugins/vastPlugin/src/com/kaltura/kdpfl/plugin/component/VastLinearAdProxy.as
@@ -35,6 +35,7 @@
 	import org.osmf.vast.media.VAST2TrackingProxyElement;
 	import org.osmf.vast.media.VASTMediaGenerator;
 	import org.osmf.vast.media.VASTTrackingProxyElement;
+	import org.osmf.vast.model.VAST2Translator;
 	import org.osmf.vast.model.VAST3Translator;
 	import org.osmf.vast.model.VASTDataObject;
 	import org.osmf.vast.model.VASTDocument;
@@ -87,6 +88,10 @@
 		 * for vast3 ad pods: the current translator index to create elements from
 		 */
 		private var _translatorIndex:int = 0;
+		/**
+		 * indicates we are playing sequenced ads, not a standalone ad
+		 */
+		private var _sequencedAds:Boolean = false;

 		/**
 		 * Constructor.
@@ -199,6 +204,9 @@
 				_loadTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, onLoadTimeout );
 				_vastDocument = (e.loadTrait as VASTLoadTrait).vastDocument;
 				_vastMediaGenerator = new VASTMediaGenerator(null, _mediaFactory);
+				if (_vastDocument.vastVersion == VASTDataObject.VERSION_3_0)
+					setStartingTranslatorIndex();
+
 				createMediaElements();
 			//In case there was an error parsing or loading the VAST xml
 			} else if (e.newState == LoadState.LOAD_ERROR) {
@@ -564,7 +572,8 @@
 				(_vastDocument.vastVersion == VASTDataObject.VERSION_3_0) &&
 				(_vastDocument is VAST3Translator) &&
 				(_vastDocument as VAST3Translator).vastObjects &&
-				((_vastDocument as VAST3Translator).vastObjects.length - 1)>=_translatorIndex);
+				((_vastDocument as VAST3Translator).vastObjects.length - 1)>=_translatorIndex &&
+				_sequencedAds);
 		}

 		/**
@@ -600,6 +609,38 @@
 			return _vastDocument;
 		}

+		/**
+		 * for vast3 ad pods: go over all translator, if there are sequenced ads, return their starting index,
+		 * otherwise select random ad
+		 *
+		 */
+		private function setStartingTranslatorIndex():void
+		{
+			if (_vastDocument is VAST3Translator)
+			{
+				var vastObjs:Array = (_vastDocument as VAST3Translator).vastObjects;
+				_sequencedAds = false;
+
+				if (vastObjs.length == 1)
+					return;
+
+				for (var i:int = 0; i<vastObjs.length; i++)
+				{
+					//ads are sorted by sequence property. If we encountered an ad with "sequence" value, start playing all ads in sequence
+					if ((vastObjs[i] as VAST2Translator).sequence)
+					{
+						_sequencedAds = true;
+						_translatorIndex = i;
+						return;
+					}
+				}
+
+				//if we got here we don't have sequenced ads, select random ad to play
+				_translatorIndex = Math.random() * (vastObjs.length);
+			}
+
+		}
+
 		// ==============================================
 		// IEventDispatcher methods
 		// ==============================================


Unused

Unused

--- collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/remoting/service/dataImport/DataImportConflictProxy.as
+++ collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/remoting/service/dataImport/DataImportConflictProxy.as
@@ -1,14 +0,0 @@
-/**
- * Generated by Gas3 v2.3.0 (Granite Data Services).
- *
- * NOTE: this file is only generated if it does not exist. You may safely put
- * your custom code here.
- */
-
-package org.openforis.collect.remoting.service.dataImport {
-
-    [Bindable]
-    [RemoteClass(alias="org.openforis.collect.remoting.service.dataImport.DataImportConflictProxy")]
-    public class DataImportConflictProxy extends DataImportConflictProxyBase {
-    }
-}


get MXMLBeadViewBase up and running.  Allows Views to be specified in MXML

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/MXMLBeadViewBase.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/MXMLBeadViewBase.as
@@ -18,14 +18,17 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.core
 {
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+
 	import mx.states.State;

 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.IStrand;
-    import org.apache.flex.core.ValuesManager;
-    import org.apache.flex.events.Event;
-    import org.apache.flex.events.ValueChangeEvent;
-    import org.apache.flex.utils.MXMLDataInterpreter;
+	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.ValueChangeEvent;
+	import org.apache.flex.utils.MXMLDataInterpreter;

     [DefaultProperty("mxmlContent")]

@@ -66,12 +69,12 @@
          */
         override public function set strand(value:IStrand):void
         {
+            super.strand = value;
             // each MXML file can also have styles in fx:Style block
             ValuesManager.valuesImpl.init(this);

             MXMLDataInterpreter.generateMXMLProperties(this, mxmlProperties);

-            super.strand = value;
             dispatchEvent(new Event("strandChanged"));
             MXMLDataInterpreter.generateMXMLInstances(this, IParent(value), MXMLDescriptor);

@@ -83,7 +86,7 @@
          *  @private
          *  Needed for databinding expressions
          */
-        protected function get strand():IStrand
+        public function get strand():IStrand
         {
             return _strand;
         }
@@ -92,7 +95,7 @@
         /**
          *  The model object.
          */
-        protected function get model():Object
+        public function get model():Object
         {
             return _strand["model"];
         }
@@ -310,5 +313,31 @@
             return null;
         }

-   }
+        /**
+         *  The parent of the children.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        public function get contentView():DisplayObjectContainer
+        {
+            return _strand as DisplayObjectContainer;
+        }
+
+        /**
+         *  The host component, which can resize to different slots.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        public function get resizableView():DisplayObject
+        {
+            return _strand as DisplayObject;
+        }
+
+    }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 18635
Author:   aharui@adobe.com
Date:     2010-11-17T00:18:36.469040Z

Log Message:
-----------
Add estimatedSizes to the layout infrastructure to better deal with text reflow.
Add new events to layout infrastructure to deal with caching of size information

QE notes: New APIs and Interfaces
Doc notes: New APIs and interfaces
Bugs: SDK-27226, SDK-26155, SDK-25483, SDK-23621, SDK-27225, SDK-26993, SDK-25535, SDK-25521
Reviewer: Evtim
Tests run: checkintests mustella full run
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.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/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/basicTests/spark/scripts/FormTestScript.mxml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.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/spark/src/spark/layouts/supportClasses/LayoutBase.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/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.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/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as
+++ frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as
@@ -362,6 +362,57 @@
         return parent == child;
     }

+    /**
+     *  @private
+     */
+    public function clone(client:ILayoutManagerClient = null):PriorityQueue
+    {
+        var level:int = client ? client.nestLevel : 0;
+
+        var pq:PriorityQueue = new PriorityQueue();
+        var i:int = Math.max(minPriority, level);
+        for (; i <= maxPriority; i++)
+        {
+            var obj:Object = arrayOfDictionaries[i];
+            if (obj)
+            {
+                var items:Dictionary = obj.items;
+                var d:Dictionary = new Dictionary(false);
+                for (var p:* in items)
+                {
+                    if (client)
+                    {
+                        if (!contains(DisplayObject(client), DisplayObject(p)))
+                            continue;
+                    }
+                    d[p] = true;
+                }
+                pq.addDictionary(d, obj.length, i);
+            }
+        }
+        return pq;
+    }
+
+    /**
+     *  @private
+     *  used by clone() to clone dictionaries
+     */
+    private function addDictionary(d:Dictionary, length:int, priority:int):void
+    {
+        arrayOfDictionaries[priority] = { length: length, items: d };
+        // Update our min and max priorities.
+        if (maxPriority < minPriority)
+        {
+            minPriority = maxPriority = priority;
+        }
+        else
+        {
+            if (priority < minPriority)
+                minPriority = priority;
+            if (priority > maxPriority)
+                maxPriority = priority;
+        }
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 15886
Author:   cframpto@adobe.com
Date:     2010-05-04T16:42:05.109868Z

Log Message:
-----------
Initial submit of Hans's grid code.  Added copyrights and included Version.as.  Added Grid, GridColumn, and GridItemRenderer components to the spark manifest.

Modified Paths:
--------------
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/GridItemRenderer.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/GridSelection.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/ITreeAdapter.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/flex4_5/frameworks/spark-manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/ListTreeView.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/GridEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/flex4_5/frameworks/projects/spark/src/spark/components/supportClasses/ObjectTreeAdapter.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as
@@ -0,0 +1,178 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.components.supportClasses
+{
+import flash.geom.Rectangle;
+
+import mx.events.CollectionEvent;
+import mx.events.CollectionEventKind;
+
+import spark.primitives.Rect;
+
+public class GridDimensions
+{
+    include "../../core/Version.as";
+
+    public function GridDimensions()
+    {
+        super();
+    }
+
+    public var rowCount:int = 0;
+    public var columnCount:int = 0;
+
+    public var rowGap:Number = 0;
+    public var columnGap:Number = 0;
+
+    public var defaultRowHeight:Number = 32;
+    public var defaultColumnWidth:Number = 150;
+
+    public var fixedRowHeight:Number = NaN; // if specified, applies to all rows
+
+    // Unless setRowHeight is called, return the max cell height for this row
+    public function getRowHeight(row:int):Number
+    {
+        return defaultRowHeight;
+    }
+
+    public function setRowHeight(row:int, height:Number):void
+    {
+    }
+
+    public function getColumnWidth(col:int):Number
+    {
+        return defaultColumnWidth;
+    }
+
+    public function setColumnWidth(col:int, width:Number):void
+    {
+    }
+
+    public function getCellHeight(row:int, col:int):Number
+    {
+        return defaultRowHeight;
+    }
+
+    public function setCellHeight(row:int, col:int, height:Number):void
+    {
+    }
+
+    // TBD: provide optional return value (Rectangle) parameter
+    public function getCellBounds(row:int, col:int):Rectangle
+    {
+        // TBD: return null if row or col are out of bounds
+        return new Rectangle(col * (defaultColumnWidth + columnGap), row * (defaultRowHeight + rowGap), defaultColumnWidth, defaultRowHeight);
+    }
+
+    // TBD: provide optional return value (Rectangle) parameter
+    public function getRowBounds(row:int):Rectangle
+    {
+        if ((row < 0) || (row >= rowCount))
+            return null;  // TBD: return empty Rectangle instead
+
+        const firstCellR:Rectangle = getCellBounds(row, 0);
+        const lastCellR:Rectangle = getCellBounds(row, columnCount - 1);
+        const rowWidth:Number = lastCellR.x + lastCellR.width - firstCellR.x;
+        const rowHeight:Number = firstCellR.height;
+        return new Rectangle(firstCellR.x, firstCellR.y, rowWidth, rowHeight);
+    }
+
+    // TBD: provide optional return value (Rectangle) parameter
+    public function getColumnBounds(col:int):Rectangle
+    {
+        if ((col < 0) || (col >= columnCount))
+            return null;  // TBD: return empty Rectangle instead
+
+        const firstCellR:Rectangle = getCellBounds(0, col);
+        const lastCellR:Rectangle = getCellBounds(rowCount - 1, col);
+        const colWidth:Number = firstCellR.width;
+        const colHeight:Number = lastCellR.y + lastCellR.height - firstCellR.y;
+        return new Rectangle(firstCellR.x, firstCellR.y, colWidth, colHeight);
+    }
+
+    // returns -1 if there isn't one
+    public function getRowIndexAt(x:Number, y:Number):int
+    {
+        return y / (defaultRowHeight + rowGap);
+    }
+
+    // returns -1 if there isn't one
+    public function getColumnIndexAt(x:Number, y:Number):int
+    {
+        return x / (defaultColumnWidth + columnGap);
+    }
+
+    public function get contentWidth():Number
+    {
+        return (columnCount * (defaultColumnWidth + columnGap)) - columnGap;
+    }
+
+    public function get contentHeight():Number
+    {
+        return (rowCount * (defaultRowHeight + rowGap)) - rowGap;
+    }
+
+    public function insertRows(startRow:int, count:int):void
+    {
+    }
+
+    public function insertColumns(startColumn:int, count:int):void
+    {
+    }
+
+    public function removeRows(startRow:int, count:int):void
+    {
+    }
+
+    public function removeColumns(startColumn:int, count:int):void
+    {
+    }
+
+    public function moveRows(fromRow:int, toRow:int, count:int):void
+    {
+    }
+
+    public function moveColumns(fromCol:int, toCol:int, count:int):void
+    {
+    }
+
+    public function dataProviderCollectionChanged(event:CollectionEvent):Boolean
+    {
+        switch (event.kind)
+        {
+            case CollectionEventKind.ADD:    return dataProviderCollectionAdd(event);
+            case CollectionEventKind.REMOVE: return dataProviderCollectionRemove(event);
+
+            case CollectionEventKind.REPLACE:
+            case CollectionEventKind.MOVE:
+            case CollectionEventKind.REFRESH:
+            case CollectionEventKind.RESET:
+            case CollectionEventKind.UPDATE:
+                break;
+        }
+
+        return false;
+    }
+
+    private function dataProviderCollectionAdd(event:CollectionEvent):Boolean
+    {
+        rowCount +=  event.items.length;
+        return true;
+    }
+
+    private function dataProviderCollectionRemove(event:CollectionEvent):Boolean
+    {
+        rowCount -= event.items.length;
+        return true;
+    }
+}
+}


Fix FLEX-28247.  Editor should cause component to lose focus and save state before saving edited data

--- frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridItemEditor.as
@@ -460,6 +460,10 @@
         if (!validate())
             return false;

+        // set focus to DataGrid to force internal components to commit changes to
+        // their data properties.
+        dataGrid.setFocus();
+
         var newData:Object = value;
         var property:String;
         var data:Object = data;