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.ui.colors; 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.core.util.Defect; import org.projectusus.ui.internal.UsusUIPlugin; public class UsusUIImages implements ISharedUsusImages { private static URL baseUrl; private static final ISharedUsusImages _instance = new UsusUIImages(); private ImageRegistry imageRegistry; static { String pathPrefix = "icons/full/"; //$NON-NLS-1$ try { Bundle bundle = UsusUIPlugin.getDefault().getBundle(); baseUrl = new URL(bundle.getEntry("/"), pathPrefix); //$NON-NLS-1$ } catch (MalformedURLException malfux) { throw new Defect(malfux); } } private final static String OBJECT = "obj16/"; // basic colors - size 16x16 //$NON-NLS-1$ private final static String VIEW = "eview16/"; // basic colors - size 16x16 //$NON-NLS-1$ private UsusUIImages() { // no instantiation } public static ISharedUsusImages 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_CODE_PROPORTIONS, OBJECT + "codeproportions.gif"); //$NON-NLS-1$ declare(OBJ_INFO, OBJECT + "info.gif"); //$NON-NLS-1$ declare(OBJ_WARNINGS, OBJECT + "warnings.gif"); //$NON-NLS-1$ declare(VIEW_WARNING, VIEW + "warning.gif"); //$NON-NLS-1$ declare(OBJ_LEVELUP, OBJECT + "levelup.gif"); //$NON-NLS-1$ declare(OBJ_LEVELDOWN, OBJECT + "leveldown.gif"); //$NON-NLS-1$ declare(OBJ_NEW, OBJECT + "new.gif"); //$NON-NLS-1$ declare(OBJ_DELETED, OBJECT + "deleted.gif"); //$NON-NLS-1$ } private void declare(final String key, final String path) { ImageDescriptor desc = ImageDescriptor.getMissingImageDescriptor(); try { desc = ImageDescriptor.createFromURL(makeIconFileURL(path)); } catch (MalformedURLException malfux) { UsusUIPlugin.getDefault().log(malfux); } 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); } public Image getTrendImage(int trend) { if (trend == 0) { return null; } return getImage(trend > 0 ? OBJ_LEVELDOWN : OBJ_LEVELUP); } public Image getTrendImage(int oldMetricsValue, int currentMetricsValue) { if (oldMetricsValue == 0) { return getImage(OBJ_NEW); } if (currentMetricsValue == 0) { return getImage(OBJ_DELETED); } if (oldMetricsValue == currentMetricsValue) { return null; } return getImage(currentMetricsValue > oldMetricsValue ? OBJ_LEVELDOWN : OBJ_LEVELUP); } }