/**
*
*/
package icy.roi.edit;
import icy.main.Icy;
import icy.roi.ROI;
import icy.sequence.Sequence;
import icy.undo.AbstractIcyUndoableEdit;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Base multiple ROI undoable edit.
*
* @author Stephane
*/
public abstract class AbstractROIsEdit extends AbstractIcyUndoableEdit
{
public AbstractROIsEdit(List<? extends ROI> rois, String name)
{
super(rois, name);
}
public AbstractROIsEdit(List<? extends ROI> rois)
{
this(rois, (rois.size() > 1) ? "ROIs changed" : "ROI changed");
}
@SuppressWarnings("unchecked")
public List<? extends ROI> getROIs()
{
return (List<? extends ROI>) getSource();
}
protected Set<Sequence> getSequences()
{
final Set<Sequence> result = new HashSet<Sequence>();
for (ROI roi : getROIs())
result.addAll(Icy.getMainInterface().getSequencesContaining(roi));
return result;
}
}