package org.framed.orm.ui.command;
import org.framed.orm.geometry.Rectangle;
import org.eclipse.gef.commands.Command;
import org.framed.orm.model.Model;
import org.framed.orm.model.Shape;
/**
* @author Lars Schuetze
*
*/
public class ORMAddCommand extends Command {
private Model parent;
private Shape child;
private Model oldParent;
private Rectangle oldBoundaries;
private Rectangle boundaries;
public ORMAddCommand() {
super("ORMAddCommand");
}
@Override
public boolean canExecute() {
return ((parent != null) && (child != null));
}
@Override
public void execute() {
oldParent = child.getContainer();
oldBoundaries = child.getBoundaries();
redo();
}
@Override
public void redo() {
child.setContainer(parent);
child.setBoundaries(boundaries);
}
@Override
public void undo() {
child.setContainer(oldParent);
child.setBoundaries(oldBoundaries);
}
public void setChild(Shape child) {
this.child = child;
}
public void setParent(Model parent) {
this.parent = parent;
}
public void setBoundaries(Rectangle constraint) {
this.boundaries = constraint;
}
}