123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /**
- * @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 <b>{0}</b> of <b>{1}</b>', 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);
- }
- });
- }
- });
|