//********************************************************************************************************************************************************** //Input Pin //********************************************************************************************************************************************************** function mxShapeUMLInputPin(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(mxShapeUMLInputPin, mxActor); mxShapeUMLInputPin.prototype.cst = {INPUT_PIN : 'mxgraph.uml25.inputPin'}; mxShapeUMLInputPin.prototype.paintVertexShape = function(c, x, y, w, h) { c.translate(x, y); c.begin(); c.moveTo(0, 0); c.lineTo(w, 0); c.lineTo(w, h); c.lineTo(0, h); c.close(); c.fillAndStroke(); c.setShadow(false); c.begin(); c.moveTo(w * 0.75, h * 0.5); c.lineTo(w * 0.25, h * 0.5); c.moveTo(w * 0.4, h * 0.4); c.lineTo(w * 0.25, h * 0.5); c.lineTo(w * 0.4, h * 0.6); c.stroke(); }; mxCellRenderer.registerShape(mxShapeUMLInputPin.prototype.cst.INPUT_PIN, mxShapeUMLInputPin); mxShapeUMLInputPin.prototype.constraints = null; //********************************************************************************************************************************************************** //Behavior Action //********************************************************************************************************************************************************** function mxShapeUMLBehaviorAction(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; }; mxUtils.extend(mxShapeUMLBehaviorAction, mxActor); mxShapeUMLBehaviorAction.prototype.cst = {BEHAVIOR_ACTION : 'mxgraph.uml25.behaviorAction'}; /** * Function: paintVertexShape * * Paints the vertex shape. */ mxShapeUMLBehaviorAction.prototype.paintVertexShape = function(c, x, y, w, h) { c.translate(x, y); var rounded = mxUtils.getValue(this.style, 'rounded', false); var absArcSize = mxUtils.getValue(this.style, 'absoluteArcSize', false); var arcSize = parseFloat(mxUtils.getValue(this.style, 'arcSize', this.arcSize)); if (!absArcSize) { arcSize = Math.min(w, h) * arcSize; } arcSize = Math.min(arcSize, w * 0.5, h * 0.5); if (!rounded) { arcSize = 0; } c.begin(); if (rounded) { c.moveTo(0, arcSize); c.arcTo(arcSize, arcSize, 0, 0, 1, arcSize, 0); c.lineTo(w - arcSize, 0); c.arcTo(arcSize, arcSize, 0, 0, 1, w, arcSize); c.lineTo(w, h - arcSize); c.arcTo(arcSize, arcSize, 0, 0, 1, w - arcSize, h); c.lineTo(arcSize, h); c.arcTo(arcSize, arcSize, 0, 0, 1, 0, h - arcSize); } else { c.moveTo(0, 0); c.lineTo(w, 0); c.lineTo(w, h); c.lineTo(0, h); } c.close(); c.fillAndStroke(); c.setShadow(false); if (w >= 60 && h >= 40) { c.begin(); c.moveTo(w - 60, h * 0.5 + 20); c.lineTo(w - 60, h * 0.5); c.lineTo(w - 20, h * 0.5); c.lineTo(w - 20, h * 0.5 + 20); c.moveTo(w - 40, h * 0.5 - 20); c.lineTo(w - 40, h * 0.5 + 20); c.stroke(); } }; mxCellRenderer.registerShape(mxShapeUMLBehaviorAction.prototype.cst.BEHAVIOR_ACTION, mxShapeUMLBehaviorAction); mxShapeUMLBehaviorAction.prototype.constraints = null; //********************************************************************************************************************************************************** //Action //********************************************************************************************************************************************************** /** * Extends mxShape. */ function mxShapeUMLAction(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(mxShapeUMLAction, mxActor); mxShapeUMLAction.prototype.cst = {ACTION : 'mxgraph.uml25.action'}; /** * Function: paintVertexShape * * Paints the vertex shape. */ mxShapeUMLAction.prototype.paintVertexShape = function(c, x, y, w, h) { c.translate(x, y); var absArcSize = mxUtils.getValue(this.style, 'absoluteArcSize', false); var arcSize = parseFloat(mxUtils.getValue(this.style, 'arcSize', this.arcSize)); if (!absArcSize) { arcSize = Math.min(w, h) * arcSize; } arcSize = Math.min(arcSize, w * 0.5, h * 0.5); c.begin(); c.moveTo(0, arcSize); c.arcTo(arcSize, arcSize, 0, 0, 1, arcSize, 0); c.lineTo(w - arcSize - 10, 0); c.arcTo(arcSize, arcSize, 0, 0, 1, w - 10, arcSize); c.lineTo(w - 10, h - arcSize); c.arcTo(arcSize, arcSize, 0, 0, 1, w - arcSize - 10, h); c.lineTo(arcSize, h); c.arcTo(arcSize, arcSize, 0, 0, 1, 0, h - arcSize); c.close(); c.fillAndStroke(); c.rect(w - 10, h * 0.5 - 10, 10, 20); c.fillAndStroke(); }; mxCellRenderer.registerShape(mxShapeUMLAction.prototype.cst.ACTION, mxShapeUMLAction); mxShapeUMLAction.prototype.constraints = null; //********************************************************************************************************************************************************** //Action with parameters //********************************************************************************************************************************************************** /** * Extends mxShape. */ function mxShapeUMLActionParams(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(mxShapeUMLActionParams, mxActor); mxShapeUMLActionParams.prototype.cst = {ACTION_PARAMS : 'mxgraph.uml25.actionParams'}; /** * Function: paintVertexShape * * Paints the vertex shape. */ mxShapeUMLActionParams.prototype.paintVertexShape = function(c, x, y, w, h) { c.translate(x, y); var absArcSize = mxUtils.getValue(this.style, 'absoluteArcSize', false); var arcSize = parseFloat(mxUtils.getValue(this.style, 'arcSize', this.arcSize)); if (!absArcSize) { arcSize = Math.min(w, h) * arcSize; } arcSize = Math.min(arcSize, w * 0.5, h * 0.5); c.begin(); c.moveTo(20, arcSize); c.arcTo(arcSize, arcSize, 0, 0, 1, 20 + arcSize, 0); c.lineTo(w - arcSize, 0); c.arcTo(arcSize, arcSize, 0, 0, 1, w, arcSize); c.lineTo(w, h - arcSize); c.arcTo(arcSize, arcSize, 0, 0, 1, w - arcSize, h); c.lineTo(20 + arcSize, h); c.arcTo(arcSize, arcSize, 0, 0, 1, 20, h - arcSize); c.close(); c.fillAndStroke(); c.rect(5, h * 0.5 - 17, 20, 34); c.fillAndStroke(); c.rect(0, h * 0.5 - 13, 10, 10); c.fillAndStroke(); c.rect(0, h * 0.5 + 3, 10, 10); c.fillAndStroke(); }; mxCellRenderer.registerShape(mxShapeUMLActionParams.prototype.cst.ACTION_PARAMS, mxShapeUMLActionParams); mxShapeUMLActionParams.prototype.constraints = null;