1 /*******************************************************************************
2  * Copyright (c) 2008, 2015 Code 9 Corporation and others.
3  *
4  * This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License 2.0
6  * which accompanies this distribution, and is available at
7  * https://www.eclipse.org/legal/epl-2.0/
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  *     Code 9 Corporation - initial API and implementation
13  *     Rafael Oliveira Nobrega <rafael.oliveira@gmail.com> - bug 242028
14  *     Lars.Vogel <Lars.Vogel@vogella.com> - Bug 465781
15  *******************************************************************************/
16 package org.eclipse.pde.internal.ds.ui;
17 
18 import org.eclipse.jface.resource.ImageDescriptor;
19 import org.eclipse.jface.viewers.DecorationOverlayIcon;
20 import org.eclipse.jface.viewers.IDecoration;
21 import org.eclipse.swt.graphics.Image;
22 
23 public final class SharedImages {
24 
SharedImages()25 	private SharedImages() { // do nothing
26 	}
27 
28 	public final static int F_DYNAMIC = 1;
29 
30 	public final static String ICONS_PATH = "icons/"; //$NON-NLS-1$
31 
32 	private static final String PATH_OBJ = ICONS_PATH + "obj16/"; //$NON-NLS-1$
33 	private static final String PATH_OVR = ICONS_PATH + "ovr16/"; //$NON-NLS-1$
34 	private static final String PATH_WIZBAN = ICONS_PATH + "wizban/"; //$NON-NLS-1$
35 
36 	public static final String DESC_IMPLEMENTATION = PATH_OBJ + "class_obj.png"; //$NON-NLS-1$
37 	public static final String DESC_PROPERTY = PATH_OBJ + "property_obj.png"; //$NON-NLS-1$
38 	public static final String DESC_PROPERTIES = PATH_OBJ
39 			+ "properties_obj.png"; //$NON-NLS-1$
40 	public static final String DESC_PROVIDE = PATH_OBJ + "int_obj.png"; //$NON-NLS-1$
41 	public static final String DESC_REFERENCE = PATH_OBJ + "reference_obj.png"; //$NON-NLS-1$
42 	public static final String DESC_REFERENCE_ONE_N = PATH_OBJ
43 			+ "reference_one_n_obj.png"; //$NON-NLS-1$
44 	public static final String DESC_REFERENCE_ZERO_ONE = PATH_OBJ
45 			+ "reference_zero_one_obj.png"; //$NON-NLS-1$
46 	public static final String DESC_REFERENCE_ZERO_N = PATH_OBJ
47 			+ "reference_zero_n_obj.png"; //$NON-NLS-1$
48 	public static final String DESC_ROOT = PATH_OBJ + "component_obj.png"; //$NON-NLS-1$
49 	public static final String DESC_SERVICE = PATH_OBJ + "service_obj.png"; //$NON-NLS-1$
50 	public static final String DESC_SERVICES = PATH_OBJ + "services_obj.png"; //$NON-NLS-1$
51 	public static final String DESC_DS = PATH_OBJ + "ds_obj.png"; //$NON-NLS-1$
52 	public static final String DESC_ATTR = PATH_OBJ + "attribute_obj.png"; //$NON-NLS-1$
53 	public static final String DESC_DETAILS = PATH_OBJ + "details_obj.png"; //$NON-NLS-1$
54 
55 	public static final String OVR_DYNAMIC = PATH_OVR + "synch_co.png"; //$NON-NLS-1$
56 
57 	public static final String DESC_DS_WIZ = PATH_WIZBAN + "defcon_wiz.png"; //$NON-NLS-1$
58 
getImageDescriptor(String key)59 	public static ImageDescriptor getImageDescriptor(String key) {
60 		return Activator.getDefault().getImageRegistry().getDescriptor(key);
61 	}
62 
getImage(String key)63 	public static Image getImage(String key) {
64 		return Activator.getDefault().getImageRegistry().get(key);
65 	}
66 
getImage(String key, int flags)67 	public static Image getImage(String key, int flags) {
68 		// TODO crufty code
69 		Image image = Activator.getDefault().getImageRegistry().get(key);
70 		if ((flags & F_DYNAMIC) != 0) {
71 			Image o = Activator.getDefault().getImageRegistry().get(
72 					key + OVR_DYNAMIC);
73 			if (o != null)
74 				return o;
75 			Image i = new DecorationOverlayIcon(image, SharedImages
76 					.getImageDescriptor(OVR_DYNAMIC),
77  IDecoration.TOP_RIGHT)
78 					.createImage();
79 			Activator.getDefault().getImageRegistry().put(key + OVR_DYNAMIC, i);
80 			return i;
81 		}
82 		return image;
83 	}
84 
85 }
86