Code cleanup

This commit is contained in:
0xb00bface 2021-05-13 20:08:40 +02:00
parent 0d0311fbfc
commit bcf4ab1d47
2 changed files with 58 additions and 55 deletions

View File

@ -44,28 +44,28 @@ public class SetStopDateAction {
public CompletableFuture<Boolean> execute() {
source.setCursor(Cursor.WAIT);
DatePicker datePicker = new DatePicker();
GridPane gridPane = new GridPane();
var datePicker = new DatePicker();
var gridPane = new GridPane();
gridPane.setHgap(10);
gridPane.setVgap(10);
gridPane.setPadding(new Insets(20, 150, 10, 10));
gridPane.add(new Label("Stop at"), 0, 0);
gridPane.add(datePicker, 1, 0);
gridPane.add(new Label("And then"), 0, 1);
ToggleGroup toggleGroup = new ToggleGroup();
RadioButton pauseButton = new RadioButton("pause recording");
var toggleGroup = new ToggleGroup();
var pauseButton = new RadioButton("pause recording");
pauseButton.setSelected(model.getRecordUntilSubsequentAction() == PAUSE);
pauseButton.setToggleGroup(toggleGroup);
RadioButton removeButton = new RadioButton("remove model");
var removeButton = new RadioButton("remove model");
removeButton.setSelected(model.getRecordUntilSubsequentAction() == REMOVE);
removeButton.setToggleGroup(toggleGroup);
HBox row = new HBox();
var row = new HBox();
row.getChildren().addAll(pauseButton, removeButton);
HBox.setMargin(pauseButton, new Insets(5));
HBox.setMargin(removeButton, new Insets(5));
gridPane.add(row, 1, 1);
if (model.isRecordingTimeLimited()) {
LocalDate localDate = LocalDate.ofInstant(model.getRecordUntil(), ZoneId.systemDefault());
var localDate = LocalDate.ofInstant(model.getRecordUntil(), ZoneId.systemDefault());
datePicker.setValue(localDate);
}
boolean userClickedOk = Dialogs.showCustomInput(source.getScene(), "Stop Recording at", gridPane);
@ -73,7 +73,7 @@ public class SetStopDateAction {
if (userClickedOk) {
SubsequentAction action = pauseButton.isSelected() ? PAUSE : REMOVE;
LOG.info("Stop at {} and {}", datePicker.getValue(), action);
Instant stopAt = Instant.from(datePicker.getValue().atStartOfDay().atZone(ZoneId.systemDefault()));
var stopAt = Instant.from(datePicker.getValue().atStartOfDay().atZone(ZoneId.systemDefault()));
model.setRecordUntil(stopAt);
model.setRecordUntilSubsequentAction(action);
try {

View File

@ -143,7 +143,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
TableColumn<JavaFxRecording, Instant> date = new TableColumn<>("Date");
date.setId("date");
date.setCellValueFactory(cdf -> {
Instant instant = cdf.getValue().getStartDate();
var instant = cdf.getValue().getStartDate();
return new SimpleObjectProperty<>(instant);
});
date.setCellFactory(new DateTimeCellFactory<>());
@ -175,15 +175,15 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
table.addEventFilter(KeyEvent.KEY_PRESSED, this::onKeyPressed);
scrollPane.setContent(table);
HBox spaceBox = new HBox(5);
Label spaceLeftLabel = new Label("Space left on device");
var spaceBox = new HBox(5);
var spaceLeftLabel = new Label("Space left on device");
spaceBox.getChildren().add(spaceLeftLabel);
spaceLeft = new ProgressBar(0);
spaceLeft.setPrefSize(200, 22);
spaceFreeLabel = new Label();
spaceFreeLabel.setFont(Font.font(11));
StackPane stack = new StackPane(spaceLeft, spaceFreeLabel);
Label spaceUsedLabel = new Label("Space used:");
var stack = new StackPane(spaceLeft, spaceFreeLabel);
var spaceUsedLabel = new Label("Space used:");
spaceUsedValue = new Label();
spaceBox.getChildren().addAll(stack, spaceUsedLabel, spaceUsedValue);
HBox.setMargin(spaceLeftLabel, new Insets(2, 0, 0, 0));
@ -191,7 +191,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
HBox.setMargin(spaceUsedValue, new Insets(2, 0, 0, 0));
BorderPane.setMargin(spaceBox, new Insets(5));
BorderPane root = new BorderPane();
var root = new BorderPane();
root.setPadding(new Insets(5));
root.setTop(spaceBox);
root.setCenter(scrollPane);
@ -247,7 +247,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
if (event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 2) {
Recording recording = table.getSelectionModel().getSelectedItem();
if (recording != null) {
State state = recording.getStatus();
var state = recording.getStatus();
if(state == FINISHED || state == RECORDING && config.getSettings().localRecording) {
play(recording);
}
@ -281,7 +281,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
});
updateService.setOnFailed(event -> {
LOG.info("Couldn't get list of recordings from recorder", event.getSource().getException());
AutosizeAlert autosizeAlert = new AutosizeAlert(AlertType.ERROR, getTabPane().getScene());
var autosizeAlert = new AutosizeAlert(AlertType.ERROR, getTabPane().getScene());
autosizeAlert.setTitle("Whoopsie!");
autosizeAlert.setHeaderText("Recordings not available");
autosizeAlert.setContentText("An error occurred while retrieving the list of recordings");
@ -300,7 +300,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
spaceLeft.setProgress(free);
double totalGiB = ((double) spaceTotal) / 1024 / 1024 / 1024;
double freeGiB = ((double) spaceFree) / 1024 / 1024 / 1024;
DecimalFormat df = new DecimalFormat("0.00");
var df = new DecimalFormat("0.00");
String tt = df.format(freeGiB) + " / " + df.format(totalGiB) + " GiB";
spaceLeft.setTooltip(new Tooltip(tt));
spaceFreeLabel.setText(tt);
@ -367,7 +367,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
}
};
ExecutorService executor = Executors.newSingleThreadExecutor(r -> {
Thread t = new Thread(r);
var t = new Thread(r);
t.setDaemon(true);
t.setName("RecordingsTab UpdateService");
return t;
@ -398,7 +398,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
contextMenu.setAutoFix(true);
JavaFxRecording first = recordings.get(0);
MenuItem openInPlayer = new MenuItem("Open in Player");
var openInPlayer = new MenuItem("Open in Player");
openInPlayer.setOnAction(e -> play(first));
if (first.getStatus() == FINISHED || Config.getInstance().getSettings().localRecording) {
contextMenu.getItems().add(openInPlayer);
@ -408,62 +408,62 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
contextMenu.getItems().add(openInPlayer);
}
MenuItem openContactSheet = new MenuItem("Open contact sheet");
var openContactSheet = new MenuItem("Open contact sheet");
openContactSheet.setOnAction(e -> openContactSheet(first));
openContactSheet.setDisable(first.getContactSheet().isEmpty());
contextMenu.getItems().add(openContactSheet);
MenuItem stopRecording = new MenuItem("Stop Recording");
var stopRecording = new MenuItem("Stop Recording");
stopRecording.setOnAction(e -> stopRecording(recordings.stream().map(JavaFxRecording::getModel).collect(Collectors.toList())));
if (recordings.stream().anyMatch(r -> r.getStatus() == RECORDING)) {
contextMenu.getItems().add(stopRecording);
}
MenuItem pauseRecording = new MenuItem("Pause Recording");
var pauseRecording = new MenuItem("Pause Recording");
pauseRecording.setOnAction(e -> pauseRecording(recordings.stream().map(JavaFxRecording::getModel).collect(Collectors.toList())));
if (recordings.stream().anyMatch(r -> r.getStatus() == RECORDING)) {
contextMenu.getItems().add(pauseRecording);
}
MenuItem deleteRecording = new MenuItem("Delete");
var deleteRecording = new MenuItem("Delete");
deleteRecording.setOnAction(e -> delete(recordings));
if (first.getStatus() == FINISHED || first.getStatus() == WAITING || first.getStatus() == FAILED || recordings.size() > 1) {
contextMenu.getItems().add(deleteRecording);
deleteRecording.setDisable(recordings.stream().allMatch(Recording::isPinned));
}
MenuItem followModels = new MenuItem("Follow Model");
var followModels = new MenuItem("Follow Model");
followModels.setOnAction(e -> follow(recordings.stream().map(JavaFxRecording::getModel).collect(Collectors.toList())));
followModels.setDisable(!recordings.stream().map(JavaFxRecording::getModel).allMatch(m -> m.getSite().supportsFollow() && m.getSite().credentialsAvailable()));
contextMenu.getItems().add(followModels);
MenuItem openDir = new MenuItem("Open directory");
var openDir = new MenuItem("Open directory");
openDir.setOnAction(e -> onOpenDirectory(first));
if (Config.getInstance().getSettings().localRecording) {
contextMenu.getItems().add(openDir);
}
MenuItem downloadRecording = new MenuItem("Download");
var downloadRecording = new MenuItem("Download");
downloadRecording.setOnAction(e -> download(first));
if (!Config.getInstance().getSettings().localRecording && first.getStatus() == FINISHED) {
contextMenu.getItems().add(downloadRecording);
}
MenuItem notes = new MenuItem("Notes");
var notes = new MenuItem("Notes");
notes.setOnAction(e -> notes(first));
contextMenu.getItems().add(notes);
if (first.isPinned()) {
MenuItem unpinRecording = new MenuItem("Unpin");
var unpinRecording = new MenuItem("Unpin");
unpinRecording.setOnAction(e -> unpin(recordings));
contextMenu.getItems().add(unpinRecording);
} else {
MenuItem pinRecording = new MenuItem("Pin");
var pinRecording = new MenuItem("Pin");
pinRecording.setOnAction(e -> pin(recordings));
contextMenu.getItems().add(pinRecording);
}
MenuItem rerunPostProcessing = new MenuItem("Rerun Post-Processing");
var rerunPostProcessing = new MenuItem("Rerun Post-Processing");
rerunPostProcessing.setOnAction(e -> triggerPostProcessing(recordings));
contextMenu.getItems().add(rerunPostProcessing);
rerunPostProcessing.setDisable(!recordings.stream().allMatch(Recording::canBePostProcessed));
@ -481,7 +481,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
}
private void stopRecording(List<Model> selectedModels) {
boolean confirmed = true;
var confirmed = true;
if (Config.getInstance().getSettings().confirmationForDangerousActions) {
int n = selectedModels.size();
String plural = n > 1 ? "s" : "";
@ -506,7 +506,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
try {
target = File.createTempFile("cs_", ".jpg");
target.deleteOnExit();
FileDownload download = new FileDownload(CamrecApplication.httpClient, p -> {
var download = new FileDownload(CamrecApplication.httpClient, p -> {
if (p == 100) {
DesktopIntegration.open(target);
}
@ -554,7 +554,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
List<Exception> exceptions = new ArrayList<>();
try {
for (JavaFxRecording javaFxRecording : recordings) {
Recording rec = javaFxRecording.getDelegate();
var rec = javaFxRecording.getDelegate();
try {
recorder.pin(rec);
javaFxRecording.setPinned(true);
@ -579,7 +579,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
List<Exception> exceptions = new ArrayList<>();
try {
for (JavaFxRecording javaFxRecording : recordings) {
Recording rec = javaFxRecording.getDelegate();
var rec = javaFxRecording.getDelegate();
try {
recorder.unpin(rec);
javaFxRecording.setPinned(false);
@ -604,7 +604,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
ensureKeyCodeIsLetterOrDigit(code);
// determine where to start looking for the next model
int startAt = 0;
var startAt = 0;
if (table.getSelectionModel().getSelectedIndex() >= 0) {
startAt = table.getSelectionModel().getSelectedIndex() + 1;
if (startAt >= table.getItems().size()) {
@ -645,7 +645,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
}
private void onOpenDirectory(JavaFxRecording first) {
File tsFile = first.getAbsoluteFile();
var tsFile = first.getAbsoluteFile();
GlobalThreadPool.submit(() -> DesktopIntegration.open(tsFile.getParent()));
}
@ -665,10 +665,10 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
private void download(Recording recording) {
LOG.debug("Path {}", recording.getAbsoluteFile());
String filename = proposeTargetFilename(recording);
FileChooser chooser = new FileChooser();
var chooser = new FileChooser();
chooser.setInitialFileName(filename);
if (config.getSettings().lastDownloadDir != null && !config.getSettings().lastDownloadDir.equals("")) {
File dir = new File(config.getSettings().lastDownloadDir);
var dir = new File(config.getSettings().lastDownloadDir);
while (!dir.exists()) {
dir = dir.getParentFile();
}
@ -689,7 +689,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
} else {
String downloadFilename = config.getSettings().downloadFilename;
String fileSuffix = config.getSettings().ffmpegFileSuffix;
PostProcessingContext ctx = new PostProcessingContext();
var ctx = new PostProcessingContext();
ctx.setRecording(recording);
ctx.setConfig(config);
return new DownloadPostprocessor().fillInPlaceHolders(downloadFilename, ctx) + '.' + fileSuffix;
@ -697,16 +697,16 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
}
private void startDownloadThread(File target, Recording recording) {
Thread t = new Thread(() -> {
var t = new Thread(() -> {
try {
String hlsBase = config.getServerUrl() + "/hls";
if (recording.isSingleFile()) {
URL url = new URL(hlsBase + '/' + recording.getId());
FileDownload download = new FileDownload(CamrecApplication.httpClient, createDownloadListener(recording));
var url = new URL(hlsBase + '/' + recording.getId());
var download = new FileDownload(CamrecApplication.httpClient, createDownloadListener(recording));
download.start(url, target);
} else {
URL url = new URL(hlsBase + '/' + recording.getId() + "/playlist.m3u8");
RecordingDownload download = new RecordingDownload(CamrecApplication.httpClient);
var url = new URL(hlsBase + '/' + recording.getId() + "/playlist.m3u8");
var download = new RecordingDownload(CamrecApplication.httpClient);
download.init(config, recording.getModel(), Instant.now(), Executors.newSingleThreadExecutor());
LOG.info("Downloading {}", url);
download.downloadFinishedRecording(url.toString(), target, createDownloadListener(recording), recording.getSizeInByte());
@ -714,6 +714,10 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
} catch (FileNotFoundException e) {
showErrorDialog(ERROR_WHILE_DOWNLOADING_RECORDING, "The target file couldn't be created", e);
LOG.error(ERROR_WHILE_DOWNLOADING_RECORDING, e);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
showErrorDialog(ERROR_WHILE_DOWNLOADING_RECORDING, "The recording could not be downloaded", e);
LOG.error(ERROR_WHILE_DOWNLOADING_RECORDING, e);
} catch (Exception e) {
showErrorDialog(ERROR_WHILE_DOWNLOADING_RECORDING, "The recording could not be downloaded", e);
LOG.error(ERROR_WHILE_DOWNLOADING_RECORDING, e);
@ -721,8 +725,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
Platform.runLater(() -> {
recording.setStatus(FINISHED);
recording.setProgress(-1);
RecordingStateChangedEvent evt = new RecordingStateChangedEvent(target, recording.getStatus(), recording.getModel(),
recording.getStartDate());
var evt = new RecordingStateChangedEvent(target, recording.getStatus(), recording.getModel(), recording.getStartDate());
EventBusHolder.BUS.post(evt);
});
}
@ -751,10 +754,10 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
private void showErrorDialog(final String title, final String msg, final List<Exception> exceptions) {
Platform.runLater(() -> {
AutosizeAlert autosizeAlert = new AutosizeAlert(AlertType.ERROR, getTabPane().getScene());
var autosizeAlert = new AutosizeAlert(AlertType.ERROR, getTabPane().getScene());
autosizeAlert.setTitle(title);
autosizeAlert.setHeaderText(msg);
StringBuilder contentText = new StringBuilder("On or more error(s) occurred:");
var contentText = new StringBuilder("On or more error(s) occurred:");
for (Exception exception : exceptions) {
contentText.append("\n• ").append(exception.getLocalizedMessage());
}
@ -785,7 +788,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
Recording r = recordings.get(0);
msg = "Delete " + r.getModel().getName() + "/" + r.getStartDate() + " for good?";
}
AutosizeAlert confirm = new AutosizeAlert(AlertType.CONFIRMATION, msg, getTabPane().getScene(), YES, NO);
var confirm = new AutosizeAlert(AlertType.CONFIRMATION, msg, getTabPane().getScene(), YES, NO);
confirm.setTitle("Delete recording?");
confirm.setHeaderText(msg);
confirm.setContentText("");
@ -834,9 +837,9 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
Config.getInstance().getSettings().recordingsSortType = col.getSortType().toString();
}
int columns = table.getColumns().size();
double[] columnWidths = new double[columns];
String[] columnIds = new String[columns];
for (int i = 0; i < columnWidths.length; i++) {
var columnWidths = new double[columns];
var columnIds = new String[columns];
for (var i = 0; i < columnWidths.length; i++) {
columnWidths[i] = table.getColumns().get(i).getWidth();
columnIds[i] = table.getColumns().get(i).getId();
}
@ -867,8 +870,8 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
private void restoreColumnOrder() {
String[] columnIds = Config.getInstance().getSettings().recordingsColumnIds;
ObservableList<TableColumn<JavaFxRecording, ?>> columns = table.getColumns();
for (int i = 0; i < columnIds.length; i++) {
for (int j = 0; j < table.getColumns().size(); j++) {
for (var i = 0; i < columnIds.length; i++) {
for (var j = 0; j < table.getColumns().size(); j++) {
if (Objects.equals(columnIds[i], columns.get(j).getId())) {
TableColumn<JavaFxRecording, ?> col = columns.get(j);
columns.remove(j); // NOSONAR
@ -881,7 +884,7 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
private void restoreColumnWidths() {
double[] columnWidths = Config.getInstance().getSettings().recordingsColumnWidths;
if (columnWidths != null && columnWidths.length == table.getColumns().size()) {
for (int i = 0; i < columnWidths.length; i++) {
for (var i = 0; i < columnWidths.length; i++) {
table.getColumns().get(i).setPrefWidth(columnWidths[i]);
}
}