// 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 ); } }