12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- (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);
- })();
|