package org.marketcetera.photon.java.internal; import org.eclipse.jdt.internal.ui.text.JavaColorManager; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.marketcetera.util.misc.ClassVersion; import org.osgi.framework.BundleContext; /* $License$ */ /** * Manages the lifecycle for this plugin. * * @author <a href="mailto:will@marketcetera.com">Will Horn</a> * @version $Id: Activator.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: Activator.java 16154 2012-07-14 16:34:05Z colin $") public class Activator extends AbstractUIPlugin { private static volatile Activator sCurrent; private JavaColorManager mColorManager; @Override public void start(BundleContext context) throws Exception { synchronized (Activator.class) { super.start(context); sCurrent = this; } } @Override public void stop(BundleContext context) throws Exception { synchronized (Activator.class) { try { sCurrent = null; if (mColorManager != null) { mColorManager.dispose(); mColorManager = null; } } finally { super.stop(context); } } } /** * Returns the current instance * * @return the current instance */ static Activator getCurrent() { return sCurrent; } /** * Returns the Java editor color manager. * * @return the color manager */ public JavaColorManager getColorManager() { synchronized (Activator.class) { if (sCurrent == null) { /* * Bundle has been stopped. */ return null; } if (mColorManager == null) { mColorManager = new JavaColorManager(true); } return mColorManager; } } }