Main.min.js 14 KB

1
  1. MWF.APPPD=MWF.xApplication.process.ProcessDesigner;MWF.APPPD.options={multitask:true,executable:false};MWF.require("MWF.widget.MWFRaphael",null,false);MWF.xApplication.process.ProcessDesigner.Main=new Class({Extends:MWF.xApplication.Common.Main,Implements:[Options,Events],options:{style:"default",template:"process.json",name:"process.ProcessDesigner",icon:"icon.png",title:MWF.APPPD.LP.title,appTitle:MWF.APPPD.LP.title,id:"",tooltip:{unCategory:MWF.APPPD.LP.unCategory},actions:null,category:null,processData:null},onQueryLoad:function(){this.shortcut=true;if(this.status){this.options.id=this.status.id}if(!this.options.id){this.options.desktopReload=false;this.options.title=this.options.title+"-"+MWF.APPPD.LP.newProcess}this.actions=MWF.Actions.get("x_processplatform_assemble_designer");this.lp=MWF.xApplication.process.ProcessDesigner.LP},loadApplication:function(t){this.gadgets=[];this.gadgetMode="all";this.gadgetDecrease=0;this.createNode();if(!this.options.isRefresh){this.maxSize(function(){this.openProcess()}.bind(this))}else{this.openProcess()}this.addKeyboardEvents();if(t)t()},addKeyboardEvents:function(){this.addEvent("copy",function(){this.copyModule()}.bind(this));this.addEvent("paste",function(){this.pasteModule()}.bind(this));this.addEvent("keySave",function(t){this.keySave(t)}.bind(this));this.addEvent("keyDelete",function(t){this.keyDelete(t)}.bind(this))},keySave:function(t){if(this.shortcut){if(this.process)this.saveProcess();t.preventDefault()}},keyDelete:function(t){if(this.shortcut){if(this.process){if(this.process.selectedActivitys.length){}else if(this.process.currentSelected){var e=this.content.getPosition();if(this.process.currentSelected.type){var s=this.process.currentSelected;var t={event:{x:s.center.x+e.x,y:s.center.y+e.y}};this.process.deleteActivity(t,this.process.currentSelected)}else{var i=this.process.currentSelected;var t={event:{x:i.beginPoint.x+e.x,y:i.beginPoint.y+e.y}};this.process.deleteRoute(t,this.process.currentSelected)}}}}},copyModule:function(){if(this.shortcut){if(this.process){if(this.process.selectedActivitys.length){var t=[];var e=[];this.process.selectedActivitys.each(function(s){t.push(Object.clone(s.data));debugger;s.routes.each(function(t){if(t.toActivity){e.push(Object.clone(t.data))}else{e.push(Object.clone(t.data))}}.bind(this))}.bind(this));MWF.clipboard.data={type:"process",data:{activitys:t,routes:e}}}else if(this.process.currentSelected){if(this.process.currentSelected.type){var s=Object.clone(this.process.currentSelected.data);MWF.clipboard.data={type:"process",data:{activitys:[s],routes:[]}}}else{MWF.clipboard.data=null}}}}},pasteModule:function(){if(this.process){if(MWF.clipboard.data){if(MWF.clipboard.data.type=="process"){this.process.unSelectedAll();var t=MWF.clipboard.data.data.activitys;var e=MWF.clipboard.data.data.routes;var s;this.actions.getId(t.length+e.length,function(i){s=i.data;var o={};var n=this.process.process.id;t.each(function(t){var e=s.pop().id;o[t.id]=e;t.id=e;t.process=n});e.each(function(t){var e=s.pop().id;o[t.id]=e;t.id=e;t.process=n;t.activity=o[t.activity]});t.each(function(t){if(t.route){t.route=o[t.route]}if(t.routeList){t.routeList.each(function(e,s){t.routeList[s]=o[e]})}});var a=function(){e.each(function(t){this.process.process.routeList.push(Object.clone(t));this.process.routes[t.id]=new MWF.APPPD.Route(t,this.process);this.process.routeDatas[t.id]=t}.bind(this));t.each(function(e){this.process[e.type+"s"][e.id].loadRoutes();if(t.length>1){this.process[e.type+"s"][e.id].selectedMulti()}else{this.process[e.type+"s"][e.id].selected()}}.bind(this));e.each(function(t){var e=this.process.routes[t.id];if(!e.loaded)e.load()}.bind(this))};var r=0;t.each(function(e){var s=Object.clone(e);var i=s.type;if(i=="begin"&&!this.process.begin){this.process.process.begin=s;this.process.loadBegin(function(){r++;if(r==t.length)a.apply(this)}.bind(this))}else{if(!this.process.process[i+"List"])this.process.process[i+"List"]=[];this.process.process[i+"List"].push(s);var o=i.capitalize();this.process.loadActivity(o,s,this.process[i+"s"],function(){r++;if(r==t.length)a.apply(this)}.bind(this))}}.bind(this))}.bind(this))}}}},createNode:function(){this.content.setStyle("overflow","hidden");this.node=new Element("div",{styles:{width:"100%",height:"100%",overflow:"hidden"}}).inject(this.content)},openProcess:function(){this.loadNodes();this.loadGadgets();this.loadToolbar(function(){this.resizePaper();this.addEvent("resize",function(){this.resizePaper()}.bind(this));this.getProcessData(function(){this.loadPaper()}.bind(this))}.bind(this));this.resizeNode();this.addEvent("resize",this.resizeNode.bind(this))},resizeNode:function(){var t=this.node.getSize();var e=this.gadgetTitleNode.getSize();var s=this.gadgetTitleNode.getStyle("margin-top").toFloat();var i=this.gadgetTitleNode.getStyle("margin-bottom").toFloat();var o=this.gadgetTitleNode.getStyle("padding-top").toFloat();var n=this.gadgetTitleNode.getStyle("padding-bottom").toFloat();y=e.y+s+i+o+n;y=t.y-y;this.gadgetContentNode.setStyle("height",""+y+"px")},getProcessData:function(t){if(!this.options.id){this.loadNewProcessData(t)}else{this.loadProcessData(t)}},loadNewProcessData:function(t){var e="/x_component_process_ProcessDesigner/$Process/template/"+this.options.template;MWF.getJSON(e,{onSuccess:function(e){e.id="";e.isNewProcess=true;this.processData=e;if(t)t()}.bind(this),onerror:function(t){this.notice(t,"error")}.bind(this),onRequestFailure:function(t){this.notice(t.responseText,"error")}.bind(this)})},loadProcessData:function(t){this.actions.getProcess(this.options.id,function(e){if(e){this.processData=e.data;this.processData.isNewProcess=false;this.setTitle(this.options.appTitle+"-"+this.processData.name);if(!this.application){this.actions.getApplication(e.data.application,function(e){this.application={name:e.data.name,id:e.data.id};if(t)t()}.bind(this))}else{if(t)t()}}}.bind(this))},loadGadgets:function(){this.gadgetTitleNode=new Element("div",{styles:this.css.gadgetTitleNode,text:MWF.APPPD.LP.tools}).inject(this.gadgetAreaNode);this.gadgetTitleActionNode=new Element("div",{styles:this.css.gadgetTitleActionNode,events:{click:function(t){this.switchGadgetAreaMode()}.bind(this)}}).inject(this.gadgetAreaNode);this.gadgetContentNode=new Element("div",{styles:this.css.gadgetContentNode,events:{selectstart:function(t){t.preventDefault();t.stopPropagation()}}}).inject(this.gadgetAreaNode);MWF.getJSON(this.path+"gadget.json",function(t){Object.each(t,function(t,e){this.createGadgetNode(t,e)}.bind(this))}.bind(this));this.setScrollBar(this.gadgetContentNode,null,{V:{x:0,y:0},H:{x:0,y:0}})},switchGadgetAreaMode:function(){if(this.gadgetMode=="all"){var t=this.gadgetAreaNode.getSize();this.gadgetDecrease=t.x.toFloat()-60;this.gadgets.each(function(t){t.getLast().setStyle("display","none")});this.gadgetTitleNode.set("text","");this.gadgetAreaNode.setStyle("width","60px");var e=this.rightContentNode.getStyle("margin-left").toFloat();e=e-this.gadgetDecrease;this.rightContentNode.setStyle("margin-left",""+e+"px");this.gadgetTitleActionNode.setStyles(this.css.gadgetTitleActionNodeRight);this.gadgetMode="simple"}else{sizeX=60+this.gadgetDecrease;var e=this.rightContentNode.getStyle("margin-left").toFloat();e=e+this.gadgetDecrease;this.gadgetAreaNode.setStyle("width",""+sizeX+"px");this.rightContentNode.setStyle("margin-left",""+e+"px");this.gadgets.each(function(t){t.getLast().setStyle("display","block")});this.gadgetTitleNode.set("text",MWF.APPPD.LP.tools);this.gadgetTitleActionNode.setStyles(this.css.gadgetTitleActionNode);this.gadgetMode="all"}},createGadgetNode:function(t,e){var s=this;var i=new Element("div",{styles:this.css.gadgetToolNode,title:t.text,events:{mouseover:function(t){try{this.setStyles(s.css.gadgetToolNodeOver)}catch(t){this.setStyles(s.css.gadgetToolNodeOverCSS2)}},mouseout:function(t){try{this.setStyles(s.css.gadgetToolNode)}catch(t){}},mousedown:function(t){try{this.setStyles(s.css.gadgetToolNodeDown)}catch(t){this.setStyles(s.css.gadgetToolNodeDownCSS2)}},mouseup:function(t){try{this.setStyles(s.css.gadgetToolNodeUp)}catch(t){this.setStyles(s.css.gadgetToolNodeUpCSS2)}}}}).inject(this.gadgetContentNode);i.store("gadgetClass",t.className);i.store("gadgetType",e);i.store("gadgetIcon",t.icon);var o=new Element("div",{styles:this.css.gadgetToolIconNode}).inject(i);o.setStyle("background-image","url("+this.path+this.options.style+"/gadget/"+t.icon+")");var n=new Element("div",{styles:this.css.gadgetToolTextNode,text:t.text});n.inject(i);i.addEvent("mousedown",function(t){var e=this.retrieve("gadgetClass");var i=this.retrieve("gadgetType");var o=this.retrieve("gadgetIcon");s.gadgetCreateActivity(this,i,o,e,t)});this.gadgets.push(i)},gadgetCreateActivity:function(t,e,s,i,o){var n=null;var a=new Element("div",{styles:{width:"30px",height:"30px",opacity:"1",background:"url("+this.path+this.options.style+"/gadget/"+s+") top left no-repeat",postion:"absolute"}}).inject(this.paperNode);var r=a.getSize();var c=o.page.x;var d=o.page.y;a.positionTo(c,d);var h=[this.paperNode];var p=new Drag.Move(a,{droppables:h,onEnter:function(t,e){a.setStyles({opacity:"1",background:"url("+this.path+this.options.style+"/gadget/"+s+") top left no-repeat"})}.bind(this),onLeave:function(t,e){a.setStyles({opacity:"1",background:"url("+this.path+this.options.style+"/gadget/stop.png) top left no-repeat"});if(n)n.destroy();a.dragMove=false}.bind(this),onDrag:function(t){if(a.dragMove){var e=a.getPosition(this.paperNode);var s=e.x-a.dx;var i=e.y-a.dy;n.activityMove(s,i,0,0,t)}}.bind(this),onDrop:function(t,e){}.bind(this),onComplete:function(t){var s=a.getPosition(this.paperNode);n=this.process.createActivity(e,i,{x:s.x,y:s.y});if(n)n.selected();a.destroy()}.bind(this),onCancel:function(t){if(n)n.destroy();a.destroy()}.bind(this)});p.start(o)},loadNodes:function(){this.gadgetAreaNode=new Element("div",{styles:this.css.gadgetAreaNode}).inject(this.node);this.rightContentNode=new Element("div",{styles:this.css.rightContentNode}).inject(this.node);this.toolbarNode=new Element("div",{styles:this.css.toolbarNode}).inject(this.rightContentNode);this.paperAreaNode=new Element("div",{styles:this.css.paperAreaNode}).inject(this.rightContentNode);this.paperNode=new Element("div",{styles:this.css.paperNode}).inject(this.paperAreaNode)},loadToolbar:function(t){this.getProcessToolbarHTML(function(e){var s=e.getElements("span");s.each(function(t,e){var s=t.get("MWFButtonImage");if(s){t.set("MWFButtonImage",this.path+""+this.options.style+"/toolbarIcon/"+s)}}.bind(this));$(e).inject(this.toolbarNode);MWF.require("MWF.widget.Toolbar",function(){this.processToolbar=new MWF.widget.Toolbar(e,{style:"ProcessCategory"},this);this.processToolbar.load();if(t)t()}.bind(this));var i=e.getElement("select");if(i){i.addEvent("change",function(){this.process.setStyle(i.options[i.selectedIndex].value)}.bind(this))}}.bind(this))},getProcessToolbarHTML:function(t){var e=this.path+"processToolbars.html";var s=new Request.HTML({url:e,method:"get",onSuccess:function(e,s,i,o){var n=e[0];if(t)t(n)}.bind(this),onFailure:function(t){this.notice("request processToolbars error: "+t.responseText,"error")}.bind(this)});s.send()},resizePaper:function(){var t=this.node.getSize();var e=this.processToolbar.node.getSize();var s=t.y-e.y;var i=this.paperNode.getStyle("margin-top").toFloat();var o=this.paperNode.getStyle("margin-bottom").toFloat();s=s-i-o;this.paperNode.setStyle("height",""+s+"px");if(this.paper)this.paper.setSize("100%","100%");if(this.process){if(this.process.panel){this.process.panel.modulePanel.container.position({relativeTo:this.paperNode,position:"upperRight",edge:"upperRight"});var n=this.process.panel.modulePanel.container.getSize();var a=this.paperNode.getSize();if(a.y<n.y){var r=this.paperNode.getSize().y.toFloat()-6;this.process.panel.modulePanel.container.setStyle("height",""+r+"px");this.process.panel.modulePanel.content.setStyle("height",this.process.panel.modulePanel.getContentHeight());this.process.panel.setPanelSize()}if(a.x<n.x){this.process.panel.modulePanel.container.setStyle("width",""+a.x+"px")}if(this.process.panel.propertyPanel){this.process.panel.propertyPanel.container.position({relativeTo:this.paperNode,position:"bottomRight",edge:"bottomRight"});var n=this.process.panel.propertyPanel.container.getSize();var a=this.paperNode.getSize();if(a.y<n.y){var r=this.paperNode.getSize().y.toFloat()-6;this.process.panel.propertyPanel.container.setStyle("height",""+r+"px");this.process.panel.propertyPanel.content.setStyle("height",this.process.panel.propertyPanel.getContentHeight());this.process.panel.setPropertyPanelSize()}if(a.x<n.x){this.process.panel.propertyPanel.container.setStyle("width",""+a.x+"px")}}}}},loadPaper:function(){MWFRaphael.load(function(){this.paperInNode=new Element("div",{styles:this.css.paperInNode}).inject(this.paperNode);this.paper=Raphael(this.paperInNode,"100%","99%");this.paper.container=this.paperNode;MWF.xDesktop.requireApp("process.ProcessDesigner","Process",function(){this.process=new MWF.APPPD.Process(this.paper,this.processData,this,{style:"flat"});this.process.load()}.bind(this))}.bind(this))},setToolBardisabled:function(t){switch(t){case"default":break;case"createRoute":break;case"decision":break;default:}},recordStatus:function(){return{id:this.options.id}},saveProcess:function(){if(!this.process.process.name){this.notice(this.lp.notice.no_name,"error");return false}this.process.save(function(){var t=this.process.process.name;this.setTitle(this.options.appTitle+"-"+t);this.options.desktopReload=true;this.options.id=this.process.process.id}.bind(this))},saveNewProcess:function(t,e){},createManualActivity:function(){this.process.createManualActivity()},createConditionActivity:function(){this.process.createConditionActivity()},createAutoActivity:function(){this.process.createAutoActivity()},createSplitActivity:function(){this.process.createSplitActivity()},createMergeActivity:function(){this.process.createMergeActivity()},createEmbedActivity:function(){this.process.createEmbedActivity()},createInvokesActivity:function(){this.process.createInvokesActivity()},createBeginActivity:function(){this.process.createBeginActivity()},createEndActivity:function(){this.process.createEndActivity()},createRoute:function(){this.process.createRoute()},processExplode:function(){this.process.explode()},onPostClose:function(){if(this.process){this.process.activitys.each(function(t){t.routes.each(function(t){MWF.release(t)});MWF.release(t)});MWF.release(this.process)}}});