Repository: flex-asjs
Updated Branches:
  refs/heads/core_js_to_as 094395209 -> 426fa5593


Back port of jQuery.


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

Branch: refs/heads/core_js_to_as
Commit: 426fa5593555fe3fec2e78089988c490b2ec176f
Parents: 0943952
Author: Peter Ent <[email protected]>
Authored: Thu Dec 3 16:08:34 2015 -0500
Committer: Peter Ent <[email protected]>
Committed: Thu Dec 3 16:08:34 2015 -0500

----------------------------------------------------------------------
 .../src/org/apache/flex/jquery/Application.as   |  12 ++
 .../as/src/org/apache/flex/jquery/CheckBox.as   |   1 +
 .../src/org/apache/flex/jquery/RadioButton.as   |  14 ++
 .../as/src/org/apache/flex/jquery/TextButton.as |  23 ++++
 .../org/apache/flex/jquery/ToggleTextButton.as  |  61 +--------
 frameworks/projects/JQuery/build.xml            | 131 +++++++++++--------
 .../projects/JQuery/compile-asjs-config.xml     |  87 ++++++++++++
 frameworks/projects/JQuery/compile-config.xml   |   4 +-
 8 files changed, 223 insertions(+), 110 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/426fa559/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/Application.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/Application.as 
b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/Application.as
index 88e21b3..6cb9229 100644
--- a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/Application.as
+++ b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/Application.as
@@ -21,6 +21,18 @@ package org.apache.flex.jquery
     import org.apache.flex.core.Application;
        import org.apache.flex.core.IFlexInfo;
        
+       /*
+       FalconJX will inject html into the index.html file.  Surround with
+       "inject_html" tag as follows:
+       
+       <inject_html>
+       <link rel="stylesheet"
+       href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css"; 
/>
+       <script src="http://code.jquery.com/jquery-1.9.1.js";></script>
+       <script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js";></script>
+       </inject_html>
+       */
+       
        public class Application extends org.apache.flex.core.Application 
