123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- o2.widget.SimpleToolbar = new Class({
- Extends: o2.widget.Common,
- Implements: [Options, Events],
- options: {
- "style": "default"
- },
- initialize: function(container, options, bindObject){
- this.setOptions(options);
- this.bindObject = bindObject;
- this.items = [];
- this.children = [];
- this.childrenButton = [];
- this.childrenMenu = [];
- this.path = o2.session.path+"/widget/$SimpleToolbar/";
- this.cssPath = o2.session.path+"/widget/$SimpleToolbar/"+this.options.style+"/css.wcss";
- this._loadCss();
- this.node = $(container);
- 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 subNodes = this.node.getChildren();
- subNodes.each(function(node, idx){
- var type = node.get("MWFnodetype");
- if (type){
- if (typeOf(this[type])=="array"){
- this[type].push(node);
- }else{
- this[type] = [];
- this[type].push(node);
- }
- }
- }.bind(this));
- },
- _loadToolbarItems: function(){
- //this._loadToolBarSeparator(this.MWFToolBarSeparator);
- this._loadToolBarButton(this.MWFToolBarButton);
- //this._loadToolBarMenu(this.MWFToolBarMenu);
- },
- _loadToolBarButton: function(nodes){
- if (nodes) {
- nodes.each(function(node, idx){
- var btn = new o2.widget.SimpleToolbarButton(node, this, this.options);
- btn.load();
- this.fireEvent("buttonLoad", [btn]);
- if (btn.buttonID){
- this.items[btn.buttonID] = btn;
- }
- this.children.push(btn);
- this.childrenButton.push(btn);
- }.bind(this));
- }
- }
- });
- o2.widget.SimpleToolbarButton = new Class({
- Implements: [Options, Events],
- options: {
- "text": "",
- "title": "",
- "pic": "",
- "pic_over": "",
- "action": "",
- "actionScript": "",
- "disable": false
- },
- initialize: function(node, toolbar, options){
- this.setOptions(options);
- this.node = $(node);
- this.toolbar = toolbar;
- this.buttonID = this.node.MWFnodeid || this.node.id;
- if (!this.node){
- this.node = new Element("div").inject(this.toolbar.node);
- }else{
- var buttonText = this.node.get("MWFButtonText");
- if (buttonText) this.options.text = buttonText;
-
- var title = this.node.get("title");
- if (title) this.options.title = title;
-
- var buttonImage = this.node.get("MWFButtonImage");
- if (buttonImage) this.options.pic = buttonImage;
- var buttonImageOver = this.node.get("MWFButtonImageOver");
- if (buttonImageOver) this.options.pic_over = buttonImageOver;
- var buttonDisable = this.node.get("MWFButtonDisable");
- if (buttonDisable) this.options.disable = true;
-
- var buttonAction = this.node.get("MWFButtonAction");
- if (buttonAction) this.options.action = buttonAction;
- //var buttonActionScript = this.node.get("MWFButtonActionScript");
- //if (buttonActionScript) this.options.actionScript = buttonActionScript;
- }
- 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(flag){
- if (flag){
- this.node.set("styles", this.toolbar.css.buttonDisable);
- if (this.picNode){
- this.picNode.set("styles", this.toolbar.css.buttonImgDivDisable);
- var img = this.picNode.getElement("img");
- var src = img.get("src");
- var ext = src.substr(src.lastIndexOf("."), src.length);
- src = src.substr(0, src.lastIndexOf("."));
- src = src+"_gray"+ext;
- this.src_gray = src;
- img.set("src", src);
- }
- 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 img = this.picNode.getElement("img");
- var src = img.get("src");
- src = src.replace("_gray", "");
- this.src_gray = src;
- img.set("src", src);
- }
- if (this.textNode) this.textNode.set("styles", this.toolbar.css.buttonTextDiv);
- }
- },
- _createImageNode: function(src){
- if (src){
- var div = new Element("span", {"styles": this.toolbar.css.buttonImgDiv}).inject(this.node);
- var img = this.img = new Element("img", {
- "styles": this.toolbar.css.buttonImg,
- "src": src
- }).inject(div);
- return div;
- }else{
- return null;
- }
- },
- _createTextNode: function(text){
- if (text){
- var div = new Element("span", {
- "styles": this.toolbar.css.buttonTextDiv,
- "text": text
- }).inject(this.node);
- return div;
- }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(e){
- if (!this.options.disable){
- if (this.options.action){
- var tmparr = this.options.action.split(":");
- var action = tmparr.shift();
- var bindObj = (this.toolbar.bindObject) ? this.toolbar.bindObject : window;
- if (bindObj[action]){
- tmparr.push(this);
- tmparr.push(e);
- bindObj[action].apply(bindObj,tmparr);
- }else{
- if (window[action]){
- window[action].apply(this,tmparr);
- }
- }
- }
- }
- }
- });
|