From e1dbdb00f9ceffd7972a3996de1fb1269579de3c Mon Sep 17 00:00:00 2001 From: 0xb00bface <0xboobface@gmail.com> Date: Sun, 18 Jul 2021 15:22:05 +0200 Subject: [PATCH] Use ModelMenuContributor to add a model sub menu on the RecordingsTab --- .../java/ctbrec/ui/tabs/RecordingsTab.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java index 6928b729..a64d8021 100644 --- a/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java +++ b/client/src/main/java/ctbrec/ui/tabs/RecordingsTab.java @@ -48,7 +48,6 @@ import ctbrec.ui.FileDownload; import ctbrec.ui.JavaFxRecording; import ctbrec.ui.Player; import ctbrec.ui.ShutdownListener; -import ctbrec.ui.action.FollowAction; import ctbrec.ui.action.PauseAction; import ctbrec.ui.action.PlayAction; import ctbrec.ui.action.StopRecordingAction; @@ -56,6 +55,7 @@ import ctbrec.ui.controls.CustomMouseBehaviorContextMenu; import ctbrec.ui.controls.DateTimeCellFactory; import ctbrec.ui.controls.Dialogs; import ctbrec.ui.controls.Toast; +import ctbrec.ui.menu.ModelMenuContributor; import ctbrec.ui.tabs.recorded.RecordedModelsTab.ModelName; import javafx.application.Platform; import javafx.beans.property.SimpleObjectProperty; @@ -70,6 +70,7 @@ import javafx.scene.control.Alert.AlertType; import javafx.scene.control.ButtonType; import javafx.scene.control.ContextMenu; import javafx.scene.control.Label; +import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; import javafx.scene.control.ProgressBar; import javafx.scene.control.ScrollPane; @@ -435,10 +436,14 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown deleteRecording.setDisable(recordings.stream().allMatch(Recording::isPinned)); } - 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); + var tmp = new CustomMouseBehaviorContextMenu(); + ModelMenuContributor.newContributor(getTabPane(), Config.getInstance(), recorder) // + .withStartStopCallback(m -> getTabPane().setCursor(Cursor.DEFAULT)) // + .afterwards(table::refresh) + .contributeToMenu(List.of(recordings.get(0).getModel()), tmp); + var modelSubMenu = new Menu("Model"); + modelSubMenu.getItems().addAll(tmp.getItems()); + contextMenu.getItems().add(modelSubMenu); var openDir = new MenuItem("Open directory"); openDir.setOnAction(e -> onOpenDirectory(first)); @@ -479,10 +484,6 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown return contextMenu; } - private void follow(List selectedModels) { - new FollowAction(getTabPane(), selectedModels).execute(); - } - private void stopRecording(List selectedModels) { var confirmed = true; if (Config.getInstance().getSettings().confirmationForDangerousActions) {