Topo2: Fixed incorrect link highlighting and port locations
JIRA Tasks; ONOS-6276

Change-Id: Id9affd2cdc1bfa335654111655a413abad63ffc7
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Layout.js b/web/gui/src/main/webapp/app/view/topo2/topo2Layout.js
index fe30587..15c5463 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Layout.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Layout.js
@@ -169,14 +169,11 @@
 
                         t2zs.panAndZoom([x, y], scale, 1000);
                     },
+                    setLinkPosition: function (link) {
+                        link.setPosition.bind(link)();
+                    },
                     tick: function () {
 
-                        this.link
-                            .attr("x1", function (d) { return d.get('source').x; })
-                            .attr("y1", function (d) { return d.get('source').y; })
-                            .attr("x2", function (d) { return d.get('target').x; })
-                            .attr("y2", function (d) { return d.get('target').y; });
-
                         this.node
                             .attr({
                                 transform: function (d) {
@@ -185,6 +182,13 @@
                                     return sus.translate(dx, dy);
                                 }
                             });
+
+                        this.link
+                            .each(this.setLinkPosition)
+                            .attr("x1", function (d) { return d.get('position').x1; })
+                            .attr("y1", function (d) { return d.get('position').y1; })
+                            .attr("x2", function (d) { return d.get('position').x2; })
+                            .attr("y2", function (d) { return d.get('position').y2; });
                     },
 
                     start: function () {