001package plugins.kernel.roi.descriptor.property;
002
003import icy.roi.ROI;
004import icy.roi.ROIDescriptor;
005import icy.roi.ROIEvent;
006import icy.roi.ROIEvent.ROIEventType;
007import icy.sequence.Sequence;
008import icy.util.StringUtil;
009
010import java.awt.Color;
011
012public class ROIColorDescriptor extends ROIDescriptor
013{
014    public static final String ID = "Color";
015
016    public ROIColorDescriptor()
017    {
018        super(ID, "Color", Color.class);
019    }
020
021    @Override
022    public String getDescription()
023    {
024        return "Color";
025    }
026
027    @Override
028    public boolean needRecompute(ROIEvent change)
029    {
030        return (change.getType() == ROIEventType.PROPERTY_CHANGED)
031                && (StringUtil.equals(change.getPropertyName(), ROI.PROPERTY_COLOR));
032    }
033
034    @Override
035    public Object compute(ROI roi, Sequence sequence) throws UnsupportedOperationException
036    {
037        return getColor(roi);
038    }
039
040    /**
041     * Returns ROI color
042     */
043    public static Color getColor(ROI roi)
044    {
045        if (roi == null)
046            return null;
047
048        return roi.getColor();
049    }
050}