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;
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;
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;