You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/09/07 19:24:07 UTC

[01/21] git commit: [flex-asjs] [refs/heads/spark] - [IMPROVEMENT] Added support for static bindings (SWF only, JS works after a separate jx compiler update)

Repository: flex-asjs
Updated Branches:
  refs/heads/spark 56cc9dd7f -> 0d54689d6


[IMPROVEMENT] Added support for static bindings (SWF only, JS works after a separate jx compiler update)


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/275e13ea
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/275e13ea
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/275e13ea

Branch: refs/heads/spark
Commit: 275e13ea6f3d444f17dbf37d240cc45c874fd346
Parents: 670bbaa
Author: greg-dove <gr...@gmail.com>
Authored: Sat Aug 20 10:09:29 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Sat Aug 20 10:26:19 2016 +1200

----------------------------------------------------------------------
 .../org/apache/flex/binding/PropertyWatcher.as  |  32 +-
 .../org/apache/flex/binding/SimpleBinding.as    | 379 ++++++++++---------
 .../org/apache/flex/binding/ViewDataBinding.as  |  12 +-
 3 files changed, 237 insertions(+), 186 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/275e13ea/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as
index 983c8a7..7da6c5b 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as
@@ -52,11 +52,24 @@ package org.apache.flex.binding
                                             getterFunction:Function)
 		{
             this.source = source;
+            this.dispatcher = source;
             this.propertyName = propertyName;
             this.getterFunction = getterFunction;
             this.eventNames = eventNames;
             
 		}
