neyric/wireit

View on GitHub
build/terminal-dragedit/terminal-dragedit-min.js

Summary

Maintainability
A
0 mins
Test Coverage
YUI.add("terminal-dragedit",function(e,t){e.TerminalDragEdit=function(t){e.after(this._renderUIdragedit,this,"renderUI"),e.after(this._bindUIdragedit,this,"bindUI");var n={color:{value:"rgb(173,216,230)"},weight:{value:4},opacity:{value:1},dashstyle:{value:"none"},fill:{value:"rgb(255,255,255)"},"editwire-class":{value:e.BezierWire}};this.addAttrs(n,t)},e.TerminalDragEdit.ATTRS={editable:{value:!0},graphic:{value:null},alwaysSrc:{value:!1},ddGroupsDrag:{value:["terminal"]},ddGroupsDrop:{value:["terminal"]}},e.TerminalDragEdit.prototype={_renderUIdragedit:function(){if(this.get("editable")){this.get("contentBox").addClass(this.getClassName("editable"));var t=(new e.DD.Drag({node:this.get("contentBox"),groups:this.get("ddGroupsDrag")})).plug(e.Plugin.DDProxy,{cloneNode:!0,moveOnEnd:!1});this.drag=t;var n=new e.DD.Drop({node:this.get("contentBox"),groups:this.get("ddGroupsDrop")});n.terminal=this,this.drop=n}},_bindUIdragedit:function(){var e=this.drag;e&&(e.on("drag:start",this._onDragEditStart,this),e.on("drag:drag",this._onDragEditDrag,this),e.on("drag:drophit",this._onDragEditDrophit,this),e.on("drag:dropmiss",this._onDragEditDropmiss,this),e.on("drag:enter",this._onDragEditEnter,this),e.on("drag:exit",this._onDragEditExit,this))},_onDragEditStart:function(e){this._editwireX=e.pageX,this._editwireY=e.pageY;var t=this.get("dir"),n=this;this.get("graphic")||this.set("graphic",this.get("root").graphic);var r=this.get("parent"),i=r.get("parent"),s=i.get("boundingBox").getXY();this.drag.wire=this.get("graphic").addShape({type:this.get("editwire-class"),stroke:{weight:this.get("weight"),color:this.get("color"),opacity:this.get("opacity"),dashstyle:this.get("dashstyle"),fill:this.get("fill")},src:{getXY:function(){return[e.pageX-s[0]+7.5,e.pageY-s[1]+7.5]}},tgt:{getXY:function(){return[n._magnetX||n._editwireX-s[0]+7.5,n._magnetY||n._editwireY-s[1]+7.5]}},srcDir:t,tgtDir:[-t[0],-t[1]]})},_onDragEditDrag:function(e){this._editwireX=e.pageX,this._editwireY=e.pageY,this.drag.wire._draw()},_onDragEditDrophit:function(e){this.isValidWireTerminal(e.drop.terminal)?(e.drop.terminal.alwaysSrc?(this.drag.wire.set("src",e.drop.terminal),this.drag.wire.set("tgt",this)):(this.drag.wire.set("src",this),this.drag.wire.set("tgt",e.drop.terminal)),this.drag.wire=null,this._magnetX=null,this._magnetY=null):this.drag.wire.destroy()},_onDragEditDropmiss:function(e){this.drag.wire.destroy(),this.drag.wire=null},_onDragEditEnter:function(e){var t=e.drop.terminal.getXY();this._magnetX=t[0],this._magnetY=t[1],this.drag.wire.set("tgtDir",e.drop.terminal.get("dir"))},_onDragEditExit:function(e){this._magnetX=null,this._magnetY=null},isValidWireTerminal:function(e){return this.get("parent")!==undefined&&this.get("parent").get("preventSelfWiring")&&e._parentNode._node==this._parentNode._node?!1:!0},destructor:function(){this.drag&&this.drag.destroy(),this.drop&&this.drop.destroy()}}},"@VERSION@",{requires:["bezier-wire","dd-drop","dd-drag","dd-proxy"]});