ONOS-6258: UiTopo2Overlay et al.
 - initial support for topo-2 highlighting.

Change-Id: I71c61b902047153ea420a8b2ecd89f6950daa4a9
diff --git a/apps/drivermatrix/src/main/java/org/onosproject/drivermatrix/DriverViewComponent.java b/apps/drivermatrix/src/main/java/org/onosproject/drivermatrix/DriverViewComponent.java
index b8d66de..6d8b214 100644
--- a/apps/drivermatrix/src/main/java/org/onosproject/drivermatrix/DriverViewComponent.java
+++ b/apps/drivermatrix/src/main/java/org/onosproject/drivermatrix/DriverViewComponent.java
@@ -24,6 +24,7 @@
 import org.onosproject.ui.UiExtension;
 import org.onosproject.ui.UiExtensionService;
 import org.onosproject.ui.UiMessageHandlerFactory;
+import org.onosproject.ui.UiTopo2OverlayFactory;
 import org.onosproject.ui.UiView;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,11 +57,22 @@
                     new DriverViewMessageHandler()
             );
 
+    // ++++ ====================================================== ++++
+    // ++++ Temporary code for testing the topology-2 overlay code ++++
+
+    private final UiTopo2OverlayFactory t2ovFactory =
+            () -> ImmutableList.of(
+                    new TesterTopo2Overlay()
+            );
+
+    // ++++ ====================================================== ++++
+
     // Application UI extension
     protected UiExtension extension =
             new UiExtension.Builder(getClass().getClassLoader(), uiViews)
                     .resourcePath(VIEW_ID)
                     .messageHandlerFactory(messageHandlerFactory)
+                    .topo2OverlayFactory(t2ovFactory)   // +++ TEMP +++
                     .build();
 
     @Activate
diff --git a/apps/drivermatrix/src/main/java/org/onosproject/drivermatrix/TesterTopo2Overlay.java b/apps/drivermatrix/src/main/java/org/onosproject/drivermatrix/TesterTopo2Overlay.java
new file mode 100644
index 0000000..df81adf
--- /dev/null
+++ b/apps/drivermatrix/src/main/java/org/onosproject/drivermatrix/TesterTopo2Overlay.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2017-present 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.drivermatrix;
+
+import org.onosproject.ui.UiTopo2Overlay;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A test implementation of UiTopo2Overlay.
+ */
+public class TesterTopo2Overlay extends UiTopo2Overlay {
+
+    private final Logger log = LoggerFactory.getLogger(getClass());
+
+    // NOTE: this must match the ID defined in dmatrixTopo2v.js
+    private static final String OVERLAY_ID = "dmatrix-test-overlay";
+    private static final String NAME = "Test D-Matrix Overlay";
+
+    /**
+     * Constructs the overlay.
+     */
+    public TesterTopo2Overlay() {
+        super(OVERLAY_ID, NAME);
+        log.debug("+++ CREATE +++ TesterTopo2Overlay");
+    }
+
+    @Override
+    public String glyphId() {
+        return "thatsNoMoon";
+    }
+
+    @Override
+    public void highlightingCallback() {
+        // TODO: figure out what API to use to set highlights....
+
+    }
+}