From 8b23483c0b03369dbfc9720e2aff8de690a3b854 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Scott=20Gonz=C3=A1lez?= Date: Tue, 11 Jan 2011 20:53:31 -0500 Subject: [PATCH] Accordion: First pass at deprecating the activate method. Renamed _clickHandler to _eventHandler and removed extraneous parameter. Updated all tests to use the option methods instead of the activate method. --- tests/unit/accordion/accordion_core.js | 4 ++-- tests/unit/accordion/accordion_events.js | 4 ++-- tests/unit/accordion/accordion_methods.js | 4 ++-- tests/unit/accordion/accordion_options.js | 4 ++-- ui/jquery.ui.accordion.js | 23 +++++++++++------------ 5 files changed, 19 insertions(+), 20 deletions(-) diff --git a/tests/unit/accordion/accordion_core.js b/tests/unit/accordion/accordion_core.js index 640427e2e..40a711abf 100644 --- a/tests/unit/accordion/accordion_core.js +++ b/tests/unit/accordion/accordion_core.js @@ -22,7 +22,7 @@ test("ui-accordion-heading class added to headers anchor", function() { test("accessibility", function () { expect(9); - var ac = $('#list1').accordion().accordion("activate", 1); + var ac = $('#list1').accordion().accordion("option", "active", 1); var headers = $(".ui-accordion-header"); equals( headers.eq(1).attr("tabindex"), "0", "active header should have tabindex=0"); @@ -32,7 +32,7 @@ test("accessibility", function () { equals( headers.next().attr("role"), "tabpanel", "tabpanel roles"); equals( headers.eq(1).attr("aria-expanded"), "true", "active tab has aria-expanded"); equals( headers.eq(0).attr("aria-expanded"), "false", "inactive tab has aria-expanded"); - ac.accordion("activate", 0); + ac.accordion("option", "active", 0); equals( headers.eq(0).attr("aria-expanded"), "true", "newly active tab has aria-expanded"); equals( headers.eq(1).attr("aria-expanded"), "false", "newly inactive tab has aria-expanded"); }); diff --git a/tests/unit/accordion/accordion_events.js b/tests/unit/accordion/accordion_events.js index e9e14996c..5793e46d0 100644 --- a/tests/unit/accordion/accordion_events.js +++ b/tests/unit/accordion/accordion_events.js @@ -17,14 +17,14 @@ test("accordionchange event, open closed and close again", function() { equals( ui.newHeader.size(), 1 ); equals( ui.newContent.size(), 1 ); }) - .accordion("activate", 0) + .accordion("option", "active", 0) .one("accordionchange", function(event, ui) { equals( ui.oldHeader.size(), 1 ); equals( ui.oldContent.size(), 1 ); equals( ui.newHeader.size(), 0 ); equals( ui.newContent.size(), 0 ); }) - .accordion("activate", 0); + .accordion("option", "active", 0); }); })(jQuery); diff --git a/tests/unit/accordion/accordion_methods.js b/tests/unit/accordion/accordion_methods.js index ed5cb37b6..e46dba30a 100644 --- a/tests/unit/accordion/accordion_methods.js +++ b/tests/unit/accordion/accordion_methods.js @@ -50,10 +50,10 @@ test("disable", function() { equals(actual, expected, 'disable is chainable'); state(expected, 1, 0, 0) - expected.accordion("activate", 1); + expected.accordion("option", "active", 1); state(expected, 1, 0, 0) expected.accordion("enable"); - expected.accordion("activate", 1); + expected.accordion("option", "active", 1); state(expected, 0, 1, 0) }); diff --git a/tests/unit/accordion/accordion_options.js b/tests/unit/accordion/accordion_options.js index 331ceb924..abfb82d78 100644 --- a/tests/unit/accordion/accordion_options.js +++ b/tests/unit/accordion/accordion_options.js @@ -61,7 +61,7 @@ test("{ active: Number }", function() { $('.ui-accordion-header:eq(2)', '#list1').click(); equals( $("#list1").accordion('option', 'active'), 2); - $("#list1").accordion('activate', 0); + $("#list1").accordion('option', 'active', 0); equals( $("#list1").accordion('option', 'active'), 0); }); @@ -96,7 +96,7 @@ test("{ heightStyle: 'content' }", function() { }); test("{ collapsible: false }, default", function() { var ac = $("#list1").accordion(); - ac.accordion("activate", false); + ac.accordion("option", "active", false); state(ac, 1, 0, 0); }); diff --git a/ui/jquery.ui.accordion.js b/ui/jquery.ui.accordion.js index f7d0e27b2..e58c5d621 100644 --- a/ui/jquery.ui.accordion.js +++ b/ui/jquery.ui.accordion.js @@ -120,7 +120,7 @@ $.widget( "ui.accordion", { if ( options.event ) { self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) { - self._clickHandler.call( self, event, this ); + self._eventHandler( event ); event.preventDefault(); }); } @@ -176,7 +176,7 @@ $.widget( "ui.accordion", { $.Widget.prototype._setOption.apply( this, arguments ); if ( key == "active" ) { - this.activate( value ); + this._activate( value ); } if ( key == "icons" ) { this._destroyIcons(); @@ -213,7 +213,7 @@ $.widget( "ui.accordion", { break; case keyCode.SPACE: case keyCode.ENTER: - this._clickHandler( { target: event.target }, event.target ); + this._eventHandler( event ); event.preventDefault(); } @@ -272,14 +272,11 @@ $.widget( "ui.accordion", { return this; }, - activate: function( index ) { - // TODO this gets called on init, changing the option without an explicit call for that + _activate: function( index ) { + // TODO: handle invalid values this.options.active = index; - // call clickHandler with custom event var active = this._findActive( index )[ 0 ]; - this._clickHandler( { target: active }, active ); - - return this; + this._eventHandler( { target: active, currentTarget: active } ); }, _findActive: function( selector ) { @@ -292,8 +289,7 @@ $.widget( "ui.accordion", { : this.headers.filter( ":eq(0)" ); }, - // TODO isn't event.target enough? why the separate target argument? - _clickHandler: function( event, target ) { + _eventHandler: function( event ) { var options = this.options; if ( options.disabled ) { return; @@ -325,7 +321,7 @@ $.widget( "ui.accordion", { } // get the click target - var clicked = $( event.currentTarget || target ), + var clicked = $( event.currentTarget ), clickedIsActive = clicked[0] === this.active[0]; // TODO the option is changed, is that correct? @@ -683,4 +679,7 @@ $.extend( $.ui.accordion, { }; }( jQuery, jQuery.ui.accordion.prototype ) ); +// activate method +jQuery.ui.accordion.prototype.activate = jQuery.ui.accordion.prototype._activate; + })( jQuery );