ScriptText.min.js 4.2 KB

1
  1. MWF.xApplication.process.ProcessDesigner.widget=MWF.xApplication.process.ProcessDesigner.widget||{};MWF.xApplication.process.ProcessDesigner.widget.ScriptText=new Class({Implements:[Options,Events],Extends:MWF.widget.Common,options:{style:"default",maskNode:$(document.body),height:null,maxObj:null},initialize:function(e,t,i,s){this.setOptions(s);this.node=$(e);this.app=i;this.code=t;this.path="/x_component_process_ProcessDesigner/widget/$ScriptText/";this.cssPath="/x_component_process_ProcessDesigner/widget/$ScriptText/"+this.options.style+"/css.wcss";this._loadCss();this.createEditor()},createEditor:function(){this.areaNode=new Element("div",{styles:this.css.areaNode}).inject(this.node);if(this.options.height)this.areaNode.setStyle("height",""+this.options.height+"px");this.titleNode=new Element("div",{styles:this.css.titleNode}).inject(this.areaNode);this.referenceNode=new Element("div",{styles:this.css.actionReferenceNode}).inject(this.titleNode);if(!this.code)this.referenceNode.setStyle("background","url("+"/x_component_process_ProcessDesigner/widget/$ScriptText/"+this.options.style+"/icon/reference_empty.png) no-repeat center center");this.maxNode=new Element("div",{styles:this.css.actionMaxNode}).inject(this.titleNode);this.returnNode=new Element("div",{styles:this.css.actionReturnNode}).inject(this.titleNode);this.editorNode=new Element("div",{styles:this.css.editorNode}).inject(this.areaNode);if(this.options.height){var e=this.options.height.toInt()-20;this.editorNode.setStyle("height",""+e+"px")}this.inforNode=new Element("div",{styles:this.css.inforNode,text:this.app.lp.intoScript}).inject(this.editorNode);var t=this;this.inforNode.addEvent("click",function(){t.loadEditor()})},loadEditor:function(e){if(this.inforNode){this.inforNode.destroy();this.inforNode=null}MWF.require("MWF.widget.JavascriptEditor",function(){this.editor=new MWF.widget.JavascriptEditor(this.editorNode,{option:{value:this.code},onSave:function(){var e=this.editor.editor.getValue();this.fireEvent("change",[e]);this.app.saveProcess()}.bind(this)});this.editor.load(function(){this.editor.editor.on("blur",function(){var e=this.editor.editor.getValue();this.fireEvent("change",[e])}.bind(this));this.createScriptReferenceMenu();this.editor.addEvent("reference",function(e,t,i){if(!this.scriptReferenceMenu){this.createScriptReferenceMenu(this.showReferenceMenu.bind(this))}else{this.showReferenceMenu()}}.bind(this));if(e)e()}.bind(this))}.bind(this));this.maxNode.addEvent("click",function(){this.maxSize()}.bind(this));this.returnNode.addEvent("click",function(){this.returnSize()}.bind(this))},createScriptReferenceMenu:function(e){MWF.require("MWF.widget.ScriptHelp",function(){this.scriptReferenceMenu=new MWF.widget.ScriptHelp(this.referenceNode,this.editor.editor,{code:"code_background.json",event:"click",onPostLoad:function(){if(e)e()}.bind(this)});this.scriptReferenceMenu.getEditor=function(){return this.editor.editor}.bind(this)}.bind(this))},showReferenceMenu:function(){var e=this.editor.getCursorPixelPosition();var t={page:{}};t.page.x=e.left;t.page.y=e.top;this.scriptReferenceMenu.menu.showIm(t)},maxSize:function(){if(!this.options.maxObj){this.areaNode.setStyles({width:"100%",height:"100%",position:"absolute","z-index":"50001",top:"0px",left:"0px"});this.areaNode.inject(this.app.content)}else{var e=this.options.maxObj.getSize();this.areaNode.inject(this.options.maxObj);this.areaNode.setStyles({width:""+e.x+"px",height:""+e.y+"px",position:"absolute","z-index":"50001"});this.areaNode.position({relativeTo:this.options.maxObj,position:"upperLeft",edge:"upperLeft"})}this.resizeEditor();this.resizeEditorFun=this.resizeEditor.bind(this);this.app.addEvent("resize",this.resizeEditorFun);this.maxNode.setStyle("display","none");this.returnNode.setStyle("display","block")},resizeEditor:function(){var e=this.areaNode.getSize();var t=e.y-20;this.editorNode.setStyle("height",""+t+"px");if(this.editor.editor)this.editor.editor.resize()},returnSize:function(){this.areaNode.setStyles(this.css.areaNode);this.areaNode.inject(this.node);if(this.options.height)this.areaNode.setStyle("height",""+this.options.height+"px");this.resizeEditor();this.app.removeEvent("resize",this.resizeEditorFun);this.maxNode.setStyle("display","block");this.returnNode.setStyle("display","none")}});