/***************************************************************************** * Copyright (c) 2010 CEA LIST. * * 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: * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation *****************************************************************************/ package org.eclipse.papyrus.uml.properties; import org.eclipse.core.runtime.IPath; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.papyrus.infra.core.log.LogHelper; import org.eclipse.papyrus.uml.properties.extensionpoint.LanguageEditorExtensionPoint; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; /** * 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.eclipse.papyrus.uml.properties"; //$NON-NLS-1$ // The shared instance private static Activator plugin; /** The plug-in's logger */ public static LogHelper log; /** * The constructor */ public Activator() { } /* * (non-Javadoc) * * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) */ @Override public void start(BundleContext context) throws Exception { super.start(context); plugin = this; log = new LogHelper(plugin); new LanguageEditorExtensionPoint(); } /* * (non-Javadoc) * * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) */ @Override public void stop(BundleContext context) throws Exception { plugin = null; super.stop(context); } /** * Returns the shared instance * * @return the shared instance */ public static Activator getDefault() { return plugin; } /** * @return The IPath representing the plugin's preferences folder location */ public IPath getPreferencesPath() { return getStateLocation(); } /** * Returns the image at the given path from this plugin * * @param path * the path of the image to be displayed * @return The Image at the given location, or null if it couldn't be found */ public Image getImage(String path) { return getImage(PLUGIN_ID, path); } /** * Returns the image from the given image descriptor * * @param pluginId * The plugin in which the image is located * @param path * The path to the image from the plugin * @return * The Image at the given location, or null if it couldn't be found */ public Image getImage(String pluginId, String path) { final ImageRegistry registry = getImageRegistry(); String key = pluginId + "/" + path; //$NON-NLS-1$ Image image = registry.get(key); if(image == null) { registry.put(key, AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, path)); image = registry.get(key); } return image; } }