package enfo.ui.perspective;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.IPerspectiveDescriptor;
import org.eclipse.ui.PlatformUI;
public class PerspectiveLabelProvider extends LabelProvider {
private ImageRegistry images;
public PerspectiveLabelProvider() {
images = new ImageRegistry(PlatformUI.getWorkbench().getDisplay());
}
@Override
public Image getImage(Object element) {
if (element instanceof IPerspectiveDescriptor) {
IPerspectiveDescriptor p = (IPerspectiveDescriptor) element;
Image img = images.get(p.getId());
if (img == null) {
img = p.getImageDescriptor().createImage();
images.put(p.getId(), img);
}
return img;
}
return super.getImage(element);
}
@Override
public String getText(Object element) {
if (element instanceof IPerspectiveDescriptor) {
return ((IPerspectiveDescriptor) element).getLabel();
}
return super.getText(element);
}
@Override
public void dispose() {
images.dispose();
super.dispose();
}
}