Updated Branches: refs/heads/wicket-6.x fccd0ffb4 -> 7c25bf2b3
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/7c25bf2b Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7c25bf2b Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7c25bf2b Branch: refs/heads/wicket-6.x Commit: 7c25bf2b389d0eed810789294aabdab76b38969b Parents: fccd0ff 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:33:03 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/7c25bf2b/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 d6f9b8e..6144ceb 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 @@ -1542,6 +1542,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/7c25bf2b/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 5811d2e..8906249 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/7c25bf2b/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);
