package es.upm.dit.gsi.eclipse.jadex.diagram.figures;
import org.eclipse.draw2d.Figure;
import org.eclipse.draw2d.GridData;
import org.eclipse.draw2d.GridLayout;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.ImageFigure;
import org.eclipse.draw2d.LayoutManager;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
/**
* @author Paco
* @author Pablo
*/
public abstract class Shape extends Figure {
public Shape() {
GridLayout layout = new GridLayout(1, false);
super.setLayoutManager(layout);
add(new ImageFigure(getShapeImage()), new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false, 1, 1));
}
@Override
public void setLayoutManager(LayoutManager manager) {
}
@Override
public void add(IFigure figure, Object constraint, int index) {
constraint = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
super.add(figure, constraint, index);
}
protected abstract Image getShapeImage();
protected Image getImageImage(String path) {
Image image = JFaceResources.getImageRegistry().get(path);
if (image == null) {
ImageDescriptor descriptor = AbstractUIPlugin.imageDescriptorFromPlugin("es.upm.dit.gsi.eclipse.jadex.diagram", path); //$NON-NLS-1$
if (descriptor == null) {
descriptor = ImageDescriptor.getMissingImageDescriptor();
}
JFaceResources.getImageRegistry().put(path, image = descriptor.createImage());
}
return image;
}
}