package com.xenoage.zong.commands.core.music;
import com.xenoage.utils.document.command.Command;
import com.xenoage.utils.document.command.Undoability;
import com.xenoage.utils.math.Fraction;
import com.xenoage.zong.core.header.ColumnHeader;
import com.xenoage.zong.core.music.ColumnElement;
import com.xenoage.zong.core.music.MeasureSide;
/**
* Removes the given {@link ColumnElement} from the given {@link ColumnHeader}.
*
* @author Andreas Wenger
*/
public class ColumnElementRemove
implements Command {
//data
private ColumnHeader column;
private ColumnElement element;
//backup data
private Fraction beat;
private MeasureSide side;
public ColumnElementRemove(ColumnHeader column, ColumnElement element) {
this.column = column;
this.element = element;
}
@Override public void execute() {
beat = column.getChildMP(element).beat;
side = column.getSide(element);
column.removeColumnElement(element);
}
@Override public Undoability getUndoability() {
return Undoability.Undoable;
}
@Override public void undo() {
column.setColumnElement(element, beat, side);
}
}