Return-Path: X-Original-To: apmail-incubator-flex-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-flex-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E4C63E9F9 for ; Fri, 7 Dec 2012 18:25:53 +0000 (UTC) Received: (qmail 16460 invoked by uid 500); 7 Dec 2012 18:25:51 -0000 Delivered-To: apmail-incubator-flex-dev-archive@incubator.apache.org Received: (qmail 16359 invoked by uid 500); 7 Dec 2012 18:25:51 -0000 Mailing-List: contact flex-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: flex-dev@incubator.apache.org Delivered-To: mailing list flex-dev@incubator.apache.org Received: (qmail 16198 invoked by uid 99); 7 Dec 2012 18:25:51 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 07 Dec 2012 18:25:51 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of aharui@adobe.com designates 64.18.1.25 as permitted sender) Received: from [64.18.1.25] (HELO exprod6og110.obsmtp.com) (64.18.1.25) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 07 Dec 2012 18:25:39 +0000 Received: from outbound-smtp-1.corp.adobe.com ([192.150.11.134]) by exprod6ob110.postini.com ([64.18.5.12]) with SMTP ID DSNKUMI0jDXsog1wSL1yBowJFVICXnhcbGNE@postini.com; Fri, 07 Dec 2012 10:25:17 PST Received: from inner-relay-4.eur.adobe.com (inner-relay-4.adobe.com [193.104.215.14]) by outbound-smtp-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id qB7IMN1v022347 for ; Fri, 7 Dec 2012 10:22:24 -0800 (PST) Received: from nacas01.corp.adobe.com (nacas01.corp.adobe.com [10.8.189.99]) by inner-relay-4.eur.adobe.com (8.12.10/8.12.9) with ESMTP id qB7IPBXM028498 for ; Fri, 7 Dec 2012 10:25:13 -0800 (PST) Received: from NAMBX02.corp.adobe.com ([10.8.127.96]) by nacas01.corp.adobe.com ([10.8.189.99]) with mapi; Fri, 7 Dec 2012 10:25:12 -0800 From: Alex Harui To: "flex-dev@incubator.apache.org" Date: Fri, 7 Dec 2012 10:25:08 -0800 Subject: FW: svn commit: r1418422 - in /incubator/flex/sdk/branches/develop: ./ frameworks/projects/framework/src/mx/core/ frameworks/projects/framework/src/mx/states/ frameworks/projects/mx/src/mx/containers/ frameworks/projects/mx/src/mx/core/ frameworks/proj... Thread-Topic: svn commit: r1418422 - in /incubator/flex/sdk/branches/develop: ./ frameworks/projects/framework/src/mx/core/ frameworks/projects/framework/src/mx/states/ frameworks/projects/mx/src/mx/containers/ frameworks/projects/mx/src/mx/core/ frameworks/proj... Thread-Index: Ac3Up8e/9sjJJ3q+TP+Dyc81oHebywAAGe+r Message-ID: In-Reply-To: <20121207182132.A64F123888CD@eris.apache.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-Entourage/13.13.0.120411 acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org Sorry, bad commit. Specifying specific files didn't seem to work and lots more got committed. Trying to revert now. -- Alex Harui Flex SDK Team Adobe Systems, Inc. http://blogs.adobe.com/aharui ------ Forwarded Message From: "aharui@apache.org" Reply-To: "flex-dev@incubator.apache.org" Date: Fri, 7 Dec 2012 10:21:28 -0800 To: "flex-commits@incubator.apache.org" Subject: svn commit: r1418422 - in /incubator/flex/sdk/branches/develop: ./ frameworks/projects/framework/src/mx/core/ frameworks/projects/framework/src/mx/states/ frameworks/projects/mx/src/mx/containers/ frameworks/projects/mx/sc/mx/core/ frameworks/projects... Author: aharui Date: Fri Dec 7 18:21:25 2012 New Revision: 1418422 URL: http://svn.apache.org/viewvc?rev=3D1418422&view=3Drev Log: merge r1418412 into devlop branch Modified: incubator/flex/sdk/branches/develop/ (props changed) incubator/flex/sdk/branches/develop/build.properties incubator/flex/dk/branches/develop/frameworks/projects/framework/src/mx/cor e/FlexSprite.as incubator/flex/sk/branches/develop/frameworks/projects/framework/src/mx/cor e/UIComponent.as icubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/sta tes/AddItems.as incubator/flex/sdk/branches/develop/frameworks/projects/mx/src/mx/container= s /ViewStack.as incubator/flex/sdk/branches/develop/frameworks/projects/mx/src/mx/core/Cont= a iner.as incubator/flex/sdk/branches/develop/frameworks/projects/spark/build.xml incubatorflex/sdk/branches/develop/frameworks/projects/spark/compile-config .xml incubator/flex/sdk/brnches/develop/frameworks/projects/spark/src/spark/comp onents/Group.as incubatr/flex/sdk/branches/develop/frameworks/projects/spark/src/spark/comp onents/SkinnableContainer.as incubator/flex/sdk/branches/dvelop/frameworks/tests/basicTests/BasicTests-c onfig.xml incubator/flex/sdk/brances/develop/frameworks/tests/basicTests/basicLoader. as incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/halo/script= s /SWFLoaderTestScript.mxml incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/AIR/CompareBi= t map.as incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap= . as incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/ResetComponen= t .as incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/UnitTester.as incubator/flex/sdk/branches/develop/mustella/java/src/mustella/Runner.java incubator/flex/sdk/branches/develop/mustella/tests/components/VideoDisplay/= M ethods/VideoMethodTester.mxml incubator/flex/sdk/branches/develop/mustell/tests/components/VideoDisplay/P roperties/VideoPropertyTester.mxml incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_gif_runtime.mxml incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_jpg_runtime.mxml incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_png_runtime.mxml incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_swf_runtime.mxml Propchange: incubator/flex/sdk/branches/develop/ ---------------------------------------------------------------------------= - -- svn:mergeinfo =3D /incubator/flex/sdk/branches/release4.9:1418412 Modified: incubatr/flex/sdk/branches/develop/build.properties URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/build.prop= e rties?rev=3D1418422&r1=3D1418421&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/build.properties (original) +++ incubator/flex/sdk/branches/develop/build.properties Fri Dec 7 18:21:2= 5 2012 @@ -56,5 +56,7 @@ mxmlc.jvm.args =3D ${jvm.args} manifest.sealed=3Dfalse manifest.Implementation-Title=3DApache Flex SDK manifest.Implementation-Version=3D${release.version} -manifest.Implementation-Vendor=3DThe Apache Software Foundation +manifest.Implementation-Vendor=3DApache Software Foundation manifest.Implementation-Vendor-Id=3Dorg.apache + +localized.jars =3D true Modified: incubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/co= r e/FlexSprite.as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / projects/framework/src/mx/core/FlexSprite.as?rev=3D1418422&r1=3D1418421&r2= =3D14184 22&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/co= r e/FlexSprite.as (original) +++ incubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/co= r e/FlexSprite.as Fri Dec 7 18:21:25 2012 @@ -70,7 +70,7 @@ public class FlexSprite extends Sprite try { - name =3D NameUtil.createUniqueName(this); +// name =3D NameUtil.createUniqueName(this); } catch(e:Error) { Modified: incubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/co= r e/UIComponent.as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branchs/develop/frameworks/ projects/framework/src/mx/core/UIComponent.as?rev=3D1418422&r1=3D1418421&r2= =3D1418 422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/co= r e/UIComponent.as (original) +++ incubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/co= r e/UIComponent.as Fri Dec 7 18:21:25 2012 @@ -1723,6 +1723,10 @@ public class UIComponent extends FlexSpr _width =3D super.width; _height =3D super.height; + + var attributes:Array =3D this.MXMLProperties; + if (attributes) + generateMXMLAttributes(attributes); } //-------------------------------------------------------------------------= - @@ -4426,7 +4430,45 @@ public class UIComponent extnds FlexSpr return document =3D=3D this; } - //---------------------------------- + //---------------------------------- + // MXML Descriptor + //---------------------------------- + + /** + * The descriptor of MXML children. */ + private var _MXMLDescriptor:Array; + + public function get MXMLDescriptor():Array + { + return _MXMLDescriptor; + } + + public function setMXMLDescriptr(value:Array):void + { + _MXMLDescriptor =3D value; + } + + //---------------------------------- + // MXML Properties + //---------------------------------- + + /** + * The attributes of MXML top tag. + */ + private var_MXMLProperties:Array; + + public function get MXMLProperties():Array + { + return _MXMLProperties; + } + + public function setMXMLProperties(value:rray):void + { + _MXMLProperties =3D value; + } + + //---------------------------------- // parentApplication //---------------------------------- @@ -7763,7 +7805,219 @@ public class UIComponent extends FlexSpr / protected function createChildren():void { - } + var children:Array =3D this.MXMLDescriptor; + if (children) + generateMXMLInstances(document, children); + } + + protected function addMXMLChilren(comps:Array):void + { + for each (var i:DisplayObject in comps) + { + addChild(i); + } + } + + protected function generteMXMLObject(document:Object, data:Array):Object + { + var i:int =3D 0; + var cls:Class =3D data[i++]; + var comp:Object =3D new cls(); + + var m:int; + var j:int; + var name:String; + var simple:*; + var value:Object; + var id:String; + + m =3D ata[i++]; // num props + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(document, value= as Array); + else if (simple =3D=3D false) + value =3D generateMXMLObject(document, valu= e as Array); + if (name =3D=3D "id") + { + document[value] =3D comp; + id =3D value as String; + } + else if (name =3D=3D "_id") + { + document[value] =3D comp; + id =3D value as String; + continue; // skip assignment to comp + } + comp[name] =3D value; + } + if (comp is IMXMLObject) + comp.initialized(document, id); + return comp; + } + + public function generateMXMLArray(document:Object, data:Array, recursive:Boolean =3D true):Array + { + var comps:Array =3D []; + + var n:int =3D data.length; + var i:int =3D 0; + while (i < n) + { + var cls:Class =3D data[i++]; + var comp:Object =3D new cls); + + var m:int; + var j:int; + var name:String; + var simple:*; + var value:Object; + var id:String =3D null; + + m =3D data[i++]; // num props + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(documen= t, value as Array, recursive); + else if (simple =3D=3D false) + value =3D generateMXMLObject(docume= nt, value as Array); + if (name =3D=3D "id") + id =3D value as String; + if (name =3D=3D "document" && !comp.documen= t) + comp.document =3D document; + else if (name =3D=3D "_id") + id =3D value as String; // and don'= t assign to comp + else + comp[name] =3D value; + } + m =3D data[i++]; // num styles + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArraydocument= , value as Array, recursive); + else if (simple =3D=3D false) + value =3D generateMXMLObject(docume= nt, value as Array); + comp.setStyle(name, value); + } + + m =3D data[i++]; // num effects + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(documen= t, value as Array, recursive); + else if (simple =3D=3D false) + value =3D generateMXMLObject(docume= nt, value as Array); + comp.setStyle(name, value); + } + + m =3D data[i++]; // num events + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + value =3D data[i++]; + comp.addEventListener(name value); + } + + var children:Array =3D data[i++]; + if (children) + { + if (recursive) + comp.generateMXMLInstances(document= , children, recursive); + else + comp.setMXMLDescriptor(children); + + + if (id) + { + document[id] =3D comp; + mx.binding.BindingManager.executeBindings(document, id, comp); + } + if (comp is IMXMLObject) + comp.initialized(document, id); + comps.push(comp); + } + return comps; + } + + protected function generateMXMLInstances(document:Object, data:Array, recursive:Boolean =3D true):void + { + var comps:Array =3D generateMXMLArray(document, data, recursive); + addMXMLChildren(comps); + } + + protected function generateMXMLAttributes(data:Array):vid + { + var i:int =3D 0; + var m:int; + var j:int; + var name:String; + var simple:*; + var value:Object; + var id:String =3D null; + + m =3D data[i++]; // num props + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(this, value as Array, false); + else if (simple =3D=3D false) + value =3D generateMXMLObject(this, value as Array); + if (name =3D=3D "id") + id =3D value as String; + if (name =3D=3D "_id") + id =3D value as String; // and don't assign + else + this[name] =3D value; + } + m =3D data[i++]; // num styles + for (j =3D 0; j < m; j++) + + name =3D data[i++]; + simple =3D ata[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLAray(this, value as Array, false); + else if (simple =3D=3D false) + value =3D generateMXMLObject(this, value as Array); + this.setStyle(name, value); + } + + m =3D data[i++]; // num effects + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(this, value as Array, false); + else if (simple =3D=3D false) + value =3D generateMXMLObject(this, value as Array); + this.setStyle(name, value); + } + + m =3D data[i++]; // num events + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + value =3D data[i++]; + this.addEventListener(name, value as Function); + } + } /** * Performs any final procesing after child objects are created. Modified: incubator/flex/sdk/branches/develop/framworks/projects/framework/src/mx/sta tes/AddItems.as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / projects/framewor/src/mx/states/AddItems.as?rev=3D1418422&r1=3D1418421&r2= =3D14184 22&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D --- icubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/sta tes/AddItems.as (origial) +++ incubator/flex/sdk/branches/develop/frameworks/projects/framework/src/mx/st= a tes/ddItems.as Fri Dec 7 18:21:25 2012 @@ -26,10 +26,12 @@ import mx.collection.IList; import mx.core.ContainerCreationPolicy; import mx.core.IChildList; import mx.core.IDeferredContentOwner +import mx.core.IMXMLObject; import mx.core.ITransientDeferredInstance; import mx.core.IVisualElement; import mx.core.IVisualElementContainer; import mx.core.UIComponent; +import mx.binding.BindingManager; [DefaultProperty("itemsFactory")] @@ -41,7 +43,7 @@ import mx.core.UIComponent; * @playerversion AIR 1.5 * @productversion Flex 4 */ -public class AddItems extends OverrideBase +public class AddItems extends OverrideBase implements IMXMLObject { include "../core/Version.as"; @@ -116,6 +118,8 @@ public class AddItems extends OverrideBa // //-------------------------------------------------------------------------= - + private var document:Object; + /** * @private */ @@ -309,6 +313,52 @@ public class AddItems extends OverrideBa _items =3D value; } + //------------------------------------ + // itemsDescriptor + //------------------------------------ + + /** + * @private + * Storage for the itemsDescriptor prperty. + */ + private var _itemsDescriptor:Array; + + [Inspectable(category=3D"General")] + + /** + * + * The descriptor tha describes the items. + * + *

