1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- ///import core
- ///import uicore
- ///import ui/stateful.js
- (function() {
- var utils = baidu.editor.utils,
- UIBase = baidu.editor.ui.UIBase,
- Stateful = baidu.editor.ui.Stateful,
- Button = (baidu.editor.ui.Button = function(options) {
- if (options.name) {
- var btnName = options.name;
- var cssRules = options.cssRules;
- if (!options.className) {
- options.className = "edui-for-" + btnName;
- }
- options.cssRules =
- ".edui-" +
- (options.theme || "default") +
- " .edui-toolbar .edui-button.edui-for-" +
- btnName +
- " .edui-icon {" +
- cssRules +
- "}";
- }
- this.initOptions(options);
- this.initButton();
- });
- Button.prototype = {
- uiName: "button",
- label: "",
- title: "",
- showIcon: true,
- showText: true,
- cssRules: "",
- initButton: function() {
- this.initUIBase();
- this.Stateful_init();
- if (this.cssRules) {
- utils.cssRule("edui-customize-" + this.name + "-style", this.cssRules);
- }
- },
- getHtmlTpl: function() {
- return (
- '<div id="##" class="edui-box %%">' +
- '<div id="##_state" stateful>' +
- '<div class="%%-wrap"><div id="##_body" unselectable="on" ' +
- (this.title ? 'title="' + this.title + '"' : "") +
- ' class="%%-body" onmousedown="return $$._onMouseDown(event, this);" onclick="return $$._onClick(event, this);">' +
- (this.showIcon ? '<div class="edui-box edui-icon"></div>' : "") +
- (this.showText
- ? '<div class="edui-box edui-label">' + this.label + "</div>"
- : "") +
- "</div>" +
- "</div>" +
- "</div></div>"
- );
- },
- postRender: function() {
- this.Stateful_postRender();
- this.setDisabled(this.disabled);
- },
- _onMouseDown: function(e) {
- var target = e.target || e.srcElement,
- tagName = target && target.tagName && target.tagName.toLowerCase();
- if (tagName == "input" || tagName == "object" || tagName == "object") {
- return false;
- }
- },
- _onClick: function() {
- if (!this.isDisabled()) {
- this.fireEvent("click");
- }
- },
- setTitle: function(text) {
- var label = this.getDom("label");
- label.innerHTML = text;
- }
- };
- utils.inherits(Button, UIBase);
- utils.extend(Button.prototype, Stateful);
- })();
|