diff --git a/src/diagrams/sequenceDiagram/sequenceDiagram.spec.js b/src/diagrams/sequenceDiagram/sequenceDiagram.spec.js
index 5a72298b0..8a5bca8b4 100644
--- a/src/diagrams/sequenceDiagram/sequenceDiagram.spec.js
+++ b/src/diagrams/sequenceDiagram/sequenceDiagram.spec.js
@@ -363,7 +363,7 @@ describe('when rendering a sequenceDiagram',function() {
// 10 comes from mock of text height
expect(bounds.stopy ).toBe( conf.height + conf.boxMargin + 2*conf.noteMargin +10);
});
- iit('it should handle one actor and a note to the right', function () {
+ it('it should handle one actor and a note to the right', function () {
sd.bounds.init();
var str = 'sequenceDiagram\n' +
'participant Alice\n' +
@@ -388,10 +388,10 @@ describe('when rendering a sequenceDiagram',function() {
sd.draw(str,'tst');
var bounds = sd.bounds.getBounds();
- expect(bounds.startx).toBe(conf.diagramMarginX);
- expect(bounds.starty).toBe(conf.diagramMarginY);
- expect(bounds.stopx ).toBe(conf.diagramMarginX + conf.width*2 + conf.actorMargin);
- expect(bounds.stopy ).toBe(conf.diagramMarginY + conf.messageMargin + conf.height);
+ expect(bounds.startx).toBe(0);
+ expect(bounds.starty).toBe(0);
+ expect(bounds.stopx ).toBe(conf.width*2 + conf.actorMargin);
+ expect(bounds.stopy ).toBe(0 + conf.messageMargin + conf.height);
});
@@ -405,10 +405,10 @@ describe('when rendering a sequenceDiagram',function() {
sd.draw(str,'tst');
var bounds = sd.bounds.getBounds();
- expect(bounds.startx).toBe(conf.diagramMarginX);
- expect(bounds.starty).toBe(conf.diagramMarginY);
- expect(bounds.stopx ).toBe(conf.diagramMarginX + conf.width*2 + conf.actorMargin);
- expect(bounds.stopy ).toBe(conf.diagramMarginY + 2*conf.messageMargin + conf.height);
+ expect(bounds.startx).toBe(0);
+ expect(bounds.starty).toBe(0);
+ expect(bounds.stopx ).toBe(0 + conf.width*2 + conf.actorMargin);
+ expect(bounds.stopy ).toBe(0 + 2*conf.messageMargin + conf.height);
});
@@ -424,13 +424,13 @@ describe('when rendering a sequenceDiagram',function() {
sd.draw(str,'tst');
var bounds = sd.bounds.getBounds();
- expect(bounds.startx).toBe(conf.diagramMarginX);
- expect(bounds.starty).toBe(conf.diagramMarginY);
+ expect(bounds.startx).toBe(0);
+ expect(bounds.starty).toBe(0);
- var expStopX = conf.diagramMarginX + conf.messageMargin +conf.width+ (conf.width/2) + conf.noteMargin + conf.width;
+ var expStopX = conf.actorMargin +conf.width+ (conf.width/2) + conf.noteMargin + conf.width;
expect(bounds.stopx ).toBe(expStopX);
- expect(bounds.stopy ).toBe(conf.diagramMarginY + 3*conf.messageMargin + conf.height);
+ expect(bounds.stopy ).toBe(2*conf.messageMargin + conf.height + conf.boxMargin);
});
it('it should draw two actors notes to the left', function () {
@@ -444,11 +444,11 @@ describe('when rendering a sequenceDiagram',function() {
sd.draw(str,'tst');
var bounds = sd.bounds.getBounds();
- expect(bounds.startx).toBe(conf.diagramMarginX - conf.width + conf.actorMargin);
- expect(bounds.starty).toBe(conf.diagramMarginY);
+ expect(bounds.startx).toBe( -(conf.width/2)-(conf.actorMargin/2));
+ expect(bounds.starty).toBe(0);
- expect(bounds.stopx ).toBe(conf.diagramMarginX + conf.width*2 + conf.actorMargin);
- expect(bounds.stopy ).toBe(conf.diagramMarginY + 3*conf.messageMargin + conf.height);
+ expect(bounds.stopx ).toBe( conf.width*2 + conf.actorMargin);
+ expect(bounds.stopy ).toBe( 2*conf.messageMargin + conf.height + conf.boxMargin);
});
@@ -464,11 +464,11 @@ describe('when rendering a sequenceDiagram',function() {
sd.draw(str,'tst');
var bounds = sd.bounds.getBounds();
- expect(bounds.startx).toBe(conf.diagramMarginX);
- expect(bounds.starty).toBe(conf.diagramMarginY);
+ expect(bounds.startx).toBe(0);
+ expect(bounds.starty).toBe(0);
- expect(bounds.stopx ).toBe(conf.diagramMarginX + conf.width*2 + conf.actorMargin);
- expect(bounds.stopy ).toBe(conf.diagramMarginY + 3*conf.messageMargin + conf.height + conf.boxMargin);
+ expect(bounds.stopx ).toBe(0 + conf.width*2 + conf.actorMargin);
+ expect(bounds.stopy ).toBe(0 + 2*conf.messageMargin + conf.height + conf.boxMargin);
});
});
\ No newline at end of file
diff --git a/src/diagrams/sequenceDiagram/sequenceRenderer.js b/src/diagrams/sequenceDiagram/sequenceRenderer.js
index 11a954e85..f5ae09eb4 100644
--- a/src/diagrams/sequenceDiagram/sequenceRenderer.js
+++ b/src/diagrams/sequenceDiagram/sequenceRenderer.js
@@ -46,7 +46,6 @@ exports.bounds = {
},
updateVal : function (obj,key,val,fun){
if(typeof obj[key] === 'undefined'){
- //console.log('Setting startx',startx);
obj[key] = val;
}else{
obj[key] = fun(val,obj[key]);
@@ -112,32 +111,17 @@ var drawNote = function(elem, startx, verticalPos, msg){
rect.y = verticalPos;
rect.width = conf.width;
- //svgDraw.drawRect(elem, rect);
-
var g = elem.append("g");
- //svgDraw.drawRect(g, rect);
+ var rectElem = svgDraw.drawRect(g, rect);
- var rectElem = g.append("rect");
- rectElem.attr("x", startx);
- rectElem.attr("y", verticalPos);
- rectElem.attr("fill", '#EDF2AE');
- rectElem.attr("stroke", '#666');
- rectElem.attr("width", conf.width);
- rectElem.attr("height", 100);
- rectElem.attr("rx", 0);
- rectElem.attr("ry", 0);
+ var textObj = svgDraw.getTextObj();
+ textObj.x = startx;
+ textObj.y = verticalPos+conf.noteMargin;
+ textObj.textMargin = conf.noteMargin;
+ textObj.dy = '1em';
+ textObj.text = msg.message;
- var textElem = g.append("text");
- textElem.attr("x", startx);
- textElem.attr("y", verticalPos+conf.noteMargin);
- textElem.style("text-anchor", "start");
-
- msg.message.split('
').forEach(function(rowText){
- var span = textElem.append("tspan");
- span.attr("x", startx +conf.noteMargin);
- span.attr("dy", '1em');
- span.text(rowText);
- });
+ var textElem = svgDraw.drawText(g,textObj);
var textHeight = textElem[0][0].getBBox().height;
exports.bounds.insert(startx, verticalPos, startx + conf.width, verticalPos + 2*conf.noteMargin + textHeight);
@@ -288,7 +272,7 @@ module.exports.drawActors = function(diagram, actors, actorKeys){
var key = actorKeys[i];
// Add some rendering data to the object
- actors[key].x = i*conf.messageMargin +i*conf.width;
+ actors[key].x = i*conf.actorMargin +i*conf.width;
actors[key].y = 0;
actors[key].width = conf.diagramMarginY;
actors[key].height = conf.diagramMarginY;
@@ -341,7 +325,6 @@ module.exports.draw = function (text, id) {
if(msg.placement !== 0){
// Right of
- console.log(exports.bounds.getVerticalPos());
drawNote(diagram, startx + (conf.width + conf.actorMargin)/2, exports.bounds.getVerticalPos(), msg);
}else{
diff --git a/src/diagrams/sequenceDiagram/svgDraw.js b/src/diagrams/sequenceDiagram/svgDraw.js
index f8ef05120..a237edc3f 100644
--- a/src/diagrams/sequenceDiagram/svgDraw.js
+++ b/src/diagrams/sequenceDiagram/svgDraw.js
@@ -2,10 +2,9 @@
* Created by knut on 14-12-20.
*/
exports.drawRect = function(elem , rectData){
- var g = elem.append("g");
- var rectElem = g.append("rect");
+ var rectElem = elem.append("rect");
rectElem.attr("x", rectData.x);
- rectElem.attr("y", rectData.x);
+ rectElem.attr("y", rectData.y);
rectElem.attr("fill", rectData.fill);
rectElem.attr("stroke", rectData.stroke);
rectElem.attr("width", rectData.width);
@@ -16,6 +15,36 @@ exports.drawRect = function(elem , rectData){
return rectElem;
};
+exports.drawText = function(elem , textData){
+ var textElem = elem.append('text');
+ textElem.attr('x', textData.x);
+ textElem.attr('y', textData.y);
+ textElem.style('text-anchor', 'start');
+
+ textData.text.split('
').forEach(function(rowText){
+ var span = textElem.append('tspan');
+ span.attr('x', textData.x +textData.textMargin);
+ span.attr('dy', textData.dy);
+ span.text(rowText);
+ });
+
+ return textElem;
+};
+
+exports.getTextObj = function(){
+ var rect = {
+ x: 0,
+ y: 0,
+ 'text-anchor': 'start',
+ style: '#666',
+ width: 100,
+ height: 100,
+ rx: 0,
+ ry: 0
+ };
+ return rect;
+};
+
exports.getNoteRect = function(){
var rect = {
x: 0,