1 // ==========================================================================
  2 // Project:   The M-Project - Mobile HTML5 Application Framework
  3 // Copyright: (c) 2010 M-Way Solutions GmbH. All rights reserved.
  4 // Creator:   Sebastian
  5 // Date:      02.11.2010
  6 // License:   Dual licensed under the MIT or GPL Version 2 licenses.
  7 //            http://github.com/mwaylabs/The-M-Project/blob/master/MIT-LICENSE
  8 //            http://github.com/mwaylabs/The-M-Project/blob/master/GPL-LICENSE
  9 // ==========================================================================
 10 
 11 /**
 12  * @class
 13  *
 14  * The defines the prototype of a scrollable content view. It should be used as a wrapper
 15  * for any content that isn't part of a header or footer toolbar / tabbar.
 16  *
 17  * @extends M.View
 18  */
 19 M.ScrollView = M.View.extend(
 20 /** @scope M.ScrollView.prototype */ {
 21 
 22     /**
 23      * The type of this object.
 24      *
 25      * @type String
 26      */
 27     type: 'M.ScrollView',
 28 
 29     /**
 30      * Renders in three steps:
 31      * 1. Rendering Opening div tag with corresponding data-role
 32      * 2. Triggering render process of child views
 33      * 3. Rendering closing tag
 34      *
 35      * @private
 36      * @returns {String} The scroll view's html representation.
 37      */
 38     render: function() {
 39         this.html += '<div id="' + this.id + '" data-role="content">';
 40 
 41         this.renderChildViews();
 42 
 43         this.html += '</div>';
 44 
 45         return this.html;
 46     },
 47 
 48     /**
 49      * Triggers the rendering engine, jQuery mobile, to style the scroll view and call the
 50      * theme() of its child views.
 51      *
 52      * @private
 53      */
 54     theme: function() {
 55         $('#' + this.id).page();
 56         this.themeChildViews();
 57     }
 58 
 59 });