| /******************************************************************************* |
| * Copyright (c) 2000, 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ui.internal.console; |
| |
| |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| |
| import org.eclipse.jface.resource.ImageDescriptor; |
| import org.eclipse.jface.resource.ImageRegistry; |
| import org.eclipse.swt.graphics.Image; |
| import org.eclipse.ui.console.ConsolePlugin; |
| import org.eclipse.ui.console.IConsoleConstants; |
| |
| /** |
| * The images provided by the debug plugin. |
| */ |
| public class ConsolePluginImages { |
| |
| /** |
| * The image registry containing <code>Image</code>s and the <code>ImageDescriptor</code>s. |
| */ |
| private static ImageRegistry imageRegistry; |
| |
| /* Declare Common paths */ |
| private static URL ICON_BASE_URL= null; |
| |
| static { |
| String pathSuffix = "icons/full/"; //$NON-NLS-1$ |
| ICON_BASE_URL= ConsolePlugin.getDefault().getBundle().getEntry(pathSuffix); |
| } |
| |
| // Use IPath and toOSString to build the names to ensure they have the slashes correct |
| private final static String LOCALTOOL= "clcl16/"; //basic colors - size 16x16 //$NON-NLS-1$ |
| private final static String DLCL= "dlcl16/"; //disabled - size 16x16 //$NON-NLS-1$ |
| private final static String ELCL= "elcl16/"; //enabled - size 16x16 //$NON-NLS-1$ |
| private final static String VIEW= "cview16/"; // views //$NON-NLS-1$ |
| |
| /** |
| * Declare all images |
| */ |
| private static void declareImages() { |
| // Actions |
| |
| //local toolbars |
| declareRegistryImage(IConsoleConstants.IMG_LCL_CLEAR, LOCALTOOL + "clear_co.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_LCL_PIN, LOCALTOOL + "pin.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_LCL_LOCK, LOCALTOOL + "lock_co.gif"); //$NON-NLS-1$ |
| |
| // disabled local toolbars |
| declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_CLEAR, DLCL + "clear_co.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_PIN, DLCL + "pin.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_LOCK, DLCL + "lock_co.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_DLCL_CLOSE, DLCL + "rem_co.gif"); //$NON-NLS-1$ |
| |
| // enabled local toolbars |
| declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_CLEAR, ELCL + "clear_co.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_PIN, ELCL + "pin.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_LOCK, ELCL + "lock_co.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_CLOSE, ELCL + "rem_co.gif"); //$NON-NLS-1$ |
| declareRegistryImage(IInternalConsoleConstants.IMG_ELCL_NEW_CON, ELCL + "new_con.gif"); //$NON-NLS-1$ |
| |
| // Views |
| declareRegistryImage(IConsoleConstants.IMG_VIEW_CONSOLE, VIEW + "console_view.gif"); //$NON-NLS-1$ |
| } |
| |
| /** |
| * Declare an Image in the registry table. |
| * @param key The key to use when registering the image |
| * @param path The path where the image can be found. This path is relative to where |
| * this plugin class is found (i.e. typically the packages directory) |
| */ |
| private final static void declareRegistryImage(String key, String path) { |
| ImageDescriptor desc= ImageDescriptor.getMissingImageDescriptor(); |
| try { |
| desc= ImageDescriptor.createFromURL(makeIconFileURL(path)); |
| } catch (MalformedURLException me) { |
| ConsolePlugin.log(me); |
| } |
| imageRegistry.put(key, desc); |
| } |
| |
| /** |
| * Returns the ImageRegistry. |
| */ |
| public static ImageRegistry getImageRegistry() { |
| if (imageRegistry == null) { |
| initializeImageRegistry(); |
| } |
| return imageRegistry; |
| } |
| |
| /** |
| * Initialize the image registry by declaring all of the required |
| * graphics. This involves creating JFace image descriptors describing |
| * how to create/find the image should it be needed. |
| * The image is not actually allocated until requested. |
| * |
| * Prefix conventions |
| * Wizard Banners WIZBAN_ |
| * Preference Banners PREF_BAN_ |
| * Property Page Banners PROPBAN_ |
| * Color toolbar CTOOL_ |
| * Enable toolbar ETOOL_ |
| * Disable toolbar DTOOL_ |
| * Local enabled toolbar ELCL_ |
| * Local Disable toolbar DLCL_ |
| * Object large OBJL_ |
| * Object small OBJS_ |
| * View VIEW_ |
| * Product images PROD_ |
| * Misc images MISC_ |
| * |
| * Where are the images? |
| * The images (typically gifs) are found in the same location as this plugin class. |
| * This may mean the same package directory as the package holding this class. |
| * The images are declared using this.getClass() to ensure they are looked up via |
| * this plugin class. |
| * @see org.eclipse.jface.resource.ImageRegistry |
| */ |
| public static ImageRegistry initializeImageRegistry() { |
| imageRegistry= new ImageRegistry(ConsolePlugin.getStandardDisplay()); |
| declareImages(); |
| return imageRegistry; |
| } |
| |
| /** |
| * Returns the <code>Image<code> identified by the given key, |
| * or <code>null</code> if it does not exist. |
| */ |
| public static Image getImage(String key) { |
| return getImageRegistry().get(key); |
| } |
| |
| /** |
| * Returns the <code>ImageDescriptor<code> identified by the given key, |
| * or <code>null</code> if it does not exist. |
| */ |
| public static ImageDescriptor getImageDescriptor(String key) { |
| return getImageRegistry().getDescriptor(key); |
| } |
| |
| private static URL makeIconFileURL(String iconPath) throws MalformedURLException { |
| if (ICON_BASE_URL == null) { |
| throw new MalformedURLException(); |
| } |
| |
| return new URL(ICON_BASE_URL, iconPath); |
| } |
| } |