+
+        /**
+         *  The event dispatcher that dispatches an event
+         *  when the source property changes. This can
+         *  be different from the source (example: static bindables)
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        protected var dispatcher:Object;
 		
         /**
          *  The object who's property we are watching.
@@ -139,7 +152,7 @@ package org.apache.flex.binding
          */                
         override public function parentChanged(parent:Object):void
         {
-            if (source && source is IEventDispatcher)
+            if (dispatcher && dispatcher is IEventDispatcher)
                 removeEventListeners();
 
             if (parent is PropertyWatcher)
@@ -147,8 +160,12 @@ package org.apache.flex.binding
             else
                 source = parent;
             
-            if (source && source is IEventDispatcher)
-                addEventListeners();
+            if (source) {
+                if (source is IEventDispatcher) dispatcher = source;
+                else if (source is Class && source['staticEventDispatcher']!=null) dispatcher = source.staticEventDispatcher;
+            }
+
+            if (dispatcher) addEventListeners();
             
             // Now get our property.
             wrapUpdate(updateProperty);
@@ -159,7 +176,7 @@ package org.apache.flex.binding
         private function addEventListeners():void
         {
             if (eventNames is String)
-                source.addEventListener(eventNames as String, changeHandler);
+                dispatcher.addEventListener(eventNames as String, changeHandler);
             else if (eventNames is Array)
             {
                 var arr:Array = eventNames as Array;
@@ -167,7 +184,7 @@ package org.apache.flex.binding
                 for (var i:int = 0; i < n; i++)
                 {
                     var eventName:String = eventNames[i];
-                    source.addEventListener(eventName, changeHandler);           
+                    dispatcher.addEventListener(eventName, changeHandler);
                 }
             }
         }
@@ -175,7 +192,7 @@ package org.apache.flex.binding
         private function removeEventListeners():void
         {
             if (eventNames is String)
-                source.removeEventListener(eventNames as String, changeHandler);
+                dispatcher.removeEventListener(eventNames as String, changeHandler);
             else if (eventNames is Array)
             {
                 var arr:Array = eventNames as Array;
@@ -183,9 +200,10 @@ package org.apache.flex.binding
                 for (var i:int = 0; i < n; i++)
                 {
                     var eventName:String = eventNames[i];
-                    source.removeEventListener(eventName, changeHandler);           
+                    dispatcher.removeEventListener(eventName, changeHandler);
                 }
             }
+            dispatcher = null;
         }
         
         /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/275e13ea/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as
index 7aa3225..1d8bdfc 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as
@@ -17,190 +17,219 @@
 //
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.binding
-{	
-	import org.apache.flex.core.IBead;
-	import org.apache.flex.core.IStrand;
-	import org.apache.flex.core.IDocument;
-    import org.apache.flex.events.IEventDispatcher;
-    import org.apache.flex.events.Event;    
-    import org.apache.flex.events.ValueChangeEvent;
-
-    /**
-     *  The SimpleBinding class is lightweight data-binding class that
-     *  is optimized for simple assignments of one object's property to
-     *  another object's property.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.6
-     *  @productversion FlexJS 0.0
-     */
-	public class SimpleBinding implements IBead, IDocument
+{
+import org.apache.flex.core.IBead;
+import org.apache.flex.core.IStrand;
+import org.apache.flex.core.IDocument;
+import org.apache.flex.events.IEventDispatcher;
+import org.apache.flex.events.Event;
+import org.apache.flex.events.ValueChangeEvent;
+
+/**
+ *  The SimpleBinding class is lightweight data-binding class that
+ *  is optimized for simple assignments of one object's property to
+ *  another object's property.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.2
+ *  @playerversion AIR 2.6
+ *  @productversion FlexJS 0.0
+ */
+public class SimpleBinding implements IBead, IDocument
+{
+	/**
+	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public function SimpleBinding()
+	{
+	}
+
+	/**
+	 *  The event dispatcher that dispatches an event
+	 *  when the source property changes. This can
+	 *  be different from the source (example: static bindables)
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	protected var dispatcher:IEventDispatcher;
+
+
+	/**
+
+	 *  The source object that dispatches an event
+	 *  when the property changes
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	protected var source:Object;
+
+	/**
+	 *  The host mxml document for the source and
+	 *  destination objects.  The source object
+	 *  is either this document for simple bindings
+	 *  like {foo} where foo is a property on
+	 *  the mxml documnet, or found as document[sourceID]
+	 *  for simple bindings like {someid.someproperty}
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	protected var document:Object;
+
+
+	/**
+	 *  The destination object.  It is always the same
+	 *  as the strand.  SimpleBindings are attached to
+	 *  the strand of the destination object.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public var destination:Object;
+
+	/**
+	 *  If not null, the id of the mxml tag who's property
+	 *  is being watched for changes.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public var sourceID:String;
+
+	/**
+	 *  If not null, the name of a property on the
+	 *  mxml document that is being watched for changes.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public var sourcePropertyName:String;
+
+	/**
+	 *  The event name that is dispatched when the source
+	 *  property changes.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public var eventName:String;
+
+	/**
+	 *  The name of the property on the strand that
+	 *  is set when the source property changes.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public var destinationPropertyName:String;
+
+
+
+	/**
+	 *  @copy org.apache.flex.core.IBead#strand
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public function set strand(value:IStrand):void
 	{
-        /**
-         *  Constructor.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		public function SimpleBinding()
+		if (dispatcher) dispatcher.removeEventListener(eventName, changeHandler);
+		if (destination == null)
+			destination = value;
+		if (sourceID != null)
 		{
+			source = dispatcher = document[sourceID] as IEventDispatcher;
+			if (source == null)
+			{
+				document.addEventListener("valueChange",
+						sourceChangeHandler);
+				return;
+			}
 		}
-		
-        /**
-         *  The source object that dispatches an event
-         *  when the property changes
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		protected var source:IEventDispatcher;
-
-        /**
-         *  The host mxml document for the source and
-         *  destination objects.  The source object
-         *  is either this document for simple bindings
-         *  like {foo} where foo is a property on
-         *  the mxml documnet, or found as document[sourceID]
-         *  for simple bindings like {someid.someproperty}
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-        protected var document:Object;
-
-        /**
-         *  The destination object.  It is always the same
-         *  as the strand.  SimpleBindings are attached to
-         *  the strand of the destination object.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		public var destination:Object;
-
-        /**
-         *  If not null, the id of the mxml tag who's property
-         *  is being watched for changes.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		public var sourceID:String;
-
-        /**
-         *  If not null, the name of a property on the
-         *  mxml document that is being watched for changes.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-        public var sourcePropertyName:String;
-        
-        /**
-         *  The event name that is dispatched when the source
-         *  property changes.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		public var eventName:String;
-        
-        /**
-         *  The name of the property on the strand that
-         *  is set when the source property changes.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		public var destinationPropertyName:String;
-		
-        /**
-         *  @copy org.apache.flex.core.IBead#strand
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		public function set strand(value:IStrand):void
+		else {
+			if (sourcePropertyName in document)
+			{
+				source = dispatcher = document as IEventDispatcher;
+			}
+			else if (sourcePropertyName in document.constructor)
+			{
+				source = document.constructor;
+				dispatcher = source.staticEventDispatcher as IEventDispatcher;
+			}
+		}
+
+		dispatcher.addEventListener(eventName, changeHandler);
+		try
 		{
-			if (destination == null)
-                destination = value;
-            if (sourceID != null)
-            {
-    			source = document[sourceID] as IEventDispatcher;
-                if (source == null)
-                {
-                    document.addEventListener("valueChange", 
-                        sourceChangeHandler);
-                    return;
-                }
-            }
-            else
-                source = document as IEventDispatcher;
-			source.addEventListener(eventName, changeHandler);
-            try 
-            {
-    			destination[destinationPropertyName] = source[sourcePropertyName];
-            }
-            catch (e:Error) {}
+			destination[destinationPropertyName] = source[sourcePropertyName];
 		}
-		
-        /**
-         *  @copy org.apache.flex.core.IDocument#setDocument()
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-		public function setDocument(document:Object, id:String = null):void
+		catch (e:Error) {}
+
+	}
+
+	/**
+	 *  @copy org.apache.flex.core.IDocument#setDocument()
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public function setDocument(document:Object, id:String = null):void
+	{
+		this.document = document;
+	}
+
+	private function changeHandler(event:Event):void
+	{
+		if (event.type == ValueChangeEvent.VALUE_CHANGE)
 		{
-			this.document = document;
+			var vce:ValueChangeEvent = event as ValueChangeEvent;
+			if (vce.propertyName != sourcePropertyName)
+				return;
 		}
-		
-		private function changeHandler(event:Event):void
+		destination[destinationPropertyName] = source[sourcePropertyName];
+	}
+
+	private function sourceChangeHandler(event:ValueChangeEvent):void
+	{
+		if (event.propertyName != sourceID)
+			return;
+
+		if (dispatcher)
+			dispatcher.removeEventListener(eventName, changeHandler);
+
+		source = dispatcher = document[sourceID] as IEventDispatcher;
+		if (source)
 		{
-            if (event.type == ValueChangeEvent.VALUE_CHANGE)
-            {
-                var vce:ValueChangeEvent = event as ValueChangeEvent;
-                if (vce.propertyName != sourcePropertyName)
-                    return;
-            }
+			dispatcher.addEventListener(eventName, changeHandler);
 			destination[destinationPropertyName] = source[sourcePropertyName];
 		}
-        
-        private function sourceChangeHandler(event:ValueChangeEvent):void
-        {
-            if (event.propertyName != sourceID)
-                return;
-            
-            if (source)
-                source.removeEventListener(eventName, changeHandler);
-            
-            source = document[sourceID] as IEventDispatcher;
-            if (source)
-            {
-                source.addEventListener(eventName, changeHandler);
-                destination[destinationPropertyName] = source[sourcePropertyName];
-            }
-        }
 	}
 }
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/275e13ea/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as
index ac2cbdf..55a39bd 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as
@@ -147,12 +147,12 @@ package org.apache.flex.binding
                                 {
                                     if (destObject)
                                     {
-                                        sb.destination = destObject;
-                                        _strand.addBead(sb);
+                                        cb.destination = destObject;
+                                        _strand.addBead(cb);
                                     }
                                     else
                                     {
-                                        deferredBindings[binding.destination[0]] = sb;
+                                        deferredBindings[binding.destination[0]] = cb;
                                         IEventDispatcher(_strand).addEventListener("valueChange", deferredBindingsHandler);
                                     }
                                 }
@@ -222,8 +222,11 @@ package org.apache.flex.binding
                 if (isValidWatcher)
                 {
                     var type:String = watcher.type;
+					var parentObj:Object = _strand;
                     switch (type)
                     {
+						case "static":
+                            parentObj = watcher.parentObj;
                         case "property":
                         {
                             var pw:PropertyWatcher = new PropertyWatcher(this, 
@@ -234,7 +237,7 @@ package org.apache.flex.binding
                             if (parentWatcher)
                                 pw.parentChanged(parentWatcher.value);
                             else
-                                pw.parentChanged(_strand);
+                                pw.parentChanged(parentObj);
                             if (parentWatcher)
                                 parentWatcher.addChild(pw);
                             if (watcher.children == null)
@@ -242,6 +245,7 @@ package org.apache.flex.binding
                             foundWatcher = true;
                             break;
                         }
+
                     }
                     if (watcher.children)
                     {


[21/21] git commit: [flex-asjs] [refs/heads/spark] - Merge branch 'develop' into spark

Posted by ah...@apache.org.
Merge branch 'develop' into spark


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/0d54689d
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/0d54689d
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/0d54689d

Branch: refs/heads/spark
Commit: 0d54689d62394c4d99a27fe43aa1438e8a1f5ec2
Parents: 5f700e5 a547f47
Author: Alex Harui <ah...@apache.org>
Authored: Tue Sep 6 21:34:40 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Sep 6 21:34:40 2016 -0700

----------------------------------------------------------------------
 examples/build_example.xml                      |  18 +
 .../flex/binding/ApplicationDataBinding.as      |   5 +-
 .../apache/flex/binding/ContainerDataBinding.as |   5 +-
 .../org/apache/flex/binding/GenericBinding.as   |  27 +-
 .../flex/binding/MXMLBeadViewDataBinding.as     |   5 +-
 .../org/apache/flex/binding/PropertyWatcher.as  |  33 +-
 .../org/apache/flex/binding/SimpleBinding.as    | 382 ++++++++++---------
 .../org/apache/flex/binding/ViewDataBinding.as  | 170 +++++----
 .../main/flex/org/apache/flex/core/ICSSImpl.as  |  28 ++
 .../org/apache/flex/core/SimpleCSSValuesImpl.as |   2 +-
 .../org/apache/flex/events/EventDispatcher.as   |  20 +-
 manualtests/DataBindingTestbed/README.txt       |  51 +++
 manualtests/DataBindingTestbed/build.xml        |  74 ++++
 .../src/DataBindingTestbed.mxml                 |  40 ++
 .../DataBindingTestbed/src/MyInitialView.mxml   | 318 +++++++++++++++
 .../src/bindables/BindableBaseVO.as             |  31 ++
 .../src/bindables/BindableMxmlTest.as           |  33 ++
 .../src/bindables/BindableSubVO1.as             |  33 ++
 .../src/bindables/BindableSubVO2.as             |  33 ++
 .../src/bindables/BindableSubVO3.as             |  33 ++
 .../src/bindables/InstanceTimer.as              |  69 ++++
 .../src/bindables/StaticTimer.as                |  61 +++
 .../src/bindables/UnbindableBaseVO.as           |  31 ++
 .../src/bindables/UnbindableIntermediateVO.as   |  31 ++
 .../DataBindingTestbed/src/models/MyModel.as    |  47 +++
 .../src/unbindable/UnbindableParent.as          |  38 ++
 manualtests/build_example.xml                   |  18 +
 27 files changed, 1367 insertions(+), 269 deletions(-)
----------------------------------------------------------------------



[14/21] git commit: [flex-asjs] [refs/heads/spark] - removed the pom.xml to make it consistent with other manual tests.

Posted by ah...@apache.org.
removed the pom.xml to make it consistent with other manual tests.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/8f33c645
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/8f33c645
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/8f33c645

Branch: refs/heads/spark
Commit: 8f33c645c8d1f19efed6a7840a22c6798747ab7e
Parents: c120383
Author: greg-dove <gr...@gmail.com>
Authored: Thu Sep 1 09:52:39 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Thu Sep 1 09:52:39 2016 +1200

----------------------------------------------------------------------
 manualtests/DataBindingTestbed/pom.xml | 68 -----------------------------
 1 file changed, 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8f33c645/manualtests/DataBindingTestbed/pom.xml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/pom.xml b/manualtests/DataBindingTestbed/pom.xml
deleted file mode 100644
index 66f3199..0000000
--- a/manualtests/DataBindingTestbed/pom.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  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
-
-      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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.flex.flexjs.examples</groupId>
-    <artifactId>examples-flexjs</artifactId>
-    <version>0.7.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>DataBindingTestbed</artifactId>
-  <version>0.7.0-SNAPSHOT</version>
-  <packaging>swf</packaging>
-
-  <name>Apache Flex - FlexJS: Examples: FlexJS: DataBindingTestbed</name>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.flex.flexjs.compiler</groupId>
-        <artifactId>flexjs-maven-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <mainClass>DataBindingTestbed.mxml</mainClass>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>com.adobe.flash.framework</groupId>
-      <artifactId>playerglobal</artifactId>
-      <version>${flash.version}</version>
-      <type>swc</type>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-</project>


[06/21] git commit: [flex-asjs] [refs/heads/spark] - [EXAMPLE] Added new example for databinding tests

Posted by ah...@apache.org.
[EXAMPLE] Added new example for databinding tests


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/c62b3ab2
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/c62b3ab2
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/c62b3ab2

Branch: refs/heads/spark
Commit: c62b3ab270198c5163e4975e6605f175f9937f5b
Parents: 6d4521d
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 13:53:53 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Mon Aug 29 13:53:53 2016 +1200

----------------------------------------------------------------------
 examples/flexjs/DataBindingTestbed/README.txt   |  51 +++++
 examples/flexjs/DataBindingTestbed/build.xml    |  46 ++++
 examples/flexjs/DataBindingTestbed/pom.xml      |  68 ++++++
 .../src/DataBindingTestbed.mxml                 |  40 ++++
 .../DataBindingTestbed/src/MyInitialView.mxml   | 211 +++++++++++++++++++
 .../src/bindables/BindableBaseVO.as             |  31 +++
 .../src/bindables/BindableSubVO1.as             |  33 +++
 .../src/bindables/BindableSubVO2.as             |  33 +++
 .../src/bindables/BindableSubVO3.as             |  33 +++
 .../src/bindables/InstanceTimer.as              |  69 ++++++
 .../src/bindables/StaticTimer.as                |  61 ++++++
 .../src/bindables/UnbindableBaseVO.as           |  31 +++
 .../src/bindables/UnbindableIntermediateVO.as   |  31 +++
 .../DataBindingTestbed/src/models/MyModel.as    |  47 +++++
 .../src/unbindable/UnbindableParent.as          |  38 ++++
 15 files changed, 823 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/README.txt
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/README.txt b/examples/flexjs/DataBindingTestbed/README.txt
new file mode 100644
index 0000000..2ab7094
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/README.txt
@@ -0,0 +1,51 @@
+\ufeff////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+DESCRIPTION
+
+The DataBindingTestbed shows a Flex application that is simply a test application
+for a range of Databinding variations. Its primary purpose is to demonstrate to the
+development team examples of bindings that do not currently work or do not work well,
+as well as what currently works, and therefore serves to demonstrate what areas
+require attention for improvements or bugfixes.
+
+This Flex application may be run as a Flash SWF or cross-compiled (using Falcon JX)
+into JavaScript and HTML and run without Flash.
+
+The DataBindingTestbed is primarily for development purposes, but also shows 
+simple examples of a range of binding types that might be useful as examples for
+FlexJS developers to see how things work (or what currently does not work).
+The examples in the code that are commented out are very likely things that need
+attention or fixes. If you encounter any bugs in binding that are not currently
+represented in this example, please contact the dev team via the mailing list 
+   web view : https://lists.apache.org/list.html?dev@flex.apache.org
+  subscribe : dev-subscribe@flex.apache.org
+participate : dev@flex.apache.org
+
+
+COMPONENTS and BEADS
+
+- Container
+- Label
+
+
+NOTES
+
+The cross-compilation to JavaScript often results in non-fatal warnings. Some of these warnings
+should be addressed in future releases of the Falcon JX compiler.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/build.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/build.xml b/examples/flexjs/DataBindingTestbed/build.xml
new file mode 100644
index 0000000..6713be4
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/build.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!--
+
+  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
+
+      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.
+
+-->
+
+
+<project name="databindingexample" default="main" basedir=".">
+    <property name="FLEXJS_HOME" location="../../.."/>
+    <property name="example" value="DataBindingTestbed" />
+    
+    <property file="${FLEXJS_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${FLEXJS_HOME}/build.properties"/>
+    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+    <property name="opt1_arg" value="-js-output-optimization=skipAsCoercions" />
+
+    <include file="${basedir}/../../build_example.xml" />
+    
+    <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}">
+    </target>
+    
+    <target name="clean">
+        <delete dir="${basedir}/bin" failonerror="false" />
+        <delete dir="${basedir}/bin-debug" failonerror="false" />
+        <delete dir="${basedir}/bin-release" failonerror="false" />
+        <delete dir="${basedir}/target" failonerror="false" />
+    </target>
+
+    
+    
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/pom.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/pom.xml b/examples/flexjs/DataBindingTestbed/pom.xml
new file mode 100644
index 0000000..66f3199
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/pom.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  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
+
+      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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.flex.flexjs.examples</groupId>
+    <artifactId>examples-flexjs</artifactId>
+    <version>0.7.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>DataBindingTestbed</artifactId>
+  <version>0.7.0-SNAPSHOT</version>
+  <packaging>swf</packaging>
+
+  <name>Apache Flex - FlexJS: Examples: FlexJS: DataBindingTestbed</name>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.flex.flexjs.compiler</groupId>
+        <artifactId>flexjs-maven-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <mainClass>DataBindingTestbed.mxml</mainClass>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-war-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>com.adobe.flash.framework</groupId>
+      <artifactId>playerglobal</artifactId>
+      <version>${flash.version}</version>
+      <type>swc</type>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/DataBindingTestbed.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/DataBindingTestbed.mxml b/examples/flexjs/DataBindingTestbed/src/DataBindingTestbed.mxml
new file mode 100644
index 0000000..6857198
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/DataBindingTestbed.mxml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+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
+
+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.
+
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+                   xmlns:local="*"
+                   xmlns:js="library://ns.apache.org/flexjs/basic" 
+                   xmlns:models="models.*" 
+                   xmlns:controllers="controllers.*"
+                   
+                   >
+    <js:valuesImpl>
+        <js:SimpleCSSValuesImpl />
+    </js:valuesImpl>
+    <js:initialView>
+        <local:MyInitialView />
+    </js:initialView>
+    <js:model>
+        <models:MyModel />
+    </js:model>
+    <js:beads>
+        <js:CSSFontFaceBead />
+        <js:ViewSourceContextMenuOption />
+    </js:beads>
+</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
new file mode 100644
index 0000000..07493f6
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+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
+
+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.
+
+-->
+<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:js="library://ns.apache.org/flexjs/basic"
+			    initComplete="initControls()">
+    <fx:Script>
+        <![CDATA[
+			import models.MyModel;
+			import bindables.StaticTimer;
+			import bindables.InstanceTimer;
+			import bindables.*;
+			import unbindable.UnbindableParent;
+			
+			import org.apache.flex.events.CustomEvent;
+			import org.apache.flex.utils.Timer;
+			import org.apache.flex.events.ValueChangeEvent;
+			private static var timer:Timer;
+			
+			private static const STATIC_PRIVATE_CONST :* = "STATIC_PRIVATE_CONST_VAL";
+			public static const STATIC_PUBLIC_CONST :String = "STATIC_PUBLIC_CONST_VAL";
+			
+			private const INSTANCE_PRIVATE_CONST :* = "INSTANCE_PRIVATE_CONST_VAL";
+			public const INSTANCE_PUBLIC_CONST :String = "INSTANCE_PUBLIC_CONST_VAL";
+			
+			[Bindable]
+			private static var timerText:String="1";
+			
+			public static function get altTimerText():String {
+				return timerText;
+			}
+						
+			private static var _inited:Boolean;
+			
+			private static function updateTimer(e:Event=null):void{
+				var val:uint = uint(timerText);
+				val++;
+				timerText = val.toString();
+			//	trace('updateTimer',val, timerText);
+	
+			}
+			
+			private static function initStaticTimer():void{
+			if (!_inited) {
+				timer = new Timer(1000);
+				timer.addEventListener(Timer.TIMER,updateTimer);
+				timer.start();
+				_inited = true;
+				trace('initStaticTimer');
+			}
+			}
+			
+			public static var staticMM:MyModel;
+			
+			[Bindable]
+			public static var staticMMBindable:MyModel;
+			
+			
+			private  var inst_timer:Timer;
+			
+			[Bindable]
+            public var instanceTimerText:String ="1";
+			
+			private  function updateInstTimer(e:Event=null):void{
+				var val:uint = uint(instanceTimerText);
+				val++;
+				instanceTimerText = val.toString();
+			//	trace('updateTimer',val, timerText);
+	
+			}
+			
+            
+		
+			private function initControls():void
+			{
+					
+					initStaticTimer();
+					trace('initControls');
+					inst_timer = new Timer(1500);
+				inst_timer.addEventListener(Timer.TIMER,updateInstTimer);
+				inst_timer.start();
+				
+				StaticTimer.initStaticTimer();
+				instTimer = new InstanceTimer();
+			}
+			
+			[Bindable]
+			public var instTimer:InstanceTimer ;// = InstanceTimer.getInstance();
+            
+			
+			[Bindable]
+			public var unbindableParentInstance:UnbindableParent = new UnbindableParent();
+			
+			
+			public var subVO1:BindableSubVO1;
+			public var subVO2:BindableSubVO2;
+			public var subVO3:BindableSubVO3;
+		]]>
+    </fx:Script>
+	<fx:Style>
+		@namespace basic "library://ns.apache.org/flexjs/basic";
+		
+		.output {
+			font-size: 20px;
+		}
+
+        .topContainer {
+            padding: 10px;
+            
+        }
+        .leftSide {
+            vertical-align: top;
+            margin-right: 10px;
+        }
+        
+        .rightSide {
+            vertical-align: top;
+            margin-left: 10px;
+            padding-left: 10px;
+        }
+        
+        .quoteButton {
+            margin-top: 10px;
+            margin-bottom: 10px;
+        }
+	</fx:Style>
+    <js:states>
+        <js:State name="hideAll" />        
+        <js:State name="showAll" />        
+    </js:states>
+    <js:beads>
+        <js:ViewDataBinding/>
+    </js:beads>
+    <js:Container x="0" y="0" className="topContainer" >
+        <js:beads>
+            <js:VerticalLayout />
+        </js:beads>
+		<js:Label id="testExplanation" text="These examples are mostly intended for FlexJS dev team to verify various binding functionality" />
+        <js:Label id="expressionTest" text="model expression binding (5 sec timer) {MyModel(applicationModel).modelInstanceTime}" />
+		<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />
+		<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />
+		<js:Container width="500">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="timerDemoSB1" text="test local static simplebinding" />
+			<js:Label id="timerDemoSB2" text="{timerText}" />
+		</js:Container>		
+		<js:Container width="500">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="timerDemoSB3"  text="test external static simplebinding" />
+			<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="timerDemoSB5"  text="test internal instance simplebinding" />
+			<js:Label id="timerDemoSB6"  text="{instanceTimerText}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+			<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
+			<js:Label id="staticConstDemo2"  text="{STATIC_PUBLIC_CONST}" />
+			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+			<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
+			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="timerDemoSB7"  text="test nested instance timercount" />
+			<js:Label id="timerDemoSB8"  text="{instTimer.timerCount}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+			<js:Label id="unbindableParentDemo1"  text="{unbindableParentInstance.unbindableField}" />
+			<js:Label id="unbindableParentDemo1b"  text="{unbindableParentInstance.unbindableField2}" />
+			<js:Label id="unbindableParentDemo2"  text="{unbindableParentInstance.UNBINDABLE_CONST_FIELD}" />
+			
+		</js:Container>
+    </js:Container>	
+</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/bindables/BindableBaseVO.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/BindableBaseVO.as b/examples/flexjs/DataBindingTestbed/src/bindables/BindableBaseVO.as
new file mode 100644
index 0000000..a53f3b7
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/bindables/BindableBaseVO.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableBaseVO
+	{
+			
+
+			
+			[Bindable]
+			public var fieldOfBindableBaseVO:String = "fieldOfBindableBaseVO_value";
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO1.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO1.as b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO1.as
new file mode 100644
index 0000000..740b579
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO1.as
@@ -0,0 +1,33 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableSubVO1 extends BindableBaseVO
+	{
+			
+
+			
+			[Bindable]
+			public var fieldOfBindableSubVO1:String = "fieldOfBindableSubVO1_value";
+			
+
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO2.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO2.as b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO2.as
new file mode 100644
index 0000000..43392c4
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO2.as
@@ -0,0 +1,33 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableSubVO2 extends UnbindableBaseVO
+	{
+			
+
+			
+			[Bindable]
+			public var fieldofBindableSubVO2:String = "fieldofBindableSubVO2_value";
+			
+
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO3.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO3.as b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO3.as
new file mode 100644
index 0000000..7f6d082
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO3.as
@@ -0,0 +1,33 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableSubVO3 extends UnbindableIntermediateVO
+	{
+			
+
+			
+			[Bindable]
+			public var fieldofBindableSubVO3:String = "fieldofBindableSubVO3_value";
+			
+
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/bindables/InstanceTimer.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/InstanceTimer.as b/examples/flexjs/DataBindingTestbed/src/bindables/InstanceTimer.as
new file mode 100644
index 0000000..4a67b44
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/bindables/InstanceTimer.as
@@ -0,0 +1,69 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+	import org.apache.flex.events.Event;
+
+				import org.apache.flex.utils.Timer;
+			
+	public class InstanceTimer
+	{
+			
+			public function InstanceTimer(){
+				initTimer(1500);
+			}
+			
+			
+			private static var _inst:InstanceTimer;
+			
+			public static function getInstance():InstanceTimer {
+				return _inst || (_inst = new InstanceTimer());
+			
+			}
+			
+			
+			
+			
+			private var timer:Timer;
+						
+			
+			
+			private function updateTimer(e:Event=null):void{
+				timerCount++
+			//	trace('updateTimer',timerCount);
+	
+			}
+			
+			private  function initTimer(val:uint):void{
+
+				timer = new Timer(val);
+				timer.addEventListener(Timer.TIMER,updateTimer);
+				timer.start();
+				trace('init InstanceTimer');
+
+			}
+			
+			[Bindable]
+			public var timerCount:uint = 0;
+			
+			[Bindable]
+			public static var stimerCount:uint = 0;
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/bindables/StaticTimer.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/StaticTimer.as b/examples/flexjs/DataBindingTestbed/src/bindables/StaticTimer.as
new file mode 100644
index 0000000..2f9ab70
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/bindables/StaticTimer.as
@@ -0,0 +1,61 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+	import org.apache.flex.events.Event;
+
+				import org.apache.flex.utils.Timer;
+	public class StaticTimer
+	{
+	
+			public static const EXTERNAL_STATIC_CONST:String = "EXTERNAL_STATIC_CONST_VAL";
+
+			public function StaticTimer() {
+			//trace("STATICTIMER");
+			}
+			
+			private static var timer:Timer;
+						
+			private static var _inited:Boolean;
+			
+			private static function updateTimer(e:Event=null):void{
+				var val:uint = uint(static_timerText);
+				val++;
+				static_timerText = val.toString();
+			//	trace('updateTimer',val, static_timerText);
+	
+			}
+			
+			public static function initStaticTimer():void{
+			if (!_inited) {
+				timer = new Timer(1000);
+				timer.addEventListener(Timer.TIMER,updateTimer);
+				timer.start();
+				_inited = true;
+				trace('initStaticTimer');
+			}
+			}
+			//[Bindable]
+			public var instBindable:String;
+			
+			[Bindable]
+			public static var static_timerText:String="1";
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableBaseVO.as b/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
new file mode 100644
index 0000000..31fcf79
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class UnbindableBaseVO
+	{
+			
+
+			
+			public var fieldOfUnbindableBaseVO:String = "fieldOfUnbindableBaseVO_value";
+			
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as b/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
new file mode 100644
index 0000000..3e03a8a
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class UnbindableIntermediateVO extends BindableBaseVO
+	{
+			
+
+			
+			public var fieldOfUnbindableIntermediateVO:String = "fieldOfUnbindableIntermediateVO_value";
+			
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/models/MyModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/models/MyModel.as b/examples/flexjs/DataBindingTestbed/src/models/MyModel.as
new file mode 100644
index 0000000..3f66e35
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/models/MyModel.as
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package models
+{
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.utils.Timer;
+	
+	public class MyModel extends EventDispatcher
+	{
+		public function MyModel()
+		{
+			timer = new Timer(5000);
+			timer.addEventListener(Timer.TIMER, updateInstanceTime);
+			timer.start();
+		}
+		
+		private var timer:Timer;
+		
+		[Bindable]
+		public var modelInstanceTime:uint = 0;
+	
+		
+		private function updateInstanceTime(e:Event):void{
+			modelInstanceTime++;
+		}
+		
+		
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c62b3ab2/examples/flexjs/DataBindingTestbed/src/unbindable/UnbindableParent.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/unbindable/UnbindableParent.as b/examples/flexjs/DataBindingTestbed/src/unbindable/UnbindableParent.as
new file mode 100644
index 0000000..1fce4cf
--- /dev/null
+++ b/examples/flexjs/DataBindingTestbed/src/unbindable/UnbindableParent.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package unbindable
+{
+
+	public class UnbindableParent
+	{
+	
+			
+			
+			public static var unbindableStaticField:String = "unbindableStaticField_value";
+			
+			
+			public var unbindableField:String = "unbindableField_value";
+			
+			public var unbindableField2:String = "unbindableField2_value";
+			
+			public const UNBINDABLE_CONST_FIELD:String="UNBINDABLE_CONST_FIELD_VALUE";
+			
+
+	}
+}
\ No newline at end of file


[12/21] git commit: [flex-asjs] [refs/heads/spark] - move DataBindingTestbed to manualtests

Posted by ah...@apache.org.
move DataBindingTestbed to manualtests


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/095bb4f0
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/095bb4f0
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/095bb4f0

Branch: refs/heads/spark
Commit: 095bb4f0f45addddb2594ad0aee1cf56c8cc8774
Parents: a939eb9
Author: Alex Harui <ah...@apache.org>
Authored: Tue Aug 30 00:36:54 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Aug 30 00:36:54 2016 -0700

----------------------------------------------------------------------
 examples/flexjs/DataBindingTestbed/README.txt   |  51 ----
 examples/flexjs/DataBindingTestbed/build.xml    |  46 ----
 examples/flexjs/DataBindingTestbed/pom.xml      |  68 -----
 .../src/DataBindingTestbed.mxml                 |  40 ---
 .../DataBindingTestbed/src/MyInitialView.mxml   | 250 -------------------
 .../src/bindables/BindableBaseVO.as             |  31 ---
 .../src/bindables/BindableSubVO1.as             |  33 ---
 .../src/bindables/BindableSubVO2.as             |  33 ---
 .../src/bindables/BindableSubVO3.as             |  33 ---
 .../src/bindables/InstanceTimer.as              |  69 -----
 .../src/bindables/StaticTimer.as                |  61 -----
 .../src/bindables/UnbindableBaseVO.as           |  31 ---
 .../src/bindables/UnbindableIntermediateVO.as   |  31 ---
 .../DataBindingTestbed/src/models/MyModel.as    |  47 ----
 .../src/unbindable/UnbindableParent.as          |  38 ---
 manualtests/DataBindingTestbed/README.txt       |  51 ++++
 manualtests/DataBindingTestbed/build.xml        |  46 ++++
 manualtests/DataBindingTestbed/pom.xml          |  68 +++++
 .../src/DataBindingTestbed.mxml                 |  40 +++
 .../DataBindingTestbed/src/MyInitialView.mxml   | 250 +++++++++++++++++++
 .../src/bindables/BindableBaseVO.as             |  31 +++
 .../src/bindables/BindableSubVO1.as             |  33 +++
 .../src/bindables/BindableSubVO2.as             |  33 +++
 .../src/bindables/BindableSubVO3.as             |  33 +++
 .../src/bindables/InstanceTimer.as              |  69 +++++
 .../src/bindables/StaticTimer.as                |  61 +++++
 .../src/bindables/UnbindableBaseVO.as           |  31 +++
 .../src/bindables/UnbindableIntermediateVO.as   |  31 +++
 .../DataBindingTestbed/src/models/MyModel.as    |  47 ++++
 .../src/unbindable/UnbindableParent.as          |  38 +++
 30 files changed, 862 insertions(+), 862 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/README.txt
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/README.txt b/examples/flexjs/DataBindingTestbed/README.txt
deleted file mode 100644
index 2ab7094..0000000
--- a/examples/flexjs/DataBindingTestbed/README.txt
+++ /dev/null
@@ -1,51 +0,0 @@
-\ufeff////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-DESCRIPTION
-
-The DataBindingTestbed shows a Flex application that is simply a test application
-for a range of Databinding variations. Its primary purpose is to demonstrate to the
-development team examples of bindings that do not currently work or do not work well,
-as well as what currently works, and therefore serves to demonstrate what areas
-require attention for improvements or bugfixes.
-
-This Flex application may be run as a Flash SWF or cross-compiled (using Falcon JX)
-into JavaScript and HTML and run without Flash.
-
-The DataBindingTestbed is primarily for development purposes, but also shows 
-simple examples of a range of binding types that might be useful as examples for
-FlexJS developers to see how things work (or what currently does not work).
-The examples in the code that are commented out are very likely things that need
-attention or fixes. If you encounter any bugs in binding that are not currently
-represented in this example, please contact the dev team via the mailing list 
-   web view : https://lists.apache.org/list.html?dev@flex.apache.org
-  subscribe : dev-subscribe@flex.apache.org
-participate : dev@flex.apache.org
-
-
-COMPONENTS and BEADS
-
-- Container
-- Label
-
-
-NOTES
-
-The cross-compilation to JavaScript often results in non-fatal warnings. Some of these warnings
-should be addressed in future releases of the Falcon JX compiler.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/build.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/build.xml b/examples/flexjs/DataBindingTestbed/build.xml
deleted file mode 100644
index 6713be4..0000000
--- a/examples/flexjs/DataBindingTestbed/build.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<!--
-
-  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
-
-      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.
-
--->
-
-
-<project name="databindingexample" default="main" basedir=".">
-    <property name="FLEXJS_HOME" location="../../.."/>
-    <property name="example" value="DataBindingTestbed" />
-    
-    <property file="${FLEXJS_HOME}/env.properties"/>
-    <property environment="env"/>
-    <property file="${FLEXJS_HOME}/build.properties"/>
-    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="opt1_arg" value="-js-output-optimization=skipAsCoercions" />
-
-    <include file="${basedir}/../../build_example.xml" />
-    
-    <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}">
-    </target>
-    
-    <target name="clean">
-        <delete dir="${basedir}/bin" failonerror="false" />
-        <delete dir="${basedir}/bin-debug" failonerror="false" />
-        <delete dir="${basedir}/bin-release" failonerror="false" />
-        <delete dir="${basedir}/target" failonerror="false" />
-    </target>
-
-    
-    
-</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/pom.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/pom.xml b/examples/flexjs/DataBindingTestbed/pom.xml
deleted file mode 100644
index 66f3199..0000000
--- a/examples/flexjs/DataBindingTestbed/pom.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  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
-
-      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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.flex.flexjs.examples</groupId>
-    <artifactId>examples-flexjs</artifactId>
-    <version>0.7.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>DataBindingTestbed</artifactId>
-  <version>0.7.0-SNAPSHOT</version>
-  <packaging>swf</packaging>
-
-  <name>Apache Flex - FlexJS: Examples: FlexJS: DataBindingTestbed</name>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.flex.flexjs.compiler</groupId>
-        <artifactId>flexjs-maven-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <mainClass>DataBindingTestbed.mxml</mainClass>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>build-helper-maven-plugin</artifactId>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <dependency>
-      <groupId>com.adobe.flash.framework</groupId>
-      <artifactId>playerglobal</artifactId>
-      <version>${flash.version}</version>
-      <type>swc</type>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/DataBindingTestbed.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/DataBindingTestbed.mxml b/examples/flexjs/DataBindingTestbed/src/DataBindingTestbed.mxml
deleted file mode 100644
index 6857198..0000000
--- a/examples/flexjs/DataBindingTestbed/src/DataBindingTestbed.mxml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-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
-
-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.
-
--->
-<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
-                   xmlns:local="*"
-                   xmlns:js="library://ns.apache.org/flexjs/basic" 
-                   xmlns:models="models.*" 
-                   xmlns:controllers="controllers.*"
-                   
-                   >
-    <js:valuesImpl>
-        <js:SimpleCSSValuesImpl />
-    </js:valuesImpl>
-    <js:initialView>
-        <local:MyInitialView />
-    </js:initialView>
-    <js:model>
-        <models:MyModel />
-    </js:model>
-    <js:beads>
-        <js:CSSFontFaceBead />
-        <js:ViewSourceContextMenuOption />
-    </js:beads>
-</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
deleted file mode 100644
index 286c097..0000000
--- a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
+++ /dev/null
@@ -1,250 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
-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
-
-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.
-
--->
-<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
-				xmlns:js="library://ns.apache.org/flexjs/basic"
-			    initComplete="initControls()">
-    <fx:Script>
-        <![CDATA[
-			import models.MyModel;
-			import bindables.StaticTimer;
-			import bindables.InstanceTimer;
-			import bindables.*;
-			import unbindable.UnbindableParent;
-			
-			import org.apache.flex.events.CustomEvent;
-			import org.apache.flex.utils.Timer;
-			import org.apache.flex.events.ValueChangeEvent;
-			import org.apache.flex.html.Label;
-			private static var timer:Timer;
-			
-			private static const STATIC_PRIVATE_CONST :* = "STATIC_PRIVATE_CONST_VAL";
-			public static const STATIC_PUBLIC_CONST :String = "STATIC_PUBLIC_CONST_VAL";
-			
-			private const INSTANCE_PRIVATE_CONST :* = "INSTANCE_PRIVATE_CONST_VAL";
-			public const INSTANCE_PUBLIC_CONST :String = "INSTANCE_PUBLIC_CONST_VAL";
-			
-			[Bindable]
-			private static var timerText:String="1";
-			
-			public static function get altTimerText():String {
-				return timerText;
-			}
-						
-			private static var _inited:Boolean;
-			
-			private static function updateTimer(e:Event=null):void{
-				var val:uint = uint(timerText);
-				val++;
-				timerText = val.toString();
-	
-			}
-			
-			private static function initStaticTimer():void{
-			if (!_inited) {
-				timer = new Timer(1000);
-				timer.addEventListener(Timer.TIMER,updateTimer);
-				timer.start();
-				_inited = true;
-				trace('initStaticTimer');
-			}
-			}
-			
-			public static var staticMM:MyModel;
-			
-			[Bindable]
-			public static var staticMMBindable:MyModel;
-			
-			
-			private  var inst_timer:Timer;
-			
-			[Bindable]
-            public var instanceTimerText:String ="1";
-			
-			private  function updateInstTimer(e:Event=null):void{
-				var val:uint = uint(instanceTimerText);
-				val++;
-				instanceTimerText = val.toString();
-	
-			}
-			
-            
-		
-			private function initControls():void
-			{
-					
-					initStaticTimer();
-					trace('initControls');
-					inst_timer = new Timer(1500);
-					inst_timer.addEventListener(Timer.TIMER,updateInstTimer);
-					inst_timer.start();
-					
-					StaticTimer.initStaticTimer();
-					try{
-					  instTimer = new InstanceTimer();
-					} catch (e:Error) {
-						addErrorReport("problem instantiating InstanceTimer ",e);
-					}
-					
-					try {
-						var test:Object = new BindableSubVO1()
-					} catch (e:Error) {
-						addErrorReport("problem instantiating BindableSubVO1 ",e);
-					}
-					try {
-					   test = new BindableSubVO2()
-					} catch (e:Error) {
-						addErrorReport("problem instantiating BindableSubVO2 ",e);
-					}
-					try {
-						test = new BindableSubVO3()
-					} catch (e:Error) {
-						addErrorReport("problem instantiating BindableSubVO3 ",e);
-					}
-					
-					
-			}
-			
-			
-			private function addErrorReport(desc:String,e:Error):void{
-				var label:Label = new Label();
-				label.text = desc +"["+e+"]";
-				errorReporter.addElement(label);
-			
-			}
-			
-			[Bindable]
-			public var instTimer:InstanceTimer ;
-            
-			
-			[Bindable]
-			public var unbindableParentInstance:UnbindableParent = new UnbindableParent();
-			
-			
-			public var subVO1:BindableSubVO1;
-			public var subVO2:BindableSubVO2;
-			public var subVO3:BindableSubVO3;
-		]]>
-    </fx:Script>
-	<fx:Style>
-		@namespace basic "library://ns.apache.org/flexjs/basic";
-		
-		.output {
-			font-size: 20px;
-		}
-
-        .topContainer {
-            padding: 10px;
-            
-        }
-        .leftSide {
-            vertical-align: top;
-            margin-right: 10px;
-        }
-        
-        .rightSide {
-            vertical-align: top;
-            margin-left: 10px;
-            padding-left: 10px;
-        }
-        
-        .quoteButton {
-            margin-top: 10px;
-            margin-bottom: 10px;
-        }
-	</fx:Style>
-    <js:states>
-        <js:State name="hideAll" />        
-        <js:State name="showAll" />        
-    </js:states>
-    <js:beads>
-        <js:ViewDataBinding/>
-    </js:beads>
-    <js:Container x="0" y="0" className="topContainer" >
-        <js:beads>
-            <js:VerticalLayout />
-        </js:beads>
-		<js:Label id="testExplanation" text="These examples are mostly intended for FlexJS dev team to verify various binding functionality" />
-        <js:Label id="expressionTest" text="model expression binding [WORKS](5 sec timer) {MyModel(applicationModel).modelInstanceTime}" />
-		<js:Label text="[WORKS] 2 examples of binding expressions with static vars:"/>
-		<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />
-		<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />
-		<js:Container width="500">
-			<js:beads>
-				<js:HorizontalLayout />
-			</js:beads>
-			<js:Label id="timerDemoSB1" text="[WORKS] test local static simplebinding" />
-			<js:Label id="timerDemoSB2" text="{timerText}" />
-		</js:Container>		
-		<js:Container width="500">
-			<js:beads>
-				<js:HorizontalLayout />
-			</js:beads>
-			<js:Label id="timerDemoSB3"  text="[WORKS] test external static simplebinding " />
-			<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />
-		</js:Container>
-		<js:Container width="500">
-			<js:beads>
-				<js:HorizontalLayout />
-			</js:beads>
-			<js:Label id="timerDemoSB5"  text="[WORKS] test internal instance simplebinding" />
-			<js:Label id="timerDemoSB6"  text="{instanceTimerText}" />
-		</js:Container>
-		<js:Container width="500">
-			<js:beads>
-				<js:VerticalLayout />
-			</js:beads>
-			<js:Label text="[WORKS] 3 examples of binding into local and external static constants"/>
-			<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
-			<js:Label id="staticConstDemo2"  text="{STATIC_PUBLIC_CONST}" />
-			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />-->
-		</js:Container>
-		<js:Container width="500">
-			<js:beads>
-				<js:VerticalLayout />
-			</js:beads>
-			<js:Label text="[WORKS] 2 examples of binding into local instance constants"/>
-			<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
-			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />
-		</js:Container>
-		<js:Container width="500">
-			<js:beads>
-				<js:HorizontalLayout />
-			</js:beads>
-			<js:Label id="timerDemoSB7"  text="[WORKS] test nested instance timercount " />
-			<js:Label id="timerDemoSB8"  text="{instTimer.timerCount}" />
-		</js:Container>
-		<js:Container width="500">
-			<js:beads>
-				<js:VerticalLayout />
-			</js:beads>
-			<js:Label text="[WORKS] 2 examples of binding into an Unbindable parent (compiler warning, one const binding):"/>
-			<js:Label id="unbindableParentDemo1"  text="{unbindableParentInstance.unbindableField}" />
-			<js:Label id="unbindableParentDemo1b"  text="{unbindableParentInstance.unbindableField2}" />
-			<js:Label id="unbindableParentDemo2"  text="{unbindableParentInstance.UNBINDABLE_CONST_FIELD}" />
-			
-		</js:Container>
-		<js:Container width="500" id="errorReporter">
-			<js:beads>
-				<js:VerticalLayout />
-			</js:beads>
-						
-		</js:Container>
-    </js:Container>	
-</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/bindables/BindableBaseVO.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/BindableBaseVO.as b/examples/flexjs/DataBindingTestbed/src/bindables/BindableBaseVO.as
deleted file mode 100644
index a53f3b7..0000000
--- a/examples/flexjs/DataBindingTestbed/src/bindables/BindableBaseVO.as
+++ /dev/null
@@ -1,31 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package bindables
-{
-
-	public class BindableBaseVO
-	{
-			
-
-			
-			[Bindable]
-			public var fieldOfBindableBaseVO:String = "fieldOfBindableBaseVO_value";
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO1.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO1.as b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO1.as
deleted file mode 100644
index 740b579..0000000
--- a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO1.as
+++ /dev/null
@@ -1,33 +0,0 @@
-0.////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package bindables
-{
-
-	public class BindableSubVO1 extends BindableBaseVO
-	{
-			
-
-			
-			[Bindable]
-			public var fieldOfBindableSubVO1:String = "fieldOfBindableSubVO1_value";
-			
-
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO2.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO2.as b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO2.as
deleted file mode 100644
index 43392c4..0000000
--- a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO2.as
+++ /dev/null
@@ -1,33 +0,0 @@
-0.////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package bindables
-{
-
-	public class BindableSubVO2 extends UnbindableBaseVO
-	{
-			
-
-			
-			[Bindable]
-			public var fieldofBindableSubVO2:String = "fieldofBindableSubVO2_value";
-			
-
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO3.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO3.as b/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO3.as
deleted file mode 100644
index 7f6d082..0000000
--- a/examples/flexjs/DataBindingTestbed/src/bindables/BindableSubVO3.as
+++ /dev/null
@@ -1,33 +0,0 @@
-0.////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package bindables
-{
-
-	public class BindableSubVO3 extends UnbindableIntermediateVO
-	{
-			
-
-			
-			[Bindable]
-			public var fieldofBindableSubVO3:String = "fieldofBindableSubVO3_value";
-			
-
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/bindables/InstanceTimer.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/InstanceTimer.as b/examples/flexjs/DataBindingTestbed/src/bindables/InstanceTimer.as
deleted file mode 100644
index 4a67b44..0000000
--- a/examples/flexjs/DataBindingTestbed/src/bindables/InstanceTimer.as
+++ /dev/null
@@ -1,69 +0,0 @@
-0.////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package bindables
-{
-	import org.apache.flex.events.Event;
-
-				import org.apache.flex.utils.Timer;
-			
-	public class InstanceTimer
-	{
-			
-			public function InstanceTimer(){
-				initTimer(1500);
-			}
-			
-			
-			private static var _inst:InstanceTimer;
-			
-			public static function getInstance():InstanceTimer {
-				return _inst || (_inst = new InstanceTimer());
-			
-			}
-			
-			
-			
-			
-			private var timer:Timer;
-						
-			
-			
-			private function updateTimer(e:Event=null):void{
-				timerCount++
-			//	trace('updateTimer',timerCount);
-	
-			}
-			
-			private  function initTimer(val:uint):void{
-
-				timer = new Timer(val);
-				timer.addEventListener(Timer.TIMER,updateTimer);
-				timer.start();
-				trace('init InstanceTimer');
-
-			}
-			
-			[Bindable]
-			public var timerCount:uint = 0;
-			
-			[Bindable]
-			public static var stimerCount:uint = 0;
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/bindables/StaticTimer.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/StaticTimer.as b/examples/flexjs/DataBindingTestbed/src/bindables/StaticTimer.as
deleted file mode 100644
index 2f9ab70..0000000
--- a/examples/flexjs/DataBindingTestbed/src/bindables/StaticTimer.as
+++ /dev/null
@@ -1,61 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package bindables
-{
-	import org.apache.flex.events.Event;
-
-				import org.apache.flex.utils.Timer;
-	public class StaticTimer
-	{
-	
-			public static const EXTERNAL_STATIC_CONST:String = "EXTERNAL_STATIC_CONST_VAL";
-
-			public function StaticTimer() {
-			//trace("STATICTIMER");
-			}
-			
-			private static var timer:Timer;
-						
-			private static var _inited:Boolean;
-			
-			private static function updateTimer(e:Event=null):void{
-				var val:uint = uint(static_timerText);
-				val++;
-				static_timerText = val.toString();
-			//	trace('updateTimer',val, static_timerText);
-	
-			}
-			
-			public static function initStaticTimer():void{
-			if (!_inited) {
-				timer = new Timer(1000);
-				timer.addEventListener(Timer.TIMER,updateTimer);
-				timer.start();
-				_inited = true;
-				trace('initStaticTimer');
-			}
-			}
-			//[Bindable]
-			public var instBindable:String;
-			
-			[Bindable]
-			public static var static_timerText:String="1";
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableBaseVO.as b/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
deleted file mode 100644
index 31fcf79..0000000
--- a/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
+++ /dev/null
@@ -1,31 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package bindables
-{
-
-	public class UnbindableBaseVO
-	{
-			
-
-			
-			public var fieldOfUnbindableBaseVO:String = "fieldOfUnbindableBaseVO_value";
-			
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as b/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
deleted file mode 100644
index 3e03a8a..0000000
--- a/examples/flexjs/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
+++ /dev/null
@@ -1,31 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package bindables
-{
-
-	public class UnbindableIntermediateVO extends BindableBaseVO
-	{
-			
-
-			
-			public var fieldOfUnbindableIntermediateVO:String = "fieldOfUnbindableIntermediateVO_value";
-			
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/models/MyModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/models/MyModel.as b/examples/flexjs/DataBindingTestbed/src/models/MyModel.as
deleted file mode 100644
index 3f66e35..0000000
--- a/examples/flexjs/DataBindingTestbed/src/models/MyModel.as
+++ /dev/null
@@ -1,47 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package models
-{
-	import org.apache.flex.events.Event;
-	import org.apache.flex.events.EventDispatcher;
-	import org.apache.flex.utils.Timer;
-	
-	public class MyModel extends EventDispatcher
-	{
-		public function MyModel()
-		{
-			timer = new Timer(5000);
-			timer.addEventListener(Timer.TIMER, updateInstanceTime);
-			timer.start();
-		}
-		
-		private var timer:Timer;
-		
-		[Bindable]
-		public var modelInstanceTime:uint = 0;
-	
-		
-		private function updateInstanceTime(e:Event):void{
-			modelInstanceTime++;
-		}
-		
-		
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/examples/flexjs/DataBindingTestbed/src/unbindable/UnbindableParent.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/unbindable/UnbindableParent.as b/examples/flexjs/DataBindingTestbed/src/unbindable/UnbindableParent.as
deleted file mode 100644
index 1fce4cf..0000000
--- a/examples/flexjs/DataBindingTestbed/src/unbindable/UnbindableParent.as
+++ /dev/null
@@ -1,38 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  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
-//
-//      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.
-//
-////////////////////////////////////////////////////////////////////////////////
-package unbindable
-{
-
-	public class UnbindableParent
-	{
-	
-			
-			
-			public static var unbindableStaticField:String = "unbindableStaticField_value";
-			
-			
-			public var unbindableField:String = "unbindableField_value";
-			
-			public var unbindableField2:String = "unbindableField2_value";
-			
-			public const UNBINDABLE_CONST_FIELD:String="UNBINDABLE_CONST_FIELD_VALUE";
-			
-
-	}
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/README.txt
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/README.txt b/manualtests/DataBindingTestbed/README.txt
new file mode 100644
index 0000000..2ab7094
--- /dev/null
+++ b/manualtests/DataBindingTestbed/README.txt
@@ -0,0 +1,51 @@
+\ufeff////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+DESCRIPTION
+
+The DataBindingTestbed shows a Flex application that is simply a test application
+for a range of Databinding variations. Its primary purpose is to demonstrate to the
+development team examples of bindings that do not currently work or do not work well,
+as well as what currently works, and therefore serves to demonstrate what areas
+require attention for improvements or bugfixes.
+
+This Flex application may be run as a Flash SWF or cross-compiled (using Falcon JX)
+into JavaScript and HTML and run without Flash.
+
+The DataBindingTestbed is primarily for development purposes, but also shows 
+simple examples of a range of binding types that might be useful as examples for
+FlexJS developers to see how things work (or what currently does not work).
+The examples in the code that are commented out are very likely things that need
+attention or fixes. If you encounter any bugs in binding that are not currently
+represented in this example, please contact the dev team via the mailing list 
+   web view : https://lists.apache.org/list.html?dev@flex.apache.org
+  subscribe : dev-subscribe@flex.apache.org
+participate : dev@flex.apache.org
+
+
+COMPONENTS and BEADS
+
+- Container
+- Label
+
+
+NOTES
+
+The cross-compilation to JavaScript often results in non-fatal warnings. Some of these warnings
+should be addressed in future releases of the Falcon JX compiler.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/build.xml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/build.xml b/manualtests/DataBindingTestbed/build.xml
new file mode 100644
index 0000000..6713be4
--- /dev/null
+++ b/manualtests/DataBindingTestbed/build.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<!--
+
+  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
+
+      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.
+
+-->
+
+
+<project name="databindingexample" default="main" basedir=".">
+    <property name="FLEXJS_HOME" location="../../.."/>
+    <property name="example" value="DataBindingTestbed" />
+    
+    <property file="${FLEXJS_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${FLEXJS_HOME}/build.properties"/>
+    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+    <property name="opt1_arg" value="-js-output-optimization=skipAsCoercions" />
+
+    <include file="${basedir}/../../build_example.xml" />
+    
+    <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}">
+    </target>
+    
+    <target name="clean">
+        <delete dir="${basedir}/bin" failonerror="false" />
+        <delete dir="${basedir}/bin-debug" failonerror="false" />
+        <delete dir="${basedir}/bin-release" failonerror="false" />
+        <delete dir="${basedir}/target" failonerror="false" />
+    </target>
+
+    
+    
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/pom.xml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/pom.xml b/manualtests/DataBindingTestbed/pom.xml
new file mode 100644
index 0000000..66f3199
--- /dev/null
+++ b/manualtests/DataBindingTestbed/pom.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  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
+
+      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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.flex.flexjs.examples</groupId>
+    <artifactId>examples-flexjs</artifactId>
+    <version>0.7.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>DataBindingTestbed</artifactId>
+  <version>0.7.0-SNAPSHOT</version>
+  <packaging>swf</packaging>
+
+  <name>Apache Flex - FlexJS: Examples: FlexJS: DataBindingTestbed</name>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.flex.flexjs.compiler</groupId>
+        <artifactId>flexjs-maven-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <mainClass>DataBindingTestbed.mxml</mainClass>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-war-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>build-helper-maven-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
+
+  <dependencies>
+    <dependency>
+      <groupId>com.adobe.flash.framework</groupId>
+      <artifactId>playerglobal</artifactId>
+      <version>${flash.version}</version>
+      <type>swc</type>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/DataBindingTestbed.mxml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/DataBindingTestbed.mxml b/manualtests/DataBindingTestbed/src/DataBindingTestbed.mxml
new file mode 100644
index 0000000..6857198
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/DataBindingTestbed.mxml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+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
+
+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.
+
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+                   xmlns:local="*"
+                   xmlns:js="library://ns.apache.org/flexjs/basic" 
+                   xmlns:models="models.*" 
+                   xmlns:controllers="controllers.*"
+                   
+                   >
+    <js:valuesImpl>
+        <js:SimpleCSSValuesImpl />
+    </js:valuesImpl>
+    <js:initialView>
+        <local:MyInitialView />
+    </js:initialView>
+    <js:model>
+        <models:MyModel />
+    </js:model>
+    <js:beads>
+        <js:CSSFontFaceBead />
+        <js:ViewSourceContextMenuOption />
+    </js:beads>
+</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/MyInitialView.mxml b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
new file mode 100644
index 0000000..286c097
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+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
+
+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.
+
+-->
+<js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:js="library://ns.apache.org/flexjs/basic"
+			    initComplete="initControls()">
+    <fx:Script>
+        <![CDATA[
+			import models.MyModel;
+			import bindables.StaticTimer;
+			import bindables.InstanceTimer;
+			import bindables.*;
+			import unbindable.UnbindableParent;
+			
+			import org.apache.flex.events.CustomEvent;
+			import org.apache.flex.utils.Timer;
+			import org.apache.flex.events.ValueChangeEvent;
+			import org.apache.flex.html.Label;
+			private static var timer:Timer;
+			
+			private static const STATIC_PRIVATE_CONST :* = "STATIC_PRIVATE_CONST_VAL";
+			public static const STATIC_PUBLIC_CONST :String = "STATIC_PUBLIC_CONST_VAL";
+			
+			private const INSTANCE_PRIVATE_CONST :* = "INSTANCE_PRIVATE_CONST_VAL";
+			public const INSTANCE_PUBLIC_CONST :String = "INSTANCE_PUBLIC_CONST_VAL";
+			
+			[Bindable]
+			private static var timerText:String="1";
+			
+			public static function get altTimerText():String {
+				return timerText;
+			}
+						
+			private static var _inited:Boolean;
+			
+			private static function updateTimer(e:Event=null):void{
+				var val:uint = uint(timerText);
+				val++;
+				timerText = val.toString();
+	
+			}
+			
+			private static function initStaticTimer():void{
+			if (!_inited) {
+				timer = new Timer(1000);
+				timer.addEventListener(Timer.TIMER,updateTimer);
+				timer.start();
+				_inited = true;
+				trace('initStaticTimer');
+			}
+			}
+			
+			public static var staticMM:MyModel;
+			
+			[Bindable]
+			public static var staticMMBindable:MyModel;
+			
+			
+			private  var inst_timer:Timer;
+			
+			[Bindable]
+            public var instanceTimerText:String ="1";
+			
+			private  function updateInstTimer(e:Event=null):void{
+				var val:uint = uint(instanceTimerText);
+				val++;
+				instanceTimerText = val.toString();
+	
+			}
+			
+            
+		
+			private function initControls():void
+			{
+					
+					initStaticTimer();
+					trace('initControls');
+					inst_timer = new Timer(1500);
+					inst_timer.addEventListener(Timer.TIMER,updateInstTimer);
+					inst_timer.start();
+					
+					StaticTimer.initStaticTimer();
+					try{
+					  instTimer = new InstanceTimer();
+					} catch (e:Error) {
+						addErrorReport("problem instantiating InstanceTimer ",e);
+					}
+					
+					try {
+						var test:Object = new BindableSubVO1()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO1 ",e);
+					}
+					try {
+					   test = new BindableSubVO2()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO2 ",e);
+					}
+					try {
+						test = new BindableSubVO3()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO3 ",e);
+					}
+					
+					
+			}
+			
+			
+			private function addErrorReport(desc:String,e:Error):void{
+				var label:Label = new Label();
+				label.text = desc +"["+e+"]";
+				errorReporter.addElement(label);
+			
+			}
+			
+			[Bindable]
+			public var instTimer:InstanceTimer ;
+            
+			
+			[Bindable]
+			public var unbindableParentInstance:UnbindableParent = new UnbindableParent();
+			
+			
+			public var subVO1:BindableSubVO1;
+			public var subVO2:BindableSubVO2;
+			public var subVO3:BindableSubVO3;
+		]]>
+    </fx:Script>
+	<fx:Style>
+		@namespace basic "library://ns.apache.org/flexjs/basic";
+		
+		.output {
+			font-size: 20px;
+		}
+
+        .topContainer {
+            padding: 10px;
+            
+        }
+        .leftSide {
+            vertical-align: top;
+            margin-right: 10px;
+        }
+        
+        .rightSide {
+            vertical-align: top;
+            margin-left: 10px;
+            padding-left: 10px;
+        }
+        
+        .quoteButton {
+            margin-top: 10px;
+            margin-bottom: 10px;
+        }
+	</fx:Style>
+    <js:states>
+        <js:State name="hideAll" />        
+        <js:State name="showAll" />        
+    </js:states>
+    <js:beads>
+        <js:ViewDataBinding/>
+    </js:beads>
+    <js:Container x="0" y="0" className="topContainer" >
+        <js:beads>
+            <js:VerticalLayout />
+        </js:beads>
+		<js:Label id="testExplanation" text="These examples are mostly intended for FlexJS dev team to verify various binding functionality" />
+        <js:Label id="expressionTest" text="model expression binding [WORKS](5 sec timer) {MyModel(applicationModel).modelInstanceTime}" />
+		<js:Label text="[WORKS] 2 examples of binding expressions with static vars:"/>
+		<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />
+		<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />
+		<js:Container width="500">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="timerDemoSB1" text="[WORKS] test local static simplebinding" />
+			<js:Label id="timerDemoSB2" text="{timerText}" />
+		</js:Container>		
+		<js:Container width="500">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="timerDemoSB3"  text="[WORKS] test external static simplebinding " />
+			<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="timerDemoSB5"  text="[WORKS] test internal instance simplebinding" />
+			<js:Label id="timerDemoSB6"  text="{instanceTimerText}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+			<js:Label text="[WORKS] 3 examples of binding into local and external static constants"/>
+			<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
+			<js:Label id="staticConstDemo2"  text="{STATIC_PUBLIC_CONST}" />
+			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />-->
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+			<js:Label text="[WORKS] 2 examples of binding into local instance constants"/>
+			<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
+			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:HorizontalLayout />
+			</js:beads>
+			<js:Label id="timerDemoSB7"  text="[WORKS] test nested instance timercount " />
+			<js:Label id="timerDemoSB8"  text="{instTimer.timerCount}" />
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+			<js:Label text="[WORKS] 2 examples of binding into an Unbindable parent (compiler warning, one const binding):"/>
+			<js:Label id="unbindableParentDemo1"  text="{unbindableParentInstance.unbindableField}" />
+			<js:Label id="unbindableParentDemo1b"  text="{unbindableParentInstance.unbindableField2}" />
+			<js:Label id="unbindableParentDemo2"  text="{unbindableParentInstance.UNBINDABLE_CONST_FIELD}" />
+			
+		</js:Container>
+		<js:Container width="500" id="errorReporter">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+						
+		</js:Container>
+    </js:Container>	
+</js:View>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/bindables/BindableBaseVO.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/BindableBaseVO.as b/manualtests/DataBindingTestbed/src/bindables/BindableBaseVO.as
new file mode 100644
index 0000000..a53f3b7
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/BindableBaseVO.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableBaseVO
+	{
+			
+
+			
+			[Bindable]
+			public var fieldOfBindableBaseVO:String = "fieldOfBindableBaseVO_value";
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/bindables/BindableSubVO1.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/BindableSubVO1.as b/manualtests/DataBindingTestbed/src/bindables/BindableSubVO1.as
new file mode 100644
index 0000000..740b579
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/BindableSubVO1.as
@@ -0,0 +1,33 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableSubVO1 extends BindableBaseVO
+	{
+			
+
+			
+			[Bindable]
+			public var fieldOfBindableSubVO1:String = "fieldOfBindableSubVO1_value";
+			
+
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/bindables/BindableSubVO2.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/BindableSubVO2.as b/manualtests/DataBindingTestbed/src/bindables/BindableSubVO2.as
new file mode 100644
index 0000000..43392c4
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/BindableSubVO2.as
@@ -0,0 +1,33 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableSubVO2 extends UnbindableBaseVO
+	{
+			
+
+			
+			[Bindable]
+			public var fieldofBindableSubVO2:String = "fieldofBindableSubVO2_value";
+			
+
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/bindables/BindableSubVO3.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/BindableSubVO3.as b/manualtests/DataBindingTestbed/src/bindables/BindableSubVO3.as
new file mode 100644
index 0000000..7f6d082
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/BindableSubVO3.as
@@ -0,0 +1,33 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableSubVO3 extends UnbindableIntermediateVO
+	{
+			
+
+			
+			[Bindable]
+			public var fieldofBindableSubVO3:String = "fieldofBindableSubVO3_value";
+			
+
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/bindables/InstanceTimer.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/InstanceTimer.as b/manualtests/DataBindingTestbed/src/bindables/InstanceTimer.as
new file mode 100644
index 0000000..4a67b44
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/InstanceTimer.as
@@ -0,0 +1,69 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+	import org.apache.flex.events.Event;
+
+				import org.apache.flex.utils.Timer;
+			
+	public class InstanceTimer
+	{
+			
+			public function InstanceTimer(){
+				initTimer(1500);
+			}
+			
+			
+			private static var _inst:InstanceTimer;
+			
+			public static function getInstance():InstanceTimer {
+				return _inst || (_inst = new InstanceTimer());
+			
+			}
+			
+			
+			
+			
+			private var timer:Timer;
+						
+			
+			
+			private function updateTimer(e:Event=null):void{
+				timerCount++
+			//	trace('updateTimer',timerCount);
+	
+			}
+			
+			private  function initTimer(val:uint):void{
+
+				timer = new Timer(val);
+				timer.addEventListener(Timer.TIMER,updateTimer);
+				timer.start();
+				trace('init InstanceTimer');
+
+			}
+			
+			[Bindable]
+			public var timerCount:uint = 0;
+			
+			[Bindable]
+			public static var stimerCount:uint = 0;
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/bindables/StaticTimer.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/StaticTimer.as b/manualtests/DataBindingTestbed/src/bindables/StaticTimer.as
new file mode 100644
index 0000000..2f9ab70
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/StaticTimer.as
@@ -0,0 +1,61 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+	import org.apache.flex.events.Event;
+
+				import org.apache.flex.utils.Timer;
+	public class StaticTimer
+	{
+	
+			public static const EXTERNAL_STATIC_CONST:String = "EXTERNAL_STATIC_CONST_VAL";
+
+			public function StaticTimer() {
+			//trace("STATICTIMER");
+			}
+			
+			private static var timer:Timer;
+						
+			private static var _inited:Boolean;
+			
+			private static function updateTimer(e:Event=null):void{
+				var val:uint = uint(static_timerText);
+				val++;
+				static_timerText = val.toString();
+			//	trace('updateTimer',val, static_timerText);
+	
+			}
+			
+			public static function initStaticTimer():void{
+			if (!_inited) {
+				timer = new Timer(1000);
+				timer.addEventListener(Timer.TIMER,updateTimer);
+				timer.start();
+				_inited = true;
+				trace('initStaticTimer');
+			}
+			}
+			//[Bindable]
+			public var instBindable:String;
+			
+			[Bindable]
+			public static var static_timerText:String="1";
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/UnbindableBaseVO.as b/manualtests/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
new file mode 100644
index 0000000..31fcf79
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/UnbindableBaseVO.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class UnbindableBaseVO
+	{
+			
+
+			
+			public var fieldOfUnbindableBaseVO:String = "fieldOfUnbindableBaseVO_value";
+			
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as b/manualtests/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
new file mode 100644
index 0000000..3e03a8a
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/UnbindableIntermediateVO.as
@@ -0,0 +1,31 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class UnbindableIntermediateVO extends BindableBaseVO
+	{
+			
+
+			
+			public var fieldOfUnbindableIntermediateVO:String = "fieldOfUnbindableIntermediateVO_value";
+			
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/models/MyModel.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/models/MyModel.as b/manualtests/DataBindingTestbed/src/models/MyModel.as
new file mode 100644
index 0000000..3f66e35
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/models/MyModel.as
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package models
+{
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.utils.Timer;
+	
+	public class MyModel extends EventDispatcher
+	{
+		public function MyModel()
+		{
+			timer = new Timer(5000);
+			timer.addEventListener(Timer.TIMER, updateInstanceTime);
+			timer.start();
+		}
+		
+		private var timer:Timer;
+		
+		[Bindable]
+		public var modelInstanceTime:uint = 0;
+	
+		
+		private function updateInstanceTime(e:Event):void{
+			modelInstanceTime++;
+		}
+		
+		
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/095bb4f0/manualtests/DataBindingTestbed/src/unbindable/UnbindableParent.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/unbindable/UnbindableParent.as b/manualtests/DataBindingTestbed/src/unbindable/UnbindableParent.as
new file mode 100644
index 0000000..1fce4cf
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/unbindable/UnbindableParent.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package unbindable
+{
+
+	public class UnbindableParent
+	{
+	
+			
+			
+			public static var unbindableStaticField:String = "unbindableStaticField_value";
+			
+			
+			public var unbindableField:String = "unbindableField_value";
+			
+			public var unbindableField2:String = "unbindableField2_value";
+			
+			public const UNBINDABLE_CONST_FIELD:String="UNBINDABLE_CONST_FIELD_VALUE";
+			
+
+	}
+}
\ No newline at end of file


[20/21] git commit: [flex-asjs] [refs/heads/spark] - more fixes to try to get MX hello world to run

Posted by ah...@apache.org.
more fixes to try to get MX hello world to run


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/5f700e5b
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/5f700e5b
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/5f700e5b

Branch: refs/heads/spark
Commit: 5f700e5b69c59283796147761e37d16c403017e8
Parents: ffb7f61
Author: Alex Harui <ah...@apache.org>
Authored: Tue Sep 6 21:31:26 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Sep 6 21:31:26 2016 -0700

----------------------------------------------------------------------
 .../flex/org/apache/flex/core/Application.as    |  12 +-
 .../main/flex/flex/system/DefinitionManager.as  |   4 +
 .../MX/src/main/flex/mx/core/Application.as     |  55 +++++++-
 .../MX/src/main/flex/mx/core/Container.as       |  36 +++++
 .../src/main/flex/mx/managers/SystemManager.as  |  66 +++++++---
 .../mx/managers/systemClasses/ChildManager.as   | 131 ++++++++++---------
 .../flex/mx/resources/ResourceManagerImpl.as    |   2 +
 .../flex/reflection/getDefinitionByName.as      |   1 +
 8 files changed, 218 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5f700e5b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
index fcc91b6..84a58b5 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/Application.as
@@ -577,15 +577,21 @@ package org.apache.flex.core
 		COMPILE::JS
 		protected var startupTimer:Timer;
 
+        COMPILE::JS
+        protected function createElement():void
+        {
+            element = document.getElementsByTagName('body')[0];
+            element.flexjs_wrapper = this;
+            element.className = 'Application';            
+        }
+        
 		/**
 		 * @flexjsignorecoercion org.apache.flex.core.IBead
 		 */
 		COMPILE::JS
 		public function start():void
 		{
-			element = document.getElementsByTagName('body')[0];
-			element.flexjs_wrapper = this;
-			element.className = 'Application';
+            createElement();
 			
 			if (model is IBead) addBead(model as IBead);
 			if (controller is IBead) addBead(controller as IBead);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5f700e5b/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as b/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as
index 6f3acbe..879e233 100644
--- a/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as
+++ b/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as
@@ -46,6 +46,8 @@ COMPILE::SWF
 			}
 			COMPILE::JS
 			{
+                // may not work in release optimized mode
+                name = name.replace("::", ".");
 				var parts:Array = name.split(".");
 				var obj:* = window;
 				for each (var part:String in parts)
@@ -66,6 +68,8 @@ COMPILE::SWF
 			}
 			COMPILE::JS
 			{
+                // may not work in release optimized mode
+                name = name.replace("::", ".");
 				var parts:Array = name.split(".");
 				var obj:* = window;
 				for each (var part:String in parts)

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5f700e5b/frameworks/projects/MX/src/main/flex/mx/core/Application.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/Application.as b/frameworks/projects/MX/src/main/flex/mx/core/Application.as
index 10dab2a..04f1055 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/Application.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/Application.as
@@ -40,6 +40,9 @@ COMPILE::JS
     import flex.display.DisplayObject;
     import flex.display.InteractiveObject;
     import flex.events.Event;
+    import org.apache.flex.core.WrappedHTMLElement;
+    import mx.managers.SystemManager;
+    import mx.managers.systemClasses.ChildManager;
 }
 
 import mx.containers.utilityClasses.ApplicationLayout;
@@ -50,13 +53,15 @@ import mx.managers.IActiveWindowManager;
 import mx.managers.ILayoutManager;
 import mx.managers.ISystemManager;
 // force-link this here. In flex-sdk, it gets dragged in by Effect.
-import mx.managers.LayoutManager; LayoutManager; 
+import mx.managers.LayoutManager; // LayoutManager; force-link syntax not supported by FalconJX 
 // force-link this here. In flex-sdk, it gets injected somehow.
-import mx.core.TextFieldFactory; TextFieldFactory; 
+import mx.core.TextFieldFactory; // TextFieldFactory; force-link syntax not supported by FalconJX 
 import mx.styles.CSSStyleDeclaration;
 import mx.styles.IStyleClient;
 import mx.utils.LoaderUtil;
 import mx.utils.Platform;
+import org.apache.flex.core.SimpleCSSValuesImpl;
+import org.apache.flex.core.ValuesManager;
 
 use namespace mx_internal;
 
@@ -348,6 +353,35 @@ public class Application extends LayoutContainer
      */
     public function Application()
     {
+        start();
+    }
+    
+    /**
+     *  Entry point for JS.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function start():void
+    {
+        var forceLinkLayoutManager:Class = LayoutManager;
+        var forceLinkTextFieldFactory:Class = TextFieldFactory;
+        ValuesManager.valuesImpl = new SimpleCSSValuesImpl();
+        ValuesManager.valuesImpl.init(this);
+        
+        COMPILE::JS
+        {
+            // this is a hack until we get falconjx to put the info on the factory
+            SystemManager.setInfo(this["info"]());
+            var sm:SystemManager = new SystemManager();
+            sm.document = this;
+            systemManager = sm;
+            new ChildManager(sm);
+            sm.kickOff();
+        }
+                
         UIComponentGlobals.layoutManager = ILayoutManager(
             Singleton.getInstance("mx.managers::ILayoutManager"));
         UIComponentGlobals.layoutManager.usePhasedInstantiation = true;
@@ -355,8 +389,6 @@ public class Application extends LayoutContainer
         if (!FlexGlobals.topLevelApplication)
             FlexGlobals.topLevelApplication = this;
 
-        super();
-
         layoutObject = new ApplicationLayout();
         layoutObject.target = this;
         boxLayoutClass = ApplicationLayout;
@@ -370,6 +402,21 @@ public class Application extends LayoutContainer
         initResizeBehavior();
     }
 
+    /**
+     * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement 
+     */
+    COMPILE::JS
+    override protected function createElement():WrappedHTMLElement
+    {
+        element = window.document.createElement('div') as WrappedHTMLElement;
+        element.flexjs_wrapper = this;
+        element.className = 'Application';
+        
+        positioner = element;
+        
+        return element;
+    }
+    
     //--------------------------------------------------------------------------
     //
     //  Variables

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5f700e5b/frameworks/projects/MX/src/main/flex/mx/core/Container.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/Container.as b/frameworks/projects/MX/src/main/flex/mx/core/Container.as
index 1216189..ed2c0b5 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/Container.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/Container.as
@@ -357,6 +357,8 @@ include "../styles/metadata/TextStyles.as"
 
 [ResourceBundle("core")]
 
+[DefaultProperty("mxmlContent")] 
+
 /**
  *  The Container class is an abstract base class for components that
  *  controls the layout characteristics of child components.
@@ -1893,6 +1895,40 @@ public class Container extends UIComponent
     }
 
     //----------------------------------
+    //  mxmlContent
+    //----------------------------------
+    
+    private var _mxmlContent:Array;
+    
+    [ArrayElementType("mx.core.IVisualElement")]
+    
+    /**
+     *  The visual content children for this Group.
+     * 
+     *  This method is used internally by Flex and is not intended for direct
+     *  use by developers.
+     *
+     *  <p>The content items should only be IVisualElement objects.  
+     *  An <code>mxmlContent</code> Array should not be shared between multiple
+     *  Group containers because visual elements can only live in one container 
+     *  at a time.</p>
+     * 
+     *  <p>If the content is an Array, do not modify the Array 
+     *  directly. Use the methods defined by the Group class instead.</p>
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    public function set mxmlContent(value:Array):void
+    {
+        _mxmlContent = value;
+    }
+
+    //----------------------------------
     //  numChildrenCreated
     //----------------------------------
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5f700e5b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
index ab629e3..73052fb 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
@@ -59,6 +59,7 @@ COMPILE::JS
 	import flex.events.EventPhase;
 	import flex.ui.Keyboard;
 	
+    import org.apache.flex.core.WrappedHTMLElement;
 	import org.apache.flex.events.MouseEvent;
 	import org.apache.flex.geom.Point;
 }
@@ -2154,12 +2155,25 @@ public class SystemManager extends MovieClip
 
     /**
      *  @private
+     *  this is overridden by the SWF compiler
      */
     public function info():Object
     {
-        return {};
+        return __info;
     }
 
+    private static var __info:Object;
+    
+    /**
+     *  @private
+     *  this is set by JS code as hack for now.
+     *  eventually, the JS transpiler should generate the object
+     */
+    public static function setInfo(obj:Object):void
+    {
+        __info = obj;
+    }
+    
     //--------------------------------------------------------------------------
     //
     //  Methods
@@ -3016,16 +3030,32 @@ public class SystemManager extends MovieClip
 		}
     }   
 
+    COMPILE::JS
+    override protected function createElement():WrappedHTMLElement
+    {
+        element = window.document.getElementsByTagName('body')[0];
+        element.flexjs_wrapper = this;
+        element.className = 'SystemManager';
+        
+        positioner = element;
+        
+        return element;
+    }
+    
     /**
      *  @private
      *  kick off 
+     *  @flexjsignorecoercion Class
      */
     mx_internal function kickOff():void
     {
-        // already been here
-        if (document)
-            return;
-
+        COMPILE::SWF
+        {
+            // already been here
+            if (document)
+                return;
+        }
+        
         CONFIG::performanceInstrumentation
         {
             var perfUtil:mx.utils.PerfUtil = mx.utils.PerfUtil.getInstance();
@@ -3042,35 +3072,35 @@ public class SystemManager extends MovieClip
 		
         // Generated code will bring in EmbeddedFontRegistry
         Singleton.registerClass("mx.core::IEmbeddedFontRegistry",
-                Class(getDefinitionByName("mx.core::EmbeddedFontRegistry")));
+                getDefinitionByName("mx.core::EmbeddedFontRegistry") as Class);
                 
         Singleton.registerClass("mx.styles::IStyleManager",
-            Class(getDefinitionByName("mx.styles::StyleManagerImpl")));
+            getDefinitionByName("mx.styles::StyleManagerImpl") as Class);
         
         Singleton.registerClass("mx.styles::IStyleManager2",
-            Class(getDefinitionByName("mx.styles::StyleManagerImpl")));
+            getDefinitionByName("mx.styles::StyleManagerImpl") as Class);
 
         // Register other singleton classes.
         // Note: getDefinitionByName() will return null
         // if the class can't be found.
 
         Singleton.registerClass("mx.managers::IBrowserManager",
-            Class(getDefinitionByName("mx.managers::BrowserManagerImpl")));
+            getDefinitionByName("mx.managers::BrowserManagerImpl") as Class);
 
         Singleton.registerClass("mx.managers::ICursorManager",
-            Class(getDefinitionByName("mx.managers::CursorManagerImpl")));
+            getDefinitionByName("mx.managers::CursorManagerImpl") as Class);
 
         Singleton.registerClass("mx.managers::IHistoryManager",
-            Class(getDefinitionByName("mx.managers::HistoryManagerImpl")));
+            getDefinitionByName("mx.managers::HistoryManagerImpl") as Class);
 
         Singleton.registerClass("mx.managers::ILayoutManager",
-            Class(getDefinitionByName("mx.managers::LayoutManager")));
+            getDefinitionByName("mx.managers::LayoutManager") as Class);
 
         Singleton.registerClass("mx.managers::IPopUpManager",
-            Class(getDefinitionByName("mx.managers::PopUpManagerImpl")));
+            getDefinitionByName("mx.managers::PopUpManagerImpl") as Class);
 
         Singleton.registerClass("mx.managers::IToolTipManager2",
-            Class(getDefinitionByName("mx.managers::ToolTipManagerImpl")));
+            getDefinitionByName("mx.managers::ToolTipManagerImpl") as Class);
 
         var dragManagerClass:Class = null;
                 
