MWF.xApplication.MinderEditor.Commands=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{type:"common",style:"default"},initialize:function(e,t){this.setOptions(t);this.app=e;this.lp=MWF.xApplication.MinderEditor.LP;this.editor=e;this.minder=e.minder;if(!e.debug){MWF.xDesktop.requireApp("MinderEditor","Tools",null,false);MWF.xDesktop.requireApp("MinderEditor","RuntimeInCommon",null,false);MWF.xDesktop.requireApp("MinderEditor","WidgetInCommon",null,false);this.editor.debug=new MWF.xApplication.MinderEditor.Debug(true)}if(!e.fsm){this.editor.fsm=new MWF.xApplication.MinderEditor.FSM("normal")}if(!e.key){this.editor.key=new MWF.xApplication.MinderEditor.Key}if(!e.receiver){this.editor.receiver=new MWF.xApplication.MinderEditor.Receiver(this.editor)}this.fsm=this.editor.fsm;this.receiver=this.editor.receiver;this.history=this.editor.history;this.path="/x_component_MinderEditor/$Commands/";this.cssPath=this.path+this.options.style+"/css.wcss";this.commands={undo:{icon:"undo",locale:"撤销",modle:["edit"],key:"Ctrl + Z",disable:function(){return this.history.hasUndo()==false}.bind(this),action:function(){this.history.hasUndo()==false||this.history.undo()}.bind(this)},redo:{icon:"redo",locale:"重做",modle:["edit"],key:"Ctrl + Y",disable:function(){return this.history.hasRedo()==false}.bind(this),action:function(){this.history.hasRedo()==false||this.history.redo()}.bind(this)},appendChild:{icon:"insert_sub",modle:["edit"],locale:"插入下级主题",key:["Tab","Insert"],isDefaultKey:true,disable:function(){return this.minder.queryCommandState("AppendChildNode")===-1}.bind(this),action:function(){this.minder.queryCommandState("AppendChildNode")===-1||this.minder.execCommand("AppendChildNode")}.bind(this)},appendParent:{icon:"insert_par",modle:["edit"],locale:"插入上级主题",key:"Shit + Tab",disable:function(){return this.minder.queryCommandState("AppendParentNode")===-1}.bind(this),action:function(){this.minder.queryCommandState("AppendParentNode")===-1||this.minder.execCommand("AppendParentNode")}.bind(this)},appendSibling:{icon:"insert_sibling",modle:["edit"],locale:"插入同级主题",key:"Enter",isDefaultKey:true,disable:function(){return this.minder.queryCommandState("AppendSiblingNode")===-1}.bind(this),action:function(){this.minder.queryCommandState("AppendSiblingNode")===-1||this.minder.execCommand("AppendSiblingNode")}.bind(this)},arrangeUp:{icon:"up",modle:["edit"],locale:"上移",key:"Alt + Up",isDefaultKey:true,disable:function(){return this.minder.queryCommandState("ArrangeUp")===-1}.bind(this),action:function(){this.minder.queryCommandState("ArrangeUp")===-1||this.minder.execCommand("ArrangeUp")}.bind(this)},arrangeDown:{icon:"down",modle:["edit"],locale:"下移",key:"Alt + Down",isDefaultKey:true,disable:function(){return this.minder.queryCommandState("ArrangeDown")===-1}.bind(this),action:function(){this.minder.queryCommandState("ArrangeDown")===-1||this.minder.execCommand("ArrangeDown")}.bind(this)},edit:{icon:"edit",modle:["edit"],locale:"编辑",key:"F2",disable:function(){return this.minder.queryCommandState("text")===-1}.bind(this),action:function(){this.minder.queryCommandState("text")===-1||this.editNode()}.bind(this)},remove:{icon:"delete",modle:["edit"],locale:"删除",key:"Delete",isDefaultKey:true,disable:function(){return this.minder.queryCommandState("RemoveNode")===-1}.bind(this),action:function(){this.minder.queryCommandState("RemoveNode")===-1||this.minder.execCommand("RemoveNode")}.bind(this)},hyperLink:{icon:"link",modle:["edit"],locale:"链接",key:"Alt + L",disable:function(){return this.minder.queryCommandState("HyperLink")===-1}.bind(this),action:function(){this.minder.queryCommandState("HyperLink")===-1||this.openHyperLinkForm("hyperLink")}.bind(this)},image:{icon:"image",modle:["edit"],locale:"图片",key:"Alt + M",disable:function(){return this.minder.queryCommandState("Image")===-1}.bind(this),action:function(){this.minder.queryCommandState("Image")===-1||this.openImageForm("image")}.bind(this)},note:{title:"备注",modle:["edit"],disable:function(){return this.minder.queryCommandState("note")===-1}.bind(this),init:function(e,t){this.createNoteEditor(e,"note")}.bind(this),setDisable:function(){this.setNoteDisable()}.bind(this),setNormal:function(){this.setNoteNormal()}.bind(this)},priority:{icon:"priority",modle:["edit"],locale:"优先级",key:"Alt + G",disable:function(){return this.minder.queryCommandState("priority")===-1}.bind(this),keyAction:function(){this.prioritySelector.showTooltip()}.bind(this),init:function(e,t){this.initPriority(e,t)}.bind(this)},progress:{icon:"progress",modle:["edit"],locale:"进度",key:"Alt + P",disable:function(){return this.minder.queryCommandState("progress")===-1}.bind(this),keyAction:function(){this.progressSelector.showTooltip()}.bind(this),init:function(e,t){this.initProgress(e,t)}.bind(this)},resource:{title:"标签",modle:["edit"],disable:function(){return this.minder.queryCommandState("resource")===-1}.bind(this),init:function(e,t){this.initResource(e,t)}.bind(this),setDisable:function(){this.setResourceDisable()}.bind(this),setNormal:function(){this.setResourceNormal()}.bind(this)},template:{icon:"template",modle:["edit","read"],title:"模板",disable:function(){return this.minder.queryCommandState("template")===-1}.bind(this),init:function(e,t){this.initTemplate(e,t)}.bind(this)},theme:{icon:"theme",modle:["edit","read"],title:"主题",disable:function(){return this.minder.queryCommandState("theme")===-1}.bind(this),init:function(e,t){this.initTheme(e,t)}.bind(this)},resetlayout:{icon:"resetlayout",modle:["edit","read"],title:"整理布局",key:"Ctrl + Shift + L",isDefaultKey:true,disable:function(){return this.minder.queryCommandState("resetlayout")===-1}.bind(this),action:function(){this.minder.queryCommandState("resetlayout")===-1||this.minder.execCommand("resetlayout")}.bind(this)},clearstyle:{icon:"clear",modle:["edit"],locale:"清除样式",disable:function(){return this.minder.queryCommandState("clearstyle")===-1}.bind(this),action:function(){this.minder.queryCommandState("clearstyle")===-1||this.minder.execCommand("clearstyle")}.bind(this)},copystyle:{icon:"copystyle",modle:["edit"],locale:"拷贝样式",disable:function(){return this.minder.queryCommandState("copystyle")===-1}.bind(this),action:function(){this.minder.queryCommandState("copystyle")===-1||this.minder.execCommand("copystyle")}.bind(this)},pastestyle:{icon:"pastestyle",modle:["edit"],locale:"粘贴样式",disable:function(){return this.minder.queryCommandState("pastestyle")===-1}.bind(this),action:function(){this.minder.queryCommandState("pastestyle")===-1||this.minder.execCommand("pastestyle")}.bind(this)},fontfamily:{title:"字体",modle:["edit"],disable:function(){return this.minder.queryCommandState("fontfamily")===-1}.bind(this),keyAction:function(){this.fontfamilySelector.showTooltip()}.bind(this),init:function(e,t){this.initFontFamily(e,t)}.bind(this)},fontsize:{title:"字号",modle:["edit"],disable:function(){return this.minder.queryCommandState("fontsize")===-1}.bind(this),keyAction:function(){this.fontsizeSelector.showTooltip()}.bind(this),init:function(e,t){this.initFontSize(e,t)}.bind(this)},italic:{icon:"italic",modle:["edit"],title:"斜体",key:"Ctrl + I",isDefaultKey:true,disable:function(){return this.minder.queryCommandState("italic")===-1}.bind(this),action:function(){this.minder.queryCommandState("italic")===-1||this.minder.execCommand("italic")}.bind(this)},bold:{icon:"bold",modle:["edit"],title:"加粗",key:"Ctrl + B",isDefaultKey:true,disable:function(){return this.minder.queryCommandState("bold")===-1}.bind(this),action:function(){this.minder.queryCommandState("bold")===-1||this.minder.execCommand("bold")}.bind(this)},forecolor:{icon:"forecolor",modle:["edit"],title:"字体颜色",action:function(){this.minder.queryCommandState("forecolor")===-1||!this.currentForecolor||this.minder.execCommand("forecolor",this.currentForecolor)}.bind(this),disable:function(){return this.minder.queryCommandState("forecolor")===-1}.bind(this),init:function(e,t){this.initFontColor(e,t)}.bind(this)},background:{icon:"background",modle:["edit"],title:"背景颜色",action:function(){this.minder.queryCommandState("background")===-1||!this.currentBackgroundcolor||this.minder.execCommand("background",this.currentBackgroundcolor)}.bind(this),disable:function(){return this.minder.queryCommandState("background")===-1}.bind(this),init:function(e,t){this.initBackground(e,t)}.bind(this)},expandLevel:{icon:"expand",modle:["edit","read"],title:"展开节点",disable:function(){return false}.bind(this),keyAction:function(){this.expandlevelSelector.showTooltip()}.bind(this),init:function(e,t){this.initExpandLevel(e,t)}.bind(this)},selectAll:{icon:"select",modle:["edit","read"],title:"选择",disable:function(){return false}.bind(this),keyAction:function(){this.selectallSelector.showTooltip()}.bind(this),init:function(e,t){this.initSelectAll(e,t)}.bind(this)},zoom:{module:["edit","read"],title:"缩放",disable:function(){return false},init:function(e,t){this.initZoomArea(e,t)}.bind(this)},camera:{icon:"camera",module:["edit","read"],title:"根节点居中",disable:function(){return false}.bind(this),action:function(){this.minder.execCommand("camera",this.minder.getRoot(),600)}.bind(this)},preview:{icon:"preview",module:["edit","read"],title:"预览",active:true,disable:function(){return false}.bind(this),action:function(){this.toggleOpenPreViewer()}.bind(this),setDisable:function(){}.bind(this),setNormal:function(){}.bind(this),init:function(e,t){this.initPreViewer(e)}.bind(this)},move:{icon:"move",module:["edit","read"],title:"允许拖拽",disable:function(){return false}.bind(this),active:false,setDisable:function(){}.bind(this),setNormal:function(){}.bind(this),action:function(){this.minder.execCommand("hand")}.bind(this)},search:{icon:"search",module:["edit","read"],title:"搜索",key:"Ctrl + F",active:false,setDisable:function(){}.bind(this),setNormal:function(){}.bind(this),disable:function(){return false}.bind(this),action:function(){this.toggerSearch()}.bind(this),init:function(e){this.initSearch(e)}.bind(this)},help:{icon:"help",modle:["edit","read"],title:"帮助",key:"Ctrl + Alt + H",disable:function(){return false}.bind(this),keyAction:function(){this.helpTootips.load()}.bind(this),init:function(e,t){this.initHelp(e,t)}.bind(this)},save:{icon:"save",modle:["edit"],locale:"保存",key:"Ctrl + S",disable:function(){return false}.bind(this),action:function(){this.save()}.bind(this),init:function(e,t){this.initSaveTooltip(e,t)}.bind(this)},export:{icon:"export",modle:["edit"],locale:"导出",disable:function(){return false}.bind(this),init:function(e,t){this.initExportTooltip(e,t)}.bind(this)},menu:{icon:"menu",modle:["edit"],locale:"菜单",disable:function(){return false}.bind(this),action:function(e,t,i){this.initMainMenu(t,i)}.bind(this),init:function(e,t){if(this.app.options.menuAction){this.initMainMenu(e,t)}}.bind(this)}};for(var i in this.commands){this.commands[i].name=i}this.setKeyCommand();this.tooltipOptions={displayDelay:300,onPostCreate:function(t){t.node.addEvents({mouseenter:function(){var e=t.command;if(!e.disable()){this.setActiveStye(t.target,e)}else{this.setDisableStye(t.target,e)}}.bind(this)})}.bind(this),onHide:function(e){var t=e.command;if(!t.disable()){this.setNormalStye(e.target,t)}else{this.setDisableStye(e.target,t)}}.bind(this)};this.selectOptions={tooltipsOptions:{displayDelay:300,onPostCreate:function(e){var t=e.selector;e.node.addEvents({mouseenter:function(){var e=t.command;if(!e.disable()){this.setActiveStye(t.container,e)}else{this.setDisableStye(t.container,e)}}.bind(this)})}.bind(this),onQueryLoad:function(e){var t=e.selector;if(t.command){e.disable=t.command.disable()}}.bind(this),onPostLoad:function(e){var t=e.selector;if(t.selectArrowNode)t.selectArrowNode.setStyles(t.css.selectArrowNode_up);this.activeTooltip=e}.bind(this),onHide:function(e){var t=e.selector;if(this.activeTooltip==e)this.activeTooltip=null;if(t.selectArrowNode)t.selectArrowNode.setStyles(t.css.selectArrowNode);var i=t.command;if(!i.disable()){this.setNormalStye(t.container,i)}else{this.setDisableStye(t.container,i)}}.bind(this),event:"mouseenter"}}},load:function(){this._loadCss();this.containerObject={};this.cssObject={};this.itemNodeObject={};this.fsm.when("normal -> normal",function(e,t,i,n){if(i=="shortcut-handle"){var o=this.dispatchKey(n);if(o){n.preventDefault()}else{this.minder.dispatchKeyEvent(n)}}}.bind(this));this.minder.on("interactchange",function(){if(this.queryInteractchange()){if(this.activeTooltip)this.activeTooltip.hide();this.checkStatus()}}.bind(this))},addContainer:function(e,t,i){this.containerObject[e]=t;this.cssObject[e]=i;this.loadItemsByContainer(e)},loadItemsByContainer:function(e){var t=this.containerObject[e];var i=this.cssObject[e];t.getElements("[item]").each(function(e){if(e.get("lazyLoading")=="true")return;this.loadItemNode(e,i)}.bind(this))},loadItemsByNameList:function(i,e){var t=this.containerObject[e];var n=this.cssObject[e];t.getElements("[item]").each(function(e){var t=e.get("item");if(i.contains(t)){this.loadItemNode(e,n)}}.bind(this))},loadItemByName:function(e,t){var i=this.containerObject[t];var n=this.cssObject[t];var o=i.getElement("[item='"+e+"']");this.loadItemNode(o,n)},getItemNode:function(e,t){var i=this.containerObject[t];var n=i.getElement("[item='"+e+"']");return n},loadItemNode:function(t,e){var i=this;t.store("css",e);var n=t.get("item");var o=t.get("subtype");var s=t.get("itemevent");if(this.commands[n]){var r=this.commands[n];if(!o||o=="button"){this.itemNodeObject[n]=t;if(r.active){t.setStyles(e[t.get("styles")]);this.setActiveStye(t,r);t.store("active",true)}else if(r.disable()){t.setStyles(e[t.get("styles")]);this.setDisableStye(t,r)}else{this.setNormalStye(t,r)}var a=r.title||"";t.set("title",a);if(!s||s=="mouseover"){t.addEvents({mouseover:function(){if(!r.disable()){this.setActiveStye(t,r)}else{this.setDisableStye(t,r)}}.bind(this),mouseleave:function(){if(!r.disable()){this.setNormalStye(t,r)}else{this.setDisableStye(t,r)}}.bind(this)})}else{t.addEvents({click:function(){if(!t.retrieve("active")){this.setActiveStye(t,r);t.store("active",true)}else{this.setNormalStye(t,r);t.store("active",false)}}.bind(this)})}var d=new Element("div",{text:r.locale||null}).inject(t);if(r.action){t.addEvent("click",function(e){if(!r.disable()){r.action(e,t,r);i.fireEvent("postExecCommand",[i,this])}}.bind(n))}}if(!o||o=="container"){if(r.init){r.init(t,r);if(r.active===false){t.setStyle("display","none")}}}}},setDisableStye:function(e,t){var i=e.retrieve("css");e.setStyles(i[e.get("styles")+"_disable"]);if(t.icon){e.setStyle("background-image","url(/x_component_MinderEditor/$Main/"+this.options.style+"/icon/"+t.icon+"_disable.png)")}},setActiveStye:function(e,t){var i=e.retrieve("css");e.setStyles(i[e.get("styles")+"_over"]);if(t.icon){e.setStyle("background-image","url(/x_component_MinderEditor/$Main/"+this.options.style+"/icon/"+t.icon+"_active.png)")}},setNormalStye:function(e,t){var i=e.retrieve("css");e.setStyles(i[e.get("styles")]);if(t.icon){e.setStyle("background-image","url(/x_component_MinderEditor/$Main/"+this.options.style+"/icon/"+t.icon+"_normal.png)")}},checkStatus:function(){for(var e in this.itemNodeObject){var t=this.itemNodeObject[e];var e=t.get("item");if(this.commands[e]){var i=this.commands[e];if(i.disable()){i.setDisable?i.setDisable():this.setDisableStye(t,i)}else{i.setNormal?i.setNormal():this.setNormalStye(t,i)}}}},setKeyCommand:function(){this.keyCommands={};this.defaultKeyCommands={};for(var e in this.commands){var t=this.commands[e];if(t.key){var i=t.isDefaultKey?this.defaultKeyCommands:this.keyCommands;if(typeOf(t.key)=="array"){for(var n=0;n0){this.minder.execCommand("zoomIn");if(this.zoompanIndicator){var t=parseInt(this.zoompanIndicator.getStyle("margin-top"));if(t>0){this.zoompanIndicator.setStyle("margin-top",t-10+"px")}}}else if(e.wheel<0){this.minder.execCommand("zoomOut");if(this.zoompanIndicator){var i=parseInt(this.zoompan.getStyle("height"));var t=parseInt(this.zoompanIndicator.getStyle("margin-top"));if(t0){this.zoompanIndicator.setStyle("margin-top",e-10+"px")}}.bind(this));this.zoompan=new Element("div",{styles:this.css.zoompan}).inject(e);this.zoompanOrigin=new Element("div",{styles:this.css.zoompanOrigin}).inject(this.zoompan);this.zoompanOrigin.addEvent("click",function(){this.minder.execCommand("zoom",100);this.zoompanIndicator.setStyle("margin-top","30px")}.bind(this));this.zoompanIndicator=new Element("div",{styles:this.css.zoompanIndicator}).inject(this.zoompan);this.zoomout=new Element("div",{styles:this.css.zoomButton,title:this.lp.zoomout}).inject(e);new Element("div",{styles:this.css.zoomoutIcon}).inject(this.zoomout);this.zoomout.addEvent("click",function(){this.minder.execCommand("zoomOut");var e=parseInt(this.zoompan.getStyle("height"));var t=parseInt(this.zoompanIndicator.getStyle("margin-top"));if(t