package org.simantics.district.network.ui.internal; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.util.tracker.ServiceTracker; import org.simantics.district.network.ui.breakdown.SubgraphProvider; public class Activator implements BundleActivator { public static final String PLUGIN_ID = "org.simantics.district.network.ui"; private static Activator instance; private static BundleContext context; private ServiceTracker subgraphProviderTracker; @Override public void start(BundleContext context) throws Exception { Activator.instance = this; Activator.context = context; subgraphProviderTracker = new ServiceTracker<>(context, SubgraphProvider.class.getName(), null); subgraphProviderTracker.open(); } @Override public void stop(BundleContext context) throws Exception { subgraphProviderTracker.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]); } }