1 package net.sourceforge.phpdt.internal.ui;
 
   3 import java.net.MalformedURLException;
 
   6 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 
   8 import org.eclipse.jface.action.IAction;
 
   9 import org.eclipse.jface.resource.ImageDescriptor;
 
  10 import org.eclipse.jface.resource.ImageRegistry;
 
  11 import org.eclipse.swt.graphics.Image;
 
  13 public class PHPUiImages {
 
  15         protected static final String NAME_PREFIX =
 
  16                 "net.sourceforge.phpdt.internal.ui.";
 
  17         protected static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
 
  19         protected static URL iconBaseURL;
 
  22                 String pathSuffix = "icons/";
 
  31                 } catch (MalformedURLException e) {
 
  32                         PHPeclipsePlugin.log(e);
 
  36         protected static final ImageRegistry IMAGE_REGISTRY = new ImageRegistry();
 
  38         protected static final String OBJ_PREFIX = "obj16";
 
  39         protected static final String OVR_PREFIX = "ovr16";
 
  40         protected static final String CTOOL_PREFIX = "ctool16";
 
  42         public static final String IMG_CLASS = NAME_PREFIX + "class_obj.gif";
 
  43         public static final String IMG_BUILTIN = NAME_PREFIX + "builtin_obj.gif";
 
  44         public static final String IMG_FUN = NAME_PREFIX + "fun_obj.gif";
 
  45         public static final String IMG_INC = NAME_PREFIX + "impc_obj.gif";
 
  46         public static final String IMG_VAR = NAME_PREFIX + "var_obj.gif";
 
  47         public static final String IMG_OBJS_ERROR = NAME_PREFIX + "error_obj.gif";
 
  48         public static final String IMG_OBJS_WARNING =
 
  49                 NAME_PREFIX + "warning_obj.gif";
 
  50         public static final String IMG_OBJS_INFO = NAME_PREFIX + "info_obj.gif";
 
  51         public static final String IMG_CTOOLS_PHP_PAGE =
 
  52                 NAME_PREFIX + "php_page.gif";
 
  53         public static final String IMG_CTOOLS_PHP = NAME_PREFIX + "php.gif";
 
  55         public static final String IMG_OBJS_TEMPLATE =
 
  56                 NAME_PREFIX + "template_obj.gif";
 
  58         public static final String IMG_CLEAR = NAME_PREFIX + "clear.gif"; 
 
  60         public static final ImageDescriptor DESC_CLASS =
 
  61                 createManaged(OBJ_PREFIX, IMG_CLASS);
 
  62         public static final ImageDescriptor DESC_BUILTIN =
 
  63                 createManaged(OBJ_PREFIX, IMG_BUILTIN);
 
  64         public static final ImageDescriptor DESC_FUN =
 
  65                 createManaged(OBJ_PREFIX, IMG_FUN);
 
  66         public static final ImageDescriptor DESC_INC =
 
  67                 createManaged(OBJ_PREFIX, IMG_INC);
 
  68         public static final ImageDescriptor DESC_VAR =
 
  69                 createManaged(OBJ_PREFIX, IMG_VAR);
 
  70         public static final ImageDescriptor DESC_OBJS_ERROR =
 
  71                 createManaged(OBJ_PREFIX, IMG_OBJS_ERROR);
 
  72         public static final ImageDescriptor DESC_OBJS_WARNING =
 
  73                 createManaged(OBJ_PREFIX, IMG_OBJS_WARNING);
 
  74         public static final ImageDescriptor DESC_OBJS_INFO =
 
  75                 createManaged(OBJ_PREFIX, IMG_OBJS_INFO);
 
  76         public static final ImageDescriptor DESC_CTOOL_PHP_PAGE =
 
  77                 createManaged(CTOOL_PREFIX, IMG_CTOOLS_PHP_PAGE);
 
  78         public static final ImageDescriptor DESC_CTOOL_PHP =
 
  79                 createManaged(CTOOL_PREFIX, IMG_CTOOLS_PHP);
 
  81         public static final ImageDescriptor DESC_OBJS_TEMPLATE =
 
  82                 createManaged(OBJ_PREFIX, IMG_OBJS_TEMPLATE);
 
  84         public static final ImageDescriptor DESC_CLEAR =
 
  85                         createManaged(OBJ_PREFIX, IMG_CLEAR);
 
  88          * Returns the image managed under the given key in this registry.
 
  90          * @param key the image's key
 
  91          * @return the image managed under the given key
 
  93         public static Image get(String key) {
 
  94                 return IMAGE_REGISTRY.get(key);
 
  98          * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
 
  99          * are retrieved from the *tool16 folders.
 
 101         public static void setToolImageDescriptors(
 
 104                 setImageDescriptors(action, "tool16", iconName);
 
 108          * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
 
 109          * are retrieved from the *lcl16 folders.
 
 111         public static void setLocalImageDescriptors(
 
 114                 setImageDescriptors(action, "lcl16", iconName);
 
 117         public static ImageRegistry getImageRegistry() {
 
 118                 return IMAGE_REGISTRY;
 
 121         //---- Helper methods to access icons on the file system --------------------------------------
 
 123         protected static void setImageDescriptors(
 
 130                                 ImageDescriptor.createFromURL(
 
 131                                         makeIconFileURL("d" + type, relPath));
 
 133                                 action.setDisabledImageDescriptor(id);
 
 134                 } catch (MalformedURLException e) {
 
 139                                 ImageDescriptor.createFromURL(
 
 140                                         makeIconFileURL("c" + type, relPath));
 
 142                                 action.setHoverImageDescriptor(id);
 
 143                 } catch (MalformedURLException e) {
 
 146                 action.setImageDescriptor(create("e" + type, relPath));
 
 149         protected static ImageDescriptor createManaged(
 
 153                         ImageDescriptor result =
 
 154                                 ImageDescriptor.createFromURL(
 
 157                                                 name.substring(NAME_PREFIX_LENGTH)));
 
 158                         IMAGE_REGISTRY.put(name, result);
 
 160                 } catch (MalformedURLException e) {
 
 161                         return ImageDescriptor.getMissingImageDescriptor();
 
 165         protected static ImageDescriptor create(String prefix, String name) {
 
 167                         return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
 
 168                 } catch (MalformedURLException e) {
 
 169                         return ImageDescriptor.getMissingImageDescriptor();
 
 173         protected static URL makeIconFileURL(String prefix, String name)
 
 174                 throws MalformedURLException {
 
 175                 if (iconBaseURL == null)
 
 176                         throw new MalformedURLException();
 
 178                 StringBuffer buffer = new StringBuffer(prefix);
 
 181                 return new URL(iconBaseURL, buffer.toString());