package org.xmind.ui.internal.decorators; import org.eclipse.draw2d.IFigure; import org.eclipse.swt.graphics.Image; import org.xmind.gef.draw2d.SizeableImageFigure; import org.xmind.gef.part.Decorator; import org.xmind.gef.part.IGraphicalPart; import org.xmind.ui.mindmap.IInfoItemPart; public class InfoItemIconDecorator extends Decorator { private static final InfoItemIconDecorator instance = new InfoItemIconDecorator(); @Override public void decorate(IGraphicalPart part, IFigure figure) { super.decorate(part, figure); if (figure instanceof SizeableImageFigure) { SizeableImageFigure imgFigure = (SizeableImageFigure) figure; Image image = null; if (part instanceof IInfoItemPart) { image = ((IInfoItemPart) part).getImage(); } else { image = (Image) part.getAdapter(Image.class); } imgFigure.setImage(image); imgFigure.setPreferredSize(imgFigure.getImageSize()); } } public void deactivate(IGraphicalPart part, IFigure figure) { super.deactivate(part, figure); if (figure instanceof SizeableImageFigure) { SizeableImageFigure imgFigure = (SizeableImageFigure) figure; imgFigure.setImage(null); } } public static InfoItemIconDecorator getInstance() { return instance; } }