SimpleToolbar.min.js 4.8 KB

1
  1. MWF.widget.SimpleToolbar=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default"},initialize:function(t,i,s){this.setOptions(i);this.bindObject=s;this.items=[];this.children=[];this.childrenButton=[];this.childrenMenu=[];this.path=MWF.defaultPath+"/widget/$SimpleToolbar/";this.cssPath=MWF.defaultPath+"/widget/$SimpleToolbar/"+this.options.style+"/css.wcss";this._loadCss();this.node=$(t);this.node.onselectstart=function(){return false};this.node.oncontextmenu=function(){return false}},load:function(){if(this.fireEvent("queryLoad")){this.node.set("styles",this.css.container);this._loadToolbarItemNode();this._loadToolbarItems();this.fireEvent("postLoad")}},_loadToolbarItemNode:function(){var t=this.node.getChildren();t.each(function(t,i){var s=t.get("MWFnodetype");if(s){if(typeOf(this[s])=="array"){this[s].push(t)}else{this[s]=[];this[s].push(t)}}}.bind(this))},_loadToolbarItems:function(){this._loadToolBarButton(this.MWFToolBarButton)},_loadToolBarButton:function(t){if(t){t.each(function(t,i){var s=new MWF.widget.SimpleToolbarButton(t,this,this.options);s.load();this.fireEvent("buttonLoad",[s]);if(s.buttonID){this.items[s.buttonID]=s}this.children.push(s);this.childrenButton.push(s)}.bind(this))}}});MWF.widget.SimpleToolbarButton=new Class({Implements:[Options,Events],options:{text:"",title:"",pic:"",pic_over:"",action:"",actionScript:"",disable:false},initialize:function(t,i,s){this.setOptions(s);this.node=$(t);this.toolbar=i;this.buttonID=this.node.MWFnodeid||this.node.id;if(!this.node){this.node=new Element("div").inject(this.toolbar.node)}else{var e=this.node.get("MWFButtonText");if(e)this.options.text=e;var o=this.node.get("title");if(o)this.options.title=o;var n=this.node.get("MWFButtonImage");if(n)this.options.pic=n;var h=this.node.get("MWFButtonImageOver");if(h)this.options.pic_over=h;var l=this.node.get("MWFButtonDisable");if(l)this.options.disable=true;var a=this.node.get("MWFButtonAction");if(a)this.options.action=a}this.modifiyStyle=true},load:function(){this._addButtonEvent();this.node.title=this.options.title;this.node.set("styles",this.toolbar.css.button);if(this.options.pic)this.picNode=this._createImageNode(this.options.pic);if(this.options.text)this.textNode=this._createTextNode(this.options.text);this.setDisable(this.options.disable)},enable:function(){if(this.options.disable){this.setDisable(false);this.options.disable=false}},disable:function(){if(!this.options.disable){this.setDisable(true);this.options.disable=true}},setDisable:function(t){if(t){this.node.set("styles",this.toolbar.css.buttonDisable);if(this.picNode){this.picNode.set("styles",this.toolbar.css.buttonImgDivDisable);var i=this.picNode.getElement("img");var s=i.get("src");var e=s.substr(s.lastIndexOf("."),s.length);s=s.substr(0,s.lastIndexOf("."));s=s+"_gray"+e;this.src_gray=s;i.set("src",s)}if(this.textNode)this.textNode.set("styles",this.toolbar.css.buttonTextDivDisable)}else{this.node.set("styles",this.toolbar.css.button);if(this.picNode){this.picNode.set("styles",this.toolbar.css.buttonImgDiv);var i=this.picNode.getElement("img");var s=i.get("src");s=s.replace("_gray","");this.src_gray=s;i.set("src",s)}if(this.textNode)this.textNode.set("styles",this.toolbar.css.buttonTextDiv)}},_createImageNode:function(t){if(t){var i=new Element("span",{styles:this.toolbar.css.buttonImgDiv}).inject(this.node);var s=this.img=new Element("img",{styles:this.toolbar.css.buttonImg,src:t}).inject(i);return i}else{return null}},_createTextNode:function(t){if(t){var i=new Element("span",{styles:this.toolbar.css.buttonTextDiv,text:t}).inject(this.node);return i}else{return null}},_addButtonEvent:function(){this.node.addEvent("mouseover",this._buttonMouseOver.bind(this));this.node.addEvent("mouseout",this._buttonMouseOut.bind(this));this.node.addEvent("mousedown",this._buttonMouseDown.bind(this));this.node.addEvent("mouseup",this._buttonMouseUp.bind(this));this.node.addEvent("click",this._buttonClick.bind(this))},_buttonMouseOver:function(){if(this.modifiyStyle)if(!this.options.disable){if(this.options.pic_over)this.img.set("src",this.options.pic_over);this.node.set("styles",this.toolbar.css.buttonOver)}},_buttonMouseOut:function(){if(this.modifiyStyle)if(!this.options.disable){this.img.set("src",this.options.pic);this.node.set("styles",this.toolbar.css.buttonOut)}},_buttonMouseDown:function(){if(this.modifiyStyle)if(!this.options.disable){this.node.set("styles",this.toolbar.css.buttonDown)}},_buttonMouseUp:function(){if(this.modifiyStyle)if(!this.options.disable){this.node.set("styles",this.toolbar.css.buttonUp)}},_buttonClick:function(t){if(!this.options.disable){if(this.options.action){var i=this.options.action.split(":");var s=i.shift();var e=this.toolbar.bindObject?this.toolbar.bindObject:window;if(e[s]){i.push(this);i.push(t);e[s].apply(e,i)}else{if(window[s]){window[s].apply(this,i)}}}}}});