ONOS-4971: Synthetic Link Data -- WIP, merge anyway

- created temp Topology2 View (topoX) to "process" and display topology data.
- made root layout parent of itself (just like /.. = /) to simplify layout hierarchy operations.
- added nodeType property to JSON rep of regions/devices/hosts.
- augmented peers to include devices.
- added skeleton topo2NavRegion event.

Change-Id: I8219125d7dfe33d211350ae27111a3d9de6eb4ca
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2ViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2ViewMessageHandler.java
index 5449d93..7795271 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2ViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2ViewMessageHandler.java
@@ -24,6 +24,7 @@
 import org.onosproject.ui.UiMessageHandler;
 import org.onosproject.ui.impl.UiWebSocket;
 import org.onosproject.ui.model.topo.UiClusterMember;
+import org.onosproject.ui.model.topo.UiNode;
 import org.onosproject.ui.model.topo.UiRegion;
 import org.onosproject.ui.model.topo.UiTopoLayout;
 import org.slf4j.Logger;
@@ -55,8 +56,9 @@
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     // === Inbound event identifiers
-    private static final String TOPO2_START = "topo2Start";
-    private static final String TOPO2_STOP = "topo2Stop";
+    private static final String START = "topo2Start";
+    private static final String NAV_REGION = "topo2navRegion";
+    private static final String STOP = "topo2Stop";
 
     // === Outbound event identifiers
     private static final String ALL_INSTANCES = "topo2AllInstances";
@@ -83,6 +85,7 @@
     protected Collection<RequestHandler> createRequestHandlers() {
         return ImmutableSet.of(
                 new Topo2Start(),
+                new Topo2NavRegion(),
                 new Topo2Stop()
         );
     }
@@ -92,7 +95,7 @@
 
     private final class Topo2Start extends RequestHandler {
         private Topo2Start() {
-            super(TOPO2_START);
+            super(START);
         }
 
         @Override
@@ -124,10 +127,10 @@
             Set<UiRegion> kids = topoSession.getSubRegions(currentLayout);
             sendMessage(CURRENT_REGION, t2json.region(region, kids));
 
-            // these are the regions that are siblings to this one
-            Set<UiRegion> peers = topoSession.getPeerRegions(currentLayout);
+            // these are the regions/devices that are siblings to this region
+            Set<UiNode> peers = topoSession.getPeerNodes(currentLayout);
             ObjectNode peersPayload = objectNode();
-            peersPayload.set("peers", t2json.closedRegions(peers));
+            peersPayload.set("peers", t2json.closedNodes(peers));
             sendMessage(PEER_REGIONS, peersPayload);
 
             // finally, tell the UI that we are done : TODO review / delete??
@@ -146,9 +149,22 @@
 
     }
 
+    private final class Topo2NavRegion extends RequestHandler {
+        private Topo2NavRegion() {
+            super(NAV_REGION);
+        }
+
+        @Override
+        public void process(long sid, ObjectNode payload) {
+            String dir = string(payload, "dir");
+            String rid = string(payload, "rid");
+            log.debug("NavRegion: dir={}, rid={}", dir, rid);
+        }
+    }
+
     private final class Topo2Stop extends RequestHandler {
         private Topo2Stop() {
-            super(TOPO2_STOP);
+            super(STOP);
         }
 
         @Override