Transferred from the Adobe Open Source Subversion Repository

Revision: 6725
Author:   jimurphy@adobe.com
Date:     2009-05-07T20:18:13.398180Z

Log Message:
-----------
Merged beta1 revisions 6693,6702,6706-6707,6716,6720-6721 -> trunk

Modified Paths:
--------------
<path kind="file" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/swf/AbstractFXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexFXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGParser.java</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/FXGTranscoder.java" copyfrom-rev="6707" action="A">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/build.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/LinearGradientFillNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/DelegateNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexTextGraphicNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/util/FileResolver.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexSpanNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/strokes/RadialGradientStrokeNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/LibraryNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/GradientGlowFilterNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/init/ValueInitializer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/AbstractFXGNode.java</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/dom/FXGNode.java" copyfrom-rev="6707" action="R">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/dom/FXGNode.java</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/swf/FXG2SWFTranscoder.java" copyfrom-rev="6707" action="A">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/swf/FXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/media/FXGTranscoder.java</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGDOMTraverser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/List.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/util/FXGResourceResolverFactory.java" copyfrom-rev="6707" action="R">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/util/FXGResourceResolverFactory.java</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGLogger.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/AbstractShapeNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/FilterNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/DefinitionNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/GradientBevelFilterNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/RadialGradientFillNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/BitmapFillNode.java</path>
<path kind="dir" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/util" copyfrom-rev="6707" action="A">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/util</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexResourceResolver.java</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/ResourceResolverFactory.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/MaskPropertyNode.java</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/ResourceResolver.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/AbstractCharacterTextNode.java</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGLoggerFactory.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/TransformNode.java</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/TextGraphicNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/sax/FXGSAXParser.java</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/FXG2SWFTranscoder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/FillNode.java</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/util/FXGLoggerFactory.java" copyfrom-rev="6707" action="R">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/util/FXGLoggerFactory.java</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/MaskingNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/ParagraphNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GroupNode.java</path>
<path kind="dir" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/dom" copyfrom-rev="6707" action="A">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/dom</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/util/FXGLogger.java" copyfrom-rev="6707" action="R">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/util/FXGLogger.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FlexParagraphNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GroupDefinitionNode.java</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/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/StrokeNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GraphicContentNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/strokes/LinearGradientStrokeNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/util/SystemLogger.java</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GraphicNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/MaskableNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/sax/FXGSAXScanner.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/TextNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/FXGCompiler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/SpanNode.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" copyfrom-path="/flex/sdk/branches/beta1/modules/fxgutils/src/java/com/adobe/fxg/util/FXGResourceResolver.java" copyfrom-rev="6707" action="R">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/util/FXGResourceResolver.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/util/AbstractLogger.java</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -193,7 +193,7 @@
         if (!_allowMultipleSelection)
         {
             if (!requiresSelection)
-                _proposedSelectedIndices = [NO_SELECTION];
+                _proposedSelectedIndices = [];
             else
                 _proposedSelectedIndices = [0];
             commitMultipleSelection();
@@ -218,7 +218,7 @@
         //properties stay in sync.
         if (!_selectedIndices && _selectedIndex >= 0)
         {
-            _selectedIndices = [_selectedIndex];
+            selectedIndices = [_selectedIndex];
             return _selectedIndex;
         }

@@ -303,7 +303,7 @@
     {
         if (!allowMultipleSelection)
             return null;
-
+
         return _selectedIndices;
     }

@@ -468,6 +468,22 @@
     //  Private Methods
     //
     //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Returns the index of the first selected item. In single
+     *  selection, this is just selectedIndex. In multiple
+     *  selection, this is the index of the first selected item.
+     */
+    private function getFirstSelectedIndex():Number
+    {
+        if (!allowMultipleSelection)
+            return selectedIndex;
+        else if (selectedIndices && selectedIndices.length > 0)
+            return selectedIndices[0];
+        else
+            return -1;
+    }

     /**
      *  @private
@@ -599,8 +615,9 @@
                     {
                         //we need to respect requiresSelection
                         if (!requiresSelection)
-                            return [NO_SELECTION];
-                        else return [selectedIndices[0]];
+                            return [];
+                        else
+                            return [selectedIndices[0]];
                     }
                     else
                     {
@@ -701,31 +718,24 @@
      */
     protected function item_clickHandler(event:MouseEvent):void
     {
+    	// TODO (jszeto) Clear the caret
         var newIndex:Number;
-        if (selectUponNavigation)
-        {
-            if (!allowMultipleSelection)
-            {
-                //Single selection case
-                newIndex = dataGroup.getElementIndex(event.currentTarget as IVisualElement);
-
-                //Check to see if we're deselecting the currently selected item
-                if (event.ctrlKey && selectedIndex == newIndex)
-                    selectedIndex = NO_SELECTION;
-                //Otherwise, select the new item
-                else
-                    selectedIndex = newIndex;
-            }
+        if (!allowMultipleSelection)
+        {
+            //Single selection case
+            newIndex = dataGroup.getElementIndex(event.currentTarget as IVisualElement);
+
+            //Check to see if we're deselecting the currently selected item
+            if (event.ctrlKey && selectedIndex == newIndex)
+                selectedIndex = NO_SELECTION;
+            //Otherwise, select the new item
             else
-            {
-                //Multiple selection is handled by the helper method below
-                selectedIndices = calculateSelectedIndicesInterval(event.currentTarget as IVisualElement, event.shiftKey, event.ctrlKey);
-            }
-        }
-        else
-        {
-            newIndex = dataGroup.getElementIndex(event.currentTarget as IVisualElement);
-            handleCaretChange(newIndex, true);
+                selectedIndex = newIndex;
+        }
+        else
+        {
+            //Multiple selection is handled by the helper method below
+            selectedIndices = calculateSelectedIndicesInterval(event.currentTarget as IVisualElement, event.shiftKey, event.ctrlKey);
         }
     }

@@ -809,16 +819,22 @@
             return;

         var currentIndex:Number;
+
         if (allowMultipleSelection && selectedIndices && selectedIndices.length > 0)
             currentIndex = selectedIndices[selectedIndices.length - 1];
         else
             currentIndex = selectedIndex;

-        //Delegate to the layout to tell us what the next item is we should select or focus into.
-	    // TODO (jszeto) At some point we should refactor this so we don't depend on layout
-	    // for keyboard handling. If layout doesn't exist, then use some other keyboard handler
+        // Delegate to the layout to tell us what the next item is we should select or focus into.
+        // TODO (jszeto) At some point we should refactor this so we don't depend on layout
+        // for keyboard handling. If layout doesn't exist, then use some other keyboard handler
         var proposedNewIndex:int = (selectUponNavigation) ? layout.getDestinationIndex(navigationUnit, currentIndex)
             : layout.getDestinationIndex(navigationUnit, currentCaretIndex);
+
+        // TODO (jszeto) proposedNewIndex depends on CTRL key
+        // move CTRL key logic into single selection
+        // add SPACE logic - add to selection for multi-select or change selection for single-select
+

         // Note that the KeyboardEvent is canceled even if the current selected or in focus index
         // doesn't change because we don't want another component to start handling these
@@ -827,47 +843,41 @@
             return;
         event.preventDefault();

-        if (selectUponNavigation)
-        {
-            if (allowMultipleSelection && event.shiftKey && selectedIndices)
+        // Contiguous multi-selection action - create the new selection
+        // interval.
+        if (allowMultipleSelection && event.shiftKey && selectedIndices)
+        {
+            var startIndex:Number = getFirstSelectedIndex();
+            var newInterval:Array = [];
+            var i:int;
+            if (startIndex <= proposedNewIndex)
             {
-                var newInterval:Array = [];
-                var i:int;
-                //contiguous multi-selection action - create the new selection
-                //interval
-                if (selectedIndex <= proposedNewIndex)
+                for (i = startIndex; i <= proposedNewIndex; i++)
                 {
-                    for (i = selectedIndex; i <= proposedNewIndex; i++)
-                    {
-                        newInterval.push(i);
-                    }
+                    newInterval.push(i);
                 }
-                else
+            }
+            else
+            {
+                for (i = startIndex; i >= proposedNewIndex; i--)
                 {
-                    for (i = selectedIndex; i >= proposedNewIndex; i--)
-                    {
-                        newInterval.push(i);
-                    }
+                    newInterval.push(i);
                 }
-                selectedIndices = newInterval;
-                ensureItemIsVisible(proposedNewIndex);
             }
-            else
-            {
-                //simple new selection
-                selectedIndex = proposedNewIndex;
-                ensureItemIsVisible(proposedNewIndex);
-            }
-        }
+            selectedIndices = newInterval;
+            ensureItemIsVisible(proposedNewIndex);
+        }
+        // Entering the caret state with the Ctrl key down
+        else if (event.ctrlKey)
+        {
+            handleCaretChange(proposedNewIndex, true);
+            ensureItemIsVisible(proposedNewIndex);
+        }
+        // Its just a new selection action
         else
         {
-            //Handle the focus change of the items so that the currentCaretIndex property
-            //gets updated and the itemFocusChanged event dispatches.
-            if(event.ctrlKey)
-            {
-                handleCaretChange(proposedNewIndex, true);
-                ensureItemIsVisible(proposedNewIndex);
-            }
+            selectedIndex = proposedNewIndex;
+            ensureItemIsVisible(proposedNewIndex);
         }
     }


Include the offending message when reporting a short frame

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

--- src/as/com/threerings/presents/client/Communicator.as
+++ src/as/com/threerings/presents/client/Communicator.as
@@ -230,7 +230,7 @@
             Log.getLog(this).warning(
                 "Beans! We didn't fully read a frame, surely there's " +
                 "a bug in some streaming code. " +
-                "[bytesLeftOver=" + frameData.bytesAvailable + "].");
+                "[bytesLeftOver=" + frameData.bytesAvailable + ", msg=" + msg + "].");
         }

         if (_omgr != null) {


Let's do keywork substitution on the actionscript; it's got all those purty $Id$ tags, too.

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

--- src/as/com/threerings/presents/util/SafeSubscriber.as
+++ src/as/com/threerings/presents/util/SafeSubscriber.as
@@ -1,5 +1,5 @@
 //
-// $Id: SafeSubscriber.java 4602 2007-02-24 00:39:27Z mdb $
+// $Id$
 //
 // Narya library - tools for developing networked games
 // Copyright (C) 2002-2007 Three Rings Design, Inc., All Rights Reserved


Re-declare SUCCESS so that it can be referred to as ChatCodes.SUCCESS.
Setting up a prototype const doesn't work, which is possibly a compiler bug.

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

--- src/as/com/threerings/crowd/chat/data/ChatCodes.as
+++ src/as/com/threerings/crowd/chat/data/ChatCodes.as
@@ -33,6 +33,10 @@
  */
 public class ChatCodes extends InvocationCodes
 {
+    // TODO: Fucking hell, this sucks balls. It'd be nice if we didn't
+    // have to do this, I tried making SUCCESS prototype const in InvCodes....
+    public static const SUCCESS :String = InvocationCodes.SUCCESS;
+
     /** The message identifier for a chat notification message. */
     public static const CHAT_NOTIFICATION :String = "chat";


Removed debug logging I had intentionally left in.

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@471 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/ezgame/client/EZGamePanel.as
+++ src/as/com/threerings/ezgame/client/EZGamePanel.as
@@ -84,9 +84,6 @@
     {
         super.updateDisplayList(uw, uh);

-// TODO: debugging. Remove.
-        trace("UpdateDisplayList: " + uw + ":" + _gameView.width + ", " +
-            uh + ":" + _gameView.height);
         backend.sizeChanged();
     }


removed hack

removed hack

--- WeaveJS/src/WeaveJS.as
+++ WeaveJS/src/WeaveJS.as
@@ -76,10 +76,10 @@
 			var window:Object = JS.global;

 			// TEMPORARY HACK - omit keySet filter
-			var joinColumns:Function = ColumnUtils.joinColumns;
-			ColumnUtils['joinColumns'] = function(columns:Array, dataType:Object = null, allowMissingData:Boolean = false):Array {
-				return joinColumns.call(ColumnUtils, columns, dataType, allowMissingData);
-			};
+//			var joinColumns:Function = ColumnUtils.joinColumns;
+//			ColumnUtils['joinColumns'] = function(columns:Array, dataType:Object = null, allowMissingData:Boolean = false):Array {
+//				return joinColumns.call(ColumnUtils, columns, dataType, allowMissingData);
+//			};

 			if (window.opener && window.opener[WEAVE_EXTERNAL_TOOLS] && window.opener[WEAVE_EXTERNAL_TOOLS][window.name])
 			{


More rigorous testing for status values.

--- src/tests/TestHistory.as
+++ src/tests/TestHistory.as
@@ -33,12 +33,20 @@

 		[Test]
 		public function testStepForwardNoHistory():void {
-			_testHistory.stepForward();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			_testHistory.stepForward();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertFalse(_testHistory.canStepForward);
+			Assert.assertFalse(_testHistory.canStepBackward);

 		}
 		[Test]
 		public function testStepBackwardNoHistory():void {
-			_testHistory.stepBackward();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			_testHistory.stepBackward();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertFalse(_testHistory.canStepForward);
+			Assert.assertFalse(_testHistory.canStepBackward);

 		}

@@ -53,17 +61,22 @@
 			Assert.assertEquals(_testHistory.currentPosition, 0);
 			_testHistory.fastForward();
 			Assert.assertEquals(_testHistory.currentPosition, 2);
+			Assert.assertFalse(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
 		}

 		[Test]
 		// Ensure numberOfHistoryItems equals the number of items in history
-		public function testGet_numberOfHistoryItems():void {
+		public function testAddItems():void {
 			_testHistory.push(new UndoableCommand());
 			_testHistory.push(new UndoableCommand());
 			_testHistory.push(new UndoableCommand());
 			_testHistory.push(new UndoableCommand());
 			Assert.assertEquals(_testHistory.numberOfHistoryItems, 4);
+			Assert.assertEquals(_testHistory.currentPosition, 4);
+			Assert.assertFalse(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);

 		}

@@ -78,6 +91,8 @@
 			_testHistory.rewind();
 			Assert.assertEquals(_testHistory.numberOfHistoryItems, 4);
 			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertFalse(_testHistory.canStepBackward);
 		}

 		[Test]
@@ -91,6 +106,8 @@
 			_testHistory.push(new UndoableCommand());
 			Assert.assertTrue(_testHistory.canStepBackward);
 			_testHistory.rewind();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertEquals(_testHistory.numberOfHistoryItems, 4);
 			Assert.assertFalse(_testHistory.canStepBackward);
 			Assert.assertFalse(_testHistory.canStepBackward);
 			Assert.assertFalse(_testHistory.canStepBackward);
@@ -105,6 +122,8 @@
 			_testHistory.push(new UndoableCommand());
 			Assert.assertFalse(_testHistory.canStepForward);
 			_testHistory.rewind();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertEquals(_testHistory.numberOfHistoryItems, 3);
 			Assert.assertTrue(_testHistory.canStepForward);
 			Assert.assertTrue(_testHistory.canStepForward);
 			Assert.assertTrue(_testHistory.canStepForward);
@@ -122,26 +141,52 @@
 			_testHistory.push(new UndoableCommand());
 			_testHistory.push(new UndoableCommand());
 			Assert.assertEquals(_testHistory.currentPosition, 6);
+			Assert.assertFalse(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
 			_testHistory.stepBackward();
 			Assert.assertEquals(_testHistory.currentPosition, 5);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
 			_testHistory.stepBackward();
 			Assert.assertEquals(_testHistory.currentPosition, 4);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
 			_testHistory.stepBackward();
 			Assert.assertEquals(_testHistory.currentPosition, 3);
-			_testHistory.stepBackward();
-			Assert.assertEquals(_testHistory.currentPosition, 2);
-			_testHistory.stepBackward();
-			Assert.assertEquals(_testHistory.currentPosition, 1);
-			_testHistory.stepBackward();
-			Assert.assertEquals(_testHistory.currentPosition, 0);
-			_testHistory.stepForward();
-			Assert.assertEquals(_testHistory.currentPosition, 1);
-			_testHistory.stepForward();
-			Assert.assertEquals(_testHistory.currentPosition, 2);
-			_testHistory.stepBackward();
-			Assert.assertEquals(_testHistory.currentPosition, 1);
-			_testHistory.stepBackward();
-			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
+			_testHistory.stepBackward();
+			Assert.assertEquals(_testHistory.currentPosition, 2);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
+			_testHistory.stepBackward();
+			Assert.assertEquals(_testHistory.currentPosition, 1);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
+			_testHistory.stepBackward();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertFalse(_testHistory.canStepBackward);
+			_testHistory.stepBackward();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertFalse(_testHistory.canStepBackward);
+			_testHistory.stepForward();
+			Assert.assertEquals(_testHistory.currentPosition, 1);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
+			_testHistory.stepForward();
+			Assert.assertEquals(_testHistory.currentPosition, 2);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
+			_testHistory.stepBackward();
+			Assert.assertEquals(_testHistory.currentPosition, 1);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertTrue(_testHistory.canStepBackward);
+			_testHistory.stepBackward();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertTrue(_testHistory.canStepForward);
+			Assert.assertFalse(_testHistory.canStepBackward);
 		}

 		[Test]
@@ -161,17 +206,23 @@
 			// Note it should wipe TWO commands from history,
             // replacing the first with new
 			Assert.assertEquals(_testHistory.currentPosition, 3);
-			_testHistory.rewind();
-			_testHistory.push(new UndoableCommand());
-			Assert.assertEquals(_testHistory.currentPosition, 1);
-
-
-		}
-
-
-		[Test]
-		// Ensure pushing a command to the middle of the
-		// history, wipes subsequent history
+			Assert.assertTrue(_testHistory.canStepBackward);
+			Assert.assertFalse(_testHistory.canStepForward);
+			_testHistory.rewind();
+			Assert.assertFalse(_testHistory.canStepBackward);
+			Assert.assertTrue(_testHistory.canStepForward);
+			_testHistory.push(new UndoableCommand());
+			Assert.assertEquals(_testHistory.currentPosition, 1);
+			Assert.assertTrue(_testHistory.canStepBackward);
+			Assert.assertFalse(_testHistory.canStepForward);
+
+
+		}
+
+
+		[Test]
+		// Test forward/back/position settings while
+		// moving backwards & forwards
 		public function testComprehensive():void {
 			Assert.assertEquals(_testHistory.currentPosition, 0);
 			Assert.assertFalse(_testHistory.canStepBackward);
@@ -191,6 +242,5 @@
 			Assert.assertFalse(_testHistory.canStepForward);
 			Assert.assertTrue(_testHistory.canStepBackward);
 		}
-
 	}
 }


