/*
* TranslatePetriNetObjectEdit.java
*/
package pipe.historyActions.component;
import uk.ac.imperial.pipe.models.petrinet.PlaceablePetriNetComponent;
import javax.swing.undo.AbstractUndoableEdit;
import java.awt.geom.Point2D;
/**
* Undo action for moving petri net objects on the canvas
*/
public class MovePetriNetObject
extends AbstractUndoableEdit
{
/**
* Petri net component that can be moved
*/
private final PlaceablePetriNetComponent component;
/**
* Initial point
*/
private final Point2D starting;
/**
* Translated point
*/
private final Point2D translated;
/**
* Constructor
* @param component moveable Petri net component
* @param starting initial location
* @param translated translated location
*/
public MovePetriNetObject(PlaceablePetriNetComponent component, Point2D starting, Point2D translated) {
this.component = component;
this.starting = starting;
this.translated = translated;
}
/**
* Sets the components location to its initial location
*/
@Override
public void undo() {
super.undo();
component.setX((int) starting.getX());
component.setY((int) starting.getY());
}
/**
* Sets the component location to its translated location
*/
@Override
public void redo() {
super.redo();
component.setX((int) translated.getX());
component.setY((int) translated.getY());
}
}