]> source.dussan.org Git - gwtquery.git/commitdiff
jsquery re-factoring
authorManolo Carrasco <manolo@apache.org>
Wed, 14 Mar 2012 16:52:10 +0000 (16:52 +0000)
committerManolo Carrasco <manolo@apache.org>
Wed, 14 Mar 2012 16:52:10 +0000 (16:52 +0000)
jsquery/src/main/java/gwtquery/jsquery/JsQuery.gwt.xml
jsquery/src/main/java/gwtquery/jsquery/JsQueryXs.gwt.xml
jsquery/src/main/java/gwtquery/jsquery/client/JQ.java [deleted file]
jsquery/src/main/java/gwtquery/jsquery/client/JsMenu.java
jsquery/src/main/java/gwtquery/jsquery/client/JsQuery.java
jsquery/src/main/java/gwtquery/jsquery/client/OverlayGQuery.java [new file with mode: 0644]
jsquery/src/main/java/gwtquery/jsquery/client/utils/JsQAux.java [new file with mode: 0644]

index 2dc6ab94698db1a3c6867fd7d632efbb2d5d7013..ace3971ec1ce8c1b5d2302e49f3ed39c16cc6b62 100644 (file)
@@ -5,7 +5,8 @@
        <set-property name="export" value="yes" />
 
        <entry-point class="gwtquery.jsquery.client.JsQuery" />
-       
-    <add-linker name="xsiframe"/>
+
+        <!-- cross-site -->    
+        <add-linker name="xsiframe"/>
 </module>
 
index 5cb9179f010d74dfebd7e8fe10843d0cdfa18b9f..80ce12a6beb263de48feb13de5af20deb9023052 100644 (file)
@@ -26,9 +26,6 @@
       ]]>
     </property-provider>
     
-    <!-- Cross Site -->
-    <add-linker name="xslinker"/>
-    
     <!-- Minimize JS -->
     <set-property name="compiler.stackMode" value="strip"/>
 </module>
