blob: d3f433b06347f2553d1b0b77d6de67e638134727 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 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
*******************************************************************************/
/*
* Created on Jan 28, 2004
*
* To change the template for this generated file go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
package org.eclipse.jst.j2ee.internal.webservice.plugin;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.MessageFormat;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.wst.common.frameworks.internal.WTPPlugin;
import org.osgi.framework.BundleContext;
/**
* @author jlanuti
*
* To change the template for this generated type comment go to Window - Preferences - Java - Code
* Generation - Code and Comments
*/
public class WebServicePlugin extends WTPPlugin implements ResourceLocator {
public static final String PLUGIN_ID = "org.eclipse.jst.j2ee.internal.internal.webservice"; //$NON-NLS-1$
/**
* The reference to the singleton instance of this plugin.
*/
private static WebServicePlugin singleton;
/**
* @param descriptor
*/
public WebServicePlugin() {
super();
if (singleton == null)
singleton = this;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.wst.common.frameworks.internal.WTPPlugin#getPluginID()
*/
public String getPluginID() {
return PLUGIN_ID;
}
/**
* Returns an image descriptor for the named resource as relative to the plugin install
* location.
*
* @return An image descriptor, possibly null.
*/
public static ImageDescriptor getImageDescriptor(String name) {
try {
URL installURL = getInstance().getBundle().getEntry("/"); //$NON-NLS-1$
URL imageURL = new URL(installURL, name);
return ImageDescriptor.createFromURL(imageURL);
} catch (MalformedURLException e) {
return null;
}
}
/**
* Returns the singleton instance of this plugin. Equivalent to calling
* (ATKUIPlugin)Platform.getPlugin("com.ibm.etools.webservice.atk.ui");
*
* @return The ATKUIPlugin singleton.
*/
static public WebServicePlugin getInstance() {
return singleton;
}
/**
* Returns the message string identified by the given key from the plugin.properties file for
* the appropriate locale.
*
* @param key
* The message key string prefixed by a "%" symbol. That is, the string passed in
* must be of the form "%KEY" where the plugin.properties file contains a line of the
* form: "KEY = value".
* @return The locale-specific message.
*/
public static String getMessage(String key) {
return Platform.getResourceString(getInstance().getBundle(), key);
}
/**
* Returns the message string identified by the given key from the plugin.properties file for
* the appropriate locale. Substitution sequences in the message string are replaced by the
* given array of substitution objects (which are most frequently strings). See
* java.text.MessageFormat for further details on substitution.
*
* @param key
* The message key string prefixed by a "%" symbol. That is, the string passed in
* must be of the form "%KEY" where the plugin.properties file contains a line of the
* form: "KEY = value".
* @param args
* The substitution values for the message as required by the message in
* plugin.properties and by the rules of class java.text.MessageFormat.
* @return The locale-specific message.
*/
public static String getMessage(String key, Object[] args) {
return MessageFormat.format(getMessage(key), args);
}
/**
* Returns the URL from which all resources are based.
*
* @return the URL from which all resources are based.
*/
public URL getBaseURL() {
String installURL = getPluginInstallLocation();
if (installURL != null) {
try {
StringBuffer sb = new StringBuffer(installURL);
sb.append("plugin.properties"); //$NON-NLS-1$
return new URL(sb.toString());
} catch (MalformedURLException e) {
//Ignore
}
}
return null;
}
/**
* Returns the description that can be used to create the image resource associated with the
* key. The description will typically be in the form of a URL to the image data. Creation of an
* actual image depends on the GUI environment; within Eclipse,
* org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry can be used.
*
* @param key
* the key of the image resource.
* @return the description on the image resource.
*/
public Object getImage(String key) {
ImageDescriptor imageDescriptor = getImageDescriptor(key);
if (imageDescriptor != null)
return imageDescriptor.createImage();
return null;
}
public String getPluginStateLocation() {
return Platform.getPluginStateLocation(this).addTrailingSeparator().toOSString();
}
public String getPluginInstallLocation() {
try {
return Platform.resolve(getInstance().getBundle().getEntry("/")).getFile(); //$NON-NLS-1$
} catch (Throwable t) {
return null;
}
}
/**
* Returns the string resource associated with the key.
*
* @param key
* the key of the string resource.
* @return the string resource associated with the key.
*/
public String getString(String key) {
return getMessage(key);
}
/**
* Returns a string resource associated with the key, and peforms substitutions.
*
* @param key
* the key of the string.
* @param substitutions
* the message substitutions.
* @return a string resource associated with the key.
* @see #getString(String)
* @see MessageFormat#format(String, Object[])
*/
public String getString(String key, Object[] substitutions) {
return getMessage(key, substitutions);
}
/**
* Called once by the platform when this plugin is first loaded.
*
* @throws CoreException
* If this plugin fails to start.
*/
public void start(BundleContext context) throws Exception {
super.start(context);
}
/**
* Called once by the platform when this plugin is unloaded.
*
* @throws CoreException
* If this plugin fails to shutdown.
*/
public void stop(BundleContext context) throws Exception {
super.stop(context);
}
public String getString(String key, boolean translate) {
// TODO For now... translate not supported
return getString(key);
}
public String getString(String key, Object[] substitutions, boolean translate) {
// TODO For now... translate not supported
return getString(key,substitutions);
}
/**
* Record an error against this plugin's log.
*
* @param aCode
* @param aMessage
* @param anException
*/
public static void logError(int aCode, String aMessage,
Throwable anException) {
getInstance().getLog().log(
createErrorStatus(aCode, aMessage, anException));
}
/**
*
* Record a message against this plugin's log.
*
* @param severity
* @param aCode
* @param aMessage
* @param exception
*/
public static void log(int severity, int aCode, String aMessage,
Throwable exception) {
log(createStatus(severity, aCode, aMessage, exception));
}
/**
*
* Record a status against this plugin's log.
*
* @param aStatus
*/
public static void log(IStatus aStatus) {
getInstance().getLog().log(aStatus);
}
/**
* Create a status associated with this plugin.
*
* @param severity
* @param aCode
* @param aMessage
* @param exception
* @return A status configured with this plugin's id and the given parameters.
*/
public static IStatus createStatus(int severity, int aCode,
String aMessage, Throwable exception) {
return new Status(severity, PLUGIN_ID, aCode,
aMessage != null ? aMessage : "No message.", exception); //$NON-NLS-1$
}
/**
*
* @param aCode
* @param aMessage
* @param exception
* @return A status configured with this plugin's id and the given parameters.
*/
public static IStatus createErrorStatus(int aCode, String aMessage,
Throwable exception) {
return createStatus(IStatus.ERROR, aCode, aMessage, exception);
}
}