Topo2 Fixed device positions

Change-Id: I10e61981000b427ff1ebf6ae0c35bfb2cdbb9c4b
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
index 8ff3bb6..11aef1d 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/topo/Topo2Jsonifier.java
@@ -36,6 +36,7 @@
 import org.onosproject.net.link.LinkService;
 import org.onosproject.net.statistic.StatisticService;
 import org.onosproject.net.topology.TopologyService;
+import org.onosproject.ui.JsonUtils;
 import org.onosproject.ui.model.topo.UiClusterMember;
 import org.onosproject.ui.model.topo.UiDevice;
 import org.onosproject.ui.model.topo.UiHost;
@@ -482,4 +483,18 @@
 
         return splitList;
     }
+
+    /**
+     * Stores the memento for an element.
+     * This method assumes the payload has an id String, memento ObjectNode
+     *
+     * @param payload event payload
+     */
+    void updateMeta(ObjectNode payload) {
+
+        String id = JsonUtils.string(payload, "id");
+        metaUi.put(id, JsonUtils.node(payload, "memento"));
+
+        log.debug("Storing metadata for {}", id);
+    }
 }
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 3513b79..4aa6fc9 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
@@ -60,6 +60,7 @@
     private static final String START = "topo2Start";
     private static final String NAV_REGION = "topo2navRegion";
     private static final String STOP = "topo2Stop";
+    private static final String UPDATE_META2 = "updateMeta2";
 
     // === Outbound event identifiers
     private static final String ALL_INSTANCES = "topo2AllInstances";
@@ -87,7 +88,8 @@
         return ImmutableSet.of(
                 new Topo2Start(),
                 new Topo2NavRegion(),
-                new Topo2Stop()
+                new Topo2Stop(),
+                new Topo2UpdateMeta()
         );
     }
 
@@ -196,4 +198,15 @@
         }
     }
 
+    private final class Topo2UpdateMeta extends RequestHandler {
+        private Topo2UpdateMeta() {
+            super(UPDATE_META2);
+        }
+
+        @Override
+        public void process(long sid, ObjectNode payload) {
+            t2json.updateMeta(payload);
+        }
+    }
+
 }