X-Git-Url: https://pwan.org/git/?a=blobdiff_plain;f=src%2Fgraphing%2Fradar.js;h=3bfd70030aecfb4c410b329aa81893191466a22f;hb=4e488d92209240532d080c10f46c6db9f0e42cf2;hp=202d1ca80610f7671d1ba90ebdcefccf78d338fa;hpb=42530c5418df2e9a47bd8389921114d6315bea92;p=tech-radar.git diff --git a/src/graphing/radar.js b/src/graphing/radar.js index 202d1ca..3bfd700 100644 --- a/src/graphing/radar.js +++ b/src/graphing/radar.js @@ -1,6 +1,7 @@ -tr.graphing.Radar = function (size, radar) { - var self, fib, svg; +tr.graphing.Radar = function (size, radar, toolTipDescription) { + var self, fib, svg, texts; + texts = []; fib = new tr.util.Fib(); self = {}; @@ -30,7 +31,7 @@ tr.graphing.Radar = function (size, radar) { function getRadius(cycles, i) { var sequence = fib.sequence(cycles.length); - var total = fib.sum(cycles.length + 1); + var total = fib.sum(cycles.length); var sum = fib.sum(i); return center() - (center() * sum / total); @@ -68,7 +69,7 @@ tr.graphing.Radar = function (size, radar) { }); }; - function triangle(x, y, cssClass) { + function triangle(x, y, cssClass, group) { var tsize, top, left, right, bottom, points; tsize = 13 @@ -79,14 +80,14 @@ tr.graphing.Radar = function (size, radar) { points = x + 1 + ',' + top + ' ' + left + ',' + bottom + ' ' + right + ',' + bottom; - return svg.append('polygon') + return (group || svg).append('polygon') .attr('points', points) .attr('class', cssClass) .attr('stroke-width', 1.5); } - function circle(x, y, cssClass) { - svg.append('circle') + function circle(x, y, cssClass, group) { + return (group || svg).append('circle') .attr('cx', x) .attr('cy', y) .attr('class', cssClass) @@ -120,18 +121,39 @@ tr.graphing.Radar = function (size, radar) { var x = center() + radius * Math.cos(angleInRad) * adjustX; var y = center() + radius * Math.sin(angleInRad) * adjustY; + var group = svg.append('g').attr('class', 'blip-group'); + if (blip.isNew()) { - triangle(x, y, cssClass); + triangle(x, y, cssClass, group); } else { - circle(x, y, cssClass); + circle(x, y, cssClass, group); } - svg.append('text') + texts.push(function () { + var name; + + name = svg.append('text') + .attr('x', x + 15) + .attr('y', y + 4) + .attr('class', 'blip-name') + .attr('text-anchor', 'left') + .text(blip.name()) + + group + .on('mouseover', function () { name.style('display', 'block'); }) + .on('mouseout', function () { name.style('display', 'none'); }); + }); + + group.append('text') .attr('x', x) .attr('y', y + 4) .attr('class', 'blip-text') .attr('text-anchor', 'middle') .text(blip.number()) + .append("svg:title") + .text(blip.name() + ((toolTipDescription && blip.description()) + ? ': ' + blip.description().replace(/(<([^>]+)>)/ig, '') + : '' )) }); }); }; @@ -176,6 +198,10 @@ tr.graphing.Radar = function (size, radar) { plotBlips(cycles, quadrants.III, -1, 1, 'third'); plotBlips(cycles, quadrants.IV, 1, 1, 'fourth'); } + + texts.forEach(function (fn) { + fn(); + }); }; return self;