]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.district.route.ui/src/org/simantics/district/route/ui/internal/Activator.java
Merge "Initial version of the district network Routes view."
[simantics/district.git] / org.simantics.district.route.ui / src / org / simantics / district / route / ui / internal / Activator.java
diff --git a/org.simantics.district.route.ui/src/org/simantics/district/route/ui/internal/Activator.java b/org.simantics.district.route.ui/src/org/simantics/district/route/ui/internal/Activator.java
new file mode 100644 (file)
index 0000000..c432508
--- /dev/null
@@ -0,0 +1,60 @@
+package org.simantics.district.route.ui.internal;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+import org.osgi.util.tracker.ServiceTracker;
+import org.simantics.district.route.RouteService;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+    // The plug-in ID
+    public static final String PLUGIN_ID = "org.simantics.district.route.ui"; //$NON-NLS-1$
+
+    // The shared instance
+    private static Activator plugin;
+
+    private ServiceTracker<RouteService, ?> routeServiceTracker;
+
+    /*
+     * (non-Javadoc)
+     * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+     */
+    public void start(BundleContext context) throws Exception {
+        super.start(context);
+        plugin = this;
+
+        // create a tracker and track the service
+        routeServiceTracker = new ServiceTracker<>(context, RouteService.class.getName(), null);
+        routeServiceTracker.open();
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+     */
+    public void stop(BundleContext context) throws Exception {
+        // close the service tracker
+        routeServiceTracker.close();
+        routeServiceTracker = null;
+
+        plugin = null;
+        super.stop(context);
+    }
+
+    /**
+     * Returns the shared instance
+     *
+     * @return the shared instance
+     */
+    public static Activator getDefault() {
+        return plugin;
+    }
+
+    public RouteService getRouteService() {
+        return (RouteService) routeServiceTracker.getService();
+    }
+
+}