ctbrec-5.3.2-experimental/client/src/main/java/ctbrec/ui/menu/PauseResumeHandler.java

48 lines
1.3 KiB
Java

package ctbrec.ui.menu;
import lombok.extern.slf4j.Slf4j;
import java.util.List;
import ctbrec.Model;
import ctbrec.recorder.Recorder;
import ctbrec.ui.action.PauseAction;
import ctbrec.ui.action.ResumeAction;
import javafx.scene.Node;
@Slf4j
public class PauseResumeHandler {
private Node source;
private Recorder recorder;
private Runnable callback;
public PauseResumeHandler(Node source, Recorder recorder, Runnable callback) {
this.source = source;
this.recorder = recorder;
this.callback = callback;
}
protected void pause(List<Model> selectedModels) {
new PauseAction(source, selectedModels, recorder).execute()
.exceptionally(ex -> {
log.error("Error while pausing recordings", ex);
return null;
}).whenComplete((r, ex) -> executeCallback());
}
protected void resume(List<Model> selectedModels) {
new ResumeAction(source, selectedModels, recorder).execute()
.exceptionally(ex -> {
log.error("Error while resuming recordings", ex);
return null;
}).whenComplete((r, ex) -> executeCallback());
}
private void executeCallback() {
try {
callback.run();
} catch (Exception e) {
log.error("Error while executing menu callback", e);
}
}
}