package pipe.actions.gui;
import pipe.controllers.GUIAnimator;
import pipe.controllers.PetriNetController;
import pipe.controllers.application.PipeApplicationController;
import java.awt.event.ActionEvent;
/**
* Steps back in the animation sequence, i.e. undoes the last transition fired when clicked
*/
public class StepBackwardAction extends AnimateAction {
private final PipeApplicationController applicationController;
private final StepForwardAction stepForwardAction;
public StepBackwardAction(String name, String tooltip, String keystroke,
PipeApplicationController applicationController, StepForwardAction stepForwardAction) {
super(name, tooltip, keystroke);
this.applicationController = applicationController;
this.stepForwardAction = stepForwardAction;
}
@Override
public void actionPerformed(ActionEvent event) {
PetriNetController petriNetController = applicationController.getActivePetriNetController();
GUIAnimator animator = petriNetController.getAnimator();
animator.stepBack();
stepForwardAction.setEnabled(animator.isStepForwardAllowed());
this.setEnabled(animator.isStepBackAllowed());
}
}