Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

--- frameworks/projects/rpc/src/mx/rpc/xml/ContentProxy.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/ContentProxy.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-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.xml
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22217
Author:   mhorn@adobe.com
Date:     2011-08-25T18:07:03.696931Z

Log Message:
-----------
minor asdoc change

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/FormHeading.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/VideoDisplay.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Form.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/TitleWindow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/BorderContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Form.as
+++ frameworks/projects/spark/src/spark/components/Form.as
@@ -29,7 +29,7 @@
  *  Because this component does not define a skin for the mobile theme, Adobe
  *  recommends that you not use it in a mobile application. Alternatively, you
  *  can define your own mobile skin for the component. For more information,
- *  see Spark Skinning.
+ * see Basics of mobile skinning.
  */
 [DiscouragedForProfile("mobileDevice")]


Use double quotes around XML attributes for consistency.

--- exporter/src/main/as/flump/export/Atlas.as
+++ exporter/src/main/as/flump/export/Atlas.as
@@ -70,15 +70,15 @@
     }

     public function toXml () :String {
-        var xml :String = "<atlas name='" + name + "' filename='" + name + ".png'>\n";
+        var xml :String = '<atlas name="' + name + '" filename="' + name + '.png">\n';
         for each (var tex :SwfTexture in textures) {
             var loc :Object = _locs.get(tex);
-            xml += "  <texture name='" + tex.name + "' xOffset='" + tex.offset.x +
-                "' yOffset='" + tex.offset.y + "' md5='" + tex.md5 +
-                "' xAtlas='" + loc.x + "' yAtlas='" + loc.y +
-                "' wAtlas='" + tex.w + "' hAtlas='" + tex.h + "'/>\n";
+            xml += '  <texture name="' + tex.name + '" xOffset="' + tex.offset.x +
+                '" yOffset="' + tex.offset.y + '" md5="' + tex.md5 +
+                '" xAtlas="' + loc.x + '" yAtlas="' + loc.y +
+                '" wAtlas="' + tex.w + '" hAtlas="' + tex.h + '"/>\n';
         }
-        return xml + "</atlas>\n";
+        return xml + '</atlas>\n';
     }

     protected const _locs :Map = Maps.newMapOf(SwfTexture);//{x :int, y :int, rotated :Boolean}


Add flush user data

Add flush user data

--- actionscript/src/com/freshplanet/ane/AirBackgroundFetch/AirBackgroundFetch.as
+++ actionscript/src/com/freshplanet/ane/AirBackgroundFetch/AirBackgroundFetch.as
@@ -75,12 +75,29 @@

 		/**
-        * Load a music stream url
+        * Load get-create-mega url/data
         * @param url:String
+        * @param data:jsonString
         */
         public function loadUrl(url:String, data:String):void
         {
             _context.call("loadUrl", url, data);
+        }
+
+        /**
+        * Load a music stream url
+        */
+        public function getUserData():String
+        {
+            return _context.call("getUserData") as String;
+        }
+
+        /**
+        * Load a music stream url
+        */
+        public function flushUserData():void
+        {
+            _context.call("flushUserData");
         }


test change 2

test change 2

--- activities/module-2/series-measuring/Probe.as
+++ activities/module-2/series-measuring/Probe.as
@@ -1,5 +1,4 @@
 package {
-    //test change//

     import flash.display.MovieClip;
     import flash.events.MouseEvent;


hspdef.asの修正

hspdef.asの修正

git-svn-id: 667ccd08e5f160307f6512a0947301cac150914e@1056 ceb3ebad-0e53-d446-8596-a45b2b8d79cd


edited the addNewItem/Plaque/Character popup-menu for location;

--- editor/src/main/flex/org/arisgames/editor/view/GameEditorObjectPaletteView.as
+++ editor/src/main/flex/org/arisgames/editor/view/GameEditorObjectPaletteView.as
@@ -142,7 +142,7 @@
         pt.y = addObjectButton.y;
         pt = addObjectButton.localToGlobal(pt);

-        myMenu.show(pt.x + 30, pt.y - 50); // WB Magic number values here, play around with them as needed
+        myMenu.show(pt.x + 0, pt.y - 66); // WB Magic number values here, play around with them as needed
     }

     private function addFolderButtonOnClick(evt:MouseEvent):void
@@ -306,7 +306,7 @@
             trace("Dragged Object is a folder, so check to see if it's got any children before allowing deletion.")
             if (it.children.length > 0)
             {
-                trace("This folder has childre, so can't allow it to be deleted.");
+                trace("This folder has children, so can't allow it to be deleted.");
                 okDrop = false;
             }
         }


optimize NAL unit parsing use a state machine and byte read instead of word read and jump backwards in the array in case start code not found related to #162

