X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/examples/ux/SlidingPager.js diff --git a/examples/ux/SlidingPager.js b/examples/ux/SlidingPager.js index 2c06846b..2eddccc9 100644 --- a/examples/ux/SlidingPager.js +++ b/examples/ux/SlidingPager.js @@ -1,38 +1,54 @@ -/*! - * Ext JS Library 3.0.0 - * Copyright(c) 2006-2009 Ext JS, LLC - * licensing@extjs.com - * http://www.extjs.com/license - */ -Ext.ux.SlidingPager = Ext.extend(Object, { - init : function(pbar){ - Ext.each(pbar.items.getRange(2,6), function(c){ - c.hide(); - }); - var slider = new Ext.Slider({ - width: 114, - minValue: 1, - maxValue: 1, - plugins: new Ext.ux.SliderTip({ - getText : function(s){ - return String.format('Page {0} of {1}', s.value, s.maxValue); - } - }), - listeners: { - changecomplete: function(s, v){ - pbar.changePage(v); - } - } - }); - pbar.insert(5, slider); - pbar.on({ - change: function(pb, data){ - slider.maxValue = data.pages; - slider.setValue(data.activePage); - }, - beforedestroy: function(){ - slider.destroy(); - } - }); - } -}); \ No newline at end of file +/** +* @class Ext.ux.SlidingPager +* @extends Object +* Plugin for PagingToolbar which replaces the textfield input with a slider +* @constructor +* Create a new ItemSelector +* @param {Object} config Configuration options +*/ +Ext.define('Ext.ux.SlidingPager', { + extend: 'Object', + requires: [ + 'Ext.slider.Single', + 'Ext.slider.Tip' + ], + + constructor : function(config) { + if (config) { + Ext.apply(this, config); + } + }, + + init : function(pbar){ + var idx = pbar.items.indexOf(pbar.child("#inputItem")), + slider; + + Ext.each(pbar.items.getRange(idx - 2, idx + 2), function(c){ + c.hide(); + }); + + slider = Ext.create('Ext.slider.Single', { + width: 114, + minValue: 1, + maxValue: 1, + hideLabel: true, + tipText: function(thumb) { + return Ext.String.format('Page {0} of {1}', thumb.value, thumb.slider.maxValue); + }, + listeners: { + changecomplete: function(s, v){ + pbar.store.loadPage(v); + } + } + }); + + pbar.insert(idx + 1, slider); + + pbar.on({ + change: function(pb, data){ + slider.setMaxValue(data.pageCount); + slider.setValue(data.currentPage); + } + }); + } +});