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}" />