/*
This file is part of j2dcg.
j2dcg is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
j2dcg is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with j2dcg; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package controller.transformation;
import java.awt.geom.AffineTransform;
import java.util.Iterator;
import java.util.List;
import controller.Command;
import controller.MementoTracker;
import model.Shape;
/**
* <p>Title: TranslateCommand</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004 Eric Paquette</p>
* <p>Company: (TS) - cole de Technologie Suprieure</p>
* <p>Created on: 2004-03-15</p>
* @author Eric Paquette
* @version $Revision: 1.2 $
*/
public class TranslateCommand extends Command {
public TranslateCommand(int aX, int aY, List<?> aObjects) {
x = aX;
y = aY;
objects = aObjects;
}
/* (non-Javadoc)
* @see controller.Command#execute()
*/
public void execute() {
Iterator<?> iter = objects.iterator();
Shape shape;
while(iter.hasNext()){
shape = (Shape)iter.next();
mt.addMememto(shape);
AffineTransform t = shape.getAffineTransform();
t.translate(x,y);
shape.setAffineTransform(t);
}
}
/* (non-Javadoc)
* @see controller.Command#undo()
*/
public void undo() {
mt.setBackMementos();
}
private MementoTracker mt = new MementoTracker();
private List<?> objects;
private int x;
private int y;
}
|