/*
* transitionPriorityEdit.java
*/
package pipe.historyActions.transition;
import uk.ac.imperial.pipe.models.petrinet.Transition;
import javax.swing.undo.AbstractUndoableEdit;
/**
* In charge of setting transition angle
*/
public class TransitionRotation extends AbstractUndoableEdit {
private final int newAngle;
private final Transition transition;
private final int oldAngle;
public TransitionRotation(final Transition transition, final int oldAngle, final int newAngle) {
this.transition = transition;
this.oldAngle = oldAngle;
this.newAngle = newAngle;
}
@Override
public int hashCode() {
int result = newAngle;
result = 31 * result + (transition != null ? transition.hashCode() : 0);
result = 31 * result + oldAngle;
return result;
}
@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final TransitionRotation that = (TransitionRotation) o;
if (newAngle != that.newAngle) {
return false;
}
if (oldAngle != that.oldAngle) {
return false;
}
if (transition != null ? !transition.equals(that.transition) : that.transition != null) {
return false;
}
return true;
}
/** */
@Override
public void undo() {
super.undo();
transition.setAngle(oldAngle);
}
/** */
@Override
public void redo() {
super.redo();
transition.setAngle(newAngle);
}
}