modify wrong changelog date
[platform/framework/web/web-ui-fw.git] / libs / patch / 0031-JQM-performance-tuning-change-self-init-method-for-j.patch
1 From 18454b17fb19e4fa24b151ad377e43252ecf552f Mon Sep 17 00:00:00 2001
2 From: Minkyeong Kim <minkyeong.kim@samsung.com>
3 Date: Fri, 1 Feb 2013 15:04:58 +0900
4 Subject: [PATCH] [JQM] performance tuning : change self-init method for jQM
5  performance
6
7 ---
8  .../jquery-mobile-1.2.0/js/jquery.mobile.core.js   |   38 ++++++++++++++++++++
9  .../jquery-mobile-1.2.0/js/widgets/collapsible.js  |    6 ++--
10  .../js/widgets/collapsibleSet.js                   |    6 ++--
11  libs/js/jquery-mobile-1.2.0/js/widgets/listview.js |    6 ++--
12  libs/js/jquery-mobile-1.2.0/js/widgets/navbar.js   |    6 ++--
13  5 files changed, 46 insertions(+), 16 deletions(-)
14
15 diff --git a/libs/js/jquery-mobile-1.2.0/js/jquery.mobile.core.js b/libs/js/jquery-mobile-1.2.0/js/jquery.mobile.core.js
16 index f8c3a2d..d8a4b42 100644
17 --- a/libs/js/jquery-mobile-1.2.0/js/jquery.mobile.core.js
18 +++ b/libs/js/jquery-mobile-1.2.0/js/jquery.mobile.core.js
19 @@ -345,6 +345,44 @@ define( [ "jquery", "text!../version.txt" ], function( $, __version__ ) {
20         $.find.matchesSelector = function( node, expr ) {
21                 return $.find( expr, null, null, [ node ] ).length > 0;
22         };
23 +
24 +       $.extend({
25 +               creatorDict: {},
26 +
27 +               delegateSelfInitWithSingleSelector: function( target, useKeepNative ) {
28 +                       if ( typeof target !== 'function' ) {
29 +                               return false;
30 +                       }
31 +                       var selector = target.prototype.options.initSelector;
32 +                       var selectorRE = /:jqmData\(role='[A-z\-]+'\)$/;
33 +                       if ( selectorRE.test(selector) ) {
34 +                               var firstIdx = selector.indexOf( "'" ) + 1;
35 +                               var lastIdx = selector.lastIndexOf( "'" );
36 +                               var key = selector.substring( firstIdx, lastIdx );
37 +                               if ( !$.creatorDict.hasOwnProperty( key ) ) {
38 +                                       $.creatorDict[key] = {};
39 +                                       $.creatorDict[key].target = target;
40 +                                       if ( useKeepNative === true ) {
41 +                                               $.creatorDict[key].useKeepNative = useKeepNative;
42 +                                       }
43 +                                       return true;
44 +                               }
45 +                       }
46 +                       return false;
47 +               }
48 +       });
49 +
50 +       //auto self-init widgets
51 +       $( document ).bind( "pagecreate create", function( e ) {
52 +               var selector = "*[data-" + $.mobile.ns + "role]";
53 +               $( selector, e.target ).each( function () {
54 +                       dataRoleValue = this.getAttribute( "data-role" );
55 +                       matchedObj = $.creatorDict[dataRoleValue];
56 +                       if ( matchedObj ) {
57 +                               matchedObj.target.prototype.enhance( this, matchedObj.useKeepNative );
58 +                       }
59 +               });
60 +       });
61  })( jQuery, this );
62  //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
63  });
64 diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/collapsible.js b/libs/js/jquery-mobile-1.2.0/js/widgets/collapsible.js
65 index ad1ca3b..26dbb61 100644
66 --- a/libs/js/jquery-mobile-1.2.0/js/widgets/collapsible.js
67 +++ b/libs/js/jquery-mobile-1.2.0/js/widgets/collapsible.js
68 @@ -166,10 +166,8 @@ $.widget( "mobile.collapsible", $.mobile.widget, {
69         }
70  });
71  
72 -//auto self-init widgets
73 -$.mobile.$document.bind( "pagecreate create", function( e ) {
74 -       $.mobile.collapsible.prototype.enhanceWithin( e.target );
75 -});
76 +//delegate auto self-init widgets
77 +$.delegateSelfInitWithSingleSelector( $.mobile.collapsible );
78  
79  })( jQuery );
80  //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
81 diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/collapsibleSet.js b/libs/js/jquery-mobile-1.2.0/js/widgets/collapsibleSet.js
82 index ebc762d..43975e8 100644
83 --- a/libs/js/jquery-mobile-1.2.0/js/widgets/collapsibleSet.js
84 +++ b/libs/js/jquery-mobile-1.2.0/js/widgets/collapsibleSet.js
85 @@ -107,10 +107,8 @@ $.widget( "mobile.collapsibleset", $.mobile.widget, {
86         }
87  });
88  
89 -//auto self-init widgets
90 -$.mobile.$document.bind( "pagecreate create", function( e ) {
91 -       $.mobile.collapsibleset.prototype.enhanceWithin( e.target );
92 -});
93 +//delegate auto self-init widgets
94 +$.delegateSelfInitWithSingleSelector( $.mobile.collapsibleset );
95  
96  })( jQuery );
97  //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
98 diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/listview.js b/libs/js/jquery-mobile-1.2.0/js/widgets/listview.js
99 index e0d68f7..58a2d04 100644
100 --- a/libs/js/jquery-mobile-1.2.0/js/widgets/listview.js
101 +++ b/libs/js/jquery-mobile-1.2.0/js/widgets/listview.js
102 @@ -520,10 +520,8 @@ $.widget( "mobile.listview", $.mobile.widget, {
103         }
104  });
105  
106 -//auto self-init widgets
107 -$.mobile.$document.bind( "pagecreate create", function( e ) {
108 -       $.mobile.listview.prototype.enhanceWithin( e.target );
109 -});
110 +//delegate auto self-init widgets
111 +$.delegateSelfInitWithSingleSelector( $.mobile.listview );
112  
113  })( jQuery );
114  //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
115 diff --git a/libs/js/jquery-mobile-1.2.0/js/widgets/navbar.js b/libs/js/jquery-mobile-1.2.0/js/widgets/navbar.js
116 index 29c5057..0b52a06 100644
117 --- a/libs/js/jquery-mobile-1.2.0/js/widgets/navbar.js
118 +++ b/libs/js/jquery-mobile-1.2.0/js/widgets/navbar.js
119 @@ -51,10 +51,8 @@ $.widget( "mobile.navbar", $.mobile.widget, {
120         }
121  });
122  
123 -//auto self-init widgets
124 -$.mobile.$document.bind( "pagecreate create", function( e ) {
125 -       $.mobile.navbar.prototype.enhanceWithin( e.target );
126 -});
127 +//delegate auto self-init widgets
128 +$.delegateSelfInitWithSingleSelector( $.mobile.navbar );
129  
130  })( jQuery );
131  //>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
132 -- 
133 1.7.9.5
134
135