BI.TextValueComboPopup = BI.inherit(BI.Pane, { _defaultConfig: function () { return BI.extend(BI.TextValueComboPopup.superclass._defaultConfig.apply(this, arguments), { baseCls: "bi-text-icon-popup", chooseType: BI.ButtonGroup.CHOOSE_TYPE_SINGLE }); }, render () { var o = this.options, self = this; if (o.chooseType !== BI.ButtonGroup.CHOOSE_TYPE_MULTI) { return { type: "bi.vertical", vgap: 5, items: [{ type: "bi.button_group", ref: (_ref) => { this.popup = _ref; }, items: this._formatItems(o.items), chooseType: o.chooseType, layouts: [{ type: "bi.vertical" }], value: o.value, listeners: [{ eventName: BI.Controller.EVENT_CHANGE, action: function (type, val, obj) { self.fireEvent(BI.Controller.EVENT_CHANGE, arguments); if (type === BI.Events.CLICK) { self.fireEvent(BI.TextValueComboPopup.EVENT_CHANGE, val, obj); } } }] }] }; } return { type: "bi.vertical", verticalAlign: BI.VerticalAlign.Stretch, rowSize: ["fill", ""], items: [{ type: "bi.select_list", logic: { dynamic: true, innerVgap: 5, rowSize: ["", "fill"], verticalAlign: BI.VerticalAlign.Stretch }, ref: (_ref) => { this.popup = _ref; }, el: { el: { chooseType: o.chooseType } }, items: this._formatItems(o.items), value: { type: BI.ButtonGroup.CHOOSE_TYPE_MULTI, value: o.value }, listeners: [{ eventName: BI.SelectList.EVENT_CHANGE, action: function (val) { self.fireEvent(BI.TextValueComboPopup.EVENT_CHANGE, val); } }] }, { type: "bi.center", cls: "list-view-toolbar bi-high-light bi-split-top", height: 24, items: BI.createItems([{ type: "bi.text_button", text: BI.i18nText("BI-Basic_Clears"), handler: function () { self.fireEvent(BI.TextValueComboPopup.EVENT_CLEAR); } }, { type: "bi.text_button", text: BI.i18nText("BI-Basic_OK"), handler: function () { self.fireEvent(BI.TextValueComboPopup.EVENT_CONFIRM); } }], { once: false, shadow: true, isShadowShowingOnSelected: true }) }] }; }, mounted: function () { this.check(); }, _formatItems: function (items) { var o = this.options; return BI.map(items, function (i, item) { return BI.extend({ type: o.chooseType !== BI.ButtonGroup.CHOOSE_TYPE_MULTI ? "bi.single_select_item" : "bi.multi_select_item", iconWrapperWidth: 36, textAlign: o.textAlign, title: item.title || item.text }, item); }); }, populate: function (items) { BI.TextValueComboPopup.superclass.populate.apply(this, arguments); this.popup.populate(this._formatItems(items)); }, getValue: function () { if (this.options.chooseType !== BI.ButtonGroup.CHOOSE_TYPE_MULTI) { return this.popup.getValue(); } var val = this.popup.getValue(); if (val.type === BI.ButtonGroup.CHOOSE_TYPE_MULTI) { return val.value; } else { return val.assist; } }, setValue: function (v) { if (this.options.chooseType !== BI.ButtonGroup.CHOOSE_TYPE_MULTI) { return this.popup.setValue(v); } this.popup.setValue({ type: BI.ButtonGroup.CHOOSE_TYPE_MULTI, value: v }); } }); BI.TextValueComboPopup.EVENT_CHANGE = "EVENT_CHANGE"; BI.TextValueComboPopup.EVENT_CLEAR = "EVENT_CLEAR"; BI.TextValueComboPopup.EVENT_CONFIRM = "EVENT_CONFIRM"; BI.shortcut("bi.text_value_combo_popup", BI.TextValueComboPopup);