48 lines
1.3 KiB
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);
|
|
}
|
|
}
|
|
}
|