implements IFlexInfo
        {
                public function Application()

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/426fa559/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/CheckBox.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/CheckBox.as 
b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/CheckBox.as
index 9b9cb71..0a98dcd 100644
--- a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/CheckBox.as
+++ b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/CheckBox.as
@@ -22,5 +22,6 @@ package org.apache.flex.jquery
        
        public class CheckBox extends org.apache.flex.html.CheckBox 
        {
+               
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/426fa559/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/RadioButton.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/RadioButton.as 
b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/RadioButton.as
index e7b64a9..7a9c9e6 100644
--- a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/RadioButton.as
+++ b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/RadioButton.as
@@ -20,7 +20,21 @@ package org.apache.flex.jquery
 {
        import org.apache.flex.html.RadioButton;
        
+       COMPILE::AS3
        public class RadioButton extends org.apache.flex.html.RadioButton
        {
+               
+       }
+
+       COMPILE::JS
+       public class RadioButton extends org.apache.flex.html.RadioButton
+       {
+               override public function addedToParent():void
+               {
+                       super.addedToParent();
+                       
+                       var input:HTMLInputElement = element.childNodes.item(0) 
as HTMLInputElement;
+                       $(input).button();
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/426fa559/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/TextButton.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/TextButton.as 
b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/TextButton.as
index 43d7dc8..e2c750c 100644
--- a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/TextButton.as
+++ b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/TextButton.as
@@ -20,11 +20,34 @@ package org.apache.flex.jquery
 {
        import org.apache.flex.html.TextButton;
        
+       COMPILE::JS {
+               import org.apache.flex.core.WrappedHTMLElement;
+       }
+       
        public class TextButton extends org.apache.flex.html.TextButton
        {
                public function TextButton()
                {
                        super();
                }
+       
+               COMPILE::JS
+               override protected function createElement():WrappedHTMLElement
+               {
+                       element = document.createElement('button') as 
WrappedHTMLElement;
+                       element.setAttribute('type', 'button');
+                       
+                       positioner = element;
+                       positioner.style.position = 'relative';
+                       element.flexjs_wrapper = this;
+                       return element;
+               }
+               
+               COMPILE::JS
+               override public function addedToParent():void
+               {
+                       super.addedToParent();
+                       $(element).button();
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/426fa559/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/ToggleTextButton.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/ToggleTextButton.as 
b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/ToggleTextButton.as
index b76846c..af14a87 100644
--- 
a/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/ToggleTextButton.as
+++ 
b/frameworks/projects/JQuery/as/src/org/apache/flex/jquery/ToggleTextButton.as
@@ -18,26 +18,7 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.jquery
 {
-       import org.apache.flex.core.IStrand;
-    import org.apache.flex.core.IToggleButtonModel;
-       import org.apache.flex.core.IUIBase;
-       import org.apache.flex.core.UIButtonBase;
-       import org.apache.flex.core.ValuesManager;
-       import org.apache.flex.events.IEventDispatcher;
-       
-    //--------------------------------------
-    //  Events
-    //--------------------------------------
-    
-    /**
-     *  Dispatched when the user clicks on a button.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.6
-     *  @productversion FlexJS 0.0
-     */
-       [Event(name="click", type="org.apache.flex.events.Event")]
+       import org.apache.flex.html.ToggleTextButton;
 
     /**
      *  The ToggleButton class is a TextButton that supports
@@ -48,42 +29,14 @@ package org.apache.flex.jquery
      *  @playerversion AIR 2.6
      *  @productversion FlexJS 0.0
      */
-       public class ToggleTextButton extends TextButton implements IStrand, 
IEventDispatcher, IUIBase
+       public class ToggleTextButton extends 
org.apache.flex.html.ToggleTextButton
        {
-        /**
-         *  Constructor.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-               public function ToggleTextButton()
+        
+               COMPILE::JS
+               override public function addedToParent():void
                {
-                       super();
+                       super.addedToParent();
+                       $(element).button();
                }
-        
-        /**
-         *  <code>true</code> if the Button is selected.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-        public function get selected():Boolean
-        {
-            return IToggleButtonModel(model).selected;
-        }
-        
-        /**
-         *  @private
-         */
-        public function set selected(value:Boolean):void
-        {
-            IToggleButtonModel(model).selected = value;
-        }
-        
-        
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/426fa559/frameworks/projects/JQuery/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/JQuery/build.xml 
b/frameworks/projects/JQuery/build.xml
index 61b2ac9..ce63aeb 100644
--- a/frameworks/projects/JQuery/build.xml
+++ b/frameworks/projects/JQuery/build.xml
@@ -19,7 +19,7 @@
 -->
 
 
-<project name="JQuery" default="main" basedir=".">
+<project name="jQuery" default="main" basedir=".">
     <property name="FLEXJS_HOME" location="../../.."/>
     
     <property file="${FLEXJS_HOME}/env.properties"/>
@@ -28,35 +28,23 @@
     <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
     <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
     <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
-    <property name="gjslint" value="gjslint" />
-    <property name="jshint" value="jshint" />
-    <condition property="no.lint" value="true">
-        <os family="windows"/>
-    </condition>
-    
-    <target name="main" depends="clean,compile,test" description="Clean build 
of JQuery.swc">
+
+    <target name="main" depends="clean,compile,test" description="Clean build 
of jQuery.swc">
     </target>
-    
-    <target name="all" depends="main,compile-asjs,lint-js,test-js" 
description="Full build of JQuery.swc">
+
+    <target name="all" 
depends="clean,compile-asjs,compile-extern-swc,copy-js,compile,test" 
description="Full build of jQuery.swc">
     </target>
-    
+
     <target name="test" unless="is.jenkins">
         <!-- no tests yet
          <ant dir="as/tests" />
-         <ant dir="asjs/tests" />
-         -->
-    </target>
-    
-    <target name="test-js" unless="is.jenkins">
-        <!-- no tests yet
-         <ant dir="js/tests" />
          -->
     </target>
     
     <target name="clean">
         <delete failonerror="false">
             <fileset dir="${FLEXJS_HOME}/frameworks/libs">
-                <include name="JQuery.swc"/>
+                <include name="jQuery.swc"/>
             </fileset>
         </delete>
         <delete failonerror="false">
@@ -71,9 +59,11 @@
     </path>
 
     <target name="compile" description="Compiles .as files into .swc">
-        <echo message="Compiling libs/JQuery.swc"/>
+        <echo message="Compiling libs/jQuery.swc"/>
         <echo message="FLEX_HOME: ${FLEX_HOME}"/>
         <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${basedir}/js/out" />
 
         <!-- Load the <compc> task. We can't do this at the <project> level -->
         <!-- because targets that run before flexTasks.jar gets built would 
fail. -->
@@ -82,7 +72,7 @@
             Link in the classes (and their dependencies) for the MXML tags
             listed in this project's manifest.xml.
             Also link the additional classes (and their dependencies)
-            listed in JQueryClasses.as,
+            listed in jQueryClasses.as,
             because these aren't referenced by the manifest classes.
             Keep the standard metadata when compiling.
             Include the appropriate CSS files and assets in the SWC.
@@ -91,51 +81,84 @@
             into the file bundles.properties in this directory.
         -->
         <compc fork="true"
-               output="${FLEXJS_HOME}/frameworks/libs/JQuery.swc">
+               output="${FLEXJS_HOME}/frameworks/libs/jQuery.swc">
             <jvmarg line="${compc.jvm.args}"/>
             <load-config filename="compile-config.xml" />
             <arg value="+playerglobal.version=${playerglobal.version}" />
             <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-define=COMPILE::AS3,true" />
+            <arg value="-define=COMPILE::JS,false" />
         </compc>
     </target>
 
-    <target name="compile-asjs" >
-        <!-- nothing to cross-compile yet -->
+    <target name="compile-asjs">
+        <echo message="Cross-compiling jQuery"/>
+        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
+        <java jar="${FALCONJX_HOME}/lib/compc.jar" fork="true" >
+            <jvmarg value="-Xmx384m" />
+            <jvmarg value="-Dsun.io.useCanonCaches=false" />
+            <jvmarg value="-Dflexcompiler=${FALCONJX_HOME}/../compiler" />
+            <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
+            <arg value="+flexlib=${FLEX_HOME}/frameworks" />
+            <arg value="-js-output-type=FLEXJS" />
+            <arg value="-keep-asdoc" /><!-- allows compiler to see 
@flexjsignorecoercion annotations -->
+            <arg value="-output=${basedir}/js/out" />
+            <arg value="-load-config=${basedir}/compile-asjs-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg 
value="-external-library-path+=${FALCONJX_HOME}/../externs/js/out/bin/js.swc" />
+            <arg 
value="-external-library-path+=${FALCONJX_HOME}/../externs/jquery/out/bin/jquery-1.9.swc"
 />
+            <!-- this is not on external-library path otherwise goog.requires 
are not generated -->
+            <arg 
value="-library-path+=${FALCONJX_HOME}/../externs/GCL/out/bin/GCL.swc" />
+            <arg value="-define=COMPILE::AS3,false" />
+            <arg value="-define=COMPILE::JS,true" />
+        </java>
+    </target>
+
+    <target name="compile-extern-swc" description="Compiles .as files into 
.swc used for cross-compiling other projects">
+        <echo message="Compiling externs/jQuery.swc"/>
+        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+        <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${FLEXJS_HOME}/frameworks/externs"/>
+        
+        <!-- Load the <compc> task. We can't do this at the <project> level -->
+        <!-- because targets that run before flexTasks.jar gets built would 
fail. -->
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+        <!--
+         Link in the classes (and their dependencies) for the MXML tags
+         listed in this project's manifest.xml.
+         Also link the additional classes (and their dependencies)
+         listed in CoreClasses.as,
+         because these aren't referenced by the manifest classes.
+         Keep the standard metadata when compiling.
+         Include the appropriate CSS files and assets in the SWC.
+         Don't include any resources in the SWC.
+         Write a bundle list of referenced resource bundles
+         into the file bundles.properties in this directory.
+         -->
+        <compc fork="true"
+            output="${FLEXJS_HOME}/frameworks/externs/jQuery.swc">
+            <jvmarg line="${compc.jvm.args}"/>
+            <load-config filename="compile-asjs-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg 
value="-external-library-path+=${FALCONJX_HOME}/../externs/js/out/bin/js.swc" />
+            <arg 
value="-external-library-path+=${FALCONJX_HOME}/../externs/jquery/out/bin/jquery-1.9.swc"
 />
+            <!-- this is not on external-library path otherwise goog.requires 
are not generated -->
+            <arg 
value="-library-path+=${FALCONJX_HOME}/../externs/GCL/out/bin/GCL.swc" />
+            <arg value="-define=COMPILE::AS3,false" />
+            <arg value="-define=COMPILE::JS,true" />
+        </compc>
     </target>
 
-    <target name="lint-js" depends="gjslint, jshint, copy-js" />
-    <target name="copy-js" >
+    <target name="copy-js">
         <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
-            <fileset dir="${basedir}/js/src">
-                <include name="**/**" />
+            <fileset dir="${basedir}/js/out">
+                <include name="**/**"/>
             </fileset>
         </copy>
     </target>
 
-    <target name="gjslint" unless="no.lint">
-        <echo>running gjslint</echo>
-        <exec executable="${gjslint}" dir="${basedir}" failonerror="true">
-            <arg value="--strict" />
-            <arg value="--disable" />
-            <arg value="006,100,214,300" />
-            <!-- 006: wrong indentation -->
-            <!-- 100: cannot have non-primitive value -->
-            <!-- 214: @fileoverview tag missing description -->
-            <!-- 300: missing newline at end of file -->
-            <arg value="--max_line_length" />
-            <arg value="120" />
-            <arg value="-r" />
-            <arg value="${basedir}/js/src" />
-        </exec>
-    </target>
-
-    <target name="jshint" unless="no.lint">
-        <echo>running jshint</echo>
-        <exec executable="${jshint}" dir="${basedir}" failonerror="true">
-            <arg value="--config" />
-            <arg value="${FLEX_HOME}/frameworks/js/jshint.properties" />
-            <arg value="${basedir}/js/src" />
-        </exec>
-    </target>
-
 </project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/426fa559/frameworks/projects/JQuery/compile-asjs-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/JQuery/compile-asjs-config.xml 
b/frameworks/projects/JQuery/compile-asjs-config.xml
new file mode 100644
index 0000000..3f88534
--- /dev/null
+++ b/frameworks/projects/JQuery/compile-asjs-config.xml
@@ -0,0 +1,87 @@
+<!--
+
+  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.
+
+-->
+<flex-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <external-library-path>
+            
<path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+        </external-library-path>
+        
+               <mxml>
+                       <children-as-data>true</children-as-data>
+               </mxml>
+               
<binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+               
<binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+               
<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+        </keep-as3-metadata>
+         
+        <locale/>
+        
+        <library-path>
+            <!-- asjscompc won't 'link' these classes in, but will list their 
requires
+                 if these swcs are on the external-library-path then their 
requires
+                 will not be listed -->
+            <path-element>../../externs/Binding.swc</path-element>
+            <path-element>../../externs/Core.swc</path-element>
+            <path-element>../../externs/Graphics.swc</path-element>
+            <path-element>../../externs/Collections.swc</path-element>
+            <path-element>../../externs/HTML.swc</path-element>
+        </library-path>
+        
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/jquery</uri>
+                <manifest>jquery-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>as/src</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+    </include-file>
+
+    <include-sources>
+    </include-sources>
+    
+    <include-classes>
+        <class>HTMLClasses</class>
+    </include-classes>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/flexjs/jquery</uri>
+    </include-namespaces>
+        
+    <target-player>${playerglobal.version}</target-player>
+       
+
+</flex-config>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/426fa559/frameworks/projects/JQuery/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/JQuery/compile-config.xml 
b/frameworks/projects/JQuery/compile-config.xml
index 59f2bfb..7c3e1e7 100644
--- a/frameworks/projects/JQuery/compile-config.xml
+++ b/frameworks/projects/JQuery/compile-config.xml
@@ -65,8 +65,8 @@
         <path>as/defaults.css</path>
     </include-file>
     <include-file>
-        <name>js/src/*</name>
-        <path>js/src/*</path>
+        <name>js/out/*</name>
+        <path>js/out/*</path>
     </include-file>
 
     <include-classes>

Reply via email to