@@ -3085,15 +3115,15 @@ public class SystemManager extends MovieClip
         var useNative:Boolean = dmInfo == null ? true : String(dmInfo) == "true";
          
         if (useNative)
-            dragManagerClass = Class(getDefinitionByName("mx.managers::NativeDragManagerImpl"));
+            dragManagerClass = getDefinitionByName("mx.managers::NativeDragManagerImpl") as Class;
     
         if (dragManagerClass == null)
-            dragManagerClass = Class(getDefinitionByName("mx.managers::DragManagerImpl"));
+            dragManagerClass = getDefinitionByName("mx.managers::DragManagerImpl") as Class;
         
         Singleton.registerClass("mx.managers::IDragManager", dragManagerClass);
 
         Singleton.registerClass("mx.core::ITextFieldFactory", 
-            Class(getDefinitionByName("mx.core::TextFieldFactory")));
+            getDefinitionByName("mx.core::TextFieldFactory") as Class);
 
         var mixinList:Array = info()["mixins"];
         if (mixinList && mixinList.length > 0)
@@ -3107,7 +3137,7 @@ public class SystemManager extends MovieClip
                 }
                 
                 // trace("initializing mixin " + mixinList[i]);
-                var c:Class = Class(getDefinitionByName(mixinList[i]));
+                var c:Class = getDefinitionByName(mixinList[i]) as Class;
                 c["init"](this);
 
                 CONFIG::performanceInstrumentation

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5f700e5b/frameworks/projects/MX/src/main/flex/mx/managers/systemClasses/ChildManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/systemClasses/ChildManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/systemClasses/ChildManager.as
index 9129891..0b2203e 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/systemClasses/ChildManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/systemClasses/ChildManager.as
@@ -332,77 +332,80 @@ public class ChildManager implements ISystemManagerChildManager
         }
         
 		var app:IUIComponent;
