int priorState;
float saveRate;
@Override
public void mousePressed(MouseEvent mouseEvent) {
if (isOperational()) {
Controller controller = getController();
saveRate = controller.getRate();
priorState = controller.getState();
if (priorState == Controller.Started) {
controller.stop();
}
controller.setRate(-1.0f * saveRate);
Time now = controller.getTimeBase().getTime();
controller.syncStart(now);
}
}
@Override
public void mouseReleased(MouseEvent event) {
if (isOperational()) {
Controller controller = getController();
controller.setRate(saveRate);
if (priorState != Controller.Started) {
controller.stop();
}
}
}
};
}