| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 | <!DOCTYPE html><html><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>The source code</title>  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />  <script type="text/javascript" src="../resources/prettify/prettify.js"></script>  <style type="text/css">    .highlight { display: block; background-color: #ddd; }  </style>  <script type="text/javascript">    function highlight() {      document.getElementById(location.hash.replace(/#/, "")).className = "highlight";    }  </script></head><body onload="prettyPrint(); highlight();">  <pre class="prettyprint lang-js"><span id='Ext-ux-ProgressBarPager-method-constructor'><span id='Ext-ux-ProgressBarPager'>/**</span></span>* @class Ext.ux.ProgressBarPager* @extends Object* Plugin for displaying a progressbar inside of a paging toolbar instead of plain text* @constructor* Create a new ProgressBarPager* @param {Object} config Configuration options*/Ext.define('Ext.ux.ProgressBarPager', {    requires: ['Ext.ProgressBar'],<span id='Ext-ux-ProgressBarPager-cfg-width'>    /**</span>     * @cfg {Number} width     * <p>The default progress bar width.  Default is 225.</p>    */    width   : 225,<span id='Ext-ux-ProgressBarPager-cfg-defaultText'>    /**</span>     * @cfg {String} defaultText    * <p>The text to display while the store is loading.  Default is 'Loading...'</p>     */    defaultText    : 'Loading...',<span id='Ext-ux-ProgressBarPager-cfg-defaultAnimCfg'>    /**</span>     * @cfg {Object} defaultAnimCfg     * <p>A {@link Ext.fx.Anim Ext.fx.Anim} configuration object.</p>     */    defaultAnimCfg : {		duration: 1000,		easing: 'bounceOut'		},	        constructor : function(config) {        if (config) {            Ext.apply(this, config);        }    },    //public    init : function (parent) {        var displayItem;        if (parent.displayInfo) {            this.parent = parent;            displayItem = parent.child("#displayItem");            if (displayItem) {                parent.remove(displayItem, true);            }            this.progressBar = Ext.create('Ext.ProgressBar', {                text    : this.defaultText,                width   : this.width,                animate : this.defaultAnimCfg,                style: {                    cursor: 'pointer'                },                listeners: {                    el: {                        scope: this,                        click: this.handleProgressBarClick                    }                }            });            parent.displayItem = this.progressBar;            parent.add(parent.displayItem);            Ext.apply(parent, this.parentOverrides);        }    },    // private    // This method handles the click for the progress bar    handleProgressBarClick : function(e){        var parent = this.parent,            displayItem = parent.displayItem,            box = this.progressBar.getBox(),            xy = e.getXY(),            position = xy[0]- box.x,            pages = Math.ceil(parent.store.getTotalCount() / parent.pageSize),            newPage = Math.max(Math.ceil(position / (displayItem.width / pages)), 1);        parent.store.loadPage(newPage);    },    // private, overriddes    parentOverrides  : {        // private        // This method updates the information via the progress bar.        updateInfo : function(){            if(this.displayItem){                var count = this.store.getCount(),                    pageData = this.getPageData(),                    message = count === 0 ?                    this.emptyMsg :                    Ext.String.format(                        this.displayMsg,                        pageData.fromRecord, pageData.toRecord, this.store.getTotalCount()                    ),                    percentage = pageData.pageCount > 0 ? (pageData.currentPage / pageData.pageCount) : 0;                this.displayItem.updateProgress(percentage, message, this.animate || this.defaultAnimConfig);            }        }    }});</pre></body></html>
 |