$Statement.min.js 13 KB

1
  1. MWF.xApplication.ScriptEditor.statement=MWF.xApplication.ScriptEditor.statement||{};MWF.xApplication.ScriptEditor.statement.$Statement=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default"},_loadPath:function(){this.path="/x_component_ScriptEditor/statement/$Statement/";this.cssPath="/x_component_ScriptEditor/statement/$Statement/"+this.options.style+"/css.wcss"},initialize:function(t,e,i,n){this.setOptions(n);this._loadPath();this._loadCss();this.node=t;this.area=i;this.block=e;this.editor=this.area.editor;this.areaNode=this.area.blockArea;this.subStatements=[];this.links=[];this.mortises=[];this.inputs=[];this.selectors=[];this.mortises=[];this.init()},init:function(){this.statementType="operation";this.parseNodes()},reBuild:function(){if(this.area.currentLink){this.linkTo(this.area.currentLink);this.setPosition(this.area.currentLink)}else{if(this.topLink){this.setPosition({link:this.topLink,toLink:this.topLink.toLink})}}},buildStatement:function(){},load:function(){this.buildStatement();if(!this.checkAvailable())return false;this.node.setStyles(this.css.node);if(this.area.currentLink)this.linkTo(this.area.currentLink);if(this.area.currentLink)this.setPosition(this.area.currentLink);this.reportLinks();var t=new Drag(this.node,{snap:"1",stopPropagation:true,onStart:function(t,e){this.readyDrag();this.setDrag(e)}.bind(this)});this.area.currentLink=null;this.area.setAreaSize()},checkAvailable:function(){if(this.topLink){if(!this.area.currentLink){this.destroy();return false}}else{this.area.beginStatements.push(this)}return true},setDrag:function(t){this.drag=new Drag.Move(this.node,{stopPropagation:true,droppables:[this.areaNode],onStart:function(t){this.dragStart(t)}.bind(this),onEnter:function(t,e){}.bind(this),onLeave:function(t,e){}.bind(this),onDrag:function(t){var e=this.getConnectedLinks();this.area.checkBlockDrag(this.node,this,e)}.bind(this),onDrop:function(t,e){}.bind(this),onComplete:function(t,e){this.dragComplete(e,this.node,this.drag);if(this.area)this.area.setAreaSize()}.bind(this),onCancel:function(t){this.area.currentLink=null;this.area.currentMortise=null;this.reBuild()}.bind(this)});this.drag.start(t);t.stopPropagation()},readyDrag:function(){var t=this.node.getPosition(this.areaNode);this.node.inject(this.areaNode);this.node.setStyles({"z-index":MWF.SES.zIndexPool.apply(),position:"absolute",left:""+t.x+"px",top:""+t.y+"px"})},getConnectedLinks:function(){var t=this.links;if(this.centerLink){if(this.centerLink.toLink){t=t.concat(this.centerLink.toLink.statement.getConnectedLinks())}}if(this.bottomLink){if(this.bottomLink.toLink){t=t.concat(this.bottomLink.toLink.statement.getConnectedLinks())}}return t},dragStart:function(t){},dragComplete:function(t,e,i){var n=e.retrieve("statement");if(!this.editor.moduleAreaNode.isOutside(t)){this.destroy()}else{debugger;var s=e.getPosition(e.getOffsetParent());var o=this.areaNode.getPosition(this.node.getOffsetParent());if(s.x-o.x<10){var a=0+o.x+10;e.setStyle("left",""+a+"px")}if(s.y-o.y<10){var d=0+o.y+10;e.setStyle("top",""+d+"px")}this.reBuild()}},linkTo:function(t){if(t.linkType==="up-down"){t.toLink.linkDown(t.link)}if(t.linkType==="down-up"){t.toLink.linkUp(t.link)}if(t.linkType==="up-middle"){t.toLink.linkMiddle(t.link)}if(t.linkType==="middle-up"){t.toLink.linkUpAround(t.link)}},setPosition:function(t){this.node.inject(t.toLink.node,"top");if(t.link.statement.centerLink){if(t.link.statement.centerLink.toLink){t.link.statement.centerLink.toLink.statement.node.inject(t.link.statement.centerLink.node,"top")}}var e=t.link.statement.bottomLink;while(e&&e.toLink){e.toLink.statement.node.inject(e.node,"top");e=e.toLink.statement.bottomLink}if(t.link.statement.bottomLink){if(t.link.statement.bottomLink.toLink){t.link.statement.bottomLink.toLink.statement.node.inject(t.link.statement.bottomLink.node,"top")}}this.node.setStyles({position:"static",top:"auto",left:"auto"});t.toLink.statement.notReadyLink();t.link.statement.notReadyLinkTo()},readyLink:function(t){if(t.toLink.type==="up")this.readyLinkNode=new Element("div",{styles:this.css.readyLinkNode}).inject(t.toLink.node,"bottom");if(t.toLink.type==="middle")this.readyLinkNode=new Element("div",{styles:this.css.readyLinkNode}).inject(t.toLink.node,"top");if(t.toLink.type==="down")this.readyLinkNode=new Element("div",{styles:this.css.readyLinkNode}).inject(t.toLink.node,"top")},notReadyLink:function(t){if(this.readyLinkNode)this.readyLinkNode.destroy()},readyLinkTo:function(t){if(t.link.type==="up")this.readyLinkToNode=new Element("div",{styles:this.css.readyLinkToNode}).inject(t.link.node,"bottom");if(t.link.type==="middle")this.readyLinkToNode=new Element("div",{styles:this.css.readyLinkToNode}).inject(t.link.node,"top");if(t.link.type==="down")this.readyLinkToNode=new Element("div",{styles:this.css.readyLinkToNode}).inject(t.link.node,"top")},notReadyLinkTo:function(t){if(this.readyLinkToNode)this.readyLinkToNode.destroy()},normal:function(){if(this.tableNode){this.tableNode.setStyle("height","auto")}},destroy:function(){if(this.topLink){if(this.topLink.toLink){this.topLink.toLink.toLink=null}}if(this.centerLink){if(this.centerLink.toLink){this.centerLink.toLink.statement.destroy()}}if(this.bottomLink){if(this.bottomLink.toLink){this.bottomLink.toLink.statement.destroy()}}this.links.each(function(t){this.area.links.erase(t)}.bind(this));this.mortises.each(function(t){this.area.mortises.erase(t)}.bind(this));this.area.statementNodes.erase(this.node);this.area.statements.erase(this);this.area.clearCurrentLink();this.node.destroy();if(this.area)this.area.setAreaSize();MWF.release(this)},setLinkStyle:function(){}});MWF.xApplication.ScriptEditor.statement.$Statement.$Operation=new Class({Extends:MWF.xApplication.ScriptEditor.statement.$Statement,parseNodes:function(){this.contentNode=this.node.getFirst();this.table=this.contentNode.getElement("table");this.createLinks();this.loadContents()},createLinks:function(){this.downLinkStatementNode=new Element("div",{styles:this.css.linkStatementNode_down}).inject(this.node);this.upLinkStatementNode=new Element("div",{styles:this.css.linkStatementNode_up}).inject(this.node,"top");this.downLink=new MWF.xApplication.ScriptEditor.statement.Link(this,"down",this.downLinkStatementNode);this.upLink=new MWF.xApplication.ScriptEditor.statement.Link(this,"up",this.upLinkStatementNode);this.links.push(this.upLink);this.links.push(this.downLink);this.topLink=this.upLink;this.bottomLink=this.downLink},loadContents:function(){this.loadInputs();this.loadSelectors();this.loadMortises();this.loadInputMortises()},loadInputs:function(){var t=this.node.getElements(".MWFBlockContent_input");t.each(function(t){var e=t.getElement("input");e.set("readonly",false);e.setStyle("max-width","none");e.addEvents({mousedown:function(t){t.stopPropagation()},keyup:function(t){var e=MWF.getTextSize(this.get("value")).x;this.setStyle("width",""+e+"px");t.stopPropagation()}});this.inputs.push(t.getFirst())}.bind(this))},loadSelectors:function(){var t=this.node.getElements(".MWFBlockContent_select");t.each(function(t){t.getFirst().addEvents({mousedown:function(t){t.stopPropagation()}.bind(this)});this.selectors.push(t.getFirst())}.bind(this))},loadMortises:function(){var t=this.node.getElements(".MWFBlockContent_mortise");t.each(function(t){var e=this.block.data.contents[t.cellIndex];var i=new MWF.xApplication.ScriptEditor.statement.Mortise(this,t,e.tenonTypes,t.getFirst());this.mortises.push(i);this.area.mortises.push(i)}.bind(this))},loadInputMortises:function(){var t=this.node.getElements(".MWFBlockContent_inputMortise");t.each(function(t){var e=t.getElement("input");e.set("readonly",false);e.setStyle("max-width","none");e.addEvents({mousedown:function(t){t.stopPropagation()},keyup:function(t){var e=MWF.getTextSize(this.get("value")).x;this.setStyle("width",""+e+"px");t.stopPropagation()}});var i=this.block.data.contents[t.cellIndex];var n=new MWF.xApplication.ScriptEditor.statement.Mortise(this,t,i.tenonTypes,t.getFirst());this.mortises.push(n);this.area.mortises.push(n)}.bind(this))},buildStatement:function(){},reportLinks:function(){this.area.links.include(this.downLink.rePosition());this.area.links.include(this.upLink.rePosition())}});MWF.xApplication.ScriptEditor.statement.$Statement.$Expression=new Class({Extends:MWF.xApplication.ScriptEditor.statement.$Statement.$Operation,createLinks:function(){this.tenon=this.node},reBuild:function(){debugger;if(this.area.currentMortise){this.tenonTo(this.area.currentMortise);this.setPosition(this.area.currentMortise)}else{if(this.toMortise){this.tenonTo(this.toMortise);this.setPosition(this.toMortise)}else{this.destroy()}}},load:function(){this.buildStatement();if(!this.checkAvailable())return false;this.node.setStyles(this.css.node);if(this.area.currentMortise){this.tenonTo(this.area.currentMortise);this.setPosition(this.area.currentMortise)}this.node.addEvent("mousedown",function(t){this.readyDrag();this.setDrag(t);t.stopPropagation()}.bind(this));this.area.currentMortise=null},checkAvailable:function(){debugger;if(!this.area.currentMortise){this.destroy();return false}return true},tenonTo:function(t){if(this.toMortise){this.toMortise.tenonStatement=null}t.tenonStatement=this;this.toMortise=t},setPosition:function(t){t.unshine();t.tenon()},readyDrag:function(){this.toMortise.split()}});MWF.xApplication.ScriptEditor.statement.$Statement.$Enumerate=new Class({Extends:MWF.xApplication.ScriptEditor.statement.$Statement.$Operation});MWF.xApplication.ScriptEditor.statement.$Statement.$Top=new Class({Extends:MWF.xApplication.ScriptEditor.statement.$Statement.$Operation,parseNodes:function(){var t=this.node.getElements("div");this.topNode=t[0];this.contentNode=t[1];this.table=this.contentNode.getElement("table");this.createLinks();this.loadContents()},createLinks:function(){this.linkStatementNode=new Element("div",{styles:this.css.linkStatementNode_down}).inject(this.node);this.link=new MWF.xApplication.ScriptEditor.statement.Link(this,"down",this.linkStatementNode);this.links.push(this.link);this.topLink=null;this.bottomLink=this.link},reportLinks:function(){this.area.links.include(this.link.rePosition())},readyLink:function(t){this.readyLinkNode=new Element("div",{styles:this.css.readyLinkNode}).inject(this.linkStatementNode,"top")},readyLinkTo:function(t){this.readyLinkToNode=new Element("div",{styles:this.css.readyLinkToNode}).inject(this.linkStatementNode,"top")}});MWF.xApplication.ScriptEditor.statement.$Statement.$Around=new Class({Extends:MWF.xApplication.ScriptEditor.statement.$Statement.$Operation,parseNodes:function(){this.beginNode=this.node.getFirst();this.beginContentNode=this.beginNode.getFirst();this.table=this.beginContentNode.getElement("table");this.contentNode=this.beginContentNode;this.middleNode=this.beginNode.getNext();this.tableNode=this.middleNode.getElement("table");var t=this.tableNode.getElements("td");this.middleLeftNode=t[0];this.middleRightNode=t[1];this.subContentNode=this.middleRightNode.getFirst();this.endNode=this.middleNode.getNext();this.endContentNode=this.endNode.getFirst();this.conditionNode=this.beginContentNode.getFirst().getNext();this.createLinks();this.loadContents()},createLinks:function(){this.beginUplinkStatementNode=new Element("div",{styles:this.css.linkStatementNode_up}).inject(this.beginNode,"before");this.middlelinkStatementNode=new Element("div",{styles:this.css.linkStatementNode_down}).inject(this.subContentNode);this.endDownlinkStatementNode=new Element("div",{styles:this.css.linkStatementNode_down}).inject(this.endNode,"after");this.upLink=new MWF.xApplication.ScriptEditor.statement.Link(this,"up",this.beginUplinkStatementNode);this.middleLink=new MWF.xApplication.ScriptEditor.statement.Link(this,"middle",this.middlelinkStatementNode);this.downLink=new MWF.xApplication.ScriptEditor.statement.Link(this,"down",this.endDownlinkStatementNode);this.links.push(this.upLink);this.links.push(this.middleLink);this.links.push(this.downLink);this.topLink=this.upLink;this.centerLink=this.middleLink;this.bottomLink=this.downLink},reportLinks:function(){this.area.links.include(this.upLink.rePosition());this.area.links.include(this.middleLink.rePosition());this.area.links.include(this.downLink.rePosition())},readyLink:function(t){if(t.linkType==="up-down"||t.linkType==="up-middle"){this.readyLinkNode=new Element("div",{styles:this.css.readyLinkNode}).inject(t.toLink.node,"top")}if(t.linkType==="down-up"||t.linkType==="middle-up"){this.readyLinkNode=new Element("div",{styles:this.css.readyLinkNode}).inject(t.toLink.node,"bottom")}},readyLinkTo:function(t){if(t.linkType==="up-down"||t.linkType==="up-middle"){this.readyLinkToNode=new Element("div",{styles:this.css.readyLinkToNode}).inject(t.link.node,"bottom");if(t.link.statement.centerLink&&!t.link.statement.centerLink.toLink){if(t.toLink.toLink){if(t.toLink.toLink.statement!==this){var e=t.toLink.toLink.statement.node.getSize().y;this.tableNode.setStyle("height",""+e+"px")}}}}},notReadyLinkTo:function(t){if(this.readyLinkToNode)this.readyLinkToNode.destroy();if(t){if(t.link.type==="middle"){this.tableNode.setStyle("height","auto")}}else{this.tableNode.setStyle("height","auto")}},getStatementGroupHeight:function(t){var e=t[0];var i=t[t.length-1];var n=e.node.getPosition(this.areaNode);var s=i.node.getPosition(this.areaNode);var o=i.node.getSize();return s.y+o.y-n.y}});MWF.xApplication.ScriptEditor.statement.$Statement.$EnumerateAround=new Class({Extends:MWF.xApplication.ScriptEditor.statement.$Statement.$Around});