forked from j62/ctbrec
1
0
Fork 0

Use ModelMenuContributor to add a model sub menu on the RecordingsTab

This commit is contained in:
0xb00bface 2021-07-18 15:22:05 +02:00
parent 08115fabea
commit e1dbdb00f9
1 changed files with 10 additions and 9 deletions

View File

@ -48,7 +48,6 @@ import ctbrec.ui.FileDownload;
import ctbrec.ui.JavaFxRecording; import ctbrec.ui.JavaFxRecording;
import ctbrec.ui.Player; import ctbrec.ui.Player;
import ctbrec.ui.ShutdownListener; import ctbrec.ui.ShutdownListener;
import ctbrec.ui.action.FollowAction;
import ctbrec.ui.action.PauseAction; import ctbrec.ui.action.PauseAction;
import ctbrec.ui.action.PlayAction; import ctbrec.ui.action.PlayAction;
import ctbrec.ui.action.StopRecordingAction; import ctbrec.ui.action.StopRecordingAction;
@ -56,6 +55,7 @@ import ctbrec.ui.controls.CustomMouseBehaviorContextMenu;
import ctbrec.ui.controls.DateTimeCellFactory; import ctbrec.ui.controls.DateTimeCellFactory;
import ctbrec.ui.controls.Dialogs; import ctbrec.ui.controls.Dialogs;
import ctbrec.ui.controls.Toast; import ctbrec.ui.controls.Toast;
import ctbrec.ui.menu.ModelMenuContributor;
import ctbrec.ui.tabs.recorded.RecordedModelsTab.ModelName; import ctbrec.ui.tabs.recorded.RecordedModelsTab.ModelName;
import javafx.application.Platform; import javafx.application.Platform;
import javafx.beans.property.SimpleObjectProperty; import javafx.beans.property.SimpleObjectProperty;
@ -70,6 +70,7 @@ import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.ButtonType; import javafx.scene.control.ButtonType;
import javafx.scene.control.ContextMenu; import javafx.scene.control.ContextMenu;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem; import javafx.scene.control.MenuItem;
import javafx.scene.control.ProgressBar; import javafx.scene.control.ProgressBar;
import javafx.scene.control.ScrollPane; import javafx.scene.control.ScrollPane;
@ -435,10 +436,14 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
deleteRecording.setDisable(recordings.stream().allMatch(Recording::isPinned)); deleteRecording.setDisable(recordings.stream().allMatch(Recording::isPinned));
} }
var followModels = new MenuItem("Follow Model"); var tmp = new CustomMouseBehaviorContextMenu();
followModels.setOnAction(e -> follow(recordings.stream().map(JavaFxRecording::getModel).collect(Collectors.toList()))); ModelMenuContributor.newContributor(getTabPane(), Config.getInstance(), recorder) //
followModels.setDisable(!recordings.stream().map(JavaFxRecording::getModel).allMatch(m -> m.getSite().supportsFollow() && m.getSite().credentialsAvailable())); .withStartStopCallback(m -> getTabPane().setCursor(Cursor.DEFAULT)) //
contextMenu.getItems().add(followModels); .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"); var openDir = new MenuItem("Open directory");
openDir.setOnAction(e -> onOpenDirectory(first)); openDir.setOnAction(e -> onOpenDirectory(first));
@ -479,10 +484,6 @@ public class RecordingsTab extends Tab implements TabSelectionListener, Shutdown
return contextMenu; return contextMenu;
} }
private void follow(List<Model> selectedModels) {
new FollowAction(getTabPane(), selectedModels).execute();
}
private void stopRecording(List<Model> selectedModels) { private void stopRecording(List<Model> selectedModels) {
var confirmed = true; var confirmed = true;
if (Config.getInstance().getSettings().confirmationForDangerousActions) { if (Config.getInstance().getSettings().confirmationForDangerousActions) {