minor optimization to dependency render

minor optimization to dependency render

--- fp9/src/as3isolib/display/renderers/DefaultSceneLayoutRenderer.as
+++ fp9/src/as3isolib/display/renderers/DefaultSceneLayoutRenderer.as
@@ -93,12 +93,9 @@
 				dependency[objA] = behind;
 			}

-			// Place the children into a sorted array, using dependency ordering
-			var sortedChildren:Array = [];
-
-			// IIsoDisplayObject -> Boolean, true signifies it's already been put in the display list
+			// Set the childrens' depth, using dependency ordering
+			var depth:uint = 0;
 			var visited:Dictionary = new Dictionary();
-
 			var place:Function = function(obj:IIsoDisplayObject):void
 			{
 				if (visited[obj])
@@ -107,20 +104,14 @@

 				for each(var inner:IIsoDisplayObject in dependency[obj])
 					place(inner);
-				sortedChildren.push(obj);
+
+				scene.setChildIndex(obj, depth);
+				++depth;
 			};

 			for each(var obj:IIsoDisplayObject in children)
 			{
 				place(obj);
-			}
-
-			// Update the scene's ordering
-			for (i = 0; i < max; ++i)
-			{
-				var child:IIsoDisplayObject = IIsoDisplayObject(sortedChildren[i]);
-				if (child.depth != i)
-					scene.setChildIndex(child, i);
 			}

 			// DEBUG OUTPUT


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.collections
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17360
Author:   chiedozi@adobe.com
Date:     2010-08-18T00:07:57.520197Z

