|
|
|
/**
|
|
|
|
* 显示页码的分页控件
|
|
|
|
*
|
|
|
|
* Created by GUY on 2016/6/30.
|
|
|
|
* @class BI.DirectionPager
|
|
|
|
* @extends BI.Widget
|
|
|
|
*/
|
|
|
|
BI.DirectionPager = BI.inherit(BI.Widget, {
|
|
|
|
|
|
|
|
_defaultConfig: function () {
|
|
|
|
return BI.extend(BI.DirectionPager.superclass._defaultConfig.apply(this, arguments), {
|
|
|
|
baseCls: "bi-direction-pager",
|
|
|
|
width: 108,
|
|
|
|
height: 25,
|
|
|
|
horizontal: {
|
|
|
|
pages: false, //总页数
|
|
|
|
curr: 1, //初始化当前页, pages为数字时可用
|
|
|
|
|
|
|
|
hasPrev: BI.emptyFn,
|
|
|
|
hasNext: BI.emptyFn,
|
|
|
|
firstPage: 1,
|
|
|
|
lastPage: BI.emptyFn
|
|
|
|
},
|
|
|
|
vertical: {
|
|
|
|
pages: false, //总页数
|
|
|
|
curr: 1, //初始化当前页, pages为数字时可用
|
|
|
|
|
|
|
|
hasPrev: BI.emptyFn,
|
|
|
|
hasNext: BI.emptyFn,
|
|
|
|
firstPage: 1,
|
|
|
|
lastPage: BI.emptyFn
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
_init: function () {
|
|
|
|
BI.DirectionPager.superclass._init.apply(this, arguments);
|
|
|
|
var self = this, o = this.options;
|
|
|
|
var v = o.vertical, h = o.horizontal;
|
|
|
|
this._createVPager();
|
|
|
|
this._createHPager();
|
|
|
|
BI.createWidget({
|
|
|
|
type: "bi.absolute",
|
|
|
|
scrollable: false,
|
|
|
|
element: this,
|
|
|
|
items: [{
|
|
|
|
el: this.vpager,
|
|
|
|
top: 0,
|
|
|
|
left: -19
|
|
|
|
}, {
|
|
|
|
el: this.vlabel,
|
|
|
|
top: 0,
|
|
|
|
left: 16
|
|
|
|
}, {
|
|
|
|
el: this.hpager,
|
|
|
|
top: 0,
|
|
|
|
right: -19
|
|
|
|
}, {
|
|
|
|
el: this.hlabel,
|
|
|
|
top: 0,
|
|
|
|
right: 16
|
|
|
|
}]
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
_createVPager: function () {
|
|
|
|
var self = this, o = this.options;
|
|
|
|
var v = o.vertical;
|
|
|
|
this.vlabel = BI.createWidget({
|
|
|
|
type: "bi.label",
|
|
|
|
width: 20,
|
|
|
|
height: o.height,
|
|
|
|
value: v.curr,
|
|
|
|
title: v.curr
|
|
|
|
});
|
|
|
|
this.vpager = BI.createWidget({
|
|
|
|
type: "bi.pager",
|
|
|
|
width: 72,
|
|
|
|
layouts: [{
|
|
|
|
type: "bi.horizontal",
|
|
|
|
lgap: 20,
|
|
|
|
vgap: 1
|
|
|
|
}],
|
|
|
|
|
|
|
|
dynamicShow: false,
|
|
|
|
pages: v.pages,
|
|
|
|
curr: v.curr,
|
|
|
|
groups: 0,
|
|
|
|
|
|
|
|
first: false,
|
|
|
|
last: false,
|
|
|
|
prev: {
|
|
|
|
type: "bi.icon_button",
|
|
|
|
value: "prev",
|
|
|
|
title: BI.i18nText("BI-Up_Page"),
|
|
|
|
warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
|
|
|
|
height: o.height - 2,
|
|
|
|
iconWidth: o.height - 2,
|
|
|
|
iconHeight: o.height - 2,
|
|
|
|
cls: "direction-pager-prev column-pre-page-h-font"
|
|
|
|
},
|
|
|
|
next: {
|
|
|
|
type: "bi.icon_button",
|
|
|
|
value: "next",
|
|
|
|
title: BI.i18nText("BI-Down_Page"),
|
|
|
|
warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
|
|
|
|
height: o.height - 2,
|
|
|
|
iconWidth: o.height - 2,
|
|
|
|
iconHeight: o.height - 2,
|
|
|
|
cls: "direction-pager-next column-next-page-h-font"
|
|
|
|
},
|
|
|
|
|
|
|
|
hasPrev: v.hasPrev,
|
|
|
|
hasNext: v.hasNext,
|
|
|
|
firstPage: v.firstPage,
|
|
|
|
lastPage: v.lastPage
|
|
|
|
});
|
|
|
|
|
|
|
|
this.vpager.on(BI.Pager.EVENT_CHANGE, function () {
|
|
|
|
self.fireEvent(BI.DirectionPager.EVENT_CHANGE);
|
|
|
|
});
|
|
|
|
this.vpager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
|
|
|
|
self.vlabel.setValue(this.getCurrentPage());
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
_createHPager: function () {
|
|
|
|
var self = this, o = this.options;
|
|
|
|
var h = o.horizontal;
|
|
|
|
this.hlabel = BI.createWidget({
|
|
|
|
type: "bi.label",
|
|
|
|
width: 20,
|
|
|
|
height: o.height,
|
|
|
|
value: h.curr,
|
|
|
|
title: h.curr
|
|
|
|
});
|
|
|
|
this.hpager = BI.createWidget({
|
|
|
|
type: "bi.pager",
|
|
|
|
width: 72,
|
|
|
|
layouts: [{
|
|
|
|
type: "bi.horizontal",
|
|
|
|
rgap: 20,
|
|
|
|
vgap: 1
|
|
|
|
}],
|
|
|
|
|
|
|
|
dynamicShow: false,
|
|
|
|
pages: h.pages,
|
|
|
|
curr: h.curr,
|
|
|
|
groups: 0,
|
|
|
|
|
|
|
|
first: false,
|
|
|
|
last: false,
|
|
|
|
prev: {
|
|
|
|
type: "bi.icon_button",
|
|
|
|
value: "prev",
|
|
|
|
title: BI.i18nText("BI-Left_Page"),
|
|
|
|
warningTitle: BI.i18nText("BI-Current_Is_First_Page"),
|
|
|
|
height: o.height - 2,
|
|
|
|
iconWidth: o.height - 2,
|
|
|
|
iconHeight: o.height - 2,
|
|
|
|
cls: "direction-pager-prev row-pre-page-h-font"
|
|
|
|
},
|
|
|
|
next: {
|
|
|
|
type: "bi.icon_button",
|
|
|
|
value: "next",
|
|
|
|
title: BI.i18nText("BI-Right_Page"),
|
|
|
|
warningTitle: BI.i18nText("BI-Current_Is_Last_Page"),
|
|
|
|
height: o.height - 2,
|
|
|
|
iconWidth: o.height - 2,
|
|
|
|
iconHeight: o.height - 2,
|
|
|
|
cls: "direction-pager-next row-next-page-h-font"
|
|
|
|
},
|
|
|
|
|
|
|
|
hasPrev: h.hasPrev,
|
|
|
|
hasNext: h.hasNext,
|
|
|
|
firstPage: h.firstPage,
|
|
|
|
lastPage: h.lastPage
|
|
|
|
});
|
|
|
|
|
|
|
|
this.hpager.on(BI.Pager.EVENT_CHANGE, function () {
|
|
|
|
self.fireEvent(BI.DirectionPager.EVENT_CHANGE);
|
|
|
|
});
|
|
|
|
this.hpager.on(BI.Pager.EVENT_AFTER_POPULATE, function () {
|
|
|
|
self.hlabel.setValue(this.getCurrentPage());
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
getVPage: function () {
|
|
|
|
return this.vpager.getCurrentPage();
|
|
|
|
},
|
|
|
|
|
|
|
|
getHPage: function () {
|
|
|
|
return this.hpager.getCurrentPage();
|
|
|
|
},
|
|
|
|
|
|
|
|
setVPage: function (v) {
|
|
|
|
this.vpager.setValue(v);
|
|
|
|
this.vlabel.setValue(v);
|
|
|
|
this.vlabel.setTitle(v);
|
|
|
|
},
|
|
|
|
|
|
|
|
setHPage: function (v) {
|
|
|
|
this.hpager.setValue(v);
|
|
|
|
this.hlabel.setValue(v);
|
|
|
|
this.hlabel.setTitle(v);
|
|
|
|
},
|
|
|
|
|
|
|
|
hasVNext: function () {
|
|
|
|
return this.vpager.hasNext();
|
|
|
|
},
|
|
|
|
|
|
|
|
hasHNext: function () {
|
|
|
|
return this.hpager.hasNext();
|
|
|
|
},
|
|
|
|
|
|
|
|
hasVPrev: function () {
|
|
|
|
return this.vpager.hasPrev();
|
|
|
|
},
|
|
|
|
|
|
|
|
hasHPrev: function () {
|
|
|
|
return this.hpager.hasPrev();
|
|
|
|
},
|
|
|
|
|
|
|
|
setHPagerVisible: function (b) {
|
|
|
|
this.hpager.setVisible(b);
|
|
|
|
this.hlabel.setVisible(b);
|
|
|
|
},
|
|
|
|
|
|
|
|
setVPagerVisible: function (b) {
|
|
|
|
this.vpager.setVisible(b);
|
|
|
|
this.vlabel.setVisible(b);
|
|
|
|
},
|
|
|
|
|
|
|
|
populate: function () {
|
|
|
|
this.vpager.populate();
|
|
|
|
this.hpager.populate();
|
|
|
|
},
|
|
|
|
|
|
|
|
refresh: function () {
|
|
|
|
this.vpager.refresh();
|
|
|
|
this.hpager.refresh();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
BI.DirectionPager.EVENT_CHANGE = "EVENT_CHANGE";
|
|
|
|
$.shortcut("bi.direction_pager", BI.DirectionPager);
|