--- src/org/mangui/hls/demux/Nalu.as
+++ src/org/mangui/hls/demux/Nalu.as
@@ -24,62 +24,69 @@

         /** Return an array with NAL delimiter indexes. **/
         public static function getNALU(nalu : ByteArray, position : uint) : Vector.<VideoFrame> {
+            var len : uint = nalu.length,i : uint = position;
+            var unitHeader : int,lastUnitHeader : int = 0;
+            var unitStart : int,lastUnitStart : int = 0;
+            var unitType : int,lastUnitType : int = 0;
+            var audFound : Boolean = false;
+            var value : uint,state : uint = 0;
             var units : Vector.<VideoFrame> = new Vector.<VideoFrame>();
-            var unit_start : int;
-            var unit_type : int;
-            var unit_header : int;
-            var aud_found : Boolean = false;
             // Loop through data to find NAL startcodes.
-            var window : uint = 0;
-            nalu.position = position;
-            while (nalu.bytesAvailable > 4) {
-                window = nalu.readUnsignedInt();
-                // Match four-byte startcodes
-                if ((window & 0xFFFFFFFF) == 0x01) {
-                    // push previous NAL unit if new start delimiter found, dont push unit with type = 0
-                    if (unit_start && unit_type) {
-                        units.push(new VideoFrame(unit_header, nalu.position - 4 - unit_start, unit_start, unit_type));
-                    }
-                    unit_header = 4;
-                    unit_start = nalu.position;
-                    unit_type = nalu.readByte() & 0x1F;
-                    if(unit_type ==9) {
-                        aud_found = true;
-                    }
-                    /* if AUD already found and newly found unit is NDR or IDR,
-                        stop parsing here and consider that this IDR/NDR is the last NAL unit
-                        breaking the loop here is done for optimization purpose, as NAL parsing is time consuming ...
-                     */
-                    if (aud_found && (unit_type == 1 || unit_type == 5)) {
+            while (i < len) {
+                // finding 3 or 4-byte start codes (00 00 01 OR 00 00 00 01)
+                value = nalu[i++];
+                switch(state)
+                {
+                    case 0:
+                        if(!value) {
+                            state = 1;
+                            // unitHeader is NAL header offset
+                            unitHeader=i-1;
+                        }
                         break;
-                    }
-                    // Match three-byte startcodes
-                } else if ((window & 0xFFFFFF00) == 0x100) {
-                    // push previous NAL unit if new start delimiter found, dont push unit with type = 0
-                    if (unit_start && unit_type) {
-                        units.push(new VideoFrame(unit_header, nalu.position - 4 - unit_start, unit_start, unit_type));
-                    }
-                    nalu.position--;
-                    unit_header = 3;
-                    unit_start = nalu.position;
-                    unit_type = nalu.readByte() & 0x1F;
-                    if(unit_type ==9) {
-                        aud_found = true;
-                    }
-                    /* if AUD already found and newly found unit is NDR or IDR,
-                        stop parsing here and consider that this IDR/NDR is the last NAL unit
-                        breaking the loop here is done for optimization purpose, as NAL parsing is time consuming ...
-                     */
-                    if (aud_found && (unit_type == 1 || unit_type == 5)) {
+                    case 1:
+                        if(value) {
+                            state = 0;
+                        } else {
+                            state = 2;
+                        }
                         break;
-                    }
-                } else {
-                    nalu.position -= 3;
+                    case 2:
+                    case 3:
+                        if(value) {
+                            if(value === 1) {
+                                unitType = nalu[i] & 0x1f;
+                                if(unitType == 9) {
+                                    audFound = true;
+                                }
+                                if(lastUnitStart) {
+                                    // use Math.min(4,...) as max header size is 4.
+                                    // in case there are any leading zeros
+                                    // such as 00 00 00 00 00 00 01
+                                    //                  ^^
+                                    // we need to ignore them as they are part of previous NAL unit
+                                    units.push(new VideoFrame(Math.min(4,lastUnitStart-lastUnitHeader), i-state-1-lastUnitStart, lastUnitStart, lastUnitType));
+                                }
+                                lastUnitStart = i;
+                                lastUnitType = unitType;
+                                lastUnitHeader = unitHeader;
+                                if(audFound == true && (unitType === 1 || unitType === 5)) {
+                                  // OPTI !!! if AUD unit already parsed and if IDR/NDR unit, consider it is last NALu
+                                  i = len;
+                                }
+                            }
+                            state = 0;
+                        } else {
+                            state = 3;
+                        }
+                        break;
+                    default:
+                        break;
                 }
             }
-            // Append the last NAL to the array.
-            if (unit_start) {
-                units.push(new VideoFrame(unit_header, nalu.length - unit_start, unit_start, unit_type));
+            //push last unit
+            if(lastUnitStart) {
+                units.push(new VideoFrame(Math.min(4,lastUnitStart-lastUnitHeader), len-lastUnitStart, lastUnitStart, lastUnitType));
             }
             // Reset position and return results.
             CONFIG::LOGGING {
@@ -101,7 +108,7 @@
                     ];
                     if (units.length) {
                         var txt : String = "AVC: ";
-                        for (var i : int = 0; i < units.length; i++) {
+                        for (i = 0; i < units.length; i++) {
                             txt += NAMES[units[i].type] + ","; //+ ":" + units[i].length
                         }
                         Log.debug2(txt.substr(0,txt.length-1) + " slices");


UINT to int

UINT to int

--- source/npathfinding/base/Pathfinder.as
+++ source/npathfinding/base/Pathfinder.as
@@ -4,8 +4,8 @@

 	public final class Pathfinder {
-		private static const X:uint = 0;
-		private static const Y:uint = 1;
+		private static const X:int = 0;
+		private static const Y:int = 1;

 		public var algorithm:Algorithm;

@@ -46,11 +46,11 @@
 			return _closedNodes;
 		};

-		public function init(pX:uint, pY:uint):void {
+		public function init(pX:int, pY:int):void {
 			_pathgrid = new Grid();

-			for (var i:uint = 0; i < pX; i++) {
-				for (var j:uint = 0; j < pY; j++) {
+			for (var i:int = 0; i < pX; i++) {
+				for (var j:int = 0; j < pY; j++) {
 					var node:Node     = new Node();
 						node.walkable = true;

@@ -59,8 +59,12 @@
 				}
 			}
 		};
+
+        public function takeNode(pX:int, pY:int):Node {
+            return _pathgrid.take(pX, pY) as Node;
+        };

-		public function isWalkable(pIndexX:uint, pIndexY:uint):Boolean {
+		public function isWalkable(pIndexX:int, pIndexY:int):Boolean {
 			var node:Node = _pathgrid.take(pIndexX, pIndexY) as Node;

 			if (!node) {
@@ -70,7 +74,7 @@
 			return node.walkable;
 		};

-		public function setWalkable(pIndexX:uint, pIndexY:uint):void {
+		public function setWalkable(pIndexX:int, pIndexY:int):void {
 			var node:Node     = _pathgrid.take(pIndexX, pIndexY) as Node;

             if (!node) {
@@ -83,7 +87,7 @@
 			_closedNodes.remove(node);
 		};

-		public function setUnWalkable(pIndexX:uint, pIndexY:uint):void {
+		public function setUnWalkable(pIndexX:int, pIndexY:int):void {
 			var node:Node     = _pathgrid.take(pIndexX, pIndexY) as Node;

             if (!node) {
@@ -96,8 +100,8 @@
 			_closedNodes.add(node);
 		};

-		public function findPath(pStartX:uint, pStartY:uint,
-								 pEndX:uint, pEndY:uint,
+		public function findPath(pStartX:int, pStartY:int,
+								 pEndX:int, pEndY:int,
 								 pHeuristic:Function = null):Vector.<Node> {
 			if (algorithm.findPath(_pathgrid, pHeuristic,
 								   _pathgrid.take(pStartX, pStartY) as Node,


Bugfix for animations that complete instantly.

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

--- src/as/com/threerings/flash/AnimationManager.as
+++ src/as/com/threerings/flash/AnimationManager.as
@@ -32,7 +32,9 @@
         // and update it immediately
         anim.updateAnimation(0);

-        if (!_framer) {
+        // we re-check that the anims are non-empty because the first animation
+        // to be added could be removed as a result of calling updateAnimation() on it.
+        if (!_framer && _anims.length > 0) {
             _framer = new Sprite();
             _framer.addEventListener(Event.ENTER_FRAME, frameHandler);
         }
@@ -53,7 +55,7 @@
         _anims.splice(dex, 2);

         // See if we should clean up a bit
-        if (_anims.length == 0) {
+        if (_anims.length == 0 && _framer) {
             _framer.removeEventListener(Event.ENTER_FRAME, frameHandler);
             _framer = null;
         }


What's a hermite spline without derivates? I suggest we add getSlope() or something like it to the interface/superclass; thoughts?

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

--- src/as/com/threerings/flash/path/HermiteFunc.as
+++ src/as/com/threerings/flash/path/HermiteFunc.as
@@ -53,6 +53,19 @@
         }
     }

+    /** Get the derivate of this function at a point. */
+    public function getSlope (t :Number) :int
+    {
+        if (t >= 1 || t < 0) { // cope with a funny startOffset
+            return 0;
+        }
+        var tt :Number = t*t;
+
+        return int((_p0 - _p1) * (6*tt - 6*t) +
+                   _m0 * (3*tt - 4*t + 1) +
+                   _m1 * (3*tt - 2*t));
+    }
+
     /** The coefficient for the spline that interpolates the beginning point value. */
     protected var _p0 :Number;


revert e4x change that was not implemented

--- test/acceptance/e4x/Types/e9_2_1_2.as
+++ test/acceptance/e4x/Types/e9_2_1_2.as
@@ -85,7 +85,7 @@

 var x1 = new XMLList("alpha<bravo>two</bravo>");
 x1[0] = "beta";
-TEST(8, "<alpha>beta</alpha>" + NL() + "<bravo>two</bravo>", x1.toXMLString());
+TEST(8, "beta" + NL() + "<bravo>two</bravo>", x1.toXMLString());

 var x1 = new XMLList("<alpha>one</alpha><bravo>two</bravo>");
 x1[0] = new XML("beta");


restore Matrix4x4.lookAt() old prototype

--- src/aerys/minko/type/math/Matrix4x4.as
+++ src/aerys/minko/type/math/Matrix4x4.as
@@ -732,13 +732,15 @@
 			return this;
 		}

-		public function lookAt(x : Number, y : Number, z : Number) : Matrix4x4
+		public function lookAt(target	: Vector4,
+							   position	: Vector4	= null,
+							   up		: Vector4	= null) : Matrix4x4
 		{
 			view(
-				transformVector(Vector4.ZERO),
-				new Vector4(x, y, z),
-				deltaTransformVector(Vector4.Y_AXIS)
-			)
+				position || transformVector(Vector4.ZERO),
+				target,
+				up || deltaTransformVector(Vector4.Y_AXIS)
+			);

 			return invert();
 		}


Matrix4x4.pop() will have no effect when there is nothing to pop

--- src/aerys/minko/type/math/Matrix4x4.as
+++ src/aerys/minko/type/math/Matrix4x4.as
@@ -97,9 +97,12 @@
 		{
 			var dataLength : int = _data.length;

-			validMatrix3D.copyRawDataFrom(_data, dataLength - 16);
-			_data.length = dataLength - 16;
-			invalidate();
+			if (dataLength)
+			{
+				validMatrix3D.copyRawDataFrom(_data, dataLength - 16);
+				_data.length = dataLength - 16;
+				invalidate();
+			}

 			return this;
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 19635
Author:   aharui@adobe.com
Date:     2011-01-07T00:25:18.039632Z

Log Message:
-----------
revert the layout changes from svn 18635.  Management feels that there isn't enough time to thoroughly test the changes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/layoutClasses/PriorityQueue.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SkinnableContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IContainerInvalidating.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ILayoutManagerContainerClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/IStyleManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ILayoutElement.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/core/Container.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/mx/src/mx/core/Application.as
+++ frameworks/projects/mx/src/mx/core/Application.as
@@ -986,24 +986,8 @@

     /**
      *  @private
-     *  Applications set estimated sizes for their children
-     */
-    override public function setActualSize(w:Number, h:Number):void
-    {
-        if (FlexVersion.compatibilityVersion >= FlexVersion.VERSION_4_5)
-        {
-            setEstimatedSize(w, h, false);
-            invalidateEstimatedSizesOfChildren();
-            validateEstimatedSizesOfChildren();
-        }
-
-        super.setActualSize(w, h);
-    }
-
-    /**
-     *  @private
-     */
-    override protected function invalidateParentSizeAndDisplayList(estimatedSizesChanged:Boolean = false):void
+     */
+    override protected function invalidateParentSizeAndDisplayList():void
     {
         if (!includeInLayout)
             return;
@@ -1017,7 +1001,7 @@
             return;
         }

-        super.invalidateParentSizeAndDisplayList(estimatedSizesChanged);
+        super.invalidateParentSizeAndDisplayList();
     }

     /**
@@ -1828,7 +1812,6 @@
         {
             invalidateProperties();
             invalidateSize();
-            invalidateEstimatedSizesOfChildren();
         }

         setActualSize(w, h);


- change: removed debugging traces

- change: removed debugging traces

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@457 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/ui/UIComponent.as
+++ src/reprise/ui/UIComponent.as
@@ -2235,7 +2235,6 @@

 		protected override function unregisterChildView(child:UIObject) : void
 		{
-			log(child, child.parent);
 			if (child is UIComponent)
 			{
 				if (m_children.indexOf(child) != -1)


- change: UIComponent::resolveBindings doesn't throw an exception for unresolvable targets anymore. Instead, the binding expression is simply left unreplaced.

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@568 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/ui/UIComponent.as
+++ src/reprise/ui/UIComponent.as
@@ -2144,8 +2144,15 @@
 						selectorPath = bindingParts.shift();
 					}
 					var propertyParts : Array = bindingParts[0].split(/\s*:\s*/);
-					valueParts[i] = valueBySelectorProperty.
-						apply(this, [selectorPath].concat(propertyParts));
+					try
+					{
+						valueParts[i] = valueBySelectorProperty.
+							apply(this, [selectorPath].concat(propertyParts));
+					}
+					catch (error : Error)
+					{
+						valueParts[i] = '{' + valueParts[i] + '}';
+					}
 				}
 				if (valueParts.length > 3 || valueParts[0] != '' || valueParts[2] != '')
 				{


Inference Modified

Inference Modified

--- Arguments/src/components/Inference.as
+++ Arguments/src/components/Inference.as
@@ -94,283 +94,5 @@
 			invalidateSize();
 			invalidateDisplayList();
 		}
-
-		/*
-		public function get connectionType():String
-		{
-			if(myArg == null)
-				return "";
-			return myArg.dbType;
-		}
-
-		public function get schemeSelected():Boolean
-		{
-			return _schemeSelected;
-		}
-
-		public function set schemeSelected(value:Boolean):void
-		{
-			_schemeSelected = value;
-			setRuleState();
-		}
-
-		public function setRuleState():void
-		{
-			//seting type makes sense only after a particular scheme has been chosen
-			//before this, reasons may be empty
-		}
-
-		//This happens when the argument
-		//  scheme is fixed
-		public function changePossibleSchemes():void
-		{
-
-		}
-
-		public function menuCreated(fe:FlexEvent):void
-		{
-		}
-
-		public function setArgScheme(event:ListEvent):void
-		{
-			var scheme:String = event.itemRenderer.data.toString();
-			if(scheme == ParentArg.DIS_SYLL || scheme == ParentArg.NOT_ALL_SYLL)
-			{
-				myschemeSel.visible = false;
-				schemeSelected = true;
-				parentMap.helpText.visible = false;
-			}
-
-		}
-
-		public function get argType():MenuPanel
-		{
-			return _menuPanel;
-		}
-
-		public function set argType(value:MenuPanel):void
-		{
-			_menuPanel = value;
-			_menuPanel.addEventListener(FlexEvent.CREATION_COMPLETE,addToMap);
-		}
-
-		public function changeScheme(event:MouseEvent):void
-		{
-			changeHandler(event);
-		}
-
-
-
-
-		override public function makeUnEditable():void
-		{
-		}
-		override public function makeEditable():void
-		{
-		}
-		*/
-		/*
-		public function changeHandler(e:MouseEvent):void
-		{
-			chooseEnablerText();
-		}
-
-		public function setType(le:ListEvent):void
-		{
-			if(myArg is ModusTollens)
-			{
-				if(myschemeSel.selectedType != myArg._expLangTypes[0])
-				{
-					reasonAddable = false;
-				}
-			}
-			if(myschemeSel.andor.visible==false)
-			{
-				myschemeSel.visible = false;
-			}
-			schemeSelected = true;
-			parentMap.helpText.visible = false;
-		}
-
-		public function displayTypes(le:ListEvent):void
-		{
-			setRuleState();
-			myschemeSel.selectedScheme = le.itemRenderer.data.toString();
-			var sublist:List = myschemeSel.typeSelector;
-			sublist.visible = false;
-			if(myschemeSel.selectedScheme != ParentArg.DIS_SYLL && myschemeSel.selectedScheme != ParentArg.NOT_ALL_SYLL)
-			{
-				sublist.visible=true;
-			}
-
-			displayStr = "";
-
-			switch(myschemeSel.selectedScheme)
-			{
-				case ParentArg.MOD_PON:
-					myArg = new ModusPonens;
-					break;
-				case ParentArg.MOD_TOL:
-					myArg = new ModusTollens;
-					break;
-				case ParentArg.COND_SYLL:
-					myArg = new ConditionalSyllogism;
-					break;
-				case ParentArg.DIS_SYLL:
-					myArg = new DisjunctiveSyllogism;
-					myArg.inference = this;
-					myArg.createLinks();
-					myArg._isLanguageExp = true;
-					myschemeSel.selectedType = myArg._langTypes[0];
-					displayStr = myArg.correctUsage();
-					break;
-				case ParentArg.NOT_ALL_SYLL:
-					myArg = new NotAllSyllogism;
-					myArg.inference = this;
-					myArg.createLinks();
-					myArg._isLanguageExp = true;
-					myschemeSel.selectedType = myArg._langTypes[0];
-					displayStr = myArg.correctUsage();
-					break;
-				case ParentArg.CONST_DILEM:
-					myArg = new ConstructiveDilemma;
-					break;
-			}
-
-			myArg.inference = this;
-			myArg.createLinks();
-
-			if(hasMultipleReasons)
-			{
-				sublist.dataProvider = myArg._expLangTypes;
-			}
-			else
-			{
-				sublist.dataProvider = myArg._langTypes;
-			}
-			argType.changeSchemeBtn.label = myArg.myname;
-		}
-
-		public function displayOption(le:ListEvent):void
-		{
-			var oplist:List = myschemeSel.andor;
-			oplist.visible = false;
-			var typeText:String=le.itemRenderer.data.toString();
-			myschemeSel.selectedType = typeText;
-			myArg._isLanguageExp = false;
-			if(myArg.myname == ParentArg.MOD_TOL)
-			{
-				if(typeText == "Only if")
-				{
-					var modusTollens:ModusTollens = ModusTollens(myArg);
-					if(hasMultipleReasons || reasonAddable == true)
-					{
-						oplist.visible=true;
-					}
-					else
-					{
-						oplist.visible=false;
-					}
-				}
-			}
-			else if(myArg.myname == ParentArg.MOD_PON)
-			{
-				for(var i:int = 0 ;i<myArg._expLangTypes.length;i++)
-				{
-					if(myArg._expLangTypes[i] == typeText)
-					{
-						myArg._isLanguageExp = true;
-					}
-				}
-			}
-			else if(myArg.myname == ParentArg.DIS_SYLL)
-			{
-				myArg._isLanguageExp = true;
-			}
-			else if(myArg.myname == ParentArg.NOT_ALL_SYLL)
-			{
-				myArg._isLanguageExp = true;
-			}
-			else if(myArg.myname == ParentArg.COND_SYLL)
-			{
-				myArg._isLanguageExp = true;
-				myArg.createLinks();
-			}
-			displayStr = myArg.correctUsage();
-		}
-
-		public function setOption(le:ListEvent):void
-		{
-			var andor:String = le.itemRenderer.data.toString();
-			if(reasons.length > 1)
-			{
-				typed = true;
-			}
-			if(andor=="And")
-			{
-				myschemeSel.selectedOption = ParentArg.EXP_AND;
-				if(myArg is ModusTollens)
-				{
-					var specificArg:ModusTollens = ModusTollens(myArg);
-					specificArg.andOr = ParentArg.EXP_AND;
-				}
-			}
-			else if(andor=="Or")
-			{
-				myschemeSel.selectedOption = ParentArg.EXP_OR;
-				if(myArg is ModusTollens)
-				{
-					specificArg = ModusTollens(myArg);
-					specificArg.andOr = ParentArg.EXP_OR;
-				}
-			}
-
-			myschemeSel.visible = false;
-			displayStr = myArg.correctUsage();
-			//input1.forwardUpdate();
-			schemeSelected = true;
-			parentMap.helpText.visible = false;
-		}
-
-
-		public function statementOption(le:ListEvent):void
-		{
-			var andor:String = le.itemRenderer.data.toString();
-			if(andor=="And")
-			{
-				myschemeSel.selectedOption = ParentArg.EXP_AND;
-				if(myArg is ModusTollens)
-				{
-					var specificArg:ModusTollens = ModusTollens(myArg);
-					specificArg.andOr = ParentArg.EXP_AND;
-				}
-			}
-			else if(andor=="Or")
-			{
-				myschemeSel.selectedOption = ParentArg.EXP_OR;
-				if(myArg is ModusTollens)
-				{
-					specificArg = ModusTollens(myArg);
-					specificArg.andOr = ParentArg.EXP_OR;
-				}
-			}
-			displayStr = myArg.correctUsage();
-		}
-
-		public function bringForward(e:MouseEvent):void
-		{
-		}
-
-		public function goBackward(e:MouseEvent):void
-		{
-
-		}
-
-		public function makeVisible():void{
-			this.visible = true;
-			this.argType.visible = true;
-		}
-
-	 */
 	}
 }


Partial commit of the errorCallback patch.

git-svn-id: c197267f952b24206666de142881703007ca05d5@11524 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/data/IQ.as
+++ src/org/igniterealtime/xiff/data/IQ.as
@@ -37,6 +37,8 @@
 		private var myCallbackScope:Object;

 		private var myCallbackFunc:Function;
+
+		private var myErrorCallbackFunc:Function;

 		private var myQueryName:String;

@@ -78,7 +80,7 @@
 		 * @param	iqCallback The function to be called when the server responds to the IQ
 		 * @param	iqCallbackScope The object instance containing the callback method
 		 */
-		public function IQ( recipient:EscapedJID = null, iqType:String = null, iqID:String = null, iqCallback:String = null, iqCallbackScope:Object = null, iqCallbackFunc:Function = null )
+		public function IQ( recipient:EscapedJID = null, iqType:String = null, iqID:String = null, iqCallback:String = null, iqCallbackScope:Object = null, iqCallbackFunc:Function = null, iqErrorCallback:Function = null )
 		{
 			var id:String = exists( iqID ) ? iqID : generateID( "iq_" );

@@ -87,6 +89,7 @@
 			callbackName = iqCallback;
 			callbackScope = iqCallbackScope;
 			callback = iqCallbackFunc;
+			errorCallback = iqErrorCallback;
 		}

 		/**
@@ -157,7 +160,19 @@
 		{
 			myCallback = value;
 		}
-
+
+		/**
+		 *
+		 */
+		public function get errorCallback():Function
+		{
+			return myErrorCallbackFunc;
+		}
+		public function set errorCallback( value:Function ):void
+		{
+			myErrorCallbackFunc = value;
+		}
+
 		/**
 		 * The scope of the callback function to call when a response to the IQ
 		 * is received. This isn't a required property, but is useful if you


CSVColumns now appear in the attribute selector.

--- WeaveData/src/weave/data/DataSources/MultiDataSource.as
+++ WeaveData/src/weave/data/DataSources/MultiDataSource.as
@@ -33,6 +33,7 @@
 	import weave.api.newLinkableChild;
 	import weave.core.LinkableDynamicObject;
 	import weave.core.LinkableXML;
+	import weave.data.AttributeColumns.CSVColumn;
 	import weave.data.AttributeColumns.EquationColumn;
 	import weave.data.AttributeColumns.ProxyColumn;
 	import weave.data.ColumnReferences.HierarchyColumnReference;
@@ -119,7 +120,7 @@

 			// add category for global column objects
 			// TEMPORARY SOLUTION -- only allow EquationColumns
-			var eqCols:Array = _root.getObjects(EquationColumn);
+			var eqCols:Array = _root.getObjects(EquationColumn).concat(_root.getObjects(CSVColumn));
 			if (eqCols.length > 0)
 			{
 				var globalCategory:XML = <category title="Equations"/>;


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

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

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

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

 package spark.components.supportClasses


Another Crash Fix #65

Another Crash Fix #65

fixed manually

--- HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
+++ HLSPlugin/src/com/kaltura/hls/HLSIndexHandler.as
@@ -316,7 +316,7 @@
 			if(lastSegmentIndex < 0)
 				return true;

-			var matchSegment:HLSManifestSegment = lastQualitySegments[lastSegmentIndex];
+			var matchSegment:HLSManifestSegment = lastQualitySegments[lastSegmentIndex < lastQualitySegments.length ? lastSegmentIndex : lastQualitySegments.length -1];

 			// Add the new manifest segments to the targetManifest
 			// Tasks: (in order)


Transferred from the Adobe Open Source Subversion Repository

Revision: 18146
Author:   chiedozi@adobe.com
Date:     2010-10-14T00:23:22.539629Z

Log Message:
-----------
View and ViewNavigator PARB changes.

MobileApplication
canCancelBackKeyBehavior has been renamed exitApplicationOnBackKey (also impacts ViewNavigator and TabbedViewNavigator)

ViewNavigator
backKeyHandler method is now mx_internal, it is no longer part of public api
useDefaultTransitions property has been removed from the framework
canRemoveCurrentView is now mx_internal, it is no longer part of the public api
createVisibiliyAnimation() method has been removed and replaced with the createActionBarShowEffect() and createActionBarHideEffect() methods.
commitViewChange, beginViewChanged and endViewChanged have been renamed to commitNavigatorAction, committingNavigatorAction and navigatorActionCommitted.
maintainNavigationStack removed from ViewNavigator and moved to TabbedViewNavigator

View
VIEW_ACTIVATE, VIEW_DEACTIVATE and REMOVING have been removed from the FlexEvent class and added to the new ViewNavigatorEvent class.
ViewNavigatorEvent class now has a "action" property that indicates what the last committed navigation operation was
ViewNavigatorAction enum class added and is used to populate the action property of a ViewNavigatorEvent
View now dispatches a "backKeyPressed" (FlexEvent.BACK_KEY_PRESSED) event when the back device key is pressed.  This is a cancelable event.  When cancelled, the MobileApplication's default back behavior will not run.

TabbedViewNavigator
Added createTabBarShowEffect() and createTabBarHideEffect() methods
Added a maintainNavigationStack property to the view navigator.  When false, the navigation stack of a navigator is cleared when deactivated.

TabbedMobileApplication
Added maintainNavigationStack proxy property to the application

QE notes:
Doc notes:
Bugs:
Reviewer: Ryan
Tests run:
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/tests/performance/mobile/ComponentCatalog/src/ScriptRunner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/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="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorAction.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/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/views/SearchView.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/events/ViewNavigatorEvent.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as
@@ -278,15 +278,18 @@
     }

     //----------------------------------
-    //  canCancelBackKeyBehavior
+    //  exitApplicationOnBackKey
     //----------------------------------

     /**
      *  @private
      */
-    override public function get canCancelBackKeyBehavior():Boolean
-    {
-        return  activeNavigator && activeNavigator.canCancelBackKeyBehavior;
+    override public function get exitApplicationOnBackKey():Boolean
+    {
+    	if (activeNavigator)
+    		return activeNavigator.exitApplicationOnBackKey;
+
+    	return super.exitApplicationOnBackKey;
     }

     //----------------------------------
@@ -302,6 +305,40 @@

         if (activeNavigator)
             activeNavigator.landscapeOrientation = value;
+    }
+
+    //----------------------------------
+    //  maintainNavigationStack
+    //----------------------------------
+    private var _maintainNavigationStack:Boolean = true;
+
+    /**
+     *  This property indicates whether the navigation stack of the view
+     *  should remain intact when the navigator is deactivated by its
+     *  parent navigator.  If set to true, when reactivated the view history
+     *  will remain the same.  If false, the navigator will display the
+     *  first view in its navigation stack.
+     *
+     *  @default true
+     *
+     *  @see spark.components.TabbedViewNavigator
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function get maintainNavigationStack():Boolean
+    {
+        return _maintainNavigationStack;
+    }
+
+    /**
+     *  @private
+     */
+    public function set maintainNavigationStack(value:Boolean):void
+    {
+        _maintainNavigationStack = value;
     }

     //----------------------------------
@@ -467,7 +504,7 @@
     /**
      *  @private
      */
-    override public function backKeyHandler():void
+    override mx_internal function backKeyHandler():void
     {
         if (activeNavigator)
             activeNavigator.backKeyHandler();
@@ -520,7 +557,7 @@
     /**
      *  @private
      */
-    override public function canRemoveCurrentView():Boolean
+    override mx_internal function canRemoveCurrentView():Boolean
     {
         return (!activeNavigator || activeNavigator.canRemoveCurrentView());
     }
@@ -616,7 +653,7 @@
             if (!selectedIndexAdjusted && !dataProviderChanged && _selectedIndex >= 0)
             {
                 navigator = navigators[_selectedIndex];
-                navigator.setActive(false);
+                navigator.setActive(false, !maintainNavigationStack);
                 navigator.visible = false;

                 if (navigator.activeView)
@@ -725,7 +762,10 @@
             // animate flag set to true
             if (transitionsEnabled && animateTabBarVisbility)
             {
-                tabBarVisibilityEffect = createVisibilityAnimation();
+                tabBarVisibilityEffect = showingTabBar ?
+                                         createTabBarShowEffect() :
+                                         createTabBarHideEffect();
+
                 tabBarVisibilityEffect.addEventListener(EffectEvent.EFFECT_END,
                     visibilityAnimation_completeHandler);
                 tabBarVisibilityEffect.play();
@@ -748,52 +788,65 @@
      *  @playerversion AIR 2.5
      *  @productversion Flex 4.5
      */
-    private function createTabBarVisibilityEffect(hiding:Boolean, props:Object):IEffect
-    {
+    public function createTabBarShowEffect():IEffect
+    {
+        return createTabBarVisibilityEffect();
+    }
+
+    /**
+     *  @private
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public function createTabBarHideEffect():IEffect
+    {
+        return createTabBarVisibilityEffect();
+    }
+
+    /**
+     *  Creates the animation that will be played when the TabBar is
+     *  hidden.
+     *
+     *  @return The effect ot play
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    private function createTabBarVisibilityEffect():IEffect
+    {
+        var effect:IEffect;
+        var finalEffect:Parallel = new Parallel();
+
+        // Grab initial values
+        tabBarProps = { start:captureAnimationValues(tabBar) };
+        contentGroupProps = { start:captureAnimationValues(contentGroup) };
+
+        // Update actionBar layout properties
+        tabBar.visible = tabBar.includeInLayout = showingTabBar;
+
+        // Calculate final positions.  This method will force a validation
+        calculateFinalUIPositions();
+
         var animate:Animate = new Animate();
         animate.target = tabBar;
         animate.duration = TAB_BAR_ANIMATION_DURATION;
         animate.motionPaths = new Vector.<MotionPath>();
-        animate.motionPaths.push(new SimpleMotionPath("y", props.start.y, props.end.y));
+        animate.motionPaths.push(new SimpleMotionPath("y", tabBarProps.start.y, tabBarProps.end.y));

         tabBar.includeInLayout = false;
         tabBar.cacheAsBitmap = true;

-        return animate;
-    }
-
-    /**
-     *  Creates the animation that will be played when the TabBar is
-     *  hidden.
-     *
-     *  @return The effect ot play
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.1
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    protected function createVisibilityAnimation():IEffect
-    {
-        var effect:IEffect;
-        var finalEffect:Parallel = new Parallel();
-
-        // Grab initial values
-        tabBarProps = { start:captureAnimationValues(tabBar) };
-        contentGroupProps = { start:captureAnimationValues(contentGroup) };
-
-        // Update actionBar layout properties
-        tabBar.visible = tabBar.includeInLayout = showingTabBar;
-
-        // Calculate final positions.  This method will force a validation
-        calculateFinalUIPositions();
-
-        effect = createTabBarVisibilityEffect(tabBar.visible, tabBarProps);
+        effect = animate;
         effect.target = tabBar;
         tabBar.visible = true;
         finalEffect.addChild(effect);

-        var animate:Animate = new Animate();
+        animate = new Animate();
         animate.target = contentGroup;
         animate.duration = TAB_BAR_ANIMATION_DURATION;
         animate.motionPaths = new Vector.<MotionPath>();


Added encoding field

Added encoding field

--- src/com/jonas/net/Multipart.as
+++ src/com/jonas/net/Multipart.as
@@ -19,6 +19,9 @@
 		private var _fields:Array = [];
 		private var _files:Array = [];
 		private var _data:ByteArray = new ByteArray();
+
+		//http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/charset-codes.html
+		public var encoding:String = 'ascii';

 		public function Multipart(url:String = null) {
 			_url = url;
@@ -92,7 +95,7 @@

 		private function _writeString(value:String):void {
 			var b:ByteArray = new ByteArray();
-			b.writeMultiByte(value, "ascii");
+			b.writeMultiByte(value, encoding);
 			_data.writeBytes(b, 0, b.length);
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 13175
Author:   sameer@adobe.com
Date:     2009-12-23T05:47:48.947634Z

Log Message:
-----------
Updating data formats in AdvancedDataGrid as the drag and drop data format descriptors were renamed from "orderedItems" and "orderedItemsCaretIndex" to "itemsByIndex" and "caretIndex" respectively.

QE notes: verify drag-drop between AdvancedDataGrid and Spark List
Doc notes: None
Bugs: None
Reviewer: Sreeni
Tests run: None
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/AdvancedDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/listClasses/AdvancedListBase.as</path>

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

--- frameworks/projects/advancedgrids/src/mx/controls/listClasses/AdvancedListBase.as
+++ frameworks/projects/advancedgrids/src/mx/controls/listClasses/AdvancedListBase.as
@@ -6902,10 +6902,10 @@
 		dragSource.addHandler(copySelectedItems, "items");

 		// The Spark drag drop data format
-		dragSource.addHandler(copySelectedItemsForDragDrop, "orderedItems");
+		dragSource.addHandler(copySelectedItemsForDragDrop, "itemsByIndex");

 		// Calculate the index of the focus item within the vector
-		// of ordered items returned for the "orderedItems" format.
+		// of ordered items returned for the "itemsByIndex" format.
 		var caretIndex:int = 0;
 		var draggedIndices:Array = selectedIndices;
 		var count:int = draggedIndices.length;
@@ -6914,7 +6914,7 @@
 			if (mouseDownIndex > draggedIndices[i])
 				caretIndex++;
 		}
-		dragSource.addData(caretIndex, "orderedItemsCaretIndex");
+		dragSource.addData(caretIndex, "caretIndex");
     }

     /**
@@ -7133,15 +7133,15 @@

 	/**
 	 *  @private
-	 *  Insert for drag and drop, handles the Spark "orderedItems" data format.
+	 *  Insert for drag and drop, handles the Spark "itemsByIndex" data format.
 	 */
-	private function insertOrderedItems(dropIndex:int, dragSource:DragSource, event:DragEvent):void
+	private function insertItemsByIndex(dropIndex:int, dragSource:DragSource, event:DragEvent):void
 	{
-		var items:Vector.<Object> = dragSource.dataForFormat("orderedItems") as Vector.<Object>;
+		var items:Vector.<Object> = dragSource.dataForFormat("itemsByIndex") as Vector.<Object>;

 		// Copy or move the items. No need to check whether the operation is
 		// reorder within this list, as ListBase never creates the
-		// "orderedItems" data format. This is a new data format from Spark List only.
+		// "itemsByIndex" data format. This is a new data format from Spark List only.
 		collectionIterator.seek(CursorBookmark.FIRST, dropIndex);
 		var count:int = items.length;
 		for (var i:int = 0; i < count; i++)
@@ -9635,7 +9635,7 @@
 		lastDragEvent = event;

         if (enabled && iteratorValid &&
-			(event.dragSource.hasFormat("items")  || event.dragSource.hasFormat("orderedItems")))
+			(event.dragSource.hasFormat("items")  || event.dragSource.hasFormat("itemsByIndex")))
         {
             DragManager.acceptDragDrop(this);
             DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
@@ -9668,7 +9668,7 @@
 		lastDragEvent = event;

         if (enabled && iteratorValid &&
-			(event.dragSource.hasFormat("items") || event.dragSource.hasFormat("orderedItems")))
+			(event.dragSource.hasFormat("items") || event.dragSource.hasFormat("itemsByIndex")))
         {
             DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
             showDropFeedback(event);
@@ -9729,7 +9729,7 @@
 			return;

 		var dragSource:DragSource = event.dragSource;
-		if (!dragSource.hasFormat("items") && !dragSource.hasFormat("orderedItems"))
+		if (!dragSource.hasFormat("items") && !dragSource.hasFormat("itemsByIndex"))
 			return;

         if (!dataProvider)
@@ -9741,7 +9741,7 @@
 		if (dragSource.hasFormat("items"))
 			insertItems(dropIndex, dragSource, event);
 		else
-			insertOrderedItems(dropIndex, dragSource, event);
+			insertItemsByIndex(dropIndex, dragSource, event);

 		lastDragEvent = null;
     }
@@ -9769,6 +9769,10 @@
             if (event.relatedObject != this)
             {
                 var indices:Array = selectedIndices;
+
+				// clear the selection, otherwise we'll be adjusting it on every element being removed
+				clearSelected(false);
+
                 indices.sort(Array.NUMERIC);
                 var n:int = indices.length;
                 for (var i:int = n - 1; i >= 0; i--)


setImport -> setImportDirectory

setImport -> setImportDirectory

--- exporter/src/main/as/flump/export/ExporterController.as
+++ exporter/src/main/as/flump/export/ExporterController.as
@@ -72,7 +72,7 @@
             showPreviewWindow(_flashDocsGrid.selectedItem.lib);
         });
         _importChooser = new DirChooser(null, _win.importRoot, _win.browseImport);
-        _importChooser.changed.add(setImport);
+        _importChooser.changed.add(setImportDirectory);
         _exportChooser = new DirChooser(null, _win.exportRoot, _win.browseExport);
         _exportChooser.changed.add(reloadNow);

@@ -115,7 +115,7 @@
         newMenuItem.addEventListener(Event.SELECT, function (..._) :void {
             _confFile = null;
             _conf = new FlumpConf();
-            setImport(null);
+            setImportDirectory(null);
             updateFromConf();
         });

@@ -194,7 +194,7 @@
         try {
             _conf = FlumpConf.fromJSON(JSONFormat.readJSON(_confFile));
             var dir :String = _confFile.parent.resolvePath(_conf.importDir).nativePath;
-            setImport(new File(dir));
+            setImportDirectory(new File(dir));
         } catch (e :Error) {
             log.warning("Unable to parse conf", e);
             _errorsGrid.dataProvider.addItem(new ParseError(_confFile.nativePath,
@@ -212,7 +212,7 @@
     }

     protected function reloadNow () :void {
-        setImport(_importChooser.dir);
+        setImportDirectory(_importChooser.dir);
         updatePreviewAndExport();
     }

@@ -255,7 +255,7 @@
         FlumpSettings.configFilePath = _confFile.nativePath;
     }

-    protected function setImport (root :File) :void {
+    protected function setImportDirectory (root :File) :void {
         _flashDocsGrid.dataProvider.removeAll();
         _errorsGrid.dataProvider.removeAll();
         if (root == null) return;
@@ -328,7 +328,7 @@
         const prevQuality :String = stage.quality;

         stage.quality = StageQuality.BEST;
-        publisher.publish(status.lib);
+        this.publisher.publish(status.lib);

         stage.quality = prevQuality;
         status.updateModified(Ternary.FALSE);


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3431
Author:   dsubrama@adobe.com
Date:     2008-10-01T00:37:13.740758Z

Log Message:
-----------
Changing the default value of blendMode in Flex Graphics from 'normal' to 'layer' as part of the ARB proposal documented here:

https://zerowing.corp.adobe.com/display/flex/Default+Blend+Modes

Instead of always setting blendMode to 'layer' we only set it when a rendering difference is detected, basically the alpha of a parent Group is > 0 and < 1, otherwise blendMode is normal or whatever the user has explicitly set. However, when you get blendMode, you always get 'layer' or whatever the user has explicitly set.

Checkintests: Pass
QA: Yes - those 14 tests need new bitmap compares though, and any tests around getting the blendMode default value need to be updated to check for 'layer'.
Doc: Needed
Review: Glenn

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

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -1,39 +1,21 @@
 package flex.core {
+import flash.display.BlendMode;
 import flash.display.DisplayObject;
-import flash.display.Sprite;
 import flash.events.Event;
-import flash.geom.ColorTransform;
-import flash.geom.Matrix;
-import flash.geom.Rectangle;
-import flash.geom.Transform;
 import flash.utils.Dictionary;

 import flex.events.FlexEvent;
 import flex.events.ItemExistenceChangedEvent;
-import flex.geom.Transform;
-import flex.graphics.Graphic;
 import flex.graphics.IGraphicElement;
-import flex.graphics.IGraphicElementHost;
-import flex.graphics.MaskType;
-import flex.graphics.TransformUtil;
 import flex.graphics.graphicsClasses.GraphicElement;
 import flex.intf.ILayoutItem;
-import flex.intf.IViewport;
-import flex.layout.BasicLayout;
 import flex.layout.LayoutItemFactory;

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

 use namespace mx_internal;
@@ -91,6 +73,85 @@
     private static const CONTENT_TYPE_UNKNOWN:int = 0;
     private static const CONTENT_TYPE_ARRAY:int = 1;
     private static const CONTENT_TYPE_ILIST:int = 2;
+
+    //----------------------------------
+    //  alpha
+    //----------------------------------
+
+    [Inspectable(defaultValue="1.0", category="General", verbose="1")]
+
+    /**
+     *  @private
+     */
+    override public function set alpha(value:Number):void
+    {
+    	//The default blendMode in FXG is 'layer'. There are only
+    	//certain cases where this results in a rendering difference,
+    	//one being when the alpha of the Group is > 0 and < 1. In that
+    	//case we set the blendMode to layer to avoid the performance
+    	//overhead that comes with a non-normal blendMode.
+
+    	if (value > 0 && value < 1 && !blendModeExplicitlySet)
+    	{
+    		_blendMode = BlendMode.LAYER;
+    		blendModeChanged = true;
+    	}
+    	else if ((value == 1 || value == 0) && !blendModeExplicitlySet)
+    	{
+    		_blendMode = BlendMode.NORMAL;
+    		blendModeChanged = true;
+    	}
+
+    	super.alpha = value;
+
+		if (blendModeChanged)
+    		needsDisplayObjectAssignment = true;
+    	invalidateProperties();
+    }
+
+    //----------------------------------
+    //  blendMode
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the blendMode property.
+     */
+    private var _blendMode:String = BlendMode.NORMAL;
+    private var blendModeChanged:Boolean;
+    private var blendModeExplicitlySet:Boolean;
+
+	[Bindable("propertyChange")]
+    [Inspectable(category="General", enumeration="add,alpha,darken,difference,erase,hardlight,invert,layer,lighten,multiply,normal,subtract,screen,overlay", defaultValue="normal")]
+
+    /**
+     *  Documentation is not currently available.
+     */
+    override public function set blendMode(value:String):void
+    {
+    	if (blendModeExplicitlySet && value == _blendMode)
+    		return;
+
+    	var oldValue:String = _blendMode;
+    	_blendMode = value;
+        dispatchPropertyChangeEvent("blendMode", oldValue, value);
+
+    	blendModeExplicitlySet = true;
+
+		blendModeChanged = true;
+		needsDisplayObjectAssignment = true;
+    	invalidateProperties();
+    }
+
+    /**
+     *  Documentation is not currently available.
+     */
+    override public function get blendMode():String
+    {
+    	if (blendModeExplicitlySet)
+        	return _blendMode;
+		else return BlendMode.LAYER;
+    }

     public function set content(value:*):void
     {
@@ -190,6 +251,13 @@
             // maskChanged = true; TODO (rfrishbe): need this maskChanged?
         }

+        if (blendModeChanged)
+        {
+            blendModeChanged = true;
+            super.blendMode = _blendMode;
+            needsDisplayObjectAssignment = true;
+        }
+
         if (needsDisplayObjectAssignment)
         {
             needsDisplayObjectAssignment = false;
@@ -569,6 +637,7 @@
     private function assignDisplayObjects(startIndex:int = 0):void
     {
         var currentAssignableDO:DisplayObject = canShareDisplayObject ? this : null;
+        //trace("currADO: " + currentAssignableDO);
         var lastDisplayObject:DisplayObject = this;

         // Iterate through all of the items


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

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

  *
  *

- *  <mx:Rotate3D
+ *  <s:Rotate3D
  *    Properties
  *    id="ID"
  *    angleXFrom="no default"


Don't open an alertbox on any errors.

Don't open an alertbox on any errors.

--- WeaveJS/src/weavejs/net/WeaveAdminService.as
+++ WeaveJS/src/weavejs/net/WeaveAdminService.as
@@ -141,7 +141,7 @@
 		private function initializeAdminServiceError(error:*):void
 		{
 			//fixErrorMessage(error);
-			messageDisplay(null, error, true);
+			messageDisplay(null, error, false);
 		}

 		/**
@@ -325,7 +325,7 @@
 				msg = "Received no response from the servlet.\n"
 					+ "Has the WAR file been deployed correctly?\n"
 					+ "Expected servlet URL: "+ adminService.servletURL;
-			messageDisplay(error, msg, true);
+			messageDisplay(error, msg, false);
 		}

 		public function getVersion():WeavePromise/*/<string>/*/


Moved default field deserialization code into separate method to allow
subclasses to read additional fields.

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

--- src/as/com/threerings/ezgame/data/EZGameObject.as
+++ src/as/com/threerings/ezgame/data/EZGameObject.as
@@ -141,9 +141,7 @@
         super.readObject(ins);

         // first read any regular bits
-        turnHolder = (ins.readObject() as Name);
-        userCookies = (ins.readObject() as DSet);
-        ezGameService = (ins.readObject() as EZGameMarshaller);
+        readDefaultFields(ins);

         // then user properties
         var count :int = ins.readInt();
@@ -154,6 +152,16 @@
         }
     }

+    /**
+     * Reads the fields written by the default serializer for this instance.
+     */
+    protected function readDefaultFields (ins :ObjectInputStream) :void
+    {
+        turnHolder = (ins.readObject() as Name);
+        userCookies = (ins.readObject() as DSet);
+        ezGameService = (ins.readObject() as EZGameMarshaller);
+    }
+
     /** The raw properties set by the game. */
     protected var _props :Object = new Object();
 }


fixed camera move on shift-d

fixed camera move on shift-d

--- bin/Data/Scripts/Editor/EditorView.as
+++ bin/Data/Scripts/Editor/EditorView.as
@@ -1220,39 +1220,39 @@
         if (input.keyDown[KEY_LSHIFT])
             speedMultiplier = cameraShiftSpeedMultiplier;

-        if (cameraFlyMode || hotKeyMode == HOTKEYS_MODE_STANDARD)
-        {
-        if (input.keyDown['W'] || input.keyDown[KEY_UP])
-        {
-            cameraNode.Translate(Vector3(0, 0, cameraBaseSpeed) * timeStep * speedMultiplier);
-            FadeUI();
-        }
-        if (input.keyDown['S'] || input.keyDown[KEY_DOWN])
-        {
-            cameraNode.Translate(Vector3(0, 0, -cameraBaseSpeed) * timeStep * speedMultiplier);
-            FadeUI();
-        }
-        if (input.keyDown['A'] || input.keyDown[KEY_LEFT])
-        {
-            cameraNode.Translate(Vector3(-cameraBaseSpeed, 0, 0) * timeStep * speedMultiplier);
-            FadeUI();
-        }
-        if (input.keyDown['D'] || input.keyDown[KEY_RIGHT])
-        {
-            cameraNode.Translate(Vector3(cameraBaseSpeed, 0, 0) * timeStep * speedMultiplier);
-            FadeUI();
-        }
-        if (input.keyDown['E'] || input.keyDown[KEY_PAGEUP])
-        {
-            cameraNode.Translate(Vector3(0, cameraBaseSpeed, 0) * timeStep * speedMultiplier, TS_WORLD);
-            FadeUI();
-        }
-        if (input.keyDown['Q'] || input.keyDown[KEY_PAGEDOWN])
-        {
-            cameraNode.Translate(Vector3(0, -cameraBaseSpeed, 0) * timeStep * speedMultiplier, TS_WORLD);
-            FadeUI();
-        }
-        }
+        if (hotKeyMode == HOTKEYS_MODE_STANDARD ||  (hotKeyMode == HOTKEYS_MODE_BLENDER && cameraFlyMode && !input.keyDown[KEY_LSHIFT]) )
+        {
+            if (input.keyDown['W'] || input.keyDown[KEY_UP])
+            {
+                cameraNode.Translate(Vector3(0, 0, cameraBaseSpeed) * timeStep * speedMultiplier);
+                FadeUI();
+            }
+            if (input.keyDown['S'] || input.keyDown[KEY_DOWN])
+            {
+                cameraNode.Translate(Vector3(0, 0, -cameraBaseSpeed) * timeStep * speedMultiplier);
+                FadeUI();
+            }
+            if (input.keyDown['A'] || input.keyDown[KEY_LEFT])
+            {
+                cameraNode.Translate(Vector3(-cameraBaseSpeed, 0, 0) * timeStep * speedMultiplier);
+                FadeUI();
+            }
+            if (input.keyDown['D'] || input.keyDown[KEY_RIGHT])
+            {
+                cameraNode.Translate(Vector3(cameraBaseSpeed, 0, 0) * timeStep * speedMultiplier);
+                FadeUI();
+            }
+            if (input.keyDown['E'] || input.keyDown[KEY_PAGEUP])
+            {
+                cameraNode.Translate(Vector3(0, cameraBaseSpeed, 0) * timeStep * speedMultiplier, TS_WORLD);
+                FadeUI();
+            }
+            if (input.keyDown['Q'] || input.keyDown[KEY_PAGEDOWN])
+            {
+                cameraNode.Translate(Vector3(0, -cameraBaseSpeed, 0) * timeStep * speedMultiplier, TS_WORLD);
+                FadeUI();
+            }
+        }
         if (input.mouseMoveWheel != 0 && ui.GetElementAt(ui.cursor.position) is null)
         {
             if ( hotKeyMode == HOTKEYS_MODE_STANDARD)


105 Cleaned up constants, allowed ':' in isNameChar

--- raw/src/org/yellcorp/markup/htmlclean/HTMLCleanLexer.as
+++ raw/src/org/yellcorp/markup/htmlclean/HTMLCleanLexer.as
@@ -9,21 +9,21 @@
 public class HTMLCleanLexer
 {
     private static const TEXT:int = 0;
-    private static const TAG_START:int = 100;
-    private static const TAG_OPEN:int = 200;
-    private static const TAG_EXCL:int = 250;
-    private static const TAG_OPEN_TRAILER:int = 300;
-    private static const TAG_ATTR_NAME:int = 400;
-    private static const TAG_ATTR_EQUALS:int = 500;
-    private static const TAG_ATTR_QUOTED_VALUE:int = 600;
-    private static const TAG_ATTR_BARE_VALUE:int = 700;
-    private static const TAG_CLOSE:int = 800;
-    private static const TAG_CLOSE_TRAILER:int = 900;
-    private static const CDATA_CONTENT:int = 1100;  // <![CDATA[
-    private static const COMMENT:int = 1200;        // <!--
-    private static const COMMENT_CLOSE:int = 1250;  // -->
-    private static const DECLARATION:int = 1300;    // <!
-    private static const PROC_INSTR:int = 1400;     // <?
+    private static const TAG_START:int = 1;
+    private static const TAG_OPEN:int = 2;
+    private static const TAG_EXCL:int = 3;
+    private static const TAG_OPEN_TRAILER:int = 4;
+    private static const TAG_ATTR_NAME:int = 5;
+    private static const TAG_ATTR_EQUALS:int = 6;
+    private static const TAG_ATTR_QUOTED_VALUE:int = 7;
+    private static const TAG_ATTR_BARE_VALUE:int = 8;
+    private static const TAG_CLOSE:int = 9;
+    private static const TAG_CLOSE_TRAILER:int = 10;
+    private static const CDATA_CONTENT:int = 11;  // <![CDATA[
+    private static const COMMENT:int = 12;          // <!--
+    private static const COMMENT_CLOSE:int = 13;  // -->
+    private static const DECLARATION:int = 14;    // <!
+    private static const PROC_INSTR:int = 15;     // <?

     private static const RETRY_COMMENT_CLOSE:String = "RETRY_COMMENT_CLOSE";
     private static const RETRY_PI_CLOSE:String = "RETRY_PI_CLOSE";
@@ -637,13 +637,15 @@
             }
             else
             {
+                // if the entity parsed so far is valid, then allow it to
+                // be terminated with something other than a ;
                 if (HTMLReference.instance.isTextEntity(ent.substr(1).toLowerCase()) ||
                     HTMLReference.instance.isNumericEntity(ent))
                 {
                     ent += ";";
                     putback();
                 }
-                else
+                else  // otherwise the opening & may have been meant as literal
                 {
                     fail("Illegal character in entity");
                 }
@@ -717,6 +719,7 @@

     private function pushToken(type:String):void
     {
+        // don't make empty text tokens
         if (!(type == HTMLToken.TEXT && currentToken.text.length == 0))
         {
             currentToken.type = type;
@@ -768,8 +771,8 @@
     {
         return isNameStartChar(char) ||
                (char >= "0" && char <= "9") ||
-               char == "-" ||
-               char == ".";
+               char == "-" || char == "." ||
+               char == ":";    // allow xml namespaces
     }

     private static function isNameStartChar(char:String):Boolean


Added centerOrigin() function to Entity and onCamera property.

--- net/flashpunk/Entity.as
+++ net/flashpunk/Entity.as
@@ -355,6 +355,14 @@
 		}

 		/**
+		 * If the Entity collides with the camera rectangle.
+		 */
+		public function get onCamera():Boolean
+		{
+			return collideRect(x, y, FP.camera.x, FP.camera.y, FP.width, FP.height);
+		}
+
+		/**
 		 * The rendering layer of this Entity. Higher layers are rendered first.
 		 */
 		public function get layer():int { return _layer; }
@@ -425,6 +433,15 @@
 			this.height = height;
 			this.originX = originX;
 			this.originY = originY;
+		}
+
+		/**
+		 * Center's the Entity's origin (half width & height).
+		 */
+		public function centerOrigin():void
+		{
+			originX = width / 2;
+			originY = height / 2;
 		}

 		/**


- bugfix: The Debugging hotkeys didn't always work

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@759 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/ui/DocumentView.as
+++ src/reprise/ui/DocumentView.as
@@ -282,7 +282,7 @@
 			super.initialize();
 			stage.stageFocusRect = false;
 			m_focusManager = new FocusManager(this);
-			addEventListener(KeyboardEvent.KEY_DOWN, self_keyDown);
+			stage.addEventListener(KeyboardEvent.KEY_DOWN, stage_keyDown);
 		}

 		protected override function initDefaultStyles() : void
@@ -483,7 +483,7 @@
 			validateElements();
 		}

-		protected function self_keyDown(event : KeyboardEvent) : void
+		protected function stage_keyDown(event : KeyboardEvent) : void
 		{
 			if (event.shiftKey && event.ctrlKey)
 			{


- change: Additional change left out of previous checkin

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@585 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/ui/DocumentView.as
+++ src/reprise/ui/DocumentView.as
@@ -307,7 +307,7 @@
 			m_widthIsRelative = m_complexStyles.getStyle('width').isRelativeValue();
 		}
 		protected override function resolveRelativeStyles(styles:CSSDeclaration,
-			parentW:Number = -1, parentH:Number = -1) : void
+			parentW : int = -1, parentH : int = -1) : void
 		{
 			super.resolveRelativeStyles(styles, stage.stageWidth, stage.stageHeight);
 		}


ListBase now rerenders on dimensionsChanged. Added api to scrolltoItemAtIndex

--- src/org/openPyro/controls/listClasses/ListBase.as
+++ src/org/openPyro/controls/listClasses/ListBase.as
@@ -260,6 +260,11 @@
 			}
 		}

+		override public function set dimensionsChanged(val:Boolean) : void{
+			needsReRendering=true;
+			super.dimensionsChanged = val;
+		}
+
 		override public function queueValidateDisplayList(event:PyroEvent=null):void{
 			super.queueValidateDisplayList(event);
 			if(!_dataProvider || !_itemRendererFactory || !_needsReRendering || isNaN(height) || isNaN(width)){
@@ -267,7 +272,7 @@
 			}
 			_needsReRendering = false;
 			renderListItems();
-
+			dispatchEvent(new ListEvent(ListEvent.RENDERERS_REPOSITIONED));

 		}

@@ -478,5 +483,23 @@
 			}
 		}

+		/**
+		 * Scrolls the list such that the item on the index specified
+		 * is the one visible as the first renderer or the list is at
+		 * maximum scroll.
+		 */
+		public function scrollToItemAtIndex(index:int):void{
+			/*
+			 Right now the presence or absence of a
+			 scrollbar is a metric of whether or not
+			 the list is scrollable. This needs to be fixed for
+			 cases for example when ScrollPolicy is set to None
+			 */
+			if(! this._verticalScrollBar) return;
+			var yval:Number = index*_rowHeight;
+			var percent:Number = Math.min(yval/(_contentHeight-height), 1);
+			_verticalScrollBar.value = percent;
+		}
+
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/advancedgrids/src/mx/collections/IHierarchicalCollectionView.as
+++ frameworks/projects/advancedgrids/src/mx/collections/IHierarchicalCollectionView.as
@@ -0,0 +1,268 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections
+{
+
+/**
+ *  The IHierarchicalCollectionView interface defines an interface
+ *  for hierarchical or grouped data.
+ *  Typically, you use this data with the AdvancedDataGrid control.
+ *
+ *  @see mx.controls.AdvancedDataGrid
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public interface IHierarchicalCollectionView extends ICollectionView
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  openNodes
+    //----------------------------------
+
+    /**
+     *  An Array of Objects containing the data provider element
+     *  for all the open branch nodes of the data.
+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get openNodes():Object;
+
+    /**
+     *  @private
+     */
+    function set openNodes(value:Object):void
+
+    //----------------------------------
+    //  hasRoot
+    //----------------------------------
+
+    /**
+     *  A flag that, if true, indicates that the current data provider has a root node;
+     *  for example, a single top-level node in a hierarchical structure.
+     *  XML and Object are examples of data types that have a root node,
+     *  while Lists and Arrays do not.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get hasRoot():Boolean;
+
+    //----------------------------------
+    //  showRoot
+    //----------------------------------
+
+    /**
+     *  A Boolean flag that specifies whether to display the data provider's root node.
+     *  If the source data has a root node, and this property is set to
+     *  false, the collection will not include the root item.
+     *  Only the descendants of the root item will be included in the collection.
+     *
+     *
This property has no effect on a source with no root node,
+     *  such as List and Array objects.

+     *
+     *  @default true
+     *  @see #hasRoot
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get showRoot():Boolean;
+
+    /**
+     *  @private
+     */
+    function set showRoot(value:Boolean):void;
+
+    //----------------------------------
+    //  source
+    //----------------------------------
+
+    /**
+     *  The source data of the IHierarchicalCollectionView.
+     *
+     *  @return the IHierarchicalData instance representing the source
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function get source():IHierarchicalData;
+
+    /**
+     *  @private
+     */
+    function set source(value:IHierarchicalData):void;
+
+    //--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Opens a node to display its children.
+     *
+     *  @param node The Object that defines the node.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function openNode(node:Object):void
+
+    /**
+     *  Closes a node to hide its children.
+     *
+     *  @param node The Object that defines the node.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function closeNode(node:Object):void
+
+    /**
+     *  Returns a collection of children, if they exist.
+     *
+     *  @param node The Object that defines the node.
+     *  If null, return a collection of top level nodes.
+     *
+     *  @return ICollectionView instance containing the child nodes.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getChildren(node:Object):ICollectionView;
+
+    /**
+     *  Adds a child node to a node of the data.
+     *
+     *  @param node The Object that defines the parent node.
+     *
+     *  @param child The Object that defines the new node.
+     *
+     *  @return true if the node is added successfully.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function addChild(parent:Object, newChild:Object):Boolean;
+
+    /**
+     *  Removes the child node from the parent node.
+     *
+     *  @param node The Object that defines the parent node,
+     *   and null for top-level nodes.
+     *
+     *  @param child The Object that defines the child node to be removed.
+     *
+     *  @return true if the node is removed successfully.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function removeChild(parent:Object, child:Object):Boolean;
+
+    /**
+     *  Adds a child node to a node of the data at a specific index in the data.
+     *
+     *  @param node The Object that defines the parent node.
+     *
+     *  @param child The Object that defines the new node.
+     *
+     *  @param index The zero-based index of where to insert the child node.
+     *
+     *  @return true if the node is added successfully.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function addChildAt(parent:Object, newChild:Object,
+                        index:int):Boolean;
+
+    /**
+     *  Removes the child node from a node at the specified index.
+     *
+     *  @param parent The node object that currently parents the child node.
+     *  Set parent to null for top-level nodes.
+     *
+     *  @param index The zero-based index of the child node to remove relative to the parent.
+     *
+     *  @return true if successful, and false if not.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function removeChildAt(parent:Object, index:int):Boolean;
+
+    /**
+     *  Returns the depth of the node in the collection.
+     *
+     *  @param node The Object that defines the node.
+     *
+     *  @return The depth of the node.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getNodeDepth(node:Object):int;
+
+    /**
+     *  Returns the parent of a node.
+     *  The parent of a top-level node is null.
+     *
+     *  @param node The Object that defines the node.
+     *
+     *  @return The parent node containing the node as child,
+     *  null for a top-level node,
+     *  and undefined if the parent cannot be determined.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    function getParentItem(node:Object):*;
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 4335
Author:   jszeto@adobe.com
Date:     2008-12-17T00:52:56.919040Z

Log Message:
-----------
GraphicElement Optimization

- Changed how a shared displayObject is positioned in a GraphicElement. Previously, it was always placed at (x,y). Now, it is placed at (0,0) if the displayObject can be shared (ie. it has no transforms). This solves the problem of a sharedDisplayObject getting repositioned without the GraphicElement being aware of it.

- Optimized Group.updateDisplayList so that we only redraw the GraphicElement's that share a displayObject that needs to be updated. Added a new class called InvalidatingSprite which has a single property called "invalid". If a GraphicElement needs to be redrawn, it marks its shared or unshared displayObject as invalid. Group will then only update the GraphicElements whose displayObject is marked invalid. Added invalidateDisplayList calls in a few missing places.

QE Notes: Some of the mustella bitmaps need to be regenerated. The player renders differently two transformed sprites that draw the same visuals. For example, a rotated sprite at (0,0) with a drawRect at (20,20) will look from a rotated sprite at (20,20) with a drawRect at (0,0).
Doc Notes: None
Bugs: SDK-18053
Reviewer: Evtim

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Line.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/InvalidatingSprite.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxTrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/FxVSliderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/InvalidatingSprite.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/InvalidatingSprite.as
@@ -0,0 +1,14 @@
+package mx.core
+{
+	import flash.display.Sprite;
+
+	public class InvalidatingSprite extends Sprite
+	{
+		public function InvalidatingSprite()
+		{
+			super();
+		}
+
+		public var invalid:Boolean;
+	}
+}


Change 20090506-hqm-N by hqm@badtzmaru.home on 2009-05-06 11:32:47 EDT
    in /Users/hqm/openlaszlo/trunk4
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: fix for setting resource frame number from lzx tag in swf9

New Features:

Bugs Fixed: LPP-8161

Technical Reviewer: max
QA Reviewer: andre
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details:

+ Call this.loaderMC.gotoAndStop() with the actual desired frame number, not the one which has
been munged.

Tests:

test case from bug report

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@13816 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c

--- WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
+++ WEB-INF/lps/lfc/kernel/swf9/LzSprite.as
@@ -1087,7 +1087,7 @@
                         this.__isinternalresource = false;
                         this.loaderMC = MovieClip(loader.content);
                         this.totalframes = this.loaderMC.totalFrames;
-                        this.loaderMC.gotoAndStop(fn);
+                        this.loaderMC.gotoAndStop(origfn);
                     }
                   } else {
                     // Set later, to prevent movieclip resources from being forced to frame 1 - see LPP-7534


removed unnecessary dependencies

removed unnecessary dependencies

Change-Id: Ifadec48791d61ecad735bf6df8cea262663844ce

--- WeaveClient/src/weave/VisApplication.as
+++ WeaveClient/src/weave/VisApplication.as
@@ -53,7 +53,6 @@
 	import weave.api.data.ICSVExportable;
 	import weave.api.data.IDataSource;
 	import weave.api.getCallbackCollection;
-	import weave.api.linkBindableProperty;
 	import weave.api.reportError;
 	import weave.api.ui.IVisTool;
 	import weave.compiler.StandardLib;
@@ -100,9 +99,7 @@
 	import weave.utils.VectorUtils;
 	import weave.visualization.layers.SelectablePlotLayer;
 	import weave.visualization.plotters.GeometryPlotter;
-	import weave.visualization.tools.DataTableTool;
-	import weave.visualization.tools.MapTool;
-	import weave.visualization.tools.SimpleVisTool;
+	import weave.visualization.tools.MapTool;

 	use namespace weave_internal;

@@ -1317,25 +1314,10 @@
 			// When the context menu is opened, save a pointer to the active tool, this is the tool we want to export an image of
 			_panelToExport = DraggablePanel.activePanel;

-			// If this tool is valid (we are over a tool), then we want this menu item enabled, otherwise don't allow users to choose it
-			if(_panelToExport != null  )
-			{
-				_panelPrintContextMenuItem.caption = "Print/Export Image of " + _panelToExport.title;
-				_panelPrintContextMenuItem.enabled = true;
-				// Export CSV option only for Simple vistool and Data Table
-				if(_panelToExport is SimpleVisTool || _panelToExport is DataTableTool){
-					_exportCSVContextMenuItem.enabled = true;
-				}
-				else{
-					_exportCSVContextMenuItem.enabled = false;
-				}
-			}
-			else
-			{
-				_panelPrintContextMenuItem.caption = "Print/Export Image of ...";
-				_panelPrintContextMenuItem.enabled = false;
-				_exportCSVContextMenuItem.enabled = false;
-			}
+			// If this tool is valid (we are over a tool), then we want this menu item enabled, otherwise don't allow users to choose it
+			_panelPrintContextMenuItem.caption = "Print/Export Image of " + (_panelToExport ? _panelToExport.title : "...");
+			_panelPrintContextMenuItem.enabled = (_panelToExport != null);
+			_exportCSVContextMenuItem.enabled = _panelToExport is ICSVExportable;
 		}

 		private var _weaveFileRef:FileReference = null;