Log Message:
-----------
ViewNavigator now executes navigation operations a frame later to allow renderers to properly redraw themselves before creating a view (SDK-27068).
Refactored some of the session persistence logic out of the application classes into ViewNavigatorBase.
The label, icon and activeView properties now exist on ViewNavigatorBase

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

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/View.as
+++ frameworks/projects/mobilecomponents/src/spark/components/View.as
@@ -186,6 +186,7 @@

     private var _overlayControls:Boolean = false;

+    [Inspectable(category="General", defaultValue="false")]
     /**
      *  Determines the way the view's navigator's ui controls
      *  should lay out in relation to the view content.  If
@@ -224,6 +225,7 @@
     //----------------------------------
     //  desctructionPolicy
     //----------------------------------
+
     [Inspectable(category="General", enumeration="auto,none", defaultValue="auto")]
     /**
      *  Defines the destruction policy the view's navigator should use
@@ -283,6 +285,7 @@
     //----------------------------------
     private var _actionBarVisible:Boolean = true;

+    [Inspectable(category="General", defaultValue="true")]
     /**
      *  Flag indicating whether a view should show the action bar or not.
      *  This doesn't necessarily correlate to the visible property of the
@@ -476,7 +479,8 @@
 	//  tabBarVisible
 	//----------------------------------
 	private var _tabBarVisible:Boolean = true;
-
+
+    [Inspectable(category="General", defaultValue="true")]
 	/**
 	 *  Flag indicating whether a view should show the action bar or not.
 	 *  This doesn't necessarily correlate to the visible property of the


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.accessibility
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/mx/src/mx/containers/ApplicationControlBar.as
+++ frameworks/projects/mx/src/mx/containers/ApplicationControlBar.as
@@ -0,0 +1,288 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2004-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.containers
+{
+
+import flash.events.Event;
+import mx.core.Application;
+import mx.core.mx_internal;
+import mx.styles.IStyleClient;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Styles
+//--------------------------------------
+
+/**
+ *  Alpha values used for the background fill of the container.
+ *  The default value is [0,0].
+ */
+[Style(name="fillAlphas", type="Array", arrayType="Number", inherit="no")]
+
+/**
+ *  Colors used to tint the background of the container.
+ *  Pass the same color for both values for a "flat" looking control.
+ *  The default value is [0xFFFFFF,0xFFFFFF].
+ *
+ *
You should also set the fillAlphas property to
+ *  a nondefault value because its default value
+ *  of [0,0] makes the colors invisible.

+ */
+[Style(name="fillColors", type="Array", arrayType="uint", format="Color", inherit="no")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+
+[Exclude(name="direction", kind="property")]
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+
+[Exclude(name="backgroundAlpha", kind="style")]
+[Exclude(name="backgroundAttachment", kind="style")]
+[Exclude(name="backgroundImage", kind="style")]
+[Exclude(name="backgroundSize", kind="style")]
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[IconFile("ApplicationControlBar.png")]
+
+/**
+ *  The ApplicationControlBar container holds components
+ *  that provide global navigation and application commands.
+ *  An ApplicationControlBar for an editor, for example, could include
+ *  Button controls for setting the font weight, a ComboBox control to select
+ *  the font, and a MenuBar control to select the edit mode. Typically, you
+ *  place an ApplicationControlBar container at the top of the application.
+ *
+ *
The ApplicationControlBar container can be in either of the following
+ *  modes:

+ *

+ *
Docked mode: The bar is always at the top of the application's
+ *      drawing area and becomes part of the application chrome.
+ *      Any application-level scroll bars don't apply to the component, so that
+ *      it always remains at the top of the visible area, and the bar expands
+ *      to fill the width of the application. To create a docked bar,
+ *      set the value of the dock property to
+ *      true.

+ *
+ *
Normal mode: The bar can be placed anywhere in the application,
+ *      gets sized and positioned just like any other component,
+ *      and scrolls with the application.
+ *      To create a normal bar, set the value of the dock property to
+ *      false (default).

+ *

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

+ *

+ *

+ *           Characteristic
+ *           Description
+ *

+ *

+ *           Default size
+ *           The height is the default or explicit height of the tallest child, plus the top and bottom padding of the container.
+ *               In normal mode, the width is large enough to hold all of its children at the default or explicit width of the children, plus any horizontal gap between the children, plus the left and right padding of the container. In docked mode, the width equals the application width.
+ *               If the application is not wide enough to contain all the controls in the ApplicationControlBar container, the bar is clipped.
+ *

+ *

+ *           Default padding
+ *           5 pixels for the top value.
+ *
4 pixels for the bottom value.
+ *
8 pixels for the left and right values.

+ *
+ *

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:ApplicationControlBar> tag
+ *  inherits all of the tag attributes of its superclass, and adds the
+ *  following tag attributes.
+ *  Unlike the ControlBar container, it is possible to set the
+ *  backgroundColor style for an ApplicationControlBar
+ *  container.

+ *
+ *

+ *  <mx:ApplicationControlBar
+ *    Properties
+ *    dock="false|true"
+ *
+ *    Styles
+ *    fillAlphas="[0, 0]"
+ *    fillColors="[0xFFFFFF, 0xFFFFFF]"
+ *    >
+ *    ...
+ *      child tags
+ *    ...
+ *  </mx:ApplicationControlBar>
+ *

+ *
+ *  @includeExample examples/SimpleApplicationControlBarExample.mxml
+ */
+public class ApplicationControlBar extends ControlBar
+{
+	include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  Whether the value of the dock property has changed.
+	 */
+	private var dockChanged:Boolean = false;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function ApplicationControlBar()
+	{
+		super();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  dock
+	//----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the dock property.
+	 */
+	private var _dock:Boolean = false;
+
+	[Inspectable(category="General", enumeration="false,true", defaultValue="false")]
+	[Bindable("dockChanged")]
+
+	/**
+	 *  If true, specifies that the ApplicationControlBar should be docked to the
+	 *  top of the application. If false, specifies that the ApplicationControlBar
+	 *  gets sized and positioned just like any other component.
+	 *
+	 *  @default false
+	 */
+	public function get dock():Boolean
+	{
+		return _dock;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set dock(value:Boolean):void
+	{
+		if (_dock != value)
+		{
+			_dock = value;
+			dockChanged = true;
+			invalidateProperties();
+
+			dispatchEvent(new Event("dockChanged"));
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden properties
+	//
+	//--------------------------------------------------------------------------
+
+    [Inspectable(category="General", enumeration="true,false", defaultValue="true")]
+
+	//----------------------------------
+	//  enabled
+	//----------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function set enabled(value:Boolean):void
+	{
+		var oldBlocker:Object = blocker;
+
+		super.enabled = value;
+
+		if (blocker && blocker != oldBlocker)
+		{
+			if (blocker is IStyleClient)
+			{
+				IStyleClient(blocker).setStyle("borderStyle",
+											   "applicationControlBar");
+			}
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override protected function commitProperties():void
+	{
+		super.commitProperties();
+
+		if (dockChanged)
+		{
+			dockChanged = false;
+
+			if (parent is Application)
+				Application(parent).dockControlBar(this, _dock);
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//   methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  This method forces a recaldculation of docking the AppControlBar.
+	 */
+	public function resetDock(value:Boolean):void
+	{
+		_dock = !value
+		dock = value;
+	}
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10606
Author:   egeorgie@adobe.com
Date:     2009-09-25T23:01:50.455888Z

Log Message:
-----------
White space cleanup.

Doc notes: None
Bugs: None
Reviewer: Evtim
Tests run: build
Is noteworthy for integration: Nope

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/MatrixUtil.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/testWheel.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollBar.as
+++ frameworks/projects/mx/src/mx/controls/scrollClasses/ScrollBar.as
@@ -1229,7 +1229,7 @@
         if (cacheAsBitmap)
         {
             cacheHeuristic = false;
-            if(scrollThumb)
+            if (scrollThumb)
             	scrollThumb.cacheHeuristic = false;
         }


FLEX-21609 Changed set data to use internal/user defined date parse function when specified rather than Date.parse

--- frameworks/projects/mx/src/mx/controls/DateField.as
+++ frameworks/projects/mx/src/mx/controls/DateField.as
@@ -837,7 +837,10 @@
         else if (_listData is ListData && ListData(_listData).labelField in _data)
             newDate = _data[ListData(_listData).labelField];
         else if (_data is String)
-            newDate = new Date(Date.parse(data as String));
+			if (_parseFunction != null)
+           	    newDate = _parseFunction(data as String, formatString);
+			else
+				newDate = new Date(Date.parse(data as String));
         else
             newDate = _data as Date;


match the formatting

match the formatting

--- actionscript/src/com/freshplanet/ane/AirFacebook/Facebook.as
+++ actionscript/src/com/freshplanet/ane/AirFacebook/Facebook.as
@@ -1,8 +1,9 @@
 package com.freshplanet.ane.AirFacebook {
+
 import com.freshplanet.ane.AirFacebook.appevents.FBEvent;
 import com.freshplanet.ane.AirFacebook.share.FBAppInviteContent;
-    import com.freshplanet.ane.AirFacebook.share.FBGameRequestContent;
-    import com.freshplanet.ane.AirFacebook.share.FBShareLinkContent;
+import com.freshplanet.ane.AirFacebook.share.FBGameRequestContent;
+import com.freshplanet.ane.AirFacebook.share.FBShareLinkContent;

 import flash.desktop.InvokeEventReason;


Transferred from the Adobe Open Source Subversion Repository

Revision: 9177
Author:   jimurphy@adobe.com
Date:     2009-08-07T21:15:07.894169Z

Log Message:
-----------
Merged 3.4 revisions 8630,8660,8683,8735,8750,8753,8755,8757,8759,8764,8776,8798,8821,8824,8837,8862,8911,8946,8949,8962,8965,9026,9109,9131,9138-9139,9147 -> trunk

integrates:
player: 10.0.32.18
AIR kit: 1.5.2.8870 (20090721ap)

checkintests: pass

(btw: I'm not happy about doing this on a Friday PM!)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/air/air_version.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/BrowserManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Install Flash Player 10 UB.dmg</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/mac/AIR Integration Kit.tbz2</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPMultiService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/player/10/playerglobal.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AsyncResponder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLDecoder.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/flashplayer.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/air/win/AIR Integration Kit.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/libflashplayer.so.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/FlashPlayer.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridHeader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Flash Player.app.zip</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/HTTPService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 Plugin.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/mxml/RemoteObject.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/AbstractWebService.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/XMLDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 ActiveX.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/MessagePerformanceUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/MessageAgent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/mxml/IMXMLSupport.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/ISOAPDecoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/install_flash_player_10_linux.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SimpleXMLEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/IXMLSchemaInstance.as</path>

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

--- frameworks/projects/mx/src/mx/controls/TextInput.as
+++ frameworks/projects/mx/src/mx/controls/TextInput.as
@@ -2350,6 +2350,13 @@
             case Keyboard.ENTER:
             {
                 dispatchEvent(new FlexEvent(FlexEvent.ENTER));
+
+                // The user's enter handler may have modified the text.
+                // Make sure _text and _htmlText are commited to the textField
+                // before the change handler for the ENTER overwrites
+                // _text and _htmlText with the values in textField.
+                if (textChanged || htmlTextChanged)
+                    validateNow();
                 break;
             }
         }


More helpful error messages when parameterized test initialization fails.

--- FlexUnit4/src/org/flexunit/runners/Parameterized.as
+++ FlexUnit4/src/org/flexunit/runners/Parameterized.as
@@ -322,6 +322,9 @@
 					field = klassInfo.getField( argument.value );

 					if ( field ) {
+						if (!field.isStatic)
+							throw Error("test parameters " + field.name + " must be static");
+
 						property = field.getObj( null );

 						if ( property is Array ) {
@@ -330,7 +333,11 @@
 						} else if ( property is IExternalDependencyData ) {
 							results = [];
 							results = results.concat( ( property as IExternalDependencyData ).data );
+						} else {
+							throw Error("invalid value for parameterized field " + field.name + ": " + property);
 						}
+					} else {
+						throw Error("unable to get parameters field " + argument.value);
 					}
 				}


Transferred from the Adobe Open Source Subversion Repository

Revision: 8393
Author:   jszeto@adobe.com
Date:     2009-07-06T20:46:27.558863Z

Log Message:
-----------
Updated FIXME comments

Changed some to TODOs, removed some and filed bugs for the remainder

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Deepa

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.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/supportClasses/SkinnableComponent.as</path>

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

--- frameworks/projects/framework/src/mx/geom/Transform.as
+++ frameworks/projects/framework/src/mx/geom/Transform.as
@@ -27,8 +27,13 @@
 use namespace mx_internal;

 /**
- *  FIXME (jszeto): comment
+ *  The mx.geom.Transform class adds synchronization support on top of the flash.geom.Transform class.
+ *  The class has a target property which is the IVisualElement that the Transform has been assigned to.
+ *  The IVisualElement implementations will typically set the target to themselves when the Transform
+ *  is assigned to their transform property.
  *
+ *  Changes to the Transform properties automatically get pushed to the target. Reading from the Transform
+ *  properties reads directly from the target's transform.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -37,202 +42,205 @@
  */
 public class Transform extends flash.geom.Transform
 {
-	/**
-	 *  FIXME (jszeto): comment
-	 *
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function Transform(src:DisplayObject = null)
-	{
-		if(src == null)
-			src = new Shape();
-		super(src);
-	}
-
-	//--------------------------------------------------------------------------
+    /**
+     *  Constructor
+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function Transform(src:DisplayObject = null)
+    {
+        if(src == null)
+            src = new Shape();
+        super(src);
+    }
+
+    //--------------------------------------------------------------------------
     //
     //  Overridden flash.geom.Transform Properties
     //
     //--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
-	override public function set colorTransform(value:ColorTransform):void
-	{
-		if (target && "$transform" in target) // UIComponent/UIMovieClip
-			target["$transform"]["colorTransform"] = value;
-		else if (target && "setColorTransform" in target)
-			target["setColorTransform"](value);
-		else
-			super.colorTransform = value;
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function get colorTransform():ColorTransform
-	{
-		if (target && "$transform" in target) // UIComponent/UIMovieClip
-			return target["$transform"]["colorTransform"];
-		else if (target && "displayObject" in target && target["displayObject"] != null)
-			return target["displayObject"]["transform"]["colorTransform"];
-		else
-			return super.colorTransform;
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function get concatenatedColorTransform():ColorTransform
-	{
-		if (target && "$transform" in target) // UIComponent/UIMovieClip
-			return target["$transform"]["concatenatedColorTransform"];
-		else if (target && "displayObject" in target && target["displayObject"] != null)
-			return target["displayObject"]["transform"]["concatenatedColorTransform"];
-		else
-			return super.concatenatedColorTransform;
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function get concatenatedMatrix():Matrix
-	{
-		if (target && "$transform" in target) // UIComponent/UIMovieClip
-			return target["$transform"]["concatenatedMatrix"];
-		else if (target && "displayObject" in target && target["displayObject"] != null)
-			return target["displayObject"]["transform"]["concatenatedMatrix"];
-		else
-			return super.concatenatedMatrix;
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function set matrix(value:Matrix):void
-	{
-		if (target is ILayoutElement)
-			ILayoutElement(target).setLayoutMatrix(value, true);
-		else
-			super.matrix = value;
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function get matrix():Matrix
-	{
-		if (target is ILayoutElement)
-			return ILayoutElement(target).getLayoutMatrix();
-		else
-			return super.matrix;
-	}
-
-	/*override public function set matrix3D(value:Matrix3D):void
-	{
-		if (target is ILayoutElement)
-			ILayoutElement(target).setLayoutMatrix3D(value, true);
-		else
-			super.matrix3D = value;
-	}*/
-
-	/**
-	 *  @private
-	 */
-	override public function get matrix3D():Matrix3D
-	{
-		if (target is ILayoutElement)
-			return ILayoutElement(target).getLayoutMatrix3D();
-		else
-			return super.matrix3D;
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function set perspectiveProjection(value:PerspectiveProjection):void
-	{
-		// FIXME (jszeto): !!!
-		var oldValue:PerspectiveProjection = super.perspectiveProjection;
-		super.perspectiveProjection = value;
-
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function get perspectiveProjection():PerspectiveProjection
-	{
-		if (target && "$transform" in target) // UIComponent/UIMovieClip
-			return target["$transform"]["perspectiveProjection"];
-		else if (target && "displayObject" in target && target["displayObject"] != null)
-			return target["displayObject"]["transform"]["perspectiveProjection"];
-		else
-			return super.perspectiveProjection;
-	}
-
-	/**
-	 *  @private
-	 */
-	override public function get pixelBounds():Rectangle
-	{
-		if (target && "$transform" in target) // UIComponent/UIMovieClip
-			return target["$transform"]["pixelBounds"];
-		else if (target && "displayObject" in target && target["displayObject"] != null)
-			return target["displayObject"]["transform"]["pixelBounds"];
-		else
-			return super.pixelBounds;
-	}
-
+    /**
+     *  @private
+     */
+    override public function set colorTransform(value:ColorTransform):void
+    {
+        if (target && "$transform" in target) // UIComponent/UIMovieClip
+            target["$transform"]["colorTransform"] = value;
+        else if (target && "setColorTransform" in target)
+            target["setColorTransform"](value);
+        else
+            super.colorTransform = value;
+    }
+
+    /**
+     *  @private
+     */
+    override public function get colorTransform():ColorTransform
+    {
+        if (target && "$transform" in target) // UIComponent/UIMovieClip
+            return target["$transform"]["colorTransform"];
+        else if (target && "displayObject" in target && target["displayObject"] != null)
+            return target["displayObject"]["transform"]["colorTransform"];
+        else
+            return super.colorTransform;
+    }
+
+    /**
+     *  @private
+     */
+    override public function get concatenatedColorTransform():ColorTransform
+    {
+        if (target && "$transform" in target) // UIComponent/UIMovieClip
+            return target["$transform"]["concatenatedColorTransform"];
+        else if (target && "displayObject" in target && target["displayObject"] != null)
+            return target["displayObject"]["transform"]["concatenatedColorTransform"];
+        else
+            return super.concatenatedColorTransform;
+    }
+
+    /**
+     *  @private
+     */
+    override public function get concatenatedMatrix():Matrix
+    {
+        if (target && "$transform" in target) // UIComponent/UIMovieClip
+            return target["$transform"]["concatenatedMatrix"];
+        else if (target && "displayObject" in target && target["displayObject"] != null)
+            return target["displayObject"]["transform"]["concatenatedMatrix"];
+        else
+            return super.concatenatedMatrix;
+    }
+
+    /**
+     *  @private
+     */
+    override public function set matrix(value:Matrix):void
+    {
+        if (target is ILayoutElement)
+            ILayoutElement(target).setLayoutMatrix(value, true);
+        else
+            super.matrix = value;
+    }
+
+    /**
+     *  @private
+     */
+    override public function get matrix():Matrix
+    {
+        if (target is ILayoutElement)
+            return ILayoutElement(target).getLayoutMatrix();
+        else
+            return super.matrix;
+    }
+
+    // FIXME (jszeto): Figure out why this throws an illegal override compiler error SDK-22046
+    /*override public function set matrix3D(value:Matrix3D):void
+    {
+        if (target is ILayoutElement)
+            ILayoutElement(target).setLayoutMatrix3D(value, true);
+        else
+            super.matrix3D = value;
+    }*/
+
+    /**
+     *  @private
+     */
+    override public function get matrix3D():Matrix3D
+    {
+        if (target is ILayoutElement)
+            return ILayoutElement(target).getLayoutMatrix3D();
+        else
+            return super.matrix3D;
+    }
+
+    /**
+     *  @private
+     */
+    override public function set perspectiveProjection(value:PerspectiveProjection):void
+    {
+        // TODO (jszeto): Implement this
+        var oldValue:PerspectiveProjection = super.perspectiveProjection;
+        super.perspectiveProjection = value;
+
+    }
+
+    /**
+     *  @private
+     */
+    override public function get perspectiveProjection():PerspectiveProjection
+    {
+        if (target && "$transform" in target) // UIComponent/UIMovieClip
+            return target["$transform"]["perspectiveProjection"];
+        else if (target && "displayObject" in target && target["displayObject"] != null)
+            return target["displayObject"]["transform"]["perspectiveProjection"];
+        else
+            return super.perspectiveProjection;
+    }
+
+    /**
+     *  @private
+     */
+    override public function get pixelBounds():Rectangle
+    {
+        if (target && "$transform" in target) // UIComponent/UIMovieClip
+            return target["$transform"]["pixelBounds"];
+        else if (target && "displayObject" in target && target["displayObject"] != null)
+            return target["displayObject"]["transform"]["pixelBounds"];
+        else
+            return super.pixelBounds;
+    }
+
     //--------------------------------------------------------------------------
     //
     //  Properties
     //
-    //--------------------------------------------------------------------------
-
-	private var _target:IVisualElement;
-
-	/**
-	 *  FIXME (jszeto): comment
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function set target(value:IVisualElement):void
-	{
-		if (value !== _target)
-			_target = value;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function get target():IVisualElement
-	{
-		return _target;
-	}
-
-	//--------------------------------------------------------------------------
+    //--------------------------------------------------------------------------
+
+    private var _target:IVisualElement;
+
+    /**
+     *  The IVisualElement with which the Transform will keep in synch.
+     *  The IVisualElement implementations will typically set the target to
+     *  themselves when the Transform is assigned to their transform property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function set target(value:IVisualElement):void
+    {
+        if (value !== _target)
+            _target = value;
+    }
+
+    /**
+     *  @private
+     */
+    public function get target():IVisualElement
+    {
+        return _target;
+    }
+
+    //--------------------------------------------------------------------------
     //
     //  Overridden flash.geom.Transform Methods
     //
     //--------------------------------------------------------------------------

-	override public function getRelativeMatrix3D(relativeTo:DisplayObject):Matrix3D
-	{
-		if (target && "$transform" in target) // UIComponent/UIMovieClip
-			return target["$transform"]["getRelativeMatrix3D"](relativeTo);
-		else if (target && "displayObject" in target && target["displayObject"] != null)
-			return target["displayObject"]["transform"]["getRelativeMatrix3D"](relativeTo);
-		else
-			return super.getRelativeMatrix3D(relativeTo);
-	}
+    override public function getRelativeMatrix3D(relativeTo:DisplayObject):Matrix3D
+    {
+        if (target && "$transform" in target) // UIComponent/UIMovieClip
+            return target["$transform"]["getRelativeMatrix3D"](relativeTo);
+        else if (target && "displayObject" in target && target["displayObject"] != null)
+            return target["displayObject"]["transform"]["getRelativeMatrix3D"](relativeTo);
+        else
+            return super.getRelativeMatrix3D(relativeTo);
+    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.rpc.soap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17753
Author:   klin@adobe.com
Date:     2010-09-17T22:01:57.619431Z

Log Message:
-----------
Fix for handling columns (IList) changes in GridDimensions. I implemented the columnsCollectionChanged handler in GridDimensions to handle all the collection events.

GridDimensions.as - When someone sets the columnCount, we should clear everything. Implemented columnsCollectionChanged(). Changed typicalCellWidths and typicalCellHeights to Vectors to make them easier to handle. Added a few helper functions to insert multiple values into vectors and to clear a vector. Also, fixed a small bug in getColumnIndexAt for the case where the column width is 0. Fixed up the rowCount setter to remove the excess rows.

Grid.as - Move setting columnCount from clearGridLayoutCache to commitProperties because it should only be set when the columns actually change. Add call to columnsCollectionChanged.

GridRowList.as, GridRowNode.as - Add support for column changes.

QE notes: No
Doc notes: No
Bugs: SDK-27569, SDK-27678
Reviewer: Hans
Tests run: checkintests, cyclone server
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridRowNode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridRowList.as</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -3010,8 +3010,10 @@
                 gridSelection.removeAll();
                 gridSelection.requireSelection = savedRequireSelection;
             }
-
-           clearGridLayoutCache(columnsChanged);
+
+           // make sure we have the right number of columns.
+           gridDimensions.columnCount = _columns ? _columns.length : 0;
+           clearGridLayoutCache(columnsChanged);

             if (!caretChanged)
                 initializeCaretPosition();
@@ -3669,8 +3671,10 @@
                 break;
             }
         }
-
-        gridDimensions.columnCount = _columns.length;
+
+        gridDimensions.columnsCollectionChanged(event);
+        if (dataProvider)
+            gridDimensions.rowCount = dataProvider.length;

         if (gridLayout)
             gridLayout.columnsCollectionChanged(event);
@@ -3712,7 +3716,6 @@

             // clearing the gridDimensions resets rowCount
             gridDimensions.rowCount = _dataProvider ? _dataProvider.length : 0;
-            gridDimensions.columnCount = _columns ? _columns.length : 0;
         }

         // Reset content size so scroller's viewport can be resized.  There


Transferred from the Adobe Open Source Subversion Repository

Revision: 8483
Author:   smgilson@adobe.com
Date:     2009-07-09T17:52:48.367800Z

Log Message:
-----------
Second checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Animate.as
+++ frameworks/projects/spark/src/spark/effects/Animate.as
@@ -66,7 +66,7 @@
  *  and adds the following tag attributes:

  *
  *

- *  <mx:Animate
+ *  <s:Animate
  *    Properties
  *    id="ID"
  *    disableLayout="false"


Transferred from the Adobe Open Source Subversion Repository

Revision: 2525
Author:   egeorgie@adobe.com
Date:     2008-07-18T21:22:19.726452Z

Log Message:
-----------
Fix line and path GE to take explicit width/height into account when calculating layout bounds.

Reviewed by Jason

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Line.as</path>

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

--- frameworks/projects/spark/src/spark/primitives/Path.as
+++ frameworks/projects/spark/src/spark/primitives/Path.as
@@ -368,7 +368,14 @@
 	        drawHeight = bounds.height;
         }

-        return _bounds.clone();
+        var result:Rectangle = _bounds.clone();
+        if (!isNaN(_explicitWidth))
+            result.width = _explicitWidth;
+
+        if (!isNaN(_explicitHeight))
+            result.height = _explicitHeight;
+
+        return result;
     }

     //----------------------------------
@@ -514,14 +521,6 @@
         _scaleX = _userScaleX;
         _scaleY = _userScaleY;

-        // If no width or height are specified, then we've already
-        // set ourselves to the preferredSize by resetting the scale.
-        if (isNaN(width) && isNaN(height))
-        {
-        	commitScaleAndRotation();
-            return actualSize;
-        }
-
         // TODO EGeorgie: arbitrary 2d transforms for paths
         if (isNaN(width))
             width = preferredSize.x;
@@ -530,8 +529,8 @@

         var w:Number = width;
         var h:Number = height;
-        var bw:Number = bounds.width;
-        var bh:Number = bounds.height;
+        var bw:Number = _bounds.width;
+        var bh:Number = _bounds.height;

         var stroke:IStroke = getStroke();
         if (!stroke)


update SpriteShader to use DiffuseShaderPart.getDiffuseColor() with the new 'uv' optional argument

--- src/aerys/minko/render/material/sprite/SpriteShader.as
+++ src/aerys/minko/render/material/sprite/SpriteShader.as
@@ -12,16 +12,20 @@

 	public class SpriteShader extends Shader
 	{
-		private var _uv	: SFloat	= null;
+        private var _diffuse    : DiffuseShaderPart;
+
+		private var _uv	        : SFloat;

 		public function SpriteShader()
 		{
 			super();
+
+            _diffuse = new DiffuseShaderPart(this);
 		}

 		override protected function initializeSettings(settings : ShaderSettings) : void
 		{
-			settings.blending = Blending.ALPHA;
+//			settings.blending = Blending.ALPHA;
 			settings.depthTest = DepthTest.LESS;
 		}

@@ -57,14 +61,7 @@

 		override protected function getPixelColor() : SFloat
 		{
-			var diffuseMap	: SFloat = meshBindings.getTextureParameter(
-				'diffuseMap',
-				meshBindings.getConstant("diffuseFiltering", SamplerFiltering.LINEAR),
-				meshBindings.getConstant("diffuseMipMapping", SamplerMipMapping.LINEAR),
-				meshBindings.getConstant("diffuseWrapping", SamplerWrapping.REPEAT)
-			);
-
-			return sampleTexture(diffuseMap, interpolate(_uv));
+			return _diffuse.getDiffuseColor(true, _uv);
 		}
 	}
 }


cleanup some compiler warnings

cleanup some compiler warnings

--- src/battlecode/client/viewer/render/DrawRobot.as
+++ src/battlecode/client/viewer/render/DrawRobot.as
@@ -40,7 +40,7 @@
         private var selected:Boolean = false;

         private var robotID:uint;
-        private var type:String;
+        private var robotType:String;
         private var team:String;
         private var location:MapLocation;
         private var direction:String;
@@ -52,21 +52,21 @@
         private var zombieTurns:uint = 0;
         private var viperTurns:uint = 0;

-        public function DrawRobot(robotID:uint, type:String, team:String, overrideSize:Number = 0) {
+        public function DrawRobot(robotID:uint, robotType:String, team:String, overrideSize:Number = 0) {
             this.robotID = robotID;
-            this.type = type;
+            this.robotType = robotType;
             this.team = team;
-            this.maxEnergon = RobotType.maxEnergon(type);
+            this.maxEnergon = RobotType.maxEnergon(robotType);
             this.movementDelay = 1;
-            this.hats = new Array();
-            this.hatImages = new Array();
+            this.hats = [];
+            this.hatImages = [];

             this.actions = new Vector.<DrawAction>();

             this.overrideSize = overrideSize;

             // set the unit avatar image
-            var avatarClass:Class = ImageAssets.getRobotAvatar(type, team);
+            var avatarClass:Class = ImageAssets.getRobotAvatar(robotType, team);
             this.imageCanvas = new UIComponent();
             this.image = new Image();
             this.image.source = avatarClass;
@@ -93,19 +93,19 @@
             this.broadcastAnimation = new BroadcastAnimation(0, team);
             this.addChild(broadcastAnimation);

-            this.explosionAnimation = new ExplosionAnimation(type);
+            this.explosionAnimation = new ExplosionAnimation(robotType);
             this.addChild(explosionAnimation);
         }

         public function clone():DrawObject {
-            var d:DrawRobot = new DrawRobot(robotID, type, team, overrideSize);
+            var d:DrawRobot = new DrawRobot(robotID, robotType, team, overrideSize);
             d.location = location;
             d.energon = energon;
             d.movementDelay = movementDelay;
             d.targetLocation = targetLocation;
             d.alive = alive;
             d.hats = hats.concat();
-            d.hatImages = new Array();
+            d.hatImages = [];
             d.zombieTurns = zombieTurns;
             d.viperTurns = viperTurns;

@@ -133,7 +133,7 @@
         }

         public function getType():String {
-            return type;
+            return robotType;
         }

         public function getTeam():String {
@@ -152,9 +152,9 @@
             return indicatorStrings[index];
         }

-        public function setType(type:String):void {
-            this.type = type;
-            this.image.source = ImageAssets.getRobotAvatar(type, team);
+        public function setType(robotType:String):void {
+            this.robotType = robotType;
+            this.image.source = ImageAssets.getRobotAvatar(robotType, team);
         }

         public function setLocation(location:MapLocation):void {
@@ -190,7 +190,7 @@

         public function attack(targetLocation:MapLocation):void {
             this.targetLocation = targetLocation;
-            this.addAction(new DrawAction(ActionType.ATTACKING, RobotType.attackDelay(type)));
+            this.addAction(new DrawAction(ActionType.ATTACKING, RobotType.attackDelay(robotType)));
         }

         public function spawn(delay:uint):void {
@@ -427,14 +427,16 @@
         ///////////////////////////////////////////////////////

         private function getImageSize(scale:Boolean = false):Number {
-            if (overrideSize)
+            if (overrideSize) {
                 return overrideSize;
-            return RenderConfiguration.getGridSize() * (scale ? getUnitScale(type) : 1.0);
+            }
+            return RenderConfiguration.getGridSize() * (scale ? getUnitScale() : 1.0);
         }

         private function getImageScale():Number {
-            if (overrideSize)
+            if (overrideSize) {
                 return 1.0;
+            }
             return RenderConfiguration.getScalingFactor();
         }

@@ -447,8 +449,8 @@
             return 0x000000;
         }

-        private function getUnitScale(type:String):Number {
-            switch (type) {
+        private function getUnitScale():Number {
+            switch (this.robotType) {
                 case RobotType.ZOMBIEDEN:
                     return 0.75;
                 default:
@@ -456,12 +458,8 @@
             }
         }

-        private function getUnitOffset(type:String):Number {
-            return 0;
-        }
-
-        private function directionToRotation(dir:String):int {
-            switch (dir) {
+        private function directionToRotation():int {
+            switch (this.direction) {
                 case Direction.NORTH:
                     return -90;
                 case Direction.NORTH_EAST:
@@ -483,8 +481,8 @@
             }
         }

-        private function directionOffsetX(dir:String):int {
-            switch (dir) {
+        private function directionOffsetX():int {
+            switch (this.direction) {
                 case Direction.NORTH_EAST:
                     return +1;
                 case Direction.NORTH_WEST:
@@ -506,8 +504,8 @@
             }
         }

-        private function directionOffsetY(dir:String):int {
-            switch (dir) {
+        private function directionOffsetY():int {
+            switch (this.direction) {
                 case Direction.NORTH_EAST:
                     return -1;
                 case Direction.NORTH_WEST:
@@ -533,14 +531,14 @@
             if (RenderConfiguration.showDiscrete()) {
                 return 0;
             }
-            return -1 * getImageSize() * directionOffsetX(direction) * (rounds / movementDelay);
+            return -1 * getImageSize() * directionOffsetX() * (rounds / movementDelay);
         }

         private function calculateDrawY(rounds:uint):Number {
             if (RenderConfiguration.showDiscrete()) {
                 return 0;
             }
-            return -1 * getImageSize() * directionOffsetY(direction) * (rounds / movementDelay);
+            return -1 * getImageSize() * directionOffsetY() * (rounds / movementDelay);
         }


convertRecordsToRows() now stores missing values as "" instead of null.

Change-Id: Ie40769e4a44da7f26635e2476c36f6c48f39a6a6

--- WeaveData/src/weave/data/CSVParser.as
+++ WeaveData/src/weave/data/CSVParser.as
@@ -438,9 +438,9 @@
 				for (c = 0; c < fields.length; c++)
 				{
 					if (headerDepth > 1)
-						row[c] = fields[c][r]; // fields are Arrays
+						row[c] = fields[c][r] || ''; // fields are Arrays
 					else
-						row[c] = fields[c]; // fields are Strings
+						row[c] = fields[c] || ''; // fields are Strings
 				}
 				rows[r] = row;
 			}
@@ -454,7 +454,7 @@
 					if (headerDepth == 1)
 					{
 						// fields is an Array of Strings
-						row[c] = record[fields[c]];
+						row[c] = record[fields[c]] || '';
 					}
 					else
 					{
@@ -464,7 +464,7 @@
 						for each (var field:String in fieldChain)
 							if (cell)
 								cell = cell[field];
-						row[c] = cell;
+						row[c] = cell || '';
 					}
 				}
 				rows[headerDepth + r] = row;


[FragmentDemuxedStream] Make all logging debug2

--- src/com/pivotshare/hls/loader/FragmentDemuxedStream.as
+++ src/com/pivotshare/hls/loader/FragmentDemuxedStream.as
@@ -197,10 +197,10 @@

             CONFIG::LOGGING {
                 var fragmentString : String = "Fragment[" + _fragment.level + "][" + _fragment.seqnum + "]";
-                Log.debug("FragmentDemuxedStream#onStreamProgress: " +
+                Log.debug2("FragmentDemuxedStream#onStreamProgress: " +
                     fragmentString + " Progress - " + evt.bytesLoaded + " of " + evt.bytesTotal);

-                Log.debug("FragmentDemuxedStream#onStreamProgress: " +
+                Log.debug2("FragmentDemuxedStream#onStreamProgress: " +
                     fragmentString + " Fragment status - bytes.position / bytes.length / bytesLoaded " +
                     _fragment.data.bytes.position + " / " +
                     _fragment.data.bytes.length + " / " +
@@ -232,7 +232,7 @@
                 //byteArray = bytes;
                 CONFIG::LOGGING {
                     var fragmentString : String = "Fragment[" + _fragment.level + "][" + _fragment.seqnum + "]";
-                    Log.debug("FragmentDemuxedStream#onStreamProgress: Need a Demuxer for " + fragmentString);
+                    Log.debug2("FragmentDemuxedStream#onStreamProgress: Need a Demuxer for " + fragmentString);
                 }

                 _demux = DemuxHelper.probe(
@@ -339,7 +339,7 @@
          */
         private function _onDemuxProgress(tags : Vector.<FLVTag>) : void {
             CONFIG::LOGGING {
-                Log.debug("FragmentDemuxedStream#_onDemuxProgress");
+                Log.debug2("FragmentDemuxedStream#_onDemuxProgress");
             }

             _fragment.data.appendTags(tags);
@@ -367,7 +367,7 @@
          */
         private function _onDemuxComplete() : void {
             CONFIG::LOGGING {
-                Log.debug("FragmentDemuxedStream#_onDemuxComplete");
+                Log.debug2("FragmentDemuxedStream#_onDemuxComplete");
             }

             _metrics.parsing_end_time = getTimer();
@@ -388,7 +388,7 @@
         private function _onDemuxVideoMetadata(width : uint, height : uint) : void {
             if (_fragment.data.video_width == 0) {
                 CONFIG::LOGGING {
-                    Log.debug("FragmentDemuxedStream#_onDemuxVideoMetadata: AVC SPS = " + width + "x" + height);
+                    Log.debug2("FragmentDemuxedStream#_onDemuxVideoMetadata: AVC SPS = " + width + "x" + height);
                 }
                 _fragment.data.video_width = width;
                 _fragment.data.video_height = height;


Decoding using typeMap must ignore namespaces when resolving typeMap lookup

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLDecoder.as
@@ -381,7 +381,10 @@
             else
             {
                 // is there a typeMap entry for this element?
-                var nodeType:Class = typeForTag(dataNode.name());
+                // TODO: NOTE: we use localName only (no namespace support)
+                var nodeType:Class
+                nodeType = typeForTag(dataNode.localName());
+                //nodeType = typeForTag(dataNode.name());  //namespaced

                 if (nodeType)
                 {


1440: added back support for simpleEncoderCompatible

--- as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjXMLEncoder.as
@@ -470,15 +470,21 @@
             {
                 var localName:String = "item";  //assume item unless told otherwise
                 var member:* = obj[j];
-                // look up the right qname to use
-                if (obj is IXObjCollection)
+
+                // force use of item for local name if simpleEncoderCompatible is true
+                if (!simpleEncoderCompatible)
                 {
-                    localName = (obj as IXObjCollection).elementTagForMember(member);
+                    // look up the right qname to use
+                    if (obj is IXObjCollection)
+                    {
+                        localName = (obj as IXObjCollection).elementTagForMember(member);
+                    }
+                    else
+                    {
+                        localName = tagForType(member);
+                    }
                 }
-                else
-                {
-                    localName = tagForType(member);
-                }
+
                 qname = new XObjQName("", localName);

                 if (XObjUtils.isByReference(obj))


fixed wront operators priority to handle draw calls depth sort/priority according to blending  ShaderSettings.initializeSettings()

--- src/aerys/minko/render/effect/basic/BasicShader.as
+++ src/aerys/minko/render/effect/basic/BasicShader.as
@@ -172,7 +172,7 @@
 				BasicProperties.BLENDING, Blending.NORMAL
 			);

-			if (blending & BlendingSource.SOURCE_ALPHA != 0)
+			if ((blending & 0xff) == BlendingSource.SOURCE_ALPHA)
 			{
 				settings.priority -= 0.5;
 				settings.depthSortDrawCalls = true;


don't truncate unit count labels

don't truncate unit count labels

--- src/battlecode/client/viewer/render/DrawHUDUnit.as
+++ src/battlecode/client/viewer/render/DrawHUDUnit.as
@@ -33,12 +33,13 @@
             countLabel.height = 30;
             countLabel.x = 0;
             countLabel.y = image.height + 5;
+            countLabel.truncateToFit = false;
             countLabel.setStyle("color", 0xFFFFFF);
             countLabel.setStyle("fontSize", 18);
             countLabel.setStyle("fontWeight", "bold");
             countLabel.setStyle("textAlign", "center");
             countLabel.setStyle("fontFamily", "Courier New");
-            countLabel.text = "00";
+            countLabel.text = "0";

             addChild(countLabel);


change initialization

change initialization

--- src/com/merlinds/miracle_tool/viewer/ViewerView.as
+++ src/com/merlinds/miracle_tool/viewer/ViewerView.as
@@ -118,7 +118,7 @@
 			_assets.push(asset);
 			if(_assets.length > 1){
 				this.choseAnimation();
-				Miracle.createScene(_assets, 1);
+				Miracle.createScene(_assets,null, 1);
 				Miracle.resume();
 			}else{
 				this.createHandler(true);