summaryrefslogtreecommitdiffstats
path: root/framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java')
-rw-r--r--framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java183
1 files changed, 0 insertions, 183 deletions
diff --git a/framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java b/framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
deleted file mode 100644
index 86cf038b..00000000
--- a/framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/UiExtensionManager.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
- * Copyright 2015 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.impl;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.Service;
-import org.onosproject.mastership.MastershipService;
-import org.onosproject.ui.UiExtension;
-import org.onosproject.ui.UiExtensionService;
-import org.onosproject.ui.UiMessageHandlerFactory;
-import org.onosproject.ui.UiTopoOverlayFactory;
-import org.onosproject.ui.UiView;
-import org.onosproject.ui.UiViewHidden;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static com.google.common.collect.ImmutableList.of;
-import static java.util.stream.Collectors.toSet;
-import static org.onosproject.ui.UiView.Category.NETWORK;
-import static org.onosproject.ui.UiView.Category.PLATFORM;
-
-/**
- * Manages the user interface extensions.
- */
-@Component(immediate = true)
-@Service
-public class UiExtensionManager implements UiExtensionService, SpriteService {
-
- private static final ClassLoader CL =
- UiExtensionManager.class.getClassLoader();
- private static final String CORE = "core";
-
- private final Logger log = LoggerFactory.getLogger(getClass());
-
- // List of all extensions
- private final List<UiExtension> extensions = Lists.newArrayList();
-
- // Map of views to extensions
- private final Map<String, UiExtension> views = Maps.newHashMap();
-
- // Core views & core extension
- private final UiExtension core = createCoreExtension();
-
-
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected MastershipService mastershipService;
-
- // Creates core UI extension
- private UiExtension createCoreExtension() {
- List<UiView> coreViews = of(
- new UiView(PLATFORM, "app", "Applications", "nav_apps"),
- new UiView(PLATFORM, "settings", "Settings", "nav_settings"),
- new UiView(PLATFORM, "cluster", "Cluster Nodes", "nav_cluster"),
- new UiView(PLATFORM, "processor", "Packet Processors", "nav_processors"),
- new UiView(NETWORK, "topo", "Topology", "nav_topo"),
- new UiView(NETWORK, "device", "Devices", "nav_devs"),
- new UiViewHidden("flow"),
- new UiViewHidden("port"),
- new UiViewHidden("group"),
- new UiView(NETWORK, "link", "Links", "nav_links"),
- new UiView(NETWORK, "host", "Hosts", "nav_hosts"),
- new UiView(NETWORK, "intent", "Intents", "nav_intents"),
- //TODO add a new type of icon for tunnel
- new UiView(NETWORK, "tunnel", "Tunnels", "nav_links")
- );
-
- UiMessageHandlerFactory messageHandlerFactory =
- () -> ImmutableList.of(
- new TopologyViewMessageHandler(),
- new DeviceViewMessageHandler(),
- new LinkViewMessageHandler(),
- new HostViewMessageHandler(),
- new FlowViewMessageHandler(),
- new PortViewMessageHandler(),
- new GroupViewMessageHandler(),
- new IntentViewMessageHandler(),
- new ApplicationViewMessageHandler(),
- new SettingsViewMessageHandler(),
- new ClusterViewMessageHandler(),
- new ProcessorViewMessageHandler(),
- new TunnelViewMessageHandler()
- );
-
- UiTopoOverlayFactory topoOverlayFactory =
- () -> ImmutableList.of(
- new TrafficOverlay()
- );
-
- return new UiExtension.Builder(CL, coreViews)
- .messageHandlerFactory(messageHandlerFactory)
- .topoOverlayFactory(topoOverlayFactory)
- .resourcePath(CORE)
- .build();
- }
-
- @Activate
- public void activate() {
- register(core);
- log.info("Started");
- }
-
- @Deactivate
- public void deactivate() {
- UiWebSocketServlet.closeAll();
- unregister(core);
- log.info("Stopped");
- }
-
- @Override
- public synchronized void register(UiExtension extension) {
- if (!extensions.contains(extension)) {
- extensions.add(extension);
- for (UiView view : extension.views()) {
- views.put(view.id(), extension);
- }
- }
- }
-
- @Override
- public synchronized void unregister(UiExtension extension) {
- extensions.remove(extension);
- extension.views().stream()
- .map(UiView::id).collect(toSet()).forEach(views::remove);
- }
-
- @Override
- public synchronized List<UiExtension> getExtensions() {
- return ImmutableList.copyOf(extensions);
- }
-
- @Override
- public synchronized UiExtension getViewExtension(String viewId) {
- return views.get(viewId);
- }
-
- // =====================================================================
- // Provisional tracking of sprite definitions
-
- private final Map<String, JsonNode> sprites = Maps.newHashMap();
-
- @Override
- public Set<String> getNames() {
- return ImmutableSet.copyOf(sprites.keySet());
- }
-
- @Override
- public void put(String name, JsonNode spriteData) {
- log.info("Registered sprite definition [{}]", name);
- sprites.put(name, spriteData);
- }
-
- @Override
- public JsonNode get(String name) {
- return sprites.get(name);
- }
-
-}