package net.ms.designer.editors.componentdetail.commands;
import java.util.Iterator;
import net.ms.designer.editors.componentdetail.models.Element;
import net.ms.designer.editors.componentdetail.models.LogicGuide;
import net.ms.designer.editors.componentdetail.models.Messages;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.gef.commands.Command;
public class MoveGuideCommand extends Command
{
private int pDelta;
private LogicGuide guide;
public MoveGuideCommand(LogicGuide guide, int positionDelta)
{
super(Messages.getString("MoveGuideCommand.Label"));
this.guide = guide;
pDelta = positionDelta;
}
public void execute()
{
guide.setPosition(guide.getPosition() + pDelta);
Iterator iter = guide.getParts().iterator();
while (iter.hasNext())
{
Element part = (Element) iter.next();
Point location = part.getLocation().getCopy();
if (guide.isHorizontal())
{
location.y += pDelta;
} else
{
location.x += pDelta;
}
part.setLocation(location);
}
}
public void undo()
{
guide.setPosition(guide.getPosition() - pDelta);
Iterator iter = guide.getParts().iterator();
while (iter.hasNext())
{
Element part = (Element) iter.next();
Point location = part.getLocation().getCopy();
if (guide.isHorizontal())
{
location.y -= pDelta;
} else {
location.x -= pDelta;
}
part.setLocation(location);
}
}
}