package org.eclipse.buckminster.generic.ui.utils; import org.eclipse.core.resources.IFile; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbench; public class UiUtils { /** * Returns an image for a descriptor for the default Display. Use this * methods for created images (that should not be disposed). * * @param imageDescriptor * @return */ public static Image getImage(ImageDescriptor imageDescriptor) { return new Image(Display.getDefault(), imageDescriptor.getImageData()); } /** * Gets an ImageDescriptor for the File based on what is registered in the * editor registry. * * @param file * @return */ public static ImageDescriptor getImageDescriptor(IFile file) { return getImageDescriptor(getWorkbench(), file.getName()); } public static ImageDescriptor getImageDescriptor(IWorkbench workbench, String fileName) { return workbench.getEditorRegistry().getImageDescriptor(fileName); } public static ImageDescriptor getImageDescriptor(String fileName) { return getImageDescriptor(getWorkbench(), fileName); } /** * Get the workbench when there is not other starting point. This method * uses a restricted API to get the workbench from UIPlugin. * * @return */ @SuppressWarnings("restriction") public static IWorkbench getWorkbench() { return org.eclipse.ui.internal.UIPlugin.getDefault().getWorkbench(); } /** * Get the workbench from a view part. * * @param viewPart * @return */ public static IWorkbench getWorkbench(IViewPart viewPart) { return viewPart.getViewSite().getWorkbenchWindow().getWorkbench(); } }