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 2015/08/24 07:32:58 UTC
[08/34] git commit: [flex-asjs] [refs/heads/develop] - move a bunch
of examples to manualtests as they are more tests for us than examples for
users
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormExample/src/FormExample.mxml
----------------------------------------------------------------------
diff --git a/manualtests/FormExample/src/FormExample.mxml b/manualtests/FormExample/src/FormExample.mxml
new file mode 100644
index 0000000..4ea7b3b
--- /dev/null
+++ b/manualtests/FormExample/src/FormExample.mxml
@@ -0,0 +1,33 @@
+<?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:models="models.*"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ >
+
+ <js:valuesImpl>
+ <js:SimpleCSSValuesImpl />
+ </js:valuesImpl>
+ <js:initialView>
+ <local:MyFormView />
+ </js:initialView>
+</js:Application>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormExample/src/MyFormView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/FormExample/src/MyFormView.mxml b/manualtests/FormExample/src/MyFormView.mxml
new file mode 100644
index 0000000..894d7a2
--- /dev/null
+++ b/manualtests/FormExample/src/MyFormView.mxml
@@ -0,0 +1,73 @@
+<?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:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ xmlns:local="*"
+ xmlns:models="models.*"
+ xmlns:acc="org.apache.flex.html.accessories.*">
+
+ <fx:Style>
+ .title {
+ font-size: 14pt;
+ font-weight: bold;
+ }
+
+ </fx:Style>
+
+ <fx:Script>
+ <![CDATA[
+ import org.apache.flex.core.IPopUpHost;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.utils.UIUtils;
+
+ ]]>
+ </fx:Script>
+
+ <js:Container width="600" height="700" x="50" y="50">
+ <js:beads>
+ <js:VerticalLayout />
+ </js:beads>
+
+ <js:Label text="Loan Form" className="title" />
+
+ <js:Container width="500">
+ <js:beads>
+ <js:VerticalColumnLayout numColumns="2" />
+ </js:beads>
+ <js:Label text="Name:" />
+ <js:TextInput id="nameField" />
+ <js:Label text="Age:" />
+ <js:TextInput id="ageField">
+ <js:beads>
+ <js:NumericOnlyTextInputBead />
+ </js:beads>
+ </js:TextInput>
+ <js:Label text="Phone Number:" />
+ <js:TextInput id="phoneField" >
+ </js:TextInput>
+ <js:Label text="Date of Loan:" />
+ <js:DateField id="dateOfLoan"/>
+ <js:Label text="Loan Amount:" />
+ <js:TextInput id="loanAmount">
+ </js:TextInput>
+ </js:Container>
+ </js:Container>
+
+</js:ViewBase>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormExample/src/README.txt
----------------------------------------------------------------------
diff --git a/manualtests/FormExample/src/README.txt b/manualtests/FormExample/src/README.txt
new file mode 100644
index 0000000..f38df7f
--- /dev/null
+++ b/manualtests/FormExample/src/README.txt
@@ -0,0 +1,45 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 FormExample application demonstrates several FlexJS components and how they
+can be aligned in a column, much like you would see in a form.
+
+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 components are placed into a Container with a VerticalColumnLayout bead. This bead
+examines each of the children in the Container and aligns them in two columns.
+
+COMPONENTS and BEADS
+
+- Container
+- DateField
+- Label
+- TextInput
+
+- NonVirtualVerticalLayout
+- NumericOnlyTextInputBead
+- VerticalColumnLayout
+
+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/0485c8b6/manualtests/FormatExample/build.xml
----------------------------------------------------------------------
diff --git a/manualtests/FormatExample/build.xml b/manualtests/FormatExample/build.xml
new file mode 100644
index 0000000..00c6a9e
--- /dev/null
+++ b/manualtests/FormatExample/build.xml
@@ -0,0 +1,77 @@
+<?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="formatexample" default="main" basedir=".">
+ <property name="FLEXJS_HOME" location="../.."/>
+ <property name="example" value="FormatExample" />
+
+ <property file="${FLEXJS_HOME}/env.properties"/>
+ <property environment="env"/>
+ <property file="${FLEXJS_HOME}/build.properties"/>
+ <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+ <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" description="Clean build of ${example}">
+ </target>
+ <!-- Uncomment to reproduce cross-compilation error in compilejs step
+ <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" />
+ </target>
+
+
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormatExample/src/FormatExample.mxml
----------------------------------------------------------------------
diff --git a/manualtests/FormatExample/src/FormatExample.mxml b/manualtests/FormatExample/src/FormatExample.mxml
new file mode 100644
index 0000000..4ea7b3b
--- /dev/null
+++ b/manualtests/FormatExample/src/FormatExample.mxml
@@ -0,0 +1,33 @@
+<?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:models="models.*"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ >
+
+ <js:valuesImpl>
+ <js:SimpleCSSValuesImpl />
+ </js:valuesImpl>
+ <js:initialView>
+ <local:MyFormView />
+ </js:initialView>
+</js:Application>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormatExample/src/MyFormView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/FormatExample/src/MyFormView.mxml b/manualtests/FormatExample/src/MyFormView.mxml
new file mode 100644
index 0000000..d974bf5
--- /dev/null
+++ b/manualtests/FormatExample/src/MyFormView.mxml
@@ -0,0 +1,133 @@
+<?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:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ xmlns:local="*"
+ xmlns:models="models.*"
+ xmlns:acc="org.apache.flex.html.accessories.*">
+
+ <fx:Style>
+ .title {
+ font-size: 14pt;
+ font-weight: bold;
+ }
+
+ </fx:Style>
+
+ <fx:Script>
+ <![CDATA[
+ import dialogs.LoginDialog;
+
+ import org.apache.flex.core.IPopUpHost;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.utils.UIUtils;
+
+
+ private function showLogin():void
+ {
+ var dialog:LoginDialog = new LoginDialog();
+ var host:IPopUpHost = UIUtils.findPopUpHost(this);
+ host.addElement(dialog);
+ UIUtils.center(dialog,this);
+
+ dialog.addEventListener("close",closeDialog);
+ }
+
+ private function closeDialog(event:org.apache.flex.events.Event):void
+ {
+ var dialog:LoginDialog = event.currentTarget as LoginDialog;
+ UIUtils.removePopUp(dialog);
+ }
+ ]]>
+ </fx:Script>
+
+ <js:Container width="600" height="700" x="50" y="50">
+ <js:beads>
+ <js:VerticalLayout />
+ </js:beads>
+
+ <js:Label text="Loan Form" className="title" />
+
+ <js:Container width="500">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:Label text="Your Name:" />
+ <js:TextInput id="nameField" />
+ </js:Container>
+
+ <js:Container width="500">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:Label text="Your Age:" />
+ <js:TextInput id="ageField">
+ <js:beads>
+ <js:NumericOnlyTextInputBead />
+ </js:beads>
+ </js:TextInput>
+ </js:Container>
+
+ <js:Container width="500">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:Label text="Phone Number:" />
+ <js:TextInput id="phoneField" >
+ <js:beads>
+ <js:TextPromptBead prompt="9995551235" />
+ <js:FormatableTextInputView />
+ <acc:PhoneNumberFormatter propertyName="text" />
+ </js:beads>
+ </js:TextInput>
+ </js:Container>
+
+ <js:Container width="500">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:Label text="Date of Loan:" />
+ <js:DateField id="dateOfLoan"/>
+ </js:Container>
+
+ <js:Container width="500">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:Label text="Loan Amount:" />
+ <js:TextInput id="loanAmount">
+ <js:beads>
+ <js:TextPromptBead prompt="US dollars" />
+ <js:FormatableTextInputView />
+ <acc:NumberFormatter />
+ </js:beads>
+ </js:TextInput>
+ </js:Container>
+
+ <js:Container width="500">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:TextButton text="Login" click="showLogin()" />
+ </js:Container>
+
+ </js:Container>
+
+</js:ViewBase>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormatExample/src/dialogs/DialogView.as
----------------------------------------------------------------------
diff --git a/manualtests/FormatExample/src/dialogs/DialogView.as b/manualtests/FormatExample/src/dialogs/DialogView.as
new file mode 100644
index 0000000..0122c06
--- /dev/null
+++ b/manualtests/FormatExample/src/dialogs/DialogView.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 dialogs
+{
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.html.beads.PanelView;
+
+ public class DialogView extends PanelView
+ {
+ public function DialogView()
+ {
+ trace("This is DialogView");
+ super();
+ }
+
+ override public function set strand(value:IStrand):void
+ {
+ trace("DialogView strand setter");
+ super.strand = value;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormatExample/src/dialogs/LoginDialog.mxml
----------------------------------------------------------------------
diff --git a/manualtests/FormatExample/src/dialogs/LoginDialog.mxml b/manualtests/FormatExample/src/dialogs/LoginDialog.mxml
new file mode 100644
index 0000000..527983c
--- /dev/null
+++ b/manualtests/FormatExample/src/dialogs/LoginDialog.mxml
@@ -0,0 +1,70 @@
+<?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:Panel xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ xmlns:local="*"
+ className="LoginDialog"
+ width="280" height="90" title="Login">
+
+ <!-- fx:Metadata is not recognized by FalconJX -->
+ <!--<fx:Metadata>
+ [Event(name="close", type="org.apache.flex.events.Event")]
+ </fx:Metadata>-->
+
+ <fx:Script>
+ <![CDATA[
+ import org.apache.flex.events.Event;
+
+ private function cancelLogin():void
+ {
+ dispatchEvent( new org.apache.flex.events.Event("close") );
+ }
+ ]]>
+ </fx:Script>
+
+ <js:beads>
+ <js:VerticalLayout />
+ </js:beads>
+
+ <js:Container width="200">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:Label text="User Name:" />
+ <js:TextInput />
+ </js:Container>
+
+ <js:Container width="200">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:Label text="Password:" />
+ <js:TextInput />
+ </js:Container>
+
+ <js:Container width="200">
+ <js:beads>
+ <js:HorizontalLayout />
+ </js:beads>
+ <js:TextButton text="Login" click="cancelLogin()" />
+ <js:TextButton text="Cancel" click="cancelLogin()" />
+ </js:Container>
+
+</js:Panel>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormatExample/src/org/apache/flex/html/staticControls/accessories/NumberFormatter.as
----------------------------------------------------------------------
diff --git a/manualtests/FormatExample/src/org/apache/flex/html/staticControls/accessories/NumberFormatter.as b/manualtests/FormatExample/src/org/apache/flex/html/staticControls/accessories/NumberFormatter.as
new file mode 100644
index 0000000..0d1b613
--- /dev/null
+++ b/manualtests/FormatExample/src/org/apache/flex/html/staticControls/accessories/NumberFormatter.as
@@ -0,0 +1,210 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html.accessories
+{
+ import org.apache.flex.core.IBeadModel;
+ import org.apache.flex.core.IFormatBead;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.EventDispatcher;
+ import org.apache.flex.events.IEventDispatcher;
+
+ /**
+ * The NumberFormatter class formats a value in separated groups. The formatter listens
+ * to a property on a model and when the property changes, formats it and dispatches a
+ * formatChanged event.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class NumberFormatter extends EventDispatcher implements IFormatBead
+ {
+ /**
+ * constructor
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function NumberFormatter()
+ {
+ super();
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @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
+ {
+ _strand = value;
+
+ // Listen for the beadsAdded event which signals when all of a strand's
+ // beads have been added.
+ IEventDispatcher(value).addEventListener("beadsAdded",handleBeadsAdded);
+ }
+
+ /**
+ * @private
+ */
+ private function handleBeadsAdded(event:Event):void
+ {
+ // Listen for the change in the model
+ var model:IBeadModel = _strand.getBeadByType(IBeadModel) as IBeadModel;
+ model.addEventListener(eventName,propertyChangeHandler);
+ model.addEventListener(propertyName+"Change",propertyChangeHandler);
+
+ // format the current value of that property
+ propertyChangeHandler(null);
+ }
+
+ private var _propertyName:String;
+ private var _eventName:String;
+ private var _formattedResult:String;
+ private var _groupSize:Number = 3;
+ private var _thousandsSeparator:String = ",";
+
+ /**
+ * The name of the property on the model to format.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get propertyName():String
+ {
+ if (_propertyName == null) {
+ return "text";
+ }
+ return _propertyName;
+ }
+ public function set propertyName(value:String):void
+ {
+ _propertyName = value;
+ }
+
+ /**
+ * The event dispatched by the model when the property changes. The
+ * default is propertyName+"Changed".
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get eventName():String
+ {
+ if (_eventName == null) {
+ return _propertyName+"Changed";
+ }
+ return _eventName;
+ }
+ public function set eventName(value:String):void
+ {
+ _eventName = value;
+ }
+
+ /**
+ * Character to use to separate thousands groups. The default is
+ * the comma (,).
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get thousandsSeparator():String
+ {
+ return _thousandsSeparator;
+ }
+ public function set thousandsSeparator(value:String):void
+ {
+ _thousandsSeparator = value;
+ }
+
+ /**
+ * The formatted string.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get formattedString():String
+ {
+ return _formattedResult;
+ }
+
+ /**
+ * @private
+ */
+ private function propertyChangeHandler(event:Event):void
+ {
+ // When the property changes, fetch it from the model and
+ // format it, storing the result in _formattedResult.
+ var model:IBeadModel = _strand.getBeadByType(IBeadModel) as IBeadModel;
+ var value:Object = model[propertyName];
+ _formattedResult = format(value);
+
+ // Dispatch the formatChanged event so any bead that's interested in
+ // the formatted string knows to use it.
+ var newEvent:Event = new Event("formatChanged");
+ this.dispatchEvent(newEvent);
+ }
+
+ /**
+ * @private
+ */
+ private function format(value:Object):String
+ {
+ if (value == null) return "";
+
+ var num:Number = Number(value);
+ var source:String = String(value);
+ var parts:Array = source.split(thousandsSeparator);
+ source = parts.join("");
+
+ var l:int = source.length;
+ var result:String = "";
+ var group:int = 0;
+
+ for(var i:int=l-1; i >= 0; i--)
+ {
+ if (group == _groupSize && result.length > 0) {
+ result = thousandsSeparator + result;
+ group = 0;
+ }
+ result = source.charAt(i) + result;
+ group++;
+ }
+
+ return result;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/FormatExample/src/org/apache/flex/html/staticControls/accessories/PhoneNumberFormatter.as
----------------------------------------------------------------------
diff --git a/manualtests/FormatExample/src/org/apache/flex/html/staticControls/accessories/PhoneNumberFormatter.as b/manualtests/FormatExample/src/org/apache/flex/html/staticControls/accessories/PhoneNumberFormatter.as
new file mode 100644
index 0000000..7523c96
--- /dev/null
+++ b/manualtests/FormatExample/src/org/apache/flex/html/staticControls/accessories/PhoneNumberFormatter.as
@@ -0,0 +1,195 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.html.accessories
+{
+ import org.apache.flex.core.IBead;
+ import org.apache.flex.core.IBeadModel;
+ import org.apache.flex.core.IFormatBead;
+ import org.apache.flex.core.IStrand;
+ import org.apache.flex.events.Event;
+ import org.apache.flex.events.EventDispatcher;
+ import org.apache.flex.events.IEventDispatcher;
+
+ /**
+ * The PhoneNumberFormatter class bead formats a numeric string into a
+ * US style phone number. The format bead listens for changes to a property
+ * in a model, formats the value, and dispatches a formatChanged event.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public class PhoneNumberFormatter extends EventDispatcher implements IBead, IFormatBead
+ {
+ /**
+ * constructor
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function PhoneNumberFormatter()
+ {
+ }
+
+ private var _strand:IStrand;
+
+ /**
+ * @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
+ {
+ _strand = value;
+
+ // Listen for the beadsAdded event which signals when all of a strand's
+ // beads have been added.
+ IEventDispatcher(value).addEventListener("beadsAdded",handleBeadsAdded);
+ }
+
+ /**
+ * @private
+ */
+ private function handleBeadsAdded(event:Event):void
+ {
+ // Listen for the change in the model.
+ var model:IBeadModel = _strand.getBeadByType(IBeadModel) as IBeadModel;
+ model.addEventListener(eventName,propertyChangeHandler);
+ model.addEventListener(propertyName+"Change",propertyChangeHandler);
+
+ // format the current value of that property
+ propertyChangeHandler(null);
+ }
+
+ private var _propertyName:String;
+ private var _eventName:String;
+ private var _formattedResult:String;
+
+ /**
+ * The name of the property in the model holding the value to be
+ * formatted. The default is text.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get propertyName():String
+ {
+ if (_propertyName == null) {
+ return "text";
+ }
+ return _propertyName;
+ }
+ public function set propertyName(value:String):void
+ {
+ _propertyName = value;
+ }
+
+ /**
+ * The name of the event dispatched when the property changes. The
+ * default is propertyName + "Changed".
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get eventName():String
+ {
+ if (_eventName == null) {
+ return _propertyName+"Changed";
+ }
+ return _eventName;
+ }
+ public function set eventName(value:String):void
+ {
+ _eventName = value;
+ }
+
+ /**
+ * The formatted string.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10.2
+ * @playerversion AIR 2.6
+ * @productversion FlexJS 0.0
+ */
+ public function get formattedString():String
+ {
+ return _formattedResult;
+ }
+
+ /**
+ * @private
+ */
+ private function propertyChangeHandler(event:Event):void
+ {
+ // When the model's value changes, format it and store it in
+ // _formattedResult.
+ var model:IBeadModel = _strand.getBeadByType(IBeadModel) as IBeadModel;
+ var value:Object = model[propertyName];
+ _formattedResult = format(value);
+
+ // Dispatch the formatChanged event so other beads can use the newly
+ // formatted value.
+ var newEvent:Event = new Event("formatChanged");
+ this.dispatchEvent(newEvent);
+ }
+
+ /**
+ * @private
+ */
+ private function format(value:Object):String
+ {
+ if (value == null) return "";
+
+ var source:String = String(value);
+ if (source.length != 10) return source;
+
+ var areaCode:String = "";
+ var exchange:String;
+ var num:String;
+
+ var pos:int = 0;
+ if (source.length == 10) {
+ areaCode = source.substr(pos,3);
+ pos += 3;
+ }
+
+ exchange = source.substr(pos,3);
+ pos += 3;
+
+ num = source.substr(pos,4);
+
+ var result:String = "";
+ if (source.length == 10) {
+ result = result + "("+areaCode+") ";
+ }
+ result = result + exchange + "-" + num;
+ return result;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ImageTest/build.xml
----------------------------------------------------------------------
diff --git a/manualtests/ImageTest/build.xml b/manualtests/ImageTest/build.xml
new file mode 100644
index 0000000..5b5fbfa
--- /dev/null
+++ b/manualtests/ImageTest/build.xml
@@ -0,0 +1,70 @@
+<?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="imagetest" default="main" basedir=".">
+ <property name="FLEXJS_HOME" location="../.."/>
+ <property name="example" value="ImageTest" />
+
+ <property environment="env"/>
+ <property file="${FLEXJS_HOME}/build.properties"/>
+ <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+ <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 FlexJSUI.swc">
+ </target>
+
+ <target name="clean">
+ <delete dir="${basedir}/bin" failonerror="false" />
+ <delete dir="${basedir}/bin-debug" failonerror="false" />
+ <delete dir="${basedir}/bin-release" failonerror="false" />
+ </target>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ImageTest/src/ImageTest.mxml
----------------------------------------------------------------------
diff --git a/manualtests/ImageTest/src/ImageTest.mxml b/manualtests/ImageTest/src/ImageTest.mxml
new file mode 100644
index 0000000..2d5c972
--- /dev/null
+++ b/manualtests/ImageTest/src/ImageTest.mxml
@@ -0,0 +1,33 @@
+<?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:models="models.*"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ >
+
+ <js:valuesImpl>
+ <js:SimpleCSSValuesImpl />
+ </js:valuesImpl>
+ <js:initialView>
+ <local:MyInitialView />
+ </js:initialView>
+</js:Application>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ImageTest/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/ImageTest/src/MyInitialView.mxml b/manualtests/ImageTest/src/MyInitialView.mxml
new file mode 100644
index 0000000..342abcc
--- /dev/null
+++ b/manualtests/ImageTest/src/MyInitialView.mxml
@@ -0,0 +1,45 @@
+<?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:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ xmlns:local="*">
+ <fx:Script>
+ <![CDATA[
+
+ ]]>
+ </fx:Script>
+
+ <fx:Style>
+
+ </fx:Style>
+
+ <js:Container>
+ <js:beads>
+ <js:VerticalLayout />
+ </js:beads>
+
+ <js:Image width="48" height="48" source="smallbluerect.jpg" />
+ <js:Image width="183" height="178" source="largegreenrect.png" />
+ <js:Image width="48" height="48" source="smallorangerect.gif" />
+ <js:Image width="48" height="48" source="smallgreenrect.jpg" />
+
+ </js:Container>
+
+</js:ViewBase>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ImageTest/src/README.txt
----------------------------------------------------------------------
diff --git a/manualtests/ImageTest/src/README.txt b/manualtests/ImageTest/src/README.txt
new file mode 100644
index 0000000..e6a0c71
--- /dev/null
+++ b/manualtests/ImageTest/src/README.txt
@@ -0,0 +1,40 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 ImageTest example is a simple demonstration of the FlexJS Image component.
+You can use this test to see if your image loads properly.
+
+This Flex application may be run as a Flash SWF or cross-compiled (using Falcon JX)
+into JavaScript and HTML and run without Flash.
+
+All of the images are placed into a Container and then given various sizes.
+
+COMPONENTS and BEADS
+
+- Container
+- Image
+
+- NonVirtualVerticalLayout
+
+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/0485c8b6/manualtests/ImageTest/src/largegreenrect.png
----------------------------------------------------------------------
diff --git a/manualtests/ImageTest/src/largegreenrect.png b/manualtests/ImageTest/src/largegreenrect.png
new file mode 100644
index 0000000..3f10b02
Binary files /dev/null and b/manualtests/ImageTest/src/largegreenrect.png differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ImageTest/src/smallbluerect.jpg
----------------------------------------------------------------------
diff --git a/manualtests/ImageTest/src/smallbluerect.jpg b/manualtests/ImageTest/src/smallbluerect.jpg
new file mode 100644
index 0000000..80ed275
Binary files /dev/null and b/manualtests/ImageTest/src/smallbluerect.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ImageTest/src/smallgreenrect.jpg
----------------------------------------------------------------------
diff --git a/manualtests/ImageTest/src/smallgreenrect.jpg b/manualtests/ImageTest/src/smallgreenrect.jpg
new file mode 100644
index 0000000..c5f9ce6
Binary files /dev/null and b/manualtests/ImageTest/src/smallgreenrect.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ImageTest/src/smallorangerect.gif
----------------------------------------------------------------------
diff --git a/manualtests/ImageTest/src/smallorangerect.gif b/manualtests/ImageTest/src/smallorangerect.gif
new file mode 100644
index 0000000..603f810
Binary files /dev/null and b/manualtests/ImageTest/src/smallorangerect.gif differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/build.xml
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/build.xml b/manualtests/LanguageTests/build.xml
new file mode 100644
index 0000000..6de5e8a
--- /dev/null
+++ b/manualtests/LanguageTests/build.xml
@@ -0,0 +1,71 @@
+<?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="languagetests" default="main" basedir=".">
+ <property name="FLEXJS_HOME" location="../.."/>
+ <property name="example" value="LanguageTests" />
+
+ <property file="${FLEXJS_HOME}/env.properties"/>
+ <property environment="env"/>
+ <property file="${FLEXJS_HOME}/build.properties"/>
+ <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+ <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.compileas,build_example.compileasjs" 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" />
+ </target>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/LanguageTests.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/LanguageTests.as b/manualtests/LanguageTests/src/LanguageTests.as
new file mode 100644
index 0000000..1343abe
--- /dev/null
+++ b/manualtests/LanguageTests/src/LanguageTests.as
@@ -0,0 +1,159 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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
+{
+
+import org.apache.flex.core.SimpleApplication;
+import org.apache.flex.events.Event;
+
+import classes.B;
+
+import interfaces.IA;
+import interfaces.IB;
+import interfaces.IC;
+import interfaces.ID;
+import interfaces.IE;
+import interfaces.IF;
+
+public class LanguageTests extends SimpleApplication implements IA, IE
+{
+ public function LanguageTests()
+ {
+ var testResult:Boolean;
+ var testObject:Object;
+
+ var b:B = new B();
+
+ testResult = this instanceof SimpleApplication;
+ trace('this instanceof SimpleApplication - true: ' + testResult.toString());
+ testResult = this instanceof B;
+ trace('this instanceof classes.B - false: ' + testResult.toString());
+ testResult = b instanceof classes.B;
+ trace('b instanceof classes.B - true: ' + testResult.toString());
+ testResult = b instanceof classes.C;
+ trace('b instanceof classes.C - true: ' + testResult.toString());
+ testResult = b instanceof interfaces.IC;
+ trace('b instanceof interfaces.IC - false: ' + testResult.toString());
+ testResult = b instanceof interfaces.IF;
+ trace('b instanceof interfaces.IF - false: ' + testResult.toString());
+ testResult = this instanceof IA;
+ trace('this instanceof interfaces.IA - false: ' + testResult.toString());
+ testResult = this instanceof IB;
+ trace('this instanceof interfaces.IB - false: ' + testResult.toString());
+ testResult = this instanceof IC;
+ trace('this instanceof interfaces.IC - false: ' + testResult.toString());
+ testResult = this instanceof ID;
+ trace('this instanceof interfaces.ID - false: ' + testResult.toString());
+ testResult = this instanceof IE;
+ trace('this instanceof interfaces.IE - false: ' + testResult.toString());
+ trace();
+ testResult = this is SimpleApplication;
+ trace('this is SimpleApplication - true: ' + testResult.toString());
+ testResult = this is B;
+ trace('this is classes.B - false: ' + testResult.toString());
+ testResult = b is classes.B;
+ trace('b is classes.B - true: ' + testResult.toString());
+ testResult = b is classes.C;
+ trace('b is classes.C - true: ' + testResult.toString());
+ testResult = b is interfaces.IC;
+ trace('b is interfaces.IC - false: ' + testResult.toString());
+ testResult = b is interfaces.IF;
+ trace('b is interfaces.IF - true: ' + testResult.toString());
+ testResult = this is IA;
+ trace('this is interfaces.IA - true: ' + testResult.toString());
+ testResult = this is IB;
+ trace('this is interfaces.IB - false: ' + testResult.toString());
+ testResult = this is IC;
+ trace('this is interfaces.IC - true: ' + testResult.toString());
+ testResult = this is ID;
+ trace('this is interfaces.ID - true: ' + testResult.toString());
+ testResult = this is IE;
+ trace('this is interfaces.IE - true: ' + testResult.toString());
+ trace();
+ testObject = (this as SimpleApplication) ? this as SimpleApplication : 'null';
+ trace('this as SimpleApplication - [object ...]: ' + testObject.toString());
+ testObject = (this as B) ? this as B : 'null';
+ trace('this as classes.B - null: ' + testObject.toString());
+ testObject = (b as classes.B) ? b as classes.B : 'null';
+ trace('b as classes.B - [object ...]: ' + testObject.toString());
+ testObject = (b as classes.C) ? b as classes.C : 'null';
+ trace('b as classes.C - [object ...]: ' + testObject.toString());
+ testObject = (b as interfaces.IC) ? b as interfaces.IC : 'null';
+ trace('b as interfaces.IC - null: ' + testObject.toString());
+ testObject = (b as interfaces.IF) ? b as interfaces.IF : 'null';
+ trace('b as interfaces.IF - [object ...]: ' + testObject.toString());
+ testObject = (this as IA) ? this as IA : 'null';
+ trace('this as interfaces.IA - [object ...]: ' + testObject.toString());
+ testObject = (this as IB) ? this as IB : 'null';
+ trace('this as interfaces.IB - null: ' + testObject.toString());
+ testObject = (this as IC) ? this as IC : 'null';
+ trace('this as interfaces.IC - [object ...]: ' + testObject.toString());
+ testObject = (this as ID) ? this as ID : 'null';
+ trace('this as interfaces.ID - [object ...]: ' + testObject.toString());
+ testObject = (this as IE) ? this as IE : 'null';
+ trace('this as interfaces.IE - [object ...]: ' + testObject.toString());
+ trace();
+ try {
+ testObject = SimpleApplication(this);
+ trace('SimpleApplication(this) - [object ...]: ' + testObject.toString());
+ } catch (e:Error)
+ {
+ trace("This shouldn't show!");
+ }
+ try {
+ testObject = B(this);
+ trace("This shouldn't show!");
+ } catch (e:Error)
+ {
+ trace('B(this) - exception expected: ' + e.message);
+ }
+ try {
+ testObject = interfaces.IC(b);
+ trace("This shouldn't show!");
+ } catch (e:Error)
+ {
+ trace('IC(b) - exception expected: ' + e.message);
+ }
+ try {
+ testObject = interfaces.IF(b);
+ trace('IF(b) - [object ...]: ' + testObject.toString());
+ } catch (e:Error)
+ {
+ trace("This shouldn't show!");
+ }
+
+ addEventListener("foo", eventHandler);
+ if (hasEventListener("foo"))
+ trace("addEventListener worked");
+ else
+ trace("This shouldn't show!");
+
+ removeEventListener("foo", eventHandler);
+ if (!hasEventListener("foo"))
+ trace("removeEventListener worked");
+ else
+ trace("This shouldn't show!");
+ }
+
+ public function eventHandler(e:Event):void
+ {
+
+ }
+}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/README.txt
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/README.txt b/manualtests/LanguageTests/src/README.txt
new file mode 100644
index 0000000..89f12b2
--- /dev/null
+++ b/manualtests/LanguageTests/src/README.txt
@@ -0,0 +1,26 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 LanguageTests example is used to test the ActionScript and cross-compiler,
+FalconJX.
+
+Compile the project using ANT and the build.xml script and then run the resulting
+index.html file in browser.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/classes/B.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/classes/B.as b/manualtests/LanguageTests/src/classes/B.as
new file mode 100644
index 0000000..d8bd2c7
--- /dev/null
+++ b/manualtests/LanguageTests/src/classes/B.as
@@ -0,0 +1,25 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 classes
+{
+ public class B extends C
+ {
+ public function B() {}
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/classes/C.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/classes/C.as b/manualtests/LanguageTests/src/classes/C.as
new file mode 100644
index 0000000..fe49eb5
--- /dev/null
+++ b/manualtests/LanguageTests/src/classes/C.as
@@ -0,0 +1,27 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 classes
+{
+ import interfaces.IF;
+
+ public class C implements IF
+ {
+ public function C() {}
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/interfaces/IA.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/interfaces/IA.as b/manualtests/LanguageTests/src/interfaces/IA.as
new file mode 100644
index 0000000..5fbd6c2
--- /dev/null
+++ b/manualtests/LanguageTests/src/interfaces/IA.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 interfaces
+{
+ public interface IA extends IC {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/interfaces/IB.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/interfaces/IB.as b/manualtests/LanguageTests/src/interfaces/IB.as
new file mode 100644
index 0000000..a995635
--- /dev/null
+++ b/manualtests/LanguageTests/src/interfaces/IB.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 interfaces
+{
+ public interface IB {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/interfaces/IC.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/interfaces/IC.as b/manualtests/LanguageTests/src/interfaces/IC.as
new file mode 100644
index 0000000..9183bac
--- /dev/null
+++ b/manualtests/LanguageTests/src/interfaces/IC.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 interfaces
+{
+ public interface IC extends ID {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/interfaces/ID.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/interfaces/ID.as b/manualtests/LanguageTests/src/interfaces/ID.as
new file mode 100644
index 0000000..d5e9543
--- /dev/null
+++ b/manualtests/LanguageTests/src/interfaces/ID.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 interfaces
+{
+ public interface ID {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/interfaces/IE.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/interfaces/IE.as b/manualtests/LanguageTests/src/interfaces/IE.as
new file mode 100644
index 0000000..ae1848a
--- /dev/null
+++ b/manualtests/LanguageTests/src/interfaces/IE.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 interfaces
+{
+ public interface IE {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/LanguageTests/src/interfaces/IF.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/interfaces/IF.as b/manualtests/LanguageTests/src/interfaces/IF.as
new file mode 100644
index 0000000..f62be45
--- /dev/null
+++ b/manualtests/LanguageTests/src/interfaces/IF.as
@@ -0,0 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 interfaces
+{
+ public interface IF {}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/build.xml
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/build.xml b/manualtests/ListsTest/build.xml
new file mode 100644
index 0000000..e6d7c8b
--- /dev/null
+++ b/manualtests/ListsTest/build.xml
@@ -0,0 +1,71 @@
+<?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="liststest" default="main" basedir=".">
+ <property name="FLEXJS_HOME" location="../.."/>
+ <property name="example" value="ListsTests" />
+
+ <property file="${FLEXJS_HOME}/env.properties"/>
+ <property environment="env"/>
+ <property file="${FLEXJS_HOME}/build.properties"/>
+ <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+ <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>
+
+ <target name="clean">
+ <delete dir="${basedir}/bin" failonerror="false" />
+ <delete dir="${basedir}/bin-debug" failonerror="false" />
+ <delete dir="${basedir}/bin-release" failonerror="false" />
+ </target>
+
+</project>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/FirstView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/FirstView.mxml b/manualtests/ListsTest/src/FirstView.mxml
new file mode 100644
index 0000000..4bfc146
--- /dev/null
+++ b/manualtests/ListsTest/src/FirstView.mxml
@@ -0,0 +1,63 @@
+<?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:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ xmlns:local="*">
+ <fx:Script>
+ <![CDATA[
+
+ private function handleListChange() : void
+ {
+ pickLabel.text = "Selected: "+productList.selectedItem.title;
+ }
+ ]]>
+ </fx:Script>
+
+ <fx:Style>
+ @namespace basic "library://ns.apache.org/flexjs/basic";
+ @namespace sample "products.*";
+
+ /* use className="productList" on the List element in place of itemRenderer if you want to specify
+ * the itemRenderer in a style definition along with other settings.
+ */
+ .productList {
+ IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForArrayData");
+ IItemRenderer: ClassReference("products.ProductItemRenderer");
+ }
+
+ sample|ProductItemRenderer {
+ height: 40;
+ IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
+ }
+
+ </fx:Style>
+
+ <js:List id="productList" itemRenderer="products.ProductItemRenderer" x="20" y="20" width="200" height="150" change="handleListChange()">
+ <js:beads>
+ <js:ConstantBinding
+ sourceID="applicationModel"
+ sourcePropertyName="products"
+ destinationPropertyName="dataProvider" />
+ </js:beads>
+ </js:List>
+
+ <js:Label id="pickLabel" x="250" y="20" width="200" />
+
+</js:ViewBase>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/ListsTests.mxml
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/ListsTests.mxml b/manualtests/ListsTest/src/ListsTests.mxml
new file mode 100644
index 0000000..9904c05
--- /dev/null
+++ b/manualtests/ListsTest/src/ListsTests.mxml
@@ -0,0 +1,36 @@
+<?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:models="models.*"
+ xmlns:js="library://ns.apache.org/flexjs/basic"
+ >
+
+ <js:valuesImpl>
+ <js:SimpleCSSValuesImpl />
+ </js:valuesImpl>
+ <js:model>
+ <models:ProductsModel />
+ </js:model>
+ <js:initialView>
+ <local:FirstView />
+ </js:initialView>
+</js:Application>
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/README.txt
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/README.txt b/manualtests/ListsTest/src/README.txt
new file mode 100644
index 0000000..dc48ab4
--- /dev/null
+++ b/manualtests/ListsTest/src/README.txt
@@ -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.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+DESCRIPTION
+
+The ListsTests example demonstrates the FlexJS List component using custom data
+and a custom itemRenderer.
+
+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 data for the list is found in the application model and is bound to the list
+via ConstantBinding bead which maps the application data model's products property
+to the List's dataProvider property.
+
+The display of each element of the list is through a custom itemRenderer,
+ProductItemRenderer, which can found in the example's source tree. The itemRenderer
+uses and Image component to display an image and a Label to give a title.
+
+COMPONENTS and BEADS
+
+- Image
+- Label
+- List
+
+- ConstantBinding
+
+NOTES
+
+More control of the itemRenderer via styles would be a nice addition. ItemRenderers
+based on row or data would require a custom itemRendererFactory bead.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/models/ProductsModel.as
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/models/ProductsModel.as b/manualtests/ListsTest/src/models/ProductsModel.as
new file mode 100644
index 0000000..9807ee0
--- /dev/null
+++ b/manualtests/ListsTest/src/models/ProductsModel.as
@@ -0,0 +1,42 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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.EventDispatcher;
+
+ public class ProductsModel extends EventDispatcher
+ {
+ public function ProductsModel()
+ {
+ }
+
+ private var _products:Array = [
+ {id:"ps100", title:"Widgets", detail:"44", image:"smallbluerect.jpg"},
+ {id:"tx200", title:"Thingys", detail:"out of stock", image:"smallgreenrect.jpg"},
+ {id:"rz300", title:"Sprockets", detail:"8,000", image:"smallyellowrect.jpg"},
+ {id:"dh440", title:"DooHickies", detail:"out of stock", image:"smallredrect.jpg"},
+ {id:"ps220", title:"Weejets", detail:"235", image:"smallorangerect.jpg"}
+ ];
+ public function get products():Array
+ {
+ return _products;
+ }
+
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/products/Product.as
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/products/Product.as b/manualtests/ListsTest/src/products/Product.as
new file mode 100644
index 0000000..b4854a3
--- /dev/null
+++ b/manualtests/ListsTest/src/products/Product.as
@@ -0,0 +1,43 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 products
+{
+ public class Product
+ {
+ public function Product(id:String,title:String,detail:String,sales:Number,image:String)
+ {
+ this.id = id;
+ this.title = title;
+ this.detail = detail;
+ this.sales = sales;
+ this.image = image;
+ }
+
+ public var id:String;
+ public var title:String;
+ public var detail:String;
+ public var image:String;
+ public var sales:Number;
+
+ public function toString():String
+ {
+ return title;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/products/ProductItemRenderer.as
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/products/ProductItemRenderer.as b/manualtests/ListsTest/src/products/ProductItemRenderer.as
new file mode 100644
index 0000000..c1bab26
--- /dev/null
+++ b/manualtests/ListsTest/src/products/ProductItemRenderer.as
@@ -0,0 +1,83 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 products
+{
+ import org.apache.flex.html.Label;
+ import org.apache.flex.html.Image;
+ import org.apache.flex.html.supportClasses.DataItemRenderer;
+
+ public class ProductItemRenderer extends DataItemRenderer
+ {
+ public function ProductItemRenderer()
+ {
+ super();
+ }
+
+ private var image:Image;
+ private var title:Label;
+ private var detail:Label;
+
+ override public function addedToParent():void
+ {
+ super.addedToParent();
+
+ // add an image and two labels
+ image = new Image();
+ addElement(image);
+
+ title = new Label();
+ addElement(title);
+
+ detail = new Label();
+ addElement(detail);
+ }
+
+ override public function get data():Object
+ {
+ return super.data;
+ }
+
+ override public function set data(value:Object):void
+ {
+ super.data = value;
+
+ image.source = data.image;
+ title.text = data.title;
+ detail.text = data.detail;
+ }
+
+ override public function adjustSize():void
+ {
+ var cy:Number = this.height/2;
+
+ image.x = 4;
+ image.y = cy - 16;
+ image.width = 32;
+ image.height = 32;
+
+ title.x = 40;
+ title.y = cy - 16;
+
+ detail.x = 40;
+ detail.y = cy;
+
+ updateRenderer();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/smallbluerect.jpg
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/smallbluerect.jpg b/manualtests/ListsTest/src/smallbluerect.jpg
new file mode 100755
index 0000000..80ed275
Binary files /dev/null and b/manualtests/ListsTest/src/smallbluerect.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/smallgreenrect.jpg
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/smallgreenrect.jpg b/manualtests/ListsTest/src/smallgreenrect.jpg
new file mode 100755
index 0000000..c5f9ce6
Binary files /dev/null and b/manualtests/ListsTest/src/smallgreenrect.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/smallorangerect.gif
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/smallorangerect.gif b/manualtests/ListsTest/src/smallorangerect.gif
new file mode 100644
index 0000000..603f810
Binary files /dev/null and b/manualtests/ListsTest/src/smallorangerect.gif differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/smallorangerect.jpg
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/smallorangerect.jpg b/manualtests/ListsTest/src/smallorangerect.jpg
new file mode 100755
index 0000000..4982d87
Binary files /dev/null and b/manualtests/ListsTest/src/smallorangerect.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/smallpurplerect.jpg
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/smallpurplerect.jpg b/manualtests/ListsTest/src/smallpurplerect.jpg
new file mode 100755
index 0000000..201f625
Binary files /dev/null and b/manualtests/ListsTest/src/smallpurplerect.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/smallredrect.jpg
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/smallredrect.jpg b/manualtests/ListsTest/src/smallredrect.jpg
new file mode 100644
index 0000000..d2cfa31
Binary files /dev/null and b/manualtests/ListsTest/src/smallredrect.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/ListsTest/src/smallyellowrect.jpg
----------------------------------------------------------------------
diff --git a/manualtests/ListsTest/src/smallyellowrect.jpg b/manualtests/ListsTest/src/smallyellowrect.jpg
new file mode 100755
index 0000000..b17b62d
Binary files /dev/null and b/manualtests/ListsTest/src/smallyellowrect.jpg differ
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/0485c8b6/manualtests/RollEventsTest/build.xml
----------------------------------------------------------------------
diff --git a/manualtests/RollEventsTest/build.xml b/manualtests/RollEventsTest/build.xml
new file mode 100644
index 0000000..767c856
--- /dev/null
+++ b/manualtests/RollEventsTest/build.xml
@@ -0,0 +1,70 @@
+<?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="rolleventstest" default="main" basedir=".">
+ <property name="FLEXJS_HOME" location="../.."/>
+ <property name="example" value="RollEventsTest" />
+
+ <property environment="env"/>
+ <property file="${FLEXJS_HOME}/build.properties"/>
+ <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+ <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 FlexJSUI.swc">
+ </target>
+
+ <target name="clean">
+ <delete dir="${basedir}/bin" failonerror="false" />
+ <delete dir="${basedir}/bin-debug" failonerror="false" />
+ <delete dir="${basedir}/bin-release" failonerror="false" />
+ </target>
+
+</project>