1 package net.sourceforge.phpdt.externaltools.internal.model;
 
   3 /**********************************************************************
 
   4 Copyright (c) 2002 IBM Corp. and others. All rights reserved.
 
   5 This file is made available under the terms of the Common Public License v1.0
 
   6 which accompanies this distribution, and is available at
 
   7 http://www.eclipse.org/legal/cpl-v10.html
 
  10 **********************************************************************/
 
  12 import java.net.MalformedURLException;
 
  14 import java.util.HashMap;
 
  16 import net.sourceforge.phpdt.externaltools.internal.ui.IExternalToolsUIConstants;
 
  17 import net.sourceforge.phpdt.externaltools.model.IExternalToolConstants;
 
  18 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 
  20 import org.eclipse.jface.resource.ImageDescriptor;
 
  21 import org.eclipse.jface.resource.ImageRegistry;
 
  22 import org.eclipse.swt.graphics.Image;
 
  25  * The images provided by the external tools plugin.
 
  27 public class ExternalToolsImages {
 
  30          * The image registry containing <code>Image</code>s.
 
  32         private static ImageRegistry imageRegistry;
 
  35          * A table of all the <code>ImageDescriptor</code>s.
 
  37         private static HashMap imageDescriptors;
 
  39         private static final String ATTR_LAUNCH_CONFIG_TYPE_ICON = "icon"; //$NON-NLS-1$
 
  40         private static final String ATTR_LAUNCH_CONFIG_TYPE_ID = "configTypeID"; //$NON-NLS-1$
 
  42         /* Declare Common paths */
 
  43         private static URL ICON_BASE_URL= null;
 
  46                 String pathSuffix = "icons/externaltools/full/"; //$NON-NLS-1$
 
  49                         ICON_BASE_URL= new URL(PHPeclipsePlugin.getDefault().getDescriptor().getInstallURL(), pathSuffix);
 
  50                 } catch (MalformedURLException e) {
 
  55         // Use IPath and toOSString to build the names to ensure they have the slashes correct
 
  56         private final static String CTOOL= "ctool16/"; //basic colors - size 16x16 //$NON-NLS-1$
 
  57         private final static String LOCALTOOL= "clcl16/"; //basic colors - size 16x16 //$NON-NLS-1$
 
  58         private final static String DLCL= "dlcl16/"; //disabled - size 16x16 //$NON-NLS-1$
 
  59         private final static String ELCL= "elcl16/"; //enabled - size 16x16 //$NON-NLS-1$
 
  60         private final static String OBJECT= "obj16/"; //basic colors - size 16x16 //$NON-NLS-1$
 
  61         private final static String WIZBAN= "wizban/"; //basic colors - size 16x16 //$NON-NLS-1$
 
  62         private final static String OVR= "ovr16/"; //basic colors - size 7x8 //$NON-NLS-1$
 
  63         private final static String VIEW= "cview16/"; // views //$NON-NLS-1$
 
  68         private static void declareImages() {
 
  70                 declareRegistryImage(IExternalToolsUIConstants.IMG_REMOVE, LOCALTOOL + "remove_co.gif"); //$NON-NLS-1$
 
  71                 declareRegistryImage(IExternalToolsUIConstants.IMG_REMOVE_ALL, LOCALTOOL + "removeAll_co.gif"); //$NON-NLS-1$
 
  72                 declareRegistryImage(IExternalToolsUIConstants.IMG_ADD, LOCALTOOL + "add_co.gif"); //$NON-NLS-1$
 
  73                 declareRegistryImage(IExternalToolsUIConstants.IMG_RUN, LOCALTOOL + "run_tool.gif"); //$NON-NLS-1$
 
  74                 declareRegistryImage(IExternalToolsUIConstants.IMG_SEARCH, LOCALTOOL + "search.gif"); //$NON-NLS-1$
 
  75                 declareRegistryImage(IExternalToolsUIConstants.IMG_MOVE_UP, LOCALTOOL + "moveUp.gif"); //$NON-NLS-1$
 
  76                 declareRegistryImage(IExternalToolsUIConstants.IMG_MOVE_DOWN, LOCALTOOL + "moveDown.gif"); //$NON-NLS-1$
 
  77                 declareRegistryImage(IExternalToolsUIConstants.IMG_ACTIVATE, LOCALTOOL + "activate.gif"); //$NON-NLS-1$
 
  78                 declareRegistryImage(IExternalToolsUIConstants.IMG_DEACTIVATE, LOCALTOOL + "deactivate.gif"); //$NON-NLS-1$
 
  79                 declareRegistryImage(IExternalToolsUIConstants.IMG_GO_TO_FILE, LOCALTOOL + "gotoobj_tsk.gif"); //$NON-NLS-1$
 
  81 //              declareRegistryImage(IExternalToolsUIConstants.IMG_ANT_PROJECT, OBJECT + "file_obj.gif"); //$NON-NLS-1$
 
  82 //              declareRegistryImage(IExternalToolsUIConstants.IMG_ANT_PROJECT_ERROR, LOCALTOOL + "ant_project_err.gif"); //$NON-NLS-1$
 
  83 //              declareRegistryImage(IExternalToolsUIConstants.IMG_ANT_TARGET, LOCALTOOL + "ant_target.gif"); //$NON-NLS-1$
 
  84 //              declareRegistryImage(IExternalToolsUIConstants.IMG_ANT_TARGET_ERROR, LOCALTOOL + "error.gif"); //$NON-NLS-1$
 
  85 //              declareRegistryImage(IExternalToolsUIConstants.IMG_ANT_TARGET_ELEMENTS, LOCALTOOL + "elements.gif"); //$NON-NLS-1$
 
  86 //              declareRegistryImage(IExternalToolsUIConstants.IMG_ANT_TARGET_ELEMENT, LOCALTOOL + "element.gif"); //$NON-NLS-1$
 
  88                 declareRegistryImage(IExternalToolConstants.IMG_WIZBAN_EXTERNAL_TOOLS, WIZBAN + "ext_tools_wiz.gif"); //$NON-NLS-1$
 
  91                 declareRegistryImage(IExternalToolConstants.IMG_ACTION_REFRESH, LOCALTOOL + "refresh.gif"); //$NON-NLS-1$
 
  94                 declareRegistryImage(IExternalToolConstants.IMG_TAB_MAIN, OBJECT + "main_tab.gif"); //$NON-NLS-1$
 
  95                 declareRegistryImage(IExternalToolConstants.IMG_TAB_OPTIONS, OBJECT + "options_tab.gif"); //$NON-NLS-1$
 
  98                 declareRegistryImage(IExternalToolConstants.IMG_TAB_ANT_TARGETS, LOCALTOOL + "ant_tsk_check.gif"); //$NON-NLS-1$
 
 102          * Declare an Image in the registry table.
 
 103          * @param key   The key to use when registering the image
 
 104          * @param path  The path where the image can be found. This path is relative to where
 
 105          *                              this plugin class is found (i.e. typically the packages directory)
 
 107         private final static void declareRegistryImage(String key, String path) {
 
 108                 ImageDescriptor desc= ImageDescriptor.getMissingImageDescriptor();
 
 110                         desc= ImageDescriptor.createFromURL(makeIconFileURL(path));
 
 111                 } catch (MalformedURLException me) {
 
 112                         //ExternalToolsPlugin.log(me);
 
 114                 imageRegistry.put(key, desc);
 
 115                 imageDescriptors.put(key, desc);
 
 119          * Returns the ImageRegistry.
 
 121         public static ImageRegistry getImageRegistry() {
 
 122                 if (imageRegistry == null) {
 
 123                         initializeImageRegistry();
 
 125                 return imageRegistry;
 
 129          *      Initialize the image registry by declaring all of the required
 
 130          *      graphics. This involves creating JFace image descriptors describing
 
 131          *      how to create/find the image should it be needed.
 
 132          *      The image is not actually allocated until requested.
 
 135          *              Wizard Banners                  WIZBAN_
 
 136          *              Preference Banners              PREF_BAN_
 
 137          *              Property Page Banners   PROPBAN_
 
 138          *              Color toolbar                   CTOOL_
 
 139          *              Enable toolbar                  ETOOL_
 
 140          *              Disable toolbar                 DTOOL_
 
 141          *              Local enabled toolbar   ELCL_
 
 142          *              Local Disable toolbar   DLCL_
 
 146          *              Product images                  PROD_
 
 149          *      Where are the images?
 
 150          *              The images (typically gifs) are found in the same location as this plugin class.
 
 151          *              This may mean the same package directory as the package holding this class.
 
 152          *              The images are declared using this.getClass() to ensure they are looked up via
 
 154          *      @see JFace's ImageRegistry
 
 156         public static ImageRegistry initializeImageRegistry() {
 
 157                 imageRegistry= new ImageRegistry(PHPeclipsePlugin.getStandardDisplay());
 
 158                 imageDescriptors = new HashMap(30);
 
 160                 return imageRegistry;
 
 164          * Returns the <code>Image<code> identified by the given key,
 
 165          * or <code>null</code> if it does not exist.
 
 167         public static Image getImage(String key) {
 
 168                 return getImageRegistry().get(key);
 
 172          * Returns the <code>ImageDescriptor<code> identified by the given key,
 
 173          * or <code>null</code> if it does not exist.
 
 175         public static ImageDescriptor getImageDescriptor(String key) {
 
 176                 if (imageDescriptors == null) {
 
 177                         initializeImageRegistry();
 
 179                 return (ImageDescriptor)imageDescriptors.get(key);
 
 182         private static URL makeIconFileURL(String iconPath) throws MalformedURLException {
 
 183                 if (ICON_BASE_URL == null) {
 
 184                         throw new MalformedURLException();
 
 187                 return new URL(ICON_BASE_URL, iconPath);