Added UiTopoLayoutId network config to BasicNetworkConfigs.

Change-Id: I3ec54a883e0b79f3cce5e9aff2f7ae7d56cc593e
diff --git a/core/api/src/main/java/org/onosproject/net/config/basics/SubjectFactories.java b/core/api/src/main/java/org/onosproject/net/config/basics/SubjectFactories.java
index 104dfe5..06287d9 100644
--- a/core/api/src/main/java/org/onosproject/net/config/basics/SubjectFactories.java
+++ b/core/api/src/main/java/org/onosproject/net/config/basics/SubjectFactories.java
@@ -23,6 +23,7 @@
 import org.onosproject.net.LinkKey;
 import org.onosproject.net.config.SubjectFactory;
 import org.onosproject.net.region.RegionId;
+import org.onosproject.ui.model.topo.UiTopoLayoutId;
 
 import static com.google.common.base.Preconditions.checkArgument;
 
@@ -123,6 +124,17 @@
             };
 
     /**
+     * UI Topology layout ID subject factory.
+     */
+    public static final SubjectFactory<UiTopoLayoutId> LAYOUT_SUBJECT_FACTORY =
+            new SubjectFactory<UiTopoLayoutId>(UiTopoLayoutId.class, "layouts") {
+                @Override
+                public UiTopoLayoutId createSubject(String key) {
+                    return UiTopoLayoutId.layoutId(key);
+                }
+            };
+
+    /**
      * Provides reference to the core service, which is required for
      * application subject factory.
      *
diff --git a/core/net/src/main/java/org/onosproject/net/config/impl/BasicNetworkConfigs.java b/core/net/src/main/java/org/onosproject/net/config/impl/BasicNetworkConfigs.java
index 9373133..0bd8b91 100644
--- a/core/net/src/main/java/org/onosproject/net/config/impl/BasicNetworkConfigs.java
+++ b/core/net/src/main/java/org/onosproject/net/config/impl/BasicNetworkConfigs.java
@@ -35,8 +35,10 @@
 import org.onosproject.net.config.basics.BasicHostConfig;
 import org.onosproject.net.config.basics.BasicLinkConfig;
 import org.onosproject.net.config.basics.BasicRegionConfig;
+import org.onosproject.net.config.basics.BasicUiTopoLayoutConfig;
 import org.onosproject.net.config.basics.SubjectFactories;
 import org.onosproject.net.region.RegionId;
+import org.onosproject.ui.model.topo.UiTopoLayoutId;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -45,6 +47,7 @@
 import static org.onosproject.net.config.basics.SubjectFactories.CONNECT_POINT_SUBJECT_FACTORY;
 import static org.onosproject.net.config.basics.SubjectFactories.DEVICE_SUBJECT_FACTORY;
 import static org.onosproject.net.config.basics.SubjectFactories.HOST_SUBJECT_FACTORY;
+import static org.onosproject.net.config.basics.SubjectFactories.LAYOUT_SUBJECT_FACTORY;
 import static org.onosproject.net.config.basics.SubjectFactories.LINK_SUBJECT_FACTORY;
 import static org.onosproject.net.config.basics.SubjectFactories.REGION_SUBJECT_FACTORY;
 
@@ -101,6 +104,14 @@
                 public BasicRegionConfig createConfig() {
                     return new BasicRegionConfig();
                 }
+            },
+            new ConfigFactory<UiTopoLayoutId, BasicUiTopoLayoutConfig>(LAYOUT_SUBJECT_FACTORY,
+                    BasicUiTopoLayoutConfig.class,
+                    BASIC) {
+                @Override
+                public BasicUiTopoLayoutConfig createConfig() {
+                    return new BasicUiTopoLayoutConfig();
+                }
             }
     );
 
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
index aac942f..ced6954 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
@@ -218,6 +218,7 @@
 import org.onosproject.store.service.Task;
 import org.onosproject.store.service.Versioned;
 import org.onosproject.store.service.WorkQueueStats;
+import org.onosproject.ui.model.topo.UiTopoLayoutId;
 
 import java.net.URI;
 import java.time.Duration;
@@ -513,6 +514,7 @@
             .register(Region.Type.class)
             .register(RegionId.class)
             .register(DefaultRegion.class)
+            .register(UiTopoLayoutId.class)
             .register(ExtensionSelectorType.class)
             .register(ExtensionTreatmentType.class)
             .register(TransactionId.class)
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 69850ff..2815d80 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
@@ -59,7 +59,7 @@
     private static final String USER = "user";
     private static final String BOOTSTRAP = "bootstrap";
 
-    public static final String TOPO = "topo";
+    private static final String TOPO = "topo";
 
     private static final long MAX_AGE_MS = 30_000;