Skip to content

Commit 1bb8352

Browse files
author
Gabriel Schulhof
committed
Listview: Update classes option to initial style option values
1 parent 460957a commit 1bb8352

File tree

1 file changed

+40
-19
lines changed

1 file changed

+40
-19
lines changed

js/widgets/listview.js

Lines changed: 40 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,24 @@
55
//>>css.structure: ../css/structure/jquery.mobile.listview.css
66
//>>css.theme: ../css/themes/default/jquery.mobile.theme.css
77

8-
define( [ "jquery", "../widget", "./addFirstLastClasses" ], function( jQuery ) {
8+
define( [
9+
"jquery",
10+
"../widget",
11+
"./optionsToClasses",
12+
"./addFirstLastClasses" ], function( jQuery ) {
913
//>>excludeEnd("jqmBuildExclude");
1014
(function( $, undefined ) {
1115

12-
var getAttr = $.mobile.getAttribute;
16+
var getAttr = $.mobile.getAttribute,
17+
styleOptions = {
18+
corners: true,
19+
shadow: true,
20+
inset: false
21+
};
1322

1423
$.widget( "mobile.listview", $.extend( {
1524

16-
options: {
25+
options: $.extend({
1726
classes: {
1827
"ui-listview": null,
1928
"ui-listview-item": null
@@ -22,27 +31,39 @@ $.widget( "mobile.listview", $.extend( {
2231
dividerTheme: null,
2332
icon: "carat-r",
2433
splitIcon: "carat-r",
25-
splitTheme: null,
26-
corners: true,
27-
shadow: true,
28-
inset: false
29-
},
34+
splitTheme: null
35+
}, styleOptions ),
3036

3137
_create: function() {
32-
var t = this,
33-
listviewClasses = "";
34-
35-
listviewClasses += t.options.inset ? " ui-listview-inset" : "";
3638

37-
if ( !!t.options.inset ) {
38-
listviewClasses += t.options.corners ? " ui-corner-all" : "";
39-
listviewClasses += t.options.shadow ? " ui-shadow" : "";
40-
}
39+
// DEPRECATED as of 1.5.0. Will be removed in 1.6.0
40+
// Update classes option to reflect style option values
41+
this._updateClassesOption( styleOptions, this.options );
4142

4243
// create listview markup
43-
t.element.addClass( t._classes( "ui-listview" ) + listviewClasses );
44+
this.element.addClass( this._classes( "ui-listview" ) );
4445

45-
t.refresh( true );
46+
this.refresh( true );
47+
},
48+
49+
// DEPRECATED as of 1.5.0. Will be removed in 1.6.0
50+
// Update classes option to reflect style option values
51+
_optionsToClasses: function( oldOptions, newOptions ) {
52+
var isInset = oldOptions.inset || newOptions.inset,
53+
newClasses = {},
54+
oldClasses = {};
55+
56+
if ( this._booleanOptionToClass( newOptions.corners, "ui-corner-all",
57+
oldClasses, newClasses, newOptions.corners && isInset ) ||
58+
this._booleanOptionToClass( newOptions.shadow, "ui-shadow",
59+
oldClasses, newClasses, newOptions.shadow && isInset ) ||
60+
this._booleanOptionToClass( newOptions.inset, "ui-listview-inset",
61+
oldClasses, newClasses ) ) {
62+
63+
this.options.classes[ "ui-listview" ] =
64+
this._calculateClassKeyValue( this.options.classes[ "ui-listview" ],
65+
oldClasses, newClasses );
66+
}
4667
},
4768

4869
_getChildrenByTagName: function( ele, lcName, ucName ) {
@@ -178,7 +199,7 @@ $.widget( "mobile.listview", $.extend( {
178199

179200
this._addFirstLastClasses( li, this._getVisibles( li, create ), create );
180201
}
181-
}, $.mobile.behaviors.addFirstLastClasses ) );
202+
}, $.mobile.behaviors.addFirstLastClasses, $.mobile.behaviors._optionsToClasses ) );
182203

183204
})( jQuery );
184205
//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);

0 commit comments

Comments
 (0)