1 package net.sourceforge.phpdt.internal.ui;
3 import java.net.MalformedURLException;
6 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
7 import org.eclipse.jface.action.IAction;
8 import org.eclipse.jface.resource.ImageDescriptor;
9 import org.eclipse.jface.resource.ImageRegistry;
10 import org.eclipse.swt.graphics.Image;
12 public class PHPUiImages {
14 protected static final String NAME_PREFIX = "net.sourceforge.phpdt.internal.ui.";
15 protected static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
17 protected static URL iconBaseURL;
20 String pathSuffix = "icons/";
22 iconBaseURL = new URL(PHPeclipsePlugin.getDefault().getDescriptor().getInstallURL(), pathSuffix);
23 } catch (MalformedURLException e) {
24 PHPeclipsePlugin.log(e);
28 protected static final ImageRegistry IMAGE_REGISTRY = new ImageRegistry();
30 protected static final String OBJ_PREFIX = "obj16";
31 protected static final String OVR_PREFIX = "ovr16";
32 protected static final String CTOOL_PREFIX = "ctool16";
34 public static final String IMG_CLASS = NAME_PREFIX + "class_obj.gif";
35 public static final String IMG_BUILTIN = NAME_PREFIX + "builtin_obj.gif";
36 public static final String IMG_FUN = NAME_PREFIX + "fun_obj.gif";
37 public static final String IMG_INC = NAME_PREFIX + "impc_obj.gif";
38 public static final String IMG_VAR = NAME_PREFIX + "var_obj.gif";
39 public static final String IMG_OBJS_ERROR = NAME_PREFIX + "error_obj.gif";
40 public static final String IMG_OBJS_WARNING = NAME_PREFIX + "warning_obj.gif";
41 public static final String IMG_OBJS_INFO = NAME_PREFIX + "info_obj.gif";
42 public static final String IMG_CTOOLS_PHP_PAGE = NAME_PREFIX + "php_page.gif";
43 public static final String IMG_CTOOLS_PHP = NAME_PREFIX + "php.gif";
45 public static final String IMG_OBJS_TEMPLATE= NAME_PREFIX + "template_obj.gif";
47 public static final ImageDescriptor DESC_CLASS = createManaged(OBJ_PREFIX, IMG_CLASS);
48 public static final ImageDescriptor DESC_BUILTIN = createManaged(OBJ_PREFIX, IMG_BUILTIN);
49 public static final ImageDescriptor DESC_FUN = createManaged(OBJ_PREFIX, IMG_FUN);
50 public static final ImageDescriptor DESC_INC = createManaged(OBJ_PREFIX, IMG_INC);
51 public static final ImageDescriptor DESC_VAR = createManaged(OBJ_PREFIX, IMG_VAR);
52 public static final ImageDescriptor DESC_OBJS_ERROR = createManaged(OBJ_PREFIX, IMG_OBJS_ERROR);
53 public static final ImageDescriptor DESC_OBJS_WARNING = createManaged(OBJ_PREFIX, IMG_OBJS_WARNING);
54 public static final ImageDescriptor DESC_OBJS_INFO = createManaged(OBJ_PREFIX, IMG_OBJS_INFO);
55 public static final ImageDescriptor DESC_CTOOL_PHP_PAGE = createManaged(CTOOL_PREFIX, IMG_CTOOLS_PHP_PAGE);
56 public static final ImageDescriptor DESC_CTOOL_PHP = createManaged(CTOOL_PREFIX, IMG_CTOOLS_PHP);
58 public static final ImageDescriptor DESC_OBJS_TEMPLATE= createManaged(OBJ_PREFIX, IMG_OBJS_TEMPLATE);
61 * Returns the image managed under the given key in this registry.
63 * @param key the image's key
64 * @return the image managed under the given key
66 public static Image get(String key) {
67 return IMAGE_REGISTRY.get(key);
71 * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
72 * are retrieved from the *tool16 folders.
74 public static void setToolImageDescriptors(IAction action, String iconName) {
75 setImageDescriptors(action, "tool16", iconName);
79 * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
80 * are retrieved from the *lcl16 folders.
82 public static void setLocalImageDescriptors(IAction action, String iconName) {
83 setImageDescriptors(action, "lcl16", iconName);
86 public static ImageRegistry getImageRegistry() {
87 return IMAGE_REGISTRY;
90 //---- Helper methods to access icons on the file system --------------------------------------
92 protected static void setImageDescriptors(IAction action, String type, String relPath) {
95 ImageDescriptor id = ImageDescriptor.createFromURL(makeIconFileURL("d" + type, relPath));
97 action.setDisabledImageDescriptor(id);
98 } catch (MalformedURLException e) {}
101 ImageDescriptor id = ImageDescriptor.createFromURL(makeIconFileURL("c" + type, relPath));
103 action.setHoverImageDescriptor(id);
104 } catch (MalformedURLException e) {}
106 action.setImageDescriptor(create("e" + type, relPath));
109 protected static ImageDescriptor createManaged(String prefix, String name) {
111 ImageDescriptor result = ImageDescriptor.createFromURL(makeIconFileURL(prefix, name.substring(NAME_PREFIX_LENGTH)));
112 IMAGE_REGISTRY.put(name, result);
114 } catch (MalformedURLException e) {
115 return ImageDescriptor.getMissingImageDescriptor();
119 protected static ImageDescriptor create(String prefix, String name) {
121 return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
122 } catch (MalformedURLException e) {
123 return ImageDescriptor.getMissingImageDescriptor();
127 protected static URL makeIconFileURL(String prefix, String name) throws MalformedURLException {
128 if (iconBaseURL == null)
129 throw new MalformedURLException();
131 StringBuffer buffer = new StringBuffer(prefix);
134 return new URL(iconBaseURL, buffer.toString());