001    /*
002     * file ScoutPlugin.java
003     * 
004     * Licensed Materials - Property of IBM
005     * Restricted Materials of IBM - you are allowed to copy, modify and 
006     * redistribute this file as part of any program that interfaces with 
007     * IBM Rational CM API.
008     *
009     * com.ibm.rational.teamapi.scout.ScoutPlugin
010     *
011     * © Copyright IBM Corporation 2004, 2008.  All Rights Reserved.
012     * Note to U.S. Government Users Restricted Rights:  Use, duplication or 
013     * disclosure restricted by GSA ADP  Schedule Contract with IBM Corp.
014     */
015    package com.ibm.rational.teamapi.scout;
016    
017    import java.util.MissingResourceException;
018    import java.util.ResourceBundle;
019    
020    import org.eclipse.core.resources.IWorkspace;
021    import org.eclipse.core.resources.ResourcesPlugin;
022    import org.eclipse.jface.resource.ImageDescriptor;
023    import org.eclipse.ui.plugin.AbstractUIPlugin;
024    
025    /**
026     * The main plugin class to be used in the Eclipse desktop.
027     */
028    public class ScoutPlugin extends AbstractUIPlugin {
029            //The shared instance.
030            private static ScoutPlugin plugin;
031            //Resource bundle.
032            private ResourceBundle resourceBundle;
033            
034            /**
035             * The constructor.
036             */
037            public ScoutPlugin() {
038                    super();
039                    plugin = this;
040                    try {
041                            resourceBundle = ResourceBundle
042                    .getBundle("com.ibm.rational.teamapi.scout.ScoutPluginResources");
043                    } catch (MissingResourceException x) {
044                            resourceBundle = null;
045                    }
046            }
047    
048            /**
049             * Returns the shared instance.
050             */
051            public static ScoutPlugin getDefault() {
052                    return plugin;
053            }
054    
055        /**
056         * Returns the workspace instance.
057         */
058        public static IWorkspace getWorkspace() {
059            return ResourcesPlugin.getWorkspace();
060        }
061    
062            /**
063             * Returns the string from the plugin's resource bundle,
064             * or 'key' if not found.
065             */
066            public static String getResourceString(String key) {
067                    ResourceBundle bundle = ScoutPlugin.getDefault().getResourceBundle();
068                    try {
069                            return (bundle != null) ? bundle.getString(key) : key;
070                    } catch (MissingResourceException e) {
071                            return key;
072                    }
073            }
074    
075            /**
076             * Returns the plugin's resource bundle,
077             */
078            public ResourceBundle getResourceBundle() {
079                    return resourceBundle;
080            }
081    
082        /**
083         * Returns the image descriptor for a named icon.
084         * @param name The simple file name for the icon; e.g. "foldergif"
085         * @return An ImageDescriptor for the icon; will not be null, but may be
086         * the descriptor for the "missing image" if the requested icon is not found. 
087         */
088        public static ImageDescriptor getImageDescriptor(String name) {
089            ImageDescriptor result = 
090                imageDescriptorFromPlugin("com.ibm.rational.teamapi.scout", 
091                                          "icons/"+name);
092            
093            if (result == null)
094                result = ImageDescriptor.getMissingImageDescriptor();
095            
096            return result;
097        }
098    }