[91563] Add job support to get background Validation:: This covers all the validation rework that was planned for WTP M5
diff --git a/plugins/org.eclipse.wst.validation.ui/icons/FAIL.gif b/plugins/org.eclipse.wst.validation.ui/icons/FAIL.gif
new file mode 100644
index 0000000..28bba66
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation.ui/icons/FAIL.gif
Binary files differ
diff --git a/plugins/org.eclipse.wst.validation.ui/icons/OK.gif b/plugins/org.eclipse.wst.validation.ui/icons/OK.gif
new file mode 100644
index 0000000..689e523
--- /dev/null
+++ b/plugins/org.eclipse.wst.validation.ui/icons/OK.gif
Binary files differ
diff --git a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPreferencePage.java b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPreferencePage.java
index 2daf987..30f8d8c 100644
--- a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPreferencePage.java
+++ b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPreferencePage.java
@@ -346,14 +346,24 @@
 		}
 
 		public Image getColumnImage(Object element, int columnIndex) {
+			if(columnIndex == 1) {
+				if(((ValidatorMetaData)element).isManualValidation())
+					return  ValidationUIPlugin.getPlugin().getImage("OK");
+				return ValidationUIPlugin.getPlugin().getImage("FAIL");
+			} else if(columnIndex == 2) {
+				if(((ValidatorMetaData)element).isBuildValidation())
+					return ValidationUIPlugin.getPlugin().getImage("OK");;
+				return ValidationUIPlugin.getPlugin().getImage("FAIL");
+			}
 			return null;
+		
 		}
 
 		public String getColumnText(Object element, int columnIndex) {
 			if(columnIndex == 0) {
 				return ((ValidatorMetaData) element).getValidatorDisplayName();
 			}
-			if(columnIndex == 1) {
+			/*if(columnIndex == 1) {
 				if(((ValidatorMetaData)element).isManualValidation())
 					return COMBO_VALUES[0];
 				return COMBO_VALUES[1];	
@@ -361,7 +371,7 @@
 				if(((ValidatorMetaData)element).isBuildValidation())
 					return COMBO_VALUES[0];
 				return COMBO_VALUES[1];
-			}
+			}*/
 			return null;
 		}
 	}
diff --git a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java
index 65455dd..a1f6850 100644
--- a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java
+++ b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/ValidationPropertiesPage.java
@@ -339,7 +339,7 @@
 				if(columnIndex == 0) {
 					return ((ValidatorMetaData) element).getValidatorDisplayName();
 				}
-				if(columnIndex == 1) {
+				/*if(columnIndex == 1) {
 					if(((ValidatorMetaData)element).isManualValidation())
 						return ENABLED;
 					return DISABLED;	
@@ -347,13 +347,22 @@
 					if(((ValidatorMetaData)element).isBuildValidation())
 						return ENABLED;
 					return DISABLED;
-				}
+				}*/
 				return null;
 			}
 
 			public Image getColumnImage(Object element, int columnIndex) {
-				// TODO Auto-generated method stub
+				if(columnIndex == 1) {
+					if(((ValidatorMetaData)element).isManualValidation())
+						return  ValidationUIPlugin.getPlugin().getImage("OK");
+					return ValidationUIPlugin.getPlugin().getImage("FAIL");
+				} else if(columnIndex == 2) {
+					if(((ValidatorMetaData)element).isBuildValidation())
+						return ValidationUIPlugin.getPlugin().getImage("OK");;
+					return ValidationUIPlugin.getPlugin().getImage("FAIL");
+				}
 				return null;
+			
 			}
 		}
 
diff --git a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/plugin/ValidationUIPlugin.java b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/plugin/ValidationUIPlugin.java
index f4121fe..2674b33 100644
--- a/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/plugin/ValidationUIPlugin.java
+++ b/plugins/org.eclipse.wst.validation.ui/validateui/org/eclipse/wst/validation/internal/ui/plugin/ValidationUIPlugin.java
@@ -8,16 +8,24 @@
  **************************************************************************************************/
 package org.eclipse.wst.validation.internal.ui.plugin;
 
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.logging.Level;
 
 import org.eclipse.core.resources.IWorkspaceRunnable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jem.util.logger.LogEntry;
 import org.eclipse.jem.util.logger.proxy.Logger;
 import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
 import org.eclipse.wst.common.frameworks.internal.ui.WTPUIPlugin;
 import org.eclipse.wst.validation.internal.operations.ValidationOperation;
 import org.eclipse.wst.validation.internal.plugin.ValidationPlugin;
+import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 
 
@@ -27,6 +35,7 @@
 
 	public final static String VALIDATION_PROP_FILE_NAME = "validate_ui"; //$NON-NLS-1$
 	public static final String VALIDATION_PLUGIN_ID = "org.eclipse.wst.validation.ui"; //$NON-NLS-1$
+	public static final String[] ICON_DIRS = new String[]{"icons"};
 
 	public ValidationUIPlugin() {
 		super();
@@ -95,4 +104,59 @@
 		super.start(context);
 		//	org.eclipse.wst.validation.internal.operations.ValidatorManager.setResourceUtilClass(org.eclipse.wst.validation.internal.operations.ui.UIResourceUtil.class);
 	}
+	
+	/**
+	 * Get a .gif from the image registry.
+	 */
+	public Image getImage(String key) {
+		ImageRegistry imageRegistry = getImageRegistry();
+		Image image = imageRegistry.get(key);
+		if (image == null || image.isDisposed()) {
+			ImageDescriptor descriptor = getImageDescriptor(key);
+			if (descriptor != null) {
+				image = descriptor.createImage();
+				imageRegistry.put(key, image);
+			}
+		}
+		return image;
+	}
+	
+	/**
+	 * This gets a .gif from the icons folder.
+	 */
+	public ImageDescriptor getImageDescriptor(String key) {
+		ImageDescriptor imageDescriptor = null;
+		URL gifImageURL = getImageURL(key);
+		if (gifImageURL != null)
+			imageDescriptor = ImageDescriptor.createFromURL(gifImageURL);
+		return imageDescriptor;
+	}
+	
+	/**
+	 * @param key
+	 * @return
+	 */
+	private URL getImageURL(String key) {
+		return ValidationUIPlugin.getImageURL(key, getBundle());
+	}
+	
+	/**
+	 * This gets a .gif from the icons folder.
+	 */
+	public static URL getImageURL(String key, Bundle bundle) {
+		String gif = "/" + key + ".gif"; //$NON-NLS-1$ //$NON-NLS-2$
+		IPath path = null;
+		for (int i = 0; i < ICON_DIRS.length; i++) {
+			path = new Path(ICON_DIRS[i]).append(gif);
+			if (Platform.find(bundle,path) == null)
+				continue;
+			try {
+				return new URL( bundle.getEntry("/"), path.toString()); //$NON-NLS-1$ 
+			} catch (MalformedURLException exception) {
+				exception.printStackTrace();
+				continue;
+			}
+		}
+		return null;
+	}
 }
\ No newline at end of file