Updated Branches:
  refs/heads/master 27a89379c -> 484415796

WICKET-5411 auto label auto update during ajax

Expose Wicket.DOM.toggleClass API that delegates to jQuery.toggleClass


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/48441579
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/48441579
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/48441579

Branch: refs/heads/master
Commit: 484415796aab76fc4f635b375cbf2b0cd604457f
Parents: 27a8937
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Tue Nov 12 10:32:02 2013 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Tue Nov 12 10:32:02 2013 +0200

----------------------------------------------------------------------
 .../wicket/ajax/res/js/wicket-ajax-jquery.js    | 15 +++++++++
 .../markup/html/form/AutoLabelResolver.java     |  6 ++--
 wicket-core/src/test/js/dom.js                  | 32 ++++++++++++++++++++
 3 files changed, 50 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/48441579/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js 
b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index 8ba7b04..d187488 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ 
b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -1537,6 +1537,21 @@
                                }
                        },
 
+                       /**
+                        * Add or remove one or more classes from each element 
in the
+                        * set of matched elements, depending on either the 
class's presence
+                        * or the value of the switch argument.
+                        *
+                        * @param {String} elementId The markup id of the 
element that will be manipulated.
+                        * @param {String} cssClass One or more class names 
(separated by spaces)
+                        *        to be toggled for each element in the matched 
set.
+                        * @param {Boolean} Switch A Boolean (not just 
truthy/falsy) value to
+                        *        determine whether the class should be added 
or removed.
+                        */
+                       toggleClass: function(elementId, cssClass, Switch) {
+                               jQuery('#'+elementId).toggleClass(cssClass, 
Switch);
+                       },
+
                        /** call-counting implementation of Wicket.DOM.show() */
                        showIncrementally: function (e) {
                                e = Wicket.$(e);

http://git-wip-us.apache.org/repos/asf/wicket/blob/48441579/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
index cc0f1cc..e7ea89e 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
@@ -219,21 +219,21 @@ public class AutoLabelResolver implements 
IComponentResolver
 
                        if (isValid() != valid)
                        {
-                               
target.appendJavaScript(String.format("$('#%s').toggleClass('%s', %s);",
+                               
target.appendJavaScript(String.format("Wicket.DOM.toggleClass('%s', '%s', %s);",
                                        getLabelIdFor(component), 
component.getString(CSS_ERROR_KEY, null, CSS_ERROR_DEFAULT),
                                        !valid));
                        }
 
                        if (isRequired() != required)
                        {
-                               
target.appendJavaScript(String.format("$('#%s').toggleClass('%s', %s);",
+                               
target.appendJavaScript(String.format("Wicket.DOM.toggleClass('#%s', '%s', 
%s);",
                                        getLabelIdFor(component), 
component.getString(CSS_REQUIRED_KEY, null, CSS_REQUIRED_DEFAULT),
                                        required));
                        }
 
                        if (isEnabled() != enabled)
                        {
-                               
target.appendJavaScript(String.format("$('#%s').toggleClass('%s', %s);",
+                               
target.appendJavaScript(String.format("Wicket.DOM.toggleClass('#%s', '%s', 
%s);",
                                        getLabelIdFor(component), 
component.getString(CSS_DISABLED_KEY, null, CSS_DISABLED_DEFAULT),
                                        !enabled));
                        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/48441579/wicket-core/src/test/js/dom.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/js/dom.js b/wicket-core/src/test/js/dom.js
index 92818de..4b68250 100644
--- a/wicket-core/src/test/js/dom.js
+++ b/wicket-core/src/test/js/dom.js
@@ -111,6 +111,38 @@ jQuery(document).ready(function() {
                equal( el.style.display, '', "Wicket.DOM.show should set 
.style.display to ''." );
        });
 
+       test("toggleClass() - single CSS class", function() {
+               var cssClass = 'testCssClass';
+               var element = jQuery('#' + existingId);
+               equal(false, element.hasClass(cssClass), "The element doesn't 
have the CSS class");
+               Wicket.DOM.toggleClass(existingId, cssClass);
+               equal(true, element.hasClass(cssClass), "The element does have 
the CSS class");
+               Wicket.DOM.toggleClass(existingId, cssClass);
+               equal(false, element.hasClass(cssClass), "The element doesn't 
have the CSS class");
+       });
+
+       test("toggleClass() - multiple CSS classes", function() {
+               var cssClass1 = 'testCssClass1';
+               var cssClass2 = 'testCssClass2';
+               var cssClass = cssClass1 + ' ' + cssClass2;
+               var element = jQuery('#' + existingId);
+               equal(false, element.hasClass(cssClass1), "The element doesn't 
have the CSS class");
+               Wicket.DOM.toggleClass(existingId, cssClass);
+               equal(true, element.hasClass(cssClass1), "The element does have 
the CSS class");
+               Wicket.DOM.toggleClass(existingId, cssClass);
+               equal(false, element.hasClass(cssClass1), "The element doesn't 
have the CSS class");
+       });
+
+       test("toggleClass() - switch argument", function() {
+               var cssClass = 'testCssClass';
+               var element = jQuery('#' + existingId);
+               equal(false, element.hasClass(cssClass), "The element doesn't 
have the CSS class");
+               Wicket.DOM.toggleClass(existingId, cssClass, true);
+               equal(true, element.hasClass(cssClass), "The element does have 
the CSS class");
+               Wicket.DOM.toggleClass(existingId, cssClass, false);
+               equal(false, element.hasClass(cssClass), "The element doesn't 
have the CSS class");
+       });
+
        test("(show|hide)Incrementally() an element", function() {
                var el = Wicket.$(existingId);
                Wicket.DOM.hideIncrementally(el);

Reply via email to