Converted UiSharedTopologyModel to be a @Service.

Change-Id: Idc8df1b9c0a52db01ac545567dacc0e1c770f84a
diff --git a/core/api/src/main/java/org/onosproject/net/region/RegionService.java b/core/api/src/main/java/org/onosproject/net/region/RegionService.java
index 7591e72..259c8b0 100644
--- a/core/api/src/main/java/org/onosproject/net/region/RegionService.java
+++ b/core/api/src/main/java/org/onosproject/net/region/RegionService.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.net.region;
 
+import org.onosproject.event.ListenerService;
 import org.onosproject.net.DeviceId;
 
 import java.util.Set;
@@ -23,7 +24,7 @@
 /**
  * Service for interacting with inventory of network control regions.
  */
-public interface RegionService {
+public interface RegionService extends ListenerService<RegionEvent, RegionListener> {
 
     /**
      * Returns set of all regions.
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiCluster.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiCluster.java
index 2ec0444..87afc56b 100644
--- a/core/api/src/main/java/org/onosproject/ui/model/topo/UiCluster.java
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiCluster.java
@@ -19,5 +19,5 @@
 /**
  * Encapsulates the notion of the ONOS cluster.
  */
-public class UiCluster {
+public class UiCluster extends UiElement {
 }
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiClusterMember.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiClusterMember.java
index 7a6ad02..71bba93 100644
--- a/core/api/src/main/java/org/onosproject/ui/model/topo/UiClusterMember.java
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiClusterMember.java
@@ -19,5 +19,5 @@
 /**
  * Represents an individual member of the cluster (ONOS instance).
  */
-public class UiClusterMember {
+public class UiClusterMember extends UiElement {
 }
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiElement.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiElement.java
new file mode 100644
index 0000000..4f2f9cb
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiElement.java
@@ -0,0 +1,23 @@
+/*
+ *  Copyright 2016 Open Networking Laboratory
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.onosproject.ui.model.topo;
+
+/**
+ * Abstract base class of all elements in the UI topology model.
+ */
+public class UiElement {
+}
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiLink.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiLink.java
index 15b3996..fe1842e 100644
--- a/core/api/src/main/java/org/onosproject/ui/model/topo/UiLink.java
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiLink.java
@@ -19,5 +19,5 @@
 /**
  * Represents a bi-directional link backed by two uni-directional links.
  */
-public class UiLink {
+public class UiLink extends UiElement {
 }
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiNode.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiNode.java
index 09b1791..53bdfde 100644
--- a/core/api/src/main/java/org/onosproject/ui/model/topo/UiNode.java
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiNode.java
@@ -19,5 +19,5 @@
 /**
  * Represents a node drawn on the topology view (region, device, host).
  */
-public abstract class UiNode {
+public abstract class UiNode extends UiElement {
 }
diff --git a/core/api/src/main/java/org/onosproject/ui/model/topo/UiTopology.java b/core/api/src/main/java/org/onosproject/ui/model/topo/UiTopology.java
index e54ac66..5f4195e 100644
--- a/core/api/src/main/java/org/onosproject/ui/model/topo/UiTopology.java
+++ b/core/api/src/main/java/org/onosproject/ui/model/topo/UiTopology.java
@@ -19,5 +19,5 @@
 /**
  * Represents the overall network topology.
  */
-public class UiTopology {
+public class UiTopology extends UiElement {
 }