X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.district.network.ui%2Fsrc%2Forg%2Fsimantics%2Fdistrict%2Fnetwork%2Fui%2Finternal%2FActivator.java;h=9c56d543578213feaaf8b0e4160a804a295045db;hb=6f963a4a4ee67c7b346472e675ad71e6a0a85ba9;hp=977fe30c670ec13fd6d1c179faff03716c20befa;hpb=16ee01dc5a40981c58fd5b478b89552e5814e8bb;p=simantics%2Fdistrict.git diff --git a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/internal/Activator.java b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/internal/Activator.java index 977fe30c..9c56d543 100644 --- a/org.simantics.district.network.ui/src/org/simantics/district/network/ui/internal/Activator.java +++ b/org.simantics.district.network.ui/src/org/simantics/district/network/ui/internal/Activator.java @@ -1,25 +1,55 @@ package org.simantics.district.network.ui.internal; -import org.osgi.framework.BundleActivator; +import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; +import org.osgi.util.tracker.ServiceTracker; +import org.simantics.district.network.ui.breakdown.SubgraphProvider; +import org.simantics.district.route.RouteService; -public class Activator implements BundleActivator { +public class Activator extends AbstractUIPlugin { public static final String PLUGIN_ID = "org.simantics.district.network.ui"; + + private static Activator instance; private static BundleContext context; + private ServiceTracker subgraphProviderTracker; + private ServiceTracker routeServiceTracker; + @Override public void start(BundleContext context) throws Exception { + Activator.instance = this; Activator.context = context; + + subgraphProviderTracker = new ServiceTracker<>(context, SubgraphProvider.class.getName(), null); + subgraphProviderTracker.open(); + routeServiceTracker = new ServiceTracker<>(context, RouteService.class.getName(), null); + routeServiceTracker.open(); } @Override public void stop(BundleContext context) throws Exception { + subgraphProviderTracker.close(); + routeServiceTracker.close(); + + Activator.instance = null; Activator.context = null; } - + + public static Activator getInstance() { + return instance; + } + public static BundleContext getContext() { return context; } + public SubgraphProvider[] getSubgraphProviders() { + return subgraphProviderTracker.getServices(new SubgraphProvider[0]); + } + + public RouteService getRouteService() { + return routeServiceTracker.getService(); + } + }