Added support for grid coordinates in the legacy topology view.
Change-Id: I48533f24eded919673af92a59cc5e2edefef46b3
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
index 789c252..8b70c43 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandlerBase.java
@@ -308,6 +308,7 @@
payload.set("labels", labels("", name, device.id().toString()));
payload.set("props", props(device.annotations()));
addGeoLocation(device, payload);
+ addGridLocation(device, payload);
addMetaUi(device.id().toString(), payload);
String type = DEVICE_EVENT.get(event.type());
@@ -354,6 +355,7 @@
payload.set("labels", labels(nameForHost(host), ip, host.mac().toString(), ""));
payload.set("props", props(host.annotations()));
addGeoLocation(host, payload);
+ addGridLocation(host, payload);
addMetaUi(host.id().toString(), payload);
String type = HOST_EVENT.get(event.type());
@@ -428,6 +430,30 @@
}
}
+ // Adds a grid location JSON to the specified payload object.
+ private void addGridLocation(Annotated annotated, ObjectNode payload) {
+ Annotations annotations = annotated.annotations();
+ if (annotations == null) {
+ return;
+ }
+
+ String xs = annotations.value(AnnotationKeys.GRID_X);
+ String ys = annotations.value(AnnotationKeys.GRID_Y);
+ if (xs != null && ys != null) {
+ try {
+ double x = Double.parseDouble(xs);
+ double y = Double.parseDouble(ys);
+ ObjectNode loc = objectNode()
+ .put("locType", "grid")
+ .put("latOrY", y)
+ .put("longOrX", x);
+ payload.set("location", loc);
+ } catch (NumberFormatException e) {
+ log.warn("Invalid grid data: x={}, y={}", xs, ys);
+ }
+ }
+ }
+
// Updates meta UI information for the specified object.
protected void updateMetaUi(ObjectNode payload) {
metaUi.put(JsonUtils.string(payload, "id"),