blob: ec0e9dd297659090961ff93d19333d81f0485e30 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Sybase, Inc. 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:
* Sybase, Inc. - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.pagedesigner.jsf.ui;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import org.eclipse.core.runtime.ILog;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jst.jsf.common.ui.IFileFolderConstants;
import org.eclipse.jst.jsf.common.ui.JSFUICommonPlugin;
import org.eclipse.jst.jsf.common.ui.internal.guiutils.Alerts;
import org.eclipse.jst.jsf.common.ui.internal.logging.Logger;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
/**
* The main plugin class to be used in the desktop.
*/
public class JSFUIPlugin extends AbstractUIPlugin
{
//The shared instance.
private static JSFUIPlugin _plugin;
//Resource bundle.
private ResourceBundle _resourceBundle;
private URL _pluginBase;
private static Logger _logger;
private static Alerts _alerts;
/**
* The constructor.
*/
public JSFUIPlugin()
{
super();
_plugin = this;
try
{
_resourceBundle = ResourceBundle.getBundle("org.eclipse.jst.pagedesigner.jsf.ui.JSFUIPluginResources");
}
catch (MissingResourceException x)
{
_resourceBundle = null;
}
}
/**
* This method is called upon plug-in activation
*/
public void start(BundleContext context) throws Exception
{
super.start(context);
_alerts = new Alerts(this, _resourceBundle);
_logger = JSFUICommonPlugin.getLogger(JSFUIPlugin.class);
// _logger.setResourceBundle(_resourceBundle);
_pluginBase = getBundle().getEntry("/");
}
/**
* get the alerts objects associated with this plugin for alerting the user.
* @return the alerts
*/
public static Alerts getAlerts()
{
return _alerts;
}
/**
* This method is called when the plug-in is stopped
*/
public void stop(BundleContext context) throws Exception
{
super.stop(context);
}
/**
* Returns the shared instance.
* @return the default plugin
*/
public static JSFUIPlugin getDefault()
{
return _plugin;
}
/**
* Returns the string from the plugin's resource bundle,
* or 'key' if not found.
* @param key
* @return the resource string for key or 'key' if not found
*/
public static String getResourceString(String key)
{
ResourceBundle bundle = JSFUIPlugin.getDefault().getResourceBundle();
try
{
return (bundle != null) ? bundle.getString(key) : key;
}
catch (MissingResourceException e)
{
return key;
}
}
/**
* Returns the plugin's resource bundle,
* @return the resource bundle
*/
public ResourceBundle getResourceBundle()
{
return _resourceBundle;
}
/**
* Return an image from the path
* @param name
* @return Image
*/
public Image getImage(String name)
{
if (name == null)
{
return null;
}
ImageRegistry images = getImageRegistry();
Image image = images.get(name);
if (image == null)
{
try
{
ImageDescriptor id = ImageDescriptor.createFromURL(new URL(_pluginBase,
IFileFolderConstants.FOLDER_ICONS + "/" + name));
images.put(name, id);
image = images.get(name);
}
catch (MalformedURLException ee)
{
_logger.error("Error.JSFUIPlugin", name, ee); //$NON-NLS-2$
}
}
return image;
}
/**
* Log message and Throwable by severity.
*
* @param severity Severity (use appropriate IStatus constant).
* @param message Message to be logged.
* @param exception Throwable instance to be logged.
*/
public static void log(int severity, String message, Throwable exception) {
ILog log = getDefault().getLog();
IStatus status = new Status(
severity,
"org.eclipse.jst.pagedesigner.jsf.ui",
message,
exception);
log.log(status);
}
/**
* Log message by severity.
*
* @param severity Severity (use an IStatus constant).
* @param message Message to be logged.
*/
public static void log(int severity, String message) {
ILog log = getDefault().getLog();
IStatus status = new Status(
severity,
"org.eclipse.jst.pagedesigner.jsf.ui",
message);
log.log(status);
}
}