/******************************************************************************* * Copyright (c) 2010, 2016 Ericsson, EfficiOS Inc. and others * * All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html *******************************************************************************/ package org.eclipse.tracecompass.tmf.ui.project.model; import static org.eclipse.tracecompass.common.core.NonNullUtils.checkNotNull; import java.net.URL; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.eclipse.tracecompass.internal.tmf.ui.Activator; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.model.WorkbenchLabelProvider; import org.osgi.framework.Bundle; /** * Facilities to load icons used in the Project View. * * @author Alexandre Montplaisir * @since 2.0 */ final class TmfProjectModelIcons { private TmfProjectModelIcons() {} public static final @NonNull Image DEFAULT_TRACE_ICON; public static final @NonNull Image DEFAULT_EXPERIMENT_ICON; public static final @NonNull Image DEFAULT_ANALYSIS_ICON; public static final @NonNull Image DEFAULT_VIEW_ICON; public static final @NonNull Image DEFAULT_REPORT_ICON; public static final @NonNull Image FOLDER_ICON; public static final @NonNull Image VIEWS_ICON; public static final @NonNull Image ONDEMAND_ANALYSES_ICON; public static final @NonNull Image BUILT_IN_ONDEMAND_ICON; public static final @NonNull Image USER_DEFINED_ONDEMAND_ICON; public static final @NonNull Image REPORTS_ICON; public static final WorkbenchLabelProvider WORKSPACE_LABEL_PROVIDER = new WorkbenchLabelProvider(); private static final String TRACE_ICON_FILE = "icons/elcl16/trace.gif"; //$NON-NLS-1$ private static final String EXPERIMENT_ICON_FILE = "icons/elcl16/experiment.gif"; //$NON-NLS-1$ private static final String ANALYSIS_ICON_FILE = "icons/ovr16/experiment_folder_ovr.png"; //$NON-NLS-1$ private static final String BUILT_IN_ONDEMAND_FILE = "icons/ovr16/built_in_ondemand_ovr.gif"; //$NON-NLS-1$ private static final String USER_DEFINED_ONDEMAND_FILE = "icons/ovr16/user_defined_ondemand_ovr.gif"; //$NON-NLS-1$ private static final String VIEW_ICON_FILE = "icons/obj16/node_obj.gif"; //$NON-NLS-1$ private static final String ONDEMAND_ANALYSES_ICON_FILE = "icons/obj16/debugt_obj.gif"; //$NON-NLS-1$ private static final String REPORTS_ICON_FILE = "icons/obj16/arraypartition_obj.gif"; //$NON-NLS-1$ private static final String DEFAULT_REPORT_ICON_FILE = "icons/etool16/copy_edit.gif"; //$NON-NLS-1$ private static final String VIEWS_ICON_FILE = "icons/obj16/analysisprovider_obj.gif"; //$NON-NLS-1$ // ------------------------------------------------------------------------ // Initialization // ------------------------------------------------------------------------ static { ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages(); Bundle bundle = Activator.getDefault().getBundle(); FOLDER_ICON = checkNotNull(sharedImages.getImage(ISharedImages.IMG_OBJ_FOLDER)); ONDEMAND_ANALYSES_ICON = checkNotNull(loadIcon(bundle, ONDEMAND_ANALYSES_ICON_FILE)); REPORTS_ICON = checkNotNull(loadIcon(bundle, REPORTS_ICON_FILE)); BUILT_IN_ONDEMAND_ICON = checkNotNull(loadIcon(bundle, BUILT_IN_ONDEMAND_FILE)); USER_DEFINED_ONDEMAND_ICON = checkNotNull(loadIcon(bundle, USER_DEFINED_ONDEMAND_FILE)); DEFAULT_TRACE_ICON = checkNotNull(loadIcon(bundle, TRACE_ICON_FILE)); DEFAULT_EXPERIMENT_ICON = checkNotNull(loadIcon(bundle, EXPERIMENT_ICON_FILE)); DEFAULT_ANALYSIS_ICON = checkNotNull(loadIcon(bundle, ANALYSIS_ICON_FILE)); DEFAULT_VIEW_ICON = checkNotNull(loadIcon(bundle, VIEW_ICON_FILE)); DEFAULT_REPORT_ICON = checkNotNull(loadIcon(bundle, DEFAULT_REPORT_ICON_FILE)); VIEWS_ICON = checkNotNull(loadIcon(bundle, VIEWS_ICON_FILE)); } public static @Nullable Image loadIcon(Bundle bundle, String url) { Activator plugin = Activator.getDefault(); String key = bundle.getSymbolicName() + "/" + url; //$NON-NLS-1$ Image icon = plugin.getImageRegistry().get(key); if (icon == null) { URL imageURL = bundle.getResource(url); ImageDescriptor descriptor = ImageDescriptor.createFromURL(imageURL); if (descriptor != null) { icon = descriptor.createImage(); plugin.getImageRegistry().put(key, icon); } } return icon; } }