-		// Create a new instance of the toplevel class
-        systemManager.document = app = topLevelWindow = IUIComponent(systemManager.create());
-		COMPILE::SWF
-		{
-			FlashEventConverter.setupAllConverters(app as DisplayObject);
-		}			
-
-        CONFIG::performanceInstrumentation
+        if (!systemManager.document)
         {
-            perfUtil.markTime("SystemManager.create().end");
-        }        
-
-		if (systemManager.document)
-		{
-			// Add listener for the creationComplete event
-			IEventDispatcher(app).addEventListener(FlexEvent.CREATION_COMPLETE,
-												   appCreationCompleteHandler);
-
-			COMPILE::LATER
-			{
-			// if somebody has set this in our applicationdomain hierarchy, don't overwrite it
-			if (!LoaderConfig._url)
-			{
-				LoaderConfig._url = LoaderUtil.normalizeURL(systemManager.loaderInfo);
-				LoaderConfig._parameters = systemManager.loaderInfo.parameters;
-                LoaderConfig._swfVersion = systemManager.loaderInfo.swfVersion;
-            }
-			}
-			
-			IFlexDisplayObject(app).setActualSize(width, height);
-
-			// Wait for the app to finish its initialization sequence
-			// before doing an addChild(). 
-			// Otherwise, the measurement/layout code will cause the
-			// player to do a bunch of unnecessary screen repaints,
-			// which slows application startup time.
-			
-			// Pass the application instance to the preloader.
-			// Note: preloader can be null when the user chooses
-			// Control > Play in the standalone player.
-			if (preloader)
-				preloader.registerApplication(app);
-						
-			// The Application doesn't get added to the SystemManager in the standard way.
-			// We want to recursively create the entire application subtree and process
-			// it with the LayoutManager before putting the Application on the display list.
-			// So here we what would normally happen inside an override of addChild().
-			// Leter, when we actually attach the Application instance,
-			// we call super.addChild(), which is the bare player method.
-			addingChild(DisplayObject(app));
-
+    		// Create a new instance of the toplevel class
+            systemManager.document = app = topLevelWindow = IUIComponent(systemManager.create());
+    		COMPILE::SWF
+    		{
+    			FlashEventConverter.setupAllConverters(app as DisplayObject);
+    		}			
+    
             CONFIG::performanceInstrumentation
             {
-                perfUtil.markTime("Application.createChildren().start");
-            }
+                perfUtil.markTime("SystemManager.create().end");
+            }        
+    
+    		if (systemManager.document)
+    		{
+    			// Add listener for the creationComplete event
+    			IEventDispatcher(app).addEventListener(FlexEvent.CREATION_COMPLETE,
+    												   appCreationCompleteHandler);
+    
+    			COMPILE::LATER
+    			{
+    			// if somebody has set this in our applicationdomain hierarchy, don't overwrite it
+    			if (!LoaderConfig._url)
+    			{
+    				LoaderConfig._url = LoaderUtil.normalizeURL(systemManager.loaderInfo);
+    				LoaderConfig._parameters = systemManager.loaderInfo.parameters;
+                    LoaderConfig._swfVersion = systemManager.loaderInfo.swfVersion;
+                }
+    			}
+    			
+    			IFlexDisplayObject(app).setActualSize(width, height);
+    
+    			// Wait for the app to finish its initialization sequence
+    			// before doing an addChild(). 
+    			// Otherwise, the measurement/layout code will cause the
+    			// player to do a bunch of unnecessary screen repaints,
+    			// which slows application startup time.
+    			
+    			// Pass the application instance to the preloader.
+    			// Note: preloader can be null when the user chooses
+    			// Control > Play in the standalone player.
+    			if (preloader)
+    				preloader.registerApplication(app);
+    						
+    			// The Application doesn't get added to the SystemManager in the standard way.
+    			// We want to recursively create the entire application subtree and process
+    			// it with the LayoutManager before putting the Application on the display list.
+    			// So here we what would normally happen inside an override of addChild().
+    			// Leter, when we actually attach the Application instance,
+    			// we call super.addChild(), which is the bare player method.
+    			addingChild(DisplayObject(app));
+    
+                CONFIG::performanceInstrumentation
+                {
+                    perfUtil.markTime("Application.createChildren().start");
+                }
+                
+                childAdded(DisplayObject(app)); // calls app.createChildren()
+    
+                CONFIG::performanceInstrumentation
+                {
+                    perfUtil.markTime("Application.createChildren().end");
+                }
+    		}
+    		else
+    		{
+    			systemManager.document = this;
+    		}
             
