X-Git-Url: https://pwan.org/git/?p=tech-radar.git;a=blobdiff_plain;f=src%2Fgraphing%2Fradar.js;h=3bfd70030aecfb4c410b329aa81893191466a22f;hp=46c43ae495d5bdef7dc91e3c9704a30090d76208;hb=4e488d92209240532d080c10f46c6db9f0e42cf2;hpb=81d538513be2cb5eca002041a965dc2f08f0ad46 diff --git a/src/graphing/radar.js b/src/graphing/radar.js index 46c43ae..3bfd700 100644 --- a/src/graphing/radar.js +++ b/src/graphing/radar.js @@ -1,6 +1,7 @@ tr.graphing.Radar = function (size, radar, toolTipDescription) { - var self, fib, svg; + var self, fib, svg, texts; + texts = []; fib = new tr.util.Fib(); self = {}; @@ -68,7 +69,7 @@ tr.graphing.Radar = function (size, radar, toolTipDescription) { }); }; - 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, toolTipDescription) { 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,21 +121,38 @@ tr.graphing.Radar = function (size, radar, toolTipDescription) { 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, '') + .text(blip.name() + ((toolTipDescription && blip.description()) + ? ': ' + blip.description().replace(/(<([^>]+)>)/ig, '') : '' )) }); }); @@ -180,6 +198,10 @@ tr.graphing.Radar = function (size, radar, toolTipDescription) { plotBlips(cycles, quadrants.III, -1, 1, 'third'); plotBlips(cycles, quadrants.IV, 1, 1, 'fourth'); } + + texts.forEach(function (fn) { + fn(); + }); }; return self;