/** * */ package plugins.kernel.roi.descriptor.property; import icy.roi.ROI; import icy.roi.ROIDescriptor; import icy.roi.ROIEvent; import icy.roi.ROIEvent.ROIEventType; import icy.sequence.Sequence; import icy.util.StringUtil; import java.awt.Image; /** * Icon descriptor class (see {@link ROIDescriptor}).<br> * Return the ROI icon a 20 pixels side icon * * @author Stephane */ public class ROIIconDescriptor extends ROIDescriptor { public static final String ID = "Icon"; public ROIIconDescriptor() { super(ID, "Icon", Image.class); } @Override public String getDescription() { return "Icon"; } @Override public boolean needRecompute(ROIEvent change) { return (change.getType() == ROIEventType.PROPERTY_CHANGED) && (StringUtil.equals(change.getPropertyName(), ROI.PROPERTY_ICON)); } @Override public Object compute(ROI roi, Sequence sequence) throws UnsupportedOperationException { return getIcon(roi); } /** * Returns ROI icon */ public static Image getIcon(ROI roi) { if (roi == null) return null; // return ImageUtil.getColorImageFromAlphaImage(roi.getIcon(), ColorUtil.mix(Color.gray, roi.getColor())); return roi.getIcon(); } }