]> source.dussan.org Git - gwtquery.git/commitdiff
removed className manipulation which was copied from UIObject because it was moved...
authorManolo Carrasco <manolo@apache.org>
Sun, 2 May 2010 21:14:23 +0000 (21:14 +0000)
committerManolo Carrasco <manolo@apache.org>
Sun, 2 May 2010 21:14:23 +0000 (21:14 +0000)
gwtquery-core/src/main/java/com/google/gwt/query/client/GQuery.java
gwtquery-core/src/test/java/com/google/gwt/query/client/GwtQueryCoreTest.java

index 90b72b357c7282519bff4441da812c4b2c47a4c3..6bb1e721a0ad2c3b263cae66ffc580d45e4ca16e 100644 (file)
@@ -371,62 +371,6 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
     }\r
   }\r
 \r
-  /**\r
-   * Copied from UIObject.\r
-   */\r
-  protected static void setStyleName(Element elem, String style, boolean add) {\r
-\r
-    style = style.trim();\r
-\r
-    // Get the current style string.\r
-    String oldStyle = elem.getClassName();\r
-    int idx = oldStyle.indexOf(style);\r
-\r
-    // Calculate matching index.\r
-    while (idx != -1) {\r
-      if (idx == 0 || oldStyle.charAt(idx - 1) == ' ') {\r
-        int last = idx + style.length();\r
-        int lastPos = oldStyle.length();\r
-        if ((last == lastPos) || ((last < lastPos) && (oldStyle.charAt(last)\r
-            == ' '))) {\r
-          break;\r
-        }\r
-      }\r
-      idx = oldStyle.indexOf(style, idx + 1);\r
-    }\r
-\r
-    if (add) {\r
-      // Only add the style if it's not already present.\r
-      if (idx == -1) {\r
-        if (oldStyle.length() > 0) {\r
-          oldStyle += " ";\r
-        }\r
-        DOM.setElementProperty(elem.<com.google.gwt.user.client.Element>cast(),\r
-            "className", oldStyle + style);\r
-      }\r
-    } else {\r
-      // Don't try to remove the style if it's not there.\r
-      if (idx != -1) {\r
-        // Get the leading and trailing parts, without the removed name.\r
-        String begin = oldStyle.substring(0, idx).trim();\r
-        String end = oldStyle.substring(idx + style.length()).trim();\r
-\r
-        // Some contortions to make sure we don't leave extra spaces.\r
-        String newClassName;\r
-        if (begin.length() == 0) {\r
-          newClassName = end;\r
-        } else if (end.length() == 0) {\r
-          newClassName = begin;\r
-        } else {\r
-          newClassName = begin + " " + end;\r
-        }\r
-\r
-        DOM.setElementProperty(elem.<com.google.gwt.user.client.Element>cast(),\r
-            "className", newClassName);\r
-      }\r
-    }\r
-  }\r
-\r
   protected static void setStyleProperty(String prop, String val, Element e) {\r
     // put in lower-case only if all letters are upper-case, to avoid modify already camelized properties\r
     if (prop.matches("^[A-Z]+$")) {\r
@@ -531,7 +475,7 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
   public GQuery addClass(String... classes) {\r
     for (Element e : elements()) {\r
       for (String clz : classes) {\r
-        setStyleName(e, clz, true);\r
+        e.addClassName(clz);\r
       }\r
     }\r
     return this;\r
@@ -1800,7 +1744,7 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
   public GQuery removeClass(String... classes) {\r
     for (Element e : elements()) {\r
       for (String clz : classes) {\r
-        setStyleName(e, clz, false);\r
+        e.removeClassName(clz);\r
       }\r
     }\r
     return this;\r
@@ -2077,15 +2021,16 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
   }\r
 \r
   /**\r
-   * Adds or removes the specified classes to each matched element.\r
+   * Adds or removes the specified classes to each matched element\r
+   * depending on the class's presence\r
    */\r
   public GQuery toggleClass(String... classes) {\r
     for (Element e : elements()) {\r
       for (String clz : classes) {\r
         if (hasClass(e, clz)) {\r
-          setStyleName(e, clz, false);\r
+          e.removeClassName(clz);\r
         } else {\r
-          setStyleName(e, clz, true);\r
+          e.addClassName(clz);\r
         }\r
       }\r
     }\r
@@ -2093,11 +2038,17 @@ public class GQuery implements Lazy<GQuery, LazyGQuery> {
   }\r
 \r
   /**\r
-   * Adds or removes the specified classes to each matched element.\r
+   * Adds or removes the specified classes to each matched element\r
+   * depending on the value of the switch argument.\r
+   * \r
+   * if addOrRemove is true, the class is added and in the case of\r
+   * false it is removed.\r
    */\r
-  public GQuery toggleClass(String clz, boolean sw) {\r
-    for (Element e : elements()) {\r
-      setStyleName(e, clz, sw);\r
+  public GQuery toggleClass(String clz, boolean addOrRemove) {\r
+    if (addOrRemove) {\r
+      addClass(clz);\r
+    } else {\r
+      removeClass(clz);\r
     }\r
     return this;\r
   }\r
index 5dff29d7fd6f690b1e10f5b0353ca449770645e5..ccd68d3d73b6fc30984427b8fe791067bfce7d7f 100644 (file)
@@ -93,7 +93,19 @@ public class GwtQueryCoreTest extends GWTTestCase {
     assertTrue(gq.hasClass("b2"));
     assertFalse(gq.hasClass("c1"));
     assertFalse(gq.hasClass("c2"));
-
+    
+    // toggleClass()
+    gq.toggleClass("b2");
+    assertTrue(gq.hasClass("b1"));
+    assertFalse(gq.hasClass("b2"));
+    gq.toggleClass("b2");
+    assertTrue(gq.hasClass("b1"));
+    assertTrue(gq.hasClass("b2"));
+    gq.toggleClass("b2", true);
+    assertTrue(gq.hasClass("b2"));
+    gq.toggleClass("b2", false);
+    assertFalse(gq.hasClass("b2"));
+    
     // css()
     String content = "<p style='color:red;'>Test Paragraph.</p>";
     $(e).html(content);