]> source.dussan.org Git - gwtquery.git/commitdiff
Fix visibility poperty when using stop(). Fix delay calling dequeue twice. Now named...
authorManolo Carrasco <manolo@apache.org>
Fri, 19 Aug 2011 14:42:33 +0000 (14:42 +0000)
committerManolo Carrasco <manolo@apache.org>
Fri, 19 Aug 2011 14:42:33 +0000 (14:42 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/client/GQuery.java
gwtquery-core/src/main/java/com/google/gwt/query/client/LazyGQuery.java
gwtquery-core/src/main/java/com/google/gwt/query/client/impl/SelectorEngineCssToXPath.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/QueuePlugin.java
gwtquery-core/src/main/java/com/google/gwt/query/client/plugins/effects/PropertiesAnimation.java
gwtquery-core/src/test/java/com/google/gwt/query/client/impl/SelectorEnginesTest.java
gwtquery-core/src/test/java/com/google/gwt/query/rebind/SelectorGeneratorsTest.java

index 6c8b3ee8ecdb3b41c4959f8f4b9fe0a63e006f2a..60941c6b9a248fa62482f1866676d7f31daedc60 100644 (file)
@@ -1427,7 +1427,7 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
    * <pre class="code">\r
    * $("#foo").queue("colorQueue", lazy().css(CSS.COLOR.with(RGBColor.RED)).dequeue("colorQueue").done())\r
    *          .delay(800, "colorQueue")\r
-   *          .queue("colorQueue", lazy().css(CSS.COLOR.with(RGBColor.BLACK)).done()); \r
+   *          .queue("colorQueue", lazy().css(CSS.COLOR.with(RGBColor.BLACK)).dequeue("colorQueue").done()); \r
    * </pre>\r
    * \r
    * When this statement is executed, the text color of the element changes to\r
@@ -1625,10 +1625,6 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
    * Execute the next function on the queue named as queueName for the matched elements. \r
    * This method is usefull to tell when a function you add in the Effects queue is\r
    * ended and so the next function in the queue can start.\r
-   * \r
-   * If you are queuing functions in a named queue (not the Effects one), \r
-   * you do not need to call dequeue(queueName) since it is preformed automatically. \r
-   * \r
    */\r
   public GQuery dequeue(String queueName) {\r
     return as(Queue).dequeue(queueName);\r
@@ -2993,18 +2989,20 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
    * $("#foo").queue("myQueue", new Function(){\r
    *          public void f(Element e){\r
    *             $(e).css(CSS.BACKGROUNG_COLOR.with(RGBColor.RED));\r
+   *             dequeue("myQueue");\r
    *          }\r
    *        })\r
    *        .delay(500, "myQueue")\r
-   *        .queue("myQueue", lazy().css(CSS.COLOR.with(RGBColor.YELLOW)).done());\r
+   *        .queue("myQueue", lazy().css(CSS.COLOR.with(RGBColor.YELLOW)).dequeue("myQueue").done());\r
    * </pre>\r
    * \r
    * When this statement is executed, the background color of the element is set\r
    * to red, then wait 500ms before to set the text color of the element to\r
    * yellow. right for 400ms.\r
    * \r
-   * NOTE: {@link #dequeue()} function is not needed at the end of your\r
-   * function unless you use the Effects ('fx') namespace.\r
+   * Please note that {@link #dequeue()} function is needed at the end of your\r
+   * function to start the next function in the queue. In lazy() methods you should\r
+   * call dequeue() just before the done() call.\r
    * {@see #dequeue()}\r
    */\r
   public GQuery queue(String queueName, Function... f) {\r
index 9b1a2739b9dd8bd7068ffbef6b8b6cd4f97206d7..db0a4ada2635a121249394df7e78b8301be1bec2 100644 (file)
@@ -694,7 +694,7 @@ public interface LazyGQuery<T> extends LazyBase<T>{
    * <pre class="code">
    * $("#foo").queue("colorQueue", lazy().css(CSS.COLOR.with(RGBColor.RED)).dequeue("colorQueue").done())
    *          .delay(800, "colorQueue")
-   *          .queue("colorQueue", lazy().css(CSS.COLOR.with(RGBColor.BLACK)).done()); 
+   *          .queue("colorQueue", lazy().css(CSS.COLOR.with(RGBColor.BLACK)).dequeue("colorQueue").done()); 
    * </pre>
    * 
    * When this statement is executed, the text color of the element changes to
@@ -868,10 +868,6 @@ public interface LazyGQuery<T> extends LazyBase<T>{
    * Execute the next function on the queue named as queueName for the matched elements. 
    * This method is usefull to tell when a function you add in the Effects queue is
    * ended and so the next function in the queue can start.
-   * 
-   * If you are queuing functions in a named queue (not the Effects one), 
-   * you do not need to call dequeue(queueName) since it is preformed automatically. 
-   * 
    */
   LazyGQuery<T> dequeue(String queueName);
 
@@ -1732,18 +1728,20 @@ public interface LazyGQuery<T> extends LazyBase<T>{
    * $("#foo").queue("myQueue", new Function(){
    *          public void f(Element e){
    *             $(e).css(CSS.BACKGROUNG_COLOR.with(RGBColor.RED));
+   *             dequeue("myQueue");
    *          }
    *        })
    *        .delay(500, "myQueue")
-   *        .queue("myQueue", lazy().css(CSS.COLOR.with(RGBColor.YELLOW)).done());
+   *        .queue("myQueue", lazy().css(CSS.COLOR.with(RGBColor.YELLOW)).dequeue("myQueue").done());
    * </pre>
    * 
    * When this statement is executed, the background color of the element is set
    * to red, then wait 500ms before to set the text color of the element to
    * yellow. right for 400ms.
    * 
-   * NOTE: {@link #dequeue()} function is not needed at the end of your
-   * function unless you use the Effects ('fx') namespace.
+   * Please note that {@link #dequeue()} function is needed at the end of your
+   * function to start the next function in the queue. In lazy() methods you should
+   * call dequeue() just before the done() call.
    * {@see #dequeue()}
    */
   LazyGQuery<T> queue(String queueName, Function... f);
index 5feec66fb7e88dcd334534c93b79d662dbad4dec..9b172917ea7d720f49e1d375d53380fcd61279e9 100644 (file)
@@ -95,7 +95,7 @@ public class SelectorEngineCssToXPath extends SelectorEngineImpl {
 \r
   public static Object[] regs = new Object[]{\r
     // scape some dots and spaces\r
-    "(['\\[])([^'\\]]+)([\\s\\.#])([^'\\]]+)(['\\]])", rc_scp,\r
+    "(['\\[])([^'\\]]*)([\\s\\.#])([^'\\]]*)(['\\]])", rc_scp,\r
     // add @ for attrib\r
     "\\[([^@\\]~\\$\\*\\^\\|\\!]+)(=[^\\]]+)?\\]", "[@$1$2]",\r
     // multiple queries\r
index 77ce4b1d661f6035cc809144467c3129c017b84b..92deee6f32e1cabdd35934e7a76de0c0af2131ab 100644 (file)
@@ -37,29 +37,30 @@ public class QueuePlugin<T extends QueuePlugin<?>> extends GQuery {
       });
 
   protected class DelayFunction extends Function {
-
     private class SimpleTimer extends Timer {
-      @Override
       public void run() {
-        dequeue();
         g.each(funcs);
+        for (Element e: g.elements()) {
+          dequeueIfNotDoneYet(e, name, DelayFunction.this);
+        }
       }
     }
 
     private int delay;
     Function[] funcs;
     GQuery g;
+    String name;
 
-    public DelayFunction(GQuery gquery, int delayInMilliseconds, Function... f) {
+    public DelayFunction(GQuery gquery, String name, int delayInMilliseconds, Function... f) {
       this.g = gquery;
       this.delay = delayInMilliseconds;
       this.funcs = f;
+      this.name = name;
     }
 
     @Override
     public void f() {
       new SimpleTimer().schedule(delay);
-
     }
   }
 
@@ -101,7 +102,7 @@ public class QueuePlugin<T extends QueuePlugin<?>> extends GQuery {
    */
   @SuppressWarnings("unchecked")
   public T delay(int milliseconds, String name, Function... funcs) {
-    queue(name, new DelayFunction(this, milliseconds));
+    queue(name, new DelayFunction(this, name, milliseconds, funcs));
     return (T) this;
   }
 
@@ -161,13 +162,7 @@ public class QueuePlugin<T extends QueuePlugin<?>> extends GQuery {
   public T queue(final String name, Function... funcs) {
     for (final Function f: funcs) {
       for (Element e: elements()) {
-        queue(e, name, new Function(){
-          @Override
-          public void f(Element e) {
-            f.f(e.<com.google.gwt.dom.client.Element>cast());
-            dequeueIfNotDoneYet(e, name, this);
-          }
-        });
+        queue(e, name, f);
       }
     }
     return (T)this;
index 72559a7008ac67cbd579d0e1176ec182bbdc5373..1c0ab2c6aa548b124da137d67c64a258cad7606a 100755 (executable)
@@ -51,7 +51,7 @@ public class PropertiesAnimation extends GQAnimation {
   }\r
 \r
   private static final String[] ATTRS_TO_SAVE = new String[]{\r
-      "overflow", "visibility"};\r
+      "overflow"};\r
 \r
   private static final JsRegexp REGEX_NUMBER_UNIT = new JsRegexp(\r
       "^([0-9+-.]+)(.*)?$");\r
@@ -215,6 +215,7 @@ public class PropertiesAnimation extends GQAnimation {
       onComplete();\r
     } else {\r
       g.dequeue();\r
+      g.restoreCssAttrs(ATTRS_TO_SAVE);\r
     }\r
   }\r
 \r
index 63be92255d7e9ac2c5034f7ea47c3c0e450536c4..51a63104b56c5cffdd01a26e40febe4b92d40981 100644 (file)
@@ -72,7 +72,6 @@ public class SelectorEnginesTest extends GWTTestCase {
     
     assertEquals(".//div[@class='comment' and (contains(string(.),'John'))]", 
         sel.css2Xpath("div[@class='comment']:contains('John')")); 
-    
   }
 
 }
index 05b3c5fb1b2bfe437798666bc2d956f2f3872a46..7ebf3fa360fe320bad85eb031e86045680d4f9cc 100644 (file)
@@ -90,11 +90,12 @@ public class SelectorGeneratorsTest extends GWTTestCase {
     assertEquals(".//*[@checked='checked']|.//*[not(@disabled)]|.//*[@disabled]", 
         sel.css2Xpath(":checked, :enabled, :disabled"));
     
-    assertEquals(".//table[contains(string(.),'String With | @ ~= Space Points.s and Hash#es')]", 
-        sel.css2Xpath("table:contains('String With | @ ~= Space Points.s and Hash#es')"));
+    assertEquals(".//table[contains(string(.),'#String With | @ ~= Space Points.s and Hash#es#')]", 
+        sel.css2Xpath("table:contains('#String With | @ ~= Space Points.s and Hash#es#')"));
     
     assertEquals(".//div[@class='comment' and (contains(string(.),'John'))]", 
         sel.css2Xpath("div[@class='comment']:contains('John')"));
+
   }
 
   public void testReplaceAll() {