Add buttons to pause/resume all recordings
This commit is contained in:
parent
afd5d3caa3
commit
0bd655bf95
|
@ -79,6 +79,8 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
|
||||||
Label modelLabel = new Label("Model");
|
Label modelLabel = new Label("Model");
|
||||||
AutoFillTextField model;
|
AutoFillTextField model;
|
||||||
Button addModelButton = new Button("Record");
|
Button addModelButton = new Button("Record");
|
||||||
|
Button pauseAll = new Button("Pause All");
|
||||||
|
Button resumeAll = new Button("Resume All");
|
||||||
|
|
||||||
public RecordedModelsTab(String title, Recorder recorder, List<Site> sites) {
|
public RecordedModelsTab(String title, Recorder recorder, List<Site> sites) {
|
||||||
super(title);
|
super(title);
|
||||||
|
@ -157,12 +159,15 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
|
||||||
model = new AutoFillTextField(suggestions);
|
model = new AutoFillTextField(suggestions);
|
||||||
model.setPrefWidth(600);
|
model.setPrefWidth(600);
|
||||||
model.setPromptText("e.g. MyFreeCams:ModelName or an URL like https://chaturbate.com/modelname/");
|
model.setPromptText("e.g. MyFreeCams:ModelName or an URL like https://chaturbate.com/modelname/");
|
||||||
model.onActionHandler(e -> addModel(e));
|
model.onActionHandler(this::addModel);
|
||||||
model.setTooltip(new Tooltip("To add a model enter SiteName:ModelName\n" +
|
model.setTooltip(new Tooltip("To add a model enter SiteName:ModelName\n" +
|
||||||
"press ENTER to confirm a suggested site name"));
|
"press ENTER to confirm a suggested site name"));
|
||||||
BorderPane.setMargin(addModelBox, new Insets(5));
|
BorderPane.setMargin(addModelBox, new Insets(5));
|
||||||
addModelButton.setOnAction((e) -> addModel(e));
|
addModelButton.setOnAction(this::addModel);
|
||||||
addModelBox.getChildren().addAll(modelLabel, model, addModelButton);
|
addModelBox.getChildren().addAll(modelLabel, model, addModelButton, pauseAll, resumeAll);
|
||||||
|
HBox.setMargin(pauseAll, new Insets(0, 0, 0, 20));
|
||||||
|
pauseAll.setOnAction(this::pauseAll);
|
||||||
|
resumeAll.setOnAction(this::resumeAll);
|
||||||
|
|
||||||
BorderPane root = new BorderPane();
|
BorderPane root = new BorderPane();
|
||||||
root.setPadding(new Insets(5));
|
root.setPadding(new Insets(5));
|
||||||
|
@ -246,6 +251,60 @@ public class RecordedModelsTab extends Tab implements TabSelectionListener {
|
||||||
alert.showAndWait();
|
alert.showAndWait();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void pauseAll(ActionEvent evt) {
|
||||||
|
getTabPane().setCursor(Cursor.WAIT);
|
||||||
|
threadPool.submit(() -> {
|
||||||
|
List<Model> models = recorder.getModelsRecording();
|
||||||
|
Exception ex = null;
|
||||||
|
for (Model model : models) {
|
||||||
|
try {
|
||||||
|
recorder.suspendRecording(model);
|
||||||
|
} catch (InvalidKeyException | NoSuchAlgorithmException | IllegalStateException | IOException e) {
|
||||||
|
LOG.error("Couldn't suspend model {}: {}", model, e.getMessage());
|
||||||
|
ex = e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final Exception exc = ex; // stupid compiler
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
getTabPane().setCursor(Cursor.DEFAULT);
|
||||||
|
if(exc != null) {
|
||||||
|
Alert alert = new AutosizeAlert(Alert.AlertType.ERROR);
|
||||||
|
alert.setTitle("Pause Model");
|
||||||
|
alert.setHeaderText("Couldn't pause recording");
|
||||||
|
alert.setContentText("At least one recording couldn't be paused: " + exc.getMessage());
|
||||||
|
alert.showAndWait();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resumeAll(ActionEvent evt) {
|
||||||
|
getTabPane().setCursor(Cursor.WAIT);
|
||||||
|
threadPool.submit(() -> {
|
||||||
|
List<Model> models = recorder.getModelsRecording();
|
||||||
|
Exception ex = null;
|
||||||
|
for (Model model : models) {
|
||||||
|
try {
|
||||||
|
recorder.resumeRecording(model);
|
||||||
|
} catch (InvalidKeyException | NoSuchAlgorithmException | IllegalStateException | IOException e) {
|
||||||
|
LOG.error("Couldn't resume model {}: {}", model, e.getMessage());
|
||||||
|
ex = e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
final Exception exc = ex; // stupid compiler
|
||||||
|
Platform.runLater(() -> {
|
||||||
|
getTabPane().setCursor(Cursor.DEFAULT);
|
||||||
|
if(exc != null) {
|
||||||
|
Alert alert = new AutosizeAlert(Alert.AlertType.ERROR);
|
||||||
|
alert.setTitle("Resume Model");
|
||||||
|
alert.setHeaderText("Couldn't resume recording");
|
||||||
|
alert.setContentText("At least one recording couldn't be resumed: " + exc.getMessage());
|
||||||
|
alert.showAndWait();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void initializeUpdateService() {
|
void initializeUpdateService() {
|
||||||
updateService = createUpdateService();
|
updateService = createUpdateService();
|
||||||
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(2)));
|
updateService.setPeriod(new Duration(TimeUnit.SECONDS.toMillis(2)));
|
||||||
|
|
Loading…
Reference in New Issue