package com.xrosstools.xunit.editor.commands;
import org.eclipse.gef.commands.Command;
import com.xrosstools.xunit.editor.model.UnitNode;
import com.xrosstools.xunit.editor.model.UnitNodeContainer;
public class UnitNodeContainerAddCommand extends Command {
private UnitNodeContainer oldParent;
private int oldIndex;
private UnitNodeContainer newParent;
private UnitNode unit;
private int index;
public UnitNodeContainerAddCommand(UnitNodeContainer oldParent, UnitNodeContainer newParent, UnitNode unit, int index){
this.oldParent = oldParent;
this.oldIndex = oldParent.indexOf(unit);
this.newParent = newParent;
this.unit = unit;
this.index = index;
}
public void execute() {
oldParent.remove(unit);
newParent.add(index, unit);
}
public String getLabel() {
return "Add Node";
}
public void redo() {
execute();
}
public void undo() {
newParent.remove(unit);
oldParent.add(oldIndex, unit);
}
}