X-Git-Url: http://git.phpeclipse.com

diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUiImages.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUiImages.java
index e56aeff..395ee76 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUiImages.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/ui/PHPUiImages.java
@@ -2,6 +2,8 @@ package net.sourceforge.phpdt.internal.ui;
 
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
 
 import net.sourceforge.phpeclipse.PHPeclipsePlugin;
 
@@ -16,25 +18,31 @@ public class PHPUiImages {
 		"net.sourceforge.phpdt.internal.ui.";
 	protected static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
 
-	protected static URL iconBaseURL;
-
+	protected static URL fgIconBaseURL=null;
+
+//	static {
+//		String pathSuffix = "icons/";
+//		try {
+//			fgIconBaseURL =
+//				new URL(
+//					PHPeclipsePlugin
+//						.getDefault()
+//						.getDescriptor()
+//						.getInstallURL(),
+//					pathSuffix);
+//		} catch (MalformedURLException e) {
+//			PHPeclipsePlugin.log(e);
+//		}
+//	}
+
+//	 Determine display depth. If depth > 4 then we use high color images. Otherwise low color
+	// images are used
 	static {
-		String pathSuffix = "icons/";
-		try {
-			iconBaseURL =
-				new URL(
-					PHPeclipsePlugin
-						.getDefault()
-						.getDescriptor()
-						.getInstallURL(),
-					pathSuffix);
-		} catch (MalformedURLException e) {
-			PHPeclipsePlugin.log(e);
-		}
+		fgIconBaseURL= PHPeclipsePlugin.getDefault().getBundle().getEntry("/icons/"); //$NON-NLS-1$
 	}
-
-	protected static final ImageRegistry IMAGE_REGISTRY = new ImageRegistry();
-
+	private static ImageRegistry fgImageRegistry= null;
+	private static HashMap fgAvoidSWTErrorMap= null;
+	
 	protected static final String OBJ_PREFIX = "obj16";
 	protected static final String OVR_PREFIX = "ovr16";
 	protected static final String CTOOL_PREFIX = "ctool16";
@@ -97,11 +105,15 @@ public class PHPUiImages {
 		private static final String T_WIZBAN= "wizban"; 	//$NON-NLS-1$
 		private static final String T_CLCL= "clcl16"; 	//$NON-NLS-1$
 		private static final String T_DLCL= "dlcl16"; 	//$NON-NLS-1$
+		private static final String T_ELCL= "elcl16"; 	//$NON-NLS-1$
 		private static final String T_CTOOL= "ctool16"; 	//$NON-NLS-1$
 		private static final String T_CVIEW= "cview16"; //$NON-NLS-1$
 	
 	public static final ImageDescriptor DESC_WIZBAN_NEWCLASS= create(T_WIZBAN, "newclass_wiz.gif"); 			//$NON-NLS-1$
 		
+	public static final ImageDescriptor DESC_ELCL_FILTER= create(T_ELCL, "filter_ps.gif"); //$NON-NLS-1$
+	public static final ImageDescriptor DESC_DLCL_FILTER= create(T_DLCL, "filter_ps.gif"); //$NON-NLS-1$
+
 	/*
 	 * Available cached Images in the Java plugin image registry.
 	 */
@@ -130,7 +142,7 @@ public class PHPUiImages {
 	public static final String IMG_OBJS_INTERFACE= NAME_PREFIX + "int_obj.gif"; 			//$NON-NLS-1$
 	public static final String IMG_OBJS_INTERFACEALT= NAME_PREFIX + "intf_obj.gif"; 			//$NON-NLS-1$	
 	public static final String IMG_OBJS_INTERFACE_DEFAULT= NAME_PREFIX + "int_default_obj.gif"; 		//$NON-NLS-1$
-	public static final String IMG_OBJS_CUNIT= NAME_PREFIX + "jcu_obj.gif"; 				//$NON-NLS-1$
+	public static final String IMG_OBJS_CUNIT= NAME_PREFIX + "phpedit.gif"; 				//$NON-NLS-1$
 	public static final String IMG_OBJS_CUNIT_RESOURCE= NAME_PREFIX + "jcu_resource_obj.gif"; 				//$NON-NLS-1$
 	public static final String IMG_OBJS_CFILE= NAME_PREFIX + "classf_obj.gif";  			//$NON-NLS-1$
 	public static final String IMG_OBJS_CFILECLASS= NAME_PREFIX + "class_obj.gif";  		//$NON-NLS-1$
@@ -359,21 +371,40 @@ public class PHPUiImages {
 	public static final String IMG_CORRECTION_RENAME= NAME_PREFIX + "correction_rename.gif"; //$NON-NLS-1$
 	public static final String IMG_CORRECTION_DELETE_IMPORT= NAME_PREFIX + "correction_delete_import.gif"; //$NON-NLS-1$
 	public static final String IMG_CORRECTION_LOCAL= NAME_PREFIX + "localvariable_obj.gif"; //$NON-NLS-1$
+	public static final String IMG_CORRECTION_REMOVE= NAME_PREFIX + "remove_correction.gif"; //$NON-NLS-1$
+	public static final String IMG_CORRECTION_ADD= NAME_PREFIX + "add_correction.gif"; //$NON-NLS-1$
+
 	static {
 		createManaged(T_OBJ, IMG_CORRECTION_CHANGE);
 		createManaged(T_OBJ, IMG_CORRECTION_MOVE);
 		createManaged(T_OBJ, IMG_CORRECTION_RENAME);
 		createManaged(T_OBJ, IMG_CORRECTION_DELETE_IMPORT);
 		createManaged(T_OBJ, IMG_CORRECTION_LOCAL);
+		createManaged(T_OBJ, IMG_CORRECTION_REMOVE);
+		createManaged(T_OBJ, IMG_CORRECTION_ADD);
 	}
+	
 	/**
 	 * 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);
+		return getImageRegistry().get(key);
+	}
+	
+	/**
+	 * Returns the image descriptor for the given key in this registry. Might be called in a non-UI thread.
+	 * 
+	 * @param key the image's key
+	 * @return the image descriptor for the given key
+	 */ 
+	public static ImageDescriptor getDescriptor(String key) {
+		if (fgImageRegistry == null) {
+			return (ImageDescriptor) fgAvoidSWTErrorMap.get(key);
+		}
+		return getImageRegistry().getDescriptor(key);
 	}
 
 	/**
@@ -396,8 +427,19 @@ public class PHPUiImages {
 		setImageDescriptors(action, "lcl16", iconName);
 	}
 
-	public static ImageRegistry getImageRegistry() {
-		return IMAGE_REGISTRY;
+	/*
+	 * Helper method to access the image registry from the JavaPlugin class.
+	 */
+	/* package */ static ImageRegistry getImageRegistry() {
+		if (fgImageRegistry == null) {
+			fgImageRegistry= new ImageRegistry();
+			for (Iterator iter= fgAvoidSWTErrorMap.keySet().iterator(); iter.hasNext();) {
+				String key= (String) iter.next();
+				fgImageRegistry.put(key, (ImageDescriptor) fgAvoidSWTErrorMap.get(key));
+			}
+			fgAvoidSWTErrorMap= null;
+		}
+		return fgImageRegistry;
 	}
 
 	//---- Helper methods to access icons on the file system --------------------------------------
@@ -428,16 +470,32 @@ public class PHPUiImages {
 		action.setImageDescriptor(create("e" + type, relPath));
 	}
 
-	protected static ImageDescriptor createManaged(
-		String prefix,
-		String name) {
+	private static ImageDescriptor createManaged(String prefix, String name) {
 		try {
-			ImageDescriptor result =
-				ImageDescriptor.createFromURL(
-					makeIconFileURL(
-						prefix,
-						name.substring(NAME_PREFIX_LENGTH)));
-			IMAGE_REGISTRY.put(name, result);
+			ImageDescriptor result= ImageDescriptor.createFromURL(makeIconFileURL(prefix, name.substring(NAME_PREFIX_LENGTH)));
+			if (fgAvoidSWTErrorMap == null) {
+				fgAvoidSWTErrorMap= new HashMap();
+			}
+			fgAvoidSWTErrorMap.put(name, result);
+			if (fgImageRegistry != null) {
+				PHPeclipsePlugin.logErrorMessage("Image registry already defined"); //$NON-NLS-1$
+			}
+			return result;
+		} catch (MalformedURLException e) {
+			return ImageDescriptor.getMissingImageDescriptor();
+		}
+	}
+	
+	private static ImageDescriptor createManaged(String prefix, String name, String key) {
+		try {
+			ImageDescriptor result= ImageDescriptor.createFromURL(makeIconFileURL(prefix, name.substring(NAME_PREFIX_LENGTH)));
+			if (fgAvoidSWTErrorMap == null) {
+				fgAvoidSWTErrorMap= new HashMap();
+			}
+			fgAvoidSWTErrorMap.put(key, result);
+			if (fgImageRegistry != null) {
+				PHPeclipsePlugin.logErrorMessage("Image registry already defined"); //$NON-NLS-1$
+			}
 			return result;
 		} catch (MalformedURLException e) {
 			return ImageDescriptor.getMissingImageDescriptor();
@@ -454,12 +512,12 @@ public class PHPUiImages {
 
 	protected static URL makeIconFileURL(String prefix, String name)
 		throws MalformedURLException {
-		if (iconBaseURL == null)
+		if (fgIconBaseURL == null)
 			throw new MalformedURLException();
 
 		StringBuffer buffer = new StringBuffer(prefix);
 		buffer.append('/');
 		buffer.append(name);
-		return new URL(iconBaseURL, buffer.toString());
+		return new URL(fgIconBaseURL, buffer.toString());
 	}
 }
\ No newline at end of file