package ie.dcu.apps.ist.widgets; import java.net.URL; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; public class ImageMenuManager extends MenuManager { private Image image; public ImageMenuManager() { super(); } public ImageMenuManager(String text) { super(text); } public ImageMenuManager(String text, URL imageURL) { super(text); setImageURL(imageURL); } public void setImageURL(URL url) { ImageDescriptor descriptor = ImageDescriptor.createFromURL(url); this.image = descriptor.createImage(); } @Override public void dispose() { super.dispose(); if (image != null) { image.dispose(); } } @Override public void fill(Menu parent, int index) { super.fill(parent, index); MenuItem item = getMenuItem(); if (item != null) { item.setImage(image); } } protected MenuItem getMenuItem() { Menu menu = getMenu(); return (menu != null) ? menu.getParentItem() : null; } }