diff --git a/jsquery/src/main/java/gwtquery/jsquery/client/JQ.java b/jsquery/src/main/java/gwtquery/jsquery/client/JQ.java
deleted file mode 100644 (file)
index f34b223..0000000
+++ /dev/null
@@ -1,459 +0,0 @@
-package gwtquery.jsquery.client;
-
-import static com.google.gwt.user.client.Window.alert;
-
-import org.timepedia.exporter.client.Export;
-import org.timepedia.exporter.client.ExportAfterCreateMethod;
-import org.timepedia.exporter.client.ExportClosure;
-import org.timepedia.exporter.client.ExportInstanceMethod;
-import org.timepedia.exporter.client.ExportJsInitMethod;
-import org.timepedia.exporter.client.ExportOverlay;
-import org.timepedia.exporter.client.ExportPackage;
-import org.timepedia.exporter.client.Exportable;
-import org.timepedia.exporter.client.ExporterUtil;
-
-import com.google.gwt.core.client.JavaScriptObject;
-import com.google.gwt.core.client.JsArray;
-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.GQuery.Offset;
-import com.google.gwt.query.client.Predicate;
-import com.google.gwt.query.client.Properties;
-import com.google.gwt.query.client.js.JsCache;
-import com.google.gwt.query.client.js.JsNodeArray;
-import com.google.gwt.query.client.js.JsUtils;
-import com.google.gwt.query.client.plugins.Effects;
-import com.google.gwt.query.client.plugins.effects.PropertiesAnimation;
-import com.google.gwt.query.client.plugins.effects.PropertiesAnimation.Easing;
-import com.google.gwt.user.client.Event;
-
-
-@ExportPackage("jsQuery")
-@Export(value="fn", all=false)
-public class JQ implements ExportOverlay<GQuery> {
-  
-  @ExportPackage("jsQuery")
-  @Export("jFunction")
-  @ExportClosure()
-  public interface JFunction extends ExportOverlay<Function>  {
-    public void f();
-// Element and Event are JavascriptObjects so we export one.    
-//    public void f(Element e);
-    public boolean f(Event e);
-    public Object f(Element e, int i);
-  }
-
-  @ExportPackage("jsQuery")
-  @Export("jPredicate")
-  @ExportClosure()
-  public interface JPredicate extends ExportOverlay<Predicate>  {
-    public boolean f(Element e, int i);
-  }
-  
-  @ExportPackage("jsQuery")
-  @Export("jEasing")
-  @ExportClosure()
-  public interface JEasing extends ExportOverlay<Easing>  {
-    public double interpolate(double progress);
-  }
-  
-  @ExportPackage("")
-  @Export("jsQuery")
-  // Used to export $ method 
-  public static class Dollar implements Exportable {
-    // jQuery.fn.init.prototype = jQuery.fn
-    native static String dumpObject(JavaScriptObject o) /*-{
-      var s = "" ; for (k in o) s += " " + k; return s;
-    }-*/;
-    
-    private static native boolean isFunction(Object o) /*-{
-      return typeof(o) == 'function';
-    }-*/;
-    
-    private static native void runFunction(Object f) /*-{
-      f();
-    }-*/;
-
-    @Export("$wnd.$")
-    public static GQuery staticDollar(Object o) {
-      if (o instanceof String) {
-        return GQuery.$((String)o);
-      } else if (isFunction(o)) {
-        runFunction(o);
-      } else if (o instanceof JavaScriptObject) {
-        JavaScriptObject jso = (JavaScriptObject)o;
-        GQuery r = GQuery.$(jso);
-        if (JsUtils.isArray(jso)) {
-          JsCache c = jso.cast();
-          JsNodeArray elms = JsNodeArray.create();
-          for (int i = 0 ; i < c.length(); i++) {
-            elms.addNode(c.getJavaScriptObject(i).<Node>cast());
-          }
-          r = GQuery.$(elms);
-//          System.out.println(c.length() + " " + elms.getLength() + " " + r.length());
-        }
-        
-        return r;
-      } else {
-        System.out.println("Bad!!!! " + o);
-      }
-      return GQuery.$();
-    }
-    
-    @Export("$wnd.$")
-    public static GQuery staticDollar(String s, Element ctx) {
-      return GQuery.$(s, ctx);
-    }
-    
-    
-    @Export("$wnd.$.ready")
-    public static void ready(Function f) {
-      alert("ready");
-    }
-    
-    @Export("$wnd.$.inArray")
-    public static int inArray(Object o, Object a) {
-      if (o instanceof JavaScriptObject && JsUtils.isElement((JavaScriptObject)o)) {
-        return staticDollar(a).index((Element)o);
-      } else if (a instanceof JavaScriptObject && JsUtils.isArray((JavaScriptObject)a)) {
-        return ((JsCache)a).indexOf(o); 
-      }
-      return -1;
-    }
-
-    @Export("$wnd.$.extend")
-    public  static JavaScriptObject extend(Object...objs) {
-      int i = 0, l = objs.length;
-      boolean deep = false;
-      JavaScriptObject ctx = null;
-      Object target = objs[i];
-      if (target instanceof Boolean) {
-        deep = (Boolean) target;
-        if (l == 1) return ctx;
-        target = objs[i++];
-      }
-      if (l - i == 1) {
-        i--;
-      } else {
-        ctx = (JavaScriptObject)target;
-      }
-      
-      for (++i; i < l; i++) {
-        if (objs[i] != null) {
-          ctx = extendImpl(deep, ctx, objs[i]);
-        }
-      }
-      return ctx;
-    }
-    
-    private static native JavaScriptObject getDefaultPrototype() /*-{
-      return $wnd.jsQuery && $wnd.jsQuery.fn ? $wnd.jsQuery.fn.prototype : null;
-    }-*/;
-    
-    private static native JavaScriptObject extendImpl(boolean deep, JavaScriptObject ctx, Object s) /*-{
-      var d = ctx ? ctx : $wnd.jsQuery.fn.prototype || {};
-      for (k in s) {
-        d[k] = s[k];
-        if (!ctx) $wnd.$[k] = s[k];
-      }
-      return d;
-    }-*/;
-    
-    @ExportAfterCreateMethod
-    public static native void afterCreate() /*-{
-    }-*/;
-  }
-  
-  // We have to stub all the method we want to export here.
-  private JQ(){}
-
-  @ExportJsInitMethod
-  public NodeList<Element> get() {return null;}
-
-  public String toString() {return null;}
-  public GQuery add(GQuery previousObject) {return null;}
-  public GQuery add(String selector) {return null;}
-  public GQuery addClass(String... classes) {return null;}
-  public GQuery after(GQuery query) {return null;}
-  public GQuery after(Node n) {return null;}
-  public GQuery after(String html) {return null;}
-  public GQuery andSelf() {return null;}
-  
-  @ExportInstanceMethod
-  public static GQuery animate(GQuery g, Object stringOrProperties, int duration, String easing, Function... funcs) {
-    return g.animate(stringOrProperties, duration, "linear".equalsIgnoreCase(easing)? PropertiesAnimation.Easing.LINEAR : PropertiesAnimation.Easing.SWING, funcs);
-  }
-//  public GQuery animate(Object stringOrProperties, int duration, Easing easing, Function... funcs) {return null;}
-  public GQuery animate(Object stringOrProperties, Function... funcs) {return null;}
-  public GQuery animate(Object stringOrProperties, int duration, Function... funcs) {return null;}
-//public GQuery attr(Properties properties) {return null;}
-public String attr(String name) {return null;}
-//public GQuery attr(String key, Function closure) {return null;}
-public GQuery attr(String key, Object value) {return null;}
-public int size() {return 0;}
-
-  public GQuery append(GQuery query) {return null;}
-  public GQuery append(Node n) {return null;}
-  public GQuery append(String html) {return null;}
-  public GQuery appendTo(GQuery other) {return null;}
-  public GQuery appendTo(Node n) {return null;}
-  public GQuery appendTo(String html) {return null;}
-  public <T extends GQuery> T as(Class<T> plugin) {return null;}
-
-  public GQuery before(GQuery query) {return null;}
-  public GQuery before(Node n) {return null;}
-  public GQuery before(String html) {return null;}
-//  public GQuery bind(int eventbits, Object data, Function... funcs) {return null;}
-//  public GQuery bind(String eventType, Object data, Function... funcs) {return null;}
-  @ExportInstanceMethod
-  public static GQuery bind(GQuery g, String events, Function func) {
-    return g.bind(events, null, func);
-  }
-  public GQuery blur(Function... f) {return null;}
-  public GQuery change(Function... f) {return null;}
-  public GQuery children() {return null;}
-  public GQuery children(String... filters) {return null;}
-  public GQuery clearQueue() {return null;}  
-  public GQuery clone() {return null;}
-  public GQuery clearQueue(String queueName) {return null;}
-  public GQuery click(Function... f) {return null;}
-  public GQuery closest(String selector) {return null;}
-//  public JsNamedArray<NodeList<Element>> closest(String[] selectors) {return null;}
-//  public JsNamedArray<NodeList<Element>> closest(String[] selectors, Node context) {return null;}
-  public GQuery closest(String selector, Node context) {return null;}
-  public GQuery contains(String text) {return null;}
-  public GQuery contents() {return null;}
-  @ExportInstanceMethod
-  public static Object css(GQuery g, Object o) {
-    if (o instanceof String) {
-      return g.css((String)o, false);
-    } else {
-      return ExporterUtil.wrap(g.css((Properties)o));
-    }
-  }
-  @ExportInstanceMethod
-  public static GQuery css(GQuery g, String k, Object v) {
-    return g.css(k, String.valueOf(v));
-  }
-//  public GQuery css(Properties properties) {return null;}
-//  public String css(String name) {return null;}
-//  public String css(String name, boolean force) {return null;}
-  public GQuery css(String prop, String val) {return null;}
-  public double cur(String prop) {return 0;}
-  public double cur(String prop, boolean force) {return 0;}
-  public Object data(String name) {return null;}
-//  public <T> T data(String name, Class<T> clz) {return null;}
-  public GQuery data(String name, Object value) {return null;}
-  public GQuery dblclick(Function... f) {return null;}
-  public GQuery delay(int milliseconds, Function... f) {return null;}
-  public GQuery delay(int milliseconds, String queueName, Function... f) {return null;}
-  public GQuery delegate(String selector, String eventType, Function... handlers) {return null;}
-  public GQuery delegate(String selector, String eventType, Object data, Function... handlers) {return null;}
-  public GQuery delegate(String selector, int eventbits, Function... handlers) {return null;}
-  public GQuery delegate(String selector, int eventbits, Object data, Function... handlers) {return null;}
-  public GQuery dequeue() {return null;}
-  public GQuery dequeue(String queueName) {return null;}
-  public GQuery detach() {return null;}
-  public GQuery detach(String filter) {return null;}
-  public GQuery die() {return null;}
-  public GQuery die(String eventName) {return null;}
-//  public GQuery die(int eventbits) {return null;}
-  public GQuery each(Function... f) {return null;}
-  public Element[] elements() {return null;}
-  public GQuery empty() {return null;}
-//  public GQuery end() {return null;}
-  public GQuery eq(int pos) {return null;}
-  public GQuery error(Function... f) {return null;}
-  public GQuery fadeIn(Function... f) {return null;}
-  public GQuery fadeIn(int millisecs, Function... f) {return null;}
-  public GQuery fadeOut(Function... f) {return null;}
-  public GQuery fadeOut(int millisecs, Function... f) {return null;}
-  public Effects fadeToggle(int millisecs, Function... f) {return null;}
-  public GQuery filter(Predicate filterFn) {return null;}
-//  public GQuery filter(String... filters) {return null;}
-  public GQuery find(String... filters) {return null;}
-  public GQuery first() {return null;}
-  public GQuery focus(Function... f) {return null;}
-  public Element get(int i) {return null;}
-  public Node getContext() {return null;}
-  public GQuery getPreviousObject() {return null;}
-  public String getSelector() {return null;}
-  public GQuery gt(int pos) {return null;}
-  public boolean hasClass(String... classes) {return false;}
-  public int height() {return 0;}
-  public GQuery height(int height) {return null;}
-  public GQuery height(String height) {return null;}
-  public GQuery hide() {return null;}
-  public GQuery hover(Function fover, Function fout) {return null;}
-  public String html() {return null;}
-  public GQuery html(String html) {return null;}
-  public String id() {return null;}
-  public GQuery id(String id) {return null;}
-  public int index(Element element) {return 0;}
-  public int innerHeight() {return 0;}
-  public int innerWidth() {return 0;}
-  public GQuery insertAfter(Element elem) {return null;}
-  public GQuery insertAfter(GQuery query) {return null;}
-  public GQuery insertAfter(String selector) {return null;}
-  public GQuery insertBefore(Element item) {return null;}
-  public GQuery insertBefore(GQuery query) {return null;}
-  public GQuery insertBefore(String selector) {return null;}
-  public boolean is(String... filters) {return false;}
-  public boolean isEmpty() {return false;}
-  public GQuery keydown(Function... f) {return null;}
-  public GQuery keydown(int key) {return null;}
-  public GQuery keypress(Function... f) {return null;}
-  public GQuery keypress(int key) {return null;}
-  public GQuery keyup(Function... f) {return null;}
-  public GQuery keyup(int key) {return null;}
-  public GQuery last() {return null;}
-  public int left() {return 0;}
-  public int length() {return 0;}
-  public GQuery live(String eventName, Function... funcs) {return null;}
-//  public GQuery live(int eventbits, Function... funcs) {return null;}
-//  public GQuery live(int eventbits, Object data, Function... funcs) {return null;}
-  public GQuery live(String eventName, Object data, Function... funcs) {return null;}
-//  public GQuery load(Function f) {return null;}
-  
-  public GQuery lt(int pos) {return null;}
-//  public <W> List<W> map(Function f) {return null;}
-  public GQuery mousedown(Function... f) {return null;}
-  public GQuery mousemove(Function... f) {return null;}
-  public GQuery mouseout(Function... f) {return null;}
-  public GQuery mouseover(Function... f) {return null;}
-  public GQuery mouseup(Function... f) {return null;}
-  public GQuery next() {return null;}
-  public GQuery next(String... selectors) {return null;}
-  public GQuery nextAll() {return null;}
-  public GQuery nextUntil(String selector) {return null;}
-  public GQuery not(Element elem) {return null;}
-  public GQuery not(GQuery gq) {return null;}
-  public GQuery not(String... filters) {return null;}
-  
-  @ExportInstanceMethod
-  public static JavaScriptObject offset(GQuery instance) {
-    Offset o = instance.offset();
-    return Properties.create("left: " + o.left + ", top:" + o.top);
-  }
-  
-  public GQuery offsetParent() {return null;}
-  public GQuery one(int eventbits, Object data, Function f) {return null;}
-  public int outerHeight() {return 0;}
-  public int outerHeight(boolean includeMargin) {return 0;}
-  public int outerWidth() {return 0;}
-  public int outerWidth(boolean includeMargin) {return 0;}
-  public GQuery parent() {return null;}
-  public GQuery parent(String... filters) {return null;}
-  public GQuery parents() {return null;}
-  public GQuery parents(String... filters) {return null;}
-  public GQuery parentsUntil(String selector) {return null;}
-//  public Offset position() {return null;}
-  public GQuery prepend(GQuery query) {return null;}
-  public GQuery prepend(Node n) {return null;}
-  public GQuery prepend(String html) {return null;}
-  public GQuery prependTo(GQuery other) {return null;}
-  public GQuery prependTo(Node n) {return null;}
-  public GQuery prependTo(String html) {return null;}
-  public GQuery prev() {return null;}
-  public GQuery prev(String... selectors) {return null;}
-  public GQuery prevAll() {return null;}
-  public GQuery prevUntil(String selector) {return null;}
-  public boolean prop(String key) {return false;}
-  public GQuery prop(String key, boolean value) {return null;}
-  public GQuery prop(String key, Function closure) {return null;}
-  public int queue() {return 0;}
-  public int queue(String queueName) {return 0;}
-  public GQuery queue(Function... f) {return null;}
-  public GQuery queue(String queueName, Function... f) {return null;}
-  public GQuery remove() {return null;}
-  public GQuery remove(String filter) {return null;}
-  public GQuery removeAttr(String key) {return null;}
-  public GQuery removeClass(String... classes) {return null;}
-  public GQuery removeData(String name) {return null;}
-  public GQuery replaceAll(Element elem) {return null;}
-  public GQuery replaceAll(GQuery target) {return null;}
-  public GQuery replaceAll(String selector) {return null;}
-  public GQuery replaceWith(Element elem) {return null;}
-  public GQuery replaceWith(GQuery target) {return null;}
-  public GQuery replaceWith(String html) {return null;}
-  public GQuery resize(Function... f) {return null;}
-  public void restoreCssAttrs(String... cssProps) {}
-  public void resize(Function f) {}
-  public void saveCssAttrs(String... cssProps) {}
-  public GQuery scroll(Function... f) {return null;}
-  public GQuery scrollIntoView() {return null;}
-  public GQuery scrollIntoView(boolean ensure) {return null;}
-  public int scrollLeft() {return 0;}
-  public GQuery scrollLeft(int left) {return null;}
-  public GQuery scrollTo(int left, int top) {return null;}
-  public int scrollTop() {return 0;}
-  public GQuery scrollTop(int top) {return null;}
-  public GQuery select() {return null;}
-  public GQuery setArray(NodeList<Element> list) {return null;}
-  public void setPreviousObject(GQuery previousObject) {}
-  public GQuery setSelector(String selector) {return null;}
-  public GQuery show() {return null;}
-  public GQuery siblings() {return null;}
-  public GQuery siblings(String... selectors) {return null;}
-  public GQuery slice(int start, int end) {return null;}
-  public Effects slideDown(Function... f) {return null;}
-  public Effects slideDown(int millisecs, Function... f) {return null;}
-  public Effects slideToggle(int millisecs, Function... f) {return null;}
-  public Effects slideUp(Function... f) {return null;}
-  public Effects slideUp(int millisecs, Function... f) {return null;}
-  public GQuery stop() {return null;}
-  public GQuery stop(boolean clearQueue) {return null;}
-  public GQuery stop(boolean clearQueue, boolean jumpToEnd) {return null;}
-  public GQuery submit(Function... funcs) {return null;}
-  public String text() {return null;}
-  public GQuery text(String txt) {return null;}
-  public GQuery toggle() {return null;}
-  public GQuery toggle(Function... fn) {return null;}
-  public GQuery toggleClass(String... classes) {return null;}
-  public GQuery toggleClass(String clz, boolean addOrRemove) {return null;}
-  public int top() {return 0;}
-  public String toString(boolean pretty) {return null;}
-//  public GQuery trigger(int eventbits, int... keys) {return null;}
-//  public GQuery unbind(int eventbits) {return null;}
-  @ExportInstanceMethod
-  public static GQuery unbind(GQuery g, String s, Function o) {
-    return g.unbind(s);
-  }
-  public GQuery undelegate() {return null;}
-  public GQuery undelegate(String selector) {return null;}
-  public GQuery undelegate(String selector, String eventName) {return null;}
-  public GQuery undelegate(String selector, int eventBit) {return null;}
-//  public JsNodeArray unique(NodeList<Element> result) {return null;}
-  public GQuery unwrap() {return null;}
-  public String val() {return null;}
-  public GQuery val(String... values) {return null;}
-  public String[] vals() {return null;}
-  public boolean isVisible() {return false;}
-  public int width() {return 0;}
-  public GQuery width(int width) {return null;}
-  public GQuery wrap(Element elem) {return null;}
-  public GQuery wrap(GQuery query) {return null;}
-  public GQuery wrap(String html) {return null;}
-  public GQuery wrapAll(Element elem) {return null;}
-  public GQuery wrapAll(GQuery query) {return null;}
-  public GQuery wrapAll(String html) {return null;}
-  public GQuery wrapInner(Element elem) {return null;}
-  public GQuery wrapInner(GQuery query) {return null;}
-  public GQuery wrapInner(String html) {return null;}
-
-  @ExportInstanceMethod
-  public static GQuery ready(GQuery g, Function f) {
-    f.fe();
-    return g;
-  }
-
-  @ExportInstanceMethod
-  public static String imprime(GQuery g, Function f) {
-    System.out.println("Imprime " + g.size() + " " + g.toString(true));
-    return g.toString();
-  }
-
-}
index 6c30de6ac56924e48831a4c45ebe328b5ebe5950..9c1cf3737f7b765929864002df6dbb7cbf34e5e8 100644 (file)
@@ -2,15 +2,11 @@ package gwtquery.jsquery.client;
 
 public abstract class JsMenu {
   
-  static void log(Object l) {
-    System.out.println(l);
-  }
-  
   public static native void loadPlugin() /*-{
 
 (function($)
 {
-  var l = @gwtquery.jsquery.client.JsMenu::log(Ljava/lang/Object;);
+  var l = @gwtquery.jsquery.client.utils.JsQAux::log(Ljava/lang/Object;);
   
   var window = $wnd;
   var document = $doc;
index 98b9cca36963e6e748b55d98616f727fd0f546ac..bf9559ee7648cc5463750a77d47d146fb0178fcb 100644 (file)
@@ -1,10 +1,5 @@
 package gwtquery.jsquery.client;
 
-import gwtquery.jsquery.client.JQ.Dollar;
-import gwtquery.jsquery.client.JQ.JEasing;
-import gwtquery.jsquery.client.JQ.JFunction;
-import gwtquery.jsquery.client.JQ.JPredicate;
-
 import java.util.logging.Logger;
 
 import com.google.gwt.core.client.EntryPoint;
@@ -24,15 +19,23 @@ public class JsQuery implements EntryPoint {
       }
     });    
     
-    GWT.create(JFunction.class);
-    GWT.create(JPredicate.class);
-    GWT.create(JEasing.class);
-    GWT.create(JQ.class);
-    GWT.create(Dollar.class);
-    JsMenu.loadPlugin();
+    OverlayGQuery.export();
+    
     onJsQueryLoad();
+    
+    testJs();
   }
   
+  private native static void testJs() /*-{
+    var l = @gwtquery.jsquery.client.utils.JsQAux::log(Ljava/lang/Object;);
+    $ = $wnd.$;
+    l($.each);
+    $.each(["a","b"], function(a, b){
+      l("kk " + " " + a + " " + b);
+    }
+    );
+  }-*/;
+  
   private native static void onJsQueryLoad() /*-{
     $wnd.onJsQueryLoad && $wnd.onJsQueryLoad();
     $wnd.JsQuery && $wnd.JsQuery.onLoad && $wnd.JsQuery.onLoad();
diff --git a/jsquery/src/main/java/gwtquery/jsquery/client/OverlayGQuery.java b/jsquery/src/main/java/gwtquery/jsquery/client/OverlayGQuery.java
new file mode 100644 (file)
index 0000000..20b7139
--- /dev/null
@@ -0,0 +1,387 @@
+package gwtquery.jsquery.client;
+
+import gwtquery.jsquery.client.utils.JsQAux;
+
+import org.timepedia.exporter.client.Export;
+import org.timepedia.exporter.client.ExportAfterCreateMethod;
+import org.timepedia.exporter.client.ExportClosure;
+import org.timepedia.exporter.client.ExportInstanceMethod;
+import org.timepedia.exporter.client.ExportJsInitMethod;
+import org.timepedia.exporter.client.ExportOverlay;
+import org.timepedia.exporter.client.ExportPackage;
+import org.timepedia.exporter.client.ExportStaticMethod;
+import org.timepedia.exporter.client.ExporterUtil;
+import org.timepedia.exporter.client.NoExport;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.core.client.JavaScriptObject;
+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.GQuery.Offset;
+import com.google.gwt.query.client.Predicate;
+import com.google.gwt.query.client.Properties;
+import com.google.gwt.query.client.plugins.Effects;
+import com.google.gwt.query.client.plugins.effects.PropertiesAnimation;
+import com.google.gwt.user.client.Event;
+
+/**
+ * Class used to expose GQuery methods and object to Javascript using
+ * gwt-exporter annotations.
+ * 
+ * We prefer to overlay the original GQuery object instead of adding
+ * the gwt-exporter dependency to the project.
+ * 
+ * Because of the differences between java and js apis, we need to 
+ * override some methods in order to deal with complex cases. 
+ *
+ */
+@ExportPackage("jsQuery")
+@Export(value="fn", all=false)
+public class OverlayGQuery implements ExportOverlay<GQuery> {
+  
+  @NoExport
+  public static void export() {
+    GWT.create(OverlayFunction.class);
+    GWT.create(OverlayPredicate.class);
+    GWT.create(OverlayGQuery.class);
+  }
+  
+  @ExportPackage("jsQuery")
+  @Export("jFunction")
+  @ExportClosure()
+  protected interface OverlayFunction extends ExportOverlay<Function>  {
+    public void f();
+    public boolean f(Event e);
+    public Object f(Element e, int i);
+  }
+
+  @ExportPackage("jsQuery")
+  @Export("jPredicate")
+  @ExportClosure()
+  protected interface OverlayPredicate extends ExportOverlay<Predicate>  {
+    public boolean f(Element e, int i);
+  }
+  
+  private OverlayGQuery(){}
+
+  /**
+   * In js a GQuery object represents a Nodelist.
+   * gwt-exporter will use the object returned by get() to wrap
+   * the GQuery object
+   */
+  @ExportJsInitMethod
+  public NodeList<Element> get() {return null;}
+  
+  /**
+   * Customized JS code to execute after GQuery has been exported.
+   */
+  @ExportAfterCreateMethod
+  public static native void afterCreate() /*-{
+  }-*/;
+  
+  @ExportStaticMethod("$wnd.$")
+  public static GQuery $(Object o) {
+    return JsQAux.dollar(o);
+  }
+
+  @ExportStaticMethod("$wnd.$")
+  public static GQuery $(String s, Element ctx) {
+    return GQuery.$(s, ctx);
+  }
+  
+  @ExportStaticMethod("$wnd.$.extend")
+  public static JavaScriptObject extend(Object...objs) {
+    return JsQAux.extend(objs);
+  }
+  
+  @ExportStaticMethod("$wnd.$.each")
+  public static Object[] each(Object[] objs, Function f) {
+    return JsQAux.each(objs, f);
+  }
+  
+  @ExportInstanceMethod
+  public static GQuery ready(GQuery g, Function f) {
+    f.fe();
+    return g;
+  }
+
+  @ExportInstanceMethod
+  // TODO: normally plugins adds new easing functions to jquery.easing array
+  public static GQuery animate(GQuery g, Object stringOrProperties, int duration, String easing, Function... funcs) {
+    return g.animate(stringOrProperties, duration,
+        "linear".equalsIgnoreCase(easing) 
+            ? PropertiesAnimation.Easing.LINEAR
+            : PropertiesAnimation.Easing.SWING, funcs);
+  }
+  
+  @ExportInstanceMethod
+  public static Object css(GQuery g, Object o) {
+    if (o instanceof String) {
+      return g.css((String)o, false);
+    } else {
+      return ExporterUtil.wrap(g.css((Properties)o));
+    }
+  }
+
+  @ExportInstanceMethod
+  public static GQuery css(GQuery g, String k, Object v) {
+    return g.css(k, String.valueOf(v));
+  }
+  
+  @ExportInstanceMethod
+  public static JavaScriptObject offset(GQuery instance) {
+    Offset o = instance.offset();
+    return Properties.create("left: " + o.left + ", top:" + o.top);
+  }
+  
+  @ExportInstanceMethod
+  public static GQuery unbind(GQuery g, String s, Function o) {
+    return g.unbind(s);
+  }
+  
+  public String toString() {return null;}
+  public GQuery add(GQuery previousObject) {return null;}
+  public GQuery add(String selector) {return null;}
+  public GQuery addClass(String... classes) {return null;}
+  public GQuery after(GQuery query) {return null;}
+  public GQuery after(Node n) {return null;}
+  public GQuery after(String html) {return null;}
+  public GQuery andSelf() {return null;}
+  
+// public GQuery animate(Object stringOrProperties, int duration, Easing easing, Function... funcs) {return null;}
+  public GQuery animate(Object stringOrProperties, Function... funcs) {return null;}
+  public GQuery animate(Object stringOrProperties, int duration, Function... funcs) {return null;}
+// public GQuery attr(Properties properties) {return null;}
+  public String attr(String name) {return null;}
+// public GQuery attr(String key, Function closure) {return null;}
+  public GQuery attr(String key, Object value) {return null;}
+  public int size() {return 0;}
+
+  public GQuery append(GQuery query) {return null;}
+  public GQuery append(Node n) {return null;}
+  public GQuery append(String html) {return null;}
+  public GQuery appendTo(GQuery other) {return null;}
+  public GQuery appendTo(Node n) {return null;}
+  public GQuery appendTo(String html) {return null;}
+  public <T extends GQuery> T as(Class<T> plugin) {return null;}
+
+  public GQuery before(GQuery query) {return null;}
+  public GQuery before(Node n) {return null;}
+  public GQuery before(String html) {return null;}
+// public GQuery bind(int eventbits, Object data, Function... funcs) {return null;}
+// public GQuery bind(String eventType, Object data, Function... funcs) {return null;}
+  @ExportInstanceMethod
+  public static GQuery bind(GQuery g, String events, Function func) {
+    return g.bind(events, null, func);
+  }
+  public GQuery blur(Function... f) {return null;}
+  public GQuery change(Function... f) {return null;}
+  public GQuery children() {return null;}
+  public GQuery children(String... filters) {return null;}
+  public GQuery clearQueue() {return null;}  
+  public GQuery clone() {return null;}
+  public GQuery clearQueue(String queueName) {return null;}
+  public GQuery click(Function... f) {return null;}
+  public GQuery closest(String selector) {return null;}
+//  public JsNamedArray<NodeList<Element>> closest(String[] selectors) {return null;}
+//  public JsNamedArray<NodeList<Element>> closest(String[] selectors, Node context) {return null;}
+  public GQuery closest(String selector, Node context) {return null;}
+  public GQuery contains(String text) {return null;}
+  public GQuery contents() {return null;}
+//  public GQuery css(Properties properties) {return null;}
+//  public String css(String name) {return null;}
+//  public String css(String name, boolean force) {return null;}
+  public GQuery css(String prop, String val) {return null;}
+  public double cur(String prop) {return 0;}
+  public double cur(String prop, boolean force) {return 0;}
+  public Object data(String name) {return null;}
+//  public <T> T data(String name, Class<T> clz) {return null;}
+  public GQuery data(String name, Object value) {return null;}
+  public GQuery dblclick(Function... f) {return null;}
+  public GQuery delay(int milliseconds, Function... f) {return null;}
+  public GQuery delay(int milliseconds, String queueName, Function... f) {return null;}
+  public GQuery delegate(String selector, String eventType, Function... handlers) {return null;}
+  public GQuery delegate(String selector, String eventType, Object data, Function... handlers) {return null;}
+  public GQuery delegate(String selector, int eventbits, Function... handlers) {return null;}
+  public GQuery delegate(String selector, int eventbits, Object data, Function... handlers) {return null;}
+  public GQuery dequeue() {return null;}
+  public GQuery dequeue(String queueName) {return null;}
+  public GQuery detach() {return null;}
+  public GQuery detach(String filter) {return null;}
+  public GQuery die() {return null;}
+  public GQuery die(String eventName) {return null;}
+//  public GQuery die(int eventbits) {return null;}
+  public GQuery each(Function... f) {return null;}
+  public Element[] elements() {return null;}
+  public GQuery empty() {return null;}
+//  public GQuery end() {return null;}
+  public GQuery eq(int pos) {return null;}
+  public GQuery error(Function... f) {return null;}
+  public GQuery fadeIn(Function... f) {return null;}
+  public GQuery fadeIn(int millisecs, Function... f) {return null;}
+  public GQuery fadeOut(Function... f) {return null;}
+  public GQuery fadeOut(int millisecs, Function... f) {return null;}
+  public Effects fadeToggle(int millisecs, Function... f) {return null;}
+  public GQuery filter(Predicate filterFn) {return null;}
+//  public GQuery filter(String... filters) {return null;}
+  public GQuery find(String... filters) {return null;}
+  public GQuery first() {return null;}
+  public GQuery focus(Function... f) {return null;}
+  public Element get(int i) {return null;}
+  public Node getContext() {return null;}
+  public GQuery getPreviousObject() {return null;}
+  public String getSelector() {return null;}
+  public GQuery gt(int pos) {return null;}
+  public boolean hasClass(String... classes) {return false;}
+  public int height() {return 0;}
+  public GQuery height(int height) {return null;}
+  public GQuery height(String height) {return null;}
+  public GQuery hide() {return null;}
+  public GQuery hover(Function fover, Function fout) {return null;}
+  public String html() {return null;}
+  public GQuery html(String html) {return null;}
+  public String id() {return null;}
+  public GQuery id(String id) {return null;}
+  public int index(Element element) {return 0;}
+  public int innerHeight() {return 0;}
+  public int innerWidth() {return 0;}
+  public GQuery insertAfter(Element elem) {return null;}
+  public GQuery insertAfter(GQuery query) {return null;}
+  public GQuery insertAfter(String selector) {return null;}
+  public GQuery insertBefore(Element item) {return null;}
+  public GQuery insertBefore(GQuery query) {return null;}
+  public GQuery insertBefore(String selector) {return null;}
+  public boolean is(String... filters) {return false;}
+  public boolean isEmpty() {return false;}
+  public GQuery keydown(Function... f) {return null;}
+  public GQuery keydown(int key) {return null;}
+  public GQuery keypress(Function... f) {return null;}
+  public GQuery keypress(int key) {return null;}
+  public GQuery keyup(Function... f) {return null;}
+  public GQuery keyup(int key) {return null;}
+  public GQuery last() {return null;}
+  public int left() {return 0;}
+  public int length() {return 0;}
+  public GQuery live(String eventName, Function... funcs) {return null;}
+//  public GQuery live(int eventbits, Function... funcs) {return null;}
+//  public GQuery live(int eventbits, Object data, Function... funcs) {return null;}
+  public GQuery live(String eventName, Object data, Function... funcs) {return null;}
+//  public GQuery load(Function f) {return null;}
+  public GQuery lt(int pos) {return null;}
+//  public <W> List<W> map(Function f) {return null;}
+  public GQuery mousedown(Function... f) {return null;}
+  public GQuery mousemove(Function... f) {return null;}
+  public GQuery mouseout(Function... f) {return null;}
+  public GQuery mouseover(Function... f) {return null;}
+  public GQuery mouseup(Function... f) {return null;}
+  public GQuery next() {return null;}
+  public GQuery next(String... selectors) {return null;}
+  public GQuery nextAll() {return null;}
+  public GQuery nextUntil(String selector) {return null;}
+  public GQuery not(Element elem) {return null;}
+  public GQuery not(GQuery gq) {return null;}
+  public GQuery not(String... filters) {return null;}
+  public GQuery offsetParent() {return null;}
+  public GQuery one(int eventbits, Object data, Function f) {return null;}
+  public int outerHeight() {return 0;}
+  public int outerHeight(boolean includeMargin) {return 0;}
+  public int outerWidth() {return 0;}
+  public int outerWidth(boolean includeMargin) {return 0;}
+  public GQuery parent() {return null;}
+  public GQuery parent(String... filters) {return null;}
+  public GQuery parents() {return null;}
+  public GQuery parents(String... filters) {return null;}
+  public GQuery parentsUntil(String selector) {return null;}
+//  public Offset position() {return null;}
+  public GQuery prepend(GQuery query) {return null;}
+  public GQuery prepend(Node n) {return null;}
+  public GQuery prepend(String html) {return null;}
+  public GQuery prependTo(GQuery other) {return null;}
+  public GQuery prependTo(Node n) {return null;}
+  public GQuery prependTo(String html) {return null;}
+  public GQuery prev() {return null;}
+  public GQuery prev(String... selectors) {return null;}
+  public GQuery prevAll() {return null;}
+  public GQuery prevUntil(String selector) {return null;}
+  public boolean prop(String key) {return false;}
+  public GQuery prop(String key, boolean value) {return null;}
+  public GQuery prop(String key, Function closure) {return null;}
+  public int queue() {return 0;}
+  public int queue(String queueName) {return 0;}
+  public GQuery queue(Function... f) {return null;}
+  public GQuery queue(String queueName, Function... f) {return null;}
+  public GQuery remove() {return null;}
+  public GQuery remove(String filter) {return null;}
+  public GQuery removeAttr(String key) {return null;}
+  public GQuery removeClass(String... classes) {return null;}
+  public GQuery removeData(String name) {return null;}
+  public GQuery replaceAll(Element elem) {return null;}
+  public GQuery replaceAll(GQuery target) {return null;}
+  public GQuery replaceAll(String selector) {return null;}
+  public GQuery replaceWith(Element elem) {return null;}
+  public GQuery replaceWith(GQuery target) {return null;}
+  public GQuery replaceWith(String html) {return null;}
+  public GQuery resize(Function... f) {return null;}
+  public void restoreCssAttrs(String... cssProps) {}
+  public void resize(Function f) {}
+  public void saveCssAttrs(String... cssProps) {}
+  public GQuery scroll(Function... f) {return null;}
+  public GQuery scrollIntoView() {return null;}
+  public GQuery scrollIntoView(boolean ensure) {return null;}
+  public int scrollLeft() {return 0;}
+  public GQuery scrollLeft(int left) {return null;}
+  public GQuery scrollTo(int left, int top) {return null;}
+  public int scrollTop() {return 0;}
+  public GQuery scrollTop(int top) {return null;}
+  public GQuery select() {return null;}
+  public GQuery setArray(NodeList<Element> list) {return null;}
+  public void setPreviousObject(GQuery previousObject) {}
+  public GQuery setSelector(String selector) {return null;}
+  public GQuery show() {return null;}
+  public GQuery siblings() {return null;}
+  public GQuery siblings(String... selectors) {return null;}
+  public GQuery slice(int start, int end) {return null;}
+  public Effects slideDown(Function... f) {return null;}
+  public Effects slideDown(int millisecs, Function... f) {return null;}
+  public Effects slideToggle(int millisecs, Function... f) {return null;}
+  public Effects slideUp(Function... f) {return null;}
+  public Effects slideUp(int millisecs, Function... f) {return null;}
+  public GQuery stop() {return null;}
+  public GQuery stop(boolean clearQueue) {return null;}
+  public GQuery stop(boolean clearQueue, boolean jumpToEnd) {return null;}
+  public GQuery submit(Function... funcs) {return null;}
+  public String text() {return null;}
+  public GQuery text(String txt) {return null;}
+  public GQuery toggle() {return null;}
+  public GQuery toggle(Function... fn) {return null;}
+  public GQuery toggleClass(String... classes) {return null;}
+  public GQuery toggleClass(String clz, boolean addOrRemove) {return null;}
+  public int top() {return 0;}
+  public String toString(boolean pretty) {return null;}
+//  public GQuery trigger(int eventbits, int... keys) {return null;}
+//  public GQuery unbind(int eventbits) {return null;}
+  public GQuery undelegate() {return null;}
+  public GQuery undelegate(String selector) {return null;}
+  public GQuery undelegate(String selector, String eventName) {return null;}
+  public GQuery undelegate(String selector, int eventBit) {return null;}
+//  public JsNodeArray unique(NodeList<Element> result) {return null;}
+  public GQuery unwrap() {return null;}
+  public String val() {return null;}
+  public GQuery val(String... values) {return null;}
+  public String[] vals() {return null;}
+  public boolean isVisible() {return false;}
+  public int width() {return 0;}
+  public GQuery width(int width) {return null;}
+  public GQuery wrap(Element elem) {return null;}
+  public GQuery wrap(GQuery query) {return null;}
+  public GQuery wrap(String html) {return null;}
+  public GQuery wrapAll(Element elem) {return null;}
+  public GQuery wrapAll(GQuery query) {return null;}
+  public GQuery wrapAll(String html) {return null;}
+  public GQuery wrapInner(Element elem) {return null;}
+  public GQuery wrapInner(GQuery query) {return null;}
+  public GQuery wrapInner(String html) {return null;}
+}
diff --git a/jsquery/src/main/java/gwtquery/jsquery/client/utils/JsQAux.java b/jsquery/src/main/java/gwtquery/jsquery/client/utils/JsQAux.java
new file mode 100644 (file)
index 0000000..72cc100
--- /dev/null
@@ -0,0 +1,129 @@
+package gwtquery.jsquery.client.utils;
+
+import java.util.ArrayList;
+
+import com.google.gwt.core.client.JavaScriptObject;
+import com.google.gwt.dom.client.Element;
+import com.google.gwt.dom.client.Node;
+import com.google.gwt.query.client.Function;
+import com.google.gwt.query.client.GQuery;
+import com.google.gwt.query.client.js.JsCache;
+import com.google.gwt.query.client.js.JsNodeArray;
+import com.google.gwt.query.client.js.JsUtils;
+
+public abstract class JsQAux {
+
+  private native static String dumpObject(JavaScriptObject o) /*-{
+               var s = "";
+               for (k in o)
+                       s += " " + k;
+               return s;
+  }-*/;
+
+  private static native void runJsFunction(JavaScriptObject f) /*-{
+               f();
+  }-*/;
+
+  public static GQuery dollar(Object o) {
+    if (o instanceof String) {
+      return GQuery.$((String) o);
+    } else if (o instanceof JavaScriptObject) {
+      JavaScriptObject jso = (JavaScriptObject) o;
+      if (JsUtils.isFunction(jso)) {
+        runJsFunction(jso);
+      } else {
+        GQuery r = GQuery.$(jso);
+        if (JsUtils.isArray(jso)) {
+          JsCache c = jso.cast();
+          JsNodeArray elms = JsNodeArray.create();
+          for (int i = 0; i < c.length(); i++) {
+            Object obj = c.get(i);
+            if (obj instanceof Node) {
+              elms.addNode((Node) obj);
+            }
+          }
+          r = GQuery.$(elms);
+        }
+        return r;
+      }
+    }
+    return GQuery.$();
+  }
+
+  public static GQuery dollar(String s, Element ctx) {
+    return GQuery.$(s, ctx);
+  }
+
+  public static void ready(Function f) {
+    f.f();
+  }
+
+  public static int inArray(Object o, Object a) {
+    if (o instanceof JavaScriptObject) {
+      JavaScriptObject jso = (JavaScriptObject) o;
+      if (JsUtils.isElement(jso)) {
+        return dollar(a).index((Element) o);
+      } else if (JsUtils.isArray(jso)) {
+        return ((JsCache) a).indexOf(o);
+      }
+    }
+    return -1;
+  }
+
+  public static JavaScriptObject extend(Object... objs) {
+    int i = 0, l = objs.length;
+    boolean deep = false;
+    JavaScriptObject ctx = null;
+    Object target = objs[i];
+    if (target instanceof Boolean) {
+      deep = (Boolean) target;
+      if (l == 1)
+        return ctx;
+      target = objs[i++];
+    }
+    if (l - i == 1) {
+      i--;
+    } else {
+      ctx = (JavaScriptObject) target;
+    }
+
+    for (++i; i < l; i++) {
+      if (objs[i] != null) {
+        ctx = extendImpl(deep, ctx, objs[i]);
+      }
+    }
+    return ctx;
+  }
+
+  private static native JavaScriptObject getDefaultPrototype() /*-{
+               return $wnd.jsQuery && $wnd.jsQuery.fn ? $wnd.jsQuery.fn.prototype
+                               : null;
+  }-*/;
+
+  private static native JavaScriptObject extendImpl(boolean deep,
+      JavaScriptObject ctx, Object s) /*-{
+               var d = ctx ? ctx : $wnd.jsQuery.fn.prototype || {};
+               for (k in s) {
+                       d[k] = s[k];
+                       if (!ctx)
+                               $wnd.$[k] = s[k];
+               }
+               return d;
+  }-*/;
+  
+  public static Object[] each(Object[] objs, Function f) {
+    ArrayList<Object> ret = new ArrayList<Object>();
+    for (Object o : objs) {
+      f.setDataObject(o);
+      if (f.fe(null, o)) {
+        ret.add(o);
+      }
+    }
+    return ret.toArray(new Object[0]);
+  }
+
+  public static void log(Object l) {
+    System.out.println(l);
+  }
+
+}