]> source.dussan.org Git - gwtquery.git/commitdiff
move JsFunction to JsUtils and make it public
authorManolo Carrasco <manolo@apache.org>
Thu, 15 Mar 2012 09:57:24 +0000 (09:57 +0000)
committerManolo Carrasco <manolo@apache.org>
Thu, 15 Mar 2012 09:57:24 +0000 (09:57 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/client/builders/JsonBuilderBase.java
gwtquery-core/src/main/java/com/google/gwt/query/client/js/JsUtils.java

index 8620501a1fdf28839350e98e5cc095f99d189961..e10643322e719c30a5af40c41863cf9250f65c32 100644 (file)
@@ -90,14 +90,7 @@ public abstract class JsonBuilderBase<J extends JsonBuilderBase<?>> implements J
         return (Function)o;
       } else if (o instanceof JavaScriptObject 
           && JsUtils.isFunction((JavaScriptObject)o)) {
-        return new Function() {
-          private native void exec(JavaScriptObject f, Object data) /*-{
-            f(data);
-          }-*/;
-          public void f() {
-            exec((JavaScriptObject)o, getData()[0]);
-          }
-        };
+        return new JsUtils.JsFunction((JavaScriptObject)o);
       }
     }
     return null;
index b8c3e4e358a2b694742c9f548b193641bce26f8e..488e693b21b484eabda94bd0c7af7091ca5968f3 100644 (file)
@@ -22,6 +22,7 @@ import com.google.gwt.dom.client.Document;
 import com.google.gwt.dom.client.Element;
 import com.google.gwt.dom.client.Node;
 import com.google.gwt.dom.client.NodeList;
+import com.google.gwt.query.client.Function;
 import com.google.gwt.query.client.GQuery;
 import com.google.gwt.query.client.Properties;
 import com.google.gwt.user.client.DOM;
@@ -33,6 +34,23 @@ public class JsUtils {
   
   private static JsUtilsImpl utilsImpl = GWT.create(JsUtilsImpl.class);
   
+  public static class JsFunction extends Function {
+    private JavaScriptObject jso = null;
+    public JsFunction(JavaScriptObject f) {
+      if (JsUtils.isFunction(f)) {
+        jso = f;
+      }
+    }
+    private native void exec(JavaScriptObject f, Object data) /*-{
+      f(data);
+    }-*/;
+    public void f() {
+      if (jso != null) {
+        exec(jso, getData()[0]);
+      }
+    }
+  }
+  
   public static class JsUtilsImpl {
     public native Element parseXML(String xml) /*-{
       return new DOMParser().parseFromString(xml, "text/xml").documentElement;