ONOS-2328 GUI -- Enhanced Topology View to show multiple links individually between devices (1 - 4). 5 or more is a thick line.
Change-Id: Ie096086454fd8d1d5d40f09396681f9cba8597a1
diff --git a/web/gui/src/main/webapp/app/view/topo/topoLink.js b/web/gui/src/main/webapp/app/view/topo/topoLink.js
index 834f024..38f3a6c 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoLink.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoLink.js
@@ -104,16 +104,6 @@
return {x:x4, y:y4};
}
- // FIXME: x and y position calculated here, use link.position
- function lineSeg(d) {
- return {
- x1: d.source.x,
- y1: d.source.y,
- x2: d.target.x,
- y2: d.target.y
- };
- }
-
function lineHit(line, p, m) {
if (p.x < line.x1 && p.x < line.x2) return false;
if (p.x > line.x1 && p.x > line.x2) return false;
@@ -131,7 +121,7 @@
return; // skip hidden host links
}
- var line = lineSeg(d),
+ var line = d.position,
point = pdrop(line, mouse),
hit = lineHit(line, point, mouse),
dist;
@@ -201,24 +191,23 @@
td3.applyPortLabels(data, api.portLabelG());
}
- // FIXME: x and y position calculated here somewhere
function locatePortLabel(link, src) {
- var near = src ? 'source' : 'target',
- far = src ? 'target' : 'source',
- ln = link[near],
- lf = link[far],
- offset = 32;
+ var offset = 32,
+ pos = link.position,
+ nearX = src ? pos.x1 : pos.x2,
+ nearY = src ? pos.y1 : pos.y2,
+ farX = src ? pos.x2 : pos.x1,
+ farY = src ? pos.y2 : pos.y1;
function dist(x, y) { return Math.sqrt(x*x + y*y); }
- var dx = lf.x - ln.x,
- dy = lf.y - ln.y,
+ var dx = farX - nearX,
+ dy = farY - nearY,
k = offset / dist(dx, dy);
- return {x: k * dx + ln.x, y: k * dy + ln.y};
+ return {x: k * dx + nearX, y: k * dy + nearY};
}
-
function selectLink(ldata) {
// if the new link is same as old link, do nothing
if (selectedLink && ldata && selectedLink.key === ldata.key) return;