UNPKG

drawio-offline

Version:
123 lines 1.24 MB
function mxBpmnShape(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxBpmnShape,mxShape); mxBpmnShape.prototype.customProperties=[{name:"symbol",dispName:"Event",type:"enum",defVal:"general",enumList:[{val:"general",dispName:"General"},{val:"message",dispName:"Message"},{val:"timer",dispName:"Timer"},{val:"escalation",dispName:"Escalation"},{val:"conditional",dispName:"Conditional"},{val:"link",dispName:"Link"},{val:"error",dispName:"Error"},{val:"cancel",dispName:"Cancel"},{val:"compensation",dispName:"Compensation"},{val:"signal",dispName:"Signal"},{val:"multiple",dispName:"Multiple"}, {val:"parallelMultiple",dispName:"Parallel Multiple"},{val:"terminate",dispName:"Terminate"},{val:"exclusiveGw",dispName:"Exclusive Gw"},{val:"parallelGw",dispName:"Parallel Gw"},{val:"complexGw",dispName:"Complex Gw"}]},{name:"outline",dispName:"Event Type",type:"enum",defVal:"standard",enumList:[{val:"standard",dispName:"Standard"},{val:"eventInt",dispName:"Interrupting"},{val:"eventNonint",dispName:"Non-Interrupting"},{val:"catching",dispName:"Catching"},{val:"boundInt",dispName:"Bound Interrupting"}, {val:"boundNonint",dispName:"Bound Non-Interrupting"},{val:"throwing",dispName:"Throwing"},{val:"end",dispName:"End"},{val:"none",dispName:"None"}]},{name:"background",dispName:"Background",type:"enum",defVal:"none",enumList:[{val:"gateway",dispName:"Gateway"},{val:"none",dispName:"None"}]}]; mxBpmnShape.prototype.eventTypeEnum={START_STANDARD:"standard",EVENT_SP_INT:"eventInt",EVENT_SP_NONINT:"eventNonint",CATCHING:"catching",BOUND_INT:"boundInt",BOUND_NONINT:"boundNonint",THROWING:"throwing",END:"end",NONE:"none",GATEWAY:"gateway"}; mxBpmnShape.prototype.eventEnum={GENERAL:"general",MESSAGE:"message",TIMER:"timer",ESCALATION:"escalation",CONDITIONAL:"conditional",LINK:"link",ERROR:"error",CANCEL:"cancel",COMPENSATION:"compensation",SIGNAL:"signal",MULTIPLE:"multiple",PAR_MULTI:"parallelMultiple",TERMINATE:"terminate",GW_EXCLUSIVE:"exclusiveGw",GW_PARALLEL:"parallelGw",GW_COMPLEX:"complexGw"};mxBpmnShape.prototype.miscEnum={OUTLINE:"outline",BACKGROUND:"background",SYMBOL:"symbol",GATEWAY:"gateway"}; mxBpmnShape.prototype.paintVertexShape=function(a,d,e,b,c){this.redrawPath(a,d,e,b,c,mxBpmnShape.prototype.miscEnum.BACKGROUND);mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.BACKGROUND,mxBpmnShape.prototype.eventTypeEnum.NONE)===mxBpmnShape.prototype.eventTypeEnum.GATEWAY&&a.setShadow(!1);this.redrawPath(a,d,e,b,c,mxBpmnShape.prototype.miscEnum.OUTLINE);this.redrawPath(a,d,e,b,c,mxBpmnShape.prototype.miscEnum.SYMBOL)}; mxBpmnShape.prototype.redrawPath=function(a,d,e,b,c,f){var g=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.BACKGROUND,mxBpmnShape.prototype.eventTypeEnum.NONE);if(f==mxBpmnShape.prototype.miscEnum.BACKGROUND){if(null!=g){var h=this.backgrounds[g];null!=h&&(a.translate(d,e),h.call(this,a,d,e,b,c,f))}}else if(f==mxBpmnShape.prototype.miscEnum.OUTLINE){g===mxBpmnShape.prototype.eventTypeEnum.GATEWAY?(a.translate(b/4,c/4),c/=2,b/=2,this.constraints=[new mxConnectionConstraint(new mxPoint(.5, 0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.75),!1),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.75),!1)]):this.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0, .5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.145,.145),!1),new mxConnectionConstraint(new mxPoint(.145,.855),!1),new mxConnectionConstraint(new mxPoint(.855,.145),!1),new mxConnectionConstraint(new mxPoint(.855,.855),!1)];var k=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.OUTLINE,mxBpmnShape.prototype.eventTypeEnum.NONE);null!=k&&(h=this.outlines[k],null!=h&&h.call(this,a,d,e,b,c,g===mxBpmnShape.prototype.eventTypeEnum.GATEWAY))}else if(f== mxBpmnShape.prototype.miscEnum.SYMBOL&&(g===mxBpmnShape.prototype.eventTypeEnum.GATEWAY&&(c/=2,b/=2),g=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.SYMBOL,null),null!=g&&(h=this.symbols[g],null!=h))){var l=a.state.strokeColor,m=a.state.fillColor,k=mxUtils.getValue(this.style,mxBpmnShape.prototype.miscEnum.OUTLINE,mxBpmnShape.prototype.eventTypeEnum.NONE);g===mxBpmnShape.prototype.eventEnum.MESSAGE?(a.translate(.15*b,.3*c),b*=.7,c*=.4):g===mxBpmnShape.prototype.eventEnum.TIMER?(a.translate(.11* b,.11*c),b*=.78,c*=.78):g===mxBpmnShape.prototype.eventEnum.ESCALATION?(a.translate(.19*b,.15*c),b*=.62,c*=.57):g===mxBpmnShape.prototype.eventEnum.CONDITIONAL?(a.translate(.3*b,.16*c),b*=.4,c*=.68):g===mxBpmnShape.prototype.eventEnum.LINK?(a.translate(.27*b,.33*c),b*=.46,c*=.34):g===mxBpmnShape.prototype.eventEnum.ERROR?(a.translate(.212*b,.243*c),b*=.58,c*=.507):g===mxBpmnShape.prototype.eventEnum.CANCEL?(a.translate(.22*b,.22*c),b*=.56,c*=.56):g===mxBpmnShape.prototype.eventEnum.COMPENSATION?(a.translate(.28* b,.35*c),b*=.44,c*=.3):g===mxBpmnShape.prototype.eventEnum.SIGNAL?(a.translate(.19*b,.15*c),b*=.62,c*=.57):g===mxBpmnShape.prototype.eventEnum.MULTIPLE?(a.translate(.2*b,.19*c),b*=.6,c*=.565):g===mxBpmnShape.prototype.eventEnum.PAR_MULTI?(a.translate(.2*b,.2*c),b*=.6,c*=.6):g===mxBpmnShape.prototype.eventEnum.TERMINATE?(a.translate(.05*b,.05*c),b*=.9,c*=.9):g===mxBpmnShape.prototype.eventEnum.GW_EXCLUSIVE&&(a.translate(.12*b,0),b*=.76);var n=!1;if("star"===g)a.setFillColor(l);else if(k===mxBpmnShape.prototype.eventTypeEnum.THROWING|| k===mxBpmnShape.prototype.eventTypeEnum.END)a.setStrokeColor(m),a.setFillColor(l),n=!0;h.call(this,a,d,e,b,c,f,n);if("star"===g)a.setFillColor(m);else if(k===mxBpmnShape.prototype.eventTypeEnum.THROWING||k===mxBpmnShape.prototype.eventTypeEnum.END)a.setStrokeColor(l),a.setFillColor(m)}};mxBpmnShape.prototype.backgrounds={none:function(a,d,e,b,c){},gateway:function(a,d,e,b,c){a.begin();a.moveTo(b/2,0);a.lineTo(b,c/2);a.lineTo(b/2,c);a.lineTo(0,c/2);a.close();a.fillAndStroke()}}; mxBpmnShape.prototype.outlines={none:function(a,d,e,b,c,f){f||a.setShadow(!1)},standard:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1)},eventInt:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1)},eventNonint:function(a,d,e,b,c,f){d=a.state.dashed;a.setDashed(!0);a.ellipse(0,0,b,c);a.fillAndStroke();a.setDashed(d);f||a.setShadow(!1)},catching:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c- 4);a.stroke()},boundInt:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke()},boundNonint:function(a,d,e,b,c,f){d=a.state.dashed;a.setDashed(!0);a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(2,2,b-4,c-4);a.stroke();a.setDashed(d)},throwing:function(a,d,e,b,c,f){a.ellipse(0,0,b,c);a.fillAndStroke();f||a.setShadow(!1);a.ellipse(.02*b+2,.02*c+2,.96*b-4,.96*c-4);a.stroke()},end:function(a,d,e,b,c,f){d=a.state.strokeWidth;a.setStrokeWidth(3* d);a.ellipse(0,0,b,c);a.fillAndStroke();a.setStrokeWidth(d);f||a.setShadow(!1)}}; mxBpmnShape.prototype.symbols={general:function(a,d,e,b,c){},message:function(a,d,e,b,c,f,g){a.rect(0,0,b,c);a.fillAndStroke();"none"===mxUtils.getValue(this.style,"fillColor","none")&&g&&a.setStrokeColor("#ffffff");a.begin();a.moveTo(0,0);a.lineTo(.5*b,.5*c);a.lineTo(b,0);a.stroke()},timer:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(.5*b,0);a.lineTo(.5*b,.0642*c);a.moveTo(.7484*b,.0654*c);a.lineTo(.7126*b,.1281*c);a.moveTo(.93*b,.2471*c);a.lineTo(.8673*b,.2854*c); a.moveTo(b,.5*c);a.lineTo(.9338*b,.5*c);a.moveTo(.93*b,.7509*c);a.lineTo(.8673*b,.7126*c);a.moveTo(.7484*b,.9326*c);a.lineTo(.7126*b,.8699*c);a.moveTo(.5*b,.9338*c);a.lineTo(.5*b,c);a.moveTo(.2496*b,.9325*c);a.lineTo(.2854*b,.8699*c);a.moveTo(.068*b,.7509*c);a.lineTo(.1307*b,.7126*c);a.moveTo(0,.5*c);a.lineTo(.0642*b,.5*c);a.moveTo(.068*b,.2471*c);a.lineTo(.1307*b,.2854*c);a.moveTo(.2496*b,.0654*c);a.lineTo(.2854*b,.1281*c);a.moveTo(.5246*b,.0706*c);a.lineTo(.5*b,.5*c);a.lineTo(.7804*b,.5118*c);a.stroke()}, escalation:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.lineTo(.5*b,.5*c);a.close();a.fillAndStroke()},conditional:function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();a.begin();a.moveTo(0,.1027*c);a.lineTo(.798*b,.1027*c);a.moveTo(0,.3669*c);a.lineTo(.798*b,.3669*c);a.moveTo(0,.6311*c);a.lineTo(.798*b,.6311*c);a.moveTo(0,.8953*c);a.lineTo(.798*b,.8953*c);a.stroke()},link:function(a,d,e,b,c){a.begin();a.moveTo(0,.76*c);a.lineTo(0,.24*c);a.lineTo(.63*b,.24*c);a.lineTo(.63* b,0);a.lineTo(b,.5*c);a.lineTo(.63*b,c);a.lineTo(.63*b,.76*c);a.close();a.fillAndStroke()},error:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.3287*b,.123*c);a.lineTo(.6194*b,.6342*c);a.lineTo(b,0);a.lineTo(.6625*b,.939*c);a.lineTo(.3717*b,.5064*c);a.close();a.fillAndStroke()},cancel:function(a,d,e,b,c){a.begin();a.moveTo(.1051*b,0);a.lineTo(.5*b,.3738*c);a.lineTo(.8909*b,0);a.lineTo(b,.1054*c);a.lineTo(.623*b,.5*c);a.lineTo(b,.8926*c);a.lineTo(.8909*b,c);a.lineTo(.5*b,.6242*c);a.lineTo(.1051* b,c);a.lineTo(0,.8926*c);a.lineTo(.373*b,.5*c);a.lineTo(0,.1054*c);a.close();a.fillAndStroke()},compensation:function(a,d,e,b,c){a.begin();a.moveTo(0,.5*c);a.lineTo(.5*b,0);a.lineTo(.5*b,c);a.close();a.moveTo(.5*b,.5*c);a.lineTo(b,0);a.lineTo(b,c);a.close();a.fillAndStroke()},signal:function(a,d,e,b,c){a.begin();a.moveTo(0,c);a.lineTo(.5*b,0);a.lineTo(b,c);a.close();a.fillAndStroke()},multiple:function(a,d,e,b,c){a.begin();a.moveTo(0,.39*c);a.lineTo(.5*b,0);a.lineTo(b,.39*c);a.lineTo(.815*b,c);a.lineTo(.185* b,c);a.close();a.fillAndStroke()},parallelMultiple:function(a,d,e,b,c){a.begin();a.moveTo(.38*b,0);a.lineTo(.62*b,0);a.lineTo(.62*b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();a.fillAndStroke()},terminate:function(a,d,e,b,c){a.ellipse(0,0,b,c);a.fillAndStroke()},exclusiveGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e); a.setFillColor(d);a.begin();a.moveTo(.105*b,0);a.lineTo(.5*b,.38*c);a.lineTo(.895*b,0*c);a.lineTo(b,.11*c);a.lineTo(.6172*b,.5*c);a.lineTo(b,.89*c);a.lineTo(.895*b,c);a.lineTo(.5*b,.62*c);a.lineTo(.105*b,c);a.lineTo(0,.89*c);a.lineTo(.3808*b,.5*c);a.lineTo(0,.11*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},parallelGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(.38*b,0);a.lineTo(.62*b,0);a.lineTo(.62* b,.38*c);a.lineTo(b,.38*c);a.lineTo(b,.62*c);a.lineTo(.62*b,.62*c);a.lineTo(.62*b,c);a.lineTo(.38*b,c);a.lineTo(.38*b,.62*c);a.lineTo(0,.62*c);a.lineTo(0,.38*c);a.lineTo(.38*b,.38*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},complexGw:function(a,d,e,b,c){d=a.state.strokeColor;e=a.state.fillColor;a.setStrokeColor(e);a.setFillColor(d);a.begin();a.moveTo(0,.44*c);a.lineTo(.36*b,.44*c);a.lineTo(.1*b,.18*c);a.lineTo(.18*b,.1*c);a.lineTo(.44*b,.36*c);a.lineTo(.44*b,0);a.lineTo(.56* b,0);a.lineTo(.56*b,.36*c);a.lineTo(.82*b,.1*c);a.lineTo(.9*b,.18*c);a.lineTo(.64*b,.44*c);a.lineTo(b,.44*c);a.lineTo(b,.56*c);a.lineTo(.64*b,.56*c);a.lineTo(.9*b,.82*c);a.lineTo(.82*b,.9*c);a.lineTo(.56*b,.64*c);a.lineTo(.56*b,c);a.lineTo(.44*b,c);a.lineTo(.44*b,.64*c);a.lineTo(.18*b,.9*c);a.lineTo(.1*b,.82*c);a.lineTo(.36*b,.56*c);a.lineTo(0,.56*c);a.close();a.fillAndStroke();a.setStrokeColor(d);a.setFillColor(e)},star:function(a,d,e,b,c){a.translate(b/5,c/6);c*=2/3;b*=.6;a.begin();a.moveTo(0,c/ 4);a.lineTo(b/3,c/4);a.lineTo(b/2,0);a.lineTo(2*b/3,c/4);a.lineTo(b,c/4);a.lineTo(5*b/6,c/2);a.lineTo(b,3*c/4);a.lineTo(2*b/3,3*c/4);a.lineTo(b/2,c);a.lineTo(b/3,3*c/4);a.lineTo(0,3*c/4);a.lineTo(b/6,c/2);a.close();a.fillAndStroke()}};mxCellRenderer.registerShape("mxgraph.bpmn.shape",mxBpmnShape);function mxShapeEREntity(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEREntity,mxShape); mxShapeEREntity.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)}; mxShapeEREntity.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();"round"===d?(a.begin(),a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f),a.close(),a.fillAndStroke()):"rect"===d?(a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR, "#ffffff"),a.setFillColor(f),a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.moveTo(.1*f,.1*f),a.lineTo(b-.1*f,.1*f),a.lineTo(b-.1*f,c-.1*f),a.lineTo(.1*f,c-.1*f),a.close(),a.stroke())};mxShapeEREntity.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}; mxCellRenderer.registerShape("mxgraph.er.entity",mxShapeEREntity); mxShapeEREntity.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25, 1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeEREntityExt(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeEREntityExt,mxShape); mxShapeEREntityExt.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"subText","+ attribute 1,+ attribute 2,+ attribute 3").toString().split(","),h=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),k=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17"),l=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#008cff"),m=mxUtils.getValue(this.style,"fillColor2","#ffffff"),n=0;a.translate(d, e);for(var p=1.25*k,q=0;q<g.length;q++){var r=mxUtils.getSizeForString(g[q],k,mxConstants.DEFAULT_FONTFAMILY).width;r>n&&(n=r)}b=Math.max(b,20,n+10);c=Math.max(c,20,(g.length+1)*p);this.background(a,d,e,b,c,10);a.setShadow(!1);this.shapes(a,d,e,b,c,k,l,m,10,p);this.mainText(a,d,e,b,c,f,k,m);this.attrText(a,d,e,b,c,g,k,h,p,10)}; mxShapeEREntityExt.prototype.background=function(a,d,e,b,c,f){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();a.begin();"round"===d?(a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f)):"rect"===d&&(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c));a.close();a.fillAndStroke()}; mxShapeEREntityExt.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*g,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}; mxShapeEREntityExt.prototype.shapes=function(a,d,e,b,c,f,g,h,k,l){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();"round"===d?(a.begin(),a.moveTo(0,k),a.arcTo(k,k,0,0,1,k,0),a.lineTo(b-k,0),a.arcTo(k,k,0,0,1,b,k),a.lineTo(b,l),a.lineTo(0,l),a.close(),a.fill(),a.setFillColor(h),a.begin(),a.moveTo(b,l),a.lineTo(b,c-k),a.arcTo(k,k,0,0,1,b-k,c),a.lineTo(k,c),a.arcTo(k,k,0,0,1,0,c-k),a.lineTo(0,l),a.close(),a.fill()):"rect"===d&&(a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,l),a.lineTo(0, l),a.close(),a.fill(),a.setFillColor(h),a.begin(),a.moveTo(0,l),a.lineTo(b,l),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fill());a.begin();"round"===d?(a.moveTo(0,k),a.arcTo(k,k,0,0,1,k,0),a.lineTo(b-k,0),a.arcTo(k,k,0,0,1,b,k),a.lineTo(b,c-k),a.arcTo(k,k,0,0,1,b-k,c),a.lineTo(k,c),a.arcTo(k,k,0,0,1,0,c-k)):"rect"===d&&(a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c));a.close();a.stroke()}; mxShapeEREntityExt.prototype.attrText=function(a,d,e,b,c,f,g,h,k,l){for(d=0;d<f.length;d++)a.begin(),a.setFontSize(g),a.setFontColor(h),a.text(.5*l,(d+1.5)*k,0,0,f[d],mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.entityExt",mxShapeEREntityExt); mxShapeEREntityExt.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25, 1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERAttribute(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERAttribute,mxShape); mxShapeERAttribute.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)}; mxShapeERAttribute.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","simple").toString();"simple"===d?(a.begin(),a.ellipse(0,0,b,c),a.fillAndStroke()):"dblFrame"===d&&(d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),a.setFillColor(d),a.begin(),a.ellipse(0,0,b,c),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.ellipse(.1*f,.1*f,b-.2*f,c-.2*f),a.stroke())}; mxShapeERAttribute.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.attribute",mxShapeERAttribute); mxShapeERAttribute.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.144,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.144),!1),new mxConnectionConstraint(new mxPoint(.856,.856),!1),new mxConnectionConstraint(new mxPoint(.144,.856),!1),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0)]; function mxShapeERHas(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERHas,mxShape); mxShapeERHas.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)}; mxShapeERHas.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","rhombus").toString();"rhombus"===d?(a.begin(),a.moveTo(0,.5*c),a.lineTo(.5*b,0),a.lineTo(b,.5*c),a.lineTo(.5*b,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(d=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),a.setFillColor(d),a.begin(),a.moveTo(0,.5*c),a.lineTo(.5*b,0),a.lineTo(b,.5*c),a.lineTo(.5*b,c),a.close(),a.fillAndStroke(),a.begin(),a.moveTo(.1*b,.5*c),a.lineTo(.5*b,.1* c),a.lineTo(.9*b,.5*c),a.lineTo(.5*b,.9*c),a.close(),a.stroke())};mxShapeERHas.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.has",mxShapeERHas); mxShapeERHas.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.75),!1),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.75,.75),!1)]; function mxShapeERCloud(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERCloud,mxShape); mxShapeERCloud.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,g);a.setShadow(!1);this.mainText(a,d,e,b,c,f,h,g)}; mxShapeERCloud.prototype.background=function(a,d,e,b,c,f,g){a.begin();a.moveTo(.25*b,.25*c);a.curveTo(.05*b,.25*c,0,.5*c,.16*b,.55*c);a.curveTo(0,.66*c,.18*b,.9*c,.31*b,.8*c);a.curveTo(.4*b,c,.7*b,c,.8*b,.8*c);a.curveTo(b,.8*c,b,.6*c,.875*b,.5*c);a.curveTo(b,.3*c,.8*b,.1*c,.625*b,.2*c);a.curveTo(.5*b,.05*c,.3*b,.05*c,.25*b,.25*c);a.fillAndStroke()}; mxShapeERCloud.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.cloud",mxShapeERCloud); mxShapeERCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.08,.5),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.1),!1),new mxConnectionConstraint(new mxPoint(.5,.92),!1),new mxConnectionConstraint(new mxPoint(.24,.24),!1),new mxConnectionConstraint(new mxPoint(.22,.8),!1),new mxConnectionConstraint(new mxPoint(.81,.2),!1),new mxConnectionConstraint(new mxPoint(.78,.78),!1)]; function mxShapeERHierarchy(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERHierarchy,mxShape); mxShapeERHierarchy.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","main").toString().split(","),g=mxUtils.getValue(this.style,"subText","sub").toString().split(","),h=mxUtils.getValue(this.style,"textColor","#666666"),k=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,20);c=Math.max(c,20);this.background(a,d,e,b,c,10,h);a.setShadow(!1);this.shapeText(a,d,e,b,c,f,g,k,h)}; mxShapeERHierarchy.prototype.background=function(a,d,e,b,c,f,g){d=mxUtils.getValue(this.style,"buttonStyle","round").toString();"round"===d?(a.begin(),a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f),a.close(),a.fillAndStroke()):"rect"===d?(a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR, "#666666"),a.setFillColor(f),a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.moveTo(.1*f,.1*f),a.lineTo(b-.1*f,.1*f),a.lineTo(b-.1*f,c-.1*f),a.lineTo(.1*f,c-.1*f),a.close(),a.stroke());g=e=0;"round"===d?(e=.5*b,g=f,a.translate(e,g),b=.5*b-f,c-=2*f,a.begin(),a.moveTo(0,f),a.arcTo(f,f,0,0,1,f,0),a.lineTo(b-f,0),a.arcTo(f,f,0,0,1,b,f),a.lineTo(b,c-f),a.arcTo(f,f,0,0,1,b-f,c),a.lineTo(f,c),a.arcTo(f,f,0,0,1,0,c-f),a.close(),a.fillAndStroke()): "rect"===d?(e=.5*b,g=f,a.translate(e,g),b=.5*b-f,c-=2*f,a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke()):"dblFrame"===d&&(e=.5*b,g=.15*f,a.translate(e,g),b=.5*b-.15*f,c-=.3*f,f=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,"#666666"),a.setFillColor(f),a.begin(),a.moveTo(0,0),a.lineTo(b,0),a.lineTo(b,c),a.lineTo(0,c),a.close(),a.fillAndStroke(),f=Math.min(b,c),a.begin(),a.moveTo(.1*f,.1*f),a.lineTo(b-.1*f,.1*f),a.lineTo(b-.1*f,c-.1*f),a.lineTo(.1* f,c-.1*f),a.close(),a.stroke());a.translate(-e,-g)}; mxShapeERHierarchy.prototype.shapeText=function(a,d,e,b,c,f,g,h,k,l){a.begin();a.setFontSize(h);a.setFontColor(k);a.text(.25*b,.5*(c-h),0,0,f[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.25*b,.5*(c+h),0,0,f[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.7*b,.5*(c-h),0,0,g[0],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.7*b,.5*(c+h),0,0,g[1],mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}; mxCellRenderer.registerShape("mxgraph.er.hierarchy",mxShapeERHierarchy); mxShapeERHierarchy.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25, 1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERNote(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERNote,mxShape); mxShapeERNote.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"buttonText","Entity"),g=mxUtils.getValue(this.style,"textColor","#666666"),h=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17"),k=mxUtils.getValue(this.style,"fillColor2","#ffffff");a.translate(d,e);b=Math.max(b,40);c=Math.max(c,40);this.background(a,d,e,b,c,20);a.setShadow(!1);this.flipShape(a,d,e,b,c,20,k);this.mainText(a,d,e,b,c,f,h,g)}; mxShapeERNote.prototype.background=function(a,d,e,b,c,f){a.begin();a.moveTo(0,0);a.lineTo(b-f,0);a.lineTo(b,f);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxShapeERNote.prototype.flipShape=function(a,d,e,b,c,f,g){a.setLineJoin("round");a.setFillColor(g);a.begin();a.moveTo(b-f,0);a.lineTo(b,f);a.lineTo(b-f,f);a.close();a.fillAndStroke()}; mxShapeERNote.prototype.mainText=function(a,d,e,b,c,f,g,h){a.begin();a.setFontSize(g);a.setFontColor(h);a.text(.5*b,.5*c,0,0,f,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape("mxgraph.er.note",mxShapeERNote); mxShapeERNote.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1, .25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERChen(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERChen,mxShape); mxShapeERChen.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"textColor","#666666"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,40);c=Math.max(c,40);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c,g,f)};mxShapeERChen.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()}; mxShapeERChen.prototype.foreground=function(a,d,e,b,c,f,g){a.begin();a.moveTo(0,.25*c);a.lineTo(b,.25*c);a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.moveTo(0,.75*c);a.lineTo(b,.75*c);a.moveTo(.25*b,.5*c);a.lineTo(.25*b,c);a.moveTo(.5*b,.25*c);a.lineTo(.5*b,c);a.moveTo(.75*b,.5*c);a.lineTo(.75*b,c);a.stroke();a.begin();a.setFontSize(f);a.setFontColor(g);a.text(.5*b,.125*c,0,0,"ERD Peter Chen's Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(.85*f);a.text(.25*b,.375* c,0,0,"Cardinality",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.75*b,.375*c,0,0,"Optionality",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(.7*f);a.text(.125*b,.625*c,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.375*b,.625*c,0,0,"One",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.625*b,.625*c,0,0,"0",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.875*b, .625*c,0,0,"Optional",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.125*b,.875*c,0,0,"N",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.375*b,.875*c,0,0,"Many",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.625*b,.875*c,0,0,"1",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.875*b,.875*c,0,0,"Mandatory",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)}; mxCellRenderer.registerShape("mxgraph.er.chens",mxShapeERChen); mxShapeERChen.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0, .75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERBachman(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERBachman,mxShape); mxShapeERBachman.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"textColor","#666666"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c,g,f)};mxShapeERBachman.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()}; mxShapeERBachman.prototype.foreground=function(a,d,e,b,c,f,g){a.begin();a.moveTo(0,.125*c);a.lineTo(b,.125*c);a.moveTo(0,.25*c);a.lineTo(b,.25*c);a.moveTo(0,.375*c);a.lineTo(b,.375*c);a.moveTo(0,.5*c);a.lineTo(b,.5*c);a.moveTo(0,.625*c);a.lineTo(b,.625*c);a.moveTo(0,.75*c);a.lineTo(b,.75*c);a.moveTo(0,.875*c);a.lineTo(b,.875*c);a.moveTo(.5*b,.125*c);a.lineTo(.5*b,c);a.stroke();a.begin();a.setFontSize(f);a.setFontColor(g);a.text(.5*b,.0625*c,0,0,"ERD Bachman's Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE, 0,null,0,0,0);a.setFontSize(.85*f);a.text(.52*b,.1875*c,0,0,"Relationship",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.3125*c,0,0,"Cardinality (One)",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.4375*c,0,0,"Cardinality (Many)",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.5625*c,0,0,"Mandatory, One",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.6875*c,0,0,"Mandatory, Many",mxConstants.ALIGN_LEFT, mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.8125*c,0,0,"Optional, One",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.9375*c,0,0,"Optional, Many",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);d=mxUtils.getSizeForString("has/forms",f,mxConstants.DEFAULT_FONTFAMILY).width;a.begin();a.moveTo(.04*b,.1875*c);a.lineTo(.25*b-.5*d,.1875*c);a.moveTo(.25*b+.5*d,.1875*c);a.lineTo(.46*b,.1875*c);a.text(.25*b,.1875*c,0,0,"has/forms",mxConstants.ALIGN_CENTER, mxConstants.ALIGN_MIDDLE,0,null,!0,0,0);a.moveTo(.04*b,.3125*c);a.lineTo(.46*b,.3125*c);a.moveTo(.04*b,.4375*c);a.lineTo(.46*b,.4375*c);a.moveTo(.46*b,.405*c);a.lineTo(.4*b,.4375*c);a.lineTo(.46*b,.47*c);a.moveTo(.04*b,.5625*c);a.lineTo(.46*b,.5625*c);a.moveTo(.38*b,.53*c);a.lineTo(.38*b,.595*c);a.moveTo(.04*b,.6875*c);a.lineTo(.46*b,.6875*c);a.moveTo(.46*b,.655*c);a.lineTo(.4*b,.6875*c);a.lineTo(.46*b,.72*c);a.moveTo(.38*b,.655*c);a.lineTo(.38*b,.72*c);a.moveTo(.04*b,.8125*c);a.lineTo(.46*b,.8125* c);a.moveTo(.04*b,.9375*c);a.lineTo(.46*b,.9375*c);a.moveTo(.46*b,.905*c);a.lineTo(.4*b,.9375*c);a.lineTo(.46*b,.97*c);a.stroke();d=c/15;a.begin();a.ellipse(.46*b-d,.8125*c-.5*d,d,d);a.fillAndStroke();a.begin();a.ellipse(.4*b-d,.9375*c-.5*d,d,d);a.fillAndStroke()};mxCellRenderer.registerShape("mxgraph.er.bachmans",mxShapeERBachman); mxShapeERBachman.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0, .75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERInfEng(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERInfEng,mxShape); mxShapeERInfEng.prototype.paintVertexShape=function(a,d,e,b,c){var f=mxUtils.getValue(this.style,"textColor","#666666"),g=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"17");a.translate(d,e);b=Math.max(b,c/1.5);c=Math.max(c,5*g);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c,g,f)};mxShapeERInfEng.prototype.background=function(a,d,e,b,c){a.begin();a.moveTo(0,0);a.lineTo(b,0);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()}; mxShapeERInfEng.prototype.foreground=function(a,d,e,b,c,f,g){a.begin();a.moveTo(0,.2*c);a.lineTo(b,.2*c);a.moveTo(0,.4*c);a.lineTo(b,.4*c);a.moveTo(0,.6*c);a.lineTo(b,.6*c);a.moveTo(0,.8*c);a.lineTo(b,.8*c);a.moveTo(.5*b,.2*c);a.lineTo(.5*b,c);a.stroke();a.begin();a.setFontSize(f);a.setFontColor(g);a.text(.5*b,.1*c,0,0,"ERD Information Engineering Notation",mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.setFontSize(.85*f);a.text(.52*b,.3*c,0,0,"Zero or one",mxConstants.ALIGN_LEFT, mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.5*c,0,0,"One only",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.7*c,0,0,"Zero or more",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);a.text(.52*b,.9*c,0,0,"One or more",mxConstants.ALIGN_LEFT,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);d=c/12;a.begin();a.moveTo(.04*b,.3*c);a.lineTo(.46*b,.3*c);a.moveTo(.46*b-d,.25*c);a.lineTo(.46*b-d,.35*c);a.moveTo(.04*b,.5*c);a.lineTo(.46*b,.5*c);a.moveTo(.46*b-2*d,.45* c);a.lineTo(.46*b-2*d,.55*c);a.moveTo(.46*b-2.5*d,.45*c);a.lineTo(.46*b-2.5*d,.55*c);a.moveTo(.04*b,.7*c);a.lineTo(.46*b,.7*c);a.moveTo(.46*b,.65*c);a.lineTo(.46*b-2*d,.7*c);a.lineTo(.46*b,.75*c);a.stroke();a.moveTo(.04*b,.9*c);a.lineTo(.46*b,.9*c);a.moveTo(.46*b,.85*c);a.lineTo(.46*b-2*d,.9*c);a.lineTo(.46*b,.95*c);a.moveTo(.46*b-2.5*d,.85*c);a.lineTo(.46*b-2.5*d,.95*c);a.stroke();a.begin();a.ellipse(.46*b-3*d,.3*c-.5*d,d,d);a.fillAndStroke();a.begin();a.ellipse(.46*b-3*d,.7*c-.5*d,d,d);a.fillAndStroke()}; mxCellRenderer.registerShape("mxgraph.er.ie",mxShapeERInfEng); mxShapeERInfEng.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0, .75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxMarker.addMarker("ERone",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x-m/2-n/2,b.y-n/2+m/2);a.lineTo(b.x-m/2+n/2,b.y-n/2-m/2);a.stroke()}}); mxMarker.addMarker("ERmandOne",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x-m/2-n/2,b.y-n/2+m/2);a.lineTo(b.x-m/2+n/2,b.y-n/2-m/2);a.moveTo(b.x-m-n/2,b.y-n+m/2);a.lineTo(b.x-m+n/2,b.y-n-m/2);a.stroke()}});mxMarker.addMarker("ERmany",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x+n/2,b.y-m/2);a.lineTo(b.x-m,b.y-n);a.lineTo(b.x-n/2,b.y+m/2);a.stroke()}}); mxMarker.addMarker("ERoneToMany",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1);return function(){a.begin();a.moveTo(b.x-m-n/2,b.y-n+m/2);a.lineTo(b.x-m+n/2,b.y-n-m/2);a.moveTo(b.x+n/2,b.y-m/2);a.lineTo(b.x-m,b.y-n);a.lineTo(b.x-n/2,b.y+m/2);a.stroke()}}); mxMarker.addMarker("ERzeroToMany",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2;return function(){a.begin();a.ellipse(b.x-1.5*m-p,b.y-1.5*n-p,2*p,2*p);if(l){var c=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,"#666666");a.setFillColor("#ffffff");a.fillAndStroke();a.setFillColor(c)}else a.stroke();a.begin();a.moveTo(b.x+n/2,b.y-m/2);a.lineTo(b.x-m,b.y-n);a.lineTo(b.x-n/2,b.y+m/2);a.stroke()}}); mxMarker.addMarker("ERzeroToOne",function(a,d,e,b,c,f,g,h,k,l){var m=c*(g+k+1),n=f*(g+k+1),p=g/2;return function(){a.begin();a.ellipse(b.x-1.5*m-p,b.y-1.5*n-p,2*p,2*p);if(l){var c=mxUtils.getValue(d.style,mxConstants.STYLE_STROKECOLOR,"#666666");a.setFillColor("#ffffff");a.fillAndStroke();a.setFillColor(c)}else a.stroke();a.begin();a.moveTo(b.x-m/2-n/2,b.y-n/2+m/2);a.lineTo(b.x-m/2+n/2,b.y-n/2-m/2);a.stroke()}}); function mxShapeERRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeERRRect,mxShape);mxShapeERRRect.prototype.cst={RRECT:"mxgraph.er.rrect",R_SIZE:"rSize"};mxShapeERRRect.prototype.customProperties=[{name:"rSize",dispName:"Rounding Size",type:"float"}]; mxShapeERRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeERRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeERRRect.prototype.cst.RRECT,mxShapeERRRect); mxShapeERRRect.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25, 1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];function mxShapeERAnchor(a,d,e,b){mxShape.call(this);this.bounds=a}mxUtils.extend(mxShapeERAnchor,mxShape);mxShapeERAnchor.prototype.cst={ANCHOR:"mxgraph.er.anchor"};mxShapeERAnchor.prototype.paintVertexShape=function(a,d,e,b,c){};mxCellRenderer.registerShape(mxShapeERAnchor.prototype.cst.ANCHOR,mxShapeERAnchor); var mxIOS7C={MAIN_TEXT:"mainText",SUB_TEXT:"subText",TEXT_COLOR:"textColor",TEXT_SIZE:"textSize",BAR_POS:"barPos",BUTTON_TEXT:"buttonText",BUTTON_STATE:"buttonState",SELECTED:"+",STATE_ON:"on",STATE_OFF:"off",GRID_SIZE:"gridSize",SHAPE_IOS7_APP_BAR:"mxgraph.ios7ui.appBar",SHAPE_IOS7_ON_OFF_BUTTON:"mxgraph.ios7ui.onOffButton",SHAPE_IOS7_SLIDER:"mxgraph.ios7ui.slider",SHAPE_IOS7_DOWNLOAD_BAR:"mxgraph.ios7ui.downloadBar",SHAPE_IOS7_ICON:"mxgraph.ios7ui.icon",SHAPE_IOS7_HOR_BUTTON_BAR:"mxgraph.ios7ui.horButtonBar", SHAPE_IOS7_PAGE_CONTROL:"mxgraph.ios7ui.pageControl",SHAPE_IOS7_EXPAND:"mxgraph.ios7ui.expand",SHAPE_IOS7_ICON_GRID:"mxgraph.ios7ui.iconGrid",SHAPE_IOS7_PHONE:"mxgraph.ios7ui.phone",SHAPE_IOS7_SEARCH_BOX:"mxgraph.ios7ui.searchBox",SHAPE_IOS7_URL:"mxgraph.ios7ui.url",SHAPE_IOS7_ACTION_DIALOG:"mxgraph.ios7ui.actionDialog",STYLE_FILLCOLOR2:"fillColor2",STYLE_FILLCOLOR3:"fillColor3",STYLE_TEXTCOLOR:"textColor",STYLE_TEXTCOLOR2:"textColor2",STYLE_STROKECOLOR2:"strokeColor2",STYLE_STROKECOLOR3:"strokeColor3", STYLE_TEXTSIZE:"textSize"};function mxShapeIOS7AppBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7AppBar,mxShape);mxShapeIOS7AppBar.prototype.customProperties=[{name:"fillColor2",dispName:"Fill Color 2",type:"color"}];mxShapeIOS7AppBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.background(a,d,e,b,c);a.setShadow(!1);this.foreground(a,d,e,b,c)}; mxShapeIOS7AppBar.prototype.background=function(a,d,e,b,c){a.rect(0,0,b,c);a.fill()}; mxShapeIOS7AppBar.prototype.foreground=function(a,d,e,b,c){a.setFillColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#222222"));a.ellipse(5,.5*c-1.5,3,3);a.fill();a.ellipse(9,.5*c-1.5,3,3);a.fill();a.ellipse(13,.5*c-1.5,3,3);a.fill();a.ellipse(17,.5*c-1.5,3,3);a.fill();a.ellipse(21,.5*c-1.5,3,3);a.fill();a.ellipse(54,.5*c+2,2,2);a.fillAndStroke();a.setStrokeWidth(2);a.begin();a.moveTo(52,.5*c+1);a.arcTo(3.5,3.5,0,0,1,58,.5*c+1);a.stroke();a.begin();a.moveTo(50,.5*c-1);a.arcTo(6,6,0,0,1, 60,.5*c-1);a.stroke();a.begin();a.moveTo(b-19,.5*c-2);a.lineTo(b-6,.5*c-2);a.lineTo(b-6,.5*c+2);a.lineTo(b-19,.5*c+2);a.close();a.fill();a.setStrokeWidth(1);a.begin();a.moveTo(b-44,.5*c-2.5);a.lineTo(b-36,.5*c+2.5);a.lineTo(b-40,.5*c+5);a.lineTo(b-40,.5*c-5);a.lineTo(b-36,.5*c-2.5);a.lineTo(b-44,.5*c+2.5);a.stroke();a.begin();a.moveTo(b-20,.5*c-3);a.lineTo(b-5,.5*c-3);a.lineTo(b-5,.5*c-1);a.lineTo(b-3.5,.5*c-1);a.lineTo(b-3.5,.5*c+1);a.lineTo(b-5,.5*c+1);a.lineTo(b-5,.5*c+3);a.lineTo(b-20,.5*c+3); a.close();a.stroke()};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_APP_BAR,mxShapeIOS7AppBar);function mxShapeIOS7OnOffButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7OnOffButton,mxShape); mxShapeIOS7OnOffButton.prototype.customProperties=[{name:"buttonState",dispName:"Button State",type:"enum",enumList:[{val:"on",dispName:"On"},{val:"off",dispName:"Off"}]},{name:"strokeColor2",dispName:"Stroke Color 2",type:"color"},{name:"fillColor2",dispName:"Fill Color 2",type:"color"}]; mxShapeIOS7OnOffButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);b=Math.max(b,2*c);var f=mxUtils.getValue(this.style,mxIOS7C.BUTTON_STATE,mxIOS7C.STATE_ON);this.background(a,d,e,b,c,f);a.setShadow(!1);this.foreground(a,d,e,b,c,f)}; mxShapeIOS7OnOffButton.prototype.background=function(a,d,e,b,c,f){f===mxIOS7C.STATE_ON?(a.roundrect(0,0,b,c,.5*c,.5*c),a.fillAndStroke()):f===mxIOS7C.STATE_OFF&&(a.setStrokeColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#aaaaaa")),a.setFillColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#ffffff")),a.roundrect(0,0,b,c,.5*c,.5*c),a.fillAndStroke())}; mxShapeIOS7OnOffButton.prototype.foreground=function(a,d,e,b,c,f){a.setFillColor("#ffffff");f===mxIOS7C.STATE_ON?(a.ellipse(b-c+1,1,c-2,c-2),a.fill()):(a.ellipse(0,0,c,c),a.stroke())};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ON_OFF_BUTTON,mxShapeIOS7OnOffButton);function mxShapeIOS7Slider(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.barPos=80}mxUtils.extend(mxShapeIOS7Slider,mxShape); mxShapeIOS7Slider.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);a.setShadow(!1);this.foreground(a,b,c)};mxShapeIOS7Slider.prototype.foreground=function(a,d,e){a.setStrokeWidth(2);a.begin();a.moveTo(0,.5*e);a.lineTo(d,.5*e);a.stroke();var b=mxUtils.getValue(this.style,mxIOS7C.BAR_POS,"80"),b=Math.min(b,100),b=Math.max(b,0);d=0+(d-0)*b/100;a.setStrokeColor(mxUtils.getValue(this.style,mxIOS7C.STYLE_STROKECOLOR2,"#a0a0a0"));a.ellipse(d-5,.5*e-5,10,10);a.fillAndStroke()}; mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_SLIDER,mxShapeIOS7Slider);Graph.handleFactory[mxIOS7C.SHAPE_IOS7_SLIDER]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(a.x+d/100*a.width,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/1E3})]}; function mxShapeIOS7DownloadBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.barPos=80}mxUtils.extend(mxShapeIOS7DownloadBar,mxShape);mxShapeIOS7DownloadBar.prototype.customProperties=[{name:"barPos",dispName:"Handle Position",type:"float",min:0,max:1,defVal:30},{name:"strokeColor2",dispName:"Stroke Color 2",type:"color"}];mxShapeIOS7DownloadBar.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.foreground(a,b,c)}; mxShapeIOS7DownloadBar.prototype.foreground=function(a,d,e){var b=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"");a.setFontStyle(mxConstants.FONT_BOLD);a.text(.5*d,.2*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0);b=mxUtils.getValue(this.style,mxIOS7C.BAR_POS,"80");b=Math.min(b,100);b=Math.max(b,0);b=d*b/100;a.setStrokeWidth(2);a.setStrokeColor(mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,""));a.begin();a.moveTo(0,.5*e);a.lineTo(d,.5*e);a.stroke();a.setStrokeColor(mxUtils.getValue(this.style, mxConstants.STYLE_STROKECOLOR,""));a.begin();a.moveTo(0,.5*e);a.lineTo(b,.5*e);a.stroke()};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_DOWNLOAD_BAR,mxShapeIOS7DownloadBar); Graph.handleFactory[mxIOS7C.SHAPE_IOS7_DOWNLOAD_BAR]=function(a){return[Graph.createHandle(a,["barPos"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"barPos",this.barPos))));return new mxPoint(a.x+d/100*a.width,a.y+a.height/2)},function(a,e){this.state.style.barPos=Math.round(1E3*Math.max(0,Math.min(100,100*(e.x-a.x)/a.width)))/1E3})]}; function mxShapeIOS7Icon(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7Icon,mxShape);mxShapeIOS7Icon.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);this.foreground(a,b,c)}; mxShapeIOS7Icon.prototype.foreground=function(a,d,e){a.setGradient("#00D0F0","#0080F0",.325*d,0,.675*d,.5*e,mxConstants.DIRECTION_SOUTH,1,1);a.roundrect(0,0,d,e,.1*d,.1*e);a.fill();var b=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"");a.setFontColor("#ffffff");a.setFontStyle(mxConstants.FONT_BOLD);a.setFontSize(8);a.text(.5*d,.5*e,0,0,b,mxConstants.ALIGN_CENTER,mxConstants.ALIGN_MIDDLE,0,null,0,0,0)};mxCellRenderer.registerShape(mxIOS7C.SHAPE_IOS7_ICON,mxShapeIOS7Icon); function mxShapeIOS7horButtonBar(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeIOS7horButtonBar,mxShape); mxShapeIOS7horButtonBar.prototype.paintVertexShape=function(a,d,e,b,c){for(var f=mxUtils.getValue(this.style,mxIOS7C.BUTTON_TEXT,"+Button 1, Button 2, Button 3").toString().split(","),g=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR,"#666666"),h=mxUtils.getValue(this.style,mxIOS7C.STYLE_TEXTCOLOR2,"#ffffff"),k=mxUtils.getValue(this.style,mxConstants.STYLE_FONTSIZE,"8.5").toString(),l=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,"#666666"),m=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR, "#ffffff"),n=mxUtils.getValue(this.style,mxIOS7C.STYLE_FILLCOLOR2,"#008cff"),p=f.length,q=Array(p),r=0,t=-1,u=0;u<p;u++){var v=f[u];v.charAt(0)===mxIOS7C.SELECTED&&(v=f[u].substring(1),t=u);q[u]=mxUtils.getSizeForString(v,k,mxConstants.DEFAULT_FONTFAMILY).width;r+=q[u]}c=Math.max(c,1.5*k,10);r=5*p+r;