Java tutorial
// Copyright (c) 2009-2010 by the projectusus.org contributors // This software is released under the terms and conditions // of the Eclipse Public License (EPL) 1.0. // See http://www.eclipse.org/legal/epl-v10.html for details. package org.projectusus.autotestsuite.ui.internal.util; import static org.projectusus.autotestsuite.AutoTestSuitePlugin.log; 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; import org.eclipse.swt.widgets.Display; import org.osgi.framework.Bundle; import org.projectusus.autotestsuite.AutoTestSuitePlugin; public class AutoTestSuiteUIImages implements ISharedAutoTestSuiteImages { private static URL baseUrl; private static final ISharedAutoTestSuiteImages _instance = new AutoTestSuiteUIImages(); private ImageRegistry imageRegistry; static { String pathPrefix = "icons/"; try { Bundle bundle = AutoTestSuitePlugin.getDefault().getBundle(); baseUrl = new URL(bundle.getEntry("/"), pathPrefix); } catch (MalformedURLException malfux) { // do nothing } } private final static String OBJECT = "obj16/"; // basic colors - size 16x16 private AutoTestSuiteUIImages() { // no instantiation } public static ISharedAutoTestSuiteImages getSharedImages() { return _instance; } public Image getImage(String key) { return getImageRegistry().get(key); } public ImageDescriptor getDescriptor(String key) { return getImageRegistry().getDescriptor(key); } private void declareImages() { declare(OBJ_JUNIT_3, OBJECT + "junit3.gif"); declare(OBJ_JUNIT_4, OBJECT + "junit4.gif"); declare(OBJ_TAB, OBJECT + "tab.gif"); } private void declare(final String key, final String path) { ImageDescriptor desc = ImageDescriptor.getMissingImageDescriptor(); try { desc = ImageDescriptor.createFromURL(makeIconFileURL(path)); } catch (MalformedURLException exception) { log(exception); } imageRegistry.put(key, desc); } private ImageRegistry getImageRegistry() { if (imageRegistry == null) { initializeImageRegistry(); } return imageRegistry; } private ImageRegistry initializeImageRegistry() { imageRegistry = new ImageRegistry(Display.getDefault()); declareImages(); return imageRegistry; } private URL makeIconFileURL(final String iconPath) throws MalformedURLException { if (baseUrl == null) { throw new MalformedURLException(); } return new URL(baseUrl, iconPath); } }