package net.certware.core.ui.splash;
import net.certware.core.ui.CertWareUI;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.events.PaintEvent;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.internal.splash.EclipseSplashHandler;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@SuppressWarnings("restriction")
public class OverlaySplashHandler extends EclipseSplashHandler {
/** path to splash overlay */
private static final String BETA_PNG = "icons/splash/badge_beta.jpg";
/** border from corner */
private static final int BORDER = 10;
/** image reference to dispose */
private Image image;
public OverlaySplashHandler() {
super();
}
@Override
public void init(Shell splash) {
super.init(splash);
ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin(CertWareUI.PLUGIN_ID, BETA_PNG);
if (descriptor != null)
image = descriptor.createImage();
if (image !=null) {
final int xposition = splash.getSize().x - image.getImageData().width - BORDER;
final int yposition = BORDER;
getContent().addPaintListener (new PaintListener () {
public void paintControl (PaintEvent e) {
e.gc.drawImage (image, xposition, yposition);
}
});
}
}
@Override
public void dispose() {
super.dispose();
if (image != null)
image.dispose();
}
}