1 line
23 KiB
JavaScript
Executable File
1 line
23 KiB
JavaScript
Executable File
function isLineBelowOrRight(e,t,r){let i=!1;e.from[t]>r&&(i=!0),e.to[t]>r&&(i=!0);for(let n=0;n<e.points.length;n++)e.points[n][t]>r&&(i=!0);return i}function filterShapeAndLine(e,t){var r=Model.define.elements,i=[],n=[],o=[],a=[],l=[],s=0,d=[],p=0,h=[],g=[];for(let e in r)null==r[e].points?i.push(r[e]):n.push(r[e]),"lane"==r[e].category&&o.push(r[e]);for(let r=0;r<i.length;r++)"x"==e?i[r].props[e]>=t?h.push(i[r]):i[r].props.x+i[r].props.w/2>=t?(a.push(i[r]),h.push(i[r])):i[r].props.x+i[r].props.w/2<t&&i[r].props.x+i[r].props.w>t?l.push(i[r]):d.push(i[r]):"y"==e&&(i[r].props[e]>=t?h.push(i[r]):i[r].props.y+i[r].props.h/2>=t?(a.push(i[r]),h.push(i[r])):i[r].props.y+i[r].props.h/2<t&&i[r].props.y+i[r].props.h>t?l.push(i[r]):d.push(i[r]));for(let r=0;r<n.length;r++){let i=g.findIndex(e=>e.id==n[r].id);isLineBelowOrRight(n[r],e,t)&&-1==i&&g.push(n[r])}if(d.length>0&&"y"==e?p=Math.max.apply(Math,d.map(e=>e.props.y+e.props.h)):d.length>0&&"x"==e&&(p=Math.max.apply(Math,d.map(e=>e.props.x+e.props.w))),a.concat(l).length>0&&(s=Math.max.apply(Math,a.concat(l).map(t=>t.props[e]))),a.length>0){let e=Utils.getOutlinkers(a);for(let t=0;t<e.length;t++)-1==g.findIndex(r=>r.id==e[t].id)&&g.push(e[t])}return{passedShapes:a,passedMoreShapes:l,passedShapesEdge:s,sublineSideEdge:p,movingShapes:h,movingLines:g,laneArr:o}}function moveShapeAndFile(e,t,r){var i=filterShapeAndLine(e,t),n=i.movingLines,o=i.movingShapes,a=i.passedShapes,l=i.passedMoreShapes,s=i.laneArr;for(let i=0;i<n.length;i++){let o=a.findIndex(e=>e.id==n[i].from.id),s=a.findIndex(e=>e.id==n[i].to.id),d=l.findIndex(e=>e.id==n[i].from.id),p=l.findIndex(e=>e.id==n[i].to.id);for(let o=0;o<n[i].points.length;o++)n[i].points[o][e]>t&&(n[i].points[o][e]+=r);if(n[i].from[e]>t&&-1==d)n[i].from[e]+=r;else if(n[i].from[e]<=t&&-1!==o){for(let t=0;t<n[i].points.length;t++)n[i].points[t][e]==n[i].from[e]&&(n[i].points[t][e]+=r);n[i].from[e]+=r}if(n[i].to[e]>t&&-1==p)n[i].to[e]+=r;else if(a.length>0&&n[i].to[e]<=t&&-1!==s){for(let t=0;t<n[i].points.length;t++)n[i].points[t][e]==n[i].to[e]&&(n[i].points[t][e]+=r);n[i].to[e]+=r}Designer.painter.renderLinker(n[i])}if(0==s.length){"y"==e?Designer.op.moveShape(o,{x:0,y:r}):"x"==e&&Designer.op.moveShape(o,{x:r,y:0}),Designer.op.hideTip(),Utils.unselect();var d=o.concat(n);d.length>0&&Model.updateMulti(d)}else moveLanes(e,t,r)}function moveLanes(e,t,r){var i=filterShapeAndLine(e,t),n=i.movingLines,o=i.movingShapes,a=i.laneArr,l=[],s=[];for(let e=0;e<a.length;e++)""==a[e].parent&&l.push({id:a[e].id,name:a[e].name,isPassed:!1,lanes:[a[e]],changed:[]});for(let e=0;e<l.length;e++)for(let t=0;t<a.length;t++)l[e].id==a[t].parent&&l[e].lanes.push(a[t]);l.forEach(r=>{let i=r.lanes.findIndex(e=>""==e.parent),n=r.lanes.findIndex(e=>"verticalSeparatorBar"==e.name),o=r.lanes.findIndex(e=>"horizontalSeparatorBar"==e.name),a=r.lanes[i],l=r.lanes[n],s=r.lanes[o];if("x"==e){let e=a.props.x<t&&a.props.x+a.props.w>t,i=void 0!==l&&l.props.x<t&&l.props.x+l.props.w>t,n=a.props.x<t&&a.props.x+a.textBlock.w>t;"verticalPool"==r.name?r.isPassed=e&&!i:"horizontalPool"==r.name&&(r.isPassed=e&&!n),r.lanes.forEach(e=>{e.props.x+e.props.w>t&&r.changed.push(e)})}else if("y"==e){let e=a.props.y<t&&a.props.y+a.props.h>t,i=void 0!==s&&s.props.y<t&&s.props.y+s.props.h>t,n=a.props.y<t&&a.props.y+a.textBlock.h>t;"verticalPool"==r.name?r.isPassed=e&&!n:"horizontalPool"==r.name&&(r.isPassed=e&&!i),r.lanes.forEach(e=>{e.props.y+e.props.h>t&&r.changed.push(e)})}}),"x"==e?(Designer.op.moveShape(o.filter(e=>"lane"!==e.category),{x:r,y:0}),l.forEach(e=>{e.changed.forEach(i=>{if(e.isPassed){if(e.isPassed){if("verticalPool"==e.name)switch(i.name){case"verticalPool":i.props.w+=r;break;case"verticalLane":i.props.w+=i.props.x<t&&i.props.x+i.props.w>t?r:0,i.props.x+=i.props.x>t?r:0;break;case"horizontalSeparator":i.props.w+=r}if("horizontalPool"==e.name)switch(i.name){case"horizontalPool":case"horizontalLane":i.props.w+=r;break;case"verticalSeparator":i.props.w+=i.props.x<t&&i.props.x+i.props.w>t?r:0,i.props.x+=i.props.x>t?r:0;break;case"horizontalSeparatorBar":i.props.w+=r}}}else i.props.x+=r;s.push(i),Designer.painter.renderShape(i)})})):"y"==e&&(Designer.op.moveShape(o.filter(e=>"lane"!==e.category),{x:0,y:r}),l.forEach(e=>{e.changed.forEach(i=>{if(e.isPassed){if(e.isPassed){if("verticalPool"==e.name)switch(i.name){case"verticalPool":case"verticalLane":i.props.h+=r;break;case"horizontalSeparator":i.props.h+=i.props.y<t&&i.props.y+i.props.h>t?r:0,i.props.y+=i.props.y>t?r:0;break;case"verticalSeparatorBar":i.props.h+=r}if("horizontalPool"==e.name)switch(i.name){case"horizontalPool":i.props.h+=r;break;case"horizontalLane":i.props.h+=i.props.y<t&&i.props.y+i.props.h>t?r:0,i.props.y+=i.props.y>t?r:0;break;case"verticalSeparator":i.props.h+=r}}}else i.props.y+=r;s.push(i),Designer.painter.renderShape(i)})})),Designer.op.hideTip(),Utils.unselect();var d=o.filter(e=>"lane"!==e.category).concat(s).concat(n);d.length>0&&Model.updateMulti(d)}function addDefaultSchemaShape(){Schema.addCategory({name:"standard",text:"Standard",dataAttributes:[]}),Schema.addShape({name:"standardText",title:"",text:"",category:"standard",attribute:{linkable:!1},props:{w:160,h:40},anchors:[],textBlock:{x:0,y:0,w:"w",h:"h"},path:[{lineStyle:{lineWidth:0},fillStyle:{type:"none"},actions:{ref:"rectangle"}}]}),Schema.addShape({name:"standardImage",title:"",text:"",attribute:{linkable:!1,editable:!1,visible:!1},category:"standard",props:{w:100,h:70},path:[{lineStyle:{lineWidth:0},actions:{ref:"rectangle"}}]}),Schema.addShape({name:"standardRectangle",title:"",text:"",attribute:{visible:!1},category:"standard",props:{w:100,h:70},path:[{actions:{ref:"rectangle"}}]})}Designer.addFunction("open",function(definition){if(""!=definition){"string"==typeof definition&&eval("definition = "+definition),$(".shape_box").remove(),Model.define.elements={},Model.persistence.elements={},Model.define.page=definition.page,Model.define.processProperties=definition.processProperties,Model.define.processDocument=definition.processDocument,Model.define.uuid=definition.uuid,process.title=definition.title,Model.persistence.page=Utils.copy(definition.page),Designer.initialize.initCanvas();var shapes=definition.elements,shapeCount=0;for(var shapeId in shapes){var shape=shapes[shapeId];"linker"!=shape.name&&(Schema.initShapeFunctions(shape),Designer.painter.renderShape(shape),Model.add(shape,!1)),shapeCount++}for(var shapeId in shapes){var shape=shapes[shapeId];"linker"==shape.name&&(Designer.painter.renderLinker(shape),Model.add(shape,!1))}0==shapeCount&&Model.build(),Navigator.draw()}}),Designer.addFunction("selectAll",function(){var e=Model.define.elements,t=[];for(var r in e)t.push(r);Utils.selectShape(t)}),Designer.addFunction("selectVertical",function(e){var t=e.y,r=$("#designer_subline1"),i=$("#designer_subline2");r.css({display:"block","z-index":Model.orderList.length+4,width:Model.define.page.width,height:0,borderStyle:"dotted",borderWidth:"1px",left:0,top:t}),i.css({display:"block","z-index":Model.orderList.length+5,width:Model.define.page.width,height:0,borderStyle:"dotted",borderWidth:"1px",left:0,top:t,cursor:"move"});var n=filterShapeAndLine("y",t),o=$("#canvas_container"),a=$("#designer_canvas");i.bind("mousedown.drag",function(e){o.bind("mousemove.drag",function(e){var o=Utils.getRelativePos(e.pageX,e.pageY,a);if(o.y>=t)r.css({borderColor:"rgb(114,253,107)",backgroundColor:"rgba(114,253,107,0.5)",height:o.y-t}),i.css({borderColor:"rgb(114,253,107)",backgroundColor:"transparent",height:0}),i.css({top:o.y});else{let e=n.passedShapesEdge-n.sublineSideEdge>0?n.passedShapesEdge:n.sublineSideEdge;o.y<e&&(o.y=e),r.css({borderColor:"rgb(246,163,163)",backgroundColor:"transparent",height:0}),i.css({borderColor:"rgb(246,163,163)",backgroundColor:"rgba(246,163,163,0.5)",height:t-o.y}),i.css({top:o.y})}$(document).unbind("mouseup.drop").bind("mouseup.drop",function(e){var n=r.height(),o=i.height();0!=n&&0==o?moveShapeAndFile("y",t,n):0==n&&0!=o&&moveShapeAndFile("y",t,0-o),r.css({borderColor:"#333",backgroundColor:"transparent",height:0}),i.css({borderColor:"#333",backgroundColor:"transparent",height:0}),r.hide(),i.hide(),$(document).unbind("mouseup.drop")})}),$(document).bind("mouseup.drag",function(){o.unbind("mousemove.drag"),i.unbind("mousedown.drag"),$(document).unbind("mouseup.drag")})})}),Designer.addFunction("selectHorizontal",function(e){var t=e.x,r=$("#designer_subline1"),i=$("#designer_subline2");r.css({display:"block","z-index":Model.orderList.length+4,width:0,height:Model.define.page.width,borderStyle:"dotted",borderWidth:"1px",left:t,top:0}),i.css({display:"block","z-index":Model.orderList.length+5,width:0,height:Model.define.page.width,borderStyle:"dotted",borderWidth:"1px",left:t,top:0,cursor:"move"});var n=filterShapeAndLine("x",t),o=$("#canvas_container"),a=$("#designer_canvas");i.bind("mousedown.drag",function(e){o.bind("mousemove.drag",function(e){var o=Utils.getRelativePos(e.pageX,e.pageY,a);if(o.x>=t)r.css({borderColor:"rgb(114,253,107)",backgroundColor:"rgba(114,253,107,0.5)",width:o.x-t}),i.css({borderColor:"rgb(114,253,107)",backgroundColor:"transparent",width:0}),i.css({left:o.x});else{let e=n.passedShapesEdge-n.sublineSideEdge>0?n.passedShapesEdge:n.sublineSideEdge;o.x<e&&(o.x=e),r.css({borderColor:"rgb(246,163,163)",backgroundColor:"transparent",width:0}),i.css({borderColor:"rgb(246,163,163)",backgroundColor:"rgba(246,163,163,0.5)",width:t-o.x}),i.css({left:o.x})}$(document).unbind("mouseup.drop").bind("mouseup.drop",function(e){var n=r.width(),o=i.width();0!=n&&0==o?moveShapeAndFile("x",t,n):0==n&&0!=o&&moveShapeAndFile("x",t,0-o),r.css({borderColor:"#333",backgroundColor:"transparent",width:0}),i.css({borderColor:"#333",backgroundColor:"transparent",width:0}),r.hide(),i.hide(),$(document).unbind("mouseup.drop")})}),$(document).bind("mouseup.drag",function(){o.unbind("mousemove.drag"),i.unbind("mousedown.drag"),$(document).unbind("mouseup.drag")})})}),Designer.addFunction("setFontStyle",function(e){var t=Utils.getSelected();if(0!=t.length){for(var r=0;r<t.length;r++){var i=t[r];i.fontStyle=Utils.copy(i.fontStyle),void 0!==e.fontFamily&&(i.fontStyle.fontFamily=e.fontFamily),void 0!==e.size&&(i.fontStyle.size=e.size),void 0!==e.color&&(i.fontStyle.color=e.color),void 0!==e.bold&&(i.fontStyle.bold=e.bold),void 0!==e.italic&&(i.fontStyle.italic=e.italic),void 0!==e.underline&&(i.fontStyle.underline=e.underline),void 0!==e.textAlign&&(i.fontStyle.textAlign=e.textAlign),"linker"==i.name?Designer.painter.renderLinker(i):(void 0!==e.vAlign&&(i.fontStyle.vAlign=e.vAlign),Designer.painter.renderShape(i))}Model.updateMulti(t)}}),Designer.addFunction("setShapeStyle",function(e){var t=Utils.getSelected();if(0!=t.length){for(var r=[],i=0;i<t.length;i++){var n=t[i];"linker"!=n.name&&(n.shapeStyle=Utils.copy(n.shapeStyle),void 0!==e.alpha&&(n.shapeStyle.alpha=e.alpha),Designer.painter.renderShape(n),r.push(n))}Model.updateMulti(r)}}),Designer.addFunction("setLineStyle",function(e){var t=Utils.getSelected();if(0!=t.length){var r=Utils.getFamilyShapes(t);t=t.concat(r);for(var i=0;i<t.length;i++){var n=t[i];n.lineStyle=Utils.copy(n.lineStyle),void 0!==e.lineWidth&&(n.lineStyle.lineWidth=e.lineWidth),void 0!==e.lineColor&&(n.lineStyle.lineColor=e.lineColor),void 0!==e.lineStyle&&(n.lineStyle.lineStyle=e.lineStyle),"linker"==n.name?(void 0!==e.beginArrowStyle&&(n.lineStyle.beginArrowStyle=e.beginArrowStyle,Schema.linkerDefaults.lineStyle.beginArrowStyle=e.beginArrowStyle),void 0!==e.endArrowStyle&&(n.lineStyle.endArrowStyle=e.endArrowStyle,Schema.linkerDefaults.lineStyle.endArrowStyle=e.endArrowStyle),0==n.lineStyle.lineWidth&&(n.lineStyle.lineWidth=1),Designer.painter.renderLinker(n)):Designer.painter.renderShape(n)}Model.updateMulti(t)}}),Designer.addFunction("setFillStyle",function(e){var t=Utils.getSelected();if(0!=t.length&&0!=(t=Designer.events.push("settingFillStyle",t)).length){for(var r=[],i=0;i<t.length;i++){var n=t[i];if("linker"!=n.name){n.fillStyle=Utils.copy(n.fillStyle);var o=n.fillStyle.type;void 0!==e.type&&(a(n,e.type),o=e.type),void 0!==e.color&&("solid"==o?n.fillStyle.color=e.color:"gradient"==o&&(n.fillStyle.beginColor=GradientHelper.getLighterColor(e.color),n.fillStyle.endColor=GradientHelper.getDarkerColor(e.color))),"gradient"==o&&(void 0!==e.beginColor&&(n.fillStyle.beginColor=e.beginColor),void 0!==e.endColor&&(n.fillStyle.endColor=e.endColor),void 0!==e.gradientType&&(n.fillStyle.gradientType=e.gradientType,"linear"==e.gradientType?(delete n.fillStyle.radius,n.fillStyle.angle=0):(delete n.fillStyle.angle,n.fillStyle.radius=.75)),void 0!==e.radius&&(n.fillStyle.radius=e.radius),void 0!==e.angle&&(n.fillStyle.angle=e.angle)),"image"==o&&(void 0!==e.display&&(n.fillStyle.display=e.display),void 0!==e.fileId&&(n.fillStyle.fileId=e.fileId),void 0!==e.imageW&&(n.fillStyle.imageW=e.imageW),void 0!==e.imageH&&(n.fillStyle.imageH=e.imageH)),Designer.painter.renderShape(n),r.push(n)}}Model.updateMulti(r)}function a(e,t){var r=e.fillStyle;if(r.type!=t){var i={type:t};if("solid"==t)if("gradient"==r.type){var n=GradientHelper.getDarkerColor(r.beginColor);i.color=n}else i.color="255,255,255";else if("gradient"==t){var o=r.color;"solid"!=r.type&&(o="255,255,255"),i.gradientType="linear",i.angle=0,i.beginColor=GradientHelper.getLighterColor(o),i.endColor=GradientHelper.getDarkerColor(o)}else"image"==t&&(i.fileId="",i.display="fill",i.imageW=10,i.imageH=10);e.fillStyle=i}}}),Designer.addFunction("setLinkerType",function(e){var t=Utils.getSelected();if(0!=t.length){for(var r=[],i=0;i<t.length;i++){var n=t[i];"linker"==n.name&&(n.linkerType=e,Designer.painter.renderLinker(n,!0),r.push(n))}Schema.linkerDefaults.linkerType=e;var o=Utils.getSelectedIds();o.length>1&&Designer.painter.drawControls(o),Model.updateMulti(r),Utils.showLinkerControls()}}),Designer.addFunction("matchSize",function(e){var t=Utils.getSelected();if(0!=t.length&&e){for(var r=null,i=null,n=[],o=0;o<t.length;o++){"linker"!=(l=t[o]).name&&((null==r||l.props.w>r)&&(r=l.props.w),(null==i||l.props.h>i)&&(i=l.props.h))}"auto"==e.w&&(e.w=r),"auto"==e.h&&(e.h=i),Utils.removeAnchors();var a=[];for(o=0;o<t.length;o++){var l;if("linker"!=(l=t[o]).name){var s=Designer.op.changeShapeProps(l,e);Utils.showAnchors(l),Utils.mergeArray(n,s),a.push(l)}}for(o=0;o<n.length;o++){var d=n[o],p=Model.getShapeById(d);Designer.painter.renderLinker(p,!0),a.push(p)}Designer.painter.drawControls(Utils.getSelectedIds()),Model.updateMulti(a)}}),Designer.addFunction("alignShapes",function(e){var t=Utils.getSelected();if(0!=t.length&&e){var r=Utils.getSelectedIds(),i=Utils.getControlBox(r),n=[];Utils.removeAnchors();for(var o=[],a=0;a<t.length;a++){var l=t[a];if("linker"!=l.name&&o.push(l),"left"==e){if("linker"!=l.name){var s=Utils.getShapeBox(l),d={x:i.x-(s.x-l.props.x)},p=Designer.op.changeShapeProps(l,d);Utils.showAnchors(l),Utils.mergeArray(n,p)}else if(null==l.from.id&&null==l.to.id){var h=Utils.getLinkerBox(l);l.from.x-=h.x-i.x,l.to.x-=h.x-i.x,n.push(l.id)}}else if("center"==e){var g=i.x+i.w/2;if("linker"!=l.name){d={x:Math.round(g-l.props.w/2)},p=Designer.op.changeShapeProps(l,d);Utils.showAnchors(l),Utils.mergeArray(n,p)}else if(null==l.from.id&&null==l.to.id){h=Utils.getLinkerBox(l);l.from.x+=Math.round(g-h.w/2-h.x),l.to.x+=Math.round(g-h.w/2-h.x),n.push(l.id)}}else if("right"==e){var c=i.x+i.w;if("linker"!=l.name){s=Utils.getShapeBox(l),d={x:c-l.props.w-(l.props.x-s.x)},p=Designer.op.changeShapeProps(l,d);Utils.showAnchors(l),Utils.mergeArray(n,p)}else if(null==l.from.id&&null==l.to.id){h=Utils.getLinkerBox(l);l.from.x+=c-h.x-h.w,l.to.x+=c-h.x-h.w,n.push(l.id)}}else if("top"==e){if("linker"!=l.name){s=Utils.getShapeBox(l),d={y:i.y-(s.y-l.props.y)},p=Designer.op.changeShapeProps(l,d);Utils.showAnchors(l),Utils.mergeArray(n,p)}else if(null==l.from.id&&null==l.to.id){h=Utils.getLinkerBox(l);l.from.y-=h.y-i.y,l.to.y-=h.y-i.y,n.push(l.id)}}else if("middle"==e){var u=i.y+i.h/2;if("linker"!=l.name){d={y:Math.round(u-l.props.h/2)},p=Designer.op.changeShapeProps(l,d);Utils.showAnchors(l),Utils.mergeArray(n,p)}else if(null==l.from.id&&null==l.to.id){h=Utils.getLinkerBox(l);l.from.y+=Math.round(u-h.h/2-h.y),l.to.y+=Math.round(u-h.h/2-h.y),n.push(l.id)}}else if("bottom"==e){var f=i.y+i.h;if("linker"!=l.name){s=Utils.getShapeBox(l),d={y:f-l.props.h-(l.props.y-s.y)},p=Designer.op.changeShapeProps(l,d);Utils.showAnchors(l),Utils.mergeArray(n,p)}else if(null==l.from.id&&null==l.to.id){h=Utils.getLinkerBox(l);l.from.y+=f-h.y-h.h,l.to.y+=f-h.y-h.h,n.push(l.id)}}}for(a=0;a<n.length;a++){var y=n[a],S=Model.getShapeById(y);Designer.painter.renderLinker(S,!0),o.push(S)}Designer.painter.drawControls(r),Model.updateMulti(o)}}),Designer.addFunction("distributeShapes",function(e){var t=Utils.getSelected();if(0!=t.length&&e){var r=Utils.getSelectedIds(),i=Utils.getControlBox(r),n=[];Utils.removeAnchors();for(var o=[],a=0;a<t.length;a++){"linker"!=(p=t[a]).name&&o.push(p)}if("h"==e){o.sort(function(e,t){return e.props.x-t.props.x});var l=i.w;for(a=0;a<o.length;a++){l-=(p=o[a]).props.w}var s=l/(o.length-1),d=i.x;for(a=0;a<o.length;a++){var p=o[a],h={x:d},g=Designer.op.changeShapeProps(p,h);Utils.showAnchors(p),Utils.mergeArray(n,g),d+=p.props.w+s}}else{o.sort(function(e,t){return e.props.y-t.props.y});var c=i.h;for(a=0;a<o.length;a++){c-=(p=o[a]).props.h}for(s=c/(o.length-1),d=i.y,a=0;a<o.length;a++){p=o[a],h={y:d},g=Designer.op.changeShapeProps(p,h);Utils.showAnchors(p),Utils.mergeArray(n,g),d+=p.props.h+s}}for(a=0;a<n.length;a++){var u=n[a],f=Model.getShapeById(u);Designer.painter.renderLinker(f,!0),o.push(f)}Designer.painter.drawControls(r),Model.updateMulti(o)}}),Designer.addFunction("layerShapes",function(e){var t=Utils.getSelected();if(0!=t.length&&e){var r;if(t.sort(function(e,t){return e.props.zindex-t.props.zindex}),"front"==e){r=Model.maxZIndex;for(var i=0;i<t.length;i++){r+=1,(g=t[i]).props.zindex=r}}else if("forward"==e){var n=null,o=null;for(i=0;i<t.length;i++){if(null!=(n=c(g=t[i]))){o=g.props.zindex;break}}if(null==n)return;var a=n.props.zindex,l=c(n),s=a+1;null!=l&&(s=a+(l.props.zindex-a)/2);var d=s-o;for(i=0;i<t.length;i++){(g=t[i]).props.zindex+=d}}else if("back"==e){r=Model.orderList[0].zindex;for(i=t.length-1;i>=0;i--){r-=1,(g=t[i]).props.zindex=r}}else if("backward"==e){var p=null;for(o=null,i=0;i<t.length;i++){if(null!=(p=u(g=t[i]))){o=g.props.zindex;break}}if(null==p)return;a=p.props.zindex;var h=u(p);s=a-1;null!=h&&(s=a-(a-h.props.zindex)/2);for(d=s-o,i=0;i<t.length;i++){var g;(g=t[i]).props.zindex+=d}}Model.updateMulti(t)}function c(e){for(var t=Utils.getShapeBox(e),r=0;r<Model.orderList.length;r++){var i=Model.orderList[r];if(!(i.zindex<=e.props.zindex||Utils.isSelected(i.id))){var n=Model.getShapeById(i.id),o=Utils.getShapeBox(n);if(Utils.rectCross(t,o))return n}}return null}function u(e){for(var t=Utils.getShapeBox(e),r=Model.orderList.length-1;r>=0;r--){var i=Model.orderList[r];if(!(i.zindex>=e.props.zindex||Utils.isSelected(i.id))){var n=Model.getShapeById(i.id),o=Utils.getShapeBox(n);if(Utils.rectCross(t,o))return n}}return null}}),Designer.addFunction("group",function(){var e=Utils.getSelected();if(!(e.length<2)){for(var t=Utils.newId(),r=0;r<e.length;r++){e[r].group=t}Model.updateMulti(e)}}),Designer.addFunction("ungroup",function(){var e=Utils.getSelected();if(0!=e.length){for(var t=0;t<e.length;t++){e[t].group=null}Model.updateMulti(e)}}),Designer.addFunction("lockShapes",function(){var e=Utils.getSelectedIds();if(0!=e.length){for(var t=[],r=0;r<e.length;r++){var i=Model.getShapeById(e[r]);i.locked=!0,t.push(i)}Utils.unselect(),Utils.selectShape(e),Model.updateMulti(t)}}),Designer.addFunction("unlockShapes",function(){var e=Utils.getSelectedLockedIds();if(0!=e.length){for(var t=[],r=0;r<e.length;r++){var i=Model.getShapeById(e[r]);i.locked=!1,t.push(i)}var n=Utils.getSelectedIds();Utils.unselect(),Utils.selectShape(n),Model.updateMulti(t)}}),Designer.addFunction("setPageStyle",function(e){Model.updatePage(e)}),Designer.addFunction("setReadonly",function(e){"boolean"==typeof e&&e&&($(".diagram_title").addClass("readonly"),$("#shape_panel").addClass("readonly"),$("#designer_viewport").addClass("readonly"),Designer.hotkey.cancel(),Designer.op.cancel(),$(window).trigger("resize.designer"),Dock.init(),$("#dock .owner").hide(),$(".dock_view").hide(),Dock.currentView="",Designer.contextMenu.destroy())}),Designer.addFunction("zoomIn",function(){var e=Designer.config.scale+.1;Designer.setZoomScale(e)}),Designer.addFunction("zoomOut",function(){var e=Designer.config.scale-.1;Designer.setZoomScale(e)}),Designer.addFunction("setZoomScale",function(e){for(var t in e<.25&&(e=.25),e>4&&(e=4),Utils.hideLinkerCursor(),Designer.config.scale=e,Designer.initialize.initCanvas(),Model.define.elements){var r=Model.define.elements[t];Designer.painter.renderShape(r)}var i=Utils.getSelectedIds(),n=Utils.getSelectedLockedIds();Utils.mergeArray(i,n),Utils.unselect(),Utils.selectShape(i),Utils.showLinkerCursor()}),Designer.addFunction("setShapeProps",function(e){var t=Utils.getSelected();if(0!=t.length&&e){for(var r=[],i=[],n=0;n<t.length;n++){var o=t[n];if("linker"!=o.name){var a=Designer.op.changeShapeProps(o,e);r.push(o),a&&a.length&&Utils.mergeArray(i,a)}}for(n=0;n<i.length;n++){var l=i[n],s=Model.getShapeById(l);Designer.painter.renderLinker(s,!0),r.push(s)}r.length>0&&Model.updateMulti(r);var d=Utils.getSelectedIds();Utils.unselect(),Utils.selectShape(d)}}),Designer.addFunction("addDataAttribute",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]),e.id=Utils.newId(),e.category="custom",r.dataAttributes.push(e),MessageSource.doWithoutUpdateDock(function(){Model.update(r)})}),Designer.addFunction("updateDataAttribute",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]);for(var i=!1,n=0;n<r.dataAttributes.length;n++){r.dataAttributes[n].id==e.id&&(r.dataAttributes[n]=e,i=!0)}i&&(MessageSource.doWithoutUpdateDock(function(){Model.update(r)}),Designer.painter.renderShape(r))}),Designer.addFunction("getDataAttrById",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]);for(var i=0;i<r.dataAttributes.length;i++){var n=r.dataAttributes[i];if(n.id==e)return n}return null}),Designer.addFunction("getDefaultDataAttrByName",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]);for(var i=0;i<r.dataAttributes.length;i++){var n=r.dataAttributes[i];if("default"==n.category&&n.name==e)return n}return null}),Designer.addFunction("deleteDataAttribute",function(e){var t=Utils.getSelectedIds(),r=Model.getShapeById(t[0]);r.dataAttributes||(r.dataAttributes=[]);for(var i=!1,n=0;n<r.dataAttributes.length;n++){r.dataAttributes[n].id==e&&(r.dataAttributes.splice(n,1),i=!0)}i&&(MessageSource.doWithoutUpdateDock(function(){Model.update(r)}),Designer.painter.renderShape(r))}),Designer.addFunction("setSchema",function(schemaCategories,callback){Util.ajax({url:"./w?sid="+$("#sid").val()+"&cmd=com.actionsoft.apps.coe.pal_pl_repository_designer_shape",data:{uuid:chartId,methodId:methodId,categories:schemaCategories,wsId:$("#wsId").val()},type:"get",success:function(data){var dataJson=JSON.parse(data),shapes,tempArray=[];for(var key in dataJson)tempArray.push(key);for(var commonShapeConfig=Model.define.commonShapeConfig,i=0;i<tempArray.length;i++)if("shapes"==tempArray[i])shapes=dataJson[tempArray[i]];else{var shapeConfigJson=JSON.parse(dataJson[tempArray[i]]);for(var shapeId in shapeConfigJson)commonShapeConfig[shapeId]=shapeConfigJson[shapeId]}Schema.empty(),eval(shapes),addDefaultSchemaShape(),Schema.init(!0),Designer.initialize.initShapes(),callback&&callback()}})}); |