package ie.dcu.apps.ist; import java.net.*; import org.eclipse.jface.resource.*; import org.eclipse.swt.graphics.*; /** * Application status bar message type. * * @author Kevin McGuinness */ public enum AppStatus { Information, Warning, Error; public Image getIcon() { String key = key(); Image image = JFaceResources.getImage(key); if (image == null) { ImageRegistry registry = JFaceResources.getImageRegistry(); ImageDescriptor descriptor = createImageDescriptor(); registry.put(key, descriptor); image = registry.get(key); } return image; } private ImageDescriptor createImageDescriptor() { try { return ImageDescriptor.createFromURL(new URL(key())); } catch (MalformedURLException e) { throw new RuntimeException(e); } } private String key() { switch (this) { case Information: return "file:resources/icons/dialog-information.png"; case Warning: return "file:resources/icons/dialog-warning.png"; default: return "file:resources/icons/dialog-error.png"; } } }