1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- (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);
- //by xuheng 给每个node添加class
- var list = domUtils.getElementsByTagName(el, "*");
- var theme = "edui-" + (this.theme || this.editor.options.theme);
- var layer = document.getElementById('edui_fixedlayer');
- for (var i = 0, node; node = list[i++];) {
- domUtils.addClass(node, theme);
- }
- domUtils.addClass(el, theme);
- if(layer){
- layer.className="";
- domUtils.addClass(layer,theme);
- }
- 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();
- domUtils.addClass(holder, theme);
- 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);
- })();
|