/* * Copyright 2010 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jbpm.eclipse; import java.util.MissingResourceException; import java.util.ResourceBundle; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.DebugException; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.ui.plugin.AbstractUIPlugin; import org.osgi.framework.BundleContext; /** * The main plugin class to be used in the desktop. * */ public class JBPMEclipsePlugin extends AbstractUIPlugin { public static final String PLUGIN_ID = "org.jbpm.eclipse"; // The shared instance. private static JBPMEclipsePlugin plugin; /** * The constructor. */ public JBPMEclipsePlugin() { super(); 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 JBPMEclipsePlugin getDefault() { return plugin; } /** * Returns the string from the plugin's resource bundle, * or 'key' if not found. */ public static String getResourceString(String key) { ResourceBundle bundle = JBPMEclipsePlugin.getDefault().getResourceBundle(); try { return (bundle != null) ? bundle.getString( key ) : key; } catch ( MissingResourceException e ) { return key; } } /** * Returns the plugin's resource bundle, */ public ResourceBundle getResourceBundle() { return null; } /** * Returns an image descriptor for the image file at the given * plug-in relative path. * Uses the plug ins image registry to "cache" it. * * @param path the path * @return the image descriptor */ public static ImageDescriptor getImageDescriptor(String path) { JBPMEclipsePlugin plugin = getDefault(); ImageRegistry reg = plugin.getImageRegistry(); ImageDescriptor des = reg.getDescriptor(path); if (des == null) { des = AbstractUIPlugin.imageDescriptorFromPlugin("org.jbpm.eclipse", path); reg.put(path, des); } return des; } public static String getUniqueIdentifier() { if (getDefault() == null) { return PLUGIN_ID; } return getDefault().getBundle().getSymbolicName(); } protected void initializeDefaultPreferences(IPreferenceStore store) { } public static void log(Throwable t) { Throwable top = t; if (t instanceof DebugException) { DebugException de = (DebugException) t; IStatus status = de.getStatus(); if (status.getException() != null) { top = status.getException(); } } log(new Status(IStatus.ERROR, getUniqueIdentifier(), 1033, "Internal error in jBPM Plugin: ", top ) ); } public static void log(IStatus status) { getDefault().getLog().log( status ); } }