diff --git a/src/diagrams/sequenceDiagram/parser/sequenceDiagram.jison b/src/diagrams/sequenceDiagram/parser/sequenceDiagram.jison index c68e331d8..0e21d1daf 100644 --- a/src/diagrams/sequenceDiagram/parser/sequenceDiagram.jison +++ b/src/diagrams/sequenceDiagram/parser/sequenceDiagram.jison @@ -61,7 +61,7 @@ statement ; note_statement - : 'note' placement actor message { $$ = yy.addNote($3, $2, $4); } + : 'note' placement actor message { console.log('Got note');$$ = yy.addNote($3, $2, $4); } | 'note' 'over' actor_pair message { $$ = yy.addNote($3, yy.PLACEMENT.OVER, $4); } ; diff --git a/src/diagrams/sequenceDiagram/parser/sequenceDiagram.js b/src/diagrams/sequenceDiagram/parser/sequenceDiagram.js index bd52cf0c0..bc57b70bb 100644 --- a/src/diagrams/sequenceDiagram/parser/sequenceDiagram.js +++ b/src/diagrams/sequenceDiagram/parser/sequenceDiagram.js @@ -102,7 +102,7 @@ case 9: yy.setTitle($$[$0]); break; case 10: - this.$ = yy.addNote($$[$0-1], $$[$0-2], $$[$0]); + console.log('Got note');this.$ = yy.addNote($$[$0-1], $$[$0-2], $$[$0]); break; case 11: this.$ = yy.addNote($$[$0-1], yy.PLACEMENT.OVER, $$[$0]); diff --git a/src/diagrams/sequenceDiagram/sequenceDb.js b/src/diagrams/sequenceDiagram/sequenceDb.js index c6b051276..d99c48110 100644 --- a/src/diagrams/sequenceDiagram/sequenceDb.js +++ b/src/diagrams/sequenceDiagram/sequenceDb.js @@ -61,7 +61,7 @@ exports.addNote = function (actor, placement, message){ var note = {actor:actor, placement: placement, message:message}; notes.push(note); - messages.push({from:actor, to:actor, message:message, type:exports.LINETYPE.NOTE}); + messages.push({from:actor, to:actor, message:message, type:exports.LINETYPE.NOTE, placement: placement}); }; diff --git a/src/diagrams/sequenceDiagram/sequenceRenderer.js b/src/diagrams/sequenceDiagram/sequenceRenderer.js index a573a00ac..bb33a2621 100644 --- a/src/diagrams/sequenceDiagram/sequenceRenderer.js +++ b/src/diagrams/sequenceDiagram/sequenceRenderer.js @@ -57,6 +57,61 @@ var insertArrowHead = function(elem){ .attr("d", "M 0,0 V 4 L6,2 Z"); //this is actual shape for arrowhead }; +/** + * Draws a message + * @param elem + * @param startx + * @param stopx + * @param verticalPos + * @param txtCenter + * @param msg + */ +var drawMessage = function(elem, startx, stopx, verticalPos, msg){ + var g = elem.append("g"); + var txtCenter = startx + (stopx-startx)/2; + //Make an SVG Container + //Draw the line + if(msg.type !== 2) { + if (msg.type === 1) { + g.append("line") + .attr("x1", startx) + .attr("y1", verticalPos) + .attr("x2", stopx) + .attr("y2", verticalPos) + .attr("stroke-width", 2) + .attr("stroke", "black") + .style("stroke-dasharray", ("3, 3")) + .attr("class", "link") + .attr("marker-end", "url(#arrowhead)"); + //.attr("d", diagonal); + } + else { + g.append("line") + .attr("x1", startx) + .attr("y1", verticalPos) + .attr("x2", stopx) + .attr("y2", verticalPos) + .attr("stroke-width", 2) + .attr("stroke", "black") + .attr("class", "link") + .attr("marker-end", "url(#arrowhead)"); + //.attr("d", diagonal); + } + + g.append("text") // text label for the x axis + .attr("x", txtCenter) + .attr("y", verticalPos - 10) + .style("text-anchor", "middle") + .text(msg.message); + } + else{ + g.append("text") // text label for the x axis + .attr("x", txtCenter) + .attr("y", verticalPos - 10) + .style("text-anchor", "middle") + .text(msg.message); + } +}; /** * Draws a flowchart in the tag with id: id based on the graph definition in text. * @param text @@ -107,58 +162,14 @@ module.exports.draw = function (text, id) { ; }; - var drawMessage = function(elem, startx, stopx, verticalPos, txtCenter, msg){ - var g = elem.append("g"); - //Make an SVG Container - //Draw the line - if(msg.type !== 2) { - if (msg.type === 1) { - g.append("line") - .attr("x1", startx) - .attr("y1", verticalPos) - .attr("x2", stopx) - .attr("y2", verticalPos) - .attr("stroke-width", 2) - .attr("stroke", "black") - .style("stroke-dasharray", ("3, 3")) - .attr("class", "link") - .attr("marker-end", "url(#arrowhead)"); - //.attr("d", diagonal); - } - else { - g.append("line") - .attr("x1", startx) - .attr("y1", verticalPos) - .attr("x2", stopx) - .attr("y2", verticalPos) - .attr("stroke-width", 2) - .attr("stroke", "black") - .attr("class", "link") - .attr("marker-end", "url(#arrowhead)"); - //.attr("d", diagonal); - } - g.append("text") // text label for the x axis - .attr("x", txtCenter) - .attr("y", verticalPos - 10) - .style("text-anchor", "middle") - .text(msg.message); - } - else{ - g.append("text") // text label for the x axis - .attr("x", txtCenter) - .attr("y", verticalPos - 10) - .style("text-anchor", "middle") - .text(msg.message); - } - }; // Fetch data from the parsing var actors = sq.yy.getActors(); var actorKeys = sq.yy.getActorKeys(); var messages = sq.yy.getMessages(); - var i, maxX = 0; + var i, maxX = 0, minX=0; // Draw the actors for(i=0;i