package runjettyrun.tabs.action.helper;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.eclipse.core.runtime.IAdaptable;
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.model.IWorkbenchAdapter;
/**
* Extracted from DefaultLabelProvider , only for IProject .
* @author tony
*
*/
public class ProjectLabelProvider implements ILabelProvider{
private Map<ImageDescriptor, Image> fImages = new HashMap<ImageDescriptor, Image>();
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
Iterator<Image> iterator = fImages.values().iterator();
while (iterator.hasNext()) {
Image image = (Image) iterator.next();
image.dispose();
}
fImages.clear();
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
private Image getImage(ImageDescriptor descriptor) {
Image image = (Image) fImages.get(descriptor);
if (image != null) {
return image;
}
image = descriptor.createImage();
if (image != null) {
fImages.put(descriptor, image);
}
return image;
}
public Image getImage(Object element) {
if (element instanceof IAdaptable) {
IWorkbenchAdapter de= (IWorkbenchAdapter) ((IAdaptable) element).getAdapter(IWorkbenchAdapter.class);
if (de != null) {
ImageDescriptor descriptor= de.getImageDescriptor(element);
if( descriptor != null) {
return getImage(descriptor);
}
}
return null;
}
return null;
}
public String getText(Object element) {
if (element instanceof IAdaptable) {
IWorkbenchAdapter de= (IWorkbenchAdapter) ((IAdaptable) element).getAdapter(IWorkbenchAdapter.class);
if (de != null) {
return de.getLabel(element);
}
}
return "";
}
}