new class to manage icons. Showing failures,etc on a test suite.
[phpeclipse.git] / net.sourceforge.phpeclipse.phpunit / src / net / sourceforge / phpeclipse / phpunit / PHPUnitImages.java
diff --git a/net.sourceforge.phpeclipse.phpunit/src/net/sourceforge/phpeclipse/phpunit/PHPUnitImages.java b/net.sourceforge.phpeclipse.phpunit/src/net/sourceforge/phpeclipse/phpunit/PHPUnitImages.java
new file mode 100644 (file)
index 0000000..006336a
--- /dev/null
@@ -0,0 +1,94 @@
+package net.sourceforge.phpeclipse.phpunit;
+
+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;
+
+public class PHPUnitImages {
+
+       protected static final String NAME_PREFIX =
+               "net.sourceforge.phpeclipse.phpunit";
+       protected static final int NAME_PREFIX_LENGTH = NAME_PREFIX.length();
+
+       protected static URL iconBaseURL;
+
+       static {
+               String pathSuffix = "icons/";
+               try {
+                       iconBaseURL =
+                               new URL(
+                                       PHPUnitPlugin.getDefault().getDescriptor().getInstallURL(),
+                                       pathSuffix);
+               } catch (MalformedURLException e) {
+                       //PHPUnitPlugin.log(e);
+                       e.printStackTrace();
+               }
+       }
+
+       protected static final ImageRegistry IMAGE_REGISTRY = new ImageRegistry();
+
+       /*
+        * Available cached Images in the Java plugin image registry.
+        */
+
+       public static final String IMG_SELECT_TEST_SUITE =
+               NAME_PREFIX + "tsuite.gif";
+       public static final String IMG_RUN_TEST_SUITE = NAME_PREFIX + "start.gif";
+       public static final String IMG_TEST_ERROR = NAME_PREFIX + "testerr.gif";
+       public static final String IMG_TEST_FAILURE = NAME_PREFIX + "testfail.gif";
+       public static final String IMG_TEST_PASS = NAME_PREFIX + "testok.gif";
+       public static final String IMG_TEST_SUITE_ERROR = NAME_PREFIX + "tsuiteerror.gif";
+       public static final String IMG_TEST_SUITE_PASS = NAME_PREFIX + "tsuiteok.gif";
+       public static final String IMG_TEST_SUITE_FAILURE = NAME_PREFIX + "tsuitefail.gif";
+       
+       
+
+
+       public static final ImageDescriptor DESC_SELECT_TEST_SUITE = createManaged(IMG_SELECT_TEST_SUITE);
+       public static final ImageDescriptor DESC_RUN_TEST_SUITE =createManaged(IMG_RUN_TEST_SUITE);
+       public static final ImageDescriptor DESC_TEST_ERROR = createManaged(IMG_TEST_ERROR);
+       public static final ImageDescriptor DESC_TEST_FAILURE = createManaged(IMG_TEST_FAILURE);
+       public static final ImageDescriptor DESC_TEST_PASS = createManaged(IMG_TEST_PASS);
+       public static final ImageDescriptor DESC_TEST_SUITE_ERROR = createManaged(IMG_TEST_SUITE_ERROR);
+       public static final ImageDescriptor DESC_TEST_SUITE_PASS = createManaged(IMG_TEST_SUITE_PASS);
+       public static final ImageDescriptor DESC_TEST_SUITE_FAILURE = createManaged(IMG_TEST_SUITE_FAILURE);
+       
+       /**
+        * 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);
+       }
+
+       public static ImageRegistry getImageRegistry() {
+               return IMAGE_REGISTRY;
+       }
+
+       //---- Helper methods to access icons on the file system --------------------------------------
+
+       protected static ImageDescriptor createManaged(String name) {
+               try {
+                       ImageDescriptor result =
+                               ImageDescriptor.createFromURL(
+                                       makeIconFileURL(name.substring(NAME_PREFIX_LENGTH)));
+                       IMAGE_REGISTRY.put(name, result);
+                       return result;
+               } catch (MalformedURLException e) {
+                       return ImageDescriptor.getMissingImageDescriptor();
+               }
+       }
+
+       protected static URL makeIconFileURL(String name)
+               throws MalformedURLException {
+               if (iconBaseURL == null)
+                       throw new MalformedURLException();
+
+               return new URL(iconBaseURL, name);
+       }
+}
\ No newline at end of file