| 1 |
- var Popmenu=MWF.xApplication.MinderEditor.PopMenu=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default"},initialize:function(t,e,i,s){this.container=t;this.app=s;this.lp=MWF.xApplication.MinderEditor.LP;this.actions=this.app.restActions;this.editor=e;this.minder=i;this.receiver=e.receiver;var n=this.fsm=e.fsm;this.path="/x_component_MinderEditor/$PopMenu/";this.cssPath=this.path+this.options.style+"/css.wcss";this._loadCss();this.nodeMenu=new MWF.xApplication.MinderEditor.NodePopMenu(this.container,null,this.app,null,{nodeStyles:this.css.tooltipNode,onPostLoad:function(){this.nodeMenu.isActive=true}.bind(this),onHide:function(){this.nodeMenu.isActive=false}.bind(this)},{});this.nodeMenu.popmenu=this;this.nodeMenu.minder=this.minder;n.when("normal -> popmenu",function(t,e,i){var s=this.minder.getSelectedNode();var n;if(s){var o=s.getRenderBox();n={x:o.cx,y:o.cy};this.active("main",n)}}.bind(this));n.when("popmenu -> popmenu",function(t,e,i){var s=this.minder.getSelectedNode();var n;if(s){var o=s.getRenderBox();n={x:o.cx,y:o.cy};this.active("main",n)}}.bind(this));n.when("popmenu -> normal",function(t,e,i,s){if(i=="popmenu-idle"){if(this.nodeMenu.isActive){this.nodeMenu.hide()}}}.bind(this));n.when("modal -> normal",function(t,e,i,s){if(i=="import-text-finish"){this.receiver.element.focus()}}.bind(this))},dispatch:function(t){if(this.nodeMenu.isActive){var e=this.nodeMenu.dispatchKey(t);if(e){return true;t.preventDefault()}else{this.minder.dispatchKeyEvent(t)}}return false},active:function(t,e){if(t=="main"){this.nodeMenu.targetCoordinates={top:parseInt(e.y+this.editor.Content_Offset_Top),left:e.x,width:1,height:1,right:e.x+1,bottom:parseInt(e.y)+this.editor.Content_Offset_Top+1};this.nodeMenu.load();this.nodeMenu.checkStatus()}else{this.nodeMenu.hide()}},state:function(){return this.nodeMenu.state},load:function(t){},destroy:function(){this.node.destroy();delete this}});Popmenu.STATE_IDLE="idle";MWF.xApplication.MinderEditor.NodePopMenu=new Class({Extends:MTooltips,options:{axis:"x",position:{x:"auto",y:"bottom"},priorityOfAuto:{x:["right","left"],y:["bottom","middle","top"]},event:"mouseenter",hasArrow:false,isAutoHide:false},load:function(){this.fireEvent("queryLoad",[this]);if(this.isEnable()){if(this.node){this.show()}else{this.create()}}this.stat="main";this.fireEvent("postLoad",[this])},hide:function(){if(this.node){this.node.setStyle("display","none");this.status="hidden";if(this.maskNode){this.maskNode.setStyle("display","none")}if(this.commands.activeTooltip){this.commands.activeTooltip.hide()}this.fireEvent("hide",[this])}},_customNode:function(t,e){this.itemNodeList=[];this.itemNodeObject={};this.availableCommands=["appendChild","appendParent","appendSibling","arrangeUp","arrangeDown","edit","remove","hyperLink","image","priority","progress"];this.commands=new MWF.xApplication.MinderEditor.Commands(this.app,{type:"popmenu",onPostExecCommand:function(t,e){this.state="idle";this.hide()}.bind(this)});this.commands.selectOptions={tooltipsOptions:{axis:"x",position:{x:"auto",y:"auto"},priorityOfAuto:{x:["right","left"],y:["bottom"]},event:"mouseenter",hiddenDelay:200,displayDelay:0,onQueryLoad:function(t){if(t.selector.command&&this.commands.commands){t.disable=this.commands.commands[t.selector.command].disable()}}.bind(this),onPostLoad:function(t){this.commands.activeTooltip=t}.bind(this),onHide:function(t){if(this.commands.activeTooltip==t)this.commands.activeTooltip=null}.bind(this),event:"mouseenter"}};e.addEvent("contextmenu",function(t){t.preventDefault()});this.createItemList(e);this.state="idle"},createItemList:function(t){var e=this.popmenu;this.css=e.css;this.listContentNode=new Element("div.listContentNode",{styles:this.css.listContentNode}).inject(t);this.listNode=new Element("div.listNode",{styles:this.css.listNode}).inject(this.listContentNode);var i=this.commands.commands;this.availableCommands.each(function(t){if(i[t]){this.createItem(i[t],t)}}.bind(this))},createItem:function(e,t){var i=this;var s=new Element("div.listItemNode",{text:e.locale||null}).inject(this.listNode);var n=new Element("div.listItemKeyNode",{styles:this.css.listItemKeyNode,text:typeOf(e.key)=="array"?e.key.join(","):e.key||""}).inject(s);s.keyNode=n;this.setNormalStye(s,n,e);if(e.disable()){this.setDisableStye(s,n,e)}var o=e.title||"";s.set("title",o);s.addEvents({mouseover:function(){if(!e.disable()){this.setActiveStye(s,n,e)}else{this.setDisableStye(s,n,e)}}.bind(this),mouseout:function(){if(!e.disable()){this.setNormalStye(s,n,e)}else{this.setDisableStye(s,n,e)}}.bind(this)});if(e.action){s.addEvent("click",function(t){if(!e.disable()){e.action();i.checkStatus();i.state="idle";i.hide();i.fireEvent("postExecCommand",[i.commands,e]);t.stopPropagation()}}.bind(t))}if(e.init){e.init(s,t)}this.itemNodeList.push(s);this.itemNodeObject[t]=s},setDisableStye:function(t,e,i){t.setStyles(this.css.listItemNode_disable);e.setStyles(this.css.listItemKeyNode_disable);if(i.icon){t.setStyle("background-image","url(/x_component_MinderEditor/$Main/"+this.popmenu.options.style+"/icon/"+i.icon+"_disable.png)")}},setActiveStye:function(t,e,i){t.setStyles(this.css.listItemNode_over);e.setStyles(this.css.listItemKeyNode_over);if(i.icon){t.setStyle("background-image","url(/x_component_MinderEditor/$Main/"+this.popmenu.options.style+"/icon/"+i.icon+"_menu.png)")}},setNormalStye:function(t,e,i){t.setStyles(this.css.listItemNode);e.setStyles(this.css.listItemKeyNode);if(i.icon){t.setStyle("background-image","url(/x_component_MinderEditor/$Main/"+this.popmenu.options.style+"/icon/"+i.icon+"_normal.png)")}},checkStatus:function(){for(var t in this.itemNodeObject){var e=this.itemNodeObject[t];if(this.commands.commands[t]){var i=this.commands.commands[t];if(i.disable()){this.setDisableStye(e,e.keyNode,i)}else{this.setNormalStye(e,e.keyNode,i)}}}},dispatchKey:function(t){var e=this.commands.getKey(t);var i=this.commands.keyCommands[e];if(i&&!i.disable()&&this.itemNodeObject[i.name]){if(i.action){i.action();this.checkStatus();this.state="idle";this.commands.fireEvent("postExecCommand",[this.commands,i]);return true}else if(i.keyAction){if(this.commands.activeTooltip)this.commands.activeTooltip.hide();i.keyAction();this.state="expand";return true}else{this.state="main";return true}}var s=this.commands.defaultKeyCommands[e];if(s&&!s.disable()&&this.itemNodeObject[s.name]){this.state="idle";return false}this.state="main";return true}});
|