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}