/** * * * 查看已选弹出层的展示面板 * @class BI.DisplaySelectedList * @extends BI.Widget */ BI.DisplaySelectedList = BI.inherit(BI.Pane, { constants: { height: 24, lgap: 10 }, _defaultConfig: function () { return BI.extend(BI.DisplaySelectedList.superclass._defaultConfig.apply(this, arguments), { baseCls: "bi-display-list", itemsCreator: BI.emptyFn, items: [] }); }, _init: function () { BI.DisplaySelectedList.superclass._init.apply(this, arguments); var self = this, opts = this.options; this.hasNext = false; var cacheItems = []; this.button_group = BI.createWidget({ type: "bi.list_pane", element: this, el: { type: "bi.loader", isDefaultInit: false, logic: { dynamic: true, scrolly: true }, items: this._createItems(opts.items), chooseType: BI.ButtonGroup.CHOOSE_TYPE_MULTI, layouts: [{ type: "bi.vertical", lgap: 10 }] }, itemsCreator: function (options, callback) { if (options.times === 1) { cacheItems = []; } if (cacheItems.length > 0) { var renderedItems = cacheItems.slice(0, 100); cacheItems = cacheItems.slice(100); self.hasNext = true; if (cacheItems.length === 0) { self.hasNext = false; } callback(self._createItems(renderedItems)); return; } opts.itemsCreator(options, function (ob) { self.hasNext = !!ob.hasNext; var firstItemsCount = 100 + ob.items.length % 100; if (ob.items.length > 100) { cacheItems = ob.items.slice(100 + ob.items.length % 100); self.hasNext = true; } callback(self._createItems(ob.items.slice(0, firstItemsCount))); }); }, hasNext: function () { return self.hasNext; } }); }, _createItems: function (items) { return BI.createItems(items, { type: "bi.icon_text_item", cls: "cursor-default check-font icon-size-12 display-list-item bi-tips", once: true, invalid: true, selected: true, height: this.constants.height, logic: { dynamic: true } }); }, empty: function () { this.button_group.empty(); }, populate: function (items) { if (arguments.length === 0) { this.button_group.populate(); } else { this.button_group.populate(this._createItems(items)); } } }); BI.shortcut("bi.display_selected_list", BI.DisplaySelectedList);