package com.xenoage.zong.commands.core.music.group; import com.xenoage.utils.document.command.Command; import com.xenoage.utils.document.command.Undoability; import com.xenoage.zong.core.music.StavesList; import com.xenoage.zong.core.music.group.BarlineGroup; /** * Removes a {@link BarlineGroup}. * * @author Andreas Wenger */ public class BarlineGroupRemove implements Command { //data private StavesList stavesList; private BarlineGroup group; //backup data private int groupIndex; public BarlineGroupRemove(StavesList stavesList, BarlineGroup group) { this.stavesList = stavesList; this.group = group; } @Override public void execute() { //remember element index, since the list is sorted groupIndex = stavesList.getBarlineGroups().indexOf(group); if (groupIndex == -1) throw new IllegalStateException("group is unknown"); stavesList.getBarlineGroups().remove(group); } @Override public Undoability getUndoability() { return Undoability.Undoable; } @Override public void undo() { stavesList.getBarlineGroups().add(groupIndex, group); } }