/**
*
*/
package icy.sequence.edit;
import icy.sequence.Sequence;
import java.awt.Image;
import javax.swing.undo.CannotUndoException;
import loci.formats.ome.OMEXMLMetadataImpl;
/**
* Default lazy sequence metadata undoable edit (do a complete sequence metadata copy to restore
* previous state).<br>
* Do not handle redo operation to not consume too much memory.
*
* @author Stephane
*/
public class MetadataSequenceEdit extends AbstractSequenceEdit
{
OMEXMLMetadataImpl previous;
public MetadataSequenceEdit(OMEXMLMetadataImpl previous, Sequence sequence, Image icon)
{
super(sequence, "Sequence metadata changed", icon);
this.previous = previous;
}
public MetadataSequenceEdit(OMEXMLMetadataImpl previous, Sequence sequence)
{
this(previous, sequence, null);
}
@Override
public void undo() throws CannotUndoException
{
super.undo();
// undo
getSequence().setMetaData(previous);
}
@Override
public boolean canRedo()
{
return false;
}
}