ONOS-6258: UiTopo2Overlay et al.
- initial support for topo-2 highlighting.
Change-Id: I71c61b902047153ea420a8b2ecd89f6950daa4a9
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
index 00295c4..c302c6b 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/UiWebSocket.java
@@ -28,9 +28,12 @@
import org.onosproject.ui.UiExtensionService;
import org.onosproject.ui.UiMessageHandler;
import org.onosproject.ui.UiMessageHandlerFactory;
+import org.onosproject.ui.UiTopo2OverlayFactory;
import org.onosproject.ui.UiTopoLayoutService;
import org.onosproject.ui.UiTopoOverlayFactory;
import org.onosproject.ui.impl.topo.Topo2Jsonifier;
+import org.onosproject.ui.impl.topo.Topo2OverlayCache;
+import org.onosproject.ui.impl.topo.Topo2ViewMessageHandler;
import org.onosproject.ui.impl.topo.UiTopoSession;
import org.onosproject.ui.impl.topo.model.UiSharedTopologyModel;
import org.onosproject.ui.model.topo.UiTopoLayout;
@@ -50,7 +53,6 @@
private static final Logger log = LoggerFactory.getLogger(UiWebSocket.class);
private static final String EVENT = "event";
- private static final String SID = "sid";
private static final String PAYLOAD = "payload";
private static final String UNKNOWN = "unknown";
@@ -81,6 +83,7 @@
private Map<String, UiMessageHandler> handlers;
private TopoOverlayCache overlayCache;
+ private Topo2OverlayCache overlay2Cache;
/**
* Creates a new web-socket for serving data to the Web UI.
@@ -190,7 +193,7 @@
topoSession.destroy();
destroyHandlersAndOverlays();
log.info("GUI client disconnected [close-code={}, message={}]",
- closeCode, message);
+ closeCode, message);
}
@Override
@@ -244,6 +247,7 @@
log.debug("Creating handlers and overlays...");
handlers = new HashMap<>();
overlayCache = new TopoOverlayCache();
+ overlay2Cache = new Topo2OverlayCache();
UiExtensionService service = directory.get(UiExtensionService.class);
service.getExtensions().forEach(ext -> {
@@ -255,10 +259,13 @@
handler.messageTypes().forEach(type -> handlers.put(type, handler));
// need to inject the overlay cache into topology message handler
- // TODO: code for Topo2ViewMessageHandler required here
if (handler instanceof TopologyViewMessageHandler) {
((TopologyViewMessageHandler) handler).setOverlayCache(overlayCache);
}
+
+ if (handler instanceof Topo2ViewMessageHandler) {
+ ((Topo2ViewMessageHandler) handler).setOverlayCache(overlay2Cache);
+ }
} catch (Exception e) {
log.warn("Unable to setup handler {} due to", handler, e);
}
@@ -269,9 +276,14 @@
if (overlayFactory != null) {
overlayFactory.newOverlays().forEach(overlayCache::add);
}
+
+ UiTopo2OverlayFactory overlay2Factory = ext.topo2OverlayFactory();
+ if (overlay2Factory != null) {
+ overlay2Factory.newOverlays().forEach(overlay2Cache::add);
+ }
});
log.debug("#handlers = {}, #overlays = {}", handlers.size(),
- overlayCache.size());
+ overlayCache.size());
}
// Destroys message handlers.
@@ -298,7 +310,7 @@
.put(ID, node.id().toString())
.put(IP, node.ip().toString())
.put(GlyphConstants.UI_ATTACHED,
- node.equals(service.getLocalNode()));
+ node.equals(service.getLocalNode()));
instances.add(instance);
}