8.4.8 release
This commit is contained in:
parent
33f9219502
commit
0d8a3f4f74
49 changed files with 36660 additions and 3632 deletions
|
@ -1,3 +1,10 @@
|
|||
21-MAR-2018: 8.4.8
|
||||
|
||||
- Gliffy import improvements
|
||||
- Adds Cisco Safe Stencils
|
||||
- Adds top, left for CSV import
|
||||
- Uses mxGraph 3.9.4 beta 3
|
||||
|
||||
15-MAR-2018: 8.4.7
|
||||
|
||||
- Improves Gliffy import
|
||||
|
|
2
VERSION
2
VERSION
|
@ -1 +1 @@
|
|||
8.4.7
|
||||
8.4.8
|
|
@ -115,6 +115,7 @@
|
|||
<file name="Sidebar-Bootstrap.js" />
|
||||
<file name="Sidebar-BPMN.js" />
|
||||
<file name="Sidebar-Cabinet.js" />
|
||||
<file name="Sidebar-CiscoSafe.js" />
|
||||
<file name="Sidebar-Citrix.js" />
|
||||
<file name="Sidebar-EIP.js" />
|
||||
<file name="Sidebar-Electrical.js" />
|
||||
|
|
|
@ -292,8 +292,8 @@ mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,q){if(this.textEna
|
|||
m);null!=n&&r.setAttribute("clip",n?"1":"0");null!=p&&r.setAttribute("rotation",p);null!=q&&r.setAttribute("dir",q);this.root.appendChild(r)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
|
||||
function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.defs=null;this.styleEnabled=null!=b?b:!1;var c=null;if(a.ownerDocument!=document)for(c=a;null!=c&&"svg"!=c.nodeName;)c=c.parentNode;null!=c&&(0<c.getElementsByTagName("defs").length&&(this.defs=c.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=c.firstChild?c.insertBefore(this.defs,c.firstChild):c.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}
|
||||
mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D);(function(){mxSvgCanvas2D.prototype.useDomParser=!mxClient.IS_IE&&"function"===typeof DOMParser&&"function"===typeof XMLSerializer;if(mxSvgCanvas2D.prototype.useDomParser)try{var a=(new DOMParser).parseFromString("test text","text/html");mxSvgCanvas2D.prototype.useDomParser=null!=a}catch(b){mxSvgCanvas2D.prototype.useDomParser=!1}})();mxSvgCanvas2D.prototype.node=null;mxSvgCanvas2D.prototype.matchHtmlAlignment=!0;
|
||||
mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";mxSvgCanvas2D.prototype.fontMetricsPadding=10;
|
||||
mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
|
||||
mxSvgCanvas2D.prototype.textEnabled=!0;mxSvgCanvas2D.prototype.foEnabled=!0;mxSvgCanvas2D.prototype.foAltText="[Object]";mxSvgCanvas2D.prototype.foOffset=0;mxSvgCanvas2D.prototype.textOffset=0;mxSvgCanvas2D.prototype.imageOffset=0;mxSvgCanvas2D.prototype.strokeTolerance=0;mxSvgCanvas2D.prototype.minStrokeWidth=1;mxSvgCanvas2D.prototype.refCount=0;mxSvgCanvas2D.prototype.blockImagePointerEvents=!1;mxSvgCanvas2D.prototype.lineHeightCorrection=1;mxSvgCanvas2D.prototype.pointerEventsValue="all";
|
||||
mxSvgCanvas2D.prototype.fontMetricsPadding=10;mxSvgCanvas2D.prototype.cacheOffsetSize=!0;mxSvgCanvas2D.prototype.format=function(a){return parseFloat(parseFloat(a).toFixed(2))};mxSvgCanvas2D.prototype.getBaseUrl=function(){var a=window.location.href,b=a.lastIndexOf("#");0<b&&(a=a.substring(0,b));return a};mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments);this.gradients=[]};
|
||||
mxSvgCanvas2D.prototype.createStyle=function(a){a=this.createElement("style");a.setAttribute("type","text/css");mxUtils.write(a,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}");return a};
|
||||
mxSvgCanvas2D.prototype.createElement=function(a,b){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(b||mxConstants.NS_SVG,a);var c=this.root.ownerDocument.createElement(a);null!=b&&c.setAttribute("xmlns",b);return c};
|
||||
mxSvgCanvas2D.prototype.createAlternateContent=function(a,b,c,d,e,f,g,k,l,m,n,p,q){return null!=this.foAltText?(a=this.state,b=this.createElement("text"),b.setAttribute("x",Math.round(d/2)),b.setAttribute("y",Math.round((e+a.fontSize)/2)),b.setAttribute("fill",a.fontColor||"black"),b.setAttribute("text-anchor","middle"),b.setAttribute("font-size",a.fontSize+"px"),b.setAttribute("font-family",a.fontFamily),(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&b.setAttribute("font-weight","bold"),
|
||||
|
@ -306,7 +306,7 @@ mxSvgCanvas2D.prototype.addNode=function(a,b){var c=this.node,d=this.state;if(nu
|
|||
c.setAttribute("transform",d.transform);d.shadow&&this.root.appendChild(this.createShadow(c));0<this.strokeTolerance&&!a&&this.root.appendChild(this.createTolerance(c));!this.pointerEvents||"path"==c.nodeName&&this.path[this.path.length-1]!=this.closeOp?this.pointerEvents||null!=this.originalRoot||c.setAttribute("pointer-events","none"):c.setAttribute("pointer-events",this.pointerEventsValue);("rect"!=c.nodeName&&"path"!=c.nodeName&&"ellipse"!=c.nodeName||"none"!=c.getAttribute("fill")&&"transparent"!=
|
||||
c.getAttribute("fill")||"none"!=c.getAttribute("stroke")||"none"!=c.getAttribute("pointer-events"))&&this.root.appendChild(c);this.node=null}};
|
||||
mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);if(null!=a.fillColor)if(null!=a.gradientColor)if(a=this.getSvgGradient(a.fillColor,a.gradientColor,a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection),mxClient.IS_CHROME_APP||mxClient.IS_IE||mxClient.IS_IE11||mxClient.IS_EDGE||this.root.ownerDocument!=document)this.node.setAttribute("fill","url(#"+a+")");else{var b=this.getBaseUrl().replace(/([\(\)])/g,
|
||||
"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(1,this.format(this.state.strokeWidth*this.state.scale))};
|
||||
"\\$1");this.node.setAttribute("fill","url("+b+"#"+a+")")}else this.node.setAttribute("fill",a.fillColor.toLowerCase())};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,this.format(this.state.strokeWidth*this.state.scale))};
|
||||
mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",a.strokeColor.toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
|
||||
mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
|
||||
mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0<c.length)for(var d=0;d<c.length;d++)b[d]=Number(c[d])*a}return b.join(" ")};
|
||||
|
@ -403,9 +403,9 @@ b),a.roundrect(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,n
|
|||
else if("text"==f){if(!b.outline){n=this.evaluateTextAttribute(c,"str",b);d="1"==c.getAttribute("vertical")?-90:0;if("0"==c.getAttribute("align-shape")){var p=b.rotation,q=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPH,0);b=1==mxUtils.getValue(b.style,mxConstants.STYLE_FLIPV,0);d=q&&b?d-p:q||b?d+p:d-p}d-=c.getAttribute("rotation");a.text(g+Number(c.getAttribute("x"))*l,k+Number(c.getAttribute("y"))*m,0,0,n,c.getAttribute("align")||"left",c.getAttribute("valign")||"top",!1,"",null,!1,d)}}else if("include-shape"==
|
||||
f)p=mxStencilRegistry.getStencil(c.getAttribute("name")),null!=p&&(g+=Number(c.getAttribute("x"))*l,k+=Number(c.getAttribute("y"))*m,n=Number(c.getAttribute("w"))*l,d=Number(c.getAttribute("h"))*m,p.drawShape(a,b,g,k,n,d));else if("fillstroke"==f)a.fillAndStroke();else if("fill"==f)a.fill();else if("stroke"==f)a.stroke();else if("strokewidth"==f)l="1"==c.getAttribute("fixed")?1:n,a.setStrokeWidth(Number(c.getAttribute("width"))*l);else if("dashed"==f)a.setDashed("1"==c.getAttribute("dashed"));else if("dashpattern"==
|
||||
f){if(c=c.getAttribute("pattern"),null!=c){c=c.split(" ");l=[];for(m=0;m<c.length;m++)0<c[m].length&&l.push(Number(c[m])*n);c=l.join(" ");a.setDashPattern(c)}}else"strokecolor"==f?a.setStrokeColor(c.getAttribute("color")):"linecap"==f?a.setLineCap(c.getAttribute("cap")):"linejoin"==f?a.setLineJoin(c.getAttribute("join")):"miterlimit"==f?a.setMiterLimit(Number(c.getAttribute("limit"))):"fillcolor"==f?a.setFillColor(c.getAttribute("color")):"alpha"==f?a.setAlpha(c.getAttribute("alpha")):"fontcolor"==
|
||||
f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.bounds=null;mxShape.prototype.points=null;
|
||||
mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;mxShape.prototype.useSvgBoundingBox=!1;
|
||||
mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
|
||||
f?a.setFontColor(c.getAttribute("color")):"fontstyle"==f?a.setFontStyle(c.getAttribute("style")):"fontfamily"==f?a.setFontFamily(c.getAttribute("family")):"fontsize"==f&&a.setFontSize(Number(c.getAttribute("size"))*n);!e||"fillstroke"!=f&&"fill"!=f&&"stroke"!=f||a.setShadow(!1)};function mxShape(a){this.stencil=a;this.initStyles()}mxShape.prototype.dialect=null;mxShape.prototype.scale=1;mxShape.prototype.antiAlias=!0;mxShape.prototype.minSvgStrokeWidth=1;mxShape.prototype.bounds=null;
|
||||
mxShape.prototype.points=null;mxShape.prototype.node=null;mxShape.prototype.state=null;mxShape.prototype.style=null;mxShape.prototype.boundingBox=null;mxShape.prototype.stencil=null;mxShape.prototype.svgStrokeTolerance=8;mxShape.prototype.pointerEvents=!0;mxShape.prototype.svgPointerEvents="all";mxShape.prototype.shapePointerEvents=!1;mxShape.prototype.stencilPointerEvents=!1;mxShape.prototype.vmlScale=1;mxShape.prototype.outline=!1;mxShape.prototype.visible=!0;
|
||||
mxShape.prototype.useSvgBoundingBox=!1;mxShape.prototype.init=function(a){null==this.node&&(this.node=this.create(a),null!=a&&a.appendChild(this.node))};mxShape.prototype.initStyles=function(a){this.strokewidth=1;this.rotation=0;this.strokeOpacity=this.fillOpacity=this.opacity=100;this.flipV=this.flipH=!1};mxShape.prototype.isParseVml=function(){return!0};mxShape.prototype.isHtmlAllowed=function(){return!1};
|
||||
mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round((this.stencil&&"inherit"!=this.stencil.strokewidth?Number(this.stencil.strokewidth):this.strokewidth)*this.scale)),2)?.5:0};mxShape.prototype.create=function(a){return null!=a&&null!=a.ownerSVGElement?this.createSvg(a):8==document.documentMode||!mxClient.IS_VML||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(a):this.createVml(a)};
|
||||
mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")};mxShape.prototype.createVml=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";return a};mxShape.prototype.createHtml=function(){var a=document.createElement("div");a.style.position="absolute";return a};mxShape.prototype.reconfigure=function(){this.redraw()};
|
||||
mxShape.prototype.redraw=function(){this.updateBoundsFromPoints();this.visible&&this.checkBounds()?(this.node.style.visibility="visible",this.clear(),"DIV"!=this.node.nodeName||!this.isHtmlAllowed()&&mxClient.IS_VML?this.redrawShape():this.redrawHtmlShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)};
|
||||
|
@ -416,7 +416,7 @@ mxShape.prototype.getLabelBounds=function(a){var b=mxUtils.getValue(this.style,m
|
|||
mxShape.prototype.checkBounds=function(){return!isNaN(this.scale)&&isFinite(this.scale)&&0<this.scale&&null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height};mxShape.prototype.createVmlGroup=function(){var a=document.createElement(mxClient.VML_PREFIX+":group");a.style.position="absolute";a.style.width=this.node.style.width;a.style.height=this.node.style.height;return a};
|
||||
mxShape.prototype.redrawShape=function(){var a=this.createCanvas();null!=a&&(a.pointerEvents=this.pointerEvents,this.paint(a),this.node!=a.root&&this.node.insertAdjacentHTML("beforeend",a.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(a))};
|
||||
mxShape.prototype.createCanvas=function(){var a=null;null!=this.node.ownerSVGElement?a=this.createSvgCanvas():mxClient.IS_VML&&(this.updateVmlContainer(),a=this.createVmlCanvas());null!=a&&this.outline&&(a.setStrokeWidth(this.strokewidth),a.setStrokeColor(this.stroke),null!=this.isDashed&&a.setDashed(this.isDashed),a.setStrokeWidth=function(){},a.setStrokeColor=function(){},a.setFillColor=function(){},a.setGradient=function(){},a.setDashed=function(){});return a};
|
||||
mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
|
||||
mxShape.prototype.createSvgCanvas=function(){var a=new mxSvgCanvas2D(this.node,!1);a.strokeTolerance=this.pointerEvents?this.svgStrokeTolerance:0;a.pointerEventsValue=this.svgPointerEvents;a.blockImagePointerEvents=mxClient.IS_FF;var b=this.getSvgScreenOffset();0!=b?this.node.setAttribute("transform","translate("+b+","+b+")"):this.node.removeAttribute("transform");a.minStrokeWidth=this.minSvgStrokeWidth;this.antiAlias||(a.format=function(a){return Math.round(parseFloat(a))});return a};
|
||||
mxShape.prototype.createVmlCanvas=function(){var a=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,b=new mxVmlCanvas2D(a,!1);""!=a.tagUrn&&(a.coordsize=Math.max(1,Math.round(this.bounds.width))*this.vmlScale+","+Math.max(1,Math.round(this.bounds.height))*this.vmlScale,b.scale(this.vmlScale),b.vmlScale=this.vmlScale);a=this.scale;b.translate(-Math.round(this.bounds.x/a),-Math.round(this.bounds.y/a));return b};
|
||||
mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px";this.node.style.top=Math.round(this.bounds.y)+"px";var a=Math.max(1,Math.round(this.bounds.height));this.node.style.width=Math.max(1,Math.round(this.bounds.width))+"px";this.node.style.height=a+"px";this.node.style.overflow="visible"};mxShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node);this.updateHtmlFilters(this.node);this.updateHtmlColors(this.node)};
|
||||
mxShape.prototype.updateHtmlFilters=function(a){var b="";100>this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1,
|
||||
|
@ -906,10 +906,10 @@ k==mxConstants.ALIGN_CENTER&&l==mxConstants.ALIGN_MIDDLE?a.shape.getLabelBounds(
|
|||
c.height=Math.max(d,a.text.boundingBox.height)):(c.width=Math.max(c.width,a.text.boundingBox.width),c.height=Math.max(c.height,a.text.boundingBox.height)));this.graph.getModel().isVertex(a.cell)&&(b=mxUtils.getValue(a.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),b==mxConstants.ALIGN_LEFT?c.x-=a.width:b==mxConstants.ALIGN_RIGHT&&(c.x+=a.width),b=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),b==mxConstants.ALIGN_TOP?c.y-=a.height:b==
|
||||
mxConstants.ALIGN_BOTTOM&&(c.y+=a.height))}return new mxRectangle(Math.round(c.x),Math.round(c.y),Math.round(c.width),Math.round(c.height))};mxCellEditor.prototype.getEmptyLabelText=function(a){return this.emptyLabelText};mxCellEditor.prototype.getEditingCell=function(){return this.editingCell};
|
||||
mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null);null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.changeHandler=null);this.zoomHandler&&(this.graph.view.removeListener(this.zoomHandler),this.zoomHandler=null)};function mxCellRenderer(){}mxCellRenderer.defaultShapes={};
|
||||
mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);
|
||||
mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);
|
||||
mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);
|
||||
mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
|
||||
mxCellRenderer.prototype.defaultEdgeShape=mxConnector;mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape;mxCellRenderer.prototype.defaultTextShape=mxText;mxCellRenderer.prototype.legacyControlPosition=!0;mxCellRenderer.prototype.legacySpacing=!0;mxCellRenderer.prototype.antiAlias=!0;mxCellRenderer.prototype.minSvgStrokeWidth=1;mxCellRenderer.prototype.forceControlClickHandler=!1;mxCellRenderer.registerShape=function(a,b){mxCellRenderer.defaultShapes[a]=b};
|
||||
mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape);mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus);mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder);mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor);mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle);
|
||||
mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon);mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud);mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow);mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW_CONNECTOR,mxArrowConnector);mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse);mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane);
|
||||
mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape);mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel);mxCellRenderer.prototype.initializeShape=function(a){a.shape.dialect=a.view.graph.dialect;this.configureShape(a);a.shape.init(a.view.getDrawPane())};mxCellRenderer.prototype.createShape=function(a){var b=null;null!=a.style&&(b=mxStencilRegistry.getStencil(a.style[mxConstants.STYLE_SHAPE]),b=null!=b?new mxShape(b):new (this.getShapeConstructor(a)));return b};
|
||||
mxCellRenderer.prototype.createIndicatorShape=function(a){a.shape.indicatorShape=this.getShape(a.view.graph.getIndicatorShape(a))};mxCellRenderer.prototype.getShape=function(a){return null!=a?mxCellRenderer.defaultShapes[a]:null};mxCellRenderer.prototype.getShapeConstructor=function(a){var b=this.getShape(a.style[mxConstants.STYLE_SHAPE]);null==b&&(b=a.view.graph.getModel().isEdge(a.cell)?this.defaultEdgeShape:this.defaultVertexShape);return b};
|
||||
mxCellRenderer.prototype.configureShape=function(a){a.shape.apply(a);a.shape.image=a.view.graph.getImage(a);a.shape.indicatorColor=a.view.graph.getIndicatorColor(a);a.shape.indicatorStrokeColor=a.style[mxConstants.STYLE_INDICATOR_STROKECOLOR];a.shape.indicatorGradientColor=a.view.graph.getIndicatorGradientColor(a);a.shape.indicatorDirection=a.style[mxConstants.STYLE_INDICATOR_DIRECTION];a.shape.indicatorImage=a.view.graph.getIndicatorImage(a);this.postConfigureShape(a)};
|
||||
mxCellRenderer.prototype.postConfigureShape=function(a){null!=a.shape&&(this.resolveColor(a,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(a,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(a,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(a,"gradient",mxConstants.STYLE_GRADIENTCOLOR))};
|
||||
|
@ -951,9 +951,9 @@ f),g,k,new mxPoint(a.getCenterX(),a.getCenterY())),e=f.x,f=f.y)}return a.view.gr
|
|||
mxCellRenderer.prototype.insertStateAfter=function(a,b,c){for(var d=this.getShapesForState(a),e=0;e<d.length;e++)if(null!=d[e]&&null!=d[e].node){var f=d[e].node.parentNode!=a.view.getDrawPane()&&d[e].node.parentNode!=a.view.getOverlayPane(),g=f?c:b;if(null!=g&&g.nextSibling!=d[e].node)null==g.nextSibling?g.parentNode.appendChild(d[e].node):g.parentNode.insertBefore(d[e].node,g.nextSibling);else if(null==g)if(d[e].node.parentNode==a.view.graph.container){for(g=a.view.canvas;null!=g&&g.parentNode!=
|
||||
a.view.graph.container;)g=g.parentNode;null!=g&&null!=g.nextSibling?g.nextSibling!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,g.nextSibling):d[e].node.parentNode.appendChild(d[e].node)}else null!=d[e].node.parentNode.firstChild&&d[e].node.parentNode.firstChild!=d[e].node&&d[e].node.parentNode.insertBefore(d[e].node,d[e].node.parentNode.firstChild);f?c=d[e].node:b=d[e].node}return[b,c]};mxCellRenderer.prototype.getShapesForState=function(a){return[a.shape,a.text,a.control]};
|
||||
mxCellRenderer.prototype.redraw=function(a,b,c){b=this.redrawShape(a,b,c);null==a.shape||null!=c&&!c||(this.redrawLabel(a,b),this.redrawCellOverlays(a,b),this.redrawControl(a,b))};
|
||||
mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),this.initializeShape(a),this.createCellOverlays(a),
|
||||
this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,
|
||||
a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
|
||||
mxCellRenderer.prototype.redrawShape=function(a,b,c){var d=a.view.graph.model,e=!1;null!=a.shape&&null!=a.shape.style&&null!=a.style&&a.shape.style[mxConstants.STYLE_SHAPE]!=a.style[mxConstants.STYLE_SHAPE]&&(a.shape.destroy(),a.shape=null);null==a.shape&&null!=a.view.graph.container&&a.cell!=a.view.currentRoot&&(d.isVertex(a.cell)||d.isEdge(a.cell))?(a.shape=this.createShape(a),null!=a.shape&&(a.shape.minSvgStrokeWidth=this.minSvgStrokeWidth,a.shape.antiAlias=this.antiAlias,this.createIndicatorShape(a),
|
||||
this.initializeShape(a),this.createCellOverlays(a),this.installListeners(a),a.view.graph.selectionCellsHandler.updateHandler(a))):b||null==a.shape||mxUtils.equalEntries(a.shape.style,a.style)&&!this.checkPlaceholderStyles(a)||(a.shape.resetStyles(),this.configureShape(a),a.view.graph.selectionCellsHandler.updateHandler(a),b=!0);null!=a.shape&&(this.createControl(a),b||this.isShapeInvalid(a,a.shape))&&(null!=a.absolutePoints?(a.shape.points=a.absolutePoints.slice(),a.shape.bounds=null):(a.shape.points=
|
||||
null,a.shape.bounds=new mxRectangle(a.x,a.y,a.width,a.height)),a.shape.scale=a.view.scale,null==c||c?this.doRedrawShape(a):a.shape.updateBoundingBox(),e=!0);return e};mxCellRenderer.prototype.doRedrawShape=function(a){a.shape.redraw()};mxCellRenderer.prototype.isShapeInvalid=function(a,b){return null==b.bounds||b.scale!=a.view.scale||null==a.absolutePoints&&!b.bounds.equals(a)||null!=a.absolutePoints&&!mxUtils.equalPoints(b.points,a.absolutePoints)};
|
||||
mxCellRenderer.prototype.destroy=function(a){null!=a.shape&&(null!=a.text&&(a.text.destroy(),a.text=null),null!=a.overlays&&(a.overlays.visit(function(a,c){c.destroy()}),a.overlays=null),null!=a.control&&(a.control.destroy(),a.control=null),a.shape.destroy(),a.shape=null)};
|
||||
var mxEdgeStyle={EntityRelation:function(a,b,c,d,e){var f=a.view,g=f.graph;d=mxUtils.getValue(a.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*f.scale;var k=a.absolutePoints,l=k[0],m=k[k.length-1],k=!1;if(null!=l)b=new mxCellState,b.x=l.x,b.y=l.y;else if(null!=b){var n=mxUtils.getPortConstraints(b,a,!0,mxConstants.DIRECTION_MASK_NONE);n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?k=n==mxConstants.DIRECTION_MASK_WEST:(l=g.getCellGeometry(b.cell),
|
||||
l.relative?k=.5>=l.x:null!=c&&(k=c.x+c.width<b.x))}else return;l=!0;null!=m?(c=new mxCellState,c.x=m.x,c.y=m.y):null!=c&&(n=mxUtils.getPortConstraints(c,a,!1,mxConstants.DIRECTION_MASK_NONE),n!=mxConstants.DIRECTION_MASK_NONE&&n!=mxConstants.DIRECTION_MASK_WEST+mxConstants.DIRECTION_MASK_EAST?l=n==mxConstants.DIRECTION_MASK_WEST:(a=g.getCellGeometry(c.cell),a.relative?l=.5>=a.x:null!=b&&(l=b.x+b.width<c.x)));null!=b&&null!=c&&(a=k?b.x:b.x+b.width,b=f.getRoutingCenterY(b),g=l?c.x:c.x+c.width,c=f.getRoutingCenterY(c),
|
||||
|
@ -1102,11 +1102,11 @@ b=this.container.scrollHeight+d-f):(b=Math.max(e.clientHeight,e.scrollHeight)+d-
|
|||
mxGraph.prototype.getBorderSizes=function(){var a=mxUtils.getCurrentStyle(this.container);return new mxRectangle(mxUtils.parseCssNumber(a.paddingLeft)+("none"!=a.borderLeftStyle?mxUtils.parseCssNumber(a.borderLeftWidth):0),mxUtils.parseCssNumber(a.paddingTop)+("none"!=a.borderTopStyle?mxUtils.parseCssNumber(a.borderTopWidth):0),mxUtils.parseCssNumber(a.paddingRight)+("none"!=a.borderRightStyle?mxUtils.parseCssNumber(a.borderRightWidth):0),mxUtils.parseCssNumber(a.paddingBottom)+("none"!=a.borderBottomStyle?
|
||||
mxUtils.parseCssNumber(a.borderBottomWidth):0))};mxGraph.prototype.getPreferredPageSize=function(a,b,c){a=this.view.translate;var d=this.pageFormat,e=this.pageScale,d=new mxRectangle(0,0,Math.ceil(d.width*e),Math.ceil(d.height*e));return new mxRectangle(0,0,(this.pageBreaksVisible?Math.ceil(b/d.width):1)*d.width+2+a.x,(this.pageBreaksVisible?Math.ceil(c/d.height):1)*d.height+2+a.y)};
|
||||
mxGraph.prototype.fit=function(a,b,c,d,e,f,g){if(null!=this.container){a=null!=a?a:this.getBorder();b=null!=b?b:!1;c=null!=c?c:0;d=null!=d?d:!0;e=null!=e?e:!1;f=null!=f?f:!1;var k=this.getBorderSizes(),l=this.container.offsetWidth-k.x-k.width-1,m=null!=g?g:this.container.offsetHeight-k.y-k.height-1;g=this.view.getGraphBounds();if(0<g.width&&0<g.height){b&&null!=g.x&&null!=g.y&&(g=g.clone(),g.width+=g.x,g.height+=g.y,g.x=0,g.y=0);var k=this.view.scale,n=g.width/k,p=g.height/k;null!=this.backgroundImage&&
|
||||
(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
|
||||
(n=Math.max(n,this.backgroundImage.width-g.x/k),p=Math.max(p,this.backgroundImage.height-g.y/k));var q=(b?a:2*a)+c+1,l=l-q,m=m-q;e=e?m/p:f?l/n:Math.min(l/n,m/p);null!=this.minFitScale&&(e=Math.max(e,this.minFitScale));null!=this.maxFitScale&&(e=Math.min(e,this.maxFitScale));if(d)b?this.view.scale!=e&&this.view.setScale(e):mxUtils.hasScrollbars(this.container)?(this.view.setScale(e),a=this.getGraphBounds(),null!=a.x&&(this.container.scrollLeft=a.x),null!=a.y&&(this.container.scrollTop=a.y)):this.view.scaleAndTranslate(e,
|
||||
null!=g.x?Math.floor(this.view.translate.x-g.x/k+a/e+c/2):a,null!=g.y?Math.floor(this.view.translate.y-g.y/k+a/e+c/2):a);else return e}}return this.view.scale};
|
||||
mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+b),b=Math.max(0,a.y+a.height+b);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,b));null!=d&&(c=d.width*this.view.scale,
|
||||
b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,c),Math.max(1,b)):(this.view.canvas.style.minWidth=
|
||||
Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
|
||||
mxGraph.prototype.sizeDidChange=function(){var a=this.getGraphBounds();if(null!=this.container){var b=this.getBorder(),c=Math.max(0,a.x+a.width+2*b*this.view.scale),b=Math.max(0,a.y+a.height+2*b*this.view.scale);null!=this.minimumContainerSize&&(c=Math.max(c,this.minimumContainerSize.width),b=Math.max(b,this.minimumContainerSize.height));this.resizeContainer&&this.doResizeContainer(c,b);if(this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var d=this.getPreferredPageSize(a,Math.max(1,c),Math.max(1,
|
||||
b));null!=d&&(c=d.width*this.view.scale,b=d.height*this.view.scale)}null!=this.minimumGraphSize&&(c=Math.max(c,this.minimumGraphSize.width*this.view.scale),b=Math.max(b,this.minimumGraphSize.height*this.view.scale));c=Math.ceil(c);b=Math.ceil(b);this.dialect==mxConstants.DIALECT_SVG?(d=this.view.getDrawPane().ownerSVGElement,d.style.minWidth=Math.max(1,c)+"px",d.style.minHeight=Math.max(1,b)+"px",d.style.width="100%",d.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,
|
||||
c),Math.max(1,b)):(this.view.canvas.style.minWidth=Math.max(1,c)+"px",this.view.canvas.style.minHeight=Math.max(1,b)+"px");this.updatePageBreaks(this.pageBreaksVisible,c,b)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",a))};mxGraph.prototype.doResizeContainer=function(a,b){null!=this.maximumContainerSize&&(a=Math.min(this.maximumContainerSize.width,a),b=Math.min(this.maximumContainerSize.height,b));this.container.style.width=Math.ceil(a)+"px";this.container.style.height=Math.ceil(b)+"px"};
|
||||
mxGraph.prototype.updatePageBreaks=function(a,b,c){b=this.view.scale;c=this.view.translate;var d=this.pageFormat,e=b*this.pageScale,f=new mxRectangle(0,0,d.width*e,d.height*e),d=mxRectangle.fromRectangle(this.getGraphBounds());d.width=Math.max(1,d.width);d.height=Math.max(1,d.height);f.x=Math.floor((d.x-c.x*b)/f.width)*f.width+c.x*b;f.y=Math.floor((d.y-c.y*b)/f.height)*f.height+c.y*b;d.width=Math.ceil((d.width+(d.x-f.x))/f.width)*f.width;d.height=Math.ceil((d.height+(d.y-f.y))/f.height)*f.height;
|
||||
var g=(a=a&&Math.min(f.width,f.height)>this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0<g&&(this.horizontalPageBreaks=[]);null==this.verticalPageBreaks&&0<k&&(this.verticalPageBreaks=[]);a=mxUtils.bind(this,function(a){if(null!=a){for(var b=a==this.horizontalPageBreaks?g:k,c=0;c<=b;c++){var d=a==this.horizontalPageBreaks?[new mxPoint(Math.round(f.x),Math.round(f.y+c*f.height)),new mxPoint(Math.round(f.x+
|
||||
l),Math.round(f.y+c*f.height))]:[new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y)),new mxPoint(Math.round(f.x+c*f.width),Math.round(f.y+m))];null!=a[c]?(a[c].points=d,a[c].redraw()):(d=new mxPolyline(d,this.pageBreakColor),d.dialect=this.dialect,d.pointerEvents=!1,d.isDashed=this.pageBreakDashed,d.init(this.view.backgroundPane),d.redraw(),a[c]=d)}for(c=b;c<a.length;c++)a[c].destroy();a.splice(b,a.length-b)}});a(this.horizontalPageBreaks);a(this.verticalPageBreaks)};
|
||||
|
@ -1307,10 +1307,10 @@ mxEvent.addGestureListeners(b,null,c,f);this.outline.fireMouseEvent(mxEvent.MOUS
|
|||
this.selectionBorder.node.style.display;this.selectionBorder.node.style.cursor="move";this.update(!1)};mxOutline.prototype.isEnabled=function(){return this.enabled};mxOutline.prototype.setEnabled=function(a){this.enabled=a};mxOutline.prototype.setZoomEnabled=function(a){this.sizer.node.style.visibility=a?"visible":"hidden"};mxOutline.prototype.refresh=function(){this.update(!0)};
|
||||
mxOutline.prototype.createSizer=function(){var a=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);a.dialect=this.outline.dialect;return a};mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)};
|
||||
mxOutline.prototype.getOutlineOffset=function(a){return null};mxOutline.prototype.getSourceGraphBounds=function(){return this.source.getGraphBounds()};
|
||||
mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.outline){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-
|
||||
this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=
|
||||
g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=
|
||||
this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
|
||||
mxOutline.prototype.update=function(a){if(null!=this.source&&null!=this.source.container&&null!=this.outline&&null!=this.outline.container){var b=this.source.view.scale,c=this.getSourceGraphBounds(),c=new mxRectangle(c.x/b+this.source.panDx,c.y/b+this.source.panDy,c.width/b,c.height/b),d=new mxRectangle(0,0,this.source.container.clientWidth/b,this.source.container.clientHeight/b),e=c.clone();e.add(d);d=this.getSourceContainerSize();b=Math.min(Math.max(0,this.outline.container.clientWidth-this.border)/
|
||||
Math.max(d.width/b,e.width),Math.max(0,this.outline.container.clientHeight-this.border)/Math.max(d.height/b,e.height));d=isNaN(b)?this.minScale:Math.max(this.minScale,b);if(0<d){this.outline.getView().scale!=d&&(this.outline.getView().scale=d,a=!0);b=this.outline.getView();b.currentRoot!=this.source.getView().currentRoot&&b.setCurrentRoot(this.source.getView().currentRoot);var e=this.source.view.translate,f=e.x+this.source.panDx,g=e.y+this.source.panDy,d=this.getOutlineOffset(d);null!=d&&(f+=d.x,
|
||||
g+=d.y);0>c.x&&(f-=c.x);0>c.y&&(g-=c.y);if(b.translate.x!=f||b.translate.y!=g)b.translate.x=f,b.translate.y=g,a=!0;var c=b.translate,d=this.source.getView().scale,f=d/b.scale,g=1/b.scale,k=this.source.container;this.bounds=new mxRectangle((c.x-e.x-this.source.panDx)/g,(c.y-e.y-this.source.panDy)/g,k.clientWidth/f,k.clientHeight/f);this.bounds.x+=this.source.container.scrollLeft*b.scale/d;this.bounds.y+=this.source.container.scrollTop*b.scale/d;c=this.selectionBorder.bounds;if(c.x!=this.bounds.x||
|
||||
c.y!=this.bounds.y||c.width!=this.bounds.width||c.height!=this.bounds.height)this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw();c=this.sizer.bounds;b=new mxRectangle(this.bounds.x+this.bounds.width-c.width/2,this.bounds.y+this.bounds.height-c.height/2,c.width,c.height);if(c.x!=b.x||c.y!=b.y||c.width!=b.width||c.height!=b.height)this.sizer.bounds=b,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw();a&&this.outline.view.revalidate()}}};
|
||||
mxOutline.prototype.mouseDown=function(a,b){if(this.enabled&&this.showViewport){var c=mxEvent.isMouseEvent(b.getEvent())?0:this.source.tolerance,c=this.source.allowHandleBoundsCheck&&(mxClient.IS_IE||0<c)?new mxRectangle(b.getGraphX()-c,b.getGraphY()-c,2*c,2*c):null;this.zoom=b.isSource(this.sizer)||null!=c&&mxUtils.intersects(shape.bounds,c);this.startX=b.getX();this.startY=b.getY();this.active=!0;this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,
|
||||
this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0}b.consume()};
|
||||
mxOutline.prototype.mouseMove=function(a,b){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none";this.sizer.node.style.display=this.selectionBorder.node.style.display;var c=this.getTranslateForEvent(b),d=c.x,e=c.y;if(this.zoom)c=this.source.container,e=d/(c.clientWidth/c.clientHeight),c=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+d),Math.max(1,this.bounds.height+e)),this.selectionBorder.bounds=c,this.selectionBorder.redraw();else{var f=this.outline.getView().scale,
|
||||
|
|
|
@ -426,7 +426,9 @@ public class GliffyDiagramConverter
|
|||
// Do not add constraint for orthogonal edges
|
||||
if (addConstraint(object, startTerminal, true, orthogonal))
|
||||
{
|
||||
mxPoints.remove(p0);
|
||||
//Removing the point resulted in incorrect edges
|
||||
//TODO confirm nothing is affected from this change
|
||||
//mxPoints.remove(p0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -440,7 +442,9 @@ public class GliffyDiagramConverter
|
|||
// Do not add constraint for orthogonal edges
|
||||
if (addConstraint(object, endTerminal, false, orthogonal))
|
||||
{
|
||||
mxPoints.remove(pe);
|
||||
//Removing the point resulted in incorrect edges
|
||||
//TODO confirm nothing is affected from this change
|
||||
//mxPoints.remove(pe);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -646,8 +650,11 @@ public class GliffyDiagramConverter
|
|||
style.append("pointerEvents=0;");
|
||||
|
||||
}
|
||||
if(style.lastIndexOf("strokeColor") == -1)
|
||||
style.append("strokeColor=" + shape.strokeColor).append(";");
|
||||
if(style.lastIndexOf("strokeColor") == -1)
|
||||
{
|
||||
String strokeClr = gliffyObject.isUseFillColor4StrokeColor()? shape.fillColor: shape.strokeColor;
|
||||
style.append("strokeColor=" + strokeClr).append(";");
|
||||
}
|
||||
|
||||
if (style.lastIndexOf("gradient") == -1 && shape.gradient && !gliffyObject.isGradientIgnored())
|
||||
{
|
||||
|
@ -655,7 +662,7 @@ public class GliffyDiagramConverter
|
|||
}
|
||||
|
||||
// opacity value is wrong for venn circles, so ignore it and use the one in the mapping
|
||||
if (!gliffyObject.isVennCircle())
|
||||
if (!gliffyObject.isVennCircle() && style.lastIndexOf("opacity") == -1)
|
||||
{
|
||||
style.append("opacity=" + shape.opacity * 100).append(";");
|
||||
}
|
||||
|
@ -679,6 +686,7 @@ public class GliffyDiagramConverter
|
|||
style.append("fillColor=" + line.fillColor).append(";");
|
||||
style.append(ArrowMapping.get(line.startArrow).toString(true)).append(";");
|
||||
style.append(ArrowMapping.get(line.endArrow).toString(false)).append(";");
|
||||
style.append("rounded=" + (line.cornerRadius != null? "1" : "0")).append(";");
|
||||
style.append(DashStyleMapping.get(line.dashStyle, line.strokeWidth));
|
||||
style.append(LineMapping.get(line.interpolationType));
|
||||
|
||||
|
@ -705,12 +713,59 @@ public class GliffyDiagramConverter
|
|||
* The equation that translates Gliffy offset to draw.io offset is : G*2 - 1 = D
|
||||
*/
|
||||
mxGeometry mxGeo = new mxGeometry(graphic.Text.lineTValue != null ? graphic.Text.lineTValue * 2 -1 : 0, 0, 0, 0);
|
||||
mxGeo.setOffset(new mxPoint());
|
||||
|
||||
float lblY = 0, lblX = 0;
|
||||
if (graphic.Text.linePerpValue != null)
|
||||
{
|
||||
List<float[]> controlPath = gliffyObject.parent.graphic.Line.controlPath;
|
||||
|
||||
if (controlPath != null && controlPath.size() >= 2)
|
||||
{
|
||||
int i1 = 0, i2 = controlPath.size() - 1;
|
||||
boolean noCardinal = false;
|
||||
if ("begin".equals(graphic.Text.cardinalityType))
|
||||
{
|
||||
i2 = 1;
|
||||
}
|
||||
else if ("end".equals(graphic.Text.cardinalityType))
|
||||
{
|
||||
i1 = controlPath.size() - 2;
|
||||
}
|
||||
else
|
||||
{
|
||||
noCardinal = true;
|
||||
}
|
||||
|
||||
if (noCardinal || (controlPath.get(i1)[1] == controlPath.get(i2)[1]))
|
||||
{
|
||||
lblY = graphic.Text.linePerpValue;
|
||||
if (controlPath.get(i1)[0] - controlPath.get(i2)[0] > 0)
|
||||
{
|
||||
lblY = -lblY;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lblX = graphic.Text.linePerpValue;
|
||||
if (controlPath.get(i1)[1] - controlPath.get(i2)[1] < 0)
|
||||
{
|
||||
lblX = -lblX;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mxGeo.setOffset(new mxPoint(lblX, lblY));
|
||||
cell.setGeometry(mxGeo);
|
||||
|
||||
style.append("labelBackgroundColor=" + gliffyDiagram.stage.getBackgroundColor()).append(";");
|
||||
//should we force horizontal align for text on lines?
|
||||
//Most probably yes, as extracting alignment from html messes with some cases [set halign to null later]
|
||||
//style.append("align=center;");
|
||||
|
||||
//This is a workaround for edges as its label offset is incorrect when alignment is set. It should be handled in a better way
|
||||
//HTML text-align is not mapped to halign for edges
|
||||
//TODO Enhance edge's label positioning
|
||||
gliffyObject.graphic.getText().setHalign(null);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -12,7 +12,7 @@ com.gliffy.shape.basic.basic_v1.default.octagon=mxgraph.basic.octagon
|
|||
com.gliffy.shape.basic.basic_v1.default.right_triangle=mxgraph.basic.orthogonal_triangle
|
||||
com.gliffy.shape.basic.basic_v1.default.star=mxgraph.basic.star
|
||||
#TODO fix disappearing control point
|
||||
com.gliffy.shape.basic.basic_v1.default.round_rectangle=rect;rounded=1;arcSize=5;
|
||||
com.gliffy.shape.basic.basic_v1.default.round_rectangle=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.basic.basic_v1.default.cross=mxgraph.basic.cross2;dx=5
|
||||
com.gliffy.shape.basic.basic_v1.default.left_arrow=mxgraph.arrows2.arrow;dy=0.6;dx=25;flipH=1;notch=0
|
||||
com.gliffy.shape.basic.basic_v1.default.right_arrow=mxgraph.arrows2.arrow;dy=0.6;dx=25;notch=0
|
||||
|
@ -103,12 +103,12 @@ com.gliffy.shape.swimlanes.swimlanes_v1.default.horizontal_four_lane_pool=swimla
|
|||
# UML v2
|
||||
#
|
||||
# UML V2 CLASS
|
||||
com.gliffy.shape.uml.uml_v2.class.object=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.data_type=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.enumeration=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.interface=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.class2=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.class=rect;verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.object=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.data_type=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.enumeration=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.interface=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.class2=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.class=rect;verticalAlign=top;align=left;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.package=rect;strokeColor=none;shadow=0;fillColor=none
|
||||
com.gliffy.shape.uml.uml_v2.class.simple_class=rect
|
||||
com.gliffy.shape.uml.uml_v2.class.primitive=rect
|
||||
|
@ -152,11 +152,11 @@ com.gliffy.shape.uml.uml_v1.default.self_message=filledEdge;fixDash=1;startArrow
|
|||
com.gliffy.shape.uml.uml_v1.default.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=bottom
|
||||
com.gliffy.shape.uml.uml_v1.default.use_case=ellipse;perimeter=ellipsePerimeter
|
||||
# UML v2 SEQUENCE
|
||||
com.gliffy.shape.uml.uml_v2.sequence.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=26
|
||||
com.gliffy.shape.uml.uml_v2.sequence.interaction_use=stencil(rVNbDsIgEDwN/wjxAMbHPWi7taQIDWCtt5dmsVI0aqw/hBkmwyy7EL51jeiAMNoQviOMrSgNa8CXDAvXQemR7IWVolCAJ85b08JFVj56SN2AlX485XtCN4RvC1G2R2vOuiLsMLG1sRDZO9WJ0SWCk+nHaAPaxiDXFD28lNSJli8Qr9hbdZaDrd+qF4jz0KUyDlIi7GfPVUulsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40tVDjJcOszVnXqVDyqJEqQXuwSPcJf5JVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10;overflow=fill
|
||||
com.gliffy.shape.uml.uml_v2.sequence.opt_combined_fragment=stencil(rVPREoIgEPwa3gmmD2jM/gP1TEYCB0nt78M5MtSmmuyFYZedZY87CE/aSjRAGK0IPxLGdpT61eN+gUXbQO6Q7ISVIlOAJ62zpoZeFi54SF2BlW485SmhB8KTTOT12ZqrLgg7TWxpLAT2QTVidAngYrox2oC2IcgtRk8vJXWk5RvEO/ZWvcjB9m/VG8TL0LkyLcSE38+eq5RKYTNi1Z9edBqEn9QP/F3la/XH2td1OxgcTieamsbhJcOszYuuU6HkWSOVg3Zgke4i/iKLIgz/LNCLcfYsfjCe3gE=);xSize=90;align=left;spacingLeft=10;overflow=fill
|
||||
com.gliffy.shape.uml.uml_v2.sequence.loop_combined_fragment=stencil(rVNbDoMgEDwN/xTSAzStvQeFVYkUDFJtb1/NokX7jOkPYYbJMLsshO+bUtRAGC0JPxDGNpT2a4+7BRZNDTIg2QqvxckAnjTBuwo6rUL00LYEr8NwyjNCd4TvT0JWhXcXqwg7TmzuPER2pGoxuERwdu0Q7Yq2McgtRQ8vo22i5dv14g37qGZzdYTv1HS9eBlaGtdASvT7WbtybQw+Rqr6U0enQVilHvFvlT+rv9b+XHeAa8DpRFPjXI23jBlfPjsVRhcWKQk2gEe6TfizVipO/yzRi3nuWfxhPLsD);xSize=90;align=left;spacingLeft=10;overflow=fill
|
||||
com.gliffy.shape.uml.uml_v2.sequence.alt_combined_fragment=stencil(rVNbDsIgEDwN/wjxAMbHPWi7WlKEBrCtt5dmsVI0aqw/hBkmwyy7EL51tWiBMFoTviOMrSgNa8B9hoVrofRIdsJKUSjAE+etaaCXlY8eUtdgpR9P+Z7QDeHbQpTNyZqLrgg7TOzRWIjsnWrF6BLB2XRjtAFtY5Brih5eSupEyxeIV+ytOsvB1m/VC8R56FIZBykR9rPnOkqlsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40FcrjJcOszVnXqVDypJEqQXuwSHcJf5ZVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10;overflow=fill
|
||||
com.gliffy.shape.uml.uml_v2.sequence.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;labelX=26
|
||||
com.gliffy.shape.uml.uml_v2.sequence.interaction_use=stencil(rVNbDsIgEDwN/wjxAMbHPWi7taQIDWCtt5dmsVI0aqw/hBkmwyy7EL51jeiAMNoQviOMrSgNa8CXDAvXQemR7IWVolCAJ85b08JFVj56SN2AlX485XtCN4RvC1G2R2vOuiLsMLG1sRDZO9WJ0SWCk+nHaAPaxiDXFD28lNSJli8Qr9hbdZaDrd+qF4jz0KUyDlIi7GfPVUulsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40tVDjJcOszVnXqVDyqJEqQXuwSPcJf5JVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10
|
||||
com.gliffy.shape.uml.uml_v2.sequence.opt_combined_fragment=stencil(rVPREoIgEPwa3gmmD2jM/gP1TEYCB0nt78M5MtSmmuyFYZedZY87CE/aSjRAGK0IPxLGdpT61eN+gUXbQO6Q7ISVIlOAJ62zpoZeFi54SF2BlW485SmhB8KTTOT12ZqrLgg7TWxpLAT2QTVidAngYrox2oC2IcgtRk8vJXWk5RvEO/ZWvcjB9m/VG8TL0LkyLcSE38+eq5RKYTNi1Z9edBqEn9QP/F3la/XH2td1OxgcTieamsbhJcOszYuuU6HkWSOVg3Zgke4i/iKLIgz/LNCLcfYsfjCe3gE=);xSize=90;align=left;spacingLeft=10
|
||||
com.gliffy.shape.uml.uml_v2.sequence.loop_combined_fragment=stencil(rVNbDoMgEDwN/xTSAzStvQeFVYkUDFJtb1/NokX7jOkPYYbJMLsshO+bUtRAGC0JPxDGNpT2a4+7BRZNDTIg2QqvxckAnjTBuwo6rUL00LYEr8NwyjNCd4TvT0JWhXcXqwg7TmzuPER2pGoxuERwdu0Q7Yq2McgtRQ8vo22i5dv14g37qGZzdYTv1HS9eBlaGtdASvT7WbtybQw+Rqr6U0enQVilHvFvlT+rv9b+XHeAa8DpRFPjXI23jBlfPjsVRhcWKQk2gEe6TfizVipO/yzRi3nuWfxhPLsD);xSize=90;align=left;spacingLeft=10
|
||||
com.gliffy.shape.uml.uml_v2.sequence.alt_combined_fragment=stencil(rVNbDsIgEDwN/wjxAMbHPWi7WlKEBrCtt5dmsVI0aqw/hBkmwyy7EL51tWiBMFoTviOMrSgNa8B9hoVrofRIdsJKUSjAE+etaaCXlY8eUtdgpR9P+Z7QDeHbQpTNyZqLrgg7TOzRWIjsnWrF6BLB2XRjtAFtY5Brih5eSupEyxeIV+ytOsvB1m/VC8R56FIZBykR9rPnOkqlsBmp6k8vOg3CT+o7/q7yZ/XH2p/r9jB4nE40FcrjJcOszVnXqVDypJEqQXuwSHcJf5ZVFYd/FujFOAcWPxjf3wA=);xSize=90;align=left;spacingLeft=10
|
||||
com.gliffy.shape.basic.basic_v1.default.line=edgeStyle=none;endArrow=none
|
||||
#composite
|
||||
com.gliffy.shape.uml.uml_v2.sequence.entity_lifeline=rect;fillColor=none;strokeColor=none
|
||||
|
@ -175,14 +175,14 @@ com.gliffy.shape.uml.uml_v2.sequence.return_message=endArrow=none;startSize=12;s
|
|||
com.gliffy.shape.uml.uml_v2.sequence.self_message=curved=1
|
||||
com.gliffy.shape.uml.uml_v2.sequence.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=top
|
||||
com.gliffy.shape.uml.uml_v2.sequence.concurrent=stencil(nZFNDsIgEIVPwx6ZjS4NtveYtkRIKxDAVm8vP5qA3RgTNrw330zmDQHuJVpBGEVvxRgIXAhjKzqFwxJlFh0fnJnFpqYgi620FE6F5EJH6JkAH3Ccr87c9fSW6Ck94BYTVUlZvZk1zXyUfrTMeda/fg8tSlfQgbbYv9zxR66lPl36r3WjUm0c083ZNXW5aJdXVsstoHsB);dashed=1
|
||||
com.gliffy.shape.uml.uml_v2.sequence.continuation=rect;rounded=1
|
||||
com.gliffy.shape.uml.uml_v2.sequence.continuation=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.uml.uml_v2.sequence.gate=rect
|
||||
com.gliffy.shape.uml.uml_v2.sequence.constraint=edgeStyle=none;endArrow=none;dashed=1
|
||||
com.gliffy.shape.uml.uml_v2.sequence.note=note;size=10
|
||||
com.gliffy.shape.uml.uml_v2.sequence.anchor_line=edgeStyle=none;endArrow=none;dashed=1
|
||||
# UML v2 ACTIVITY
|
||||
com.gliffy.shape.uml.uml_v2.activity.activity=rect;rounded=1
|
||||
com.gliffy.shape.uml.uml_v2.activity.action=rect;rounded=1
|
||||
com.gliffy.shape.uml.uml_v2.activity.activity=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.uml.uml_v2.activity.action=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.uml.uml_v2.activity.accept_event_action=mxgraph.arrows2.arrow;dy=0;dx=0;notch=15
|
||||
com.gliffy.shape.uml.uml_v2.activity.accept_time_event_action=mxgraph.flowchart.collate
|
||||
com.gliffy.shape.uml.uml_v2.activity.send_signal_action=mxgraph.arrows2.arrow;dy=0;dx=15;notch=0
|
||||
|
@ -196,19 +196,19 @@ com.gliffy.shape.uml.uml_v2.activity.jump_node=ellipse;perimeter=ellipsePerimete
|
|||
com.gliffy.shape.uml.uml_v2.activity.control_flow=edgeStyle=none;endArrow=open;endSize=12
|
||||
com.gliffy.shape.uml.uml_v2.activity.object_flow=edgeStyle=none;endArrow=open;dashed=1;endSize=12
|
||||
#com.gliffy.shape.uml.uml_v2.activity.exception_flow=
|
||||
com.gliffy.shape.uml.uml_v2.activity.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=32
|
||||
com.gliffy.shape.uml.uml_v2.activity.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;labelX=32
|
||||
com.gliffy.shape.uml.uml_v2.activity.object_node=rect
|
||||
com.gliffy.shape.uml.uml_v2.activity.structured_node=rect;rounded=1;dashed=1
|
||||
com.gliffy.shape.uml.uml_v2.activity.region=rect;rounded=1;dashed=1
|
||||
com.gliffy.shape.uml.uml_v2.activity.structured_node=rect;rounded=1;dashed=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.uml.uml_v2.activity.region=rect;rounded=1;dashed=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.uml.uml_v2.activity.note=note;size=10
|
||||
com.gliffy.shape.uml.uml_v2.activity.anchor_line=edgeStyle=none;endArrow=none;dashed=1
|
||||
# UML v2 STATE MACHINE
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=32
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.orthoganal_state=rect;rounded=1;startSize=30;arcSize=10
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.composite_state=rect;rounded=1;startSize=30;arcSize=10
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.state=rect;rounded=1
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;labelX=32
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.orthoganal_state=rect;rounded=1;startSize=30;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.composite_state=rect;rounded=1;startSize=30;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.state=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
# temporary
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.submachine_state=ext;symbol0=ellipse;symbol0Width=10;symbol0Height=10;symbol0Align=right;symbol0VerticalAlign=bottom;symbol0Spacing=5;symbol0VSpacing=5;symbol1=ellipse;symbol1Width=10;symbol1Height=10;symbol1Align=right;symbol1VerticalAlign=bottom;symbol1Spacing=25;symbol1VSpacing=5;symbol2=line;symbol2Width=10;symbol2Height=10;symbol2Align=right;symbol2VerticalAlign=bottom;symbol2Spacing=15;symbol2VSpacing=5;rounded=1;arcSize=10
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.submachine_state=ext;symbol0=ellipse;symbol0Width=10;symbol0Height=10;symbol0Align=right;symbol0VerticalAlign=bottom;symbol0Spacing=5;symbol0VSpacing=5;symbol1=ellipse;symbol1Width=10;symbol1Height=10;symbol1Align=right;symbol1VerticalAlign=bottom;symbol1Spacing=25;symbol1VSpacing=5;symbol2=line;symbol2Width=10;symbol2Height=10;symbol2Align=right;symbol2VerticalAlign=bottom;symbol2Spacing=15;symbol2VSpacing=5;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.final_state=mxgraph.bpmn.shape;verticalLabelPosition=bottom;verticalAlign=top;perimeter=ellipsePerimeter;outline=end;symbol=terminate
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.initial_state=ellipse;perimeter=ellipsePerimeter
|
||||
com.gliffy.shape.uml.uml_v2.state_machine.entry_point=ellipse;perimeter=ellipsePerimeter
|
||||
|
@ -230,14 +230,14 @@ com.gliffy.shape.uml.uml_v2.deployment.device_node=cube;size=10;direction=south
|
|||
com.gliffy.shape.uml.uml_v2.deployment.execution_environment_node=cube;size=10;direction=south
|
||||
com.gliffy.shape.uml.uml_v2.deployment.artifact=note;size=10
|
||||
com.gliffy.shape.uml.uml_v2.deployment.component1=component;align=left;spacingLeft=36
|
||||
com.gliffy.shape.uml.uml_v2.deployment.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;overflow=fill
|
||||
com.gliffy.shape.uml.uml_v2.deployment.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4
|
||||
com.gliffy.shape.uml.uml_v2.deployment.interface=ellipse;perimeter=ellipsePerimeter
|
||||
com.gliffy.shape.uml.uml_v2.deployment.simple_interface=stencil(bVHRDsIgDPwaHpewERN9NFP/o5s4yHCQgm7+vWydBqYJL3dXer2WidorcJJVHLyTbWDixKrqCaihMZGuouID2l6O+hoUyXpQEnWYVXFm/MhE3UDbd2gfw3Wl+GF+onYw/0qohb3b5+w5Ub8dJ6MXwZITvny7A7ZRxk85VeMrg/97rWgqYNK+QBsgaDtkmgHsZBEtipuBLpP8KKVL6DKbK0kZySRoXOqysjSCNEY7n4Qut6EJjgT3K1Q5TDvetDFbHxppmefnIgtL1xbnNw==)
|
||||
com.gliffy.shape.uml.uml_v2.deployment.required_interface=stencil(bZDNDoMgEISfhiMJQnrosbH2PValSrRCFurP25cfbSRtwmW+GXZhiChtD0YSzsAa2Tgi7oTzGVBBPXrMvWMd6kEuqnV9stXUS1QuuKIi7EZEWUMzdKjfU7sjdg1HlAbCrROK9KXnsHNN8y4sLdqSLFjSj+90wMbbeMRTGrdM/p+1q5XCqixF7cApPWXeCNhJ6lfQ5whdZtlFSnPCRfau4zOenH7pG419ZbkY+uko0tS/qD4=)
|
||||
com.gliffy.shape.uml.uml_v2.deployment.port=rect;verticalLabelPosition=bottom;verticalAlign=top
|
||||
com.gliffy.shape.uml.uml_v2.deployment.instance=rect
|
||||
com.gliffy.shape.uml.uml_v2.deployment.instance_specification=ext;symbol0=note;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;overflow=fill;align=center;verticalAlign=bottom;size=5
|
||||
com.gliffy.shape.uml.uml_v2.deployment.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill
|
||||
com.gliffy.shape.uml.uml_v2.deployment.instance_specification=ext;symbol0=note;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;align=center;verticalAlign=bottom;size=5
|
||||
com.gliffy.shape.uml.uml_v2.deployment.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10
|
||||
com.gliffy.shape.uml.uml_v2.deployment.association=edgeStyle=orthogonalEdgeStyle
|
||||
com.gliffy.shape.uml.uml_v2.deployment.dependency=edgeStyle=orthogonalEdgeStyle;dashed=1
|
||||
com.gliffy.shape.uml.uml_v2.deployment.generalization=edgeStyle=orthogonalEdgeStyle
|
||||
|
@ -245,14 +245,14 @@ com.gliffy.shape.uml.uml_v2.deployment.aggregation=edgeStyle=orthogonalEdgeStyle
|
|||
com.gliffy.shape.uml.uml_v2.deployment.composition=edgeStyle=orthogonalEdgeStyle
|
||||
com.gliffy.shape.uml.uml_v2.deployment.note=note;size=10
|
||||
com.gliffy.shape.uml.uml_v2.deployment.anchor_line=edgeStyle=none;dashed=1
|
||||
com.gliffy.shape.uml.uml_v2.class.class=verticalAlign=top;overflow=fill;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.class.class=verticalAlign=top;fontSize=12;fontFamily=Helvetica
|
||||
com.gliffy.shape.uml.uml_v2.deployment.package=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left
|
||||
# UML v2 COMPONENT
|
||||
com.gliffy.shape.uml.uml_v2.component.component1=component;align=left;spacingLeft=36
|
||||
com.gliffy.shape.uml.uml_v2.component.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4;overflow=fill
|
||||
com.gliffy.shape.uml.uml_v2.component.component2=ext;symbol0=component;symbol0Width=20;symbol0Height=20;symbol0Align=right;symbol0VerticalAlign=top;symbol0Spacing=4;symbol0ArcSpacing=0.25;jettyWidth=8;jettyHeight=4
|
||||
com.gliffy.shape.uml.uml_v2.component.interface=ellipse;perimeter=ellipsePerimeter
|
||||
#com.gliffy.shape.uml.uml_v2.component.simple_interface=
|
||||
#com.gliffy.shape.uml.uml_v2.component.required_interface=
|
||||
com.gliffy.shape.uml.uml_v2.component.simple_interface=stencil(bVHRDsIgDPwaHpewERN9NFP/o5s4yHCQgm7+vWydBqYJL3dXer2WidorcJJVHLyTbWDixKrqCaihMZGuouID2l6O+hoUyXpQEnWYVXFm/MhE3UDbd2gfw3Wl+GF+onYw/0qohb3b5+w5Ub8dJ6MXwZITvny7A7ZRxk85VeMrg/97rWgqYNK+QBsgaDtkmgHsZBEtipuBLpP8KKVL6DKbK0kZySRoXOqysjSCNEY7n4Qut6EJjgT3K1Q5TDvetDFbHxppmefnIgtL1xbnNw==)
|
||||
com.gliffy.shape.uml.uml_v2.component.required_interface=stencil(bZDNDoMgEISfhiMJQnrosbH2PValSrRCFurP25cfbSRtwmW+GXZhiChtD0YSzsAa2Tgi7oTzGVBBPXrMvWMd6kEuqnV9stXUS1QuuKIi7EZEWUMzdKjfU7sjdg1HlAbCrROK9KXnsHNN8y4sLdqSLFjSj+90wMbbeMRTGrdM/p+1q5XCqixF7cApPWXeCNhJ6lfQ5whdZtlFSnPCRfau4zOenH7pG419ZbkY+uko0tS/qD4=)
|
||||
com.gliffy.shape.uml.uml_v2.component.port=rect
|
||||
com.gliffy.shape.uml.uml_v2.component.artifact=note;size=10
|
||||
com.gliffy.shape.uml.uml_v2.component.generalization=edgeStyle=orthogonalEdgeStyle
|
||||
|
@ -269,7 +269,7 @@ com.gliffy.shape.uml.uml_v2.use_case.use_case=ellipse;perimeter=ellipsePerimeter
|
|||
com.gliffy.shape.uml.uml_v2.use_case.actor=umlActor;verticalLabelPosition=bottom;verticalAlign=bottom
|
||||
com.gliffy.shape.uml.uml_v2.use_case.association=edgeStyle=none
|
||||
com.gliffy.shape.uml.uml_v2.use_case.system=rect
|
||||
com.gliffy.shape.uml.uml_v2.use_case.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;overflow=fill;labelX=26
|
||||
com.gliffy.shape.uml.uml_v2.use_case.frame=mxgraph.sysml.package;xSize=90;align=left;spacingLeft=10;labelX=26
|
||||
com.gliffy.shape.uml.uml_v2.use_case.include=edgeStyle=none;dashed=1
|
||||
com.gliffy.shape.uml.uml_v2.use_case.extend=edgeStyle=none;dashed=1
|
||||
com.gliffy.shape.uml.uml_v2.use_case.dependency=edgeStyle=none;dashed=1
|
||||
|
@ -332,22 +332,22 @@ com.gliffy.shape.bpmn.bpmn_v1.activities.multiple_instances=mxgraph.ios7.icons.p
|
|||
com.gliffy.shape.bpmn.bpmn_v1.activities.compensation=mxgraph.bpmn.compensation;html=1;fillColor=#000000;verticalLabelPosition=bottom;verticalAlign=top
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.ad_hoc=mxgraph.bpmn.ad_hoc;fillColor=#000000;verticalLabelPosition=bottom;verticalAlign=top
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.looping=mxgraph.bpmn.loop;verticalLabelPosition=bottom;verticalAlign=top;strokeWidth=5
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.process=ext;rounded=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.transaction=ext;rounded=1;double=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.expanded_sub_process=ext;rounded=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.collapsed_sub_process=ext;rounded=1;symbol0=plus;symbol0Width=14;symbol0Height=14;symbol0Align=center;symbol0VerticalAlign=bottom
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.task=ext;rounded=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.process=ext;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.transaction=ext;rounded=1;double=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.expanded_sub_process=ext;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.collapsed_sub_process=ext;rounded=1;symbol0=plus;symbol0Width=14;symbol0Height=14;symbol0Align=center;symbol0VerticalAlign=bottom;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.activities.task=ext;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
# BPMN v1 DATA ARTIFACTS
|
||||
com.gliffy.shape.bpmn.bpmn_v1.data_artifacts.annotation=mxgraph.flowchart.annotation_1;strokeWidth=2;html=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.data_artifacts.data_object=note;size=25
|
||||
com.gliffy.shape.bpmn.bpmn_v1.data_artifacts.group=rect;dashed=1;fillColor=none;dashPattern=8 3 2 3;fixDash=1
|
||||
# BPMN v1 GATEWAYS
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway=rhombus;perimeter=rhombusPerimeter
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_xor_data=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=exclusiveGw
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_and=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=parallelGw
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_xor_event=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=throwing;symbol=multiple
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_complex=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=complexGw
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_or=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=end;symbol=general
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway=rhombus;perimeter=rhombusPerimeter;strokeWidth=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_xor_data=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=exclusiveGw;strokeWidth=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_and=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=parallelGw;strokeWidth=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_xor_event=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=throwing;symbol=multiple;strokeWidth=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_complex=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=none;symbol=complexGw;strokeWidth=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.gateways.gateway_or=mxgraph.bpmn.shape;perimeter=rhombusPerimeter;background=gateway;outline=end;symbol=general;strokeWidth=1
|
||||
# BPMN v1 CONNECTORS
|
||||
com.gliffy.shape.bpmn.bpmn_v1.connectors.normal_sequence_flow=edgeStyle=orthogonalEdgeStyle;dashed=1
|
||||
com.gliffy.shape.bpmn.bpmn_v1.connectors.message_flow=edgeStyle=orthogonalEdgeStyle
|
||||
|
@ -362,33 +362,31 @@ com.gliffy.shape.bpmn.bpmn_v1.connectors.association_with_arrow=edgeStyle=orthog
|
|||
# iOS7 CONTAINERS
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.title_bar=rect;strokeColor=none
|
||||
#composite
|
||||
#com.gliffy.shape.iphone.iphone_ios7.containers_content.table=
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.table=rect
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.blank_screen=mxgraph.ios.iBgFlat;strokeColor=#18211b;fillColor=#dddddd
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.iphone5=mxgraph.ios.iPhone;bgStyle=bgWhite;fillColor=#aaaaaa
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.chat_bubble_grey=mxgraph.ios7ui.callout
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.chat_bubble_green=mxgraph.ios7ui.callout;flipH=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.chat_bubble_blue=mxgraph.ios7ui.callout;flipH=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.page_indicator=mxgraph.ios.iPageControl
|
||||
#composite
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.status_bar_black=mxgraph.ios7ui.appBar;fillColor=#000000;strokeColor=#FFFFFF
|
||||
#composite
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.status_bar_white=mxgraph.ios7ui.appBar;;fillColor=none;strokeColor=#000000
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.status_bar_white=mxgraph.ios7ui.appBar;fillColor=none;strokeColor=#000000
|
||||
# iOS7 FORMS CONTROLS
|
||||
#composite
|
||||
#com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_stack=
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_stack=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
#composite
|
||||
#com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert=
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
#composite
|
||||
#com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert_2options=
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_blue=rect;rounded=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_green=rect;rounded=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_red=rect;rounded=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert_2options=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_blue=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_green=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_red=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
#com.gliffy.shape.iphone.iphone_ios7.forms_controls.date_picker=
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.input=rect;rounded=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.input=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.keyboard_landscape=mxgraph.ios7.misc.keyboard_(letters)
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.keyboard_portrait=mxgraph.ios7.misc.keyboard_(letters)
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.progress_bar=mxgraph.ios7ui.downloadBar;barPos=50;fillColor=#aaaaaa;strokeColor=#0080f0
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.search=mxgraph.ios7ui.searchBox
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.search=rect;
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.slider=mxgraph.ios7ui.slider;barPos=35;strokeColor=#0080f0;fillColor=#ffffff;strokeColor2=#a0a0a0
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.switch_off=mxgraph.ios7ui.onOffButton;buttonState=off;strokeColor2=#aaaaaa;fillColor2=#ffffff
|
||||
com.gliffy.shape.iphone.iphone_ios7.forms_controls.switch_on=mxgraph.ios7ui.onOffButton;buttonState=on;strokeColor=#38D145;fillColor=#38D145
|
||||
|
@ -450,53 +448,49 @@ com.gliffy.shape.iphone.iphone_ios7.icons_glyphs.icon_orange_dot=ellipse;perimet
|
|||
com.gliffy.shape.iphone.iphone_ios7.icons_glyphs.icon_refresh=mxgraph.ios7.icons.reload;strokeColor=#929292;fillColor=#929292
|
||||
com.gliffy.shape.iphone.iphone_ios7.icons_glyphs.icon_remove=mxgraph.ios7.misc.delete;fillColor=#ff0000;strokeColor=#ffffff
|
||||
# iOS7 NAVIGATION
|
||||
com.gliffy.shape.iphone.iphone_ios7.navigation.action_back=mxgraph.ios7.misc.left
|
||||
com.gliffy.shape.iphone.iphone_ios7.navigation.action_back=mxgraph.ios7.misc.left;strokeColor=#157EFA;strokeWidth=3
|
||||
#composite
|
||||
#com.gliffy.shape.iphone.iphone_ios7.navigation.contextual_menu=
|
||||
com.gliffy.shape.iphone.iphone_ios7.navigation.contextual_menu=rect
|
||||
#composite
|
||||
#com.gliffy.shape.iphone.iphone_ios7.navigation.nav_3tabs=
|
||||
com.gliffy.shape.iphone.iphone_ios7.navigation.nav_3tabs=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
#composite
|
||||
#com.gliffy.shape.iphone.iphone_ios7.containers_content.title_bar=
|
||||
com.gliffy.shape.iphone.iphone_ios7.containers_content.title_bar=partialRectangle;top=0;right=0;left=0
|
||||
#composite
|
||||
#com.gliffy.shape.iphone.iphone_ios7.navigation.tab_bar=
|
||||
com.gliffy.shape.iphone.iphone_ios7.navigation.tab_bar=partialRectangle;bottom=0;right=0;left=0
|
||||
#
|
||||
# ANDROID v1
|
||||
#
|
||||
# ANDROID v1 GENERAL
|
||||
com.gliffy.shape.android.android_v1.general.tooltip=rect;rounded=1
|
||||
com.gliffy.shape.android.android_v1.general.tooltip=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.android.android_v1.general.subheader=rect
|
||||
#composite
|
||||
com.gliffy.shape.android.android_v1.general.statusbar=mxgraph.android.statusBar;strokeColor=#ffffff
|
||||
com.gliffy.shape.android.android_v1.general.slider=mxgraph.android.progress_scrubber_focused
|
||||
com.gliffy.shape.android.android_v1.general.keyboard_portrait=mxgraph.android.keyboard
|
||||
com.gliffy.shape.android.android_v1.general.keyboard_landscape=mxgraph.android.keyboard
|
||||
com.gliffy.shape.android.android_v1.general.bottom_bar=rect
|
||||
#composite
|
||||
#com.gliffy.shape.android.android_v1.general.app_bar=
|
||||
com.gliffy.shape.android.android_v1.general.actionbar=rect
|
||||
com.gliffy.shape.android.android_v1.general.app_bar=rect
|
||||
com.gliffy.shape.android.android_v1.general.actionbar=partialRectangle;top=0;right=0;left=0;strokeWidth=3
|
||||
com.gliffy.shape.android.android_v1.general.phone=mxgraph.android.phone2
|
||||
#composite
|
||||
#com.gliffy.shape.android.android_v1.general.dialog=
|
||||
com.gliffy.shape.android.android_v1.general.dialog=rect;rounded=1;arcSize=5;absoluteArcSize=1
|
||||
#composite
|
||||
#com.gliffy.shape.android.android_v1.general.list_1line=
|
||||
com.gliffy.shape.android.android_v1.general.list_1line=rect;strokeColor=none
|
||||
#composite
|
||||
#com.gliffy.shape.android.android_v1.general.list_2lines=
|
||||
com.gliffy.shape.android.android_v1.general.list_2lines=rect;strokeColor=none
|
||||
#composite
|
||||
#com.gliffy.shape.android.android_v1.general.tabs01=
|
||||
com.gliffy.shape.android.android_v1.general.tabs01=rect;strokeColor=none
|
||||
#composite
|
||||
#com.gliffy.shape.android.android_v1.general.tabs02=
|
||||
com.gliffy.shape.android.android_v1.general.tabs02=partialRectangle;top=0;right=0;left=0
|
||||
# ANDROID v1 FORMS
|
||||
#composite
|
||||
#com.gliffy.shape.android.android_v1.forms.timepicker=
|
||||
com.gliffy.shape.android.android_v1.forms.switch_on=mxgraph.android.switch_on
|
||||
com.gliffy.shape.android.android_v1.forms.switch_off=mxgraph.android.switch_off
|
||||
com.gliffy.shape.android.android_v1.forms.radio_button=ellipse;perimeter=ellipsePerimeter
|
||||
com.gliffy.shape.android.android_v1.forms.input_field=mxgraph.android.textfield
|
||||
#composite
|
||||
#com.gliffy.shape.android.android_v1.forms.datepicker=
|
||||
com.gliffy.shape.android.android_v1.forms.checkbox=mxgraph.android.checkbox
|
||||
com.gliffy.shape.android.android_v1.forms.button_floating_action=mxgraph.ios7.icons.add;strokecolor=#929292;fillColor=#ffffff
|
||||
com.gliffy.shape.android.android_v1.forms.button=rect;rounded=1;strokeColor=none
|
||||
com.gliffy.shape.android.android_v1.forms.button=rect;rounded=1;strokeColor=none;arcSize=15;absoluteArcSize=1
|
||||
# ANDROID v1 ICONS
|
||||
com.gliffy.shape.android.android_v1.icons.attachment=mxgraph.office.concepts.attachment;direction=north
|
||||
com.gliffy.shape.android.android_v1.icons.avatar=mxgraph.android.contact_badge_normal
|
||||
|
@ -587,7 +581,7 @@ com.gliffy.shape.android.android_v1.icons_av.shuffle=mxgraph.ios7.icons.shuffle
|
|||
#ANDROID SYSTEM ICONS
|
||||
com.gliffy.shape.android.android_v1.icons_system.back=mxgraph.ios7.icons.play;flipH=1
|
||||
com.gliffy.shape.android.android_v1.icons_system.home=ellipse;perimeter=ellipsePerimeter
|
||||
com.gliffy.shape.android.android_v1.icons_system.recent_apps=rect;rounded=1
|
||||
com.gliffy.shape.android.android_v1.icons_system.recent_apps=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
#com.gliffy.shape.android.android_v1.icons_system.back_v1=
|
||||
com.gliffy.shape.android.android_v1.icons_system.down_v1=mxgraph.ios7.misc.down
|
||||
#com.gliffy.shape.android.android_v1.icons_system.home_v1=
|
||||
|
@ -705,9 +699,9 @@ com.gliffy.shape.aws.aws_v1.sdks.python=mxgraph.aws3.android;fillColor=#FFD44F
|
|||
com.gliffy.shape.aws.aws_v1.sdks.ruby=mxgraph.aws3.android;fillColor=#AE1F23
|
||||
com.gliffy.shape.aws.aws_v1.sdks.tools_for_windows_power_shell=mxgraph.aws3.toolkit_for_windows_powershell;fillColor=#737373
|
||||
# AWS STORAGE AND CONTENT DELIVERY
|
||||
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front=mxgraph.aws3.cloudfront;fillColor=#F58536
|
||||
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front=mxgraph.aws3.cloudfront;fillColor=#E05243
|
||||
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front_download_distribution=mxgraph.aws3.download_distribution;fillColor=#F58536
|
||||
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front_edge_location=mxgraph.aws3.edge_location;fillColor=#F58536
|
||||
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front_edge_location=mxgraph.aws3.edge_location;fillColor=#E05243
|
||||
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_cloud_front_streaming_distribution=mxgraph.aws3.streaming_distribution;fillColor=#F58536
|
||||
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_ebs=mxgraph.aws3.volume;fillColor=#E05243
|
||||
com.gliffy.shape.aws.aws_v1.storage_and_content_delivery.amazon_ebs_snapshot=mxgraph.aws3.snapshot;fillColor=#E05243
|
||||
|
@ -1045,6 +1039,7 @@ com.gliffy.shape.network.network_v4.home.subwoofer=mxgraph.cisco.computers_and_p
|
|||
com.gliffy.shape.network.network_v4.home.tablet=mxgraph.android.tab2
|
||||
com.gliffy.shape.network.network_v4.home.wireless_modem=mxgraph.networks.wireless_hub;strokeColor=#ffffff
|
||||
com.gliffy.shape.network.network_v3.home.firewall=image;image=img/lib/clip_art/networking/Firewall-page1_128x128.png
|
||||
#this has fixed fill color, gradient color, and stroke width. Fill color is mapped to stroke color!
|
||||
com.gliffy.shape.network.network_v3.home.cloud=cloud;strokeColor=#ffffff
|
||||
com.gliffy.shape.network.network_v3.home.comm_link=mxgraph.networks.comm_link;strokeColor=#ffffff
|
||||
com.gliffy.shape.network.network_v3.home.server=image;image=img/lib/clip_art/computers/Server_Tower_128x128.png
|
||||
|
@ -1127,7 +1122,7 @@ com.gliffy.shape.network.network_v3.business.user=image;image=img/lib/clip_art/p
|
|||
com.gliffy.shape.network.network_v3.business.user_female=image;image=img/lib/clip_art/people/Worker_Woman_128x128.png
|
||||
com.gliffy.shape.network.network_v3.business.user_male=image;image=img/lib/clip_art/people/Tech_Man_128x128.png
|
||||
#composite
|
||||
#com.gliffy.shape.network.network_v3.business.user_group=
|
||||
com.gliffy.shape.network.network_v3.business.user_group=rect
|
||||
com.gliffy.shape.network.network_v3.business.server=image;image=img/lib/clip_art/computers/Server_Tower_128x128.png
|
||||
com.gliffy.shape.network.network_v3.business.database_server=image;image=img/lib/clip_art/computers/Server_Tower_128x128.png
|
||||
com.gliffy.shape.network.network_v3.business.mail_server=image;image=img/lib/clip_art/computers/Server_Tower_128x128.png
|
||||
|
@ -1148,7 +1143,8 @@ com.gliffy.shape.network.network_v3.business.multi_u_server=image;image=img/lib/
|
|||
com.gliffy.shape.network.network_v3.business.rack=image;image=img/lib/clip_art/computers/Server_Rack_Empty_128x128.png
|
||||
#com.gliffy.shape.network.network_v3.business.telephone=
|
||||
#com.gliffy.shape.network.network_v3.business.flash_drive=
|
||||
#com.gliffy.shape.network.network_v3.business.tape_backup=
|
||||
#It needs a new modern icon to match the remaining icons
|
||||
com.gliffy.shape.network.network_v3.business.tape_backup=mxgraph.networks.tape_storage;strokeColor=#ffffff
|
||||
#com.gliffy.shape.network.network_v3.business.video_projector=
|
||||
#com.gliffy.shape.network.network_v3.business.video_screen=
|
||||
#com.gliffy.shape.network.network_v3.business.satellite=
|
||||
|
@ -1162,7 +1158,8 @@ com.gliffy.shape.network.network_v3.rack.power_strip_1u=mxgraph.rack.dell.power_
|
|||
com.gliffy.shape.network.network_v3.rack.spacer_1u=mxgraph.rackGeneral.plate;fillColor=#e8e8e8;strokeColor=#666666
|
||||
com.gliffy.shape.network.network_v3.rack.tray_1u=mxgraph.rackGeneral.plate;fillColor=#e8e8e8;strokeColor=#666666
|
||||
com.gliffy.shape.network.network_v3.rack.hub_switch_2u=mxgraph.rack.general.cat5e_enhanced_patch_panel_48_ports;strokeColor=#666666
|
||||
#com.gliffy.shape.network.network_v3.rack.lcd_7u=
|
||||
#TODO needs a better icon
|
||||
com.gliffy.shape.network.network_v3.rack.lcd_7u=mxgraph.office.devices.lcd_monitor
|
||||
com.gliffy.shape.network.network_v3.rack.rack=mxgraph.rackGeneral.container;container=1;collapsible=0;childLayout=rack;marginLeft=9;marginRight=9;marginTop=21;marginBottom=22;textColor=#666666;numDisp=off;strokeColor=#666666
|
||||
# NETWORK v4 RACK
|
||||
com.gliffy.shape.network.network_v4.rack.rack_server=mxgraph.rack.cisco.cisco_ucs_c22_m3_server
|
||||
|
@ -1269,30 +1266,25 @@ com.gliffy.shape.ui.ui_v3.containers_content.note=rect;fillColor=#fff0ab;strokeC
|
|||
# UI v3 NAVIGATION
|
||||
com.gliffy.shape.ui.ui_v3.navigation.btn_circle_previous=mxgraph.ios.iArrowIcon;fillColor2=#FFFFFF
|
||||
com.gliffy.shape.ui.ui_v3.navigation.btn_circle_next=mxgraph.ios.iArrowIcon;fillColor2=#FFFFFF;flipH=1
|
||||
#composite
|
||||
#com.gliffy.shape.ui.ui_v3.navigation.btn_rect_previous=
|
||||
#composite
|
||||
#com.gliffy.shape.ui.ui_v3.navigation.btn_rect_next=
|
||||
#composite
|
||||
#com.gliffy.shape.ui.ui_v3.navigation.pagination=
|
||||
com.gliffy.shape.ui.ui_v3.navigation.slide_indicator=mxgraph.mockup.navigation.pageControl;fillColor=#999999;strokeColor=#cccccc
|
||||
#composite
|
||||
#com.gliffy.shape.ui.ui_v3.navigation.navbar=
|
||||
com.gliffy.shape.ui.ui_v3.navigation.navbar=rect
|
||||
#composite
|
||||
#com.gliffy.shape.ui.ui_v3.navigation.navbar_vertical=
|
||||
com.gliffy.shape.ui.ui_v3.navigation.navbar_vertical=rect
|
||||
# UI v3 FORMS CONTROLS
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.input_field=rect
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.text_area=rect
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.input_search=mxgraph.mockup.forms.searchBox;mainText=
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.combo_box=mxgraph.mockup.forms.comboBox;fillColor=#cccccc;fillColor2=#cccccc;mainText=
|
||||
#composite
|
||||
#com.gliffy.shape.ui.ui_v3.forms_controls.calendar=
|
||||
#composite
|
||||
#com.gliffy.shape.ui.ui_v3.forms_controls.dropdown=
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.dropdown=rect
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.checkbox=mxgraph.mockup.forms.checkbox;rSize=0
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.radio_btn=ellipse;perimeter=ellipsePerimeter
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.selector=mxgraph.mockup.forms.spinner;spinLayout=right;spinStyle=normal;adjStyle=triangle;fillColor=#999999;mainText=
|
||||
#composite
|
||||
#com.gliffy.shape.ui.ui_v3.forms_controls.date=
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.color_picker=mxgraph.mockup.forms.colorPicker;chosenColor=#aaddff
|
||||
com.gliffy.shape.ui.ui_v3.forms_controls.button=rect
|
||||
|
@ -1332,7 +1324,7 @@ com.gliffy.shape.ui.ui_v2.forms_components.scrollbar_horizontal=mxgraph.mockup.n
|
|||
com.gliffy.shape.ui.ui_v2.forms_components.text_area=rect
|
||||
com.gliffy.shape.ui.ui_v2.forms_components.slider_vertical=mxgraph.mockup.forms.horSlider;sliderStyle=basic;sliderPos=50;handleStyle=circle;fillColor2=#ddeeff;direction=south
|
||||
com.gliffy.shape.ui.ui_v2.forms_components.slider_horizontal=mxgraph.mockup.forms.horSlider;sliderStyle=basic;sliderPos=50;handleStyle=circle;fillColor2=#ddeeff
|
||||
com.gliffy.shape.ui.ui_v2.forms_components.button=rect;rounded=1
|
||||
com.gliffy.shape.ui.ui_v2.forms_components.button=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.ui.ui_v2.forms_components.radio_button=
|
||||
com.gliffy.shape.ui.ui_v2.forms_components.checkbox=mxgraph.mockup.forms.checkbox;rSize=0
|
||||
com.gliffy.shape.ui.ui_v2.forms_components.combobox=mxgraph.mockup.forms.comboBox;fillColor=#ddeeff;fillColor2=#aaddff;mainText=
|
||||
|
@ -1410,110 +1402,101 @@ com.gliffy.shape.venn.outline.default.FFFF00=ellipse;perimeter=ellipsePerimeter;
|
|||
# FLOORPLAN v2
|
||||
#
|
||||
# FLOORPLAN v2 STRUCTURE
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.door1=mxgraph.floorplan.doorLeft;direction=north;flipV=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.door2=mxgraph.floorplan.doorRight;direction=north;flipH=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.wall_horizontal=mxgraph.floorplan.wall
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.wall_vertical=mxgraph.floorplan.wall;direction=south
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.window_single=mxgraph.floorplan.window
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.dimension=mxgraph.floorplan.dimension
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.stairs1=mxgraph.floorplan.stairs
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.stairs2=mxgraph.floorplan.stairsRest
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.elevator=mxgraph.floorplan.elevator
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.fireplace=mxgraph.floorplan.fireplace
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.door1=mxgraph.floorplan.doorLeft;direction=north;flipV=1;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.door2=mxgraph.floorplan.doorRight;direction=north;flipH=1;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.wall_horizontal=mxgraph.floorplan.wall;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.wall_vertical=mxgraph.floorplan.wall;direction=south;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.window_single=mxgraph.floorplan.window;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.dimension=mxgraph.floorplan.dimension;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.stairs1=mxgraph.floorplan.stairs;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.stairs2=mxgraph.floorplan.stairsRest;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.elevator=mxgraph.floorplan.elevator;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.structure.fireplace=mxgraph.floorplan.fireplace;strokeWidth=1
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.structure.tile_floor=
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.structure.wood_floor=
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.structure.light_wood_floor=
|
||||
# FLOORPLAN v2 BEDROOM
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_double=mxgraph.floorplan.bed_double
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_queen=mxgraph.floorplan.bed_double
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_single=mxgraph.floorplan.bed_single
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.dresser=mxgraph.floorplan.dresser
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.armoire=mxgraph.floorplan.dresser
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.lamp=mxgraph.floorplan.floor_lamp
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_double=mxgraph.floorplan.bed_double;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_queen=mxgraph.floorplan.bed_double;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.bed_single=mxgraph.floorplan.bed_single;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.dresser=mxgraph.floorplan.dresser;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.armoire=mxgraph.floorplan.dresser;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bedroom.lamp=mxgraph.floorplan.floor_lamp;strokeWidth=1
|
||||
# FLOORPLAN v2 LIVING ROOM
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.coffee_table=mxgraph.floorplan.table
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.bookcase=mxgraph.floorplan.bookcase
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.floor_lamp=mxgraph.floorplan.floor_lamp
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.lamp=mxgraph.floorplan.floor_lamp
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.side_table=rect
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.couch=mxgraph.floorplan.couch
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.plant=mxgraph.floorplan.plant
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.flat_tv=mxgraph.floorplan.flat_tv
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.tv=mxgraph.floorplan.crt_tv
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.loveseat=mxgraph.floorplan.couch
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.small_loveseat=mxgraph.floorplan.sofa
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.coffee_table=mxgraph.floorplan.table;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.bookcase=mxgraph.floorplan.bookcase;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.floor_lamp=mxgraph.floorplan.floor_lamp;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.lamp=mxgraph.floorplan.floor_lamp;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.side_table=rect;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.couch=mxgraph.floorplan.couch;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.plant=mxgraph.floorplan.plant;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.flat_tv=mxgraph.floorplan.flat_tv;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.tv=mxgraph.floorplan.crt_tv;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.loveseat=mxgraph.floorplan.couch;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.small_loveseat=mxgraph.floorplan.sofa;strokeWidth=1
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.living_room.ottoman=
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.circular_rug=ellipse
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.rectangular_rug=rect
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.circular_rug=ellipse;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.living_room.rectangular_rug=rect;strokeWidth=1
|
||||
# FLOORPLAN v2 DINING ROOM
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_wood=rect
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_glass=rect
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.chair=mxgraph.floorplan.chair
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_4_chairs=mxgraph.floorplan.table_1
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_4_chairs_square=mxgraph.floorplan.table_2
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_6_chairs_wood=mxgraph.floorplan.table_4
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_6_chairs=mxgraph.floorplan.table_4
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_circular=mxgraph.floorplan.table_3
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_wood=rect;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_glass=rect;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.chair=mxgraph.floorplan.chair;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_4_chairs=mxgraph.floorplan.table_1;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_4_chairs_square=mxgraph.floorplan.table_2;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_6_chairs_wood=mxgraph.floorplan.table_4;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_6_chairs=mxgraph.floorplan.table_4;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.dining_room.table_circular=mxgraph.floorplan.table_3;strokeWidth=1
|
||||
# FLOORPLAN v2 KITCHEN
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.stool=mxgraph.floorplan.chair;flipV=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.range=mxgraph.floorplan.range_2
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.refrigerator=mxgraph.floorplan.refrigerator
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_single1=mxgraph.floorplan.sink_1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_single2=mxgraph.floorplan.sink_2
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_double_2d=mxgraph.floorplan.sink_double
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.stool=mxgraph.floorplan.chair;flipV=1;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.range=mxgraph.floorplan.range_2;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.refrigerator=mxgraph.floorplan.refrigerator;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_single1=mxgraph.floorplan.sink_1;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_single2=mxgraph.floorplan.sink_2;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.kitchen.sink_double_2d=mxgraph.floorplan.sink_double;strokeWidth=1
|
||||
# FLOORPLAN v2 BATHROOM
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.bathtub=mxgraph.floorplan.bathtub;flipH=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.toilet=mxgraph.floorplan.toilet
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.shower=mxgraph.floorplan.shower
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.sink_single1=mxgraph.floorplan.sink_1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.sink_single2=mxgraph.floorplan.sink_2
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.bathtub=mxgraph.floorplan.bathtub;flipH=1;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.toilet=mxgraph.floorplan.toilet;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.shower=mxgraph.floorplan.shower;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.sink_single1=mxgraph.floorplan.sink_1;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.bathroom.sink_single2=mxgraph.floorplan.sink_2;strokeWidth=1
|
||||
# FLOORPLAN v2 OFFICE
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.cubicle=mxgraph.floorplan.wallU
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.wall_horizontal=mxgraph.floorplan.wall
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.wall_vertical=mxgraph.floorplan.wall;direction=south
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.office_chair=mxgraph.floorplan.office_chair
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.computer_crt=mxgraph.floorplan.workstation
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.desk_l=mxgraph.floorplan.desk_corner_2
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.desk_office=rect
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.desk_metal=rect
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.desk_metal_l=mxgraph.floorplan.desk_corner_2
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.computer_lcd=mxgraph.floorplan.workstation
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.copier=mxgraph.floorplan.copier
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.cubicle=mxgraph.floorplan.wallU;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.wall_horizontal=mxgraph.floorplan.wall;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.wall_vertical=mxgraph.floorplan.wall;direction=south;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.office_chair=mxgraph.floorplan.office_chair;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.computer_crt=mxgraph.floorplan.workstation;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.desk_l=mxgraph.floorplan.desk_corner_2;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.desk_office=rect;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.desk_metal=rect;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.desk_metal_l=mxgraph.floorplan.desk_corner_2;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.computer_lcd=mxgraph.floorplan.workstation;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.copier=mxgraph.floorplan.copier;strokeWidth=1
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.office.desk_lamp=
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.laptop=mxgraph.floorplan.laptop
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.laptop=mxgraph.floorplan.laptop;strokeWidth=1
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.office.telephone=
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.printer=mxgraph.floorplan.printer
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.scanner=roundrect
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.table_3person=mxgraph.floorplan.table_3
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.table_6person=mxgraph.floorplan.table_3
|
||||
#composite
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.table_10person=mxgraph.floorplan.table_5
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.vending_machine=roundrect
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.printer=mxgraph.floorplan.printer;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.scanner=roundrect;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.table_3person=mxgraph.floorplan.table_3;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.table_6person=mxgraph.floorplan.table_3;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.table_10person=mxgraph.floorplan.table_5;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.vending_machine=roundrect;strokeWidth=1
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.office.video_projector=
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.office.video_screen=
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.water_cooler=mxgraph.floorplan.water_cooler
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.plant=mxgraph.floorplan.plant
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.water_cooler=mxgraph.floorplan.water_cooler;strokeWidth=1
|
||||
com.gliffy.shape.floorplan.floorplan_v2.office.plant=mxgraph.floorplan.plant;strokeWidth=1
|
||||
# FLOORPLAN v2 MISCELLANEOUS
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.washing_machine=
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.dryer=
|
||||
com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.piano=mxgraph.floorplan.piano
|
||||
com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.piano=mxgraph.floorplan.piano;strokeWidth=1
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.pool_table=
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.drumset=
|
||||
#com.gliffy.shape.floorplan.floorplan_v2.miscellaneous.gas_furnace=
|
||||
#
|
||||
# MINDMAP
|
||||
#
|
||||
com.gliffy.shape.mindmap.mindmap_v1.default.main_topic=rect;rounded=1
|
||||
com.gliffy.shape.mindmap.mindmap_v1.default.subtopic=rect;rounded=1
|
||||
com.gliffy.shape.mindmap.mindmap_v1.default.child_node=rect;rounded=1;dashed=1
|
||||
com.gliffy.shape.mindmap.mindmap_v1.default.main_topic=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.mindmap.mindmap_v1.default.subtopic=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.shape.mindmap.mindmap_v1.default.child_node=rect;rounded=1;dashed=1;arcSize=15;absoluteArcSize=1
|
||||
|
||||
#
|
||||
# Child shape TID
|
||||
|
@ -1530,7 +1513,18 @@ com.gliffy.stencil.boundary_lifeline.uml_v2=umlBoundary
|
|||
com.gliffy.stencil.object_timeline.uml_v1=line;direction=south;dashed=1
|
||||
com.gliffy.stencil.control_lifeline.uml_v2=umlControl
|
||||
com.gliffy.stencil.entity_lifeline.uml_v2=umlEntity
|
||||
com.gliffy.stencil.ui.ui_v3.containers_content.speech_bubble=rect;rounded=1
|
||||
com.gliffy.stencil.ui.ui_v3.containers_content.speech_bubble=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.stencil.ui.ui_v3.containers_content.speech_bubble_right=mxgraph.basic.orthogonal_triangle;direction=south
|
||||
com.gliffy.stencil.ui.ui_v3.containers_content.speech_bubble_left=mxgraph.basic.orthogonal_triangle;direction=south;flipH=1
|
||||
com.gliffy.stencil.rectangle.basic_v1=rect
|
||||
com.gliffy.stencil.iphone.iphone_ios7.navigation.action_back=mxgraph.ios7.misc.left;strokeWidth=3;strokeColor=#157EFA
|
||||
com.gliffy.stencil.round_rectangle.basic_v1=rect;rounded=1;arcSize=15;absoluteArcSize=1
|
||||
com.gliffy.stencil.triangle.basic_v1=mxgraph.flowchart.extract_or_measurement
|
||||
com.gliffy.stencil.rectangle.fill_line_top=partialRectangle;bottom=0;right=0;left=0
|
||||
com.gliffy.stencil.rectangle.white_no_line_opacity_68=rect;strokeColor=none;opacity=68
|
||||
com.gliffy.stencil.rectangle.fill_line_bottom=partialRectangle;top=0;right=0;left=0
|
||||
com.gliffy.stencil.rectangle.no_fill_line_bottom_2px_off=partialRectangle;top=0;right=0;left=0;fillColor=none
|
||||
com.gliffy.stencil.rectangle.no_fill_half_line_right=partialRectangle;top=0;bottom=0;left=0
|
||||
com.gliffy.stencil.rectangle.basic_v1_whitened_68_percent=rect;opacity=68
|
||||
#in current configuration, we cannot add subshapes (the circle)
|
||||
com.gliffy.stencil.rectangle.fill_no_line_circle_left=rect;strokeColor=none
|
|
@ -8,7 +8,6 @@ import java.util.Iterator;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import com.mxgraph.io.gliffy.importer.PostDeserializer.PostDeserializable;
|
||||
import com.mxgraph.model.mxCell;
|
||||
|
@ -27,6 +26,8 @@ public class GliffyObject implements PostDeserializable
|
|||
|
||||
private static Set<String> MINDMAP_SHAPES = new HashSet<>();
|
||||
|
||||
private static Set<String> FILLCLR_IS_STROKECLR_SHAPES = new HashSet<>();
|
||||
|
||||
private static Map<String, double[]> SHAPES_COORD_FIX = new HashMap<>();
|
||||
|
||||
public float x;
|
||||
|
@ -148,18 +149,53 @@ public class GliffyObject implements PostDeserializable
|
|||
GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v1.default.object_timeline");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v1.default.class");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.uml.uml_v1.default.object");
|
||||
|
||||
//ios
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.containers_content.table");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.forms_controls.button_stack");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert_2options");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.forms_controls.alert");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.navigation.contextual_menu");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.navigation.nav_3tabs");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.containers_content.title_bar");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.navigation.tab_bar");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.iphone.iphone_ios7.forms_controls.search");
|
||||
//android
|
||||
GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.dialog");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.list_1line");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.list_2lines");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.tabs01");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.android.android_v1.general.tabs02");
|
||||
//others
|
||||
GROUP_SHAPES.add("com.gliffy.shape.network.network_v3.business.user_group");
|
||||
//ui
|
||||
GROUP_SHAPES.add("com.gliffy.shape.ui.ui_v3.navigation.navbar");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.ui.ui_v3.navigation.navbar_vertical");
|
||||
GROUP_SHAPES.add("com.gliffy.shape.ui.ui_v3.forms_controls.dropdown");
|
||||
//It is a group but we have one similar
|
||||
//GROUP_SHAPES.add("com.gliffy.shape.ui.ui_v3.forms_controls.audio_controls");
|
||||
|
||||
MINDMAP_SHAPES.add("com.gliffy.shape.mindmap.mindmap_v1.default.main_topic");
|
||||
MINDMAP_SHAPES.add("com.gliffy.shape.mindmap.mindmap_v1.default.subtopic");
|
||||
MINDMAP_SHAPES.add("com.gliffy.shape.mindmap.mindmap_v1.default.child_node");
|
||||
|
||||
|
||||
//This map is used to change Gliffy coordinates to match mxGraph ones
|
||||
//Format [xShift, yShift, widthShift, heightShift, DONT REPOSITION TEXT] values between ]-1, 1[ means percentage
|
||||
SHAPES_COORD_FIX.put("com.gliffy.shape.flowchart.flowchart_v1.default.paper_tape", new double[]{0, -0.1, 0, 0.2});
|
||||
SHAPES_COORD_FIX.put("com.gliffy.shape.uml.uml_v1.default.node", new double[]{0, -10, 10, 10});
|
||||
SHAPES_COORD_FIX.put("com.gliffy.shape.uml.uml_v2.deployment.node", new double[]{0, -10, 10, 10});
|
||||
SHAPES_COORD_FIX.put("com.gliffy.shape.uml.uml_v2.deployment.device_node", new double[]{0, -10, 10, 10});
|
||||
SHAPES_COORD_FIX.put("com.gliffy.shape.uml.uml_v2.deployment.execution_environment_node", new double[]{0, -10, 10, 10});
|
||||
SHAPES_COORD_FIX.put("com.gliffy.shape.flowchart.flowchart_v1.default.data_storage", new double[]{0, 0, 0.115, 0});
|
||||
//these shapes cannot be resized (width is fixed) in Gliffy
|
||||
SHAPES_COORD_FIX.put("com.gliffy.stencil.entity_lifeline.uml_v2", new double[]{10, 0, -20, 0});
|
||||
SHAPES_COORD_FIX.put("com.gliffy.stencil.boundary_lifeline.uml_v2", new double[]{35, 0, -70, 0});
|
||||
SHAPES_COORD_FIX.put("com.gliffy.stencil.control_lifeline.uml_v2", new double[]{10, 0, -20, 0});
|
||||
|
||||
//Our browser window has a larger header so increase it
|
||||
SHAPES_COORD_FIX.put("com.gliffy.shape.ui.ui_v3.containers_content.browser", new double[]{0, -40, 0, 40, 1});
|
||||
|
||||
//There are many shapes where fillColor is the strokeColor
|
||||
FILLCLR_IS_STROKECLR_SHAPES.add("com.gliffy.stencil.rectangle.no_fill_line_bottom_2px_off");
|
||||
}
|
||||
|
||||
public GliffyObject()
|
||||
|
@ -257,9 +293,9 @@ public class GliffyObject implements PostDeserializable
|
|||
|
||||
public boolean isGroup()
|
||||
{
|
||||
return (uid != null && (GROUP_SHAPES.contains(uid) || uid.startsWith("com.gliffy.shape.table")))
|
||||
return (hasChildren() && ((uid != null && (GROUP_SHAPES.contains(uid) || uid.startsWith("com.gliffy.shape.table")))
|
||||
//Since we treat text in a different way (added as cell value instead of another child cell, this is probably the best way to detect groups when uid is null)
|
||||
|| (uid == null && hasChildren() && !children.get(0).isText());
|
||||
|| (uid == null && !children.get(0).isText())));
|
||||
}
|
||||
|
||||
public boolean isSelection()
|
||||
|
@ -517,7 +553,7 @@ public class GliffyObject implements PostDeserializable
|
|||
|
||||
public void adjustGeo(mxGeometry geo)
|
||||
{
|
||||
double[] arr = SHAPES_COORD_FIX.get(uid);
|
||||
double[] arr = SHAPES_COORD_FIX.get(uid != null? uid : (graphic != null && graphic.getShape() != null ? graphic.getShape().tid : null));
|
||||
|
||||
if (arr != null)
|
||||
{
|
||||
|
@ -536,7 +572,7 @@ public class GliffyObject implements PostDeserializable
|
|||
{
|
||||
double[] arr = SHAPES_COORD_FIX.get(uid);
|
||||
|
||||
if (arr != null)
|
||||
if (arr != null && arr.length == 4)
|
||||
{
|
||||
mxGeometry shifts = getAdjustShifts(arr, x, y, width, height);
|
||||
|
||||
|
@ -544,4 +580,9 @@ public class GliffyObject implements PostDeserializable
|
|||
textObject.y -= shifts.getY();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isUseFillColor4StrokeColor()
|
||||
{
|
||||
return FILLCLR_IS_STROKECLR_SHAPES.contains(uid != null? uid : (graphic != null && graphic.getShape() != null ? graphic.getShape().tid : null));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,8 @@ public class GliffyText implements PostDeserializer.PostDeserializable
|
|||
public Double lineTValue = 0.5;//places the text in the middle of the line
|
||||
|
||||
public Integer linePerpValue;
|
||||
|
||||
public String cardinalityType;
|
||||
|
||||
public String overflow;
|
||||
|
||||
|
@ -201,6 +203,11 @@ public class GliffyText implements PostDeserializer.PostDeserializable
|
|||
return null;
|
||||
}
|
||||
|
||||
public void setHalign(String halign)
|
||||
{
|
||||
this.halign = halign;
|
||||
}
|
||||
|
||||
public void setValign(String valign)
|
||||
{
|
||||
this.valign = valign;
|
||||
|
|
|
@ -45,6 +45,8 @@ public class Graphic
|
|||
public Integer endArrow;
|
||||
|
||||
public String interpolationType;
|
||||
|
||||
public Integer cornerRadius;
|
||||
|
||||
public List<float[]> controlPath = new ArrayList<float[]>();
|
||||
}
|
||||
|
|
|
@ -40,8 +40,23 @@ public class ProxyServlet extends HttpServlet
|
|||
HttpServletResponse response) throws ServletException, IOException
|
||||
{
|
||||
String urlParam = request.getParameter("url");
|
||||
|
||||
// build the UML source from the compressed request parameter
|
||||
String ref = request.getHeader("referer");
|
||||
String dom = null;
|
||||
|
||||
if (urlParam != null)
|
||||
if (ref != null && ref.toLowerCase()
|
||||
.matches("https?://([a-z0-9,-]+[.])*draw[.]io/.*"))
|
||||
{
|
||||
dom = ref.toLowerCase().substring(0, ref.indexOf(".draw.io/") + 8);
|
||||
}
|
||||
else if (ref != null && ref.toLowerCase()
|
||||
.matches("https?://([a-z0-9,-]+[.])*quipelements[.]com/.*"))
|
||||
{
|
||||
dom = ref.toLowerCase().substring(0, ref.indexOf(".quipelements.com/") + 17);
|
||||
}
|
||||
|
||||
if (dom != null && urlParam != null)
|
||||
{
|
||||
request.setCharacterEncoding("UTF-8");
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
|
@ -56,26 +71,7 @@ public class ProxyServlet extends HttpServlet
|
|||
response.setHeader("Pragma", "no-cache"); // HTTP 1.0
|
||||
response.setHeader("Cache-control", "private, no-cache, no-store");
|
||||
response.setHeader("Expires", "0");
|
||||
|
||||
// build the UML source from the compressed request parameter
|
||||
String ref = request.getHeader("referer");
|
||||
String dom = null;
|
||||
|
||||
if (ref != null && ref.toLowerCase()
|
||||
.matches("https?://([a-z0-9,-]+[.])*draw[.]io/.*"))
|
||||
{
|
||||
dom = ref.toLowerCase().substring(0, ref.indexOf(".draw.io/") + 8);
|
||||
}
|
||||
else if (ref != null && ref.toLowerCase()
|
||||
.matches("https?://([a-z0-9,-]+[.])*quipelements[.]com/.*"))
|
||||
{
|
||||
dom = ref.toLowerCase().substring(0, ref.indexOf(".quipelements.com/") + 17);
|
||||
}
|
||||
|
||||
if (dom != null)
|
||||
{
|
||||
response.addHeader("Access-Control-Allow-Origin", dom);
|
||||
}
|
||||
response.addHeader("Access-Control-Allow-Origin", dom);
|
||||
|
||||
// Status code pass-through
|
||||
if (connection instanceof HttpURLConnection)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
CACHE MANIFEST
|
||||
|
||||
# THIS FILE WAS GENERATED. DO NOT MODIFY!
|
||||
# 03/15/2018 03:18 PM
|
||||
# 03/21/2018 05:29 PM
|
||||
|
||||
app.html
|
||||
index.html?offline=1
|
||||
|
|
|
@ -98,7 +98,7 @@ AC.initAsync = function(baseUrl)
|
|||
editor.setAttribute('frameborder', '0');
|
||||
//editor.setAttribute('src', 'https://9674265b.ngrok.io/?dev=1&drawdev=1&' +
|
||||
editor.setAttribute('src', hostUrl + '/?' +
|
||||
'ui=atlas&p=ac&embed=1&modified=unsavedChanges' +
|
||||
'ui=atlas&p=ac148&embed=1&modified=unsavedChanges' +
|
||||
((!AC.autoExit) ? '&saveAndExit=1' : '') +
|
||||
'&keepmodified=1&spin=1&libraries=1&proto=json' +
|
||||
((lang != null) ? '&lang=' + lang : '') + ((site != null) ? '&site=' + encodeURIComponent(site) : '') +
|
||||
|
@ -588,7 +588,7 @@ AC.init = function(baseUrl, location, pageId, editor, diagramName, initialXml, d
|
|||
|
||||
if (fileExists)
|
||||
{
|
||||
err(name, null, 'fileExists');
|
||||
err(name, name + ' already exists');
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -239,7 +239,7 @@ if (lang != null)
|
|||
// LATER: Disable responsive resize while lightbox shows
|
||||
var container = document.createElement('div');
|
||||
container.style.cssText = 'position:absolute;box-sizing:border-box;' +
|
||||
'max-width:100%;margin-bottom:' + tbHeight +'px;border:1px solid transparent;';
|
||||
'max-width:100%;border:1px solid transparent;';
|
||||
document.body.appendChild(container);
|
||||
var doc = mxUtils.parseXml(xml);
|
||||
|
||||
|
@ -281,6 +281,8 @@ if (lang != null)
|
|||
width += 3;
|
||||
updateContainerWidth.apply(this, arguments);
|
||||
};
|
||||
|
||||
config.resize = true;
|
||||
}
|
||||
|
||||
var viewer = new GraphViewer(container, doc.documentElement, config);
|
||||
|
@ -290,7 +292,7 @@ if (lang != null)
|
|||
|
||||
function updateHeight(height)
|
||||
{
|
||||
AP.resize('100%', (tbHeight == 0) ? Math.ceil(height) : container.offsetHeight + tbHeight);
|
||||
AP.resize('100%', Math.ceil(height) + tbHeight + 2 * border);
|
||||
};
|
||||
|
||||
viewer.graph.doResizeContainer = function(width, height)
|
||||
|
@ -305,14 +307,14 @@ if (lang != null)
|
|||
updateHeight(height);
|
||||
};
|
||||
|
||||
updateHeight();
|
||||
updateHeight(container.offsetHeight);
|
||||
|
||||
viewer.showLightbox = function()
|
||||
{
|
||||
dialog.create(
|
||||
{
|
||||
header: name,
|
||||
key: 'lightbox',
|
||||
key: 'lightbox',
|
||||
size: 'fullscreen',
|
||||
customData: {id: id, name: name, revision: revision, page: viewer.currentPage, links: links},
|
||||
chrome: true
|
||||
|
|
|
@ -20,7 +20,6 @@ function createWindow (opt = {})
|
|||
{
|
||||
width: 1600,
|
||||
height: 1200,
|
||||
nodeIntegration: false,
|
||||
'web-security': false,
|
||||
allowRunningInsecureContent: __DEV__,
|
||||
webPreferences: {
|
||||
|
|
BIN
src/main/webapp/images/sidebar-cisco_safe.png
Normal file
BIN
src/main/webapp/images/sidebar-cisco_safe.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 91 KiB |
1769
src/main/webapp/js/app.min.js
vendored
1769
src/main/webapp/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
1122
src/main/webapp/js/atlas-viewer.min.js
vendored
1122
src/main/webapp/js/atlas-viewer.min.js
vendored
File diff suppressed because one or more lines are too long
1671
src/main/webapp/js/atlas.min.js
vendored
1671
src/main/webapp/js/atlas.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -163,7 +163,7 @@ App.DROPBOX_APPKEY = 'libwls2fa9szdji';
|
|||
/**
|
||||
* Sets URL to load the Dropbox SDK from
|
||||
*/
|
||||
App.DROPBOX_URL = 'https://unpkg.com/dropbox@2.5.13/dist/Dropbox-sdk.min.js';
|
||||
App.DROPBOX_URL = 'js/dropbox/Dropbox-sdk.min.js';
|
||||
|
||||
/**
|
||||
* Sets the delay for autosave in milliseconds. Default is 2000.
|
||||
|
@ -195,8 +195,9 @@ App.FOOTER_PLUGIN_URL = 'https://www.jgraph.com/drawio-footer.js';
|
|||
* https://desk.draw.io/solution/articles/16000042546
|
||||
*/
|
||||
App.pluginRegistry = {'4xAKTrabTpTzahoLthkwPNUn': '/plugins/explore.js',
|
||||
'ex': '/plugins/explore.js', 'p1': '/plugins/p1.js', 'ac': '/plugins/connect.js',
|
||||
'acj': '/plugins/connectJira.js', 'voice': '/plugins/voice.js',
|
||||
'ex': '/plugins/explore.js', 'p1': '/plugins/p1.js',
|
||||
'ac': '/plugins/connect.js', 'acj': '/plugins/connectJira.js',
|
||||
'ac148': '/plugins/cConf-1-4-8.js', 'voice': '/plugins/voice.js',
|
||||
'tips': '/plugins/tooltips.js', 'svgdata': '/plugins/svgdata.js',
|
||||
'doors': '/plugins/doors.js', 'electron': 'plugins/electron.js',
|
||||
'number': '/plugins/number.js', 'sql': '/plugins/sql.js',
|
||||
|
|
|
@ -41,6 +41,7 @@ mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Basic.js');
|
|||
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Bootstrap.js');
|
||||
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-BPMN.js');
|
||||
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Cabinet.js');
|
||||
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-CiscoSafe.js');
|
||||
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Citrix.js');
|
||||
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-EIP.js');
|
||||
mxscript(drawDevUrl + 'js/diagramly/sidebar/Sidebar-Electrical.js');
|
||||
|
|
|
@ -2832,7 +2832,9 @@ var NewDialog = function(editorUi, compact, showName, callback, createOnly, canc
|
|||
|
||||
var createButton = mxUtils.button(mxResources.get('create'), function()
|
||||
{
|
||||
createButton.setAttribute('disabled', 'disabled');
|
||||
create();
|
||||
createButton.removeAttribute('disabled');
|
||||
});
|
||||
|
||||
createButton.className = 'geBtn gePrimaryBtn';
|
||||
|
|
|
@ -95,11 +95,23 @@
|
|||
'# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n' +
|
||||
'# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n' +
|
||||
'#\n' +
|
||||
'## Node width. Possible value are px or auto. Default is auto.\n' +
|
||||
'## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n' +
|
||||
'## override this value.\n' +
|
||||
'#\n' +
|
||||
'# left: \n' +
|
||||
'#\n' +
|
||||
'## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n' +
|
||||
'## override this value.\n' +
|
||||
'#\n' +
|
||||
'# top: \n' +
|
||||
'#\n' +
|
||||
'## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n' +
|
||||
'## name that contains the value for the width. Default is auto.\n' +
|
||||
'#\n' +
|
||||
'# width: auto\n' +
|
||||
'#\n' +
|
||||
'## Node height. Possible value are px or auto. Default is auto.\n' +
|
||||
'## Node height. Possible value is a number (in px), auto or an @ sign followed by a column\n' +
|
||||
'## name that contains the value for the height. Default is auto.\n' +
|
||||
'#\n' +
|
||||
'# height: auto\n' +
|
||||
'#\n' +
|
||||
|
@ -619,7 +631,7 @@
|
|||
|
||||
this.graph.addListener(mxEvent.SIZE, mxUtils.bind(this, function(sender, evt)
|
||||
{
|
||||
if (this.graph.mathEnabled)
|
||||
if (this.graph.mathEnabled && this.graph.container.style.visibility != 'hidden')
|
||||
{
|
||||
Editor.MathJaxRender(this.graph.container);
|
||||
}
|
||||
|
|
|
@ -9144,6 +9144,8 @@
|
|||
var identity = null;
|
||||
var width = 'auto';
|
||||
var height = 'auto';
|
||||
var left = null;
|
||||
var top = null;
|
||||
var edgespacing = 40;
|
||||
var nodespacing = 40;
|
||||
var padding = 0;
|
||||
|
@ -9159,7 +9161,7 @@
|
|||
graph.scrollCellToVisible(graph.getSelectionCell());
|
||||
};
|
||||
|
||||
// Computes unscaled, untranslated graph bounds
|
||||
// Computes unscaled, untranslated graph bounds
|
||||
var pt = graph.getFreeInsertPoint();
|
||||
var x0 = pt.x;
|
||||
var y0 = pt.y;
|
||||
|
@ -9228,6 +9230,14 @@
|
|||
{
|
||||
height = value;
|
||||
}
|
||||
else if (key == 'left' && value.length > 0)
|
||||
{
|
||||
left = value;
|
||||
}
|
||||
else if (key == 'top' && value.length > 0)
|
||||
{
|
||||
top = value;
|
||||
}
|
||||
else if (key == 'ignore')
|
||||
{
|
||||
ignore = value.split(',');
|
||||
|
@ -9320,7 +9330,7 @@
|
|||
|
||||
for (var j = 0; j < values.length; j++)
|
||||
{
|
||||
graph.setAttributeForCell(cell, keys[j], values[j]);
|
||||
graph.setAttributeForCell(cell, keys[j], values[j]);
|
||||
}
|
||||
|
||||
graph.setAttributeForCell(cell, 'placeholders', '1');
|
||||
|
@ -9343,9 +9353,38 @@
|
|||
graph.fireEvent(new mxEventObject('cellsInserted', 'cells', [cell]));
|
||||
var size = this.editor.graph.getPreferredSizeForCell(cell);
|
||||
|
||||
cell.geometry.width = (width == 'auto') ? size.width + padding : parseFloat(width);
|
||||
cell.geometry.height = (height == 'auto') ? size.height + padding : parseFloat(height);
|
||||
y += cell.geometry.height + nodespacing;
|
||||
if (cell.vertex)
|
||||
{
|
||||
if (left != null && cell.getAttribute(left) != null)
|
||||
{
|
||||
cell.geometry.x = x0 + parseFloat(cell.getAttribute(left));
|
||||
}
|
||||
|
||||
if (top != null && cell.getAttribute(top) != null)
|
||||
{
|
||||
cell.geometry.y = y0 + parseFloat(cell.getAttribute(top));
|
||||
}
|
||||
|
||||
if (width.charAt(0) == '@' && cell.getAttribute(width.substring(1)) != null)
|
||||
{
|
||||
cell.geometry.width = parseFloat(cell.getAttribute(width.substring(1)));
|
||||
}
|
||||
else
|
||||
{
|
||||
cell.geometry.width = (width == 'auto') ? size.width + padding : parseFloat(width);
|
||||
}
|
||||
|
||||
if (height.charAt(0) == '@' && cell.getAttribute(height.substring(1)) != null)
|
||||
{
|
||||
cell.geometry.height = parseFloat(cell.getAttribute(height.substring(1)));
|
||||
}
|
||||
else
|
||||
{
|
||||
cell.geometry.height = (height == 'auto') ? size.height + padding : parseFloat(height);
|
||||
}
|
||||
|
||||
y += cell.geometry.height + nodespacing;
|
||||
}
|
||||
|
||||
cells.push(graph.addCell(cell));
|
||||
}
|
||||
|
|
|
@ -406,7 +406,7 @@ GraphViewer.prototype.addSizeHandler = function()
|
|||
updatingOverflow = true;
|
||||
var tmp = this.graph.getGraphBounds();
|
||||
|
||||
if (container.offsetWidth < tmp.width + this.graph.border)
|
||||
if (container.offsetWidth <= tmp.width + 2 * this.graph.border * this.graph.view.scale)
|
||||
{
|
||||
container.style.overflow = 'auto';
|
||||
}
|
||||
|
@ -504,7 +504,7 @@ GraphViewer.prototype.addSizeHandler = function()
|
|||
|
||||
if (this.graphConfig.resize || ((this.zoomEnabled || !this.autoFit) && this.graphConfig.resize != false))
|
||||
{
|
||||
this.graph.minimumContainerSize = new mxRectangle(0, 0, 100, this.toolbarHeight);
|
||||
this.graph.minimumContainerSize = new mxRectangle(0, 0, 100, 1);
|
||||
this.graph.resizeContainer = true;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -376,7 +376,7 @@ EditorUi.prototype.initPages = function()
|
|||
if (typeof(MathJax) !== 'undefined' && typeof(MathJax.Hub) !== 'undefined')
|
||||
{
|
||||
// Pending math should not be rendered if the graph has no math enabled
|
||||
if (!ignorePendingMath)
|
||||
if (!ignorePendingMath && this.editor != null)
|
||||
{
|
||||
if (MathJax.Hub.queue.pending == 1 && !this.editor.graph.mathEnabled)
|
||||
{
|
||||
|
@ -394,7 +394,7 @@ EditorUi.prototype.initPages = function()
|
|||
}));
|
||||
}
|
||||
}
|
||||
else if (typeof(Editor.MathJaxClear) !== 'undefined' && !this.editor.graph.mathEnabled)
|
||||
else if (typeof(Editor.MathJaxClear) !== 'undefined' && (this.editor == null || !this.editor.graph.mathEnabled))
|
||||
{
|
||||
// Clears our own queue for async loading
|
||||
ignorePendingMath = true;
|
||||
|
|
|
@ -32,7 +32,9 @@
|
|||
this.createVertexTemplateEntry(s2 + 'moon', w * 0.75, h, '', 'Moon', null, null, this.getTagsForStencil(gn, 'moon', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s2 + 'no_symbol', w, h, '', 'No Symbol', null, null, this.getTagsForStencil(gn, 'no_symbol', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'octagon2;align=center;verticalAlign=middle;dx=15;', w, h, '', 'Octagon', null, null, this.getTagsForStencil(gn, 'octagon', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s2 + 'orthogonal_triangle', w, h, '', 'Orthogonal Triangle', null, null, this.getTagsForStencil(gn, 'orthogonal_triangle', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s2 + 'orthogonal_triangle', w, h * 0.7, '', 'Orthogonal Triangle', null, null, this.getTagsForStencil(gn, 'orthogonal_triangle', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s2 + 'acute_triangle;dx=0.5;', w, h * 0.7, '', 'Acute Triangle', null, null, this.getTagsForStencil(gn, 'acute_triangle', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s2 + 'obtuse_triangle;dx=0.25;', w, h * 0.7, '', 'Obtuse Triangle', null, null, this.getTagsForStencil(gn, 'obtuse_triangle', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'oval_callout', w, h * 0.6, '', 'Oval Callout', null, null, this.getTagsForStencil(gn, 'oval_callout', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s3 + 'parallelogram;whiteSpace=wrap;align=center;size=0.24;', w, h * 0.6, '', 'Parallelepiped', null, null, this.getTagsForStencil(gn, 'parallelepiped', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'pentagon', w, h * 0.9, '', 'Pentagon', null, null, this.getTagsForStencil(gn, 'pentagon', dt).join(' ')),
|
||||
|
|
426
src/main/webapp/js/diagramly/sidebar/Sidebar-CiscoSafe.js
Normal file
426
src/main/webapp/js/diagramly/sidebar/Sidebar-CiscoSafe.js
Normal file
|
@ -0,0 +1,426 @@
|
|||
(function()
|
||||
{
|
||||
// Adds Cisco Safe stencils
|
||||
Sidebar.prototype.addCiscoSafePalette = function()
|
||||
{
|
||||
this.addCiscoSafeArchitecturePalette();
|
||||
this.addCiscoSafeCapabilityPalette();
|
||||
this.addCiscoSafeDesignPalette();
|
||||
this.addCiscoSafeThreatPalette();
|
||||
};
|
||||
|
||||
Sidebar.prototype.addCiscoSafeArchitecturePalette = function()
|
||||
{
|
||||
var w = 50;
|
||||
var h = 50;
|
||||
var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;fillColor=#6ABD46;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;shape=mxgraph.cisco_safe.architecture.';
|
||||
var gn = 'mxgraph.cisco_safe.architecture';
|
||||
var dt = 'cisco safe architecture';
|
||||
|
||||
this.addPaletteFunctions('cisco_safeArchitecture', 'Cisco Safe / Architecture', false,
|
||||
[
|
||||
this.createVertexTemplateEntry(s + 'aci_controller;',
|
||||
w, h, '', 'ACI Controller', null, null, this.getTagsForStencil(gn, 'aci controller', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'aci_leaf_switch;',
|
||||
w, h, '', 'ACI Leaf Switch', null, null, this.getTagsForStencil(gn, 'aci leaf switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'aci_spine_switch;',
|
||||
w, h, '', 'ACI Spine Switch', null, null, this.getTagsForStencil(gn, 'aci spine switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'adaptive_security_appliance;',
|
||||
w, h, '', 'Adaptive Security Appliance', null, null, this.getTagsForStencil(gn, 'adaptive security appliance', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'automated_system;',
|
||||
w, h, '', 'Automated System', null, null, this.getTagsForStencil(gn, 'automated system', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'blade_server;',
|
||||
w, h, '', 'Blade Server', null, null, this.getTagsForStencil(gn, 'blade server', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'catalyst_switch;',
|
||||
w, h, '', 'Catalyst Switch', null, null, this.getTagsForStencil(gn, 'catalyst switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'corporate_device;',
|
||||
w, h, '', 'Corporate Device', null, null, this.getTagsForStencil(gn, 'corporate device', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'email_security;',
|
||||
w, h, '', 'Email Security', null, null, this.getTagsForStencil(gn, 'email security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'fabric_switch;',
|
||||
w, h, '', 'Fabric Switch', null, null, this.getTagsForStencil(gn, 'fabric switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'firepower_appliance;',
|
||||
w, h, '', 'Firepower Appliance', null, null, this.getTagsForStencil(gn, 'firepower appliance', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'firewall;',
|
||||
w, h, '', 'Firewall', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'generic_appliance;',
|
||||
w, h, '', 'Generic Appliance', null, null, this.getTagsForStencil(gn, 'generic appliance', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'intrusion_detection;',
|
||||
w, h, '', 'Intrusion Detection', null, null, this.getTagsForStencil(gn, 'intrusion detection', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'l3_switch;',
|
||||
w, h, '', 'L3 Switch', null, null, this.getTagsForStencil(gn, 'l3 switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'load_balancer;',
|
||||
w, h, '', 'Load Balancer', null, null, this.getTagsForStencil(gn, 'load balancer', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'nexus_1kv;',
|
||||
w, h, '', 'Nexus 1kv', null, null, this.getTagsForStencil(gn, 'nexus 1kv', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'nexus_data_center_switch;',
|
||||
w, h, '', 'Nexus Data Center Switch', null, null, this.getTagsForStencil(gn, 'nexus data center switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'nexus_fabric_switch;',
|
||||
w, h, '', 'Nexus Fabric Switch', null, null, this.getTagsForStencil(gn, 'nexus fabric switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'nexus_switch;',
|
||||
w, h, '', 'Nexus Switch', null, null, this.getTagsForStencil(gn, 'nexus switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'phone;',
|
||||
w, h, '', 'Phone', null, null, this.getTagsForStencil(gn, 'phone', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'router;',
|
||||
w, h, '', 'Router', null, null, this.getTagsForStencil(gn, 'router', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'secure_server;',
|
||||
w, h, '', 'Secure Server', null, null, this.getTagsForStencil(gn, 'secure server', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'server;',
|
||||
w, h, '', 'Server', null, null, this.getTagsForStencil(gn, 'server', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'stacked_switch;',
|
||||
w, h, '', 'Stacked Switch', null, null, this.getTagsForStencil(gn, 'stacked switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'storage;',
|
||||
w, h, '', 'Storage', null, null, this.getTagsForStencil(gn, 'storage', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'switch;',
|
||||
w, h, '', 'Switch', null, null, this.getTagsForStencil(gn, 'switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'tls_appliance;',
|
||||
w, h, '', 'TLS Appliance', null, null, this.getTagsForStencil(gn, 'tls appliance', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'unified_access_switch;',
|
||||
w, h, '', 'Unified Access Switch', null, null, this.getTagsForStencil(gn, 'unified access switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'web_application_firewall;',
|
||||
w, h, '', 'Web Application Firewall', null, null, this.getTagsForStencil(gn, 'web application firewall', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'web_security;',
|
||||
w, h, '', 'Web Security', null, null, this.getTagsForStencil(gn, 'web security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wide_area_application_engine;',
|
||||
w, h, '', 'Wide Area Application Engine', null, null, this.getTagsForStencil(gn, 'wide area application engine', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wireless_access_point;',
|
||||
w, h, '', 'Wireless Access Point', null, null, this.getTagsForStencil(gn, 'wireless access point', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wireless_lan_controller;',
|
||||
w, h, '', 'Wireless LAN Controller', null, null, this.getTagsForStencil(gn, 'wireless lan controller', dt).join(' '))
|
||||
]);
|
||||
};
|
||||
|
||||
Sidebar.prototype.addCiscoSafeCapabilityPalette = function()
|
||||
{
|
||||
var w = 50;
|
||||
var h = 50;
|
||||
var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;fillColor=#28A8E0;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;shape=mxgraph.cisco_safe.capability.';
|
||||
var gn = 'mxgraph.cisco_safe.capability';
|
||||
var dt = 'cisco safe capability';
|
||||
|
||||
this.addPaletteFunctions('cisco_safeCapability', 'Cisco Safe / Capability', false,
|
||||
[
|
||||
this.createVertexTemplateEntry(s + 'access_control_using_trustsec;',
|
||||
w, h, '', 'Access Control Using TrustSec', null, null, this.getTagsForStencil(gn, 'access control using trustsec', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'analysis_correlation',
|
||||
w, h, '', 'Analysis Correlation', null, null, this.getTagsForStencil(gn, 'analysis correlation', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'anomaly_detection;',
|
||||
w, h, '', 'Anomaly Detection', null, null, this.getTagsForStencil(gn, 'anomaly detection', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'anti_malware;',
|
||||
w, h, '', 'Anti-Malware', null, null, this.getTagsForStencil(gn, 'anti malware', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'anti_spam;',
|
||||
w, h, '', 'Anti-Spam', null, null, this.getTagsForStencil(gn, 'anti spam', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'anti_virus;',
|
||||
w, h, '', 'Anti-Virus', null, null, this.getTagsForStencil(gn, 'anti virus', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'application;',
|
||||
w, h, '', 'Application', null, null, this.getTagsForStencil(gn, 'application', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'application_visibility_control;',
|
||||
w, h, '', 'Application Visibility Control', null, null, this.getTagsForStencil(gn, 'application visibility control', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'client_based_security;',
|
||||
w, h, '', 'Client Based Security', null, null, this.getTagsForStencil(gn, 'client based security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'cloud_web_security;',
|
||||
w, h, '', 'Cloud Web Security', null, null, this.getTagsForStencil(gn, 'cloud web security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'conference_bridge;',
|
||||
w, h, '', 'Conference Bridge', null, null, this.getTagsForStencil(gn, 'conference bridge', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'database;',
|
||||
w, h, '', 'Database', null, null, this.getTagsForStencil(gn, 'database', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'data_loss_prevention;',
|
||||
w, h, '', 'Data Loss Prevention', null, null, this.getTagsForStencil(gn, 'data loss prevention', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'distributed_denial_of_service_protection;',
|
||||
w, h, '', 'Distributed Denial of Service Protection', null, null, this.getTagsForStencil(gn, 'distributed denial of service protection', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'dns;',
|
||||
w, h, '', 'DNS', null, null, this.getTagsForStencil(gn, 'dns', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'email_encryption;',
|
||||
w, h, '', 'Email Encryption', null, null, this.getTagsForStencil(gn, 'email encryption', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'email_security;',
|
||||
w, h, '', 'Email Security', null, null, this.getTagsForStencil(gn, 'email security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'fabric_switching;',
|
||||
w, h, '', 'Fabric Switching', null, null, this.getTagsForStencil(gn, 'fabric switching', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'firewall;',
|
||||
w, h, '', 'Firewall', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'flow_analytics;',
|
||||
w, h, '', 'Flow Analytics', null, null, this.getTagsForStencil(gn, 'flow analytics', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'identity_authorization;',
|
||||
w, h, '', 'Identity Authorization', null, null, this.getTagsForStencil(gn, 'identity authorization', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'identity_authorization_alt;',
|
||||
w, h, '', 'Identity Authorization (alternative)', null, null, this.getTagsForStencil(gn, 'identity authorization alt alternative', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'intrusion_detection;',
|
||||
w, h, '', 'Intrusion Detection', null, null, this.getTagsForStencil(gn, 'intrusion detection', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'intrusion_prevention;',
|
||||
w, h, '', 'Intrusion Prevention', null, null, this.getTagsForStencil(gn, 'intrusion prevention', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'l2_l3_network;',
|
||||
w, h, '', 'L2 L3 Network', null, null, this.getTagsForStencil(gn, 'l2 l3 network', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'l2_l3_network_virtual;',
|
||||
w, h, '', 'L2 L3 Network (virtual)', null, null, this.getTagsForStencil(gn, 'l2 l3 network virtual', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'l2_switching;',
|
||||
w, h, '', 'L2 Switching', null, null, this.getTagsForStencil(gn, 'l2 switching', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'l3_switching;',
|
||||
w, h, '', 'L3 Switching', null, null, this.getTagsForStencil(gn, 'l3 switching', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'load_balancer;',
|
||||
w, h, '', 'Load Balancer', null, null, this.getTagsForStencil(gn, 'load balancer', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'logging_reporting;',
|
||||
w, h, '', 'Logging Reporting', null, null, this.getTagsForStencil(gn, 'logging reporting', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'malware_sandbox;',
|
||||
w, h, '', 'Malware Sandbox', null, null, this.getTagsForStencil(gn, 'malware sandbox', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'mobile_device_manager;',
|
||||
w, h, '', 'Mobile Device Manager', null, null, this.getTagsForStencil(gn, 'mobile device manager', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'monitoring;',
|
||||
w, h, '', 'Monitoring', null, null, this.getTagsForStencil(gn, 'monitoring', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'policy_configuration;',
|
||||
w, h, '', 'Policy Configuration', null, null, this.getTagsForStencil(gn, 'policy configuration', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'posture_assesment;',
|
||||
w, h, '', 'Posture Assesment', null, null, this.getTagsForStencil(gn, 'posture assesment', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'routing;',
|
||||
w, h, '', 'Routing', null, null, this.getTagsForStencil(gn, 'routing', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'server_based_security;',
|
||||
w, h, '', 'Server Based Security', null, null, this.getTagsForStencil(gn, 'server based security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'ssl_tls_offload;',
|
||||
w, h, '', 'SSL TLS Offload', null, null, this.getTagsForStencil(gn, 'ssl tls offload', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'storage;',
|
||||
w, h, '', 'Storage', null, null, this.getTagsForStencil(gn, 'storage', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_intelligence;',
|
||||
w, h, '', 'Threat Intelligence', null, null, this.getTagsForStencil(gn, 'threat intelligence', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'time_synchronization;',
|
||||
w, h, '', 'Time Synchronization', null, null, this.getTagsForStencil(gn, 'time synchronization', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'user;',
|
||||
w, h, '', 'User', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'video;',
|
||||
w, h, '', 'Video', null, null, this.getTagsForStencil(gn, 'video', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'virtualized_capability;',
|
||||
w, h, '', 'Virtualized Capability', null, null, this.getTagsForStencil(gn, 'virtualized capability', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'virtual_firewall;',
|
||||
w, h, '', 'Virtual Firewall', null, null, this.getTagsForStencil(gn, 'virtual firewall', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'virtual_l2_switching;',
|
||||
w, h, '', 'Virtual L2 Switching', null, null, this.getTagsForStencil(gn, 'virtual l2 switching', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'virtual_private_network;',
|
||||
w, h, '', 'Virtual Private Network', null, null, this.getTagsForStencil(gn, 'virtual private network vpn', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'voice;',
|
||||
w, h, '', 'Voice', null, null, this.getTagsForStencil(gn, 'voice', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'vpn_concentrator;',
|
||||
w, h, '', 'VPN Concentrator', null, null, this.getTagsForStencil(gn, 'vpn concentrator virtual private network', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'vulnerability_management;',
|
||||
w, h, '', 'Vulnerability Management', null, null, this.getTagsForStencil(gn, 'vulnerability management', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'web_application_firewall;',
|
||||
w, h, '', 'Web Application Firewall', null, null, this.getTagsForStencil(gn, 'web application firewall', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'web_reputation_filtering_dcs;',
|
||||
w, h, '', 'Web Reputation Filtering DCS', null, null, this.getTagsForStencil(gn, 'web reputation filtering dcs', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'web_security;',
|
||||
w, h, '', 'Web Security', null, null, this.getTagsForStencil(gn, 'web security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wireless_connection;',
|
||||
w, h, '', 'Wireless Connection', null, null, this.getTagsForStencil(gn, 'wireless connection', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wireless_intrusion_detection_system;',
|
||||
w, h, '', 'Wireless Intrusion Detection System', null, null, this.getTagsForStencil(gn, 'wireless intrusion detection system', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wireless_intrusion_prevention_system;',
|
||||
w, h, '', 'Wireless Intrusion Prevention System', null, null, this.getTagsForStencil(gn, 'wireless intrusion prevention system', dt).join(' '))
|
||||
]);
|
||||
};
|
||||
|
||||
Sidebar.prototype.addCiscoSafeDesignPalette = function()
|
||||
{
|
||||
var w = 50;
|
||||
var h = 50;
|
||||
var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;fillColor=#A153A0;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;shape=mxgraph.cisco_safe.design.';
|
||||
var gn = 'mxgraph.cisco_safe.design';
|
||||
var dt = 'cisco safe design';
|
||||
|
||||
this.addPaletteFunctions('cisco_safeDesign', 'Cisco Safe / Design', false,
|
||||
[
|
||||
this.createVertexTemplateEntry(s + 'access_point;',
|
||||
w, h * 0.9, '', 'Access Point', null, null, this.getTagsForStencil(gn, 'access point', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'aci_controller;',
|
||||
w, h * 0.9, '', 'ACI Controller', null, null, this.getTagsForStencil(gn, 'aci controller', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'aci_leaf_switch;',
|
||||
w, h * 0.9, '', 'ACI Leaf Switch', null, null, this.getTagsForStencil(gn, 'aci leaf switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'aci_spine_switch;',
|
||||
w, h * 0.9, '', 'ACI Spine Switch', null, null, this.getTagsForStencil(gn, 'aci spine switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'actor_1;',
|
||||
w * 0.47, h, '', 'Actor (female)', null, null, this.getTagsForStencil(gn, 'actor female', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'actor_2;',
|
||||
w * 0.38, h, '', 'Actor (male)', null, null, this.getTagsForStencil(gn, 'actor male', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'adaptive_security_appliance;',
|
||||
w, h * 0.9, '', 'Adaptive Security Appliance', null, null, this.getTagsForStencil(gn, 'adaptive security appliance', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'automated_system;',
|
||||
w, h * 0.9, '', 'Automated System', null, null, this.getTagsForStencil(gn, 'automated system', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'blade_server;',
|
||||
w, h * 0.9, '', 'Blade Server', null, null, this.getTagsForStencil(gn, 'blade server', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'blank_device;',
|
||||
w, h * 0.9, '', 'Blank Device', null, null, this.getTagsForStencil(gn, 'blank device', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'blank_service;',
|
||||
w, h * 0.9, '', 'Blank Service', null, null, this.getTagsForStencil(gn, 'blank service', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'call_manager;',
|
||||
w, h * 0.9, '', 'Call Manager', null, null, this.getTagsForStencil(gn, 'call manager', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'catalyst_data_center_switch;',
|
||||
w, h * 0.9, '', 'Catalyst Data Center Switch', null, null, this.getTagsForStencil(gn, 'catalyst data center switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'catalyst_switch_stack;',
|
||||
w, h * 0.9, '', 'Catalyst Switch Stack', null, null, this.getTagsForStencil(gn, 'catalyst switch stack', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'cisco_amp;',
|
||||
w, h * 0.9, '', 'Cisco Amp', null, null, this.getTagsForStencil(gn, 'cisco amp amplifier', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'cisco_anyconnect;',
|
||||
w, h * 0.9, '', 'Cisco AnyConnect', null, null, this.getTagsForStencil(gn, 'cisco anyconnect', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'cisco_cloud_web_security;',
|
||||
w, h * 0.9, '', 'Cisco Cloud Web Security', null, null, this.getTagsForStencil(gn, 'cisco cloud web security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'client_firewall;',
|
||||
w, h * 0.9, '', 'Client Firewall', null, null, this.getTagsForStencil(gn, 'client firewall', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'corporate_device;',
|
||||
w, h * 0.9, '', 'Corporate Device', null, null, this.getTagsForStencil(gn, 'corporate device', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'email_security;',
|
||||
w, h * 0.9, '', 'Email Security', null, null, this.getTagsForStencil(gn, 'email security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'encryption_offload;',
|
||||
w, h * 0.9, '', 'Encryption Offload', null, null, this.getTagsForStencil(gn, 'encryption offload', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'fabric_switch;',
|
||||
w, h * 0.9, '', 'Fabric Switch', null, null, this.getTagsForStencil(gn, 'fabric switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'firepower_appliance;',
|
||||
w, h * 0.9, '', 'Firepower Appliance', null, null, this.getTagsForStencil(gn, 'firepower appliance', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'firewall;',
|
||||
w, h * 0.9, '', 'Firewall', null, null, this.getTagsForStencil(gn, 'firewall', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'intrusion_detection;',
|
||||
w, h * 0.9, '', 'Intrusion Detection', null, null, this.getTagsForStencil(gn, 'intrusion detection', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'l2_switch;',
|
||||
w, h * 0.9, '', 'L2 Switch', null, null, this.getTagsForStencil(gn, 'l2 switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'l3_switch;',
|
||||
w, h * 0.9, '', 'L3 Switch', null, null, this.getTagsForStencil(gn, 'l3 switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'load_balancer;',
|
||||
w, h * 0.9, '', 'Load Balancer', null, null, this.getTagsForStencil(gn, 'load balancer', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'mobile_device;',
|
||||
w, h * 0.9, '', 'Mobile Device', null, null, this.getTagsForStencil(gn, 'mobile device', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'nexus_1kv;',
|
||||
w, h * 0.9, '', 'Nexus 1kv', null, null, this.getTagsForStencil(gn, 'nexus 1kv', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'nexus_data_center_switch;',
|
||||
w, h * 0.9, '', 'Nexus Data Center Switch', null, null, this.getTagsForStencil(gn, 'nexus data center switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'nexus_fabric_switch;',
|
||||
w, h * 0.9, '', 'Nexus Fabric Switch', null, null, this.getTagsForStencil(gn, 'nexus fabric switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'nexus_switch;',
|
||||
w, h * 0.9, '', 'Nexus Switch', null, null, this.getTagsForStencil(gn, 'nexus switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'phone;',
|
||||
w, h * 0.9, '', 'Phone', null, null, this.getTagsForStencil(gn, 'phone', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'radware;',
|
||||
w, h * 0.9, '', 'Radware', null, null, this.getTagsForStencil(gn, 'radware', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'router;',
|
||||
w, h * 0.9, '', 'Router', null, null, this.getTagsForStencil(gn, 'router', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'server_1;',
|
||||
w, h * 0.9, '', 'Server', null, null, this.getTagsForStencil(gn, 'server', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'server_2;',
|
||||
w, h * 0.9, '', 'Server', null, null, this.getTagsForStencil(gn, 'server', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'storage;',
|
||||
w, h * 0.9, '', 'Storage', null, null, this.getTagsForStencil(gn, 'storage', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'user;',
|
||||
w, h, '', 'User', null, null, this.getTagsForStencil(gn, 'user', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'users;',
|
||||
w, h, '', 'Users', null, null, this.getTagsForStencil(gn, 'users', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'virtual_secure_server;',
|
||||
w, h * 0.9, '', 'Virtual Secure Server', null, null, this.getTagsForStencil(gn, 'virtual secure server', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'vload_balancer;',
|
||||
w, h * 0.9, '', 'vLoad Balancer', null, null, this.getTagsForStencil(gn, 'vload balancer', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'vwaf_security;',
|
||||
w, h * 0.9, '', 'vWAF Security', null, null, this.getTagsForStencil(gn, 'vwaf security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'vweb_security;',
|
||||
w, h * 0.9, '', 'vWeb Security', null, null, this.getTagsForStencil(gn, 'vweb security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'vwlan_controller;',
|
||||
w, h * 0.9, '', 'vWLAN Controller', null, null, this.getTagsForStencil(gn, 'vwlan controller', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'web_security;',
|
||||
w, h * 0.9, '', 'Web Security', null, null, this.getTagsForStencil(gn, 'web security', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wireless_corporate_device;',
|
||||
w, h * 0.9, '', 'Wireless Corporate Device', null, null, this.getTagsForStencil(gn, 'wireless corporate device', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wireless_switch;',
|
||||
w, h * 0.9, '', 'Wireless Switch', null, null, this.getTagsForStencil(gn, 'wireless switch', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'wlan_controller;',
|
||||
w, h * 0.9, '', 'WLAN Controller', null, null, this.getTagsForStencil(gn, 'wlan controller', dt).join(' '))
|
||||
]);
|
||||
};
|
||||
|
||||
Sidebar.prototype.addCiscoSafeThreatPalette = function()
|
||||
{
|
||||
var w = 50;
|
||||
var h = 50;
|
||||
var s = mxConstants.STYLE_VERTICAL_LABEL_POSITION + '=bottom;html=1;fillColor=#F06650;' + mxConstants.STYLE_VERTICAL_ALIGN + '=top;shape=mxgraph.cisco_safe.threat.';
|
||||
var gn = 'mxgraph.cisco_safe.threat';
|
||||
var dt = 'cisco safe threat';
|
||||
|
||||
this.addPaletteFunctions('cisco_safeThreat', 'Cisco Safe / Threat', false,
|
||||
[
|
||||
this.createVertexTemplateEntry(s + 'threat_a1;',
|
||||
w * 0.98, h, '', 'Threat A1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_a2;',
|
||||
w * 0.98, h, '', 'Threat A2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_a3;',
|
||||
w * 0.98, h, '', 'Threat A3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_a4;',
|
||||
w * 0.98, h, '', 'Threat A4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_a5;',
|
||||
w * 0.98, h, '', 'Threat A5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_a6;',
|
||||
w * 0.98, h, '', 'Threat A6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_a7;',
|
||||
w * 0.98, h, '', 'Threat A7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_a8;',
|
||||
w * 0.98, h, '', 'Threat A8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_b1;',
|
||||
w * 0.63, h, '', 'Threat B1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_b2;',
|
||||
w * 0.63, h, '', 'Threat B2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_b3;',
|
||||
w * 0.63, h, '', 'Threat B3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_b4;',
|
||||
w * 0.63, h, '', 'Threat B4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_b5;',
|
||||
w * 0.63, h, '', 'Threat B5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_b6;',
|
||||
w * 0.63, h, '', 'Threat B6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_b7;',
|
||||
w * 0.63, h, '', 'Threat B7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_b8;',
|
||||
w * 0.63, h, '', 'Threat B8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_c1;',
|
||||
w, h * 0.81, '', 'Threat C1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_c2;',
|
||||
w, h * 0.81, '', 'Threat C2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_c3;',
|
||||
w, h * 0.81, '', 'Threat C3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_c4;',
|
||||
w, h * 0.81, '', 'Threat C4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_c5;',
|
||||
w, h * 0.81, '', 'Threat C5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_c6;',
|
||||
w, h * 0.81, '', 'Threat C6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_c7;',
|
||||
w, h * 0.81, '', 'Threat C7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_c8;',
|
||||
w, h * 0.81, '', 'Threat C8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_d1;',
|
||||
w * 0.93, h, '', 'Threat D1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_d2;',
|
||||
w * 0.93, h, '', 'Threat D2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_d3;',
|
||||
w * 0.93, h, '', 'Threat D3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_d4;',
|
||||
w * 0.93, h, '', 'Threat D4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_d5;',
|
||||
w * 0.93, h, '', 'Threat D5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_d6;',
|
||||
w * 0.93, h, '', 'Threat D6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_d7;',
|
||||
w * 0.93, h, '', 'Threat D7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_d8;',
|
||||
w * 0.93, h, '', 'Threat D8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_e1;',
|
||||
w, h * 0.94, '', 'Threat E1', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_e2;',
|
||||
w, h * 0.94, '', 'Threat E2', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_e3;',
|
||||
w, h * 0.94, '', 'Threat E3', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_e4;',
|
||||
w, h * 0.94, '', 'Threat E4', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_e5;',
|
||||
w, h * 0.94, '', 'Threat E5', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_e6;',
|
||||
w, h * 0.94, '', 'Threat E6', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_e7;',
|
||||
w, h * 0.94, '', 'Threat E7', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' ')),
|
||||
this.createVertexTemplateEntry(s + 'threat_e8;',
|
||||
w, h * 0.94, '', 'Threat E8', null, null, this.getTagsForStencil(gn, 'threat', dt).join(' '))
|
||||
]);
|
||||
};
|
||||
|
||||
|
||||
|
||||
})();
|
|
@ -60,6 +60,11 @@
|
|||
Sidebar.prototype.cisco = ['Buildings', 'Computers and Peripherals', 'Controllers and Modules', 'Directors', 'Hubs and Gateways', 'Misc',
|
||||
'Modems and Phones', 'People', 'Routers', 'Security', 'Servers', 'Storage', 'Switches', 'Wireless'];
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
Sidebar.prototype.cisco_safe = ['Architecture', 'Capability', 'Design', 'Threat'];
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
@ -137,6 +142,7 @@
|
|||
{id: 'aws3', prefix: 'aws3', libs: Sidebar.prototype.aws3},
|
||||
{id: 'pid', prefix: 'pid', libs: Sidebar.prototype.pids},
|
||||
{id: 'cisco', prefix: 'cisco', libs: Sidebar.prototype.cisco},
|
||||
{id: 'cisco_safe', prefix: 'cisco_safe', libs: Sidebar.prototype.cisco_safe},
|
||||
{id: 'office', prefix: 'office', libs: Sidebar.prototype.office},
|
||||
{id: 'veeam', prefix: 'veeam', libs: Sidebar.prototype.veeam},
|
||||
{id: 'cabinets', libs: ['cabinets']},
|
||||
|
@ -351,6 +357,7 @@
|
|||
{title: mxResources.get('azure'), id: 'azure', image: IMAGE_PATH + '/sidebar-azure.png'},
|
||||
{title: 'Cloud & Enterprise', id: 'mscae', image: IMAGE_PATH + '/sidebar-mscae.png'},
|
||||
{title: mxResources.get('cisco'), id: 'cisco', image: IMAGE_PATH + '/sidebar-cisco.png'},
|
||||
{title: 'Cisco Safe', id: 'cisco_safe', image: IMAGE_PATH + '/sidebar-cisco_safe.png'},
|
||||
{title: 'Citrix', id: 'citrix', image: IMAGE_PATH + '/sidebar-citrix.png'},
|
||||
{title: 'Google Cloud Platform', id: 'gcp', image: IMAGE_PATH + '/sidebar-gcp.png'},
|
||||
{title: 'IBM', id: 'ibm', image: IMAGE_PATH + '/sidebar-ibm.png'},
|
||||
|
@ -631,6 +638,7 @@
|
|||
var rack = this.rack;
|
||||
var pids = this.pids;
|
||||
var cisco = this.cisco;
|
||||
var cisco_safe = this.cisco_safe;
|
||||
var sysml = this.sysml;
|
||||
var eip = this.eip;
|
||||
var gmdl = this.gmdl;
|
||||
|
@ -937,6 +945,7 @@
|
|||
';html=1;dashed=0;fillColor=#036897;strokeColor=#ffffff;strokeWidth=2;verticalLabelPosition=bottom;verticalAlign=top;outlineConnect=0;', null, null, 1.6);
|
||||
}
|
||||
|
||||
this.addCiscoSafePalette();
|
||||
this.addFloorplanPalette();
|
||||
this.addAtlassianPalette();
|
||||
this.addBootstrapPalette();
|
||||
|
|
10
src/main/webapp/js/dropbox/Dropbox-sdk.min.js
vendored
Normal file
10
src/main/webapp/js/dropbox/Dropbox-sdk.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
221
src/main/webapp/js/embed-static.min.js
vendored
221
src/main/webapp/js/embed-static.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -25,7 +25,7 @@ Actions.prototype.init = function()
|
|||
};
|
||||
|
||||
// File actions
|
||||
this.addAction('new...', function() { window.open(ui.getUrl()); });
|
||||
this.addAction('new...', function() { graph.openLink(ui.getUrl()); });
|
||||
this.addAction('open...', function()
|
||||
{
|
||||
window.openNew = true;
|
||||
|
@ -291,14 +291,14 @@ Actions.prototype.init = function()
|
|||
ui.showDialog(dlg.container, 320, 200, true, true);
|
||||
dlg.init();
|
||||
}
|
||||
});
|
||||
}, null, null, 'Alt+Shift+T');
|
||||
this.addAction('openLink', function()
|
||||
{
|
||||
var link = graph.getLinkForCell(graph.getSelectionCell());
|
||||
|
||||
if (link != null)
|
||||
{
|
||||
window.open(link);
|
||||
graph.openLink(link);
|
||||
}
|
||||
});
|
||||
this.addAction('editLink...', function()
|
||||
|
@ -316,7 +316,7 @@ Actions.prototype.init = function()
|
|||
graph.setLinkForCell(cell, (link.length > 0) ? link : null);
|
||||
});
|
||||
}
|
||||
});
|
||||
}, null, null, 'Alt+Shift+L');
|
||||
this.addAction('insertLink...', function()
|
||||
{
|
||||
if (graph.isEnabled() && !graph.isCellLocked(graph.getDefaultParent()))
|
||||
|
@ -755,7 +755,7 @@ Actions.prototype.init = function()
|
|||
ext = '_' + mxClient.language;
|
||||
}
|
||||
|
||||
window.open(RESOURCES_PATH + '/help' + ext + '.html');
|
||||
graph.openLink(RESOURCES_PATH + '/help' + ext + '.html');
|
||||
});
|
||||
|
||||
var showingAbout = false;
|
||||
|
|
|
@ -520,7 +520,7 @@ var FilenameDialog = function(editorUi, filename, buttonText, fn, label, validat
|
|||
{
|
||||
var helpBtn = mxUtils.button(mxResources.get('help'), function()
|
||||
{
|
||||
window.open(helpLink);
|
||||
editorUi.editor.graph.openLink(helpLink);
|
||||
});
|
||||
|
||||
helpBtn.className = 'geBtn';
|
||||
|
@ -780,7 +780,7 @@ var EditDiagramDialog = function(editorUi)
|
|||
});
|
||||
|
||||
window.openFile.setData(data, null);
|
||||
window.open(editorUi.getUrl());
|
||||
editorUi.editor.graph.openLink(editorUi.getUrl());
|
||||
}
|
||||
else if (select.value == 'replace')
|
||||
{
|
||||
|
@ -1807,16 +1807,25 @@ var OutlineWindow = function(editorUi, x, y, w, h)
|
|||
}
|
||||
};
|
||||
|
||||
mxEvent.addListener(window, 'resize', mxUtils.bind(this, function()
|
||||
var resizeListener = mxUtils.bind(this, function()
|
||||
{
|
||||
var x = this.window.getX();
|
||||
var y = this.window.getY();
|
||||
|
||||
this.window.setLocation(x, y);
|
||||
}));
|
||||
|
||||
});
|
||||
|
||||
mxEvent.addListener(window, 'resize', resizeListener);
|
||||
|
||||
var outline = editorUi.createOutline(this.window);
|
||||
|
||||
this.destroy = function()
|
||||
{
|
||||
mxEvent.removeListener(window, 'resize', resizeListener);
|
||||
this.window.destroy();
|
||||
outline.destroy();
|
||||
}
|
||||
|
||||
this.window.addListener(mxEvent.RESIZE, mxUtils.bind(this, function()
|
||||
{
|
||||
outline.update(false);
|
||||
|
@ -1948,7 +1957,7 @@ var LayersWindow = function(editorUi, x, y, w, h)
|
|||
var tbarHeight = (!EditorUi.compactUi) ? '30px' : '26px';
|
||||
|
||||
var listDiv = document.createElement('div')
|
||||
listDiv.style.backgroundColor = (Dialog.backdropColor == 'white') ? '#a2a2a2' : '#e5e5e5';
|
||||
listDiv.style.backgroundColor = (Dialog.backdropColor == 'white') ? '#dcdcdc' : '#e5e5e5';
|
||||
listDiv.style.position = 'absolute';
|
||||
listDiv.style.overflow = 'auto';
|
||||
listDiv.style.left = '0px';
|
||||
|
@ -2457,7 +2466,7 @@ var LayersWindow = function(editorUi, x, y, w, h)
|
|||
});
|
||||
|
||||
this.window = new mxWindow(mxResources.get('layers'), div, x, y, w, h, true, true);
|
||||
this.window.minimumSize = new mxRectangle(0, 0, 90, 90);
|
||||
this.window.minimumSize = new mxRectangle(0, 0, 120, 120);
|
||||
this.window.destroyOnClose = false;
|
||||
this.window.setMaximizable(false);
|
||||
this.window.setResizable(true);
|
||||
|
@ -2481,11 +2490,19 @@ var LayersWindow = function(editorUi, x, y, w, h)
|
|||
}
|
||||
};
|
||||
|
||||
mxEvent.addListener(window, 'resize', mxUtils.bind(this, function()
|
||||
var resizeListener = mxUtils.bind(this, function()
|
||||
{
|
||||
var x = this.window.getX();
|
||||
var y = this.window.getY();
|
||||
|
||||
this.window.setLocation(x, y);
|
||||
}));
|
||||
});
|
||||
|
||||
mxEvent.addListener(window, 'resize', resizeListener);
|
||||
|
||||
this.destroy = function()
|
||||
{
|
||||
mxEvent.removeListener(window, 'resize', resizeListener);
|
||||
this.window.destroy();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -312,12 +312,12 @@ Editor.prototype.editAsNew = function(xml, title)
|
|||
}));
|
||||
}
|
||||
|
||||
this.editorWindow = window.open(this.getEditBlankUrl(p +
|
||||
this.editorWindow = this.graph.openLink(this.getEditBlankUrl(p +
|
||||
((p.length > 0) ? '&' : '?') + 'client=1'));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.editorWindow = window.open(this.getEditBlankUrl(p) +
|
||||
this.editorWindow = this.graph.openLink(this.getEditBlankUrl(p) +
|
||||
'#R' + encodeURIComponent(xml));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1321,8 +1321,6 @@ EditorUi.prototype.initClipboard = function()
|
|||
*/
|
||||
EditorUi.prototype.initCanvas = function()
|
||||
{
|
||||
var graph = this.editor.graph;
|
||||
|
||||
// Initial page layout view, scrollBuffer and timer-based scrolling
|
||||
var graph = this.editor.graph;
|
||||
graph.timerAutoScroll = true;
|
||||
|
@ -1717,7 +1715,7 @@ EditorUi.prototype.initCanvas = function()
|
|||
}
|
||||
else
|
||||
{
|
||||
window.open(this.editor.editButtonLink, 'editWindow');
|
||||
graph.openLink(this.editor.editButtonLink, 'editWindow');
|
||||
}
|
||||
|
||||
mxEvent.consume(evt);
|
||||
|
@ -2009,8 +2007,7 @@ EditorUi.prototype.initCanvas = function()
|
|||
{
|
||||
// Ctrl+wheel (or pinch on touchpad) is a native browser zoom event is OS X
|
||||
// LATER: Add support for zoom via pinch on trackpad for Chrome in OS X
|
||||
if ((mxEvent.isAltDown(evt) || (mxEvent.isControlDown(evt) && !mxClient.IS_MAC) ||
|
||||
graph.panningHandler.isActive()) && (this.dialogs == null || this.dialogs.length == 0))
|
||||
if ((this.dialogs == null || this.dialogs.length == 0) && graph.isZoomWheelEvent(evt))
|
||||
{
|
||||
var source = mxEvent.getSource(evt);
|
||||
|
||||
|
@ -3008,6 +3005,10 @@ EditorUi.prototype.createDivs = function()
|
|||
{
|
||||
this.tabContainer = this.createTabContainer();
|
||||
}
|
||||
else
|
||||
{
|
||||
this.diagramContainer.style.border = 'none';
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -3864,7 +3865,9 @@ EditorUi.prototype.createKeyHandler = function(editor)
|
|||
// Alt+Shift+Keycode mapping to action
|
||||
var altShiftActions = {67: this.actions.get('clearWaypoints'), // Alt+Shift+C
|
||||
65: this.actions.get('connectionArrows'), // Alt+Shift+A
|
||||
80: this.actions.get('connectionPoints') // Alt+Shift+P
|
||||
76: this.actions.get('editLink'), // Alt+Shift+L
|
||||
80: this.actions.get('connectionPoints'), // Alt+Shift+P
|
||||
84: this.actions.get('editTooltip') // Alt+Shift+T
|
||||
};
|
||||
|
||||
mxKeyHandler.prototype.getFunction = function(evt)
|
||||
|
|
|
@ -256,8 +256,9 @@ Format.prototype.isRoundedState = function(state)
|
|||
Format.prototype.isLineJumpState = function(state)
|
||||
{
|
||||
var shape = mxUtils.getValue(state.style, mxConstants.STYLE_SHAPE, null);
|
||||
var curved = mxUtils.getValue(state.style, mxConstants.STYLE_CURVED, false);
|
||||
|
||||
return shape == 'connector' || shape == 'filledEdge';
|
||||
return !curved && (shape == 'connector' || shape == 'filledEdge');
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -888,8 +889,6 @@ BaseFormatPanel.prototype.createOption = function(label, isCheckedFn, setChecked
|
|||
|
||||
apply(cb.checked);
|
||||
}
|
||||
|
||||
mxEvent.consume(evt);
|
||||
});
|
||||
|
||||
apply(value);
|
||||
|
|
|
@ -621,13 +621,15 @@ Graph = function(container, model, renderHint, stylesheet, themes)
|
|||
return mxEvent.isMouseEvent(me.getEvent());
|
||||
};
|
||||
|
||||
// Enables links if graph is "disabled" (ie. read-only)
|
||||
// Handles links if graph is read-only or cell is locked
|
||||
var click = this.click;
|
||||
this.click = function(me)
|
||||
{
|
||||
if (!this.isEnabled() && !me.isConsumed())
|
||||
var locked = me.state == null && me.sourceState != null && this.isCellLocked(me.sourceState.cell);
|
||||
|
||||
if ((!this.isEnabled() || locked) && !me.isConsumed())
|
||||
{
|
||||
var cell = me.getCell();
|
||||
var cell = (locked) ? me.sourceState.cell : me.getCell();
|
||||
|
||||
if (cell != null)
|
||||
{
|
||||
|
@ -635,7 +637,14 @@ Graph = function(container, model, renderHint, stylesheet, themes)
|
|||
|
||||
if (link != null)
|
||||
{
|
||||
window.open(link);
|
||||
if (this.isPageLink(link))
|
||||
{
|
||||
this.pageLinkClicked(cell, link);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.openLink(link);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -644,13 +653,28 @@ Graph = function(container, model, renderHint, stylesheet, themes)
|
|||
return click.apply(this, arguments);
|
||||
}
|
||||
};
|
||||
|
||||
// Redirects tooltips for locked cells
|
||||
this.tooltipHandler.getStateForEvent = function(me)
|
||||
{
|
||||
return me.sourceState;
|
||||
};
|
||||
|
||||
// Redirects cursor for locked cells
|
||||
var getCursorForMouseEvent = this.getCursorForMouseEvent;
|
||||
this.getCursorForMouseEvent = function(me)
|
||||
{
|
||||
var locked = me.state == null && me.sourceState != null && this.isCellLocked(me.sourceState.cell);
|
||||
|
||||
return this.getCursorForCell((locked) ? me.sourceState.cell : me.getCell());
|
||||
};
|
||||
|
||||
// Shows pointer cursor for clickable cells with links
|
||||
// ie. if the graph is disabled and cells cannot be selected
|
||||
var getCursorForCell = this.getCursorForCell;
|
||||
this.getCursorForCell = function(cell)
|
||||
{
|
||||
if (!this.isEnabled())
|
||||
if (!this.isEnabled() || this.isCellLocked(cell))
|
||||
{
|
||||
var link = this.getLinkForCell(cell);
|
||||
|
||||
|
@ -658,11 +682,13 @@ Graph = function(container, model, renderHint, stylesheet, themes)
|
|||
{
|
||||
return 'pointer';
|
||||
}
|
||||
else if (this.isCellLocked(cell))
|
||||
{
|
||||
return 'default';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return getCursorForCell.apply(this, arguments);
|
||||
}
|
||||
|
||||
return getCursorForCell.apply(this, arguments);
|
||||
};
|
||||
|
||||
// Changes rubberband selection to be recursive
|
||||
|
@ -852,7 +878,7 @@ Graph = function(container, model, renderHint, stylesheet, themes)
|
|||
{
|
||||
me = graphUpdateMouseEvent.apply(this, arguments);
|
||||
|
||||
if (this.isCellLocked(me.getCell()))
|
||||
if (me.state != null && this.isCellLocked(me.getCell()))
|
||||
{
|
||||
me.state = null;
|
||||
}
|
||||
|
@ -1068,6 +1094,64 @@ Graph.prototype.init = function(container)
|
|||
this.initLayoutManager();
|
||||
};
|
||||
|
||||
/**
|
||||
* Installs automatic layout via styles
|
||||
*/
|
||||
Graph.prototype.labelLinkClicked = function(state, elt, evt)
|
||||
{
|
||||
var href = elt.getAttribute('href');
|
||||
|
||||
if (href != null && !this.isPageLink(href) && (mxEvent.isLeftMouseButton(evt) &&
|
||||
!mxEvent.isPopupTrigger(evt)) || mxEvent.isTouchEvent(evt))
|
||||
{
|
||||
if (!this.isEnabled() || this.isCellLocked(state.cell))
|
||||
{
|
||||
var target = this.isBlankLink(href) ? this.linkTarget : '_top';
|
||||
this.openLink(this.getAbsoluteUrl(href), target);
|
||||
}
|
||||
|
||||
mxEvent.consume(evt);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the size of the page format scaled with the page size.
|
||||
*/
|
||||
Graph.prototype.openLink = function(href, target)
|
||||
{
|
||||
var result = window;
|
||||
|
||||
// Workaround for blocking in same iframe
|
||||
if (target == '_self' && window != window.top)
|
||||
{
|
||||
window.location.href = href;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Avoids page reload for anchors (workaround for IE but used everywhere)
|
||||
if (href.substring(0, this.baseUrl.length) == this.baseUrl &&
|
||||
href.charAt(this.baseUrl.length) == '#' &&
|
||||
target == '_top' && window == window.top)
|
||||
{
|
||||
var hash = href.split('#')[1];
|
||||
|
||||
// Forces navigation if on same hash
|
||||
if (window.location.hash == '#' + hash)
|
||||
{
|
||||
window.location.hash = '';
|
||||
}
|
||||
|
||||
window.location.hash = hash;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = window.open(href, target);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
/**
|
||||
* Adds support for page links.
|
||||
*/
|
||||
|
@ -1077,45 +1161,11 @@ Graph.prototype.isPageLink = function(href)
|
|||
};
|
||||
|
||||
/**
|
||||
* Installs automatic layout via styles
|
||||
* Adds support for page links.
|
||||
*/
|
||||
Graph.prototype.labelLinkClicked = function(state, elt, evt)
|
||||
Graph.prototype.pageLinkClicked = function(cell, href)
|
||||
{
|
||||
var href = elt.getAttribute('href');
|
||||
|
||||
if (href != null && !this.isPageLink(href))
|
||||
{
|
||||
if (!this.isEnabled())
|
||||
{
|
||||
var target = state.view.graph.isBlankLink(href) ?
|
||||
state.view.graph.linkTarget : '_top';
|
||||
href = state.view.graph.getAbsoluteUrl(href);
|
||||
|
||||
// Workaround for blocking in same iframe
|
||||
if (target == '_self' && window != window.top)
|
||||
{
|
||||
window.location.href = href;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Avoids page reload for anchors (workaround for IE but used everywhere)
|
||||
if (href.substring(0, this.baseUrl.length) == this.baseUrl &&
|
||||
href.charAt(this.baseUrl.length) == '#' &&
|
||||
target == '_top' && window == window.top)
|
||||
{
|
||||
window.location.hash = href.split('#')[1];
|
||||
}
|
||||
else if ((mxEvent.isLeftMouseButton(evt) &&
|
||||
!mxEvent.isPopupTrigger(evt)) ||
|
||||
mxEvent.isTouchEvent(evt))
|
||||
{
|
||||
window.open(href, target);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mxEvent.consume(evt);
|
||||
}
|
||||
this.fireEvent(new mxEventObject('pageLinkClicked', 'cell', cell, 'href', href));
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -1311,6 +1361,17 @@ Graph.prototype.isReplacePlaceholders = function(cell)
|
|||
cell.value.getAttribute('placeholders') == '1';
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns true if the given mouse wheel event should be used for zooming. This
|
||||
* is invoked if no dialogs are showing and returns true if Alt or Control
|
||||
* (except macOS) is pressed or if the panning handler is active.
|
||||
*/
|
||||
Graph.prototype.isZoomWheelEvent = function(evt)
|
||||
{
|
||||
return mxEvent.isAltDown(evt) || (mxEvent.isControlDown(evt) && !mxClient.IS_MAC) ||
|
||||
(this.panningHandler != null && this.panningHandler.isActive());
|
||||
};
|
||||
|
||||
/**
|
||||
* Adds Alt+click to select cells behind cells.
|
||||
*/
|
||||
|
@ -3522,7 +3583,7 @@ HoverIcons.prototype.setCurrentState = function(state)
|
|||
var state2 = this.validEdges[e];
|
||||
var pts2 = state2.absolutePoints;
|
||||
|
||||
if (pts2 != null && mxUtils.intersects(state, state2))
|
||||
if (pts2 != null && mxUtils.intersects(state, state2) && state2.style['noJump'] != '1')
|
||||
{
|
||||
// Compares each segment of the edge with the current segment
|
||||
for (var j = 0; j < pts2.length - 1; j++)
|
||||
|
@ -5195,178 +5256,157 @@ if (typeof mxVertexHandler != 'undefined')
|
|||
scrollTop: 0,
|
||||
updateCurrentState: function(me)
|
||||
{
|
||||
var tmp = graph.view.getState(me.getCell());
|
||||
var tmp = me.sourceState;
|
||||
|
||||
if (tmp != this.currentState)
|
||||
{
|
||||
if (this.currentState != null)
|
||||
{
|
||||
this.clear();
|
||||
}
|
||||
|
||||
this.currentState = tmp;
|
||||
|
||||
if (this.currentState != null)
|
||||
{
|
||||
this.activate(this.currentState);
|
||||
}
|
||||
if (this.currentState != null)
|
||||
{
|
||||
this.clear();
|
||||
}
|
||||
|
||||
this.currentState = tmp;
|
||||
|
||||
if (this.currentState != null)
|
||||
{
|
||||
this.activate(this.currentState);
|
||||
}
|
||||
}
|
||||
},
|
||||
mouseDown: function(sender, me)
|
||||
{
|
||||
this.startX = me.getGraphX();
|
||||
this.startY = me.getGraphY();
|
||||
this.scrollLeft = graph.container.scrollLeft;
|
||||
this.scrollTop = graph.container.scrollTop;
|
||||
|
||||
if (this.currentLink == null && graph.container.style.overflow == 'auto')
|
||||
{
|
||||
graph.container.style.cursor = 'move';
|
||||
}
|
||||
|
||||
this.updateCurrentState(me);
|
||||
this.startX = me.getGraphX();
|
||||
this.startY = me.getGraphY();
|
||||
this.scrollLeft = graph.container.scrollLeft;
|
||||
this.scrollTop = graph.container.scrollTop;
|
||||
|
||||
if (this.currentLink == null && graph.container.style.overflow == 'auto')
|
||||
{
|
||||
graph.container.style.cursor = 'move';
|
||||
}
|
||||
|
||||
this.updateCurrentState(me);
|
||||
},
|
||||
mouseMove: function(sender, me)
|
||||
{
|
||||
if (graph.isMouseDown)
|
||||
{
|
||||
if (this.currentLink != null)
|
||||
{
|
||||
var dx = Math.abs(this.startX - me.getGraphX());
|
||||
var dy = Math.abs(this.startY - me.getGraphY());
|
||||
if (graph.isMouseDown)
|
||||
{
|
||||
if (this.currentLink != null)
|
||||
{
|
||||
var dx = Math.abs(this.startX - me.getGraphX());
|
||||
var dy = Math.abs(this.startY - me.getGraphY());
|
||||
|
||||
if (dx > tol || dy > tol)
|
||||
{
|
||||
this.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Checks for parent link
|
||||
var linkNode = me.getSource();
|
||||
|
||||
if (dx > tol || dy > tol)
|
||||
while (linkNode != null && linkNode.nodeName.toLowerCase() != 'a')
|
||||
{
|
||||
this.clear();
|
||||
linkNode = linkNode.parentNode;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (linkNode != null)
|
||||
{
|
||||
this.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.currentState != null && (me.getState() == this.currentState || me.sourceState == null) &&
|
||||
graph.intersects(this.currentState, me.getGraphX(), me.getGraphY()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.updateCurrentState(me);
|
||||
}
|
||||
}
|
||||
},
|
||||
mouseUp: function(sender, me)
|
||||
{
|
||||
var source = me.getSource();
|
||||
var evt = me.getEvent();
|
||||
|
||||
// Checks for parent link
|
||||
var linkNode = me.getSource();
|
||||
var linkNode = source;
|
||||
|
||||
while (linkNode != null && linkNode.nodeName.toLowerCase() != 'a')
|
||||
{
|
||||
linkNode = linkNode.parentNode;
|
||||
}
|
||||
|
||||
if (linkNode != null)
|
||||
{
|
||||
this.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.currentState != null && (me.getState() == this.currentState || me.getState() == null) &&
|
||||
graph.intersects(this.currentState, me.getGraphX(), me.getGraphY()))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.updateCurrentState(me);
|
||||
}
|
||||
}
|
||||
},
|
||||
mouseUp: function(sender, me)
|
||||
{
|
||||
|
||||
var source = me.getSource();
|
||||
var evt = me.getEvent();
|
||||
|
||||
// Checks for parent link
|
||||
var linkNode = source;
|
||||
|
||||
while (linkNode != null && linkNode.nodeName.toLowerCase() != 'a')
|
||||
{
|
||||
linkNode = linkNode.parentNode;
|
||||
}
|
||||
|
||||
// Ignores clicks on links and collapse/expand icon
|
||||
if (linkNode == null &&
|
||||
(((Math.abs(this.scrollLeft - graph.container.scrollLeft) < tol &&
|
||||
Math.abs(this.scrollTop - graph.container.scrollTop) < tol) &&
|
||||
(me.getState() == null || !me.isSource(me.getState().control))) &&
|
||||
((mxEvent.isLeftMouseButton(evt) &&
|
||||
!mxEvent.isPopupTrigger(evt)) ||
|
||||
mxEvent.isTouchEvent(evt))))
|
||||
{
|
||||
if (this.currentLink != null)
|
||||
// Ignores clicks on links and collapse/expand icon
|
||||
if (linkNode == null &&
|
||||
(((Math.abs(this.scrollLeft - graph.container.scrollLeft) < tol &&
|
||||
Math.abs(this.scrollTop - graph.container.scrollTop) < tol) &&
|
||||
(me.sourceState == null || !me.isSource(me.sourceState.control))) &&
|
||||
(((mxEvent.isLeftMouseButton(evt) || mxEvent.isMiddleMouseButton(evt)) &&
|
||||
!mxEvent.isPopupTrigger(evt)) || mxEvent.isTouchEvent(evt))))
|
||||
{
|
||||
var blank = graph.isBlankLink(this.currentLink);
|
||||
|
||||
if ((this.currentLink.substring(0, 5) === 'data:' ||
|
||||
!blank) && beforeClick != null)
|
||||
{
|
||||
beforeClick(evt, this.currentLink);
|
||||
}
|
||||
|
||||
if (!mxEvent.isConsumed(evt))
|
||||
{
|
||||
var target = (blank) ? graph.linkTarget : '_top';
|
||||
if (this.currentLink != null)
|
||||
{
|
||||
var blank = graph.isBlankLink(this.currentLink);
|
||||
|
||||
// Workaround for blocking in same iframe
|
||||
if (target == '_self' && window != window.top)
|
||||
{
|
||||
window.location.href = this.currentLink;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Avoids page reload for anchors (workaround for IE but used everywhere)
|
||||
if (this.currentLink.substring(0, graph.baseUrl.length) == graph.baseUrl &&
|
||||
this.currentLink.charAt(graph.baseUrl.length) == '#' &&
|
||||
target == '_top' && window == window.top)
|
||||
{
|
||||
window.location.hash = this.currentLink.split('#')[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
window.open(this.currentLink, target);
|
||||
}
|
||||
}
|
||||
if ((this.currentLink.substring(0, 5) === 'data:' ||
|
||||
!blank) && beforeClick != null)
|
||||
{
|
||||
beforeClick(evt, this.currentLink);
|
||||
}
|
||||
|
||||
me.consume();
|
||||
if (!mxEvent.isConsumed(evt))
|
||||
{
|
||||
var target = (mxEvent.isMiddleMouseButton(evt)) ? '_blank' :
|
||||
((blank) ? graph.linkTarget : '_top');
|
||||
graph.openLink(this.currentLink, target);
|
||||
me.consume();
|
||||
}
|
||||
}
|
||||
else if (onClick != null && !me.isConsumed() &&
|
||||
(Math.abs(this.scrollLeft - graph.container.scrollLeft) < tol &&
|
||||
Math.abs(this.scrollTop - graph.container.scrollTop) < tol) &&
|
||||
(Math.abs(this.startX - me.getGraphX()) < tol &&
|
||||
Math.abs(this.startY - me.getGraphY()) < tol))
|
||||
{
|
||||
onClick(me.getEvent());
|
||||
}
|
||||
}
|
||||
else if (onClick != null && !me.isConsumed() &&
|
||||
(Math.abs(this.scrollLeft - graph.container.scrollLeft) < tol &&
|
||||
Math.abs(this.scrollTop - graph.container.scrollTop) < tol) &&
|
||||
(Math.abs(this.startX - me.getGraphX()) < tol &&
|
||||
Math.abs(this.startY - me.getGraphY()) < tol))
|
||||
{
|
||||
onClick(me.getEvent());
|
||||
}
|
||||
}
|
||||
|
||||
this.clear();
|
||||
|
||||
this.clear();
|
||||
},
|
||||
activate: function(state)
|
||||
{
|
||||
this.currentLink = graph.getAbsoluteUrl(graph.getLinkForCell(state.cell));
|
||||
|
||||
if (this.currentLink != null)
|
||||
{
|
||||
graph.container.style.cursor = 'pointer';
|
||||
|
||||
if (this.highlight != null)
|
||||
{
|
||||
this.highlight.highlight(state);
|
||||
}
|
||||
this.currentLink = graph.getAbsoluteUrl(graph.getLinkForCell(state.cell));
|
||||
|
||||
if (this.currentLink != null)
|
||||
{
|
||||
graph.container.style.cursor = 'pointer';
|
||||
|
||||
if (this.highlight != null)
|
||||
{
|
||||
this.highlight.highlight(state);
|
||||
}
|
||||
}
|
||||
},
|
||||
clear: function()
|
||||
{
|
||||
if (graph.container != null)
|
||||
{
|
||||
graph.container.style.cursor = cursor;
|
||||
}
|
||||
|
||||
this.currentState = null;
|
||||
this.currentLink = null;
|
||||
|
||||
if (this.highlight != null)
|
||||
{
|
||||
this.highlight.hide();
|
||||
}
|
||||
if (graph.container != null)
|
||||
{
|
||||
graph.container.style.cursor = cursor;
|
||||
}
|
||||
|
||||
this.currentState = null;
|
||||
this.currentLink = null;
|
||||
|
||||
if (this.highlight != null)
|
||||
{
|
||||
this.highlight.hide();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -5402,7 +5442,7 @@ if (typeof mxVertexHandler != 'undefined')
|
|||
for (var i = 0; i < cells.length; i++)
|
||||
{
|
||||
var parent = model.getParent(cells[i]);
|
||||
var child = this.moveCells([clones[i]], s, s, false, parent)[0];
|
||||
var child = this.moveCells([clones[i]], s, s, false)[0];
|
||||
select.push(child);
|
||||
|
||||
if (append)
|
||||
|
@ -5411,7 +5451,7 @@ if (typeof mxVertexHandler != 'undefined')
|
|||
}
|
||||
else
|
||||
{
|
||||
// Maintains child index by inserting after cloned in parent
|
||||
// Maintains child index by inserting after clone in parent
|
||||
var index = parent.getIndex(cells[i]);
|
||||
model.add(parent, clones[i], index + 1);
|
||||
}
|
||||
|
@ -5676,7 +5716,7 @@ if (typeof mxVertexHandler != 'undefined')
|
|||
* @param {number} dx X-coordinate of the translation.
|
||||
* @param {number} dy Y-coordinate of the translation.
|
||||
*/
|
||||
Graph.prototype.getSvg = function(background, scale, border, nocrop, crisp, ignoreSelection, showText)
|
||||
Graph.prototype.getSvg = function(background, scale, border, nocrop, crisp, ignoreSelection, showText, imgExport)
|
||||
{
|
||||
scale = (scale != null) ? scale : 1;
|
||||
border = (border != null) ? border : 0;
|
||||
|
@ -5824,7 +5864,7 @@ if (typeof mxVertexHandler != 'undefined')
|
|||
svgCanvas.scale(s);
|
||||
svgCanvas.textEnabled = showText;
|
||||
|
||||
var imgExport = this.createSvgImageExport();
|
||||
imgExport = (imgExport != null) ? imgExport : this.createSvgImageExport();
|
||||
var imgExportDrawCellState = imgExport.drawCellState;
|
||||
|
||||
// Implements ignoreSelection flag
|
||||
|
|
221
src/main/webapp/js/reader.min.js
vendored
221
src/main/webapp/js/reader.min.js
vendored
File diff suppressed because one or more lines are too long
26
src/main/webapp/js/shapes.min.js
vendored
26
src/main/webapp/js/shapes.min.js
vendored
|
@ -11,16 +11,16 @@ k===mxBpmnShape.prototype.eventTypeEnum.END)a.setStrokeColor(n),a.setFillColor(l
|
|||
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){a.rect(0,0,b,c);a.fillAndStroke();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);
|
||||
mxBpmnShape.prototype.symbols={general:function(a,d,e,b,c){},message:function(a,d,e,b,c){a.rect(0,0,b,c);a.fillAndStroke();"none"===mxUtils.getValue(this.style,"fillColor","none")&&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)};
|
||||
|
@ -1543,6 +1543,12 @@ Graph.handleFactory[mxShapeBasicOctagon.prototype.cst.OCTAGON]=function(a){retur
|
|||
function mxShapeBasicIsoCube(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.isoAngle=15}mxUtils.extend(mxShapeBasicIsoCube,mxActor);mxShapeBasicIsoCube.prototype.cst={ISO_CUBE:"mxgraph.basic.isocube"};
|
||||
mxShapeBasicIsoCube.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;d=Math.min(b*Math.tan(d),.5*c);a.begin();a.moveTo(.5*b,0);a.lineTo(b,d);a.lineTo(b,c-d);a.lineTo(.5*b,c);a.lineTo(0,c-d);a.lineTo(0,d);a.close();a.fillAndStroke();a.setShadow(!1);a.begin();a.moveTo(0,d);a.lineTo(.5*b,2*d);a.lineTo(b,d);a.moveTo(.5*b,2*d);a.lineTo(.5*b,c);a.stroke()};
|
||||
mxCellRenderer.registerShape(mxShapeBasicIsoCube.prototype.cst.ISO_CUBE,mxShapeBasicIsoCube);mxShapeBasicIsoCube.prototype.constraints=null;Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE]=function(a){return[Graph.createHandle(a,["isoAngle"],function(a){var d=Math.max(0,Math.min(100,parseFloat(mxUtils.getValue(this.state.style,"isoAngle",this.isoAngle))));return new mxPoint(a.x,a.y+d)},function(a,e){this.state.style.isoAngle=Math.round(100*Math.max(0,Math.min(100,e.y-a.y)))/100})]};
|
||||
function mxShapeBasicTriangleAcute(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicTriangleAcute,mxActor);mxShapeBasicTriangleAcute.prototype.cst={ACUTE_TRIANGLE:"mxgraph.basic.acute_triangle"};
|
||||
mxShapeBasicTriangleAcute.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(0,c);a.lineTo(d,0);a.lineTo(b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE,mxShapeBasicTriangleAcute);mxShapeBasicTriangleAcute.prototype.constraints=null;
|
||||
Graph.handleFactory[mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+10)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
|
||||
function mxShapeBasicTriangleObtuse(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1;this.dx=.5}mxUtils.extend(mxShapeBasicTriangleObtuse,mxActor);mxShapeBasicTriangleObtuse.prototype.cst={OBTUSE_TRIANGLE:"mxgraph.basic.obtuse_triangle"};
|
||||
mxShapeBasicTriangleObtuse.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=b*Math.max(0,Math.min(b,parseFloat(mxUtils.getValue(this.style,"dx",this.dx))));a.begin();a.moveTo(d,c);a.lineTo(0,0);a.lineTo(b,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE,mxShapeBasicTriangleObtuse);mxShapeBasicTriangleObtuse.prototype.constraints=null;
|
||||
Graph.handleFactory[mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE]=function(a){return[Graph.createHandle(a,["dx"],function(a){var d=Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.state.style,"dx",this.dx))));return new mxPoint(a.x+d*a.width,a.y+a.height-10)},function(a,e){this.state.style.dx=Math.round(100*Math.max(0,Math.min(1,(e.x-a.x)/a.width)))/100})]};
|
||||
function mxShapeBootstrapRRect(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapRRect,mxShape);mxShapeBootstrapRRect.prototype.cst={PACKAGE:"mxgraph.bootstrap.rrect",R_SIZE:"rSize"};mxShapeBootstrapRRect.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapRRect.prototype.cst.R_SIZE,"10"));a.roundrect(0,0,b,c,d);a.fillAndStroke()};
|
||||
mxCellRenderer.registerShape(mxShapeBootstrapRRect.prototype.cst.PACKAGE,mxShapeBootstrapRRect);function mxShapeBootstrapTopButton(a,d,e,b){mxShape.call(this);this.bounds=a;this.fill=d;this.stroke=e;this.strokewidth=null!=b?b:1}mxUtils.extend(mxShapeBootstrapTopButton,mxShape);mxShapeBootstrapTopButton.prototype.cst={TOP_BUTTON:"mxgraph.bootstrap.topButton",R_SIZE:"rSize"};
|
||||
mxShapeBootstrapTopButton.prototype.paintVertexShape=function(a,d,e,b,c){a.translate(d,e);d=parseInt(mxUtils.getValue(this.style,mxShapeBootstrapTopButton.prototype.cst.R_SIZE,"10"));a.begin();a.moveTo(0,d);a.arcTo(d,d,0,0,1,d,0);a.lineTo(b-d,0);a.arcTo(d,d,0,0,1,b,d);a.lineTo(b,c);a.lineTo(0,c);a.close();a.fillAndStroke()};mxCellRenderer.registerShape(mxShapeBootstrapTopButton.prototype.cst.TOP_BUTTON,mxShapeBootstrapTopButton);
|
||||
|
|
4
src/main/webapp/js/stencils.min.js
vendored
4
src/main/webapp/js/stencils.min.js
vendored
File diff suppressed because one or more lines are too long
1122
src/main/webapp/js/viewer.min.js
vendored
1122
src/main/webapp/js/viewer.min.js
vendored
File diff suppressed because one or more lines are too long
195
src/main/webapp/plugins/cConf-1-4-8.js
Normal file
195
src/main/webapp/plugins/cConf-1-4-8.js
Normal file
|
@ -0,0 +1,195 @@
|
|||
/**
|
||||
* Plugin for embed mode in Confluence Connect post version 1.4.8
|
||||
*/
|
||||
Draw.loadPlugin(function(ui)
|
||||
{
|
||||
// Extracts macro data from JSON protocol
|
||||
var macroData = {};
|
||||
|
||||
mxEvent.addListener(window, 'message', mxUtils.bind(this, function(evt)
|
||||
{
|
||||
var data = evt.data;
|
||||
|
||||
try
|
||||
{
|
||||
data = JSON.parse(data);
|
||||
|
||||
if (data.action == 'load' && data.macroData != null)
|
||||
{
|
||||
macroData = data.macroData;
|
||||
}
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
data = null;
|
||||
}
|
||||
}));
|
||||
|
||||
// Creates actions
|
||||
var action = ui.actions.put('viewerToolbarTop', new Action(mxResources.get('top'), function()
|
||||
{
|
||||
macroData.tbstyle = 'top';
|
||||
}));
|
||||
action.setToggleAction(true);
|
||||
action.setSelectedCallback(function() { return macroData.tbstyle != 'inline' && macroData.tbstyle != 'hidden' });
|
||||
|
||||
action = ui.actions.put('viewerToolbarMiddle', new Action(mxResources.get('embed'), function()
|
||||
{
|
||||
macroData.tbstyle = 'inline';
|
||||
}));
|
||||
action.setToggleAction(true);
|
||||
action.setSelectedCallback(function() { return macroData.tbstyle == 'inline'; });
|
||||
|
||||
action = ui.actions.put('viewerToolbarHidden', new Action(mxResources.get('hidden'), function()
|
||||
{
|
||||
macroData.tbstyle = 'hidden';
|
||||
}));
|
||||
action.setToggleAction(true);
|
||||
action.setSelectedCallback(function() { return macroData.tbstyle == 'hidden'; });
|
||||
|
||||
action = ui.actions.put('viewerLightbox', new Action(mxResources.get('lightbox'), function()
|
||||
{
|
||||
macroData.lbox = (macroData.lbox != '0') ? '0' : '1';
|
||||
}));
|
||||
action.setToggleAction(true);
|
||||
action.setSelectedCallback(function() { return macroData.lbox != '0'; });
|
||||
|
||||
action = ui.actions.put('linksAuto', new Action(mxResources.get('automatic'), function()
|
||||
{
|
||||
macroData.links = 'auto';
|
||||
}));
|
||||
action.setToggleAction(true);
|
||||
action.setSelectedCallback(function() { return macroData.links != 'blank' && macroData.links != 'self'; });
|
||||
|
||||
action = ui.actions.put('linksBlank', new Action(mxResources.get('openInNewWindow'), function()
|
||||
{
|
||||
macroData.links = 'blank';
|
||||
}));
|
||||
action.setToggleAction(true);
|
||||
action.setSelectedCallback(function() { return macroData.links == 'blank'; });
|
||||
|
||||
action = ui.actions.put('linksSelf', new Action(mxResources.get('openInThisWindow'), function()
|
||||
{
|
||||
macroData.links = 'self';
|
||||
}));
|
||||
action.setToggleAction(true);
|
||||
action.setSelectedCallback(function() { return macroData.links == 'self'; });
|
||||
|
||||
action = ui.actions.put('viewerZoom', new Action(mxResources.get('zoom') + '...', function()
|
||||
{
|
||||
var dlg = new FilenameDialog(ui, (parseFloat(macroData.zoom || 1) * 100) + '%',
|
||||
mxResources.get('apply'), function(newValue)
|
||||
{
|
||||
if (newValue != null)
|
||||
{
|
||||
var val = parseInt(newValue);
|
||||
|
||||
if (!isNaN(val))
|
||||
{
|
||||
macroData.zoom = val / 100;
|
||||
}
|
||||
}
|
||||
}, mxResources.get('zoom'));
|
||||
ui.showDialog(dlg.container, 300, 80, true, true);
|
||||
dlg.init();
|
||||
}));
|
||||
|
||||
// Creates viewer toolbar menu
|
||||
mxResources.parse('viewerMenu=Viewer');
|
||||
mxResources.parse('viewerToolbar=Toolbar');
|
||||
mxResources.parse('viewerLightbox=Lightbox');
|
||||
mxResources.parse('viewerLinks=Links');
|
||||
|
||||
ui.menus.put('viewerMenu', new Menu(mxUtils.bind(this, function(menu, parent)
|
||||
{
|
||||
ui.menus.addMenuItems(menu, ['viewerLightbox', 'viewerZoom', '-'], parent);
|
||||
ui.menus.addSubmenu('viewerToolbar', menu, parent);
|
||||
ui.menus.addSubmenu('viewerLinks', menu, parent);
|
||||
})));
|
||||
|
||||
ui.menus.put('viewerToolbar', new Menu(mxUtils.bind(this, function(menu, parent)
|
||||
{
|
||||
ui.menus.addMenuItems(menu, ['viewerToolbarTop', 'viewerToolbarMiddle',
|
||||
'viewerToolbarHidden'], parent);
|
||||
})));
|
||||
|
||||
ui.menus.put('viewerLinks', new Menu(mxUtils.bind(this, function(menu, parent)
|
||||
{
|
||||
ui.menus.addMenuItems(menu, ['linksAuto', 'linksBlank', 'linksSelf'], parent);
|
||||
})));
|
||||
|
||||
// Adds Viewer menu at bottom of Extras menu
|
||||
var menu = ui.menus.get('extras');
|
||||
var oldFunct = menu.funct;
|
||||
|
||||
menu.funct = function(menu, parent)
|
||||
{
|
||||
oldFunct.apply(this, arguments);
|
||||
this.addSubmenu('viewerMenu', menu, parent);
|
||||
};
|
||||
|
||||
// Returns modified macro data to client
|
||||
var uiCreateLoadMessage = ui.createLoadMessage;
|
||||
|
||||
ui.createLoadMessage = function(eventName)
|
||||
{
|
||||
var msg = uiCreateLoadMessage.apply(this, arguments);
|
||||
|
||||
if (eventName == 'export')
|
||||
{
|
||||
msg.macroData = macroData;
|
||||
}
|
||||
|
||||
return msg;
|
||||
};
|
||||
|
||||
var lic = urlParams['lic'];
|
||||
|
||||
if (lic != null && lic == 'active')
|
||||
{
|
||||
ui.hideFooter();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Display footer and alter it
|
||||
var td = document.getElementById('geFooterItem2');
|
||||
|
||||
if (td != null)
|
||||
{
|
||||
td.innerHTML = '<a title="faq" href="https://marketplace.atlassian.com/plugins/com.mxgraph.confluence.plugins.diagramly/cloud/reviews" target="_blank">' +
|
||||
'<img border="0" align="absmiddle" style="margin-top:-4px;"/>Enjoying this free plugin? Please help us to 4 stars.</a>';
|
||||
}
|
||||
|
||||
td = document.getElementById('geFooterItem1');
|
||||
|
||||
if (td != null)
|
||||
{
|
||||
td.parentNode.removeChild(td);
|
||||
}
|
||||
|
||||
td = document.getElementById('geFooterItem3');
|
||||
|
||||
if (td != null)
|
||||
{
|
||||
td.parentNode.removeChild(td);
|
||||
}
|
||||
}
|
||||
|
||||
var lang = urlParams['lang'];
|
||||
var site = urlParams['site'];
|
||||
var user = urlParams['user'];
|
||||
|
||||
try
|
||||
{
|
||||
var img = new Image();
|
||||
img.src = 'https://log.draw.io/log?severity=CONFIG&msg=conf-cloud-edit' +
|
||||
((lang != null) ? ':lang=' + encodeURIComponent(lang) : '') +
|
||||
((site != null) ? ':site=' + encodeURIComponent(site) : '') +
|
||||
((user != null) ? ':user=' + encodeURIComponent(user) : '') +
|
||||
'&v=' + encodeURIComponent(EditorUi.VERSION);
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
// not important, just don't break editing because of a log
|
||||
}
|
||||
});
|
|
@ -1,176 +1,639 @@
|
|||
/**
|
||||
* Parse SQL CREATE TABLE. Simple initial version for community to improve.
|
||||
*/
|
||||
Draw.loadPlugin(function(ui)
|
||||
{
|
||||
// LATER: REFERENCES and PRIMARY KEY
|
||||
var div = document.createElement('div');
|
||||
div.style.userSelect = 'none';
|
||||
div.style.overflow = 'hidden';
|
||||
div.style.padding = '10px';
|
||||
div.style.height = '100%';
|
||||
Draw.loadPlugin(function(ui) {
|
||||
|
||||
var graph = ui.editor.graph;
|
||||
function TableModel() {
|
||||
this.Name = null;
|
||||
this.Properties = []
|
||||
}
|
||||
|
||||
var sqlInput = document.createElement('textarea');
|
||||
sqlInput.style.height = '200px';
|
||||
sqlInput.style.width = '100%';
|
||||
sqlInput.value = 'CREATE TABLE Persons\n(\nPersonID int,\nLastName varchar(255),\n' +
|
||||
'FirstName varchar(255),\nAddress varchar(255),\nCity varchar(255)\n);';
|
||||
mxUtils.br(div);
|
||||
div.appendChild(sqlInput);
|
||||
|
||||
var graph = ui.editor.graph;
|
||||
|
||||
// Extends Extras menu
|
||||
mxResources.parse('fromSql=From SQL');
|
||||
function PropertyModel() {
|
||||
this.Name = null;
|
||||
this.Value = null;
|
||||
this.TableName = null;
|
||||
this.ForeignKey = [];
|
||||
this.IsPrimaryKey = false;
|
||||
this.IsForeignKey = false;
|
||||
}
|
||||
|
||||
var wnd = new mxWindow(mxResources.get('fromSql'), div, document.body.offsetWidth - 480, 140,
|
||||
320, 300, true, true);
|
||||
wnd.destroyOnClose = false;
|
||||
wnd.setMaximizable(false);
|
||||
wnd.setResizable(false);
|
||||
wnd.setClosable(true);
|
||||
function ForeignKeyModel() {
|
||||
this.PrimaryKeyName = null;
|
||||
this.ReferencesPropertyName = null
|
||||
|
||||
function parseSql(text)
|
||||
{
|
||||
var lines = text.split('\n');
|
||||
var tableCell = null;
|
||||
var rows = null;
|
||||
var cells = [];
|
||||
var dx = 0;
|
||||
this.PrimaryKeyTableName = null;
|
||||
this.ReferencesTableName = null;
|
||||
|
||||
for (var i = 0; i < lines.length; i++)
|
||||
{
|
||||
var tmp = mxUtils.trim(lines[i]);
|
||||
|
||||
if (tmp.substring(0, 12).toLowerCase() == 'create table')
|
||||
{
|
||||
var name = mxUtils.trim(tmp.substring(12));
|
||||
|
||||
if (name.charAt(name.length - 1) == '(')
|
||||
{
|
||||
name = name.substring(0, name.lastIndexOf(' '));
|
||||
}
|
||||
|
||||
tableCell = new mxCell(name, new mxGeometry(dx, 0, 160, 26),
|
||||
'swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;');
|
||||
tableCell.vertex = true;
|
||||
cells.push(tableCell);
|
||||
|
||||
var size = ui.editor.graph.getPreferredSizeForCell(rowCell);
|
||||
|
||||
if (size != null)
|
||||
{
|
||||
tableCell.geometry.width = size.width + 10;
|
||||
}
|
||||
|
||||
// For primary key lookups
|
||||
rows = {};
|
||||
}
|
||||
else if (tableCell != null && tmp.charAt(0) == ')')
|
||||
{
|
||||
dx += tableCell.geometry.width + 40;
|
||||
tableCell = null;
|
||||
}
|
||||
else if (tmp != '(' && tableCell != null)
|
||||
{
|
||||
var name = tmp.substring(0, (tmp.charAt(tmp.length - 1) == ',') ? tmp.length - 1 : tmp.length);
|
||||
|
||||
if (name.substring(0, 11).toLowerCase() != 'primary key')
|
||||
{
|
||||
var rowCell = new mxCell(name, new mxGeometry(0, 0, 90, 26),
|
||||
'shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=34;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;');
|
||||
rowCell.vertex = true;
|
||||
|
||||
var left = sb.cloneCell(rowCell, '' /* eg. PK */);
|
||||
left.connectable = false;
|
||||
left.style = 'shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[];portConstraint=eastwest;part=1;'
|
||||
left.geometry.width = 30;
|
||||
left.geometry.height = 26;
|
||||
rowCell.insert(left);
|
||||
|
||||
var size = ui.editor.graph.getPreferredSizeForCell(rowCell);
|
||||
|
||||
if (size != null && tableCell.geometry.width < size.width + 10)
|
||||
{
|
||||
tableCell.geometry.width = size.width + 10;
|
||||
}
|
||||
|
||||
tableCell.insert(rowCell);
|
||||
tableCell.geometry.height += 26;
|
||||
|
||||
rows[rowCell.value] = rowCell;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (cells.length > 0)
|
||||
{
|
||||
var graph = ui.editor.graph;
|
||||
var view = graph.view;
|
||||
var bds = graph.getGraphBounds();
|
||||
|
||||
// Computes unscaled, untranslated graph bounds
|
||||
var x = Math.ceil(Math.max(0, bds.x / view.scale - view.translate.x) + 4 * graph.gridSize);
|
||||
var y = Math.ceil(Math.max(0, (bds.y + bds.height) / view.scale - view.translate.y) + 4 * graph.gridSize);
|
||||
this.IsDestination = false;
|
||||
}
|
||||
|
||||
graph.setSelectionCells(graph.importCells(cells, x, y));
|
||||
graph.scrollCellToVisible(graph.getSelectionCell());
|
||||
}
|
||||
|
||||
wnd.setVisible(false);
|
||||
};
|
||||
function PrimaryKeyModel() {
|
||||
this.PrimaryKeyName = null;
|
||||
this.PrimaryKeyTableName = null;
|
||||
}
|
||||
|
||||
mxUtils.br(div);
|
||||
//SQL Types
|
||||
var SQLServer = 'sqlserver';
|
||||
|
||||
var resetBtn = mxUtils.button(mxResources.get('reset'), function()
|
||||
{
|
||||
sqlInput.value = '';
|
||||
});
|
||||
|
||||
resetBtn.style.marginTop = '8px';
|
||||
resetBtn.style.marginRight = '4px';
|
||||
resetBtn.style.padding = '4px';
|
||||
div.appendChild(resetBtn);
|
||||
//SQL Modes
|
||||
var MODE_SQLSERVER = null;
|
||||
|
||||
var btn = mxUtils.button(mxResources.get('cancel'), function()
|
||||
{
|
||||
wnd.setVisible(false);
|
||||
});
|
||||
|
||||
btn.style.marginTop = '8px';
|
||||
btn.style.marginRight = '4px';
|
||||
btn.style.padding = '4px';
|
||||
div.appendChild(btn);
|
||||
//Table Info
|
||||
var foreignKeyList = [];
|
||||
var primaryKeyList = [];
|
||||
var tableList = [];
|
||||
var cells = [];
|
||||
var tableCell = null;
|
||||
var rowCell = null;
|
||||
var dx = 0;
|
||||
var exportedTables = 0;
|
||||
|
||||
var btn = mxUtils.button(mxResources.get('insert'), function()
|
||||
{
|
||||
parseSql(sqlInput.value);
|
||||
});
|
||||
|
||||
btn.style.marginTop = '8px';
|
||||
btn.style.padding = '4px';
|
||||
div.appendChild(btn);
|
||||
|
||||
//Create Base div
|
||||
var div = document.createElement('div');
|
||||
div.style.userSelect = 'none';
|
||||
div.style.overflow = 'hidden';
|
||||
div.style.padding = '10px';
|
||||
div.style.height = '100%';
|
||||
|
||||
var graph = ui.editor.graph;
|
||||
|
||||
var sqlInput = document.createElement('textarea');
|
||||
sqlInput.style.height = '200px';
|
||||
sqlInput.style.width = '100%';
|
||||
sqlInput.value = 'CREATE TABLE Persons\n(\nPersonID int,\nLastName varchar(255),\n' +
|
||||
'FirstName varchar(255),\nAddress varchar(255),\nCity varchar(255)\n);';
|
||||
mxUtils.br(div);
|
||||
div.appendChild(sqlInput);
|
||||
|
||||
var graph = ui.editor.graph;
|
||||
|
||||
// Extends Extras menu
|
||||
mxResources.parse('fromSql=From SQL');
|
||||
|
||||
var wnd = new mxWindow(mxResources.get('fromSql'), div, document.body.offsetWidth - 480, 140,
|
||||
320, 300, true, true);
|
||||
wnd.destroyOnClose = false;
|
||||
wnd.setMaximizable(false);
|
||||
wnd.setResizable(false);
|
||||
wnd.setClosable(true);
|
||||
|
||||
function AddRow(propertyModel, tableName) {
|
||||
|
||||
var cellName = propertyModel.Name;
|
||||
|
||||
if (propertyModel.IsForeignKey && propertyModel.ForeignKey !== undefined && propertyModel.ForeignKey !== null) {
|
||||
propertyModel.ForeignKey.forEach(function(foreignKeyModel) {
|
||||
|
||||
//We do not want the foreign key to be duplicated in our table to the same property
|
||||
if (tableName !== foreignKeyModel.PrimaryKeyTableName || (tableName === foreignKeyModel.PrimaryKeyTableName && propertyModel.Name !== foreignKeyModel.PrimaryKeyName)) {
|
||||
cellName += ' | ' + foreignKeyModel.PrimaryKeyTableName + '(' + foreignKeyModel.PrimaryKeyName + ')';
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
rowCell = new mxCell(cellName, new mxGeometry(0, 0, 90, 26),
|
||||
'shape=partialRectangle;top=0;left=0;right=0;bottom=0;align=left;verticalAlign=top;spacingTop=-2;fillColor=none;spacingLeft=64;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;dropTarget=0;');
|
||||
rowCell.vertex = true;
|
||||
|
||||
var columnType = propertyModel.IsPrimaryKey && propertyModel.IsForeignKey ? 'PK | FK' : propertyModel.IsPrimaryKey ? 'PK' : propertyModel.IsForeignKey ? 'FK' : '';
|
||||
|
||||
var left = sb.cloneCell(rowCell, columnType);
|
||||
left.connectable = false;
|
||||
left.style = 'shape=partialRectangle;top=0;left=0;bottom=0;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=180;points=[];portConstraint=eastwest;part=1;'
|
||||
left.geometry.width = 54;
|
||||
left.geometry.height = 26;
|
||||
rowCell.insert(left);
|
||||
|
||||
var size = ui.editor.graph.getPreferredSizeForCell(rowCell);
|
||||
|
||||
if (size !== null && tableCell.geometry.width < size.width + 10) {
|
||||
tableCell.geometry.width = size.width + 10;
|
||||
}
|
||||
|
||||
tableCell.insert(rowCell);
|
||||
tableCell.geometry.height += 26;
|
||||
|
||||
rowCell = rowCell;
|
||||
|
||||
};
|
||||
|
||||
function ParseMySQLForeignKey(name, currentTableModel) {
|
||||
var referencesIndex = name.toLowerCase().indexOf("references");
|
||||
var foreignKeySQL = name.substring(0, referencesIndex);
|
||||
var referencesSQL = name.substring(referencesIndex, name.length);
|
||||
|
||||
//Remove references syntax
|
||||
referencesSQL = referencesSQL.replace("REFERENCES ", '');
|
||||
|
||||
//Get Table and Property Index
|
||||
var referencedTableIndex = referencesSQL.indexOf("(");
|
||||
var referencedPropertyIndex = referencesSQL.indexOf(")");
|
||||
|
||||
//Get Referenced Table
|
||||
var referencedTableName = referencesSQL.substring(0, referencedTableIndex);
|
||||
|
||||
//Get Referenced Key
|
||||
var referencedPropertyName = referencesSQL.substring(referencedTableIndex + 1, referencedPropertyIndex);
|
||||
|
||||
//Get ForeignKey
|
||||
var foreignKey = foreignKeySQL.replace("FOREIGN KEY (", '').replace(")", '').replace(" ", '');
|
||||
|
||||
//Create ForeignKey
|
||||
var foreignKeyOriginModel = CreateForeignKey(foreignKey, currentTableModel.Name, referencedPropertyName, referencedTableName, true);
|
||||
|
||||
//Add ForeignKey Origin
|
||||
foreignKeyList.push(foreignKeyOriginModel);
|
||||
|
||||
//Create ForeignKey
|
||||
var foreignKeyDestinationModel = CreateForeignKey(referencedPropertyName, referencedTableName, foreignKey, currentTableModel.Name, false);
|
||||
|
||||
//Add ForeignKey Destination
|
||||
foreignKeyList.push(foreignKeyDestinationModel);
|
||||
};
|
||||
|
||||
function ParseSQLServerForeignKey(name, currentTableModel) {
|
||||
var referencesIndex = name.toLowerCase().indexOf("references");
|
||||
|
||||
if (name.toLowerCase().indexOf("foreign key(") !== -1) {
|
||||
var foreignKeySQL = name.substring(name.toLowerCase().indexOf("foreign key("), referencesIndex).replace("FOREIGN KEY(", '').replace(')', '');
|
||||
} else {
|
||||
var foreignKeySQL = name.substring(name.toLowerCase().indexOf("foreign key ("), referencesIndex).replace("FOREIGN KEY (", '').replace(')', '');
|
||||
}
|
||||
|
||||
var referencesSQL = name.substring(referencesIndex, name.length);
|
||||
var alterTableName = name.substring(0, name.indexOf("WITH")).replace('ALTER TABLE ', '');
|
||||
|
||||
if (referencesIndex !== -1 && alterTableName !== '' && foreignKeySQL !== '' && referencesSQL !== '') {
|
||||
|
||||
//Remove references syntax
|
||||
referencesSQL = referencesSQL.replace("REFERENCES ", '');
|
||||
|
||||
//Get Table and Property Index
|
||||
var referencedTableIndex = referencesSQL.indexOf("(");
|
||||
var referencedPropertyIndex = referencesSQL.indexOf(")");
|
||||
|
||||
//Get Referenced Table
|
||||
var referencedTableName = referencesSQL.substring(0, referencedTableIndex);
|
||||
|
||||
//Parse Name
|
||||
referencedTableName = ParseSQLServerName(referencedTableName);
|
||||
|
||||
//Get Referenced Key
|
||||
var referencedPropertyName = referencesSQL.substring(referencedTableIndex + 1, referencedPropertyIndex);
|
||||
|
||||
//Parse Name
|
||||
referencedPropertyName = ParseSQLServerName(referencedPropertyName);
|
||||
|
||||
//Get ForeignKey
|
||||
var foreignKey = foreignKeySQL.replace("FOREIGN KEY (", '').replace(")", '');
|
||||
|
||||
//Parse Name
|
||||
foreignKey = ParseSQLServerName(foreignKey);
|
||||
|
||||
//Parse Name
|
||||
alterTableName = ParseSQLServerName(alterTableName);
|
||||
|
||||
//Create ForeignKey
|
||||
var foreignKeyOriginModel = CreateForeignKey(foreignKey, alterTableName, referencedPropertyName, referencedTableName, true);
|
||||
|
||||
//Add ForeignKey Origin
|
||||
foreignKeyList.push(foreignKeyOriginModel);
|
||||
|
||||
//Create ForeignKey
|
||||
var foreignKeyDestinationModel = CreateForeignKey(referencedPropertyName, referencedTableName, foreignKey, alterTableName, false);
|
||||
|
||||
//Add ForeignKey Destination
|
||||
foreignKeyList.push(foreignKeyDestinationModel);
|
||||
}
|
||||
};
|
||||
|
||||
function ProcessPrimaryKey() {
|
||||
|
||||
primaryKeyList.forEach(function(primaryModel) {
|
||||
tableList.forEach(function(tableModel) {
|
||||
if (tableModel.Name === primaryModel.PrimaryKeyTableName) {
|
||||
tableModel.Properties.forEach(function(propertyModel) {
|
||||
if (propertyModel.Name === primaryModel.PrimaryKeyName) {
|
||||
propertyModel.IsPrimaryKey = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function AssignForeignKey(foreignKeyModel) {
|
||||
tableList.forEach(function(tableModel) {
|
||||
if (tableModel.Name === foreignKeyModel.ReferencesTableName) {
|
||||
tableModel.Properties.forEach(function(propertyModel) {
|
||||
if (propertyModel.Name === foreignKeyModel.ReferencesPropertyName) {
|
||||
propertyModel.IsForeignKey = true;
|
||||
propertyModel.ForeignKey.push(foreignKeyModel);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (tableModel.Name === foreignKeyModel.PrimaryKeyTableName) {
|
||||
tableModel.Properties.forEach(function(propertyModel) {
|
||||
if (propertyModel.Name === foreignKeyModel.PrimaryKeyName) {
|
||||
propertyModel.IsForeignKey = true;
|
||||
propertyModel.ForeignKey.push(foreignKeyModel);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function ProcessForeignKey() {
|
||||
|
||||
foreignKeyList.forEach(function(foreignKeyModel) {
|
||||
//Assign ForeignKey
|
||||
AssignForeignKey(foreignKeyModel);
|
||||
});
|
||||
}
|
||||
|
||||
function CreateForeignKey(primaryKeyName, primaryKeyTableName, referencesPropertyName, referencesTableName, isDestination) {
|
||||
var foreignKey = new ForeignKeyModel;
|
||||
|
||||
foreignKey.PrimaryKeyTableName = primaryKeyTableName;
|
||||
foreignKey.PrimaryKeyName = primaryKeyName;
|
||||
foreignKey.ReferencesPropertyName = referencesPropertyName;
|
||||
foreignKey.ReferencesTableName = referencesTableName;
|
||||
foreignKey.IsDestination = (isDestination !== undefined && isDestination !== null) ? isDestination : false;
|
||||
|
||||
return foreignKey;
|
||||
};
|
||||
|
||||
function CreatePrimaryKey(primaryKeyName, primaryKeyTableName) {
|
||||
var primaryKey = new PrimaryKeyModel;
|
||||
|
||||
primaryKey.PrimaryKeyTableName = primaryKeyTableName;
|
||||
primaryKey.PrimaryKeyName = primaryKeyName;
|
||||
|
||||
return primaryKey;
|
||||
};
|
||||
|
||||
function CreateProperty(name, tableName, foreignKey, isPrimaryKey) {
|
||||
var property = new PropertyModel;
|
||||
var isForeignKey = foreignKey !== undefined && foreignKey !== null;
|
||||
|
||||
property.Name = name;
|
||||
property.TableName = tableName;
|
||||
property.ForeignKey = isForeignKey ? foreignKey : [];
|
||||
property.IsForeignKey = isForeignKey;
|
||||
property.IsPrimaryKey = isPrimaryKey;
|
||||
|
||||
return property;
|
||||
};
|
||||
|
||||
function CreateTable(name) {
|
||||
var table = new TableModel;
|
||||
|
||||
table.Name = name;
|
||||
|
||||
//Count exported tables
|
||||
exportedTables++;
|
||||
|
||||
return table;
|
||||
};
|
||||
|
||||
function ParseSQLServerName(name, property) {
|
||||
name = name.replace('[dbo].[', '');
|
||||
name = name.replace('](', '');
|
||||
name = name.replace('].[', '.');
|
||||
name = name.replace('[', '');
|
||||
|
||||
if (property == undefined || property == null) {
|
||||
name = name.replace(' [', '');
|
||||
name = name.replace('] ', '');
|
||||
} else {
|
||||
if (name.indexOf(']') !== -1) {
|
||||
name = name.substring(0, name.indexOf(']'));
|
||||
}
|
||||
}
|
||||
|
||||
if (name.lastIndexOf(']') === (name.length - 1)) {
|
||||
name = name.substring(0, name.length - 1);
|
||||
}
|
||||
|
||||
if (name.lastIndexOf(')') === (name.length - 1)) {
|
||||
name = name.substring(0, name.length - 1);
|
||||
}
|
||||
|
||||
if (name.lastIndexOf('(') === (name.length - 1)) {
|
||||
name = name.substring(0, name.length - 1);
|
||||
}
|
||||
|
||||
name = name.replace(' ', '');
|
||||
|
||||
return name;
|
||||
};
|
||||
|
||||
function ParseTableName(name) {
|
||||
if (name.charAt(name.length - 1) === '(') {
|
||||
if (!MODE_SQLSERVER) {
|
||||
name = name.substring(0, name.lastIndexOf(' '));
|
||||
} else {
|
||||
name = ParseSQLServerName(name);
|
||||
}
|
||||
}
|
||||
|
||||
return name;
|
||||
};
|
||||
|
||||
function parseSql(text, type) {
|
||||
var lines = text.split('\n');
|
||||
dx = 0;
|
||||
MODE_SQLSERVER = type !== undefined && type !== null && type == SQLServer;
|
||||
|
||||
tableCell = null;
|
||||
cells = [];
|
||||
exportedTables = 0;
|
||||
tableList = [];
|
||||
foreignKeyList = [];
|
||||
|
||||
var currentTableModel = null;
|
||||
|
||||
//Parse SQL to objects
|
||||
for (var i = 0; i < lines.length; i++) {
|
||||
|
||||
rowCell = null;
|
||||
|
||||
var tmp = mxUtils.trim(lines[i]);
|
||||
|
||||
var propertyRow = tmp.substring(0, 12).toLowerCase();
|
||||
|
||||
//Parse Table
|
||||
if (propertyRow === 'create table') {
|
||||
|
||||
//Parse row
|
||||
var name = mxUtils.trim(tmp.substring(12));
|
||||
|
||||
//Parse Table Name
|
||||
name = ParseTableName(name);
|
||||
|
||||
if (currentTableModel !== null) {
|
||||
//Add table to the list
|
||||
tableList.push(currentTableModel);
|
||||
}
|
||||
|
||||
//Create Table
|
||||
currentTableModel = CreateTable(name);
|
||||
}
|
||||
// Parse Properties
|
||||
else if (tmp !== '(' && currentTableModel != null && propertyRow !== 'alter table ') {
|
||||
|
||||
//Parse the row
|
||||
var name = tmp.substring(0, (tmp.charAt(tmp.length - 1) === ',') ? tmp.length - 1 : tmp.length);
|
||||
|
||||
//Attempt to get the Key Type
|
||||
var propertyType = name.substring(0, 11).toLowerCase();
|
||||
|
||||
//Add special constraints
|
||||
if (MODE_SQLSERVER) {
|
||||
if (tmp.indexOf("CONSTRAINT") !== -1 && tmp.indexOf("PRIMARY KEY") !== -1) {
|
||||
propertyType = "constrain primary key";
|
||||
}
|
||||
|
||||
if (tmp.indexOf("CONSTRAINT") !== -1 && tmp.indexOf("FOREIGN KEY") !== -1) {
|
||||
propertyType = "constrain foreign key";
|
||||
}
|
||||
}
|
||||
|
||||
//Verify if this is a property that doesn't have a relationship (One minute of silence for the property)
|
||||
var normalProperty = propertyType !== 'primary key' && propertyType !== 'foreign key' && propertyType !== 'constrain primary key' && propertyType !== 'constrain foreign key';
|
||||
|
||||
//Parse properties that don't have relationships
|
||||
if (normalProperty) {
|
||||
|
||||
if (name === '' || name === "" || name === ");") {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (MODE_SQLSERVER) {
|
||||
if (name.indexOf("ASC") !== -1 ||
|
||||
name.indexOf("DESC") !== -1 ||
|
||||
name.indexOf("EXEC") !== -1 ||
|
||||
name.indexOf("WITH") !== -1 ||
|
||||
name.indexOf("ON") !== -1 ||
|
||||
name.indexOf("ALTER") !== -1 ||
|
||||
name.indexOf("/*") !== -1 ||
|
||||
name.indexOf("CONSTRAIN") !== -1 ||
|
||||
name.indexOf("SET") !== -1 ||
|
||||
name.indexOf("NONCLUSTERED") !== -1 ||
|
||||
name.indexOf("GO") !== -1 ||
|
||||
name.indexOf("REFERENCES") !== -1) {
|
||||
continue;
|
||||
}
|
||||
//Get delimiter of column name
|
||||
var firstSpaceIndex = name.indexOf(' ');
|
||||
|
||||
//Get full name
|
||||
name = name.substring(0, firstSpaceIndex);
|
||||
|
||||
name = ParseSQLServerName(name, true);
|
||||
} else {
|
||||
//Get delimiter of column name
|
||||
var firstSpaceIndex = name.indexOf(' ');
|
||||
|
||||
//Get full name
|
||||
name = name.substring(0, firstSpaceIndex);
|
||||
}
|
||||
|
||||
//Create Property
|
||||
var propertyModel = CreateProperty(name, currentTableModel.Name, null, false, false);
|
||||
|
||||
//Add Property to table
|
||||
currentTableModel.Properties.push(propertyModel);
|
||||
}
|
||||
|
||||
//Parse Primary Key
|
||||
if (propertyType === 'primary key' || propertyType === 'constrain primary key') {
|
||||
if (!MODE_SQLSERVER) {
|
||||
var primaryKey = name.replace('PRIMARY KEY (', '').replace(')', '');
|
||||
|
||||
//Create Primary Key
|
||||
var primaryKeyModel = CreatePrimaryKey(primaryKey, currentTableModel.Name);
|
||||
|
||||
//Add Primary Key to List
|
||||
primaryKeyList.push(primaryKeyModel);
|
||||
|
||||
} else {
|
||||
var start = i + 2;
|
||||
var end = 0;
|
||||
if (name.indexOf('PRIMARY KEY') !== -1 && name.indexOf('CLUSTERED') === -1) {
|
||||
var primaryKey = name.replace('PRIMARY KEY (', '').replace(')', '');
|
||||
|
||||
//Create Primary Key
|
||||
var primaryKeyModel = CreatePrimaryKey(primaryKey, currentTableModel.Name);
|
||||
|
||||
//Add Primary Key to List
|
||||
primaryKeyList.push(primaryKeyModel);
|
||||
|
||||
} else {
|
||||
while (end === 0) {
|
||||
var primaryKeyRow = mxUtils.trim(lines[start]);
|
||||
|
||||
if (primaryKeyRow.indexOf(')') !== -1) {
|
||||
end = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
start++;
|
||||
|
||||
primaryKeyRow = primaryKeyRow.replace("ASC", '');
|
||||
|
||||
//Parse name
|
||||
primaryKeyRow = ParseSQLServerName(primaryKeyRow, true);
|
||||
|
||||
//Create Primary Key
|
||||
var primaryKeyModel = CreatePrimaryKey(primaryKeyRow, currentTableModel.Name);
|
||||
|
||||
//Add Primary Key to List
|
||||
primaryKeyList.push(primaryKeyModel);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//Parse Foreign Key
|
||||
if (propertyType === 'foreign key' || propertyType === 'constrain foreign key') {
|
||||
if (!MODE_SQLSERVER) {
|
||||
ParseMySQLForeignKey(name, currentTableModel);
|
||||
} else {
|
||||
var completeRow = name;
|
||||
|
||||
if (name.indexOf('REFERENCES') === -1) {
|
||||
var referencesRow = mxUtils.trim(lines[i + 1]);
|
||||
completeRow = 'ALTER TABLE [dbo].[' + currentTableModel.Name + '] WITH CHECK ADD' + ' ' + name + ' ' + referencesRow;
|
||||
}
|
||||
|
||||
ParseSQLServerForeignKey(completeRow, currentTableModel);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} else if (propertyRow === 'alter table ') {
|
||||
|
||||
if (MODE_SQLSERVER) {
|
||||
//Parse the row
|
||||
var alterTableRow = tmp.substring(0, (tmp.charAt(tmp.length - 1) === ',') ? tmp.length - 1 : tmp.length);
|
||||
var referencesRow = mxUtils.trim(lines[i + 1]);
|
||||
var completeRow = alterTableRow + ' ' + referencesRow;
|
||||
|
||||
ParseSQLServerForeignKey(completeRow, currentTableModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Add last table
|
||||
if (currentTableModel !== null) {
|
||||
//Add table to the list
|
||||
tableList.push(currentTableModel);
|
||||
}
|
||||
|
||||
//Process Primary Keys
|
||||
ProcessPrimaryKey();
|
||||
|
||||
//Process Foreign Keys
|
||||
ProcessForeignKey();
|
||||
|
||||
//Create Table in UI
|
||||
CreateTableUI();
|
||||
};
|
||||
|
||||
function CreateTableUI() {
|
||||
|
||||
tableList.forEach(function(tableModel) {
|
||||
//Define table size width
|
||||
var maxNameLenght = 100 + tableModel.Name.length;
|
||||
|
||||
//Create Table
|
||||
tableCell = new mxCell(tableModel.Name, new mxGeometry(dx, 0, maxNameLenght, 26),
|
||||
'swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=#e0e0e0;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;swimlaneFillColor=#ffffff;align=center;');
|
||||
tableCell.vertex = true;
|
||||
|
||||
//Resize row
|
||||
var size = ui.editor.graph.getPreferredSizeForCell(rowCell);
|
||||
if (size !== null) {
|
||||
tableCell.geometry.width = size.width + maxNameLenght;
|
||||
}
|
||||
|
||||
//Add Table to cells
|
||||
cells.push(tableCell);
|
||||
|
||||
//Add properties
|
||||
tableModel.Properties.forEach(function(propertyModel) {
|
||||
|
||||
//Add row
|
||||
AddRow(propertyModel, tableModel.Name);
|
||||
});
|
||||
|
||||
//Close table
|
||||
dx += tableCell.geometry.width + 40;
|
||||
tableCell = null;
|
||||
});
|
||||
|
||||
if (cells.length > 0) {
|
||||
var graph = ui.editor.graph;
|
||||
var view = graph.view;
|
||||
var bds = graph.getGraphBounds();
|
||||
|
||||
// Computes unscaled, untranslated graph bounds
|
||||
var x = Math.ceil(Math.max(0, bds.x / view.scale - view.translate.x) + 4 * graph.gridSize);
|
||||
var y = Math.ceil(Math.max(0, (bds.y + bds.height) / view.scale - view.translate.y) + 4 * graph.gridSize);
|
||||
|
||||
graph.setSelectionCells(graph.importCells(cells, x, y));
|
||||
graph.scrollCellToVisible(graph.getSelectionCell());
|
||||
}
|
||||
|
||||
wnd.setVisible(false);
|
||||
};
|
||||
|
||||
mxUtils.br(div);
|
||||
|
||||
var resetBtn = mxUtils.button(mxResources.get('reset'), function() {
|
||||
sqlInput.value = '';
|
||||
});
|
||||
|
||||
resetBtn.style.marginTop = '8px';
|
||||
resetBtn.style.marginRight = '4px';
|
||||
resetBtn.style.padding = '4px';
|
||||
div.appendChild(resetBtn);
|
||||
|
||||
var btn = mxUtils.button('Insert MySQL', function() {
|
||||
parseSql(sqlInput.value);
|
||||
});
|
||||
|
||||
btn.style.marginTop = '8px';
|
||||
btn.style.padding = '4px';
|
||||
div.appendChild(btn);
|
||||
|
||||
var btn = mxUtils.button('Insert SQL Server', function() {
|
||||
parseSql(sqlInput.value, 'sqlserver');
|
||||
});
|
||||
|
||||
btn.style.marginTop = '8px';
|
||||
btn.style.padding = '4px';
|
||||
div.appendChild(btn);
|
||||
|
||||
// Adds action
|
||||
ui.actions.addAction('fromSql', function()
|
||||
{
|
||||
wnd.setVisible(!wnd.isVisible());
|
||||
|
||||
if (wnd.isVisible())
|
||||
{
|
||||
sqlInput.focus();
|
||||
}
|
||||
ui.actions.addAction('fromSql', function() {
|
||||
wnd.setVisible(!wnd.isVisible());
|
||||
|
||||
if (wnd.isVisible()) {
|
||||
sqlInput.focus();
|
||||
}
|
||||
});
|
||||
|
||||
var theMenu = ui.menus.get('insert');
|
||||
var oldMenu = theMenu.funct;
|
||||
|
||||
theMenu.funct = function(menu, parent)
|
||||
{
|
||||
oldMenu.apply(this, arguments);
|
||||
|
||||
ui.menus.addMenuItems(menu, ['fromSql'], parent);
|
||||
};
|
||||
});
|
||||
|
||||
var theMenu = ui.menus.get('insert');
|
||||
var oldMenu = theMenu.funct;
|
||||
|
||||
theMenu.funct = function(menu, parent) {
|
||||
oldMenu.apply(this, arguments);
|
||||
|
||||
ui.menus.addMenuItems(menu, ['fromSql'], parent);
|
||||
};
|
||||
});
|
|
@ -206,7 +206,7 @@ embed=Insluiten
|
|||
embedImages=Afbeeldingen Insluiten
|
||||
mainEmbedNotice=Dit op de pagina plakken
|
||||
electrical=Elektrisch
|
||||
ellipse=Ellipse
|
||||
ellipse=Ellips
|
||||
embedNotice=Dit eenmalig aan het einde van de pagina plakken
|
||||
enterGroup=Groep Invullen
|
||||
enterName=Naam invullen
|
||||
|
@ -419,7 +419,7 @@ makeCopy=Een kopie maken
|
|||
manual=Handleiding
|
||||
middle=Midden
|
||||
misc=Overige
|
||||
mockups=Mock-ups
|
||||
mockups=Modellen
|
||||
modificationDate=Aanpassingsdatum
|
||||
modifiedBy=Aangepast door
|
||||
more=Meer
|
||||
|
@ -533,7 +533,7 @@ readOnly=Alleen-lezen
|
|||
reconnecting=Opnieuw verbinden
|
||||
recentlyUpdated=Recent bijgewerkt
|
||||
recentlyViewed=Recent bekeken
|
||||
rectangle=Rectangle
|
||||
rectangle=Rechthoek
|
||||
redirectToNewApp=Dit bestand is aangemaakt of aangepast in een nieuwere versie van deze app. U wordt nu doorgestuurd.
|
||||
realtimeTimeout=Het lijkt alsof u enkele wijzigingen hebt aangebracht terwijl u offline was. Het spijt ons, maar deze wijzigingen kunnen niet worden opgeslagen.
|
||||
redo=Opnieuw
|
||||
|
@ -568,7 +568,7 @@ retryingLogin=Logintijd verlopen. Opnieuw...
|
|||
reverse=Ongedaan maken
|
||||
revision=Revisie
|
||||
revisionHistory=Revisiegeschiedenis
|
||||
rhombus=Rhombus
|
||||
rhombus=Ruit
|
||||
right=Rechts
|
||||
rightAlign=Rechts Uitlijnen
|
||||
rightToLeft=Rechts naar links
|
||||
|
@ -597,7 +597,7 @@ selectFile=Bestand selecteren
|
|||
selectFolder=Map selecteren
|
||||
selectFont=Lettertype selecteren
|
||||
selectNone=Niets selecteren
|
||||
selectTemplate=Select Template
|
||||
selectTemplate=Sjabloon selecteren
|
||||
selectVertices=Hoekpunten selecteren
|
||||
sendMessage=Versturen
|
||||
sendYourFeedbackToDrawIo=Stuur uw opmerkingen naar draw.io
|
||||
|
@ -708,7 +708,7 @@ engineering=Elektrisch
|
|||
flowcharts=Stroomschema's
|
||||
gmdl=Materiaalontwerp
|
||||
mindmaps=Mindmaps
|
||||
mockups=Mock-ups
|
||||
mockups=Modellen
|
||||
networkdiagrams=Netwerkdiagrammen
|
||||
nothingIsSelected=Niets geselecteerd
|
||||
other=Overige
|
||||
|
|
|
@ -435,6 +435,13 @@ mxBpmnShape.prototype.symbols = {
|
|||
c.rect(0, 0, w, h);
|
||||
c.fillAndStroke();
|
||||
|
||||
var fc = mxUtils.getValue(this.style, "fillColor", "none");
|
||||
|
||||
if (fc === 'none')
|
||||
{
|
||||
c.setStrokeColor('#ffffff');
|
||||
}
|
||||
|
||||
c.begin();
|
||||
c.moveTo(0, 0);
|
||||
c.lineTo(w * 0.5, h * 0.5);
|
||||
|
|
|
@ -451,3 +451,126 @@ Graph.handleFactory[mxShapeBasicIsoCube.prototype.cst.ISO_CUBE] = function(state
|
|||
|
||||
return handles;
|
||||
};
|
||||
|
||||
//**********************************************************************************************************************************************************
|
||||
//Acute Triangle
|
||||
//**********************************************************************************************************************************************************
|
||||
/**
|
||||
* Extends mxShape.
|
||||
*/
|
||||
function mxShapeBasicTriangleAcute(bounds, fill, stroke, strokewidth)
|
||||
{
|
||||
mxShape.call(this);
|
||||
this.bounds = bounds;
|
||||
this.fill = fill;
|
||||
this.stroke = stroke;
|
||||
this.strokewidth = (strokewidth != null) ? strokewidth : 1;
|
||||
this.dx = 0.5;
|
||||
};
|
||||
|
||||
/**
|
||||
* Extends mxShape.
|
||||
*/
|
||||
mxUtils.extend(mxShapeBasicTriangleAcute, mxActor);
|
||||
|
||||
mxShapeBasicTriangleAcute.prototype.cst = {ACUTE_TRIANGLE : 'mxgraph.basic.acute_triangle'};
|
||||
|
||||
/**
|
||||
* Function: paintVertexShape
|
||||
*
|
||||
* Paints the vertex shape.
|
||||
*/
|
||||
mxShapeBasicTriangleAcute.prototype.paintVertexShape = function(c, x, y, w, h)
|
||||
{
|
||||
c.translate(x, y);
|
||||
|
||||
var dx = w * Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx))));
|
||||
|
||||
c.begin();
|
||||
c.moveTo(0, h);
|
||||
c.lineTo(dx, 0);
|
||||
c.lineTo(w, h);
|
||||
c.close();
|
||||
c.fillAndStroke();
|
||||
};
|
||||
|
||||
mxCellRenderer.registerShape(mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE, mxShapeBasicTriangleAcute);
|
||||
|
||||
mxShapeBasicTriangleAcute.prototype.constraints = null;
|
||||
|
||||
Graph.handleFactory[mxShapeBasicTriangleAcute.prototype.cst.ACUTE_TRIANGLE] = function(state)
|
||||
{
|
||||
var handles = [Graph.createHandle(state, ['dx'], function(bounds)
|
||||
{
|
||||
var dx = Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx))));
|
||||
|
||||
return new mxPoint(bounds.x + dx * bounds.width, bounds.y + 10);
|
||||
}, function(bounds, pt)
|
||||
{
|
||||
this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(1, (pt.x - bounds.x) / bounds.width))) / 100;
|
||||
})];
|
||||
|
||||
return handles;
|
||||
};
|
||||
|
||||
//**********************************************************************************************************************************************************
|
||||
//Obtuse Triangle
|
||||
//**********************************************************************************************************************************************************
|
||||
/**
|
||||
* Extends mxShape.
|
||||
*/
|
||||
function mxShapeBasicTriangleObtuse(bounds, fill, stroke, strokewidth)
|
||||
{
|
||||
mxShape.call(this);
|
||||
this.bounds = bounds;
|
||||
this.fill = fill;
|
||||
this.stroke = stroke;
|
||||
this.strokewidth = (strokewidth != null) ? strokewidth : 1;
|
||||
this.dx = 0.5;
|
||||
};
|
||||
|
||||
/**
|
||||
* Extends mxShape.
|
||||
*/
|
||||
mxUtils.extend(mxShapeBasicTriangleObtuse, mxActor);
|
||||
|
||||
mxShapeBasicTriangleObtuse.prototype.cst = {OBTUSE_TRIANGLE : 'mxgraph.basic.obtuse_triangle'};
|
||||
|
||||
/**
|
||||
* Function: paintVertexShape
|
||||
*
|
||||
* Paints the vertex shape.
|
||||
*/
|
||||
mxShapeBasicTriangleObtuse.prototype.paintVertexShape = function(c, x, y, w, h)
|
||||
{
|
||||
c.translate(x, y);
|
||||
|
||||
var dx = w * Math.max(0, Math.min(w, parseFloat(mxUtils.getValue(this.style, 'dx', this.dx))));
|
||||
|
||||
c.begin();
|
||||
c.moveTo(dx, h);
|
||||
c.lineTo(0, 0);
|
||||
c.lineTo(w, h);
|
||||
c.close();
|
||||
c.fillAndStroke();
|
||||
};
|
||||
|
||||
mxCellRenderer.registerShape(mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE, mxShapeBasicTriangleObtuse);
|
||||
|
||||
mxShapeBasicTriangleObtuse.prototype.constraints = null;
|
||||
|
||||
Graph.handleFactory[mxShapeBasicTriangleObtuse.prototype.cst.OBTUSE_TRIANGLE] = function(state)
|
||||
{
|
||||
var handles = [Graph.createHandle(state, ['dx'], function(bounds)
|
||||
{
|
||||
var dx = Math.max(0, Math.min(1, parseFloat(mxUtils.getValue(this.state.style, 'dx', this.dx))));
|
||||
|
||||
return new mxPoint(bounds.x + dx * bounds.width, bounds.y + bounds.height - 10);
|
||||
}, function(bounds, pt)
|
||||
{
|
||||
this.state.style['dx'] = Math.round(100 * Math.max(0, Math.min(1, (pt.x - bounds.x) / bounds.width))) / 100;
|
||||
})];
|
||||
|
||||
return handles;
|
||||
};
|
||||
|
||||
|
|
5338
src/main/webapp/stencils/cisco_safe/architecture.xml
Normal file
5338
src/main/webapp/stencils/cisco_safe/architecture.xml
Normal file
File diff suppressed because it is too large
Load diff
8999
src/main/webapp/stencils/cisco_safe/capability.xml
Normal file
8999
src/main/webapp/stencils/cisco_safe/capability.xml
Normal file
File diff suppressed because it is too large
Load diff
7556
src/main/webapp/stencils/cisco_safe/design.xml
Normal file
7556
src/main/webapp/stencils/cisco_safe/design.xml
Normal file
File diff suppressed because it is too large
Load diff
9524
src/main/webapp/stencils/cisco_safe/threat.xml
Normal file
9524
src/main/webapp/stencils/cisco_safe/threat.xml
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue