forked from j62/ctbrec
1
0
Fork 0

Code cleanup

This commit is contained in:
0xboobface 2019-12-31 13:24:59 +01:00
parent 25fc51521a
commit 1ec2cf5286
1 changed files with 36 additions and 41 deletions

View File

@ -44,25 +44,22 @@ import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;;
import javafx.scene.text.Font;
public class SettingsTab extends Tab implements TabSelectionListener {
private static final transient Logger LOG = LoggerFactory.getLogger(SettingsTab.class);
private static final int ONE_GiB_IN_BYTES = 1024 * 1024 * 1024;
private static final String PATTERN_NOT_A_DIGIT = "[^\\d]";
private static final Logger LOG = LoggerFactory.getLogger(SettingsTab.class);
private static final int ONE_GIB_IN_BYTES = 1024 * 1024 * 1024;
public static final int CHECKBOX_MARGIN = 6;
private DirectorySelectionBox recordingsDirectory;
private ProgramSelectionBox mediaPlayer;
private ProgramSelectionBox postProcessing;
private TextField server;
private TextField port;
private TextField onlineCheckIntervalInSecs;
private TextField overviewUpdateIntervalInSecs;
private TextField leaveSpaceOnDevice;
private TextField minimumLengthInSecs;
private TextField servletContext;
private CheckBox loadResolution;
private CheckBox useAuthentication = new CheckBox();
private CheckBox useTLS = new CheckBox();
private CheckBox chooseStreamQuality = new CheckBox();
@ -71,8 +68,6 @@ public class SettingsTab extends Tab implements TabSelectionListener {
private CheckBox livePreviews = new CheckBox();
private CheckBox showPlayerStarting = new CheckBox();
private RadioButton recordLocal;
private RadioButton recordRemote;
private ToggleGroup recordLocation;
private ProxySettingsPane proxySettingsPane;
private TextField maxResolution;
private TextField concurrentRecordings;
@ -156,16 +151,16 @@ public class SettingsTab extends Tab implements TabSelectionListener {
Label l = new Label("Record Location");
int row = 0;
layout.add(l, 0, row);
recordLocation = new ToggleGroup();
ToggleGroup recordLocationToggleGroup = new ToggleGroup();
recordLocal = new RadioButton("Local");
recordRemote = new RadioButton("Remote");
recordLocal.setToggleGroup(recordLocation);
recordRemote.setToggleGroup(recordLocation);
RadioButton recordRemote = new RadioButton("Remote");
recordLocal.setToggleGroup(recordLocationToggleGroup);
recordRemote.setToggleGroup(recordLocationToggleGroup);
recordLocal.setSelected(Config.getInstance().getSettings().localRecording);
recordRemote.setSelected(!recordLocal.isSelected());
layout.add(recordLocal, 1, row);
layout.add(recordRemote, 2, row++);
recordLocation.selectedToggleProperty().addListener((e) -> {
recordLocationToggleGroup.selectedToggleProperty().addListener(e -> {
Config.getInstance().getSettings().localRecording = recordLocal.isSelected();
setRecordingMode(recordLocal.isSelected());
showRestartRequired();
@ -192,7 +187,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
port = new TextField(Integer.toString(Config.getInstance().getSettings().httpPort));
port.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*")) {
port.setText(newValue.replaceAll("[^\\d]", ""));
port.setText(newValue.replaceAll(PATTERN_NOT_A_DIGIT, ""));
}
if(!port.getText().isEmpty()) {
Config.getInstance().getSettings().httpPort = Integer.parseInt(port.getText());
@ -205,7 +200,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
layout.add(port, 1, row++);
layout.add(new Label("Path"), 0, row);
servletContext = new TextField(Config.getInstance().getSettings().servletContext);
TextField servletContext = new TextField(Config.getInstance().getSettings().servletContext);
servletContext.setPromptText("e.g. /ctbrec");
servletContext.setTooltip(new Tooltip("Leave empty, if you didn't change the servletContext in the server config"));
servletContext.textProperty().addListener((observable, oldValue, newValue) -> {
@ -220,7 +215,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Require authentication");
layout.add(l, 0, row);
useAuthentication.setSelected(Config.getInstance().getSettings().requireAuthentication);
useAuthentication.setOnAction((e) -> {
useAuthentication.setOnAction(e -> {
Config.getInstance().getSettings().requireAuthentication = useAuthentication.isSelected();
if(useAuthentication.isSelected()) {
byte[] key = Config.getInstance().getSettings().key;
@ -248,13 +243,13 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Use Secure Communication (TLS)");
layout.add(l, 0, row);
useTLS.setSelected(Config.getInstance().getSettings().transportLayerSecurity);
useTLS.setOnAction((e) -> {
useTLS.setOnAction(e -> {
Config.getInstance().getSettings().transportLayerSecurity = useTLS.isSelected();
saveConfig();
});
GridPane.setMargin(l, new Insets(4, CHECKBOX_MARGIN, 0, 0));
GridPane.setMargin(useTLS, new Insets(4, 0, 0, 0));
layout.add(useTLS, 1, row++);
layout.add(useTLS, 1, row);
TitledPane recordLocation = new TitledPane("Record Location", layout);
recordLocation.setCollapsible(false);
@ -287,7 +282,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
options.add(ONE_PER_RECORDING);
directoryStructure = new ComboBox<>(FXCollections.observableList(options));
directoryStructure.setValue(Config.getInstance().getSettings().recordingsDirStructure);
directoryStructure.setOnAction((evt) -> {
directoryStructure.setOnAction(evt -> {
Config.getInstance().getSettings().recordingsDirStructure = directoryStructure.getValue();
saveConfig();
});
@ -312,7 +307,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
splitAfter = new ComboBox<>(FXCollections.observableList(splitOptions));
layout.add(splitAfter, 1, row++);
setSplitAfterValue();
splitAfter.setOnAction((e) -> {
splitAfter.setOnAction(e -> {
Config.getInstance().getSettings().splitRecordings = splitAfter.getSelectionModel().getSelectedItem().getValue();
saveConfig();
});
@ -328,7 +323,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
maxResolution.setTooltip(tt);
maxResolution.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*")) {
maxResolution.setText(newValue.replaceAll("[^\\d]", ""));
maxResolution.setText(newValue.replaceAll(PATTERN_NOT_A_DIGIT, ""));
}
if (!maxResolution.getText().isEmpty()) {
int newRes = Integer.parseInt(maxResolution.getText());
@ -348,7 +343,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
concurrentRecordings = new TextField(Integer.toString(Config.getInstance().getSettings().concurrentRecordings));
concurrentRecordings.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*")) {
concurrentRecordings.setText(newValue.replaceAll("[^\\d]", ""));
concurrentRecordings.setText(newValue.replaceAll(PATTERN_NOT_A_DIGIT, ""));
}
if (!concurrentRecordings.getText().isEmpty()) {
int newConcurrentRecordings = Integer.parseInt(concurrentRecordings.getText());
@ -386,7 +381,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
onlineCheckIntervalInSecs.setTooltip(tt);
onlineCheckIntervalInSecs.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*")) {
onlineCheckIntervalInSecs.setText(newValue.replaceAll("[^\\d]", ""));
onlineCheckIntervalInSecs.setText(newValue.replaceAll(PATTERN_NOT_A_DIGIT, ""));
}
if(!onlineCheckIntervalInSecs.getText().isEmpty()) {
Config.getInstance().getSettings().onlineCheckIntervalInSecs = Integer.parseInt(onlineCheckIntervalInSecs.getText());
@ -401,16 +396,16 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l.setTooltip(tt);
layout.add(l, 0, row);
long minimumSpaceLeftInBytes = Config.getInstance().getSettings().minimumSpaceLeftInBytes;
int minimumSpaceLeftInGiB = (int) (minimumSpaceLeftInBytes / ONE_GiB_IN_BYTES);
int minimumSpaceLeftInGiB = (int) (minimumSpaceLeftInBytes / ONE_GIB_IN_BYTES);
leaveSpaceOnDevice = new TextField(Integer.toString(minimumSpaceLeftInGiB));
leaveSpaceOnDevice.setTooltip(tt);
leaveSpaceOnDevice.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*")) {
leaveSpaceOnDevice.setText(newValue.replaceAll("[^\\d]", ""));
leaveSpaceOnDevice.setText(newValue.replaceAll(PATTERN_NOT_A_DIGIT, ""));
}
if(!leaveSpaceOnDevice.getText().isEmpty()) {
long spaceLeftInGiB = Long.parseLong(leaveSpaceOnDevice.getText());
Config.getInstance().getSettings().minimumSpaceLeftInBytes = spaceLeftInGiB * ONE_GiB_IN_BYTES;
Config.getInstance().getSettings().minimumSpaceLeftInBytes = spaceLeftInGiB * ONE_GIB_IN_BYTES;
saveConfig();
}
});
@ -426,7 +421,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
minimumLengthInSecs.setTooltip(tt);
minimumLengthInSecs.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*")) {
minimumLengthInSecs.setText(newValue.replaceAll("[^\\d]", ""));
minimumLengthInSecs.setText(newValue.replaceAll(PATTERN_NOT_A_DIGIT, ""));
}
if(!minimumLengthInSecs.getText().isEmpty()) {
int minimumLength = Integer.parseInt(minimumLengthInSecs.getText());
@ -435,7 +430,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
}
});
GridPane.setMargin(minimumLengthInSecs, new Insets(0, 0, 0, CHECKBOX_MARGIN));
layout.add(minimumLengthInSecs, 1, row++);
layout.add(minimumLengthInSecs, 1, row);
TitledPane locations = new TitledPane("Recorder", layout);
locations.setCollapsible(false);
@ -457,7 +452,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
int row = 0;
layout.add(new Label("Player"), 0, row);
mediaPlayer = new ProgramSelectionBox(Config.getInstance().getSettings().mediaPlayer);
ProgramSelectionBox mediaPlayer = new ProgramSelectionBox(Config.getInstance().getSettings().mediaPlayer);
mediaPlayer.fileProperty().addListener((obs, o, n) -> {
String path = n;
if (!Objects.equals(path, Config.getInstance().getSettings().mediaPlayer)) {
@ -473,7 +468,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
Label l = new Label("Allow multiple players");
layout.add(l, 0, row);
multiplePlayers.setSelected(!Config.getInstance().getSettings().singlePlayer);
multiplePlayers.setOnAction((e) -> {
multiplePlayers.setOnAction(e -> {
Config.getInstance().getSettings().singlePlayer = !multiplePlayers.isSelected();
saveConfig();
});
@ -484,7 +479,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Show \"Player Starting\" Message");
layout.add(l, 0, row);
showPlayerStarting.setSelected(Config.getInstance().getSettings().showPlayerStarting);
showPlayerStarting.setOnAction((e) -> {
showPlayerStarting.setOnAction(e -> {
Config.getInstance().getSettings().showPlayerStarting = showPlayerStarting.isSelected();
saveConfig();
});
@ -494,9 +489,9 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Display stream resolution in overview");
layout.add(l, 0, row);
loadResolution = new CheckBox();
CheckBox loadResolution = new CheckBox();
loadResolution.setSelected(Config.getInstance().getSettings().determineResolution);
loadResolution.setOnAction((e) -> {
loadResolution.setOnAction(e -> {
Config.getInstance().getSettings().determineResolution = loadResolution.isSelected();
saveConfig();
});
@ -507,7 +502,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Manually select stream quality");
layout.add(l, 0, row);
chooseStreamQuality.setSelected(Config.getInstance().getSettings().chooseStreamQuality);
chooseStreamQuality.setOnAction((e) -> {
chooseStreamQuality.setOnAction(e -> {
Config.getInstance().getSettings().chooseStreamQuality = chooseStreamQuality.isSelected();
saveConfig();
});
@ -518,7 +513,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Enable live previews (experimental)");
layout.add(l, 0, row);
livePreviews.setSelected(Config.getInstance().getSettings().livePreviews);
livePreviews.setOnAction((e) -> {
livePreviews.setOnAction(e -> {
Config.getInstance().getSettings().livePreviews = livePreviews.isSelected();
saveConfig();
showRestartRequired();
@ -533,7 +528,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
layout.add(l, 0, row);
updateThumbnails.setTooltip(tt);
updateThumbnails.setSelected(Config.getInstance().getSettings().updateThumbnails);
updateThumbnails.setOnAction((e) -> {
updateThumbnails.setOnAction(e -> {
Config.getInstance().getSettings().updateThumbnails = updateThumbnails.isSelected();
saveConfig();
});
@ -545,11 +540,11 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Update overview interval (seconds)");
l.setTooltip(tt);
layout.add(l, 0, row);
overviewUpdateIntervalInSecs = new TextField(Integer.toString(Config.getInstance().getSettings().overviewUpdateIntervalInSecs));
TextField overviewUpdateIntervalInSecs = new TextField(Integer.toString(Config.getInstance().getSettings().overviewUpdateIntervalInSecs));
overviewUpdateIntervalInSecs.setTooltip(tt);
overviewUpdateIntervalInSecs.textProperty().addListener((observable, oldValue, newValue) -> {
if (!newValue.matches("\\d*")) {
overviewUpdateIntervalInSecs.setText(newValue.replaceAll("[^\\d]", ""));
overviewUpdateIntervalInSecs.setText(newValue.replaceAll(PATTERN_NOT_A_DIGIT, ""));
}
if(!overviewUpdateIntervalInSecs.getText().isEmpty()) {
Config.getInstance().getSettings().overviewUpdateIntervalInSecs = Integer.parseInt(overviewUpdateIntervalInSecs.getText());
@ -564,7 +559,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Start Tab");
layout.add(l, 0, row);
startTab = new ComboBox<>();
startTab.setOnAction((e) -> {
startTab.setOnAction(e -> {
Config.getInstance().getSettings().startTab = startTab.getSelectionModel().getSelectedItem();
saveConfig();
});
@ -576,7 +571,7 @@ public class SettingsTab extends Tab implements TabSelectionListener {
l = new Label("Colors (Base / Accent)");
layout.add(l, 0, row);
ColorSettingsPane colorSettingsPane = new ColorSettingsPane(this);
layout.add(colorSettingsPane, 1, row++);
layout.add(colorSettingsPane, 1, row);
GridPane.setMargin(l, new Insets(0, 0, 0, 0));
GridPane.setMargin(colorSettingsPane, new Insets(0, 0, 0, CHECKBOX_MARGIN));