-            childAdded(DisplayObject(app)); // calls app.createChildren()
-
             CONFIG::performanceInstrumentation
             {
-                perfUtil.markTime("Application.createChildren().end");
+                perfUtil.markTime("ChildManager.initializeTopLevelWindow().end");
             }
-		}
-		else
-		{
-			systemManager.document = this;
-		}
-        
-        CONFIG::performanceInstrumentation
-        {
-            perfUtil.markTime("ChildManager.initializeTopLevelWindow().end");
         }
 	}
 	

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5f700e5b/frameworks/projects/MX/src/main/flex/mx/resources/ResourceManagerImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/resources/ResourceManagerImpl.as b/frameworks/projects/MX/src/main/flex/mx/resources/ResourceManagerImpl.as
index cfb5245..8ce4e33 100644
--- a/frameworks/projects/MX/src/main/flex/mx/resources/ResourceManagerImpl.as
+++ b/frameworks/projects/MX/src/main/flex/mx/resources/ResourceManagerImpl.as
@@ -512,6 +512,8 @@ public class ResourceManagerImpl extends EventDispatcher implements IResourceMan
      */
     public function initializeLocaleChain(compiledLocales:Array):void
     {
+        if (!compiledLocales) return;
+        
         localeChain = LocaleSorter.sortLocalesByPreference(
             compiledLocales, getSystemPreferredLocales(), null, true);
     }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/5f700e5b/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/getDefinitionByName.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/getDefinitionByName.as b/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/getDefinitionByName.as
