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=5b90436d8860b56af851b00eddfb2dcb7ba88dd5;hp=1e7a4d512fae8ba7216410f91c6adec6578416f9;hpb=a2e0d3dfba1245a13dcc8aa23c0188926e2a03c5;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 1e7a4d51..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,18 +1,55 @@ -package org.simantics.district.network.ui.internal; - -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; - -public class Activator implements BundleActivator { - - @Override - public void start(BundleContext context) throws Exception { - - } - - @Override - public void stop(BundleContext context) throws Exception { - - } - -} +package org.simantics.district.network.ui.internal; + +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 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(); + } + +}