/******************************************************************************* * Copyright (c) 2005, 2016 IBM Corporation 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 * * Contributors: * IBM Corporation - initial API and implementation * Mickael Istria (Red Hat Inc.) - [266030] Allow "others" working set *******************************************************************************/ package org.eclipse.ui.internal.navigator.workingsets; import java.net.URL; import java.util.Collections; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.Path; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.IWorkingSet; import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorMessages; import org.eclipse.ui.internal.navigator.resources.plugin.WorkbenchNavigatorPlugin; import org.eclipse.ui.model.WorkbenchLabelProvider; /** * Provides a text label and icon for Working Sets. * */ public class WorkingSetsLabelProvider implements ILabelProvider { private WorkbenchLabelProvider labelProvider = new WorkbenchLabelProvider(); private Image workingSetImage; @Override public Image getImage(Object element) { if (element instanceof IWorkingSet) return labelProvider.getImage(element); if (element == WorkingSetsContentProvider.OTHERS_WORKING_SET) { return getWorkingSetImage(); } return null; } private Image getWorkingSetImage() { if (workingSetImage == null) { URL iconUrl = FileLocator.find(WorkbenchNavigatorPlugin.getDefault().getBundle(), Path.fromPortableString("icons/full/obj16/workingsets.png"), //$NON-NLS-1$ Collections.emptyMap()); workingSetImage = ImageDescriptor.createFromURL(iconUrl).createImage(); } return workingSetImage; } @Override public String getText(Object element) { if (element instanceof IWorkingSet) return ((IWorkingSet) element).getLabel(); if (element == WorkingSetsContentProvider.OTHERS_WORKING_SET) { return WorkbenchNavigatorMessages.workingSet_others; } return null; } @Override public void addListener(ILabelProviderListener listener) { } @Override public void dispose() { if (workingSetImage != null) { workingSetImage.dispose(); } } @Override public boolean isLabelProperty(Object element, String property) { return false; } @Override public void removeListener(ILabelProviderListener listener) { } }