Bug 546399 - [Platform] Team UI: support platform:/plugin URI for images

Change-Id: I7bc428b6b55c62d0a096ebd5f968b0dda85ebac5
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
diff --git a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java
index c5f6169..86990a5 100644
--- a/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java
+++ b/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/TeamUIPlugin.java
@@ -14,6 +14,7 @@
 package org.eclipse.team.internal.ui;
 
 import java.lang.reflect.InvocationTargetException;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -335,8 +336,20 @@
 	 * @return the image
 	 */
 	public static ImageDescriptor getImageDescriptorFromExtension(IExtension extension, String subdirectoryAndFilename) {
-		URL fullPathString = FileLocator.find(Platform.getBundle(extension.getContributor().getName()), new Path(subdirectoryAndFilename), null);
-		return ImageDescriptor.createFromURL(fullPathString);
+		URL iconURL = FileLocator.find(Platform.getBundle(extension.getContributor().getName()), new Path(subdirectoryAndFilename), null);
+		if (iconURL != null) {
+			return ImageDescriptor.createFromURL(iconURL);
+		}
+		// try to search as a URL in case it is absolute path
+		try {
+			iconURL = FileLocator.find(new URL(subdirectoryAndFilename));
+			if (iconURL != null) {
+				return ImageDescriptor.createFromURL(iconURL);
+			}
+		} catch (MalformedURLException e) {
+			//ignore
+		}
+		return null;
 	}
 
 	public static final String FILE_DIRTY_OVR = "ovr/dirty_ov.png"; //$NON-NLS-1$