diff --git a/build/aui-diagram-builder/aui-diagram-builder-debug.js b/build/aui-diagram-builder/aui-diagram-builder-debug.js index a491068dfce..da4154a0418 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-debug.js @@ -1045,9 +1045,7 @@ var DiagramBuilder = A.Component.create({ initializer: function() { var instance = this; - instance.after({ - render: instance.syncConnectionsUI - }); + var canvas = instance.get(CANVAS); instance.on({ cancel: instance._onCancel, @@ -1064,6 +1062,8 @@ var DiagramBuilder = A.Component.create({ } }); + canvas.on(MOUSEENTER, A.bind(instance._onCanvasMouseEnter, instance)); + instance.handlerKeyDown = A.getDoc().on(KEYDOWN, A.bind(instance._afterKeyEvent, instance)); instance.dropContainer.delegate(CLICK, A.bind(instance._onNodeClick, instance), _DOT+CSS_DIAGRAM_NODE); @@ -1086,6 +1086,8 @@ var DiagramBuilder = A.Component.create({ instance._setupFieldsDrag(); + instance.syncConnectionsUI(); + instance.connector = instance.get(CONNECTOR); }, @@ -1429,6 +1431,12 @@ var DiagramBuilder = A.Component.create({ instance.closeEditProperties(); }, + _onCanvasMouseEnter: function() { + var instance = this; + + instance.syncUI(); + }, + _onDeleteKey: function(event) { var instance = this; diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js index 38be84ac85c..25a645b7475 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-debug.js @@ -247,9 +247,7 @@ var DiagramBuilder = A.Component.create({ initializer: function() { var instance = this; - instance.after({ - render: instance.syncConnectionsUI - }); + var canvas = instance.get(CANVAS); instance.on({ cancel: instance._onCancel, @@ -266,6 +264,8 @@ var DiagramBuilder = A.Component.create({ } }); + canvas.on(MOUSEENTER, A.bind(instance._onCanvasMouseEnter, instance)); + instance.handlerKeyDown = A.getDoc().on(KEYDOWN, A.bind(instance._afterKeyEvent, instance)); instance.dropContainer.delegate(CLICK, A.bind(instance._onNodeClick, instance), _DOT+CSS_DIAGRAM_NODE); @@ -288,6 +288,8 @@ var DiagramBuilder = A.Component.create({ instance._setupFieldsDrag(); + instance.syncConnectionsUI(); + instance.connector = instance.get(CONNECTOR); }, @@ -631,6 +633,12 @@ var DiagramBuilder = A.Component.create({ instance.closeEditProperties(); }, + _onCanvasMouseEnter: function() { + var instance = this; + + instance.syncUI(); + }, + _onDeleteKey: function(event) { var instance = this; diff --git a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js index 9242f4c5e51..f5c99f9720e 100644 --- a/build/aui-diagram-builder/aui-diagram-builder-impl-min.js +++ b/build/aui-diagram-builder/aui-diagram-builder-impl-min.js @@ -1,5 +1,5 @@ -AUI.add("aui-diagram-builder-impl",function(aC){var ar=aC.Lang,d=ar.isArray,a1=ar.isBoolean,O=ar.isObject,a5=ar.isString,ax=aC.WidgetStdMod,bf=aC.Array,ap="activeElement",ac="availableField",af="availableFields",F="backspace",an="boolean",z="boundary",t="boundingBox",bb="builder",aw="cancel",ay="canvas",aR="click",a6="closeEvent",L="closeMessage",a8="condition",T="connector",m="connectors",aA="content",W="controls",aO="controlsToolbar",U="createDocumentFragment",aM="data",ah="delete",aK="deleteConnectorsMessage",r="deleteNodesMessage",aU="description",M="diagram",az="diagram-builder",aG="diagramNode",a9="diagram-node-manager",H="diagram-node",aY="dragNode",ae="dragging",I="editEvent",R="editMessage",X="editing",aT="end",a="esc",a0="field",u="fields",aE="fieldsDragConfig",aB="fork",al="graphic",aZ="height",aI="highlightBoundaryStroke",S="highlightDropZones",c="highlighted",aQ="id",w="join",Z="keydown",aD="label",C="lock",v="mouseenter",ao="mouseleave",q="name",s="node",aJ="p1",aH="p2",f="parentNode",o="pencil",aN="radius",au="records",n="recordset",k="region",bc="rendered",Q="required",a4="selected",aX="shape",ag="shapeBoundary",j="shapeInvite",P="showSuggestConnector",Y="source",aL="start",am="state",y="stroke",aW="suggest",aP="suggestConnectorOverlay",l="target",K="task",p="transition",ab="transitions",g="type",at="visible",V="width",E="xy",D="zIndex",be="-",i=".",aa="",h="#",N="_",B=aC.getClassName,x=B(M,bb,W),a3=B(M,bb,a0),aq=B(M,s),b=B(M,s,aA),aS=B(M,s,X),ad=B(M,s,aD),bd=B(M,s,a4),aV=B(M,s,aX,z),e=B(M,s,aW,T),av=function(bi,A){var bh=d(bi)?bi:bi.get(t).getXY();return[bh[0]+A[0],bh[1]+A[1]];},ba=function(bj,bi){var bh=bi[0]-bj[0],A=bi[1]-bj[1];return Math.sqrt(bh*bh+A*A);},ak=function(br,bp){var bn=br.hotPoints,bm=bp.hotPoints,bu=br.get(t).getXY(),bs=bp.get(t).getXY(),bj,bh,bk,bi,bt=Infinity,bl=[[0,0],[0,0]];for(bk=0,bj=bn.length;bk{label}',boundary:null,hotPoints:[[0,0]],CONTROLS_TEMPLATE:'
',SERIALIZABLE_ATTRS:[aU,q,Q,g,V,aZ,D,E],initializer:function(){var A=this;A.after({"dataset:remove":aC.bind(A._afterDataSetRemove,A),render:A._afterRender});A.on({nameChange:A._onNameChange});A.publish({connectDrop:{defaultFn:A.connectDrop},connectEnd:{defaultFn:A.connectEnd},connectMove:{defaultFn:A.connectMove},connectOutTarget:{defaultFn:A.connectOutTarget},connectOverTarget:{defaultFn:A.connectOverTarget},connectStart:{defaultFn:A.connectStart},boundaryMouseEnter:{},boundaryMouseLeave:{}});A.get(t).addClass(aq+be+A.get(g));},destructor:function(){var A=this;A.eachConnector(function(bh,bi,bj){bj.removeTransition(bh.get(p));});A.invite.destroy();A.get(al).destroy();A.get(bb).removeField(A);},addTransition:function(bi){var A=this;var bh=A.get(ab);bi=A.prepareTransition(bi);if(!bh.containsKey(bi.uid)){bi.uid=aC.guid();bh.add(bi.uid,bi);}return bi;},alignTransition:function(bi){var A=this;var bj=aC.DiagramNode.getNodeByName(bi.target);if(bj){var bh=ak(A,bj);bi=aC.merge(bi,{sourceXY:bh[0],targetXY:bh[1]});A.getConnector(bi).setAttrs({p1:av(A,bi.sourceXY),p2:av(bj,bi.targetXY)});}},alignTransitions:function(){var A=this;A.get(ab).each(aC.bind(A.alignTransition,A));},close:function(){var A=this;return A.destroy();},connect:function(bl,bj){var A=this;bl=A.addTransition(bl);var bh=null;var bm=aC.DiagramNode.getNodeByName(bl.target);if(bm){if(!A.isTransitionConnected(bl)){var bi=A.get(bb);var bk=ak(A,bm);aC.mix(bl,{sourceXY:bk[0],targetXY:bk[1]});bh=new aC.Connector(aC.merge({builder:bi,graphic:bi.get(al),transition:bl},bj));A.get(m).add(bl.uid,bh);}}A.alignTransition(bl);return bh;},connectDrop:function(bh){var A=this;A.connectNode(bh.publishedTarget);},connectEnd:function(bk){var A=this;var bj=bk.target;var bh=A.get(bb);var bi=bh.publishedSource;if(!bh.isAbleToConnect()&&bh.get(P)&&bh.connector.get(at)){bh.showSuggestConnetorOverlay();}else{bh.connector.hide();bi.invite.set(at,false);}if(bh.get(S)){bh.get(u).each(function(bl){bl.set(c,false);});}},connectMove:function(bj){var A=this;var bi=A.get(bb);var bk=bj.mouseXY;bi.connector.set(aH,bk);if(bi.publishedTarget){var bh=A.invite;var bl=bh.get(aN)||0;if(!bh.get(at)){bh.set(at,true);}bh.setXY([bk[0]-bl,bk[1]-bl]);}},connectNode:function(bi){var bh=this;var A=bh.boundaryDragDelegate.dd;bh.connect(bh.prepareTransition({sourceXY:aF(A.startXY,bh.get(t)),target:bi.get(q),targetXY:aF(A.mouseXY,bi.get(t))}));},connectOutTarget:function(bi){var A=this;var bh=A.get(bb);bh.publishedTarget=null;bh.publishedSource.invite.set(at,false);},connectOverTarget:function(bi){var A=this;var bh=A.get(bb);if(bh.publishedSource!==A){bh.publishedTarget=A;}},connectStart:function(bj){var A=this;var bh=A.get(bb);var bi=bh.get(ay);bh.connector.show().set(aJ,bj.startXY);if(bh.get(S)){bh.get(u).each(function(bk){bk.set(c,true);});}aC.DiagramNodeManager.fire("publishedSource",{publishedSource:A});},disconnect:function(bh){var A=this;if(A.isTransitionConnected(bh)){A.removeTransition(bh);}},eachConnector:function(bj){var A=this;var bk=[],bh=[].concat(A.get(m).values),bi=bh.length;bf.each(A.get(bb).getSourceNodes(A),function(bl){bl.get(m).each(function(bm){if(A.get(q)===bm.get(p).target){bk.push(bl);bh.push(bm);}});});bf.each(bh,function(bl,bm){bj.call(A,bl,bm,(bm'+''+'
'+"",initializer:function(){var A=this;var aM=A.get(u);A.after({draggableChange:A._afterDraggableChange,idChange:A._afterIdChange,labelChange:A._afterLabelChange});A.labelNode=aM.one(i+ae);A._uiSetDraggable(A.get(r));A._uiSetId(A.get(ar));A._uiSetLabel(A.get(am));},_afterDraggableChange:function(aM){var A=this;A._uiSetDraggable(aM.newVal);},_afterIdChange:function(aM){var A=this;A._uiSetId(aM.newVal);},_afterLabelChange:function(aM){var A=this;A._uiSetLabel(aM.newVal);},_setId:function(A){return ai.AvailableField.buildNodeId(A);},_uiSetDraggable:function(aM){var A=this;A.get(u).toggleClass(l,aM);},_uiSetId:function(aM){var A=this;A.get(u).set(ar,aM);},_uiSetLabel:function(aM){var A=this;A.get(u).attr(an,aM);A.labelNode.setContent(aM);}}});ai.AvailableField=k;var W=function(){};W.ATTRS={fields:{value:[],setter:"_setFields",validator:function(A){return d(A)||M(A);}},maxFields:{value:Infinity,validator:O}};ai.mix(W.prototype,{_setFields:function(aM){var A=this;if(M(aM)){return aM;}else{return A.createFields(aM);}},_updateFields:function(aM){var A=this;A.set(w,aM);},addField:function(aN,aM){var A=this;if(A.get(w).size()',DROP_CONTAINER_TEMPLATE:'
',TOOLBAR_CONTAINER_TEMPLATE:'
',FIELDS_CONTAINER_TEMPLATE:'
    ',CANVAS_TEMPLATE:'
    ',fieldsNode:null,propertyList:null,settingsNode:null,tabView:null,toolbar:null,initializer:function(){var A=this;A.publish({cancel:{defaultFn:A._defCancelFn}});A.after({render:A._afterRender,"recordset:update":A._afterRecordsetUpdate});A.after(A._afterUiSetHeight,A,"_uiSetHeight");A.canvas=A.get(af);A.contentContainer=A.get(e);A.dropContainer=A.get(ab);A.fieldsContainer=A.get(q);A.toolbarContainer=A.get(m);},isAvailableFieldsDrag:function(aN){var A=this;var aM=A.availableFieldsDrag;return(aN===aM.dd);},plotFields:function(){var aM=this;var A=aM.get(w);A.each(function(aN){aM.plotField(aN);});},renderUI:function(){var A=this;A._renderTabs();A._renderCanvas();A._uiSetAvailableFields(A.get(T));},syncUI:function(){var A=this;var aM=A.get(y);A._setupDrop();A._setupAvailableFieldsDrag();aM.addClass(J);},_afterActiveTabChange:function(aN){var A=this;var aM=aN.newVal.get(S);if(A.get(aF)&&(aM===A.settingsNode)){A._renderSettings(); }},_afterRecordsetUpdate:function(aM){var A=this;A._handleSaveEvent();},_afterRender:function(aM){var A=this;A.plotFields();},_afterUiSetHeight:function(aM){var A=this;A.contentContainer.setStyle(aw,O(aM)?aM+A.DEF_UNIT:aM);A.dropContainer.setStyle(aw,O(aM)?aM+A.DEF_UNIT:aM);},_defCancelFn:function(aM){var A=this;A.tabView.selectTab(0);},_handleCancelEvent:function(){var A=this;A.fire(ac);},_handleSaveEvent:function(){var A=this;A.fire(au);},_renderCanvas:function(){var A=this;var aM=A.get(y);var aN=A.canvas;var aO=A.contentContainer;var aP=A.dropContainer;if(!aN.inDoc()){aO.appendChild(aN);}if(!aP.inDoc()){aN.appendChild(aP);}if(aO.inDoc()){aO.get(g).append(aO);}else{aM.appendChild(aO);}},_renderPropertyList:function(){var A=this;if(!A.propertyList){A.propertyList=new ai.PropertyList(A.get(ah)).render(A.settingsNode);A.propertyList.get(v).unselectable();}},_renderSettings:function(){var A=this;A._renderPropertyList();A._renderToolbar();},_renderTabs:function(){var A=this;if(!A.tabView){var aM=new ai.TabView(A.get(K));aM.get(v);A.tabView=aM;A.fieldsNode=aM.getTab(0).get(S);A.settingsNode=aM.getTab(1).get(S);}},_renderToolbar:function(){var A=this;if(!A.toolbar){A.toolbar=new ai.Toolbar(A.get(N)).render(A.settingsNode);}},_setupDrop:function(){var A=this;A.drop=new ai.DD.Drop(A.get(at));},_setupAvailableFieldsDrag:function(){var A=this;A.availableFieldsDrag=new ai.DD.Delegate(A.get(aH));},_setAvailableFields:function(aN){var aM=this;var A=[];aL.each(aN,function(aP,aO){A.push(H(aP)?aP:new ai.AvailableField(aP));});return A;},_setDropConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,groups:[T],node:A.dropContainer},aM||{});},_setAvailableFieldsDragConfig:function(aM){var A=this;return ai.merge({bubbleTargets:A,container:A.get(v),dragConfig:{groups:[T],plugins:[{cfg:{moveOnEnd:false},fn:ai.Plugin.DDProxy}]},nodes:i+l},aM||{});},_setPropertyList:function(aM){var A=this;return ai.merge({bubbleTargets:A,width:250,scroll:{height:400,width:aK}},aM);},_setTabView:function(aP){var aM=this;var aO=aM.get(v);var aQ=aO.one(i+aI);var aN={after:{activeTabChange:ai.bind(aM._afterActiveTabChange,aM)},boundingBox:aO.one(i+av),contentBox:aO.one(i+U),bubbleTargets:aM,contentNode:aO.one(i+aD),cssClass:av,listNode:aQ,render:aM.get(y)};if(!aQ){var A=aM.getStrings();aN.items=[{cssClass:ak,label:A[o]},{cssClass:L,label:A[t]}];}return ai.merge(aN,aP);},_setToolbar:function(aN){var aM=this;var A=aM.getStrings();return ai.merge({activeState:false,bubbleTargets:aM,children:[{handler:ai.bind(aM._handleCancelEvent,aM),label:A[ac]}]},aN);},_uiSetAvailableFields:function(aO){var A=this;var aN=A.fieldsNode;if(aN){var aM=ai.getDoc().invoke(I);aL.each(aO,function(aP){aM.appendChild(aP.get(u));});aN.setContent(A.fieldsContainer.setContent(aM));}},_uiSetFields:function(aM){var A=this;if(A.get(aF)){A.plotFields();}}}});ai.DiagramBuilderBase=aB;},"@VERSION@",{skinnable:true,requires:["aui-tabs","aui-property-list","collection","dd"]});AUI.add("aui-diagram-builder-impl",function(aC){var ar=aC.Lang,d=ar.isArray,a1=ar.isBoolean,O=ar.isObject,a5=ar.isString,ax=aC.WidgetStdMod,bf=aC.Array,ap="activeElement",ac="availableField",af="availableFields",F="backspace",an="boolean",z="boundary",t="boundingBox",bb="builder",aw="cancel",ay="canvas",aR="click",a6="closeEvent",L="closeMessage",a8="condition",T="connector",m="connectors",aA="content",W="controls",aO="controlsToolbar",U="createDocumentFragment",aM="data",ah="delete",aK="deleteConnectorsMessage",r="deleteNodesMessage",aU="description",M="diagram",az="diagram-builder",aG="diagramNode",a9="diagram-node-manager",H="diagram-node",aY="dragNode",ae="dragging",I="editEvent",R="editMessage",X="editing",aT="end",a="esc",a0="field",u="fields",aE="fieldsDragConfig",aB="fork",al="graphic",aZ="height",aI="highlightBoundaryStroke",S="highlightDropZones",c="highlighted",aQ="id",w="join",Z="keydown",aD="label",C="lock",v="mouseenter",ao="mouseleave",q="name",s="node",aJ="p1",aH="p2",f="parentNode",o="pencil",aN="radius",au="records",n="recordset",k="region",bc="rendered",Q="required",a4="selected",aX="shape",ag="shapeBoundary",j="shapeInvite",P="showSuggestConnector",Y="source",aL="start",am="state",y="stroke",aW="suggest",aP="suggestConnectorOverlay",l="target",K="task",p="transition",ab="transitions",g="type",at="visible",V="width",E="xy",D="zIndex",be="-",i=".",aa="",h="#",N="_",B=aC.getClassName,x=B(M,bb,W),a3=B(M,bb,a0),aq=B(M,s),b=B(M,s,aA),aS=B(M,s,X),ad=B(M,s,aD),bd=B(M,s,a4),aV=B(M,s,aX,z),e=B(M,s,aW,T),av=function(bi,A){var bh=d(bi)?bi:bi.get(t).getXY();return[bh[0]+A[0],bh[1]+A[1]];},ba=function(bj,bi){var bh=bi[0]-bj[0],A=bi[1]-bj[1];return Math.sqrt(bh*bh+A*A);},ak=function(br,bp){var bn=br.hotPoints,bm=bp.hotPoints,bu=br.get(t).getXY(),bs=bp.get(t).getXY(),bj,bh,bk,bi,bt=Infinity,bl=[[0,0],[0,0]];for(bk=0,bj=bn.length;bk{label}',boundary:null,hotPoints:[[0,0]],CONTROLS_TEMPLATE:'
    ',SERIALIZABLE_ATTRS:[aU,q,Q,g,V,aZ,D,E],initializer:function(){var A=this;A.after({"dataset:remove":aC.bind(A._afterDataSetRemove,A),render:A._afterRender});A.on({nameChange:A._onNameChange});A.publish({connectDrop:{defaultFn:A.connectDrop},connectEnd:{defaultFn:A.connectEnd},connectMove:{defaultFn:A.connectMove},connectOutTarget:{defaultFn:A.connectOutTarget},connectOverTarget:{defaultFn:A.connectOverTarget},connectStart:{defaultFn:A.connectStart},boundaryMouseEnter:{},boundaryMouseLeave:{}});A.get(t).addClass(aq+be+A.get(g));},destructor:function(){var A=this;A.eachConnector(function(bh,bi,bj){bj.removeTransition(bh.get(p));});A.invite.destroy();A.get(al).destroy();A.get(bb).removeField(A);},addTransition:function(bi){var A=this;var bh=A.get(ab);bi=A.prepareTransition(bi);if(!bh.containsKey(bi.uid)){bi.uid=aC.guid();bh.add(bi.uid,bi);}return bi;},alignTransition:function(bi){var A=this;var bj=aC.DiagramNode.getNodeByName(bi.target);if(bj){var bh=ak(A,bj);bi=aC.merge(bi,{sourceXY:bh[0],targetXY:bh[1]});A.getConnector(bi).setAttrs({p1:av(A,bi.sourceXY),p2:av(bj,bi.targetXY)});}},alignTransitions:function(){var A=this;A.get(ab).each(aC.bind(A.alignTransition,A));},close:function(){var A=this;return A.destroy();},connect:function(bl,bj){var A=this;bl=A.addTransition(bl);var bh=null;var bm=aC.DiagramNode.getNodeByName(bl.target);if(bm){if(!A.isTransitionConnected(bl)){var bi=A.get(bb); -var bk=ak(A,bm);aC.mix(bl,{sourceXY:bk[0],targetXY:bk[1]});bh=new aC.Connector(aC.merge({builder:bi,graphic:bi.get(al),transition:bl},bj));A.get(m).add(bl.uid,bh);}}A.alignTransition(bl);return bh;},connectDrop:function(bh){var A=this;A.connectNode(bh.publishedTarget);},connectEnd:function(bk){var A=this;var bj=bk.target;var bh=A.get(bb);var bi=bh.publishedSource;if(!bh.isAbleToConnect()&&bh.get(P)&&bh.connector.get(at)){bh.showSuggestConnetorOverlay();}else{bh.connector.hide();bi.invite.set(at,false);}if(bh.get(S)){bh.get(u).each(function(bl){bl.set(c,false);});}},connectMove:function(bj){var A=this;var bi=A.get(bb);var bk=bj.mouseXY;bi.connector.set(aH,bk);if(bi.publishedTarget){var bh=A.invite;var bl=bh.get(aN)||0;if(!bh.get(at)){bh.set(at,true);}bh.setXY([bk[0]-bl,bk[1]-bl]);}},connectNode:function(bi){var bh=this;var A=bh.boundaryDragDelegate.dd;bh.connect(bh.prepareTransition({sourceXY:aF(A.startXY,bh.get(t)),target:bi.get(q),targetXY:aF(A.mouseXY,bi.get(t))}));},connectOutTarget:function(bi){var A=this;var bh=A.get(bb);bh.publishedTarget=null;bh.publishedSource.invite.set(at,false);},connectOverTarget:function(bi){var A=this;var bh=A.get(bb);if(bh.publishedSource!==A){bh.publishedTarget=A;}},connectStart:function(bj){var A=this;var bh=A.get(bb);var bi=bh.get(ay);bh.connector.show().set(aJ,bj.startXY);if(bh.get(S)){bh.get(u).each(function(bk){bk.set(c,true);});}aC.DiagramNodeManager.fire("publishedSource",{publishedSource:A});},disconnect:function(bh){var A=this;if(A.isTransitionConnected(bh)){A.removeTransition(bh);}},eachConnector:function(bj){var A=this;var bk=[],bh=[].concat(A.get(m).values),bi=bh.length;bf.each(A.get(bb).getSourceNodes(A),function(bl){bl.get(m).each(function(bm){if(A.get(q)===bm.get(p).target){bk.push(bl);bh.push(bm);}});});bf.each(bh,function(bl,bm){bj.call(A,bl,bm,(bm0){V.lineTo(W[X][0],W[X][1]);}});V.lineTo(W[0][0],W[0][1]);},translatePoints:function(W,V,Y){var A=this;var X=[];o.each(W,function(aa,Z){X.push([W[Z][0]+V,W[Z][1]+Y]); -});return X;},rotatePoints:function(V,X){var A=this;var W=[];o.each(V,function(Z,Y){W.push(A.rotatePoint(X,V[Y][0],V[Y][1]));});return W;},rotatePoint:function(V,A,W){return[(A*Math.cos(V))-(W*Math.sin(V)),(A*Math.sin(V))+(W*Math.cos(V))];}};i.Connector=i.Base.create("line",i.Base,[],{SERIALIZABLE_ATTRS:[y,O,x,k,C,n,m],shape:null,shapeArrow:null,initializer:function(W){var A=this;var V=A.get(O);A.after({nameChange:A._afterNameChange,p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange,showNameChange:A._afterShowNameChange,visibleChange:A._afterVisibleChange});A._initShapes();if(!V){A.draw();}A._uiSetVisible(A.get(S));A._uiSetName(A.get(x));A._uiSetSelected(A.get(u),!V);A._uiSetShowName(A.get(D));},destructor:function(){var A=this;A.shape.destroy();A.shapeArrow.destroy();A.get(I).remove();},draw:function(){var ao=this;var X=ao.shape;var A=ao.shapeArrow;var W=ao.get(n),V=ao.get(m),ak=ao.toCoordinate(W),ai=ao.toCoordinate(V),am=ak[0],Z=ak[1],al=ai[0],Y=ai[1],af=Math.max(Math.abs(am-al)/2,10),ad=Math.max(Math.abs(Z-Y)/2,10),ac=null,ae=8,an=d(Math.atan2(Y-Z,al-am)),aa=Math.round(Math.abs(an)/(360/ae));if(h(an)<0){ac=[[am+af,Z,al-af,Y,al,Y],[am+af,Z,al,Z-ad,al,Y],[am,Z-ad,al,Z-ad,al,Y],[am-af,Z,al,Z-ad,al,Y],[am-af,Z,al+af,Y,al,Y]];}else{ac=[[am+af,Z,al-af,Y,al,Y],[am+af,Z,al,Z+ad,al,Y],[am,Z+ad,al,Z+ad,al,Y],[am-af,Z,al,Z+ad,al,Y],[am-af,Z,al+af,Y,al,Y]];}var ab=ac[aa];X.clear();X.moveTo(am,Z);X.curveTo.apply(X,ab);X.end();var ah=l(0,[am,Z],[al,Y],[ab[0],ab[1]],[ab[2],ab[3]]),ag=l(0.075,[am,Z],[al,Y],[ab[0],ab[1]],[ab[2],ab[3]]),aj=l(0.5,[am,Z],[al,Y],[ab[0],ab[1]],[ab[2],ab[3]]);A.clear();i.PolygonUtil.drawArrow(A,ag[0],ag[1],ah[0],ah[1],ao.get(K));A.end();if(ao.get(D)){ao.get(I).center(ao.toXY(aj));}return ao;},getProperties:function(){var A=this;var V=A.getPropertyModel();o.each(V,function(W){W.value=A.get(W.attributeName);});return V;},getPropertyModel:function(){var V=this;var A=V.getStrings();return[{attributeName:x,editor:new i.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[x]}];},getStrings:function(){return i.Connector.STRINGS;},hide:function(){var A=this;A.set(S,false);return A;},show:function(){var A=this;A.set(S,true);return A;},toCoordinate:function(V){var A=this;return A._offsetXY(V,-1);},toJSON:function(){var A=this;var V={};o.each(A.SERIALIZABLE_ATTRS,function(W){V[W]=A.get(W);});return V;},toXY:function(V){var A=this;return A._offsetXY(V,1);},_afterNameChange:function(V){var A=this;A._uiSetName(V.newVal);A.draw();},_afterSelectedChange:function(V){var A=this;A._uiSetSelected(V.newVal);},_afterShowNameChange:function(V){var A=this;A._uiSetShowName(V.newVal);},_afterVisibleChange:function(V){var A=this;A._uiSetVisible(V.newVal);},_initShapes:function(){var A=this;var V=A.shape=A.get(z).addShape(A.get(r));var W=A.shapeArrow=A.get(z).addShape(A.get(b));V.on(F,i.bind(A._onShapeClick,A));V.on(c,i.bind(A._onShapeMouseEnter,A));V.on(j,i.bind(A._onShapeMouseLeave,A));W.on(F,i.bind(A._onShapeClick,A));A.get(I).on(F,i.bind(A._onShapeClick,A));},_offsetXY:function(X,W){var A=this;var V=A.get(z).getXY();return[X[0]+V[0]*W,X[1]+V[1]*W];},_onShapeClick:function(X){var A=this;var V=A.get(U);var W=A.get(u);if(V){if(X.hasModifier()){V.closeEditProperties();}else{V.unselectConnectors();if(W){V.closeEditProperties();}else{V.editConnector(A);}}}A.set(u,!W);X.halt();},_onShapeMouseEnter:function(X){var A=this;if(!A.get(u)){var W=A.get(C);var V=A.get(p);if(W){A._updateShape(A.shape,W);}if(V){A._updateShape(A.shapeArrow,V);}}},_onShapeMouseLeave:function(V){var A=this;if(!A.get(u)){A._updateShape(A.shape,A.get(r));A._updateShape(A.shapeArrow,A.get(b));}},_setNodeName:function(V){var A=this;if(!i.instanceOf(V,i.Node)){V=new i.Template(V).render();A.get(U).canvas.append(V.unselectable());}return V;},_setShape:function(V){var A=this;return i.merge({type:e,stroke:{color:A.get(y),weight:2,opacity:1}},V);},_setShapeArrow:function(V){var A=this;return i.merge({type:e,fill:{color:A.get(y),opacity:1},stroke:{color:A.get(y),weight:2,opacity:1}},V);},_uiSetName:function(V){var A=this;A.get(I).html(V);},_uiSetSelected:function(W,V){var A=this;A._updateShape(A.shape,W?A.get(k):A.get(r),V);A._updateShape(A.shapeArrow,W?A.get(L):A.get(b),V);},_uiSetShowName:function(V){var A=this;A.get(I).toggleClass(a,!V);},_uiSetVisible:function(V){var A=this;A.shape.set(S,V);A.shapeArrow.set(S,V);A._uiSetShowName(V&&A.get(D));},_updateShape:function(W,X,V){var A=this;if(X.hasOwnProperty(B)){W.set(B,X[B]);}if(X.hasOwnProperty(f)){W.set(f,X[f]);}if(V!==false){A.draw();}}},{ATTRS:{arrowPoints:{value:i.PolygonUtil.ARROW_POINTS},builder:{},color:{value:"#27aae1",validator:g},graphic:{validator:H},lazyDraw:{value:false,validator:w},name:{valueFn:function(){var A=this;return q+(++i.Env._uidx);},validator:g},nodeName:{setter:"_setNodeName",value:[''],writeOnce:true},p1:{value:[0,0],validator:s},p2:{value:[0,0],validator:s},selected:{value:false,validator:w},shape:{value:null,setter:"_setShape"},shapeArrow:{value:null,setter:"_setShapeArrow"},shapeArrowHover:{value:{fill:{color:"#ffd700"},stroke:{color:"#ffd700",weight:5,opacity:0.8}}},shapeArrowSelected:{value:{fill:{color:"#ff6600"},stroke:{color:"#ff6600",weight:5,opacity:0.8}}},shapeHover:{value:{stroke:{color:"#ffd700",weight:5,opacity:0.8}}},shapeSelected:{value:{stroke:{color:"#ff6600",weight:5,opacity:0.8}}},showName:{validator:w,value:true},transition:{value:{},validator:E},visible:{validator:w,value:true}},STRINGS:{name:"Name"}});},"@VERSION@",{skinnable:true,requires:["aui-base","aui-template","arraylist-add","arraylist-filter","json","graphics","dd"]});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{skinnable:true,use:["aui-diagram-builder-base","aui-diagram-builder-impl"]}); \ No newline at end of file +var bh=A.get(ay);A.on({cancel:A._onCancel,"drag:drag":A._onDrag,"drag:end":A._onDragEnd,"drop:hit":A._onDropHit,save:A._onSave});aC.DiagramNodeManager.on({publishedSource:function(bi){A.publishedTarget=null;A.publishedSource=bi.publishedSource;}});bh.on(v,aC.bind(A._onCanvasMouseEnter,A));A.handlerKeyDown=aC.getDoc().on(Z,aC.bind(A._afterKeyEvent,A));A.dropContainer.delegate(aR,aC.bind(A._onNodeClick,A),i+aq);A.dropContainer.delegate(v,aC.bind(A._onNodeMouseEnter,A),i+aq);A.dropContainer.delegate(ao,aC.bind(A._onNodeMouseLeave,A),i+aq);},renderUI:function(){var A=this;aC.DiagramBuilder.superclass.renderUI.apply(this,arguments);A._renderGraphic();},syncUI:function(){var A=this;aC.DiagramBuilder.superclass.syncUI.apply(this,arguments);A._setupFieldsDrag();A.syncConnectionsUI();A.connector=A.get(T);},syncConnectionsUI:function(){var A=this;A.get(u).each(function(bh){bh.syncConnectionsUI();});},clearFields:function(){var bh=this;var A=[];bh.get(u).each(function(bi){A.push(bi);});bf.each(A,function(bi){bi.destroy();});A=bh.editingConnector=bh.editingNode=bh.selectedNode=null;},closeEditProperties:function(){var A=this;var bh=A.editingNode;var bi=A.tabView;bi.selectTab(aC.DiagramBuilder.FIELDS_TAB);bi.disableTab(aC.DiagramBuilder.SETTINGS_TAB);if(bh){bh.get(t).removeClass(aS);}A.editingConnector=A.editingNode=null;},connect:function(bh,bj,bi){var A=this;if(a5(bh)){bh=aC.Widget.getByNode(h+aC.DiagramNode.buildNodeId(bh));}if(a5(bj)){bj=aC.Widget.getByNode(h+aC.DiagramNode.buildNodeId(bj));}if(bh&&bj){bh.connect(bj.get(q),bi);}return A;},connectAll:function(bh){var A=this;bf.each(bh,function(bi){if(bi.hasOwnProperty(Y)&&bi.hasOwnProperty(l)){A.connect(bi.source,bi.target,bi.connector);}});return A;},createField:function(bh){var A=this;if(!a2(bh)){bh.builder=A;bh.bubbleTargets=A;bh=new (A.getFieldClass(bh.type||s))(bh);}return bh;},deleteSelectedConnectors:function(){var bh=this;var A=bh.getStrings();var bi=bh.getSelectedConnectors();if(bi.length&&confirm(A[aK])){bf.each(bi,function(bj){var bk=bj.get(p);aC.DiagramNode.getNodeByName(bk.source).disconnect(bk);});bh.stopEditing();}},deleteSelectedNode:function(){var bh=this;var A=bh.getStrings();var bi=bh.selectedNode;if(bi&&!bi.get(Q)&&confirm(A[r])){bi.close();bh.editingNode=bh.selectedNode=null;bh.stopEditing();}},destructor:function(bh){var A=this;A.get(aP).destroy();},eachConnector:function(bh){var A=this;A.get(u).each(function(bi){bi.get(ab).each(function(bj){bh.call(A,bi.getConnector(bj),bj,bi);});});},editConnector:function(bh){var A=this;if(bh){var bi=A.tabView;A.closeEditProperties();bi.enableTab(aC.DiagramBuilder.SETTINGS_TAB);bi.selectTab(aC.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(n,bh.getProperties());A.editingConnector=A.selectedConnector=bh;}},editNode:function(bi){var A=this;if(bi){var bh=A.tabView;A.closeEditProperties();bh.enableTab(aC.DiagramBuilder.SETTINGS_TAB);bh.selectTab(aC.DiagramBuilder.SETTINGS_TAB);A.propertyList.set(n,bi.getProperties());bi.get(t).addClass(aS);A.editingNode=A.selectedNode=bi;}},getFieldClass:function(bi){var A=this;var bh=aC.DiagramBuilder.types[bi];if(bh){return bh;}else{aC.log("The field type: ["+bi+"] couldn't be found.");return null;}},getNodesByTransitionProperty:function(bj,bi){var A=this;var bh=[];A.get(u).each(function(bk){bk.get(ab).each(function(bl){if(bl[bj]===bi){bh.push(bk);return false;}});});return bh;},getSelectedConnectors:function(){var A=this;var bh=[];A.eachConnector(function(bi){if(bi.get(a4)){bh.push(bi);}});return bh;},getSourceNodes:function(bh){var A=this;return A.getNodesByTransitionProperty(l,bh.get(q));},hideSuggestConnetorOverlay:function(bj,bh){var A=this;A.connector.hide();A.get(aP).hide();try{A.fieldsDrag.dd.set(C,false);}catch(bi){}},isAbleToConnect:function(){var A=this;return !!(A.publishedSource&&A.publishedTarget);},isFieldsDrag:function(bh){var A=this;return(bh===A.fieldsDrag.dd);},plotField:function(bh){var A=this;if(!bh.get(bc)){bh.render(A.dropContainer);}},select:function(bh){var A=this;A.unselectNodes();A.selectedNode=bh.set(a4,true).focus();},showSuggestConnetorOverlay:function(bi){var A=this;A.get(aP).set(E,bi||A.connector.get(aH)).show().get(t).addClass(e);try{A.fieldsDrag.dd.set(C,true);}catch(bh){}},stopEditing:function(){var A=this;A.unselectConnectors();A.unselectNodes();A.closeEditProperties();},toJSON:function(){var A=this;var bh={nodes:[]};A.get(u).each(function(bj){var bi={transitions:[]};bf.each(bj.SERIALIZABLE_ATTRS,function(bk){bi[bk]=bj.get(bk);});bj.get(ab).each(function(bl){var bk=bj.getConnector(bl);bl.connector=bk.toJSON();bi.transitions.push(bl);});bh.nodes.push(bi);});return bh;},unselectConnectors:function(){var A=this;bf.each(A.getSelectedConnectors(),function(bh){bh.set(a4,false);});},unselectNodes:function(){var A=this;var bh=A.selectedNode;if(bh){bh.set(a4,false);}A.selectedNode=null;},_afterKeyEvent:function(bh){var A=this;if(bh.hasModifier()||aC.getDoc().get(ap).test(":input,td")){return;}if(bh.isKey(a)){A._onEscKey(bh);}else{if(bh.isKey(F)||bh.isKey(ah)){A._onDeleteKey(bh);}}},_onCancel:function(bh){var A=this;A.closeEditProperties();},_onCanvasMouseEnter:function(){var A=this;A.syncUI();},_onDeleteKey:function(bh){var A=this;A.deleteSelectedConnectors();A.deleteSelectedNode();bh.halt();},_onDrag:function(bi){var A=this;var bh=bi.target;if(A.isFieldsDrag(bh)){var bj=aC.Widget.getByNode(bh.get(aY));bj.alignTransitions();bf.each(A.getSourceNodes(bj),function(bk){bk.alignTransitions();});}},_onDragEnd:function(bi){var A=this;var bh=bi.target;var bj=aC.Widget.getByNode(bh.get(aY));if(bj&&A.isFieldsDrag(bh)){bj.set(E,bj.getLeftTop());}},_onDropHit:function(bi){var A=this;var bh=bi.drag;if(A.isAvailableFieldsDrag(bh)){var bk=bh.get(s).getData(ac);var bj=A.addField({xy:aF(bh.lastXY,A.dropContainer),type:bk.get(g)});A.select(bj);}},_onEscKey:function(bh){var A=this;A.hideSuggestConnetorOverlay();A.stopEditing();bh.halt();},_onCanvasClick:function(bh){var A=this;A.stopEditing();A.hideSuggestConnetorOverlay();},_onNodeClick:function(bh){var A=this; +var bi=aC.Widget.getByNode(bh.currentTarget);A.select(bi);A._onNodeEdit(bh);bh.stopPropagation();},_onNodeEdit:function(bh){var A=this;if(!bh.target.ancestor(i+b,true)){return;}var bi=aC.Widget.getByNode(bh.currentTarget);if(bi){A.editNode(bi);}},_onNodeMouseEnter:function(bh){var A=this;var bi=aC.Widget.getByNode(bh.currentTarget);bi.set(c,true);},_onNodeMouseLeave:function(bi){var A=this;var bh=A.publishedSource;var bj=aC.Widget.getByNode(bi.currentTarget);if(!bh||!bh.boundaryDragDelegate.dd.get(ae)){bj.set(c,false);}},_onSave:function(bi){var A=this;var bh=A.editingNode;var bj=A.editingConnector;var bk=A.propertyList.get(n);if(bh){bf.each(bk.get(au),function(bl){var bm=bl.get(aM);bh.set(bm.attributeName,bm.value);});}else{if(bj){bf.each(bk.get(au),function(bl){var bm=bl.get(aM);bj.set(bm.attributeName,bm.value);});}}},_onSuggestConnectorNodeClick:function(bj){var A=this;var bk=bj.currentTarget.getData(ac);var bh=A.connector;var bi=A.addField({type:bk.get(g),xy:bh.toCoordinate(bh.get(aH))});A.hideSuggestConnetorOverlay();A.publishedSource.connectNode(bi);},_renderGraphic:function(){var A=this;var bi=A.get(al);var bh=A.get(ay);bi.render(bh);aC.one(bh).on(aR,aC.bind(A._onCanvasClick,A));},_setConnector:function(bi){var A=this;if(!J(bi)){var bh=A.get(ay).getXY();bi=new aC.Connector(aC.merge({builder:A,graphic:A.get(al),lazyDraw:true,p1:bh,p2:bh,shapeHover:null,showName:false},bi));}return bi;},_setFieldsDragConfig:function(bi){var A=this;var bh=A.dropContainer;return aC.merge({bubbleTargets:A,container:bh,dragConfig:{plugins:[{cfg:{constrain:bh},fn:aC.Plugin.DDConstrained},{cfg:{scrollDelay:150},fn:aC.Plugin.DDWinScroll}]},nodes:i+aq},bi||{});},_setSuggestConnectorOverlay:function(bi){var A=this;if(!bi){var bh=aC.getDoc().invoke(U);bf.each(A.get(af),function(bk){var bj=bk.get(s);bh.appendChild(bj.clone().setData(ac,bj.getData(ac)));});bi=new aC.Overlay({bodyContent:bh,render:true,visible:false,zIndex:10000});bi.get(t).delegate(aR,aC.bind(A._onSuggestConnectorNodeClick,A),i+a3);}return bi;},_setupFieldsDrag:function(){var A=this;A.fieldsDrag=new aC.DD.Delegate(A.get(aE));}}});aC.DiagramBuilder=G;aC.DiagramBuilder.types={};var aj=aC.Component.create({NAME:a9,EXTENDS:aC.Base});aC.DiagramNodeManager=new aj();var bg=aC.Component.create({NAME:H,UI_ATTRS:[c,q,Q,a4],ATTRS:{builder:{validator:ai},connectors:{valueFn:"_createDataSet",writeOnce:true},controlsToolbar:{validator:O,valueFn:"_valueControlsToolbar"},description:{value:aa,validator:a5},graphic:{writeOnce:true,validator:O},height:{value:60},highlighted:{validator:a1,value:false},name:{valueFn:function(){var A=this;return A.get(g)+(++aC.Env._uidx);},validator:a5},required:{value:false,validator:a1},selected:{value:false,validator:a1},shapeBoundary:{validator:O,valueFn:"_valueShapeBoundary"},highlightBoundaryStroke:{validator:O,value:{weight:7,color:"#484B4C",opacity:0.25}},shapeInvite:{validator:O,value:{radius:12,type:"circle",stroke:{weight:6,color:"#ff6600",opacity:0.8},fill:{color:"#ffd700",opacity:0.8}}},strings:{value:{closeMessage:"Close",connectMessage:"Connect",description:"Description",editMessage:"Edit",name:"Name",type:"Type"}},tabIndex:{value:1},transitions:{value:null,writeOnce:true,setter:"_setTransitions"},type:{value:s,validator:a5},width:{value:60},zIndex:{value:100}},EXTENDS:aC.Overlay,CIRCLE_POINTS:[[35,20],[28,33],[14,34],[5,22],[10,9],[24,6],[34,16],[31,30],[18,35],[6,26],[7,12],[20,5],[33,12],[34,26],[22,35],[9,30],[6,16],[16,6],[30,9],[35,22],[26,34],[12,33],[5,20],[12,7],[26,6],[35,18],[30,31],[16,34],[6,24],[9,10],[22,5],[34,14],[33,28],[20,35],[7,28],[6,14],[18,5],[31,10],[34,24],[24,34],[10,31],[5,18],[14,6],[28,8],[35,20],[28,33],[14,34],[5,22],[10,8],[25,6],[34,16],[31,30],[18,35],[6,26],[8,12],[20,5],[33,12],[33,27],[22,35],[8,30],[6,15],[16,6],[30,9],[35,23],[26,34],[12,32],[5,20],[12,7],[27,7],[35,18],[29,32],[15,34]],DIAMOND_POINTS:[[30,5],[35,10],[40,15],[45,20],[50,25],[55,30],[50,35],[45,40],[40,45],[35,50],[30,55],[25,50],[20,45],[15,40],[10,35],[5,30],[10,25],[15,20],[20,15],[25,10]],SQUARE_POINTS:[[5,5],[10,5],[15,5],[20,5],[25,5],[30,5],[35,5],[40,5],[50,5],[55,5],[60,5],[65,5],[65,10],[65,15],[65,20],[65,25],[65,30],[65,35],[65,40],[65,45],[65,50],[65,55],[65,60],[65,65],[60,65],[55,65],[50,65],[45,65],[40,65],[35,65],[30,65],[25,65],[20,65],[15,65],[10,65],[5,65],[5,60],[5,55],[5,50],[5,45],[5,40],[5,35],[5,30],[5,25],[5,20],[5,15],[5,10]],getNodeByName:function(A){return aC.Widget.getByNode(h+aC.DiagramNode.buildNodeId(A));},buildNodeId:function(A){return aG+N+a0+N+A.replace(/[^a-z0-9.:_\-]/ig,"_");},prototype:{LABEL_TEMPLATE:'
    {label}
    ',boundary:null,hotPoints:[[0,0]],CONTROLS_TEMPLATE:'
    ',SERIALIZABLE_ATTRS:[aU,q,Q,g,V,aZ,D,E],initializer:function(){var A=this;A.after({"dataset:remove":aC.bind(A._afterDataSetRemove,A),render:A._afterRender});A.on({nameChange:A._onNameChange});A.publish({connectDrop:{defaultFn:A.connectDrop},connectEnd:{defaultFn:A.connectEnd},connectMove:{defaultFn:A.connectMove},connectOutTarget:{defaultFn:A.connectOutTarget},connectOverTarget:{defaultFn:A.connectOverTarget},connectStart:{defaultFn:A.connectStart},boundaryMouseEnter:{},boundaryMouseLeave:{}});A.get(t).addClass(aq+be+A.get(g));},destructor:function(){var A=this;A.eachConnector(function(bh,bi,bj){bj.removeTransition(bh.get(p));});A.invite.destroy();A.get(al).destroy();A.get(bb).removeField(A);},addTransition:function(bi){var A=this;var bh=A.get(ab);bi=A.prepareTransition(bi);if(!bh.containsKey(bi.uid)){bi.uid=aC.guid();bh.add(bi.uid,bi);}return bi;},alignTransition:function(bi){var A=this;var bj=aC.DiagramNode.getNodeByName(bi.target);if(bj){var bh=ak(A,bj);bi=aC.merge(bi,{sourceXY:bh[0],targetXY:bh[1]});A.getConnector(bi).setAttrs({p1:av(A,bi.sourceXY),p2:av(bj,bi.targetXY)});}},alignTransitions:function(){var A=this;A.get(ab).each(aC.bind(A.alignTransition,A));},close:function(){var A=this;return A.destroy();},connect:function(bl,bj){var A=this;bl=A.addTransition(bl); +var bh=null;var bm=aC.DiagramNode.getNodeByName(bl.target);if(bm){if(!A.isTransitionConnected(bl)){var bi=A.get(bb);var bk=ak(A,bm);aC.mix(bl,{sourceXY:bk[0],targetXY:bk[1]});bh=new aC.Connector(aC.merge({builder:bi,graphic:bi.get(al),transition:bl},bj));A.get(m).add(bl.uid,bh);}}A.alignTransition(bl);return bh;},connectDrop:function(bh){var A=this;A.connectNode(bh.publishedTarget);},connectEnd:function(bk){var A=this;var bj=bk.target;var bh=A.get(bb);var bi=bh.publishedSource;if(!bh.isAbleToConnect()&&bh.get(P)&&bh.connector.get(at)){bh.showSuggestConnetorOverlay();}else{bh.connector.hide();bi.invite.set(at,false);}if(bh.get(S)){bh.get(u).each(function(bl){bl.set(c,false);});}},connectMove:function(bj){var A=this;var bi=A.get(bb);var bk=bj.mouseXY;bi.connector.set(aH,bk);if(bi.publishedTarget){var bh=A.invite;var bl=bh.get(aN)||0;if(!bh.get(at)){bh.set(at,true);}bh.setXY([bk[0]-bl,bk[1]-bl]);}},connectNode:function(bi){var bh=this;var A=bh.boundaryDragDelegate.dd;bh.connect(bh.prepareTransition({sourceXY:aF(A.startXY,bh.get(t)),target:bi.get(q),targetXY:aF(A.mouseXY,bi.get(t))}));},connectOutTarget:function(bi){var A=this;var bh=A.get(bb);bh.publishedTarget=null;bh.publishedSource.invite.set(at,false);},connectOverTarget:function(bi){var A=this;var bh=A.get(bb);if(bh.publishedSource!==A){bh.publishedTarget=A;}},connectStart:function(bj){var A=this;var bh=A.get(bb);var bi=bh.get(ay);bh.connector.show().set(aJ,bj.startXY);if(bh.get(S)){bh.get(u).each(function(bk){bk.set(c,true);});}aC.DiagramNodeManager.fire("publishedSource",{publishedSource:A});},disconnect:function(bh){var A=this;if(A.isTransitionConnected(bh)){A.removeTransition(bh);}},eachConnector:function(bj){var A=this;var bk=[],bh=[].concat(A.get(m).values),bi=bh.length;bf.each(A.get(bb).getSourceNodes(A),function(bl){bl.get(m).each(function(bm){if(A.get(q)===bm.get(p).target){bk.push(bl);bh.push(bm);}});});bf.each(bh,function(bl,bm){bj.call(A,bl,bm,(bm0){V.lineTo(W[X][0],W[X][1]);}});V.lineTo(W[0][0],W[0][1]);},translatePoints:function(W,V,Y){var A=this;var X=[];o.each(W,function(aa,Z){X.push([W[Z][0]+V,W[Z][1]+Y]);});return X;},rotatePoints:function(V,X){var A=this;var W=[];o.each(V,function(Z,Y){W.push(A.rotatePoint(X,V[Y][0],V[Y][1]));});return W;},rotatePoint:function(V,A,W){return[(A*Math.cos(V))-(W*Math.sin(V)),(A*Math.sin(V))+(W*Math.cos(V))];}};i.Connector=i.Base.create("line",i.Base,[],{SERIALIZABLE_ATTRS:[y,O,x,k,C,n,m],shape:null,shapeArrow:null,initializer:function(W){var A=this;var V=A.get(O);A.after({nameChange:A._afterNameChange,p1Change:A.draw,p2Change:A.draw,selectedChange:A._afterSelectedChange,showNameChange:A._afterShowNameChange,visibleChange:A._afterVisibleChange});A._initShapes();if(!V){A.draw();}A._uiSetVisible(A.get(S));A._uiSetName(A.get(x));A._uiSetSelected(A.get(u),!V);A._uiSetShowName(A.get(D));},destructor:function(){var A=this;A.shape.destroy();A.shapeArrow.destroy();A.get(I).remove();},draw:function(){var ao=this;var X=ao.shape;var A=ao.shapeArrow;var W=ao.get(n),V=ao.get(m),ak=ao.toCoordinate(W),ai=ao.toCoordinate(V),am=ak[0],Z=ak[1],al=ai[0],Y=ai[1],af=Math.max(Math.abs(am-al)/2,10),ad=Math.max(Math.abs(Z-Y)/2,10),ac=null,ae=8,an=d(Math.atan2(Y-Z,al-am)),aa=Math.round(Math.abs(an)/(360/ae));if(h(an)<0){ac=[[am+af,Z,al-af,Y,al,Y],[am+af,Z,al,Z-ad,al,Y],[am,Z-ad,al,Z-ad,al,Y],[am-af,Z,al,Z-ad,al,Y],[am-af,Z,al+af,Y,al,Y]];}else{ac=[[am+af,Z,al-af,Y,al,Y],[am+af,Z,al,Z+ad,al,Y],[am,Z+ad,al,Z+ad,al,Y],[am-af,Z,al,Z+ad,al,Y],[am-af,Z,al+af,Y,al,Y]];}var ab=ac[aa];X.clear();X.moveTo(am,Z);X.curveTo.apply(X,ab);X.end();var ah=l(0,[am,Z],[al,Y],[ab[0],ab[1]],[ab[2],ab[3]]),ag=l(0.075,[am,Z],[al,Y],[ab[0],ab[1]],[ab[2],ab[3]]),aj=l(0.5,[am,Z],[al,Y],[ab[0],ab[1]],[ab[2],ab[3]]);A.clear();i.PolygonUtil.drawArrow(A,ag[0],ag[1],ah[0],ah[1],ao.get(K));A.end();if(ao.get(D)){ao.get(I).center(ao.toXY(aj));}return ao;},getProperties:function(){var A=this;var V=A.getPropertyModel();o.each(V,function(W){W.value=A.get(W.attributeName);});return V;},getPropertyModel:function(){var V=this;var A=V.getStrings();return[{attributeName:x,editor:new i.TextCellEditor({validator:{rules:{value:{required:true}}}}),name:A[x]}];},getStrings:function(){return i.Connector.STRINGS;},hide:function(){var A=this;A.set(S,false);return A;},show:function(){var A=this;A.set(S,true);return A;},toCoordinate:function(V){var A=this;return A._offsetXY(V,-1);},toJSON:function(){var A=this;var V={};o.each(A.SERIALIZABLE_ATTRS,function(W){V[W]=A.get(W);});return V;},toXY:function(V){var A=this;return A._offsetXY(V,1);},_afterNameChange:function(V){var A=this;A._uiSetName(V.newVal);A.draw();},_afterSelectedChange:function(V){var A=this;A._uiSetSelected(V.newVal);},_afterShowNameChange:function(V){var A=this;A._uiSetShowName(V.newVal);},_afterVisibleChange:function(V){var A=this;A._uiSetVisible(V.newVal);},_initShapes:function(){var A=this;var V=A.shape=A.get(z).addShape(A.get(r));var W=A.shapeArrow=A.get(z).addShape(A.get(b));V.on(F,i.bind(A._onShapeClick,A));V.on(c,i.bind(A._onShapeMouseEnter,A));V.on(j,i.bind(A._onShapeMouseLeave,A));W.on(F,i.bind(A._onShapeClick,A));A.get(I).on(F,i.bind(A._onShapeClick,A));},_offsetXY:function(X,W){var A=this;var V=A.get(z).getXY();return[X[0]+V[0]*W,X[1]+V[1]*W];},_onShapeClick:function(X){var A=this;var V=A.get(U);var W=A.get(u);if(V){if(X.hasModifier()){V.closeEditProperties();}else{V.unselectConnectors();if(W){V.closeEditProperties();}else{V.editConnector(A);}}}A.set(u,!W);X.halt();},_onShapeMouseEnter:function(X){var A=this;if(!A.get(u)){var W=A.get(C);var V=A.get(p);if(W){A._updateShape(A.shape,W);}if(V){A._updateShape(A.shapeArrow,V);}}},_onShapeMouseLeave:function(V){var A=this;if(!A.get(u)){A._updateShape(A.shape,A.get(r));A._updateShape(A.shapeArrow,A.get(b));}},_setNodeName:function(V){var A=this;if(!i.instanceOf(V,i.Node)){V=new i.Template(V).render();A.get(U).canvas.append(V.unselectable());}return V;},_setShape:function(V){var A=this;return i.merge({type:e,stroke:{color:A.get(y),weight:2,opacity:1}},V);},_setShapeArrow:function(V){var A=this;return i.merge({type:e,fill:{color:A.get(y),opacity:1},stroke:{color:A.get(y),weight:2,opacity:1}},V);},_uiSetName:function(V){var A=this;A.get(I).html(V);},_uiSetSelected:function(W,V){var A=this;A._updateShape(A.shape,W?A.get(k):A.get(r),V);A._updateShape(A.shapeArrow,W?A.get(L):A.get(b),V);},_uiSetShowName:function(V){var A=this;A.get(I).toggleClass(a,!V);},_uiSetVisible:function(V){var A=this;A.shape.set(S,V);A.shapeArrow.set(S,V);A._uiSetShowName(V&&A.get(D));},_updateShape:function(W,X,V){var A=this;if(X.hasOwnProperty(B)){W.set(B,X[B]);}if(X.hasOwnProperty(f)){W.set(f,X[f]);}if(V!==false){A.draw();}}},{ATTRS:{arrowPoints:{value:i.PolygonUtil.ARROW_POINTS},builder:{},color:{value:"#27aae1",validator:g},graphic:{validator:H},lazyDraw:{value:false,validator:w},name:{valueFn:function(){var A=this;return q+(++i.Env._uidx);},validator:g},nodeName:{setter:"_setNodeName",value:[''],writeOnce:true},p1:{value:[0,0],validator:s},p2:{value:[0,0],validator:s},selected:{value:false,validator:w},shape:{value:null,setter:"_setShape"},shapeArrow:{value:null,setter:"_setShapeArrow"},shapeArrowHover:{value:{fill:{color:"#ffd700"},stroke:{color:"#ffd700",weight:5,opacity:0.8}}},shapeArrowSelected:{value:{fill:{color:"#ff6600"},stroke:{color:"#ff6600",weight:5,opacity:0.8}}},shapeHover:{value:{stroke:{color:"#ffd700",weight:5,opacity:0.8}}},shapeSelected:{value:{stroke:{color:"#ff6600",weight:5,opacity:0.8}}},showName:{validator:w,value:true},transition:{value:{},validator:E},visible:{validator:w,value:true}},STRINGS:{name:"Name"}});},"@VERSION@",{skinnable:true,requires:["aui-base","aui-template","arraylist-add","arraylist-filter","json","graphics","dd"]});AUI.add("aui-diagram-builder",function(a){},"@VERSION@",{skinnable:true,use:["aui-diagram-builder-base","aui-diagram-builder-impl"]}); \ No newline at end of file diff --git a/build/aui-diagram-builder/aui-diagram-builder.js b/build/aui-diagram-builder/aui-diagram-builder.js index a491068dfce..da4154a0418 100644 --- a/build/aui-diagram-builder/aui-diagram-builder.js +++ b/build/aui-diagram-builder/aui-diagram-builder.js @@ -1045,9 +1045,7 @@ var DiagramBuilder = A.Component.create({ initializer: function() { var instance = this; - instance.after({ - render: instance.syncConnectionsUI - }); + var canvas = instance.get(CANVAS); instance.on({ cancel: instance._onCancel, @@ -1064,6 +1062,8 @@ var DiagramBuilder = A.Component.create({ } }); + canvas.on(MOUSEENTER, A.bind(instance._onCanvasMouseEnter, instance)); + instance.handlerKeyDown = A.getDoc().on(KEYDOWN, A.bind(instance._afterKeyEvent, instance)); instance.dropContainer.delegate(CLICK, A.bind(instance._onNodeClick, instance), _DOT+CSS_DIAGRAM_NODE); @@ -1086,6 +1086,8 @@ var DiagramBuilder = A.Component.create({ instance._setupFieldsDrag(); + instance.syncConnectionsUI(); + instance.connector = instance.get(CONNECTOR); }, @@ -1429,6 +1431,12 @@ var DiagramBuilder = A.Component.create({ instance.closeEditProperties(); }, + _onCanvasMouseEnter: function() { + var instance = this; + + instance.syncUI(); + }, + _onDeleteKey: function(event) { var instance = this;