index 3710c62..fa2177a 100755
--- a/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/getDefinitionByName.as
+++ b/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/getDefinitionByName.as
@@ -39,6 +39,7 @@ COMPILE::SWF
         }
         COMPILE::JS
         {
+            name = name.replace("::", ".");
             var parts:Array = name.split('.');
             var n:int = parts.length;
             var o:Object = window;


[11/21] git commit: [flex-asjs] [refs/heads/spark] - Merge branch 'Binding_Improvements' of https://github.com/greg-dove/flex-asjs into develop This closes #13 Conflicts: examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml

Posted by ah...@apache.org.
Merge branch 'Binding_Improvements' of https://github.com/greg-dove/flex-asjs into develop
This closes #13
Conflicts:
	examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/a939eb93
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/a939eb93
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/a939eb93

Branch: refs/heads/spark
Commit: a939eb93d6024de921f488efde4983550fe5bb8e
Parents: b59c4cb a1b5d31
Author: Alex Harui <ah...@apache.org>
Authored: Mon Aug 29 14:50:59 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Aug 29 14:50:59 2016 -0700

----------------------------------------------------------------------
 examples/build_example.xml                      |  18 +
 .../DataBindingTestbed/src/MyInitialView.mxml   |  29 +-
 .../flex/binding/ApplicationDataBinding.as      |   5 +-
 .../apache/flex/binding/ContainerDataBinding.as |   5 +-
 .../org/apache/flex/binding/GenericBinding.as   |  27 +-
 .../flex/binding/MXMLBeadViewDataBinding.as     |   5 +-
 .../org/apache/flex/binding/PropertyWatcher.as  |  33 +-
 .../org/apache/flex/binding/SimpleBinding.as    | 382 ++++++++++---------
 .../org/apache/flex/binding/ViewDataBinding.as  | 170 +++++----
 .../org/apache/flex/events/EventDispatcher.as   |  16 +-
 10 files changed, 408 insertions(+), 282 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a939eb93/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --cc examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
index 3bc2ce5,1ed9853..286c097
--- a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
+++ b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
@@@ -209,10 -210,10 +210,10 @@@ limitations under the License
  			<js:beads>
  				<js:VerticalLayout />
  			</js:beads>
- 			<js:Label text="[BROKEN] 3 examples of binding into local and external static constants"/>
- 			<!--<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
+ 			<js:Label text="[WORKS] 3 examples of binding into local and external static constants"/>
+ 			<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
  			<js:Label id="staticConstDemo2"  text="{STATIC_PUBLIC_CONST}" />
 -			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />
 +			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />-->
  		</js:Container>
  		<js:Container width="500">
  			<js:beads>


[02/21] git commit: [flex-asjs] [refs/heads/spark] - [BUGFIX] [PLEASE REVIEW] This seems necessary for IEventDispatcher implementations (not extending EventDispatcher). Otherwise TypeError occurs. Not ideal...

Posted by ah...@apache.org.
[BUGFIX] [PLEASE REVIEW] This seems necessary for IEventDispatcher implementations (not extending EventDispatcher). Otherwise TypeError occurs. Not ideal...


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/2c21ebc4
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/2c21ebc4
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/2c21ebc4

Branch: refs/heads/spark
Commit: 2c21ebc419cd4e911c74f6247229ca6b375b46a9
Parents: 275e13e
Author: greg-dove <gr...@gmail.com>
Authored: Sat Aug 27 15:57:48 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Sat Aug 27 15:57:48 2016 +1200

----------------------------------------------------------------------
 .../flex/org/apache/flex/events/EventDispatcher.as  | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c21ebc4/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
index 7f1b134..d4bc1a9 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
@@ -61,8 +61,20 @@ package org.apache.flex.events
 	{
         public function EventDispatcher(target:IEventDispatcher = null)
         {
-            if (target != null)
-                setTargetForTesting(target);
+            if (target != null) {
+				setTargetForTesting(target);
+				//the following can be required with IEventDispatcher implementation instead of extending EventDispatcher
+				//(fireListeners is not required by IEventDispatcher, but is called on the 'currentTarget'
+				//by the ancestor goog.events.EventTarget code)
+				var obj:Object = target;
+				if (!obj.fireListeners) {
+					var me:EventDispatcher = this;
+					obj.fireListeners = function ():* {
+						me.fireListeners.apply(me,arguments);
+					};
+				}
+			}
+                
         }
         
         public function hasEventListener(type:String):Boolean


[05/21] git commit: [flex-asjs] [refs/heads/spark] - Merge branch 'develop' into static_binding_fix

Posted by ah...@apache.org.
Merge branch 'develop' into static_binding_fix


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/d24d195c
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/d24d195c
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/d24d195c

Branch: refs/heads/spark
Commit: d24d195ccc6277b3bd3d3dd045ce70a07c57e262
Parents: 674d97f 6d4521d
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 12:17:06 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Mon Aug 29 12:17:06 2016 +1200

----------------------------------------------------------------------
 ApproveFlexJS.xml                               | 45 +++++++++++---------
 .../CordovaCameraExample-app.xml                |  2 +-
 examples/flexjs/DesktopMap/DesktopMap-app.xml   |  2 +-
 examples/flexjs/MapSearch/MapSearch-app.xml     |  2 +-
 .../StorageExample/StorageExample-app.xml       |  2 +-
 .../org/apache/flex/createjs/Application.as     |  2 +-
 6 files changed, 29 insertions(+), 26 deletions(-)
----------------------------------------------------------------------



[18/21] git commit: [flex-asjs] [refs/heads/spark] - ignore test output folder

Posted by ah...@apache.org.
ignore test output folder


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/ffb7f613
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/ffb7f613
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/ffb7f613

Branch: refs/heads/spark
Commit: ffb7f61314f97ea0643f7789533f169afe91b0d9
Parents: 56cc9dd
Author: Alex Harui <ah...@apache.org>
Authored: Tue Sep 6 13:05:06 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Sep 6 13:05:06 2016 -0700

----------------------------------------------------------------------
 .gitignore | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ffb7f613/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 95222f0..c6bc5df 100644
--- a/.gitignore
+++ b/.gitignore
@@ -127,3 +127,4 @@ vf2js/frameworks/js/
 #FlexJS generated files
 frameworks/js/FlexJS/generated-sources
 manualtests/FlexJSTest_SVG/bin
+frameworks/projects/MX/src/test/flex/bin


[07/21] git commit: [flex-asjs] [refs/heads/spark] - Backported to support review and extra info about variants against current develop branch All commented out labels in MyIntialView represent errors or non-functioning bindings.

Posted by ah...@apache.org.
Backported to support review and extra info about variants against current develop branch
All commented out labels in MyIntialView represent errors or non-functioning bindings.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/2c3ac891
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/2c3ac891
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/2c3ac891

Branch: refs/heads/spark
Commit: 2c3ac891661e218aaf1337dcc92d10218dc8f123
Parents: c62b3ab
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 14:55:31 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Mon Aug 29 14:55:31 2016 +1200

----------------------------------------------------------------------
 .../DataBindingTestbed/src/MyInitialView.mxml   | 80 +++++++++++++++-----
 1 file changed, 59 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c3ac891/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
index 07493f6..3bc2ce5 100644
--- a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
+++ b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
@@ -31,6 +31,7 @@ limitations under the License.
 			import org.apache.flex.events.CustomEvent;
 			import org.apache.flex.utils.Timer;
 			import org.apache.flex.events.ValueChangeEvent;
+			import org.apache.flex.html.Label;
 			private static var timer:Timer;
 			
 			private static const STATIC_PRIVATE_CONST :* = "STATIC_PRIVATE_CONST_VAL";
@@ -52,7 +53,6 @@ limitations under the License.
 				var val:uint = uint(timerText);
 				val++;
 				timerText = val.toString();
-			//	trace('updateTimer',val, timerText);
 	
 			}
 			
@@ -81,7 +81,6 @@ limitations under the License.
 				var val:uint = uint(instanceTimerText);
 				val++;
 				instanceTimerText = val.toString();
-			//	trace('updateTimer',val, timerText);
 	
 			}
 			
@@ -93,15 +92,45 @@ limitations under the License.
 					initStaticTimer();
 					trace('initControls');
 					inst_timer = new Timer(1500);
-				inst_timer.addEventListener(Timer.TIMER,updateInstTimer);
-				inst_timer.start();
-				
-				StaticTimer.initStaticTimer();
-				instTimer = new InstanceTimer();
+					inst_timer.addEventListener(Timer.TIMER,updateInstTimer);
+					inst_timer.start();
+					
+					StaticTimer.initStaticTimer();
+					try{
+					  instTimer = new InstanceTimer();
+					} catch (e:Error) {
+						addErrorReport("problem instantiating InstanceTimer ",e);
+					}
+					
+					try {
+						var test:Object = new BindableSubVO1()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO1 ",e);
+					}
+					try {
+					   test = new BindableSubVO2()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO2 ",e);
+					}
+					try {
+						test = new BindableSubVO3()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO3 ",e);
+					}
+					
+					
+			}
+			
+			
+			private function addErrorReport(desc:String,e:Error):void{
+				var label:Label = new Label();
+				label.text = desc +"["+e+"]";
+				errorReporter.addElement(label);
+			
 			}
 			
 			[Bindable]
-			public var instTimer:InstanceTimer ;// = InstanceTimer.getInstance();
+			public var instTimer:InstanceTimer ;
             
 			
 			[Bindable]
@@ -152,60 +181,69 @@ limitations under the License.
             <js:VerticalLayout />
         </js:beads>
 		<js:Label id="testExplanation" text="These examples are mostly intended for FlexJS dev team to verify various binding functionality" />
-        <js:Label id="expressionTest" text="model expression binding (5 sec timer) {MyModel(applicationModel).modelInstanceTime}" />
-		<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />
-		<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />
+        <js:Label id="expressionTest" text="model expression binding [WORKS](5 sec timer) {MyModel(applicationModel).modelInstanceTime}" />
+		<!--<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />-->
+		<!--<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />-->
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB1" text="test local static simplebinding" />
-			<js:Label id="timerDemoSB2" text="{timerText}" />
+			<js:Label id="timerDemoSB1" text="test local static simplebinding [BROKEN]" />
+			<!--<js:Label id="timerDemoSB2" text="{timerText}" />-->
 		</js:Container>		
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB3"  text="test external static simplebinding" />
-			<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />
+			<js:Label id="timerDemoSB3"  text="test external static simplebinding [BROKEN]" />
+			<!--<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />-->
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB5"  text="test internal instance simplebinding" />
+			<js:Label id="timerDemoSB5"  text="test internal instance simplebinding [WORKS]" />
 			<js:Label id="timerDemoSB6"  text="{instanceTimerText}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
-			<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
+			<js:Label text="[BROKEN] 3 examples of binding into local and external static constants"/>
+			<!--<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
 			<js:Label id="staticConstDemo2"  text="{STATIC_PUBLIC_CONST}" />
-			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />
+			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />-->
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
-			<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
-			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />
+			<js:Label text="[BROKEN] 2 examples of binding into local instance constants"/>
+			<!--<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
+			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />-->
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB7"  text="test nested instance timercount" />
+			<js:Label id="timerDemoSB7"  text="test nested instance timercount [BROKEN]" />
 			<js:Label id="timerDemoSB8"  text="{instTimer.timerCount}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
+			<js:Label text="[BROKEN] 2 examples of binding into an Unbindable parent (compiler warning, one const binding):"/>
 			<js:Label id="unbindableParentDemo1"  text="{unbindableParentInstance.unbindableField}" />
 			<js:Label id="unbindableParentDemo1b"  text="{unbindableParentInstance.unbindableField2}" />
 			<js:Label id="unbindableParentDemo2"  text="{unbindableParentInstance.UNBINDABLE_CONST_FIELD}" />
 			
 		</js:Container>
+		<js:Container width="500" id="errorReporter">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+						
+		</js:Container>
     </js:Container>	
 </js:View>


[03/21] git commit: [flex-asjs] [refs/heads/spark] - [IMPROVEMENTS] Cumulative improvements across binding framework classes: - Support in some classes added for static bindings - removed n-2 check in _bindings loop because the extra null appended to the

