content: /*******************************************************************************
   * Copyright (c) 2005, 2006 IBM Corporation and others.
   * All rights reserved. This program and the accompanying materials
   * are made available under the terms of the Eclipse Public License v1.0
   * which accompanies this distribution, and is available at
   * http://www.eclipse.org/legal/epl-v10.html
   *
   * Contributors:
   *     IBM Corporation - initial API and implementation
   *******************************************************************************/
  package org.eclipse.jet.ui;
  
  import org.eclipse.core.runtime.preferences.InstanceScope;
  import org.eclipse.jet.JET2Platform;
  import org.eclipse.jface.preference.IPreferenceStore;
  import org.eclipse.jface.resource.ImageDescriptor;
  import org.eclipse.ui.plugin.AbstractUIPlugin;
  import org.eclipse.ui.preferences.ScopedPreferenceStore;
  import org.osgi.framework.BundleContext;
  
  /**
   * The main plugin class to be used in the desktop.
   */
  public class Activator extends AbstractUIPlugin {
  
  	//The shared instance.
  	private static Activator plugin;
  	private IPreferenceStore preferenceStore;
  
  	/**
  	 * The constructor.
  	 */
  	public Activator() {
  		plugin = this;
  	}
  
  	/**
  	 * This method is called upon plug-in activation
  	 */
  	public void start(BundleContext context) throws Exception {
  		super.start(context);
  	}
  
  	/**
  	 * This method is called when the plug-in is stopped
  	 */
  	public void stop(BundleContext context) throws Exception {
  		super.stop(context);
  		plugin = null;
  	}
  
  	/**
  	 * Returns the shared instance.
  	 */
  	public static Activator getDefault() {
  		return plugin;
  	}
  
  	/**
  	 * Returns an image descriptor for the image file at the given
  	 * plug-in relative path.
  	 *
  	 * @param path the path
  	 * @return the image descriptor
  	 */
  	public static ImageDescriptor getImageDescriptor(String path) {
  		return AbstractUIPlugin.imageDescriptorFromPlugin(getDefault()
  				.getBundle().getSymbolicName(), path);
  	}
  	
  	/**
  	 * Return the prefence store shared by ui and core plugins.
  	 */
  	public IPreferenceStore getPreferenceStore() {
          // Create the preference store lazily.
          if (preferenceStore == null) {
              preferenceStore = new ScopedPreferenceStore(new InstanceScope(),JET2Platform.PLUGIN_ID);
  
          }
          return preferenceStore;
   	}
  }
  