From 6a9d498bf6a4370e2ff8a58204fee5ff6da08745 Mon Sep 17 00:00:00 2001 From: Jeff Avallone Date: Wed, 3 Dec 2014 18:46:48 -0500 Subject: [PATCH] Refactoring to not render connectors for a Regexp with one Match --- src/js/parser/javascript/regexp.js | 41 ++++++++++++++++-------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/src/js/parser/javascript/regexp.js b/src/js/parser/javascript/regexp.js index 17834eb..689c9b5 100644 --- a/src/js/parser/javascript/regexp.js +++ b/src/js/parser/javascript/regexp.js @@ -18,7 +18,8 @@ export default _.extend({}, Base, { positions, container = this.container, totalHeight, - verticalCenter; + verticalCenter, + includeLines = (this.matches().length > 1); _.invoke(this.matches(), 'position'); @@ -32,33 +33,35 @@ export default _.extend({}, Base, { totalHeight = positions.reduce((offset, pos) => { pos.content.transform(Snap.matrix() - .translate(center - pos.box.cx + 20, offset)); + .translate(center - pos.box.cx + (includeLines ? 20 : 0), offset)); return offset + pos.box.height + 5; }, 0).value() - 5; verticalCenter = totalHeight / 2 - positions.each(pos => { - var box = pos.content.getBBox(), - direction = box.cy > verticalCenter ? 1 : -1, - pathStr, - path; + if (includeLines) { + positions.each(pos => { + var box = pos.content.getBBox(), + direction = box.cy > verticalCenter ? 1 : -1, + pathStr, + path; - pathStr = (verticalCenter === box.cy) ? - 'M0,{center}H{side}' : - 'M0,{center}q10,0 10,{d}V{target}q0,{d} 10,{d}H{side}'; + pathStr = (verticalCenter === box.cy) ? + 'M0,{center}H{side}' : + 'M0,{center}q10,0 10,{d}V{target}q0,{d} 10,{d}H{side}'; - path = container.path(Snap.format(pathStr, { - center: verticalCenter, - target: box.cy - 10 * direction, - side: box.x, - d: 10 * direction - })); + path = container.path(Snap.format(pathStr, { + center: verticalCenter, + target: box.cy - 10 * direction, + side: box.x, + d: 10 * direction + })); - path.clone().transform(Snap.matrix() - .scale(-1, 1, center + 20, 0)); - }); + path.clone().transform(Snap.matrix() + .scale(-1, 1, center + 20, 0)); + }); + } }, matches() {