package enfo.ui.view; import org.eclipse.jface.resource.ImageRegistry; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.graphics.Image; import org.eclipse.ui.ISharedImages; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.views.IViewCategory; import org.eclipse.ui.views.IViewDescriptor; public class ViewLabelProvider extends LabelProvider { private ImageRegistry images; /** * Not to be disposed. */ private Image sharedImg; public ViewLabelProvider() { images = new ImageRegistry(PlatformUI.getWorkbench().getDisplay()); sharedImg = PlatformUI.getWorkbench().getSharedImages() .getImage(ISharedImages.IMG_OBJ_FOLDER); } @Override public Image getImage(Object element) { if (element instanceof IViewCategory) { return sharedImg; } else if (element instanceof IViewDescriptor) { IViewDescriptor view = (IViewDescriptor) element; Image img = images.get(view.getId()); if (img == null) { img = view.getImageDescriptor().createImage(); images.put(view.getId(), img); } return img; } return null; } @Override public void dispose() { images.dispose(); super.dispose(); } @Override public String getText(Object element) { if (element instanceof IViewDescriptor) { return ((IViewDescriptor) element).getLabel().replace("&", ""); } else if (element instanceof IViewCategory) { return ((IViewCategory) element).getLabel().replace("&", ""); } return null; } }