GUI Topo -- added NodeBadge field to NodeHighlight.
- updated TopoJson to include device badge in JSON output.
Change-Id: I7fc0ec226c378a0395cd1eec765cb7bc867f9100
diff --git a/core/api/src/main/java/org/onosproject/ui/topo/DeviceHighlight.java b/core/api/src/main/java/org/onosproject/ui/topo/DeviceHighlight.java
index 0ce6592..0cc1547 100644
--- a/core/api/src/main/java/org/onosproject/ui/topo/DeviceHighlight.java
+++ b/core/api/src/main/java/org/onosproject/ui/topo/DeviceHighlight.java
@@ -17,16 +17,16 @@
package org.onosproject.ui.topo;
/**
- * Denotes the highlighting to apply to a device.
+ * Denotes the highlighting to be applied to a device.
*/
public class DeviceHighlight extends NodeHighlight {
+ /**
+ * Constructs a device highlight entity.
+ *
+ * @param deviceId the device identifier
+ */
public DeviceHighlight(String deviceId) {
super(TopoElementType.DEVICE, deviceId);
}
-
- // TODO: implement device highlighting:
- // - visual highlight
- // - badging
-
}
diff --git a/core/api/src/main/java/org/onosproject/ui/topo/NodeHighlight.java b/core/api/src/main/java/org/onosproject/ui/topo/NodeHighlight.java
index 61e10c5..6923508 100644
--- a/core/api/src/main/java/org/onosproject/ui/topo/NodeHighlight.java
+++ b/core/api/src/main/java/org/onosproject/ui/topo/NodeHighlight.java
@@ -20,7 +20,34 @@
* Parent class of {@link DeviceHighlight} and {@link HostHighlight}.
*/
public abstract class NodeHighlight extends AbstractHighlight {
+
+ private NodeBadge badge;
+
+ /**
+ * Constructs a node highlight entity.
+ *
+ * @param type element type
+ * @param elementId element identifier
+ */
public NodeHighlight(TopoElementType type, String elementId) {
super(type, elementId);
}
+
+ /**
+ * Sets the badge for this node.
+ *
+ * @param badge badge to apply
+ */
+ public void setBadge(NodeBadge badge) {
+ this.badge = badge;
+ }
+
+ /**
+ * Returns the badge for this node, if any.
+ *
+ * @return badge, or null
+ */
+ public NodeBadge badge() {
+ return badge;
+ }
}
diff --git a/core/api/src/main/java/org/onosproject/ui/topo/TopoJson.java b/core/api/src/main/java/org/onosproject/ui/topo/TopoJson.java
index 8df0316..d4990f3 100644
--- a/core/api/src/main/java/org/onosproject/ui/topo/TopoJson.java
+++ b/core/api/src/main/java/org/onosproject/ui/topo/TopoJson.java
@@ -37,6 +37,8 @@
static final String ID = "id";
static final String LABEL = "label";
static final String CSS = "css";
+ static final String BADGE = "badge";
+ static final String MSG = "msg";
static final String TITLE = "title";
static final String TYPE = "type";
@@ -103,6 +105,13 @@
if (dh.subdued()) {
n.put(SUBDUE, true);
}
+ NodeBadge badge = dh.badge();
+ if (badge != null) {
+ ObjectNode b = objectNode()
+ .put(TYPE, badge.type().code())
+ .put(MSG, badge.message());
+ n.set(BADGE, b);
+ }
return n;
}