Dienstag, 27. März 2012

plug in your images revisited

this is a small refresh (small modifications) of "plug in your images" from here

go to your Activator
public class Activator extends AbstractUIPlugin
 and add/override the two following functions:

public static final String ToolbarIcon = "image.myimage";   
public static Image getImage(String imageId) {
        AbstractUIPlugin plugin = Activator.getDefault();
        ImageRegistry imageRegistry = plugin.getImageRegistry();
        return imageRegistry.get(imageId);
    }

    @Override
    protected void initializeImageRegistry(ImageRegistry registry) {
        super.initializeImageRegistry(registry);
        Bundle bundle = getBundle();

        ImageDescriptor myImage = ImageDescriptor.createFromURL(FileLocator
                .find(bundle, new Path("icons/toolbar_16.png"), null));
        registry.put(ToolbarIcon, myImage);
    }
now you can access the image  ToolbarIcon from your view simply by calling:
Activator.getImage(Activator.ToolbarIcon)


EXAMPLE OF YOUR ACTIVATOR:
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.ImageRegistry;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;

public class Activator extends AbstractUIPlugin {

    public static final String Icon32 = "image.icon32";
    private static Activator instance;
 
 
    public static Activator getDefault() {
        return instance;
    }

    public static Image getImage(String imageId) {
        AbstractUIPlugin plugin = Activator.getDefault();
        ImageRegistry imageRegistry = plugin.getImageRegistry();
        return imageRegistry.get(imageId);
    }

    @Override
    protected void initializeImageRegistry(ImageRegistry registry) {
        super.initializeImageRegistry(registry);
        load(registry, Icon32, "icons/icon.png");
    }
  
    private void load(ImageRegistry registry, String constant, String fileName) {
        ImageDescriptor icon = ImageDescriptor.createFromURL(FileLocator
                .find(getBundle(), new Path(fileName), null));
        registry.put(constant, icon);
    }

    public Activator() {
        instance = this;
    }
}