|
|
|
/**
|
|
|
|
* 查看已选按钮
|
|
|
|
* Created by guy on 15/11/3.
|
|
|
|
* @class BI.MultiSelectCheckSelectedButton
|
|
|
|
* @extends BI.Single
|
|
|
|
*/
|
|
|
|
BI.MultiSelectCheckSelectedButton = BI.inherit(BI.Single, {
|
|
|
|
|
|
|
|
_defaultConfig: function () {
|
|
|
|
return BI.extend(BI.MultiSelectCheckSelectedButton.superclass._defaultConfig.apply(this, arguments), {
|
|
|
|
baseCls: "bi-multi-select-check-selected-button",
|
|
|
|
itemsCreator: BI.emptyFn
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
_init: function () {
|
|
|
|
BI.MultiSelectCheckSelectedButton.superclass._init.apply(this, arguments);
|
|
|
|
var self = this, o = this.options;
|
|
|
|
this.numberCounter = BI.createWidget({
|
|
|
|
type: "bi.text_button",
|
|
|
|
element: this,
|
|
|
|
hgap: 4,
|
|
|
|
text: "0",
|
|
|
|
textAlign: "center",
|
|
|
|
textHeight: 16,
|
|
|
|
cls: "bi-high-light-background count-tip"
|
|
|
|
});
|
|
|
|
this.numberCounter.on(BI.Controller.EVENT_CHANGE, function () {
|
|
|
|
self.fireEvent(BI.Controller.EVENT_CHANGE, arguments);
|
|
|
|
});
|
|
|
|
|
|
|
|
this.numberCounter.on(BI.TextButton.EVENT_CHANGE, function () {
|
|
|
|
self.fireEvent(BI.MultiSelectCheckSelectedButton.EVENT_CHANGE, arguments);
|
|
|
|
});
|
|
|
|
|
|
|
|
this.numberCounter.element.hover(function () {
|
|
|
|
self.numberCounter.setTag(self.numberCounter.getText());
|
|
|
|
self.numberCounter.setText(BI.i18nText("BI-Check_Selected"));
|
|
|
|
}, function () {
|
|
|
|
self.numberCounter.setText(self.numberCounter.getTag());
|
|
|
|
});
|
|
|
|
this.setVisible(false);
|
|
|
|
if(BI.isNotNull(o.value)){
|
|
|
|
this.setValue(o.value);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
_populate: function (ob) {
|
|
|
|
var self = this, o = this.options;
|
|
|
|
if (ob.type === BI.Selection.All) {
|
|
|
|
o.itemsCreator({
|
|
|
|
type: BI.MultiSelectCombo.REQ_GET_DATA_LENGTH
|
|
|
|
}, function (res) {
|
|
|
|
var length = res.count - ob.value.length;
|
|
|
|
BI.nextTick(function () {
|
|
|
|
self.numberCounter.setText(length);
|
|
|
|
self.setVisible(length > 0);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
BI.nextTick(function () {
|
|
|
|
self.numberCounter.setText(ob.value.length);
|
|
|
|
self.setVisible(ob.value.length > 0);
|
|
|
|
});
|
|
|
|
},
|
|
|
|
|
|
|
|
_assertValue: function (ob) {
|
|
|
|
ob || (ob = {});
|
|
|
|
ob.type || (ob.type = BI.Selection.Multi);
|
|
|
|
ob.value || (ob.value = []);
|
|
|
|
return ob;
|
|
|
|
},
|
|
|
|
|
|
|
|
setValue: function (ob) {
|
|
|
|
ob = this._assertValue(ob);
|
|
|
|
this.options.value = ob;
|
|
|
|
this._populate(ob);
|
|
|
|
},
|
|
|
|
|
|
|
|
populate: function () {
|
|
|
|
this._populate(this.options.value);
|
|
|
|
},
|
|
|
|
|
|
|
|
getValue: function () {
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
BI.MultiSelectCheckSelectedButton.EVENT_CHANGE = "EVENT_CHANGE";
|
|
|
|
BI.shortcut("bi.multi_select_check_selected_button", BI.MultiSelectCheckSelectedButton);
|