| 1 |
- MWF.APPSD=MWF.xApplication.process.ScriptDesigner;MWF.APPSD.options={multitask:true,executable:false};MWF.xDesktop.requireApp("process.ScriptDesigner","Script",null,false);MWF.require("MWF.xDesktop.UserData",null,false);MWF.xApplication.process.ScriptDesigner.Main=new Class({Extends:MWF.xApplication.Common.Main,Implements:[Options,Events],options:{style:"default",name:"process.ScriptDesigner",icon:"icon.png",title:MWF.APPSD.LP.title,appTitle:MWF.APPSD.LP.title,id:"",actions:null,category:null,processData:null},onQueryLoad:function(){if(this.status){this.options.application=this.status.applicationId;this.application=this.status.application;this.options.id=this.status.id}if(!this.options.id){this.options.desktopReload=false;this.options.title=this.options.title+"-"+MWF.APPSD.LP.newScript}this.actions=MWF.Actions.get("x_processplatform_assemble_designer");this.lp=MWF.xApplication.process.ScriptDesigner.LP;this.addEvent("queryClose",function(t){if(this.explorer){this.explorer.reload()}}.bind(this))},loadApplication:function(t){this.createNode();if(!this.options.isRefresh){this.maxSize(function(){this.openScript()}.bind(this))}else{this.openScript()}if(t)t()},createNode:function(){this.content.setStyle("overflow","hidden");this.node=new Element("div",{styles:{width:"100%",height:"100%",overflow:"hidden"}}).inject(this.content)},getApplication:function(t){if(!this.application){this.actions.getApplication(this.options.application,function(e){this.application={name:e.data.name,id:e.data.id};if(t)t()}.bind(this))}else{if(t)t()}},openScript:function(){this.getApplication(function(){this.loadNodes();this.loadScriptListNodes();this.loadContentNode(function(){this.loadProperty();this.resizeNode();this.addEvent("resize",this.resizeNode.bind(this));this.loadScript();if(this.toolbarContentNode){this.setScrollBar(this.toolbarContentNode,null,{V:{x:0,y:0},H:{x:0,y:0}});this.setScrollBar(this.propertyDomArea,null,{V:{x:0,y:0},H:{x:0,y:0}})}}.bind(this))}.bind(this))},loadNodes:function(){this.scriptListNode=new Element("div",{styles:this.css.scriptListNode}).inject(this.node);this.propertyNode=new Element("div",{styles:this.css.propertyNode}).inject(this.node);this.contentNode=new Element("div",{styles:this.css.contentNode}).inject(this.node)},loadScriptListNodes:function(){this.scriptListTitleNode=new Element("div",{styles:this.css.scriptListTitleNode,text:MWF.APPSD.LP.scriptLibrary}).inject(this.scriptListNode);this.scriptListResizeNode=new Element("div",{styles:this.css.scriptListResizeNode}).inject(this.scriptListNode);this.scriptListAreaSccrollNode=new Element("div",{styles:this.css.scriptListAreaSccrollNode}).inject(this.scriptListNode);this.scriptListAreaNode=new Element("div",{styles:this.css.scriptListAreaNode}).inject(this.scriptListAreaSccrollNode);this.loadScriptListResize();this.loadScriptList()},loadScriptListResize:function(){this.scriptListResize=new Drag(this.scriptListResizeNode,{snap:1,onStart:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var s=Browser.name=="firefox"?e.event.clientY:e.event.y;t.store("position",{x:i,y:s});var o=this.scriptListAreaSccrollNode.getSize();t.store("initialWidth",o.x)}.bind(this),onDrag:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var s=this.content.getSize();var o=t.retrieve("position");var n=t.retrieve("initialWidth").toFloat();var r=i.toFloat()-o.x.toFloat();var a=n+r;if(a>s.x/2)a=s.x/2;if(a<40)a=40;this.contentNode.setStyle("margin-left",a+1);this.scriptListNode.setStyle("width",a)}.bind(this)})},loadScriptList:function(){this.actions.listScript(this.application.id,function(t){t.data.each(function(t){this.createListScriptItem(t)}.bind(this))}.bind(this),null,false)},createListScriptItem:function(t,e){var i=this;var s=new Element("div",{styles:this.css.listScriptItem}).inject(this.scriptListAreaNode,e?"top":"bottom");var o=new Element("div",{styles:this.css.listScriptItemIcon}).inject(s);var n=new Element("div",{styles:this.css.listScriptItemText,text:t.name?t.name+" ("+t.alias+")":this.lp.newScript}).inject(s);s.store("script",t);s.addEvents({dblclick:function(t){i.loadScriptByData(this,t)},mouseover:function(){if(i.currentListScriptItem!=this)this.setStyles(i.css.listScriptItem_over)},mouseout:function(){if(i.currentListScriptItem!=this)this.setStyles(i.css.listScriptItem)}});this.listScriptItemMove(s)},createScriptListCopy:function(t){var e=t.clone().inject(this.node);e.position({relativeTo:t,position:"upperLeft",edge:"upperLeft"});var i=e.getSize();e.setStyles({width:""+i.x+"px",height:""+i.y+"px","z-index":50001});return e},listDragEnter:function(t,e){var i=e.retrieve("markNode");if(!i){var s=e.getSize();i=new Element("div",{styles:this.css.dragListItemMark}).inject(this.node);i.setStyles({width:""+s.x+"px",height:""+s.y+"px",position:"absolute","background-color":"#666","z-index":5e4,opacity:.3});i.position({relativeTo:e,position:"upperLeft",edge:"upperLeft"});var o=i.getStyle("top").toFloat()-1;var n=i.getStyle("left").toFloat()-2;i.setStyles({left:""+n+"px",top:""+o+"px"});e.store("markNode",i)}},listDragLeave:function(t,e){var i=e.retrieve("markNode");if(i)i.destroy();e.eliminate("markNode")},listScriptItemMove:function(t){var e=t.getFirst();e.addEvent("mousedown",function(e){var i=t.retrieve("script");if(i.id!=this.scriptTab.showPage.script.data.id){var s=this.createScriptListCopy(t);var o=[this.designNode,this.propertyDomArea];var n=new Drag.Move(s,{droppables:o,onEnter:function(t,e){this.listDragEnter(t,e)}.bind(this),onLeave:function(t,e){this.listDragLeave(t,e)}.bind(this),onDrag:function(t){}.bind(this),onDrop:function(t,e){if(e){this.addIncludeScript(i);this.listDragLeave(t,e);s.destroy()}else{s.destroy()}}.bind(this),onCancel:function(t){s.destroy()}.bind(this)});n.start(e)}}.bind(this))},addIncludeScript:function(t){var e=this.scriptTab.showPage.script;if(e.data.dependScriptList.indexOf(t.name)==-1){e.data.dependScriptList.push(t.name);this.addIncludeToList(t.name)}},addIncludeToList:function(t){this.actions.getScriptByName(t,this.application.id,function(t){var e=t.data;var i=new Element("div",{styles:this.css.includeScriptItem}).inject(this.propertyIncludeListArea);var s=new Element("div",{styles:this.css.includeScriptItemAction}).inject(i);var o=new Element("div",{styles:this.css.includeScriptItemText}).inject(i);o.set("text",e.name+" ("+e.alias+")");i.store("script",e);var n=this;s.addEvent("click",function(){var t=this.getParent();var e=t.retrieve("script");if(e){n.scriptTab.showPage.script.data.dependScriptList.erase(e.name)}t.destroy()})}.bind(this),function(){this.scriptTab.showPage.script.data.dependScriptList.erase(t)}.bind(this))},loadScriptByData:function(t,e){var i=t.retrieve("script");var s=true;for(var o=0;o<this.scriptTab.pages.length;o++){if(i.id==this.scriptTab.pages[o].script.data.id){this.scriptTab.pages[o].showTabIm();s=false;break}}if(s){this.loadScriptData(i.id,function(t){var e=new MWF.xApplication.process.ScriptDesigner.Script(this,t);e.load()}.bind(this),true)}},loadContentNode:function(t,e){this.contentToolbarNode=new Element("div#contentToolbarNode",{styles:this.css.contentToolbarNode}).inject(this.contentNode);this.loadContentToolbar(t);this.editContentNode=new Element("div",{styles:this.css.editContentNode}).inject(this.contentNode);this.loadEditContent(function(){if(this.designNode)this.designNode.setStyles(this.css.designNode);if(e)e()}.bind(this))},loadContentToolbar:function(t){this.getFormToolbarHTML(function(e){var i=e.getElements("span");i.each(function(t,e){var i=t.get("MWFButtonImage");if(i){t.set("MWFButtonImage",this.path+""+this.options.style+"/toolbar/"+i)}}.bind(this));$(e).inject(this.contentToolbarNode);MWF.require("MWF.widget.Toolbar",function(){this.toolbar=new MWF.widget.Toolbar(e,{style:"ProcessCategory"},this);this.toolbar.load();var i=this;this.styleSelectNode=e.getElement("select");this.styleSelectNode.addEvent("change",function(){i.changeEditorStyle(this)});if(t)t()}.bind(this))}.bind(this))},changeEditorStyle:function(t){var e=t.selectedIndex;var i=t.options[e].value;this.scriptTab.pages.each(function(t){var e=t.script.editor.editor;if(e)e.setTheme("ace/theme/"+i)}.bind(this));if(!MWF.editorData){MWF.editorData={javascriptEditor:{theme:"tomorrow"}}}MWF.editorData.javascriptEditor.theme=i;MWF.UD.putData("editor",MWF.editorData)},getFormToolbarHTML:function(t){var e=this.path+this.options.style+"/toolbars.html";var i=new Request.HTML({url:e,method:"get",onSuccess:function(e,i,s,o){var n=e[0];if(t)t(n)}.bind(this),onFailure:function(t){this.notice("request processToolbars error: "+t.responseText,"error")}.bind(this)});i.send()},maxOrReturnEditor:function(){if(!this.isMax){this.designNode.inject(this.node);this.designNode.setStyles({position:"absolute",width:"100%",height:"100%",top:"0px",margin:"0px",left:"0px"});this.scriptTab.pages.each(function(t){t.script.setAreaNodeSize()});this.isMax=true}else{this.isMax=false;this.designNode.inject(this.editContentNode);this.designNode.setStyles(this.css.designNode);this.designNode.setStyles({position:"static"});this.resizeNode();this.scriptTab.pages.each(function(t){t.script.setAreaNodeSize()})}},loadEditContent:function(t){this.designNode=new Element("div",{styles:this.css.designNode}).inject(this.editContentNode);MWF.require("MWF.widget.Tab",function(){this.scriptTab=new MWF.widget.Tab(this.designNode,{style:"script"});this.scriptTab.load()}.bind(this),false)},loadProperty:function(){this.propertyTitleNode=new Element("div",{styles:this.css.propertyTitleNode,text:MWF.APPSD.LP.property}).inject(this.propertyNode);this.propertyResizeBar=new Element("div",{styles:this.css.propertyResizeBar}).inject(this.propertyNode);this.loadPropertyResize();this.propertyContentNode=new Element("div",{styles:this.css.propertyContentNode}).inject(this.propertyNode);this.propertyDomArea=new Element("div",{styles:this.css.propertyDomArea}).inject(this.propertyContentNode);this.propertyDomPercent=.3;this.propertyContentResizeNode=new Element("div",{styles:this.css.propertyContentResizeNode}).inject(this.propertyContentNode);this.propertyContentArea=new Element("div",{styles:this.css.propertyContentArea}).inject(this.propertyContentNode);this.loadPropertyContentResize();this.setPropertyContent();this.setIncludeNode()},setIncludeNode:function(){this.includeTitleNode=new Element("div",{styles:this.css.includeTitleNode}).inject(this.propertyDomArea);this.includeTitleActionNode=new Element("div",{styles:this.css.includeTitleActionNode}).inject(this.includeTitleNode);this.includeTitleTextNode=new Element("div",{styles:this.css.includeTitleTextNode,text:this.lp.include}).inject(this.includeTitleNode);this.includeTitleActionNode.addEvent("click",function(){this.addInclude()}.bind(this));this.propertyIncludeListArea=new Element("div",{styles:{overflow:"hidden"}}).inject(this.propertyDomArea)},addInclude:function(){},setPropertyContent:function(){var t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.id+":"}).inject(this.propertyContentArea);this.propertyIdNode=new Element("div",{styles:this.css.propertyTextNode,text:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.name+":"}).inject(this.propertyContentArea);this.propertyNameNode=new Element("input",{styles:this.css.propertyInputNode,value:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.alias+":"}).inject(this.propertyContentArea);this.propertyAliasNode=new Element("input",{styles:this.css.propertyInputNode,value:""}).inject(this.propertyContentArea);t=new Element("div",{styles:this.css.propertyItemTitleNode,text:this.lp.description+":"}).inject(this.propertyContentArea);this.propertyDescriptionNode=new Element("textarea",{styles:this.css.propertyInputAreaNode,value:""}).inject(this.propertyContentArea)},loadPropertyResize:function(){this.propertyResize=new Drag(this.propertyResizeBar,{snap:1,onStart:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var s=Browser.name=="firefox"?e.event.clientY:e.event.y;t.store("position",{x:i,y:s});var o=this.propertyNode.getSize();t.store("initialWidth",o.x)}.bind(this),onDrag:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var s=this.content.getSize();var o=t.retrieve("position");var n=t.retrieve("initialWidth").toFloat();var r=o.x.toFloat()-i.toFloat();var a=n+r;if(a>s.x/2)a=s.x/2;if(a<40)a=40;this.contentNode.setStyle("margin-right",a+1);this.propertyNode.setStyle("width",a)}.bind(this)})},loadPropertyContentResize:function(){this.propertyContentResize=new Drag(this.propertyContentResizeNode,{snap:1,onStart:function(t,e){var i=Browser.name=="firefox"?e.event.clientX:e.event.x;var s=Browser.name=="firefox"?e.event.clientY:e.event.y;t.store("position",{x:i,y:s});var o=this.propertyDomArea.getSize();t.store("initialHeight",o.y)}.bind(this),onDrag:function(t,e){var i=this.propertyContentNode.getSize();var s=Browser.name=="firefox"?e.event.clientY:e.event.y;var o=t.retrieve("position");var n=s.toFloat()-o.y.toFloat();var r=t.retrieve("initialHeight").toFloat();var a=r+n;if(a<40)a=40;if(a>i.y-40)a=i.y-40;this.propertyDomPercent=a/i.y;this.setPropertyContentResize()}.bind(this)})},setPropertyContentResize:function(){var t=this.propertyContentNode.getSize();var e=this.propertyContentResizeNode.getSize();var i=t.y-e.y;var s=this.propertyDomPercent*i;var o=i-s;this.propertyDomArea.setStyle("height",""+s+"px");this.propertyContentArea.setStyle("height",""+o+"px")},resizeNode:function(){if(!this.isMax){var t=this.node.getSize();this.contentNode.setStyle("height",""+t.y+"px");this.propertyNode.setStyle("height",""+t.y+"px");var e=this.contentToolbarNode.getStyle("margin-top").toFloat();var i=this.contentToolbarNode.getStyle("margin-bottom").toFloat();var s=this.contentToolbarNode.getComputedSize();var o=t.y-s.totalHeight-e-i;this.editContentNode.setStyle("height",""+o+"px");if(this.designNode){var n=this.designNode.getStyle("margin-top").toFloat();var r=this.designNode.getStyle("margin-bottom").toFloat();o=t.y-s.totalHeight-e-i-n-r;this.designNode.setStyle("height",""+o+"px")}titleSize=this.propertyTitleNode.getSize();titleMarginTop=this.propertyTitleNode.getStyle("margin-top").toFloat();titleMarginBottom=this.propertyTitleNode.getStyle("margin-bottom").toFloat();titlePaddingTop=this.propertyTitleNode.getStyle("padding-top").toFloat();titlePaddingBottom=this.propertyTitleNode.getStyle("padding-bottom").toFloat();o=titleSize.y+titleMarginTop+titleMarginBottom+titlePaddingTop+titlePaddingBottom;o=t.y-o;this.propertyContentNode.setStyle("height",""+o+"px");this.propertyResizeBar.setStyle("height",""+o+"px");this.setPropertyContentResize();titleSize=this.scriptListTitleNode.getSize();titleMarginTop=this.scriptListTitleNode.getStyle("margin-top").toFloat();titleMarginBottom=this.scriptListTitleNode.getStyle("margin-bottom").toFloat();titlePaddingTop=this.scriptListTitleNode.getStyle("padding-top").toFloat();titlePaddingBottom=this.scriptListTitleNode.getStyle("padding-bottom").toFloat();nodeMarginTop=this.scriptListAreaSccrollNode.getStyle("margin-top").toFloat();nodeMarginBottom=this.scriptListAreaSccrollNode.getStyle("margin-bottom").toFloat();o=titleSize.y+titleMarginTop+titleMarginBottom+titlePaddingTop+titlePaddingBottom+nodeMarginTop+nodeMarginBottom;o=t.y-o;this.scriptListAreaSccrollNode.setStyle("height",""+o+"px");this.scriptListResizeNode.setStyle("height",""+o+"px")}},loadScript:function(){debugger;this.getScriptData(this.options.id,function(t){this.script=new MWF.xApplication.process.ScriptDesigner.Script(this,t);this.script.load();if(this.status){if(this.status.openScripts){this.status.openScripts.each(function(t){this.loadScriptData(t,function(t){var e=true;if(this.status.currentId){if(this.status.currentId!=t.id)e=false}var i=new MWF.xApplication.process.ScriptDesigner.Script(this,t,{showTab:e});i.load()}.bind(this),true)}.bind(this))}}if(!this.scriptHelpMenu){MWF.require("MWF.widget.ScriptHelp",function(){this.scriptHelpMenu=new MWF.widget.ScriptHelp($("MWFScriptAutoCode"),this.script.editor);this.scriptHelpMenu.getEditor=function(){if(this.scriptTab.showPage)return this.scriptTab.showPage.script.editor.editor;return null}.bind(this)}.bind(this))}}.bind(this))},getScriptData:function(t,e){if(!t){this.loadNewScriptData(e)}else{this.loadScriptData(t,e)}},loadNewScriptData:function(t){this.actions.getUUID(function(e){var i={name:"",id:e,application:this.application.id,alias:"",description:"",language:"javascript",dependScriptList:[],isNewScript:true,text:""};this.createListScriptItem(i,true);if(t)t(i)}.bind(this))},loadScriptData:function(t,e,i){this.actions.getScript(t,function(t){if(t){var s=t.data;if(!i){this.setTitle(this.options.appTitle+"-"+s.name);this.taskitem.setText(this.options.appTitle+"-"+s.name);this.options.appTitle=this.options.appTitle+"-"+s.name}if(!this.application){this.actions.getApplication(this.data.application,function(t){this.application={name:t.data.name,id:t.data.id};if(e)e(s)}.bind(this))}else{if(e)e(s)}}}.bind(this))},saveScript:function(){if(this.scriptTab.showPage){var t=this.scriptTab.showPage.script;t.save(function(){if(t==this.script){var e=t.data.name;this.setTitle(MWF.APPSD.LP.title+"-"+e);this.options.desktopReload=true;this.options.id=t.data.id}}.bind(this))}},saveDictionaryAs:function(){this.dictionary.saveAs()},dictionaryExplode:function(){this.dictionary.explode()},dictionaryImplode:function(){this.dictionary.implode()},recordStatus:function(){if(this.scriptTab){var t=[];this.scriptTab.pages.each(function(e){if(e.script.data.id!=this.options.id)t.push(e.script.data.id)}.bind(this));var e=this.scriptTab.showPage.script.data.id;var i={id:this.options.id,application:this.application,openScripts:t,currentId:e};return i}return{id:this.options.id,application:this.application}}});
|