X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/debug/ui/PHPDebugUiImages.java b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/debug/ui/PHPDebugUiImages.java new file mode 100644 index 0000000..787fe19 --- /dev/null +++ b/net.sourceforge.phpeclipse.debug.ui/src/net/sourceforge/phpdt/debug/ui/PHPDebugUiImages.java @@ -0,0 +1,112 @@ +package net.sourceforge.phpdt.debug.ui; + +import java.net.MalformedURLException; +import java.net.URL; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jface.resource.ImageRegistry; +import org.eclipse.swt.graphics.Image; +import net.sourceforge.phpdt.internal.debug.ui.PHPDebugUiPlugin; + +public class PHPDebugUiImages { + + protected static final String NAME_PREFIX = "net.sourceforge.phpdt.debug.ui."; + protected static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length(); + protected static URL iconBaseURL; + + static { + String pathSuffix = "icons/"; + try { + iconBaseURL = new URL(PHPDebugUiPlugin.getDefault().getDescriptor().getInstallURL(), pathSuffix); + } catch (MalformedURLException e) { + PHPDebugUiPlugin.log(e); + } + } + + protected static final ImageRegistry IMAGE_REGISTRY = new ImageRegistry(); + + protected static final String CTOOL_PREFIX = "ctool16"; + protected static final String EVIEW_PREFIX = "eview16"; + + public static final String IMG_EVIEW_ARGUMENTS_TAB = NAME_PREFIX + "arguments_tab.gif"; + + public static final ImageDescriptor DESC_EVIEW_ARGUMENTS_TAB = createManaged(EVIEW_PREFIX, IMG_EVIEW_ARGUMENTS_TAB); + + /** + * Returns the image managed under the given key in this registry. + * + * @param key the image's key + * @return the image managed under the given key + */ + public static Image get(String key) { + return IMAGE_REGISTRY.get(key); + } + + /** + * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions + * are retrieved from the *tool16 folders. + */ + public static void setToolImageDescriptors(IAction action, String iconName) { + setImageDescriptors(action, "tool16", iconName); + } + + /** + * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions + * are retrieved from the *lcl16 folders. + */ + public static void setLocalImageDescriptors(IAction action, String iconName) { + setImageDescriptors(action, "lcl16", iconName); + } + + public static ImageRegistry getImageRegistry() { + return IMAGE_REGISTRY; + } + + //---- Helper methods to access icons on the file system -------------------------------------- + + protected static void setImageDescriptors(IAction action, String type, String relPath) { + + try { + ImageDescriptor id = ImageDescriptor.createFromURL(makeIconFileURL("d" + type, relPath)); + if (id != null) + action.setDisabledImageDescriptor(id); + } catch (MalformedURLException e) {} + + try { + ImageDescriptor id = ImageDescriptor.createFromURL(makeIconFileURL("c" + type, relPath)); + if (id != null) + action.setHoverImageDescriptor(id); + } catch (MalformedURLException e) {} + + action.setImageDescriptor(create("e" + type, relPath)); + } + + protected static ImageDescriptor createManaged(String prefix, String name) { + try { + ImageDescriptor result = ImageDescriptor.createFromURL(makeIconFileURL(prefix, name.substring(NAME_PREFIX_LENGTH))); + IMAGE_REGISTRY.put(name, result); + return result; + } catch (MalformedURLException e) { + return ImageDescriptor.getMissingImageDescriptor(); + } + } + + protected static ImageDescriptor create(String prefix, String name) { + try { + return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name)); + } catch (MalformedURLException e) { + return ImageDescriptor.getMissingImageDescriptor(); + } + } + + protected static URL makeIconFileURL(String prefix, String name) throws MalformedURLException { + if (iconBaseURL == null) + throw new MalformedURLException(); + + StringBuffer buffer = new StringBuffer(prefix); + buffer.append('/'); + buffer.append(name); + return new URL(iconBaseURL, buffer.toString()); + } +} \ No newline at end of file