BI.Plugin = BI.Plugin || {}; !(function () { var _WidgetsPlugin = {}; var _ObjectPlugin = {}; var _ConfigPlugin = {}; var _GlobalWidgetConfigFn, _GlobalObjectConfigFn; BI.extend(BI.Plugin, { getWidget: function (type, options) { if (_GlobalWidgetConfigFn) { _GlobalWidgetConfigFn(type, options); } if (_ConfigPlugin[type]) { for (var i = _ConfigPlugin[type].length - 1; i >= 0; i--) { _ConfigPlugin[type][i](options); } } if (_WidgetsPlugin[type]) { var res; for (var i = _WidgetsPlugin[type].length - 1; i >= 0; i--) { if (res = _WidgetsPlugin[type][i](options)) { return res; } } } return options; }, config: function (widgetConfigFn, objectConfigFn) { _GlobalWidgetConfigFn = widgetConfigFn; _GlobalObjectConfigFn = objectConfigFn; }, configWidget: function (type, fn) { if (!_ConfigPlugin[type]) { _ConfigPlugin[type] = []; } _ConfigPlugin[type].push(fn); }, registerWidget: function (type, fn) { if (!_WidgetsPlugin[type]) { _WidgetsPlugin[type] = []; } if (_WidgetsPlugin[type].length > 0) { console.log("组件已经注册过了!"); } _WidgetsPlugin[type].push(fn); }, relieveWidget: function (type) { delete _WidgetsPlugin[type]; }, getObject: function (type, object) { if (_GlobalObjectConfigFn) { _GlobalObjectConfigFn(type, object); } if (_ObjectPlugin[type]) { var res; for (var i = 0, len = _ObjectPlugin[type].length; i < len; i++) { res = _ObjectPlugin[type][i](object); } } return res || object; }, registerObject: function (type, fn) { if (!_ObjectPlugin[type]) { _ObjectPlugin[type] = []; } if (_ObjectPlugin[type].length > 0) { console.log("对象已经注册过了!"); } _ObjectPlugin[type].push(fn); }, relieveObject: function (type) { delete _ObjectPlugin[type]; } }); })();