Posted by ah...@apache.org.
[IMPROVEMENTS] Cumulative improvements across binding framework classes:
- Support in some classes added for static bindings
- removed n-2 check in _bindings loop because the extra null appended to the _bindings array by falcon-jx has now gone
- when a child watcher is not found (e.g. last part of binding chain is not bindable, update the value. This might need more attention


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/95af7f02
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/95af7f02
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/95af7f02

Branch: refs/heads/spark
Commit: 95af7f023d7dc5130d9d7bb50041ca50fbcf3865
Parents: 2c21ebc
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 12:13:14 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Mon Aug 29 12:13:14 2016 +1200

----------------------------------------------------------------------
 .../flex/binding/ApplicationDataBinding.as      |   5 +-
 .../apache/flex/binding/ContainerDataBinding.as |   5 +-
 .../org/apache/flex/binding/GenericBinding.as   |  27 ++-
 .../flex/binding/MXMLBeadViewDataBinding.as     |   5 +-
 .../org/apache/flex/binding/PropertyWatcher.as  |   9 +-
 .../org/apache/flex/binding/SimpleBinding.as    |  41 ++---
 .../org/apache/flex/binding/ViewDataBinding.as  | 164 +++++++++++--------
 7 files changed, 150 insertions(+), 106 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95af7f02/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as
index 2974ea5..94da494 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as
@@ -270,10 +270,7 @@ package org.apache.flex.binding
             var n:int = bindingData.length;
             var index:int = 0;
             var watcherData:Object;
-            // FalconJX adds an extra null to the data so make sure
-            // we have enough data for a complete watcher otherwise
-            // say we are done
-            while (index < n - 2)
+            while (index < n - 1)
             {
                 var watcherIndex:int = bindingData[index++];
                 var type:int = bindingData[index++];

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95af7f02/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as
index 751f235..156aa69 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as
@@ -316,10 +316,7 @@ package org.apache.flex.binding
             var n:int = bindingData.length;
             var index:int = 0;
             var watcherData:Object;
-            // FalconJX adds an extra null to the data so make sure
-            // we have enough data for a complete watcher otherwise
-            // say we are done
-            while (index < n - 2)
+            while (index < n - 1)
             {
                 var watcherIndex:int = bindingData[index++];
                 var type:int = bindingData[index++];

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95af7f02/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/GenericBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/GenericBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/GenericBinding.as
index 72a2b4b..6ad75c8 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/GenericBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/GenericBinding.as
@@ -46,7 +46,8 @@ package org.apache.flex.binding
 		public function GenericBinding()
 		{
 		}
-		
+
+
         /**
          *  The mxml document for the
          *  binding expression.  If you bind to
@@ -107,6 +108,20 @@ package org.apache.flex.binding
          *  @productversion FlexJS 0.0
          */
         public var destinationFunction:Function;
+
+
+        /**
+         *  Flag used to indicate that the document
+         *  value refers to a Class with a static
+         *  bindable source
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        public var isStatic:Boolean;
+        public var staticRoot:Object
 		
         /**
          *  @copy org.apache.flex.core.IBead#strand
@@ -135,7 +150,13 @@ package org.apache.flex.binding
             {
                 var arr:Array = source as Array;
                 var n:int = arr.length;
-                var obj:Object = document[arr[0]];
+                var obj:Object;
+                if (isStatic) {
+                    //ignore first element in the array, it is text representation of
+                    //staticRoot which here refers to the class
+                    obj=staticRoot;
+                } else obj = document[arr[0]];
+
                 if (obj == null)
                     return null;
                 for (var i:int = 1; i < n; i++)
@@ -154,7 +175,7 @@ package org.apache.flex.binding
             }
             else if (source is String)
             {
-                obj = document[source];
+                obj = isStatic ? staticRoot[source] : document[source];
                 return obj;
             }
             return null;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95af7f02/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as
index 7ec1dac..54168d5 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as
@@ -265,10 +265,7 @@ package org.apache.flex.binding
             var n:int = bindingData.length;
             var index:int = 0;
             var watcherData:Object;
-            // FalconJX adds an extra null to the data so make sure
-            // we have enough data for a complete watcher otherwise
-            // say we are done
-            while (index < n - 2)
+            while (index < n - 1)
             {
                 var watcherIndex:int = bindingData[index++];
                 var type:int = bindingData[index++];

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95af7f02/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as
index 7da6c5b..98015dc 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/PropertyWatcher.as
@@ -37,7 +37,7 @@ package org.apache.flex.binding
          *  Constructor.
          *  
          *  @param source The object who's property we are watching.
-         *  @param proeprtyName The name of the property we are watching.
+         *  @param propertyName The name of the property we are watching.
          *  @param eventNames The name or array of names of events that get
          *  dispatched when the property changes.
          *  @param getterFunction  A function to call to get the value
@@ -52,7 +52,6 @@ package org.apache.flex.binding
                                             getterFunction:Function)
 		{
             this.source = source;
-            this.dispatcher = source;
             this.propertyName = propertyName;
             this.getterFunction = getterFunction;
             this.eventNames = eventNames;
@@ -69,7 +68,7 @@ package org.apache.flex.binding
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        protected var dispatcher:Object;
+        protected var dispatcher:IEventDispatcher;
 		
         /**
          *  The object who's property we are watching.
@@ -152,7 +151,7 @@ package org.apache.flex.binding
          */                
         override public function parentChanged(parent:Object):void
         {
-            if (dispatcher && dispatcher is IEventDispatcher)
+            if (dispatcher)
                 removeEventListeners();
 
             if (parent is PropertyWatcher)
@@ -161,7 +160,7 @@ package org.apache.flex.binding
                 source = parent;
             
             if (source) {
-                if (source is IEventDispatcher) dispatcher = source;
+                if (source is IEventDispatcher) dispatcher = IEventDispatcher(source);
                 else if (source is Class && source['staticEventDispatcher']!=null) dispatcher = source.staticEventDispatcher;
             }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95af7f02/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as
index 1d8bdfc..1fef25f 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/SimpleBinding.as
@@ -45,10 +45,13 @@ public class SimpleBinding implements IBead, IDocument
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
-	public function SimpleBinding()
+	public function SimpleBinding(isStatic:Boolean=false)
 	{
+		_isStatic = isStatic;
 	}
 
+	private var _isStatic:Boolean;
+
 	/**
 	 *  The event dispatcher that dispatches an event
 	 *  when the source property changes. This can
@@ -81,6 +84,8 @@ public class SimpleBinding implements IBead, IDocument
 	 *  like {foo} where foo is a property on
 	 *  the mxml documnet, or found as document[sourceID]
 	 *  for simple bindings like {someid.someproperty}
+	 *  It may be the document class for local static
+	 *  bindables (e.g. from a script block)
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
@@ -161,28 +166,24 @@ public class SimpleBinding implements IBead, IDocument
 		if (dispatcher) dispatcher.removeEventListener(eventName, changeHandler);
 		if (destination == null)
 			destination = value;
-		if (sourceID != null)
-		{
-			source = dispatcher = document[sourceID] as IEventDispatcher;
-			if (source == null)
+		if (_isStatic) {
+			source = document;
+			dispatcher = source.staticEventDispatcher as IEventDispatcher;
+		} else {
+			if (sourceID != null)
 			{
-				document.addEventListener("valueChange",
-						sourceChangeHandler);
-				return;
-			}
-		}
-		else {
-			if (sourcePropertyName in document)
-			{
-				source = dispatcher = document as IEventDispatcher;
-			}
-			else if (sourcePropertyName in document.constructor)
-			{
-				source = document.constructor;
-				dispatcher = source.staticEventDispatcher as IEventDispatcher;
-			}
+				source = dispatcher = document[sourceID] as IEventDispatcher;
+				if (source == null)
+				{
+					document.addEventListener("valueChange",
+							sourceChangeHandler);
+					return;
+				}
+			} else
+			source = dispatcher = document as IEventDispatcher;
 		}
 
+
 		dispatcher.addEventListener(eventName, changeHandler);
 		try
 		{

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/95af7f02/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as
index 55a39bd..0612b1d 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as
@@ -75,6 +75,7 @@ package org.apache.flex.binding
         private function initCompleteHandler(event:Event):void
         {
             var fieldWatcher:Object;
+            var isStatic:Boolean;
             var sb:SimpleBinding;
             if (!("_bindings" in _strand))
                 return;
@@ -96,81 +97,57 @@ package org.apache.flex.binding
             for (i = 0; i < n; i++)
             {
                     binding = bindings[i];
-                if (binding.source is Array)
+                var destination:IStrand;
+                if (binding.source is String)
                 {
-                    if (binding.source[0] == "applicationModel")
+                    fieldWatcher = watchers.watcherMap[binding.source];
+                    if (!fieldWatcher) makeConstantBinding(binding, _strand);
+                    else if (fieldWatcher.eventNames is String)
                     {
-                        if (binding.source.length == 2 && binding.destination.length == 2)
+                        isStatic = fieldWatcher.type == "static";
+                        sb = new SimpleBinding(isStatic);
+                        sb.destinationPropertyName = binding.destination[1];
+                        sb.eventName = fieldWatcher.eventNames as String;
+                        sb.sourcePropertyName = binding.source;
+                        if (isStatic)
+                            sb.setDocument(fieldWatcher.parentObj);
+                        else sb.setDocument(_strand);
+                        destObject = _strand[binding.destination[0]];
+                        destination = destObject as IStrand;
+                        if (destination)
+                            destination.addBead(sb);
+                        else
                         {
-                            var destination:IStrand;
-                            // can be simplebinding or constantbinding
-                            var modelWatcher:Object = watchers.watcherMap["applicationModel"];
-                            fieldWatcher = modelWatcher.children.watcherMap[binding.source[1]];
-                            if (fieldWatcher.eventNames is String)
+                            if (destObject)
                             {
-                                sb = new SimpleBinding();
-                                sb.destinationPropertyName = binding.destination[1];
-                                sb.eventName = fieldWatcher.eventNames as String;
-                                sb.sourceID = binding.source[0];
-                                sb.sourcePropertyName = binding.source[1];
-                                sb.setDocument(_strand);
-                                destObject = _strand[binding.destination[0]];                                
-                                destination = destObject as IStrand;
-                                if (destination)
-                                    destination.addBead(sb);
-                                else
-                                {
-                                    if (destObject)
-                                    {
-                                        sb.destination = destObject;
-                                        _strand.addBead(sb);
-                                    }
-                                    else
-                                    {
-                                        deferredBindings[binding.destination[0]] = sb;
-                                        IEventDispatcher(_strand).addEventListener("valueChange", deferredBindingsHandler);
-                                    }
-                                }
+                                sb.destination = destObject;
+                                _strand.addBead(sb);
                             }
-                            else if (fieldWatcher.eventNames == null)
+                            else
                             {
-                                var cb:ConstantBinding = new ConstantBinding();
-                                cb.destinationPropertyName = binding.destination[1];
-                                cb.sourceID = binding.source[0];
-                                cb.sourcePropertyName = binding.source[1];
-                                cb.setDocument(_strand);
-                                destObject = _strand[binding.destination[0]];                                
-                                destination = destObject as IStrand;
-                                if (destination)
-                                    destination.addBead(cb);
-                                else
-                                {
-                                    if (destObject)
-                                    {
-                                        cb.destination = destObject;
-                                        _strand.addBead(cb);
-                                    }
-                                    else
-                                    {
-                                        deferredBindings[binding.destination[0]] = cb;
-                                        IEventDispatcher(_strand).addEventListener("valueChange", deferredBindingsHandler);
-                                    }
-                                }
+                                deferredBindings[binding.destination[0]] = sb;
+                                IEventDispatcher(_strand).addEventListener("valueChange", deferredBindingsHandler);
                             }
                         }
                     }
                 }
-                else if (binding.source is String)
+                else
+                if (binding.source is Array
+                        && binding.source[0] == "applicationModel"
+                        && binding.source.length == 2 && binding.destination.length == 2)
                 {
-                    fieldWatcher = watchers.watcherMap[binding.source];
+                    // can be simplebinding or constantbinding
+                    var modelWatcher:Object = watchers.watcherMap["applicationModel"];
+                    fieldWatcher = modelWatcher.children.watcherMap[binding.source[1]];
                     if (fieldWatcher.eventNames is String)
                     {
                         sb = new SimpleBinding();
                         sb.destinationPropertyName = binding.destination[1];
                         sb.eventName = fieldWatcher.eventNames as String;
-                        sb.sourcePropertyName = binding.source;
+                        sb.sourceID = binding.source[0];
+                        sb.sourcePropertyName = binding.source[1];
                         sb.setDocument(_strand);
-                        destObject = _strand[binding.destination[0]];                                
+                        destObject = _strand[binding.destination[0]];
                         destination = destObject as IStrand;
                         if (destination)
                             destination.addBead(sb);
@@ -188,6 +165,31 @@ package org.apache.flex.binding
                             }
                         }
                     }
+                    else if (fieldWatcher.eventNames == null)
+                    {
+                        var cb:ConstantBinding = new ConstantBinding();
+                        cb.destinationPropertyName = binding.destination[1];
+                        cb.sourceID = binding.source[0];
+                        cb.sourcePropertyName = binding.source[1];
+                        cb.setDocument(_strand);
+                        destObject = _strand[binding.destination[0]];
+                        destination = destObject as IStrand;
+                        if (destination)
+                            destination.addBead(cb);
+                        else
+                        {
+                            if (destObject)
+                            {
+                                cb.destination = destObject;
+                                _strand.addBead(cb);
+                            }
+                            else
+                            {
+                                deferredBindings[binding.destination[0]] = cb;
+                                IEventDispatcher(_strand).addEventListener("valueChange", deferredBindingsHandler);
+                            }
+                        }
+                    }
                 }
                 else
                 {
@@ -196,6 +198,36 @@ package org.apache.flex.binding
             }
         }
 
+        private function makeConstantBinding(binding:Object,strand:IStrand):void{
+            var cb:ConstantBinding = new ConstantBinding();
+            cb.destinationPropertyName = binding.destination[1];
+            if (binding.source is String) {
+                cb.sourcePropertyName = binding.source;
+            } else {
+                cb.sourceID = binding.source[0];
+                cb.sourcePropertyName = binding.source[1];
+            }
+            cb.setDocument(strand);
+            var destObject:Object = strand[binding.destination[0]];
+            var destination:IStrand = destObject as IStrand;
+            if (destination)
+                destination.addBead(cb);
+            else
+            {
+                if (destObject)
+                {
+                    cb.destination = destObject;
+                    strand.addBead(cb);
+                }
+                else
+                {
+                    deferredBindings[binding.destination[0]] = cb;
+                    IEventDispatcher(strand).addEventListener("valueChange", deferredBindingsHandler);
+                }
+            }
+
+        }
+
         private function makeGenericBinding(binding:Object, index:int, watchers:Object):void
         {
             var gb:GenericBinding = new GenericBinding();
@@ -227,6 +259,8 @@ package org.apache.flex.binding
                     {
 						case "static":
                             parentObj = watcher.parentObj;
+                            gb.staticRoot = parentObj;
+                            gb.isStatic = true;
                         case "property":
                         {
                             var pw:PropertyWatcher = new PropertyWatcher(this, 
@@ -253,11 +287,12 @@ package org.apache.flex.binding
                     }
                 }
             }
-            if (!foundWatcher && parentWatcher == null)
-            {
+            if (!foundWatcher )            {
                 // might be a binding to a function that doesn't have change events
-                // so just force an update
-                gb.valueChanged(null);
+                // so just force an update via parentWatcher (if it is set, null if not)
+                if (parentWatcher) gb.valueChanged(parentWatcher.value);
+                else gb.valueChanged(null);
+
             }
         }
         
@@ -268,10 +303,7 @@ package org.apache.flex.binding
             var n:int = bindingData.length;
             var index:int = 0;
             var watcherData:Object;
-            // FalconJX adds an extra null to the data so make sure
-            // we have enough data for a complete watcher otherwise
-            // say we are done
-            while (index < n - 2)
+            while (index < n - 1)
             {
                 var watcherIndex:int = bindingData[index++];
                 var type:int = bindingData[index++];


[04/21] git commit: [flex-asjs] [refs/heads/spark] - Added compiler directives for explicitly defining the framework bindable dispatcher event-related classes

Posted by ah...@apache.org.
Added compiler directives for explicitly defining the framework bindable dispatcher event-related classes


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/674d97fa
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/674d97fa
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/674d97fa

Branch: refs/heads/spark
Commit: 674d97faf2bd5d4dc6803ae33d00539ddb111c50
Parents: 95af7f0
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 12:15:04 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Mon Aug 29 12:15:04 2016 +1200

----------------------------------------------------------------------
 examples/build_example.xml | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/674d97fa/examples/build_example.xml
----------------------------------------------------------------------
diff --git a/examples/build_example.xml b/examples/build_example.xml
index 988ef1a..4f30c8e 100644
--- a/examples/build_example.xml
+++ b/examples/build_example.xml
@@ -117,6 +117,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -166,6 +169,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -203,6 +209,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -240,6 +249,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />
@@ -284,6 +296,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />
@@ -329,6 +344,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />


[10/21] git commit: [flex-asjs] [refs/heads/spark] - Backported to support review and extra info about variants against current develop branch All commented out labels in MyIntialView represent errors or non-functioning bindings. This closes #12

Posted by ah...@apache.org.
Backported to support review and extra info about variants against current develop branch
All commented out labels in MyIntialView represent errors or non-functioning bindings.
This closes #12


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/b59c4cb6
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/b59c4cb6
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/b59c4cb6

Branch: refs/heads/spark
Commit: b59c4cb6cee85dc2bba458bff4a13ead9ffe2842
Parents: c62b3ab
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 14:55:31 2016 +1200
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Aug 29 14:46:52 2016 -0700

----------------------------------------------------------------------
 .../DataBindingTestbed/src/MyInitialView.mxml   | 80 +++++++++++++++-----
 1 file changed, 59 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b59c4cb6/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
index 07493f6..3bc2ce5 100644
--- a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
+++ b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
@@ -31,6 +31,7 @@ limitations under the License.
 			import org.apache.flex.events.CustomEvent;
 			import org.apache.flex.utils.Timer;
 			import org.apache.flex.events.ValueChangeEvent;
+			import org.apache.flex.html.Label;
 			private static var timer:Timer;
 			
 			private static const STATIC_PRIVATE_CONST :* = "STATIC_PRIVATE_CONST_VAL";
@@ -52,7 +53,6 @@ limitations under the License.
 				var val:uint = uint(timerText);
 				val++;
 				timerText = val.toString();
-			//	trace('updateTimer',val, timerText);
 	
 			}
 			
@@ -81,7 +81,6 @@ limitations under the License.
 				var val:uint = uint(instanceTimerText);
 				val++;
 				instanceTimerText = val.toString();
-			//	trace('updateTimer',val, timerText);
 	
 			}
 			
@@ -93,15 +92,45 @@ limitations under the License.
 					initStaticTimer();
 					trace('initControls');
 					inst_timer = new Timer(1500);
-				inst_timer.addEventListener(Timer.TIMER,updateInstTimer);
-				inst_timer.start();
-				
-				StaticTimer.initStaticTimer();
-				instTimer = new InstanceTimer();
+					inst_timer.addEventListener(Timer.TIMER,updateInstTimer);
+					inst_timer.start();
+					
+					StaticTimer.initStaticTimer();
+					try{
+					  instTimer = new InstanceTimer();
+					} catch (e:Error) {
+						addErrorReport("problem instantiating InstanceTimer ",e);
+					}
+					
+					try {
+						var test:Object = new BindableSubVO1()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO1 ",e);
+					}
+					try {
+					   test = new BindableSubVO2()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO2 ",e);
+					}
+					try {
+						test = new BindableSubVO3()
+					} catch (e:Error) {
+						addErrorReport("problem instantiating BindableSubVO3 ",e);
+					}
+					
+					
+			}
+			
+			
+			private function addErrorReport(desc:String,e:Error):void{
+				var label:Label = new Label();
+				label.text = desc +"["+e+"]";
+				errorReporter.addElement(label);
+			
 			}
 			
 			[Bindable]
-			public var instTimer:InstanceTimer ;// = InstanceTimer.getInstance();
+			public var instTimer:InstanceTimer ;
             
 			
 			[Bindable]
@@ -152,60 +181,69 @@ limitations under the License.
             <js:VerticalLayout />
         </js:beads>
 		<js:Label id="testExplanation" text="These examples are mostly intended for FlexJS dev team to verify various binding functionality" />
-        <js:Label id="expressionTest" text="model expression binding (5 sec timer) {MyModel(applicationModel).modelInstanceTime}" />
-		<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />
-		<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />
+        <js:Label id="expressionTest" text="model expression binding [WORKS](5 sec timer) {MyModel(applicationModel).modelInstanceTime}" />
+		<!--<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />-->
+		<!--<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />-->
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB1" text="test local static simplebinding" />
-			<js:Label id="timerDemoSB2" text="{timerText}" />
+			<js:Label id="timerDemoSB1" text="test local static simplebinding [BROKEN]" />
+			<!--<js:Label id="timerDemoSB2" text="{timerText}" />-->
 		</js:Container>		
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB3"  text="test external static simplebinding" />
-			<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />
+			<js:Label id="timerDemoSB3"  text="test external static simplebinding [BROKEN]" />
+			<!--<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />-->
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB5"  text="test internal instance simplebinding" />
+			<js:Label id="timerDemoSB5"  text="test internal instance simplebinding [WORKS]" />
 			<js:Label id="timerDemoSB6"  text="{instanceTimerText}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
-			<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
+			<js:Label text="[BROKEN] 3 examples of binding into local and external static constants"/>
+			<!--<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
 			<js:Label id="staticConstDemo2"  text="{STATIC_PUBLIC_CONST}" />
-			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />
+			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />-->
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
-			<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
-			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />
+			<js:Label text="[BROKEN] 2 examples of binding into local instance constants"/>
+			<!--<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
+			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />-->
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB7"  text="test nested instance timercount" />
+			<js:Label id="timerDemoSB7"  text="test nested instance timercount [BROKEN]" />
 			<js:Label id="timerDemoSB8"  text="{instTimer.timerCount}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
+			<js:Label text="[BROKEN] 2 examples of binding into an Unbindable parent (compiler warning, one const binding):"/>
 			<js:Label id="unbindableParentDemo1"  text="{unbindableParentInstance.unbindableField}" />
 			<js:Label id="unbindableParentDemo1b"  text="{unbindableParentInstance.unbindableField2}" />
 			<js:Label id="unbindableParentDemo2"  text="{unbindableParentInstance.UNBINDABLE_CONST_FIELD}" />
 			
 		</js:Container>
+		<js:Container width="500" id="errorReporter">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+						
+		</js:Container>
     </js:Container>	
 </js:View>


[19/21] git commit: [flex-asjs] [refs/heads/spark] - add marker interface so we know when to emit CSS

Posted by ah...@apache.org.
add marker interface so we know when to emit CSS


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/a547f479
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/a547f479
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/a547f479

Branch: refs/heads/spark
Commit: a547f479312dd21e917ad78d04c8b9dd09f57857
Parents: 22756db
Author: Alex Harui <ah...@apache.org>
Authored: Tue Sep 6 21:25:08 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Sep 6 21:25:08 2016 -0700

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/core/ICSSImpl.as  | 28 ++++++++++++++++++++
 .../org/apache/flex/core/SimpleCSSValuesImpl.as |  2 +-
 2 files changed, 29 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a547f479/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ICSSImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ICSSImpl.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ICSSImpl.as
new file mode 100644
index 0000000..e8b42e5
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/ICSSImpl.as
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.core
+{
+
+	/**
+	 * A marker interface so the compiler knows whether to emit CSS
+	 */
+    public interface ICSSImpl
+	{
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a547f479/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSValuesImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSValuesImpl.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSValuesImpl.as
index dd1f3d1..7afd2ff 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSValuesImpl.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/SimpleCSSValuesImpl.as
@@ -45,7 +45,7 @@ package org.apache.flex.core
      *  @playerversion AIR 2.6
      *  @productversion FlexJS 0.0
      */
-	public class SimpleCSSValuesImpl extends EventDispatcher implements IValuesImpl
+	public class SimpleCSSValuesImpl extends EventDispatcher implements IValuesImpl, ICSSImpl
 	{
         /**
          *  Constructor.


[08/21] git commit: [flex-asjs] [refs/heads/spark] - Merge branch 'Bindable_test_example' into Binding_improvements

Posted by ah...@apache.org.
Merge branch 'Bindable_test_example' into Binding_improvements


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/12a19762
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/12a19762
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/12a19762

Branch: refs/heads/spark
Commit: 12a19762e46f34f60625c33da8292e10ae6fe0fc
Parents: d24d195 2c3ac89
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 15:16:10 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Mon Aug 29 15:16:10 2016 +1200

----------------------------------------------------------------------
 examples/flexjs/DataBindingTestbed/README.txt   |  51 ++++
 examples/flexjs/DataBindingTestbed/build.xml    |  46 ++++
 examples/flexjs/DataBindingTestbed/pom.xml      |  68 +++++
 .../src/DataBindingTestbed.mxml                 |  40 +++
 .../DataBindingTestbed/src/MyInitialView.mxml   | 249 +++++++++++++++++++
 .../src/bindables/BindableBaseVO.as             |  31 +++
 .../src/bindables/BindableSubVO1.as             |  33 +++
 .../src/bindables/BindableSubVO2.as             |  33 +++
 .../src/bindables/BindableSubVO3.as             |  33 +++
 .../src/bindables/InstanceTimer.as              |  69 +++++
 .../src/bindables/StaticTimer.as                |  61 +++++
 .../src/bindables/UnbindableBaseVO.as           |  31 +++
 .../src/bindables/UnbindableIntermediateVO.as   |  31 +++
 .../DataBindingTestbed/src/models/MyModel.as    |  47 ++++
 .../src/unbindable/UnbindableParent.as          |  38 +++
 15 files changed, 861 insertions(+)
----------------------------------------------------------------------



[17/21] git commit: [flex-asjs] [refs/heads/spark] - [MINOR] spaces vs. tabs for consistency

Posted by ah...@apache.org.
[MINOR] spaces vs. tabs for consistency


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/22756db3
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/22756db3
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/22756db3

Branch: refs/heads/spark
Commit: 22756db330967f40dfe21e22cb917260c7aaf271
Parents: ec4e914
Author: greg-dove <gr...@gmail.com>
Authored: Sat Sep 3 10:08:40 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Sat Sep 3 10:08:40 2016 +1200

----------------------------------------------------------------------
 manualtests/build_example.xml | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/22756db3/manualtests/build_example.xml
----------------------------------------------------------------------
diff --git a/manualtests/build_example.xml b/manualtests/build_example.xml
index ab8f0a8..0001365 100644
--- a/manualtests/build_example.xml
+++ b/manualtests/build_example.xml
@@ -45,9 +45,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
-			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
-			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
-			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
+            <arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+            <arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+            <arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -97,9 +97,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
-			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
-			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
-			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
+            <arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+            <arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+            <arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -137,9 +137,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
-			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
-			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
-			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
+            <arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+            <arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+            <arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -175,9 +175,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
-			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
-			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
-			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
+            <arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+            <arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+            <arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />
@@ -219,9 +219,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
-			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
-			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
-			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
+            <arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+            <arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+            <arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />
@@ -264,9 +264,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
-			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
-			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
-			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
+            <arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+            <arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+            <arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />


[16/21] git commit: [flex-asjs] [refs/heads/spark] - [IMPROVEMENT] Fix of EventDispatcher to support IEventDispatcher implementations, without earlier constructor hack. Added a quick verification test to the DatabindingTestbed test

Posted by ah...@apache.org.
[IMPROVEMENT] Fix of EventDispatcher to support IEventDispatcher implementations, without earlier constructor hack. Added a quick verification test to the DatabindingTestbed test


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/ec4e914e
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/ec4e914e
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/ec4e914e

Branch: refs/heads/spark
Commit: ec4e914e67160addc5494d3bd666aed6cfd1d362
Parents: ed100b7
Author: greg-dove <gr...@gmail.com>
Authored: Sat Sep 3 09:35:34 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Sat Sep 3 09:35:34 2016 +1200

----------------------------------------------------------------------
 .../org/apache/flex/events/EventDispatcher.as   | 32 +++++----
 .../DataBindingTestbed/src/MyInitialView.mxml   | 71 ++++++++++++++++----
 2 files changed, 75 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ec4e914e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
index d4bc1a9..0d2b081 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
@@ -59,22 +59,11 @@ package org.apache.flex.events
 	COMPILE::JS
 	public class EventDispatcher extends goog.events.EventTarget implements IEventDispatcher
 	{
+		
+		private var _target:IEventDispatcher;
         public function EventDispatcher(target:IEventDispatcher = null)
         {
-            if (target != null) {
-				setTargetForTesting(target);
-				//the following can be required with IEventDispatcher implementation instead of extending EventDispatcher
-				//(fireListeners is not required by IEventDispatcher, but is called on the 'currentTarget'
-				//by the ancestor goog.events.EventTarget code)
-				var obj:Object = target;
-				if (!obj.fireListeners) {
-					var me:EventDispatcher = this;
-					obj.fireListeners = function ():* {
-						me.fireListeners.apply(me,arguments);
-					};
-				}
-			}
-                
+			_target = target || this;
         }
         
         public function hasEventListener(type:String):Boolean
@@ -86,6 +75,21 @@ package org.apache.flex.events
 		{
 			try 
 			{
+				//we get quite a few string events here, "initialize" etc
+				//so this general approach doesn't work:
+				//event.target = _target;
+				if (event) {
+					if (typeof event == "string") {
+						event = new Event(event as String);
+						event.target = _target;
+						//console.log("created event from string ",event);
+					}
+					else if ("target" in event) {
+						event.target = _target;
+						//console.log("assigned target to event ",event);
+					}
+				} else return false;
+
 				return super.dispatchEvent(event);
 			}
 			catch (e:Error)

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ec4e914e/manualtests/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/MyInitialView.mxml b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
index 3f16bfa..3f788fe 100644
--- a/manualtests/DataBindingTestbed/src/MyInitialView.mxml
+++ b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
@@ -102,42 +102,85 @@ limitations under the License.
 					
 					StaticTimer.initStaticTimer();
 					try{
-					  instTimer = new InstanceTimer();
+					  	instTimer = new InstanceTimer();
 					} catch (e:Error) {
 						addErrorReport("problem instantiating InstanceTimer ",e);
 					}
+					try{
+					  if (instTimer) {
+						  Object(instTimer).addEventListener("testinstTimer",testEventTarget);
+						  _expectedTarget=instTimer;
+						  Object(instTimer).dispatchEvent(new Event("testinstTimer"));
+						  Object(instTimer).removeEventListener("testinstTimer",testEventTarget);
+					  }
+					} catch (e:Error) {
+						 addErrorReport("problem with explicit dispatching from InstanceTimer ",e);
+					}		
 					
 					try {
 						var test:Object = new BindableSubVO1()
 					} catch (e:Error) {
 						addErrorReport("problem instantiating BindableSubVO1 ",e);
 					}
+					
+					try{
+					  if (test) {
+						  test.addEventListener("testBindableSubVO1",testEventTarget);
+						  _expectedTarget=test;
+						  test.dispatchEvent(new Event("testBindableSubVO1"));
+						  test.removeEventListener("testBindableSubVO1",testEventTarget);
+					  
+					  }
+					} catch (e:Error) {
+						addErrorReport("problem with explicit dispatching from BindableSubVO1 ",e);
+					}		
+					
+					
 					test=null;
 					try {
-					   test = new BindableSubVO2();
+						test = new BindableSubVO2();
 					} catch (e:Error) {
 						addErrorReport("problem instantiating BindableSubVO2 ",e);
 					}
-					
-					try {
-					   if (test) {
-							//remove the EventDispatcher constructor hack in js
-						//	if (test.fireListeners) delete test.fireListeners;
-							test.fieldofBindableSubVO2 = "otherValue";
-					   }
-					  
+
+					try{
+						if (test) {
+							test.addEventListener("testBindableSubVO2",testEventTarget);
+							_expectedTarget=test;
+							test.dispatchEvent(new Event("testBindableSubVO2"));
+							test.removeEventListener("testBindableSubVO2",testEventTarget);
+
+						}
 					} catch (e:Error) {
-						addErrorReport("problem dispatching events on BindableSubVO2 ",e);
+						addErrorReport("problem with explicit dispatching from BindableSubVO2 ",e);
 					}
-					
-					test=null;
+
+
+				test=null;
 					try {
 						test = new BindableSubVO3()
 					} catch (e:Error) {
 						addErrorReport("problem instantiating BindableSubVO3 ",e);
 					}
+					try{
+						if (test) {
+							test.addEventListener("testBindableSubVO3",testEventTarget);
+							_expectedTarget=test;
+							test.dispatchEvent(new Event("testBindableSubVO3"));
+							test.removeEventListener("testBindableSubVO3",testEventTarget);
+
+						}
+					} catch (e:Error) {
+						addErrorReport("problem with explicit dispatching from BindableSubVO3 ",e);
+					}
 					
-					
+			}
+			
+			private var _expectedTarget:Object;
+			private function testEventTarget(event:Event):void{
+				if (event.target!=_expectedTarget) {
+					addErrorReport("unexpected event target "+event.type,new Error("unexpected event target"));
+				}
 			}
 			
 			


[15/21] git commit: [flex-asjs] [refs/heads/spark] - [MANUAL TESTS] Fix bad mxml in DatabindingTestbed, added one extra binding test, and also extra binding-related config settings to shared ant targets

Posted by ah...@apache.org.
[MANUAL TESTS] Fix bad mxml in DatabindingTestbed, added one extra binding test, and also extra binding-related config settings to shared ant targets


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/ed100b77
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/ed100b77
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/ed100b77

Branch: refs/heads/spark
Commit: ed100b77c59c63122cc6ac9908af1e3c36485fe9
Parents: 8f33c64
Author: greg-dove <gr...@gmail.com>
Authored: Sat Sep 3 08:40:23 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Sat Sep 3 08:40:23 2016 +1200

----------------------------------------------------------------------
 .../DataBindingTestbed/src/MyInitialView.mxml   | 19 ++++++++---
 .../src/bindables/BindableMxmlTest.as           | 33 ++++++++++++++++++++
 manualtests/build_example.xml                   | 18 +++++++++++
 3 files changed, 66 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ed100b77/manualtests/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/MyInitialView.mxml b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
index c5005be..3f16bfa 100644
--- a/manualtests/DataBindingTestbed/src/MyInitialView.mxml
+++ b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
@@ -19,8 +19,13 @@ limitations under the License.
 -->
 <js:View xmlns:fx="http://ns.adobe.com/mxml/2009"
 				xmlns:js="library://ns.apache.org/flexjs/basic"
+				xmlns:bindables="bindables.*"
 			    initComplete="initControls()">
-    <fx:Script>
+    
+	<fx:Declarations>
+		<bindables:BindableMxmlTest id="mxmlTest" />
+	</fx:Declarations>
+	<fx:Script>
         <![CDATA[
 			import models.MyModel;
 			import bindables.StaticTimer;
@@ -227,7 +232,7 @@ limitations under the License.
 			<js:Label text="[WORKS] 3 examples of binding into local and external static constants"/>
 			<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
 			<js:Label id="staticConstDemo2"  text="{STATIC_PUBLIC_CONST}" />
-			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />-->
+			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
@@ -248,11 +253,17 @@ limitations under the License.
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
-			<js:Label text="[WORKS] 2 examples of binding into an Unbindable parent (compiler warning, one const binding):"/>
+			<js:Label text="[WORKS] 2 examples of var binding and 1 const binding into an Unbindable parent (2 compiler warnings):"/>
 			<js:Label id="unbindableParentDemo1"  text="{unbindableParentInstance.unbindableField}" />
 			<js:Label id="unbindableParentDemo1b"  text="{unbindableParentInstance.unbindableField2}" />
 			<js:Label id="unbindableParentDemo2"  text="{unbindableParentInstance.UNBINDABLE_CONST_FIELD}" />
-			
+		</js:Container>
+		<js:Container width="500">
+			<js:beads>
+				<js:VerticalLayout />
+			</js:beads>
+			<js:Label text="[WORKS] binding into local mxml instance of local bindable actionscript class:"/>
+			<js:Label id="mxmlBindableDemo1"  text="{mxmlTest.fieldofBindableMxmlTest}" />	
 		</js:Container>
 		<js:Container width="500" id="errorReporter">
 			<js:beads>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ed100b77/manualtests/DataBindingTestbed/src/bindables/BindableMxmlTest.as
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/bindables/BindableMxmlTest.as b/manualtests/DataBindingTestbed/src/bindables/BindableMxmlTest.as
new file mode 100644
index 0000000..84dde8a
--- /dev/null
+++ b/manualtests/DataBindingTestbed/src/bindables/BindableMxmlTest.as
@@ -0,0 +1,33 @@
+0.////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+//
+//      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.
+//
+////////////////////////////////////////////////////////////////////////////////
+package bindables
+{
+
+	public class BindableMxmlTest 
+	{
+			
+
+			
+			[Bindable]
+			public var fieldofBindableMxmlTest:String = "fieldofBindableMxmlTest_value";
+			
+
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ed100b77/manualtests/build_example.xml
----------------------------------------------------------------------
diff --git a/manualtests/build_example.xml b/manualtests/build_example.xml
index 45714d1..ab8f0a8 100644
--- a/manualtests/build_example.xml
+++ b/manualtests/build_example.xml
@@ -45,6 +45,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -94,6 +97,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -131,6 +137,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
         </mxmlc>
@@ -166,6 +175,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />
@@ -207,6 +219,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />
@@ -249,6 +264,9 @@
             <arg value="-compiler.binding-value-change-event=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-kind=org.apache.flex.events.ValueChangeEvent" />
             <arg value="-compiler.binding-value-change-event-type=valueChange" />
+			<arg value="-compiler.binding-event-handler-interface=org.apache.flex.events.IEventDispatcher" />
+			<arg value="-compiler.binding-event-handler-class=org.apache.flex.events.EventDispatcher" />
+			<arg value="-compiler.binding-event-handler-event=org.apache.flex.events.Event" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
             <arg value="${extlib_arg}" />


[13/21] git commit: [flex-asjs] [refs/heads/spark] - Fix for ant script in DataBindingTestbed manual test, and added extra test for IEventDispatcher problem in MyInitialView init

Posted by ah...@apache.org.
Fix for ant script in DataBindingTestbed manual test, and added extra test for IEventDispatcher problem in MyInitialView init


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/c1203831
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/c1203831
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/c1203831

Branch: refs/heads/spark
Commit: c12038310333f1c072f129ec1a83453a28c70d55
Parents: 095bb4f
Author: greg-dove <gr...@gmail.com>
Authored: Thu Sep 1 09:35:20 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Thu Sep 1 09:35:20 2016 +1200

----------------------------------------------------------------------
 manualtests/DataBindingTestbed/build.xml        | 42 ++++++++++++++++----
 .../DataBindingTestbed/src/MyInitialView.mxml   | 16 +++++++-
 2 files changed, 50 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c1203831/manualtests/DataBindingTestbed/build.xml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/build.xml b/manualtests/DataBindingTestbed/build.xml
index 6713be4..9a14448 100644
--- a/manualtests/DataBindingTestbed/build.xml
+++ b/manualtests/DataBindingTestbed/build.xml
@@ -20,17 +20,45 @@
 
 
 <project name="databindingexample" default="main" basedir=".">
-    <property name="FLEXJS_HOME" location="../../.."/>
+        <property name="FLEXJS_HOME" location="../.."/>
     <property name="example" value="DataBindingTestbed" />
     
-    <property file="${FLEXJS_HOME}/env.properties"/>
+  <property file="${FLEXJS_HOME}/env.properties"/>
     <property environment="env"/>
     <property file="${FLEXJS_HOME}/build.properties"/>
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
-    <property name="opt1_arg" value="-js-output-optimization=skipAsCoercions" />
-
-    <include file="${basedir}/../../build_example.xml" />
+    <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+    type="file"
+    property="FALCON_HOME"
+    value="${env.FALCON_HOME}"/>
+    
+    <available file="${FLEXJS_HOME}/../flex-falcon/compiler/generated/dist/sdk/lib/falcon-mxmlc.jar"
+    type="file"
+    property="FALCON_HOME"
+    value="${FLEXJS_HOME}/../flex-falcon/compiler/generated/dist/sdk"/>
+    
+    <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+    type="file"
+    property="FALCONJX_HOME"
+    value="${env.FALCONJX_HOME}"/>
+    
+    <available file="${FLEXJS_HOME}/../flex-falcon/compiler-jx/lib/jsc.jar"
+    type="file"
+    property="FALCONJX_HOME"
+    value="${FLEXJS_HOME}/../flex-falcon/compiler-jx"/>
+    
+    <available file="${env.GOOG_HOME}/closure/goog/base.js"
+    type="file"
+    property="GOOG_HOME"
+    value="${env.GOOG_HOME}"/>
     
+    <available file="${FLEXJS_HOME}/js/lib/google/closure-library/closure/goog/base.js"
+    type="file"
+    property="GOOG_HOME"
+    value="${FLEXJS_HOME}/js/lib/google/closure-library"/>
+    
+    <include file="${basedir}/../build_example.xml" />
+
     <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}">
     </target>
     
@@ -38,8 +66,8 @@
         <delete dir="${basedir}/bin" failonerror="false" />
         <delete dir="${basedir}/bin-debug" failonerror="false" />
         <delete dir="${basedir}/bin-release" failonerror="false" />
-        <delete dir="${basedir}/target" failonerror="false" />
-    </target>
+    </target>    
+    
 
     
     

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c1203831/manualtests/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/DataBindingTestbed/src/MyInitialView.mxml b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
index 286c097..c5005be 100644
--- a/manualtests/DataBindingTestbed/src/MyInitialView.mxml
+++ b/manualtests/DataBindingTestbed/src/MyInitialView.mxml
@@ -107,11 +107,25 @@ limitations under the License.
 					} catch (e:Error) {
 						addErrorReport("problem instantiating BindableSubVO1 ",e);
 					}
+					test=null;
 					try {
-					   test = new BindableSubVO2()
+					   test = new BindableSubVO2();
 					} catch (e:Error) {
 						addErrorReport("problem instantiating BindableSubVO2 ",e);
 					}
+					
+					try {
+					   if (test) {
+							//remove the EventDispatcher constructor hack in js
+						//	if (test.fireListeners) delete test.fireListeners;
+							test.fieldofBindableSubVO2 = "otherValue";
+					   }
+					  
+					} catch (e:Error) {
+						addErrorReport("problem dispatching events on BindableSubVO2 ",e);
+					}
+					
+					test=null;
 					try {
 						test = new BindableSubVO3()
 					} catch (e:Error) {


[09/21] git commit: [flex-asjs] [refs/heads/spark] - [EXAMPLE] updated the test examples with the latest status on the binding variants

Posted by ah...@apache.org.
[EXAMPLE] updated the test examples with the latest status on the binding variants


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/a1b5d318
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/a1b5d318
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/a1b5d318

Branch: refs/heads/spark
Commit: a1b5d318a504b9832bdb059ab723e761bfa6f95d
Parents: 12a1976
Author: greg-dove <gr...@gmail.com>
Authored: Mon Aug 29 15:31:46 2016 +1200
Committer: greg-dove <gr...@gmail.com>
Committed: Mon Aug 29 15:31:46 2016 +1200

----------------------------------------------------------------------
 .../DataBindingTestbed/src/MyInitialView.mxml   | 31 ++++++++++----------
 1 file changed, 16 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a1b5d318/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
index 3bc2ce5..1ed9853 100644
--- a/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
+++ b/examples/flexjs/DataBindingTestbed/src/MyInitialView.mxml
@@ -182,58 +182,59 @@ limitations under the License.
         </js:beads>
 		<js:Label id="testExplanation" text="These examples are mostly intended for FlexJS dev team to verify various binding functionality" />
         <js:Label id="expressionTest" text="model expression binding [WORKS](5 sec timer) {MyModel(applicationModel).modelInstanceTime}" />
-		<!--<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />-->
-		<!--<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />-->
+		<js:Label text="[WORKS] 2 examples of binding expressions with static vars:"/>
+		<js:Label id="timerDemo2" width="300" text="{'test local static expression '+timerText}" />
+		<js:Label id="timerDemo" width="300" text="{'test external static expression '+StaticTimer.static_timerText}" />
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB1" text="test local static simplebinding [BROKEN]" />
-			<!--<js:Label id="timerDemoSB2" text="{timerText}" />-->
+			<js:Label id="timerDemoSB1" text="[WORKS] test local static simplebinding" />
+			<js:Label id="timerDemoSB2" text="{timerText}" />
 		</js:Container>		
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB3"  text="test external static simplebinding [BROKEN]" />
-			<!--<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />-->
+			<js:Label id="timerDemoSB3"  text="[WORKS] test external static simplebinding " />
+			<js:Label id="timerDemoSB4"  text="{StaticTimer.static_timerText}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB5"  text="test internal instance simplebinding [WORKS]" />
+			<js:Label id="timerDemoSB5"  text="[WORKS] test internal instance simplebinding" />
 			<js:Label id="timerDemoSB6"  text="{instanceTimerText}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
-			<js:Label text="[BROKEN] 3 examples of binding into local and external static constants"/>
-			<!--<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
+			<js:Label text="[WORKS] 3 examples of binding into local and external static constants"/>
+			<js:Label id="staticConstDemo1"  text="{STATIC_PRIVATE_CONST}" />
 			<js:Label id="staticConstDemo2"  text="{STATIC_PUBLIC_CONST}" />
-			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />-->
+			<js:Label id="staticConstDemo3"  text="{StaticTimer.EXTERNAL_STATIC_CONST}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
-			<js:Label text="[BROKEN] 2 examples of binding into local instance constants"/>
-			<!--<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
-			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />-->
+			<js:Label text="[WORKS] 2 examples of binding into local instance constants"/>
+			<js:Label id="instConstDemo1"  text="{INSTANCE_PRIVATE_CONST}" />
+			<js:Label id="instConstDemo2"  text="{INSTANCE_PUBLIC_CONST}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:HorizontalLayout />
 			</js:beads>
-			<js:Label id="timerDemoSB7"  text="test nested instance timercount [BROKEN]" />
+			<js:Label id="timerDemoSB7"  text="[WORKS] test nested instance timercount " />
 			<js:Label id="timerDemoSB8"  text="{instTimer.timerCount}" />
 		</js:Container>
 		<js:Container width="500">
 			<js:beads>
 				<js:VerticalLayout />
 			</js:beads>
-			<js:Label text="[BROKEN] 2 examples of binding into an Unbindable parent (compiler warning, one const binding):"/>
+			<js:Label text="[WORKS] 2 examples of binding into an Unbindable parent (compiler warning, one const binding):"/>
 			<js:Label id="unbindableParentDemo1"  text="{unbindableParentInstance.unbindableField}" />
 			<js:Label id="unbindableParentDemo1b"  text="{unbindableParentInstance.unbindableField2}" />
 			<js:Label id="unbindableParentDemo2"  text="{unbindableParentInstance.UNBINDABLE_CONST_FIELD}" />