| 1 |
- MWF.xApplication.ScriptEditor.block=MWF.xApplication.ScriptEditor.block||{};MWF.xApplication.ScriptEditor.block.$Block=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default"},_loadPath:function(){this.path="/x_component_ScriptEditor/block/$Block/";this.cssPath="/x_component_ScriptEditor/block/$Block/"+this.options.style+"/css.wcss"},initialize:function(t,e,i){this.setOptions(i);this._loadPath();this._loadCss();this.data=t;this.type=e;this.editor=this.type.editor;this.areaNode=this.type.blocksNode;this.scriptArea=this.editor.scriptArea;this.scriptAreaNode=this.editor.scriptArea.blockArea;this.load()},init:function(){this.before=true;this.after=true;this.around=false;this.blockName=""},load:function(){this.init();this.createBlock();this.setEvent()},setEvent:function(){var t=new Drag(this.node,{snap:"1",onStart:function(e,i){this.dragScript(i);t.stop()}.bind(this)})},createDragNode:function(){var t=this.node.clone();t.setStyle("position","absolute").inject(this.scriptAreaNode);t.position({relativeTo:this.node,position:"upperLeft",edge:"upperLeft"});var e=this.node.getElements("canvas");var i=t.getElements("canvas");if(e.length){e.each(function(t,e){var s=i[e];var o=t.retrieve("draw");if(o)this[o](s)}.bind(this))}return t},dragScript:function(t){var e=this.createDragNode();var i=[this.scriptAreaNode].concat(this.scriptArea.statementNodes);var s=new Drag.Move(e,{droppables:i,onStart:function(t){this.dragStart(t)}.bind(this),onEnter:function(t,e){}.bind(this),onLeave:function(t,e){}.bind(this),onDrag:function(){var t=e.retrieve("statement");this.scriptArea.checkBlockDrag(e,t,t.links)}.bind(this),onDrop:function(t,e){}.bind(this),onComplete:function(t,i){this.dragComplete(i,e,s)}.bind(this),onCancel:function(){var t=e.retrieve("statement");if(t){t.destroy()}else{e.destroy()}}.bind(this)});s.start(t)},dragStart:function(t){t.setStyle("z-index",MWF.SES.zIndexPool.apply());var e=this.scriptArea.createStatement(t,this);t.store("statement",e)},dragComplete:function(t,e,i){var s=e.retrieve("statement");if(this.scriptAreaNode.isOutside(t)){if(s){s.destroy()}else{e.destroy()}}else{var o=e.getPosition(e.getOffsetParent());var n=this.scriptAreaNode.getPosition(e.getOffsetParent());if(o.x-n.x<10){var c=0+n.x+10;e.setStyle("left",""+c+"px")}if(o.y-n.y<10){var a=0+n.y+10;e.setStyle("top",""+a+"px")}if(s){this.scriptArea.buildStatement(s)}else{s=this.scriptArea.createStatement(e,this);e.store("statement",s);this.scriptArea.buildStatement(s)}i.detach()}}});MWF.xApplication.ScriptEditor.block.$Block.$Operation=new Class({Extends:MWF.xApplication.ScriptEditor.block.$Block,init:function(){var t=Object.clone(this.css.block);this.blockCss=Object.merge(t,this.css.operation);this.blockName=this.data.name},createContent:function(){this.node=new Element("div",{styles:this.blockCss.node}).inject(this.areaNode);this.contentNode=new Element("div",{styles:this.blockCss.contentNode}).inject(this.node);this.contentNode.setStyle("background",this.type.data.color)},loadContent:function(){this.table=new Element("table",{styles:this.blockCss.contentTable,border:"0",cellpadding:"0",cellspacing:"0"});var t=new Element("tr").inject(this.table);this.data.contents.each(function(e){var i=new Element("td",{styles:this.blockCss.contentTdNode}).inject(t);if(typeOf(e)==="string"){i.set("text",e)}else if(typeOf(e)==="object"){i.set("class","MWFBlockContent_"+e.type);this.createContentNode(e).inject(i)}}.bind(this));this.table.inject(this.contentNode)},createBlock:function(){this.createContent();this.loadContent()},createContentNode:function(t){if(t.type==="input"){return this.createInputNode(t)}if(t.type==="select"){return this.createSelectNode(t)}if(t.type==="mortise"){return this.createMortiseNode(t)}if(t.type==="inputMortise"){return this.createInputMortiseNode(t)}},createInputNode:function(t){var e=t.default;var i=MWF.getTextSize(e,{"font-size":"12px"}).x;var s=new Element("input",{styles:this.blockCss.inputNode,value:e,readonly:true});s.setStyle("width",""+i+"px");return s},createSelectNode:function(t){var e=new Element("select",{styles:this.blockCss.selectNode,class:"script"});t.options.each(function(i){var s=i.split("|");new Element("option",{value:s[1],text:s[0],selected:t.default===s[1]}).inject(e)}.bind(this));e.setStyle("background",this.type.data.mortiseColor);return e},createMortiseNode:function(){var t=new Element("div",{styles:this.blockCss.mortiseNode});t.setStyle("background",this.type.data.mortiseColor);return t},createInputMortiseNode:function(t){var e=t.default;var i=MWF.getTextSize(e,{"font-size":"12px"}).x;var s=new Element("input",{styles:this.blockCss.inputMortiseNode,value:e,readonly:true});s.setStyle("width",""+i+"px");return s}});MWF.xApplication.ScriptEditor.block.$Block.$Expression=new Class({Extends:MWF.xApplication.ScriptEditor.block.$Block.$Operation,init:function(){var t=Object.clone(this.css.block);this.blockCss=Object.merge(t,this.css.expression);this.blockName=this.data.name}});MWF.xApplication.ScriptEditor.block.$Block.$Enumerate=new Class({Extends:MWF.xApplication.ScriptEditor.block.$Block.$Operation,init:function(){var t=Object.clone(this.css.block);this.blockCss=Object.merge(t,this.css.enumerate);this.blockName=this.data.name}});MWF.xApplication.ScriptEditor.block.$Block.$Top=new Class({Extends:MWF.xApplication.ScriptEditor.block.$Block.$Operation,init:function(){var t=Object.clone(this.css.block);this.blockCss=Object.merge(t,this.css.top);this.blockName=this.data.name},createContent:function(){this.node=new Element("div",{styles:this.blockCss.node}).inject(this.areaNode);this.topNode=new Element("div",{styles:this.blockCss.topNode}).inject(this.node);this.contentNode=new Element("div",{styles:this.blockCss.contentNode}).inject(this.node);this.contentNode.setStyle("background",this.type.data.color);this.topNode.setStyle("background",this.type.data.color)}});MWF.xApplication.ScriptEditor.block.$Block.$Around=new Class({Extends:MWF.xApplication.ScriptEditor.block.$Block.$Operation,init:function(){var t=Object.clone(this.css.block);this.blockCss=Object.merge(t,this.css.around);this.blockName=this.data.name},createBlock:function(){this.node=new Element("div",{styles:this.blockCss.node}).inject(this.areaNode);this.createBeginNode();this.createMiddleNode();this.createEndNode()},createBeginNode:function(){this.beginNode=new Element("div",{styles:this.blockCss.beginNode}).inject(this.node);this.beginContentNode=new Element("div",{styles:this.blockCss.beginContentNode}).inject(this.beginNode);this.beginContentNode.setStyle("background",this.type.data.color);this.contentNode=this.beginContentNode;this.loadContent()},createMiddleNode:function(){this.middleNode=new Element("div",{styles:this.blockCss.middleNode}).inject(this.node);var t="<table border='0' cellspacing='0' cellpadding='0'><tr><td valign='top'></td><td valign='top'></td></tr></table>";this.middleNode.set("html",t);this.tableNode=this.middleNode.getElement("table").setStyles(this.blockCss.middleTableNode);var e=this.tableNode.getElements("td");this.middleLeftNode=e[0].setStyles(this.blockCss.middleLeftNode);this.middleRightNode=e[1].setStyles(this.blockCss.middleRightNode);this.subContentNode=new Element("div",{styles:this.blockCss.subContentNode}).inject(this.middleRightNode);this.middleLeftNode.setStyle("background",this.type.data.color)},createEndNode:function(){this.endNode=new Element("div",{styles:this.blockCss.endNode}).inject(this.node);this.endContentNode=new Element("div",{styles:this.blockCss.endContentNode}).inject(this.endNode);this.endContentNode.setStyle("background",this.type.data.color)}});MWF.xApplication.ScriptEditor.block.$Block.$EnumerateAround=new Class({Extends:MWF.xApplication.ScriptEditor.block.$Block.$Around,init:function(){var t=Object.clone(this.css.block);t=Object.merge(t,this.css.around);this.blockCss=Object.merge(t,this.css.enumerateAround);this.blockName=this.data.name}});
|