ONOS-1479 -- GUI - augmenting topology view for extensibility: WIP.
Change-Id: I11820a9ff8f446c0d10a0311cee5ce448c15f402
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
index 9a360bf..b88ee4f 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
@@ -214,6 +214,8 @@
new UpdateMeta(),
new EqMasters(),
+ // TODO: implement "showHighlights" event (replaces "showTraffic")
+
// TODO: migrate traffic related to separate app
new AddHostIntent(),
new AddMultiSourceIntent(),
@@ -965,6 +967,14 @@
@Override
public void processItems(List<Event> items) {
+ // Start-of-Debugging
+ long now = System.currentTimeMillis();
+ String me = this.toString();
+ String miniMe = me.replaceAll("^.*@", "me@");
+ log.debug("Time: {}; this: {}, processing items ({} events)",
+ now, miniMe, items.size());
+ // End-of-Debugging
+
try {
if (summaryRunning) {
msgSender.execute(() -> requestSummary(0));
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 8dbb111..9265e5f 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
@@ -72,7 +72,7 @@
import org.onosproject.ui.JsonUtils;
import org.onosproject.ui.UiConnection;
import org.onosproject.ui.UiMessageHandler;
-import org.onosproject.ui.topo.ButtonDescriptor;
+import org.onosproject.ui.topo.ButtonId;
import org.onosproject.ui.topo.PropertyPanel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -123,6 +123,8 @@
new ProviderId("core", "org.onosproject.core", true);
private static final String COMPACT = "%s/%s-%s/%s";
+ private static final String SHOW_HIGHLIGHTS = "showHighlights";
+
private static final double KILO = 1024;
private static final double MEGA = 1024 * KILO;
private static final double GIGA = 1024 * MEGA;
@@ -642,7 +644,7 @@
labelsN.add("");
}
}
- return JsonUtils.envelope("showTraffic", 0, payload);
+ return JsonUtils.envelope(SHOW_HIGHLIGHTS, 0, payload);
}
private Load getLinkLoad(Link link) {
@@ -679,7 +681,7 @@
addLinkFlows(link, paths, counts.get(link));
}
}
- return JsonUtils.envelope("showTraffic", 0, payload);
+ return JsonUtils.envelope(SHOW_HIGHLIGHTS, 0, payload);
}
private void addLinkFlows(Link link, ArrayNode paths, Integer count) {
@@ -723,7 +725,7 @@
((ArrayNode) pathNode.path("labels")).add(hasTraffic ? formatBytes(biLink.bytes) : "");
}
- return JsonUtils.envelope("showTraffic", 0, payload);
+ return JsonUtils.envelope(SHOW_HIGHLIGHTS, 0, payload);
}
// Classifies the link traffic according to the specified classes.
@@ -870,21 +872,13 @@
result.set("props", pnode);
ArrayNode buttons = arrayNode();
- for (ButtonDescriptor b : pp.buttons()) {
- buttons.add(json(b));
+ for (ButtonId b : pp.buttons()) {
+ buttons.add(b.id());
}
result.set("buttons", buttons);
return result;
}
- // translates the button descriptor into JSON
- private ObjectNode json(ButtonDescriptor bdesc) {
- return objectNode()
- .put("id", bdesc.id())
- .put("gid", bdesc.glyphId())
- .put("tt", bdesc.tooltip());
- }
-
// Produces canonical link key, i.e. one that will match link and its inverse.
static LinkKey canonicalLinkKey(Link link) {
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TrafficOverlay.java b/web/gui/src/main/java/org/onosproject/ui/impl/TrafficOverlay.java
index 3c09bb4..6eec92f 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TrafficOverlay.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TrafficOverlay.java
@@ -18,6 +18,8 @@
package org.onosproject.ui.impl;
import org.onosproject.ui.UiTopoOverlay;
+import org.onosproject.ui.topo.ButtonId;
+import org.onosproject.ui.topo.PropertyPanel;
/**
* Topology Overlay for network traffic.
@@ -25,12 +27,21 @@
public class TrafficOverlay extends UiTopoOverlay {
private static final String TRAFFIC_ID = "traffic";
- /**
- * Constructs the traffic overlay.
- */
+ private static final String SDF_ID = "showDeviceFlows";
+ private static final String SRT_ID = "showRelatedTraffic";
+
+ private static final ButtonId SHOW_DEVICE_FLOWS = new ButtonId(SDF_ID);
+ private static final ButtonId SHOW_RELATED_TRAFFIC = new ButtonId(SRT_ID);
+
+
public TrafficOverlay() {
super(TRAFFIC_ID);
}
- // TODO : override init(), activate(), deactivate(), destroy()
+ @Override
+ public void modifyDeviceDetails(PropertyPanel pp) {
+ pp.addButton(SHOW_DEVICE_FLOWS)
+ .addButton(SHOW_RELATED_TRAFFIC);
+ }
+
}