(function (){ var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, EventBase = baidu.editor.EventBase, UIBase = baidu.editor.ui.UIBase = function (){}; UIBase.prototype = { className: '', uiName: '', initOptions: function (options){ var me = this; for (var k in options) { me[k] = options[k]; } this.id = this.id || 'edui' + uiUtils.uid(); }, initUIBase: function (){ this._globalKey = utils.unhtml( uiUtils.setGlobal(this.id, this) ); }, render: function (holder){ var html = this.renderHtml(); var el = uiUtils.createElementByHtml(html); var seatEl = this.getDom(); if (seatEl != null) { seatEl.parentNode.replaceChild(el, seatEl); uiUtils.copyAttributes(el, seatEl); } else { if (typeof holder == 'string') { holder = document.getElementById(holder); } holder = holder || uiUtils.getFixedLayer(); holder.appendChild(el); } this.postRender(); }, getDom: function (name){ if (!name) { return document.getElementById( this.id ); } else { return document.getElementById( this.id + '_' + name ); } }, postRender: function (){ this.fireEvent('postrender'); }, getHtmlTpl: function (){ return ''; }, formatHtml: function (tpl){ var prefix = 'edui-' + this.uiName; return (tpl .replace(/##/g, this.id) .replace(/%%-/g, this.uiName ? prefix + '-' : '') .replace(/%%/g, (this.uiName ? prefix : '') + ' ' + this.className) .replace(/\$\$/g, this._globalKey)); }, renderHtml: function (){ return this.formatHtml(this.getHtmlTpl()); }, dispose: function (){ var box = this.getDom(); if (box) baidu.editor.dom.domUtils.remove( box ); uiUtils.unsetGlobal(this.id); } }; utils.inherits(UIBase, EventBase); })();