If you set this property, the items are instantiated at the time + * determinedby the creationPolicy property.

+ * + *

Do not set this property if you set the items + * property. + * This propety is the AddItems class default property. + * Setting this propertywith a creationPolicy of "all" + * is equivalent to setting a items property.

+ * + * @langversion 3.0 + * @playerversion Flash 10 + * @playerversion AIR 1.5 + * @productversion Flex 4 + */ + public function get itemsDescriptor():Array + { + return _itemsDescriptor; + } + + /** + * @private + */ + public function set itemsDescriptor(value:Array):void + { + _itemsDescriptor =3D value; + + if (creationPolicy =3D=3D ContainerCreationPolicy.ALL) + createInstance(); + } + //------------------------------------ // itemsFactory //------------------------------------ @@ -489,12 +539,133 @@ pblic class AddItems extends OverrideBa */ public funtion createInstance():void { - if (!instanceCreated && !_items && itemsFactory) + if (!instanceCreated && !_items && itemsFactory && !_itemsDescriptor) { instanceCreated =3D true; items =3D itemsFactory.getInstance(); } - } + else if (!instanceCreated && !_items && !itemsFactory && _itemsDescriptor) + { + instanceCreated =3D true; + items =3D generateMXMLArray(itemsDescriptor, false); + } + } + + protected function generateMXMLObject(data:Array):Object + {+ var i:int =3D 0; + var cls:Class =3D data[i++]; + var comp:Object =3D new cls(); + + var m:int; + var j:int; + var name:String; + var simple:*; + var value:Object; + var id:String; + + m =3D data[i++]; // num props + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(value as Array)= ; + else if (simple =3D=3D false) + value =3D generateMXMLObject(value as Array= ); + comp[name] =3D value; + } + return comp; + } + + // varis slightly from version in UIComponent in how it handles documents + public function generateMXMLArray(data:Array, recursive:Boolean =3D true):Array + { + var comps:Array =3D []; + + var n:int =3D data.length; + var i:int =3D 0; + while (i < n) + { + var cls:Class =3D data[i++]; + var comp:Object =3D new cls(); + + var m:int; + var j:int; + var name:String; + var simple:*; + var value:Obect; + var id:String =3D null; + + m =3D data[i++]; // num rops + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(value a= s Array, recursiv); + else if (simple =3D=3D false) + value =3D generateMXMLObject(value a= s Array); + if (name =3D=3D "id") + id =3D value as String; + if (name =3D=3D "_id") + id =3D value as String; // and don'= t assign to comp + else + comp[name] =3D value; + } + m =3D dta[i++]; // num styles + for (j =3D 0; j < m; j++) { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(value a= s Array, recursive); + else if simple =3D=3D false) + valu =3D generateMXMLObject(value a= s Array); + comp.setStyle(name, vlue); + } + + m =3D data[i++]; / num effects + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + simple =3D data[i++]; + value =3D data[i++]; + if (simple =3D=3D null) + value =3D generateMXMLArray(value a= s Array, recursive); + else if (simple =3D=3D false) + value =3D generateMXMLObject(value = as Array); + comp.setStyle(name, value); + } + + m =3D data[i++]; // num events + for (j =3D 0; j < m; j++) + { + name =3D data[i++]; + value =3D data[i++]; + comp.addEventListener(name, value); + } + + var children:Array =3D data[i++]; + if (children) + { + if (recursive) + comp.generateMXMLInstances(cildren, recursive); + else + comp.setMXMLDescriptor(children); + } + if (id) + { + document[id] =3D comp; + mx.binding.BindingManager.executeBindings(document, id, comp); + } + cops.push(comp); + } + return comps; + } /** * @inheritDoc @@ -907,6 +1078,15 @@ public class AddItems extends OverrideBa _waitingForDeferredContent =3D false; } } + + /** + * IMXMLObject support + */ + public function initialized(document:Object, id:String):void + { + this.document =3D document; + } + } } Modified: incubator/flex/sdk/branches/develop/frameworks/projects/mx/src/mx/container= s /ViewStack.as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / projects/mx/src/mx/containers/ViewStack.as?rev=3D1418422&r1=3D1418421&r2=3D= 1418422 &view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flexsdk/branches/develop/frameworks/projects/mx/src/mx/containers /iewStack.as (original) +++ incubator/flex/sdk/branches/develop/frameworks/projects/mx/src/mx/contaners /ViewStack.as Fri Dec 7 18:21:25 2012 @@ -736,6 +736,15 @@ public clas ViewStack extends Container // //-------------------------------------------------------------------------= - + /** + * @private + */ + override protected function generateMXMLInstances(document:Object, data:Array, recursive:Boolean =3D true):vod + { + // in theory, creationpolicy gets aplied later + super.generateMXMLInstances(document, data, false); + } + /* * @private */ Modified: incubator/flex/sdk/branches/developframeworks/projects/mx/src/mx/core/Conta iner.as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / projects/mx/src/mx/core/Container.as?rev=3D1418422&r1=3D1418421&r2=3D141842= 2&view=3D diff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D --- incubator/flex/sdk/branches/develop/frameworks/projectsmx/src/mx/core/Conta iner.as (original) +++ incubator/flex/sdk/branches/develop/frameworks/project/mx/src/mx/core/Conta iner.as Fri Dec 7 18:21:25 2012 @@ -4219,7 +4219,11 @@ public class Container extends UICompone */ public function createDeferredContent():void { - createComponentsFromDescriptors(true); + var children:Array =3D this.MXMLDescriptor; + if (children) + generateMXMLInstances(ocument, children); + else + creaeComponentsFromDescriptors(true); } /** Modified: incubator/flex/sdk/branches/develop/fameworks/projects/spark/build.xml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / projects/spark/build.xml?rev=3D1418422&r1=3D1418421&r2=3D1418422&view=3Ddif= f =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/frameworks/projects/spark/build.xml (original) +++ incubator/flex/dk/branches/develop/frameworks/projects/spark/build.xml Fri Dec 7 18:2:25 2012 @@ -229,7 +229,6 @@ output=3D"${FLEX_HOME}/frameworks/libs/spark.swc"> - + version.properties + ../../version.properties + + defaults.css defaults.css Modified: incubator/flex/sdk/branches/develop/frameworks/projects/spark/src/spark/com= p onents/Group.as URL: http://svn.apache.org/viewvc/incubator/fle/sdk/branches/develop/frameworks/ projects/spark/src/spark/coponents/Group.as?rev=3D1418422&r1=3D1418421&r2= =3D14184 22&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D --- incubator/flex/sdk/ranches/develop/frameworks/projects/spark/src/spark/comp onents/Group.as (original) +++ incubator/flex/sdk/branches/develop/frameworks/projects/spark/src/spark/com= p onents/Group.as Fri Dec 7 18:21:25 2012 @@ -547,6 +547,14 @@ public class Group extends GroupBase imp } } + /** + * override setting of children + */ + override protected function addMXMLChildren(comps:Array):void + { + mxmlContent =3D comps; + } + //---------------------------------- // mxmlContent //---------------------------------- Modified: incubator/flex/sdk/branches/develop/frameworks/projects/spark/src/spark/com= p onents/SkinnableContainer.as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / projects/spark/src/spark/components/SkinnableContainer.as?rev=3D1418422&r1= =3D141 8421&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/frmeworks/projects/spark/src/spark/comp onents/SkinnableContainer.as (original) +++ incubator/flex/sdk/branches/develop/frameworks/projects/spark/src/spark/com= p oents/SkinnableContainer.as Fri Dec 7 18:21:25 2012 @@ -672,6 +672,14 @@ public class SkinnableContainer extends _contentMdified =3D true; } + /** + * override setting of children + */ + override protected function addMXMLChildren(comps:Array):void + { + mxmlContent =3D comps; + } + //---------------------------------- // mxmlContentFactory //---------------------------------- @@ -873,7 +881,18 @@ public class SkinnableContainer extends // //-------------------------------------------------------------------------= - - /** + private var creatingChildren:Boolean; + + override protected function generateMXMLInstances(document:Object, data:Array, recursive:Boolean =3D true):void + { + // don't generate children during super.createChildren + if (creatingChildren) + return; + + super.generateMXMLInstances(document, data, recursive); + } + + /** * Create content children, if the creationPolicy property * is not equal to none. * @@ -884,7 +903,9 @@ public class kinnableContainer extends */ override protected funcion createChildren():void { - super.createChildren(); + creatingChildren true; + super.createChildren(); + creatingChilren =3D false; // TODO (rfrishbe): When navigator support is added, this is where we would // determine if content should be created now, or wait until @@ -1048,7 +1069,17 @@ public class SkinnableContainer extends */ public function createDeferredConten():void { - if (!mxmlContentCreated) + var children:Array =3D this.MXMLDescriptor; + if (children) + { + generateMXMLInstances(document, children); + mxmlContentCreated =3D true; // keep the code from recursing back into here. + _deferredContentCreated =3D true; + dispatchEvent(new FlexEvent(FlexEvent.CONTENT_CREATION_COMPLETE)); + return; + } + + if (!mxmlContentCreated) { mxmlContentCreated =3D true; Modified: incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/BasicTests-= c onfig.xml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / tests/basicTests/BasicTests-config.xml?rev=3D1418422&r1=3D1418421&r2=3D1418= 422&vie w=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/BasicTests-= c onfig.xml (original) +++ incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/BasicTests-= c onfig.xml Fri Dec 7 18:21:25 2012 @@ -96,6 +96,7 @@ From mustella.swc --> ExitWhenDone + SetShowRTE SendFormattedResultsToLog Modified: incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/basicLoader= . as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / tests/basicTests/basicLoader.as?rev=3D1418422&r1=3D1418421&r2=3D1418422&vie= w=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/basicLoader= . as (original) +++ incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/basicLoader= . as Fri Dec 7 18:21:25 2012 @@ -33,8 +33,8 @@ public class basicLoader extends MovieCl super(); text =3D new TextField(); - text.width =3D stage.stageWidth; - text.height =3D stage.stageHeight; + text.width =3D 176; + text.height =3D 81; var tf:TextFormat; tf =3D new TextFormat; Modified: incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/halo/script= s /SWFLoaderTestScript.mxml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/frameworks= / tests/basicTests/halo/scripts/SWFLoaderTestScript.mxml?rev=3D1418422&r1=3D1= 41842 1&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/halo/script= s /SWFLoaderTestScript.mxml (original) +++ incubator/flex/sdk/branches/develop/frameworks/tests/basicTests/halo/script= s /SWFLoaderTestScript.mxml Fri Dec 7 18:21:25 2012 @@ -51,7 +51,7 @@ - + Modified: incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/AIR/CompareBi= t map.as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/a= s 3/src/mustella/AIR/CompareBitmap.as?rev=3D1418422&r1=3D1418421&r2=3D1418422= &view=3Dd iff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/AIR/CompareBi= t map.as (original) +++ incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/AIR/CompareBi= t map.as Fri Dec 7 18:21:25 2012 @@ -23,9 +23,13 @@ import flash.events.*; import flash.filesystem.*; import flash.net.*; import flash.text.*; +import flash.text.engine.*; +import flash.geom.ColorTransform; import flash.utils.*; import flash.filesystem.*; import flash.geom.*; +import mx.core.IChildList; +import mx.core.IRawChildrenContainer; import mx.core.mx_internal; use namespace mx_internal; @@ -55,6 +59,11 @@ use namespace mx_internal; public class CompareBitmap extends Assert { public static var useRemoteDiffer:Boolean =3D false; + + private static var useDisplayListCompare:Boolean =3D true; + + private static var identityMatrix:String =3D new Matrix().toString(= ); + private static var identityColorTransform:String =3D new ColorTransform().toString(); public static var DEFAULT_MAX_COLOR_VARIANCE:int =3D 0; public static var DEFAULT_NUM_COLOR_VARIANCES:int =3D 0; @@ -135,6 +144,7 @@ public class CompareBitmap extends Asser public static var fileSuffix:String =3D ""; private var reader:Loader; + private var xmlreader:URLLoader; private var writer:URLLoader; private static var connection:LocalConnection; @@ -268,7 +278,7 @@ public class CompareBitmap extends Asser } } - writePNG(actualTarget); + writeBaselines(actualTarget); return false; } else @@ -360,6 +370,9 @@ public class CompareBitmap extends Asser private var MAX_LC:int =3D 12000; private var screenBits:BitmapData; private var baselineBits:BitmapData; + + private var compareVal:Object; + public function comparePNG(target:DisplayObject):Boolean { if (UnitTester.checkEmbeddedFonts) @@ -371,6 +384,21 @@ public class CompareBitmap extends Asser } } + if (useDisplayListCompare) + { + var s:String =3D getDisplayListXML(target).toXMLString(); + if (s !=3D=3D xmlreader.data) + { + testResult.doFail ("compare returned" + compareVal, absolutePathResult(url) + ".bad.xml"); + + if (fileSuffix !=3D "") + { + writePNG (target); + } + } + return true; + } + if (!reader.content) { testResult.doFail ("baseline image not available"); @@ -384,7 +412,7 @@ public class CompareBitmap extends Asser baselineBits =3D new BitmapData(reader.content.widt= h, reader.content.height); baselineBits.draw(reader.content, new Matrix()); - var compareVal:Object =3D baselineBits.compare (screenBits); + compareVal =3D baselineBits.compare (screenBits); if (compareVal is BitmapData && numColorVariances) = { compareVal =3D compareWithVariances(compare= Val as BitmapData) @@ -392,18 +420,19 @@ public class CompareBitmap extends Asser if (compareVal !=3D 0) { - testResult.doFail ("compare returned" + compareVal, absolutePathResult(url) + ".bad.png"); - - - if (useRemoteDiffer) - { - sendImagesToDiffer(); - return false; - } else if (fileSuffix !=3D "") { - writePNG (target); - } + var req:URLRequest =3D new URLRequest(); + + trace ("compare returned" + compareVal); + + req.url +=3D ".xml"; + xmlreader =3D new URLLoader(); + xmlreader.addEventListener(Event.COMPLETE, readXMLCompleteHandler); + xmlreader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, readErrorHandler); + xmlreader.addEventListener(IOErrorEvent.IO_ERROR, readXMLIOErrorHandler); + xmlreader.load (req); + return false; } - } + } catch (e:Error) { testResult.doFail (e.getStackTrace()); @@ -411,6 +440,40 @@ public class CompareBitmap extends Asser return true; } + private function readXMLCompleteHandler(event:Event):void + { + var actualTarget:DisplayObject =3D DisplayObject(context.stringToObject(target)); + var s:String =3D getDisplayListXML(actualTarget).toXMLString(); + if (s !=3D=3D xmlreader.data) + { + testResult.doFail ("compare returned" + compareVal, absolutePathResult(url) + ".bad.png"); + + if (useRemoteDiffer) + { + sendImagesToDiffer(); + } + else if (fileSuffix !=3D "") + { + writeBaselines (actualTarget); + } + else + stepComplete(); + } + + private function readXMLIOErrorHandler(event:Event):void + { + if (useRemoteDiffer) + { + sendImagesToDiffer(); + } + else if (fileSuffix !=3D "") + { + testResult.doFail ("compare returned" + compareVal, absolutePathResult(url) + ".bad.png"); + var actualTarget:DisplayObject =3D DisplayObject(context.stringToObject(target)); + writePNG (actualTarget); + } + } + private function mergeSandboxBitmap(target:DisplayObject, pt:Point, bm:BitmapData, obj:Object):void { var targetSize:Point =3D getTargetSize(target); @@ -532,22 +595,17 @@ public class CompareBitmap extends Asser public function readPNG():void { - reader =3D new Loader(); - reader.contentLoaderInfo.addEventListener(Event.COMPLETE, readCompleteHandler); - reader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR= , readErrorHandler); - reader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, readErrorHandler); - var req:URLRequest =3D new URLRequest(); var ba:ByteArray =3D null; var file:File; - + // If iOS and AIR, let's try using file I/O instead of loader stuff. AIR on devices can be a pain with the url stuff. if( UnitTester.isApollo && (UnitTester.cv.os.toLowerCase() =3D=3D DeviceNames.IOS.toLowerCase()) ){ // Trim the leading ../ if we have it. if ( url.indexOf ("../") =3D=3D 0 ){ url =3D url.substring (3); } - + file =3D File.documentsDirectory.resolvePath( url )= ; if( !file.exists ){ @@ -574,12 +632,18 @@ public class CompareBitmap extends Asser } req.url =3D encodeURI2(base + "/" + req.url= ); } - // req.url =3D encodeURI2(url); - // } + } + + reader =3D new Loader(); + reader.contentLoaderInfo.addEventListener(Event.COMPLETE, readCompleteHandler); + reader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR= , readErrorHandler); + reader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, readErrorHandler); + // req.url =3D encodeURI2(url); + // } + + trace ("readPNG:requesting url: " + req.url); + reader.load (req); - trace ("readPNG:requesting url: " + req.url); - reader.load (req); - } } @@ -624,10 +688,60 @@ public class CompareBitmap extends Asser } - public function writePNG(target:DisplayObject):void + public function writeBaselines(target:DisplayObject, writeDisplayList:Boolean =3D true):void { - var ba:ByteArray =3D getPngByteArray(target, screenBits); - + var req:URLRequest =3D new URLRequest(); + writer =3D new URLLoader(); + req.method =3D "POST"; + + /** + * either we got called here to write new baselines + * or to save a .bad.png for investigation + * in addition, with failures, we upload baseline and failure to a server + */ + if (UnitTester.createBitmapReferences) + { + fileSuffix =3D ""; + } + + + if (writeDisplayList) + { + var s:String =3D getDisplayListXML(target).toXMLString(); + // request data goes on the URL Request + req.data =3D s; + + req.contentType =3D "text/xml"; + if (UnitTester.isApollo) + { + req.url =3D encodeURI2(UnitTester.bitmapServerPrefix + adjustWriteURI(adjustPath(url))) + fileSuffix + ".xml"; + } else + { + req.url =3D encodeURI2(UnitTester.bitmapServerPrefix + absolutePath(url)) + fileSuffix = + ".xml"; + } + trace ("writing url: " + req.url); + writer.addEventListener(Event.COMPLETE, writeXMLCompleteHandler); + writer.addEventListener(SecurityErrorEvent.SECURITY_ERROR, writeErrorHandler); + writer.addEventListener(IOErrorEvent.IO_ERROR, writeErrorHandler); + + writer.load (req); + } + } + + private function writeXMLCompleteHandler(event:Event):void + { + var actualTarget:DisplayObject =3D DisplayObject(context.stringToObject(target)); + writePNG(actualTarget); + } + + private function writePNG(target:DisplayObject):void + { + var req:URLRequest =3D new URLRequest(); + writer =3D new URLLoader(); + req.method =3D "POST"; + + var ba:ByteArray =3D getPngByteArray(target, screenBits); + trace ("image size: " + ba.length); if( UnitTester.createBitmapReferences ){ fileSuffix =3D ""; @@ -733,8 +847,7 @@ public class CompareBitmap extends Asser private function writeCompleteHandler(event:Event):void { trace("baseline write successful " + event); - if (UnitTester.createBitmapReferences) - stepComplete(); + stepComplete(); } private function uploadCompleteHandler(event:Event):void @@ -991,6 +1104,157 @@ public class CompareBitmap extends Asser } + + /****** DisplayList Comparision ******/ + protected function getDisplayListProperties(d:DisplayObject, noMask:Boolean =3D false):XML + { + var xml:XML; + var n:int; + var i:int; + var childXML:XML; + var s:String =3D getQualifiedClassName(d); + s =3D s.replace("::", "."); + xml =3D new XML("<" + s + "/>"); + s =3D d.transform.concatenatedColorTransform.toString(); + if (s !=3D identityColorTransform) + xml.@concatenatedColorTransform =3D s; + if (d.transform.matrix) + { + s =3D d.transform.matrix.toString(); + if (s !=3D identityMatrix) + { + if (s.indexOf("(a=3D1, b=3D0, c=3D0, d=3D1,= ") =3D=3D -1) + xml.@matrix =3D s; + } + } + else + { + s =3D d.transform.matrix3D.rawData.toString(); + xml.@matrix3D =3D s; + } + if (d.x !=3D 0) + xml.@x =3D d.x; + if (d.y !=3D 0) + xml.@y =3D d.y; + xml.@width =3D d.width; + xml.@height =3D d.height; + if (xml.visible =3D=3D false) + xml.@visible =3D "false"; + if (d.mask && !noMask) + { + xml.mask =3D ; + childXML =3D getDisplayListProperties(d.mask, true)= ; + xml.mask.appendChild =3D childXML; + } + if (d.scrollRect) + { + s =3D d.scrollRect.toString(); + xml.@scrollRect =3D s; + } + if (d.blendMode && d.blendMode !=3D "normal") + xml.@blendMode =3D d.blendMode; + if (d.cacheAsBitmap) + xml.@cacheAsBitmap =3D "true"; + if (d.filters && d.filters.length > 0) + { + s =3D d.filters.toString(); + xml.@filters =3D s; + } + if (d.opaqueBackground) + xml.@opaqueBackground =3D "true"; + if (d.scale9Grid) + { + s =3D d.scale9Grid.toString(); + xml.@scale9Grid =3D s; + } + if (d is TextField) + { + xml.htmlText =3D TextField(d).htmlText; + } + if (d is Loader && Loader(d).contentLoaderInfo.contentType.indexOf("image") !=3D -1) + { + s =3D Loader(d).contentLoaderInfo.url; + s =3D s.substring(s.lastIndexOf("/") + 1); + xml.@loaderbitmap =3D s; + } + if (d is TextLine) + { + var tl:TextLine =3D TextLine(d); + xml.@ascent =3D tl.ascent; + xml.@descent =3D tl.descent; + xml.@atomCount =3D tl.atomCount; + xml.@hasGraphicElement =3D tl.hasGraphicElement; + if (tl.textBlock) + { + var tb:TextBlock =3D TextLine(d).textBlock; + var ce:ContentElement =3D tb.content; + s =3D ce.rawText.substr(tl.textBlockBeginIndex, tl.rawTextLength); + xml.@text =3D s; + } + } + + if (d is IRawChildrenContainer) + { + var rawChildren:IChildList =3D IRawChildrenContainer(d).rawChildren; + n =3D rawChildren.numChildren; + for (i =3D 0; i < n; i++) + { + childXML =3D getDisplayListProperties(rawChildren.getChildAt(i)); + xml.appendChild(childXML); + } + } + else if (d is DisplayObjectContainer) + { + var doc:DisplayObjectContainer =3D d as DisplayObjectContainer; + n =3D doc.numChildren; + for (i =3D 0; i < n; i++) + { + childXML =3D getDisplayListProperties(doc.getChildAt(i)); + xml.appendChild(childXML); + } + } + return xml; + } + + // scan entire display list, but only dump objects intersecting target + protected function getDisplayListXML(target:DisplayObject):XML + { + var n:int; + var i:int; + var child:DisplayObject; + var childXML:XML; + + var doc:DisplayObjectContainer =3D DisplayObjectContainer(target.root); + var xml:XML =3D ; + if (doc is IRawChildrenContainer) + { + var rawChildren:IChildList =3D IRawChildrenContainer(doc).rawChildren; + n =3D rawChildren.numChildren; + for (i =3D 0; i < n; i++) + { + child =3D rawChildren.getChildAt(i); + if (target.hitTestObject(child)) + { + childXML =3D getDisplayListProperties(child); + xml.appendChild(childXML); + } + } + } + else + { + n =3D doc.numChildren; + for (i =3D 0; i < n; i++) + { + child =3D doc.getChildAt(i); + if (target.hitTestObject(child)) + { + childXML =3D getDisplayListProperties(child); + xml.appendChild(childXML); + } + } + } + return xml; + } } } Modified: incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap= . as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/a= s 3/src/mustella/CompareBitmap.as?rev=3D1418422&r1=3D1418421&r2=3D1418422&vie= w=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap= . as (original) +++ incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/CompareBitmap= . as Fri Dec 7 18:21:25 2012 @@ -24,9 +24,13 @@ import flash.net.*; import flash.events.*; import flash.display.*; import flash.text.*; +import flash.text.engine.*; +import flash.geom.ColorTransform; import flash.geom.Matrix; import flash.geom.Point; import flash.geom.Rectangle; +import mx.core.IChildList; +import mx.core.IRawChildrenContainer; import mx.core.mx_internal; use namespace mx_internal; @@ -57,7 +61,10 @@ use namespace mx_internal; public class CompareBitmap extends Assert { public static var useRemoteDiffer:Boolean =3D false; - + + private static var identityMatrix:String =3D new Matrix().toString(= ); + private static var identityColorTransform:String =3D new ColorTransform().toString(); + public static var DEFAULT_MAX_COLOR_VARIANCE:int =3D 0; public static var DEFAULT_NUM_COLOR_VARIANCES:int =3D 0; @@ -136,6 +143,7 @@ public class CompareBitmap extends Asser public static var fileSuffix:String =3D ""; private var reader:Loader; + private var xmlreader:URLLoader; private var writer:URLLoader; private static var connection:LocalConnection; @@ -275,7 +283,7 @@ public class CompareBitmap extends Asser } } - writePNG(actualTarget); + writeBaselines(actualTarget); return false; } else @@ -352,6 +360,8 @@ public class CompareBitmap extends Asser private var MAX_LC:int =3D 12000; private var screenBits:BitmapData; private var baselineBits:BitmapData; + + private var compareVal:Object; public function comparePNG(target:DisplayObject):Boolean { @@ -374,7 +384,7 @@ public class CompareBitmap extends Asser testResult.doFail ("CompareBitmap BIG FAIL! Content reader is null!"); return true; } - + getScreenBits(target); try @@ -382,30 +392,67 @@ public class CompareBitmap extends Asser baselineBits =3D new BitmapData(reader.content.widt= h, reader.content.height); baselineBits.draw(reader.content, new Matrix()); - var compareVal:Object =3D baselineBits.compare (screenBits); + compareVal =3D baselineBits.compare (screenBits); if (compareVal is BitmapData && numColorVariances) compareVal =3D compareWithVariances(compare= Val as BitmapData) if (compareVal !=3D 0) { - testResult.doFail ("compare returned" + compareVal, absolutePathResult(url) + ".bad.png"); - - if (useRemoteDiffer) - { - sendImagesToDiffer(); - return false; - } else if (fileSuffix !=3D "") { - writePNG (target); - } + var req:URLRequest =3D new URLRequest(); + + trace ("compare returned" + compareVal); + + req.url +=3D ".xml"; + xmlreader =3D new URLLoader(); + xmlreader.addEventListener(Event.COMPLETE, readXMLCompleteHandler); + xmlreader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, readErrorHandler); + xmlreader.addEventListener(IOErrorEvent.IO_ERROR, readXMLIOErrorHandler); + xmlreader.load (req); + return false; } - } + } catch (e:Error) { testResult.doFail (e.getStackTrace()); } return true; } + + private function readXMLCompleteHandler(event:Event):void + { + var actualTarget:DisplayObject =3D DisplayObject(context.stringToObject(target)); + var s:String =3D getDisplayListXML(actualTarget).toXMLString(); + if (s !=3D=3D xmlreader.data) + { + testResult.doFail ("compare returned" + compareVal, absolutePathResult(url) + ".bad.png"); + + if (useRemoteDiffer) + { + sendImagesToDiffer(); + } + else if (fileSuffix !=3D "") + { + writeBaselines (actualTarget); + } + } + else + stepComplete(); + } + + private function readXMLIOErrorHandler(event:Event):void + { + if (useRemoteDiffer) + { + sendImagesToDiffer(); + } + else if (fileSuffix !=3D "") + { + testResult.doFail ("compare returned" + compareVal, absolutePathResult(url) + ".bad.png"); + var actualTarget:DisplayObject =3D DisplayObject(context.stringToObject(target)); + writePNG (actualTarget); + } + } private function mergeSandboxBitmap(target:DisplayObject, pt:Point, bm:BitmapData, obj:Object):void { @@ -501,31 +548,33 @@ public class CompareBitmap extends Asser public function readPNG():void { - reader =3D new Loader(); var req:URLRequest =3D new URLRequest(); if (UnitTester.isApollo) { req.url =3D encodeURI2(CompareBitmap.adjustPath (url)); - } else - { - req.url =3D url; - var base:String =3D normalizeURL(context.application.url); - base =3D base.substring(0, base.lastIndexOf("/")); - while (req.url.indexOf("../") =3D=3D 0) - { - base =3D base.substring(0, base.lastIndexOf("/")); - req.url =3D req.url.substring(3); - } + } + else + { + req.url =3D url; + var base:String =3D normalizeURL(context.application.url); + base =3D base.substring(0, base.lastIndexOf("/")); + while (req.url.indexOf("../") =3D=3D 0) + { + base =3D base.substring(0, base.lastIndexOf("/")); + req.url =3D req.url.substring(3); + } - req.url =3D encodeURI2(base + "/" + req.url); - } + req.url =3D encodeURI2(base + "/" + req.url); + } // req.url =3D encodeURI2(url); // } + reader =3D new Loader(); + trace ("readPNG:requesting url: " + req.url); - reader.contentLoaderInfo.addEventListener(Event.COMPLETE, readCompleteHandler); - reader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR= , readErrorHandler); - reader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, readErrorHandler); + reader.contentLoaderInfo.addEventListener(Event.COMPLETE, readCompleteHandler); + reader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR= , readErrorHandler); + reader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, readErrorHandler); reader.load (req); } @@ -556,27 +605,66 @@ public class CompareBitmap extends Asser return ba; } - public function writePNG(target:DisplayObject):void + public function writeBaselines(target:DisplayObject, writeDisplayList:Boolean =3D true):void { - - var ba:ByteArray =3D getPngByteArray(target, screenBits); - trace ("image size: " + ba.length); - - + var req:URLRequest =3D new URLRequest(); + writer =3D new URLLoader(); + req.method =3D "POST"; + /** * either we got called here to write new baselines - * or to save a .bad.png for investigation + * or to save a .bad.png for investigation * in addition, with failures, we upload baseline and failure to a server - */ + */ if (UnitTester.createBitmapReferences) { fileSuffix =3D ""; } + - - writer =3D new URLLoader(); + if (writeDisplayList) + { + var s:String =3D getDisplayListXML(target).toXMLString(); + // request data goes on the URL Request + req.data =3D s; + + req.contentType =3D "text/xml"; + if (UnitTester.isApollo) + { + req.url =3D encodeURI2(UnitTester.bitmapServerPrefix + adjustWriteURI(adjustPath(url))) + fileSuffix + ".xml"; + } else + { + req.url =3D encodeURI2(UnitTester.bitmapServerPrefix + absolutePath(url)) + fileSuffix = + ".xml"; + } + trace ("writing url: " + req.url); + writer.addEventListener(Event.COMPLETE, writeXMLCompleteHandler); + writer.addEventListener(SecurityErrorEvent.SECURITY_ERROR, writeErrorHandler); + writer.addEventListener(IOErrorEvent.IO_ERROR, writeErrorHandler); + + writer.load (req); + } + } + + private function writeXMLCompleteHandler(event:Event):void + { + var actualTarget:DisplayObject =3D DisplayObject(context.stringToObject(target)); + writePNG(actualTarget); + } + + private function writePNG(target:DisplayObject):void + { var req:URLRequest =3D new URLRequest(); + writer =3D new URLLoader(); req.method =3D "POST"; + + var ba:ByteArray =3D getPngByteArray(target, screenBits); + trace ("image size: " + ba.length); + // request data goes on the URL Request + req.data =3D ba; + // can't send this, don't need to anyway var rhArray:Array = =3D new Array(new URLRequestHeader("Content-Length", new String(ba.length) )); + + req.contentType =3D "image/png"; + if (UnitTester.isApollo) { req.url =3D encodeURI2(UnitTester.bitmapServerPrefi= x + adjustWriteURI(adjustPath(url))) + fileSuffix; @@ -585,16 +673,12 @@ public class CompareBitmap extends Asser req.url =3D encodeURI2(UnitTester.bitmapServerPrefi= x + absolutePath(url)) + fileSuffix; } trace ("writing url: " + req.url); - writer.addEventListener(Event.COMPLETE, writeCompleteHandler); - writer.addEventListener(SecurityErrorEvent.SECURITY_ERROR, writeErrorHandler); - writer.addEventListener(IOErrorEvent.IO_ERROR, writeErrorHandler); - - // request data goes on the URL Request - req.data =3D ba; - // can't send this, don't need to anyway var rhArray:Array = =3D new Array(new URLRequestHeader("Content-Length", new String(ba.length) )); - - req.contentType =3D "image/png"; + writer.addEventListener(Event.COMPLETE, writeCompleteHandler); + writer.addEventListener(SecurityErrorEvent.SECURITY_ERROR, writeErrorHandler); + writer.addEventListener(IOErrorEvent.IO_ERROR, writeErrorHandler); + writer.load (req); + /// If this is about creating bitmaps, skip the upload, we're done if (UnitTester.createBitmapReferences || UnitTester.run_id =3D=3D "-1" || baselineMissing) @@ -672,11 +756,8 @@ public class CompareBitmap extends Asser if( baselineMissing ){ baselineMissing =3D false; testResult.doFail( baselineMissingMessage ); - stepComplete(); - }else{ - if (UnitTester.createBitmapReferences) - stepComplete(); } + stepComplete(); } private function uploadCompleteHandler(event:Event):void @@ -965,6 +1046,157 @@ public class CompareBitmap extends Asser }*/ + + /****** DisplayList Comparision ******/ + protected function getDisplayListProperties(d:DisplayObject, noMask:Boolean =3D false):XML + { + var xml:XML; + var n:int; + var i:int; + var childXML:XML; + var s:String =3D getQualifiedClassName(d); + s =3D s.replace("::", "."); + xml =3D new XML("<" + s + "/>"); + s =3D d.transform.concatenatedColorTransform.toString(); + if (s !=3D identityColorTransform) + xml.@concatenatedColorTransform =3D s; + if (d.transform.matrix) + { + s =3D d.transform.matrix.toString(); + if (s !=3D identityMatrix) + { + if (s.indexOf("(a=3D1, b=3D0, c=3D0, d=3D1,= ") =3D=3D -1) + xml.@matrix =3D s; + } + } + else + { + s =3D d.transform.matrix3D.rawData.toString(); + xml.@matrix3D =3D s; + } + if (d.x !=3D 0) + xml.@x =3D d.x; + if (d.y !=3D 0) + xml.@y =3D d.y; + xml.@width =3D d.width; + xml.@height =3D d.height; + if (xml.visible =3D=3D false) + xml.@visible =3D "false"; + if (d.mask && !noMask) + { + xml.mask =3D ; + childXML =3D getDisplayListProperties(d.mask, true)= ; + xml.mask.appendChild =3D childXML; + } + if (d.scrollRect) + { + s =3D d.scrollRect.toString(); + xml.@scrollRect =3D s; + } + if (d.blendMode && d.blendMode !=3D "normal") + xml.@blendMode =3D d.blendMode; + if (d.cacheAsBitmap) + xml.@cacheAsBitmap =3D "true"; + if (d.filters && d.filters.length > 0) + { + s =3D d.filters.toString(); + xml.@filters =3D s; + } + if (d.opaqueBackground) + xml.@opaqueBackground =3D "true"; + if (d.scale9Grid) + { + s =3D d.scale9Grid.toString(); + xml.@scale9Grid =3D s; + } + if (d is TextField) + { + xml.htmlText =3D TextField(d).htmlText; + } + if (d is Loader && Loader(d).contentLoaderInfo.contentType.indexOf("image") !=3D -1) + { + s =3D Loader(d).contentLoaderInfo.url; + s =3D s.substring(s.lastIndexOf("/") + 1); + xml.@loaderbitmap =3D s; + } + if (d is TextLine) + { + var tl:TextLine =3D TextLine(d); + xml.@ascent =3D tl.ascent; + xml.@descent =3D tl.descent; + xml.@atomCount =3D tl.atomCount; + xml.@hasGraphicElement =3D tl.hasGraphicElement; + if (tl.textBlock) + { + var tb:TextBlock =3D TextLine(d).textBlock; + var ce:ContentElement =3D tb.content; + s =3D ce.rawText.substr(tl.textBlockBeginIndex, tl.rawTextLength); + xml.@text =3D s; + } + } + + if (d is IRawChildrenContainer) + { + var rawChildren:IChildList =3D IRawChildrenContainer(d).rawChildren; + n =3D rawChildren.numChildren; + for (i =3D 0; i < n; i++) + { + childXML =3D getDisplayListProperties(rawChildren.getChildAt(i)); + xml.appendChild(childXML); + } + } + else if (d is DisplayObjectContainer) + { + var doc:DisplayObjectContainer =3D d as DisplayObjectContainer; + n =3D doc.numChildren; + for (i =3D 0; i < n; i++) + { + childXML =3D getDisplayListProperties(doc.getChildAt(i)); + xml.appendChild(childXML); + } + } + return xml; + } + + // scan entire display list, but only dump objects intersecting target + protected function getDisplayListXML(target:DisplayObject):XML + { + var n:int; + var i:int; + var child:DisplayObject; + var childXML:XML; + + var doc:DisplayObjectContainer =3D DisplayObjectContainer(target.root); + var xml:XML =3D ; + if (doc is IRawChildrenContainer) + { + var rawChildren:IChildList =3D IRawChildrenContainer(doc).rawChildren; + n =3D rawChildren.numChildren; + for (i =3D 0; i < n; i++) + { + child =3D rawChildren.getChildAt(i); + if (target.hitTestObject(child)) + { + childXML =3D getDisplayListProperties(child); + xml.appendChild(childXML); + } + } + } + else + { + n =3D doc.numChildren; + for (i =3D 0; i < n; i++) + { + child =3D doc.getChildAt(i); + if (target.hitTestObject(child)) + { + childXML =3D getDisplayListProperties(child); + xml.appendChild(childXML); + } + } + } + return xml; + } } } Modified: incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/ResetComponen= t .as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/a= s 3/src/mustella/ResetComponent.as?rev=3D1418422&r1=3D1418421&r2=3D1418422&vi= ew=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/ResetComponen= t .as (original) +++ incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/ResetComponen= t .as Fri Dec 7 18:21:25 2012 @@ -48,11 +48,12 @@ public class ResetComponent extends Test private static var effectsInEffect:QName =3D new QName(mx_internal, "effectsInEffect"); private static var activeTweens:QName =3D new QName(mx_internal, "activeTweens"); private static var tooltipReset:QName =3D new QName(mx_internal, "reset"); + private static var resetFocusOnCleanup:Boolean =3D true; private var actualWaitEvent:String; private var waited:Boolean =3D false; - + /** * Called by the TestCase when it is time to start this step * fake waitEvent because we don't want to listen to the old one @@ -328,11 +329,14 @@ public class ResetComponent extends Test r =3D root; r =3D root["topLevelSystemManager"]; - UnitTester.blockFocusEvents =3D false; - r.stage.focus =3D null; - UnitTester.blockFocusEvents =3D true; - - n =3D r.numChildren; + if (resetFocusOnCleanup) + { + UnitTester.blockFocusEvents =3D false; + r.stage.focus =3D null; + UnitTester.blockFocusEvents =3D true; + } + + n =3D r.numChildren; for (i =3D 0; i < n; i++) { if (context.knownDisplayObjects[r.getChildAt(i)] =3D=3D null) @@ -349,7 +353,7 @@ public class ResetComponent extends Test n--; } } - + r =3D root; r =3D root["topLevelSystemManager"]; r =3D r.popUpChildren; Modified: incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/UnitTester.as URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/a= s 3/src/mustella/UnitTester.as?rev=3D1418422&r1=3D1418421&r2=3D1418422&view= =3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/UnitTester.as (original) +++ incubator/flex/sdk/branches/develop/mustella/as3/src/mustella/UnitTester.as Fri Dec 7 18:21:25 2012 @@ -1873,6 +1873,8 @@ public class UnitTester extends EventDis var tr:TestResult =3D currentTest.testResul= t; if (!tr.hasStatus()) tr.result =3D TestResult.PASS; + if (hasRTE) + tr.result =3D TestResult.FAIL; tr.endTime =3D new Date().time; TestOutput.logResult (tr.toString()); if (hasRTE) Modified: incubator/flex/sdk/branches/develop/mustella/java/src/mustella/Runner.java URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/j= a va/src/mustella/Runner.java?rev=3D1418422&r1=3D1418421&r2=3D1418422&view=3D= diff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/java/src/mustella/Runner.java (original) +++ incubator/flex/sdk/branches/develop/mustella/java/src/mustella/Runner.java Fri Dec 7 18:21:25 2012 @@ -338,6 +338,7 @@ public class Runner { } try { + System.out.println ("Step Timeout: " + System.getProperty ("step_timeout")); step_timeout =3D Long.parseLong (System.getProperty ("step_timeout")); if (step_timeout < 1000) step_timeout =3D step_timeout*1000; @@ -623,7 +624,7 @@ public class Runner { break; } - // System.out.println ("RUNNER HAS THIS TO DO: " + args[0]); + System.out.println ("RUNNER HAS THIS TO DO: " + args[i]); seenEnd =3D false; @@ -1093,6 +1094,7 @@ public class Runner { public static String normalizeDirOS(String dir, boolean apollo_adjust) { + System.out.println ("normalizeDirOS: " + dir); if (dir=3D=3Dnull) dir=3D"."; try { dir=3Dnew File(dir).getCanonicalPath(); @@ -1665,6 +1667,8 @@ public class Runner { String [] whatever =3D {""}; lastTestCaseStart =3D ""; seenEnd =3D false; + + try { Thread.sleep (1000); } catch (Exception e) { } if(!getResultsFromLog) manageMetaTimer("process start"); Modified: incubator/flex/sdk/branches/develop/mustella/tests/components/VideoDisplay/= M ethods/VideoMethodTester.mxml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/t= e sts/components/VideoDisplay/Methods/VideoMethodTester.mxml?rev=3D1418422&r1= =3D14 18421&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/tests/components/VideoDisplay/= M ethods/VideoMethodTester.mxml (original) +++ incubator/flex/sdk/branches/develop/mustella/tests/components/VideoDisplay/= M ethods/VideoMethodTester.mxml Fri Dec 7 18:21:25 2012 @@ -73,7 +73,7 @@ - + Modified: incubator/flex/sdk/branches/develop/mustella/tests/components/VideoDisplay/= P roperties/VideoPropertyTester.mxml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/t= e sts/components/VideoDisplay/Properties/VideoPropertyTester.mxml?rev=3D14184= 22& r1=3D1418421&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/tests/components/VideoDisplay/= P roperties/VideoPropertyTester.mxml (original) +++ incubator/flex/sdk/branches/develop/mustella/tests/components/VideoDisplay/= P roperties/VideoPropertyTester.mxml Fri Dec 7 18:21:25 2012 @@ -75,7 +75,7 @@ --> - + @@ -217,7 +217,7 @@ --> - + Modified: incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_gif_runtime.mxml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/t= e sts/containers/tabnavigator/SWFs/comps/button_gif_runtime.mxml?rev=3D141842= 2&r 1=3D1418421&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_gif_runtime.mxml (original) +++ incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_gif_runtime.mxml Fri Dec 7 18:21:25 2012 @@ -18,6 +18,28 @@ --> + + + @@ -25,40 +47,40 @@ - + - + - + - + - + - + - + - + \ No newline at end of file Modified: incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_jpg_runtime.mxml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/t= e sts/containers/tabnavigator/SWFs/comps/button_jpg_runtime.mxml?rev=3D141842= 2&r 1=3D1418421&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_jpg_runtime.mxml (original) +++ incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_jpg_runtime.mxml Fri Dec 7 18:21:25 2012 @@ -18,6 +18,28 @@ --> + + + @@ -25,39 +47,39 @@ - + - + - + - + - + - + - + - + \ No newline at end of file Modified: incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_png_runtime.mxml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/t= e sts/containers/tabnavigator/SWFs/comps/button_png_runtime.mxml?rev=3D141842= 2&r 1=3D1418421&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_png_runtime.mxml (original) +++ incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_png_runtime.mxml Fri Dec 7 18:21:25 2012 @@ -18,6 +18,28 @@ --> + + + @@ -25,39 +47,39 @@ - + - + - + - + - + - + - + - + \ No newline at end of file Modified: incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_swf_runtime.mxml URL: http://svn.apache.org/viewvc/incubator/flex/sdk/branches/develop/mustella/t= e sts/containers/tabnavigator/SWFs/comps/button_swf_runtime.mxml?rev=3D141842= 2&r 1=3D1418421&r2=3D1418422&view=3Ddiff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D =3D=3D --- incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_swf_runtime.mxml (original) +++ incubator/flex/sdk/branches/develop/mustella/tests/containers/tabnavigator/= S WFs/comps/button_swf_runtime.mxml Fri Dec 7 18:21:25 2012 @@ -18,6 +18,28 @@ --> + + + @@ -25,48 +47,48 @@ - - - - - - - - \ No newline at end of file ------ End of Forwarded Message