Add updateStationSettings
This commit is contained in:
parent
55dc4c0181
commit
f645cdccc7
@ -7,12 +7,14 @@ import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Random;
|
||||
import java.util.ResourceBundle;
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.beans.property.StringProperty;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.fxml.FXMLLoader;
|
||||
import javafx.fxml.Initializable;
|
||||
import javafx.scene.control.Alert;
|
||||
import javafx.scene.control.Label;
|
||||
import javafx.scene.control.TextArea;
|
||||
import javafx.scene.control.TextField;
|
||||
@ -51,6 +53,14 @@ public class MainController implements Initializable {
|
||||
Parent root = fxmlLoader.load();
|
||||
|
||||
MainSettingsController controller = fxmlLoader.getController();
|
||||
if (selectedStation == null) {
|
||||
Alert alert = new Alert(Alert.AlertType.WARNING);
|
||||
alert.setTitle("Invalid Station Selected");
|
||||
alert.setHeaderText(null);
|
||||
alert.setContentText("Invalid station selected. Please choose a station.");
|
||||
alert.showAndWait();
|
||||
return;
|
||||
}
|
||||
controller.setStationSettings(selectedStation);
|
||||
|
||||
settingsStage = new Stage();
|
||||
@ -59,7 +69,7 @@ public class MainController implements Initializable {
|
||||
settingsStage.setScene(new Scene(root));
|
||||
settingsStage.show();
|
||||
settingsStage.setOnHiding(event -> {
|
||||
settings.save();
|
||||
updateStationSettings(selectedStation);
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -76,7 +86,6 @@ public class MainController implements Initializable {
|
||||
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("StationSelectionView.fxml"));
|
||||
Parent root = fxmlLoader.load();
|
||||
|
||||
// Pass settings to the controller
|
||||
StationSelectionController controller = fxmlLoader.getController();
|
||||
controller.setSettings(settings);
|
||||
|
||||
@ -92,13 +101,7 @@ public class MainController implements Initializable {
|
||||
.filter(station -> station.getName().equals(newStationName))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (newSelectedStation != null) {
|
||||
selectedStation = newSelectedStation;
|
||||
selectedStationName.set(newStationName);
|
||||
settings.setSelectedStationName(selectedStationName.get());
|
||||
|
||||
settings.save();
|
||||
}
|
||||
updateStationSettings(newSelectedStation);
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -111,6 +114,7 @@ public class MainController implements Initializable {
|
||||
private void loadSettings() throws IOException {
|
||||
XmlMapper xmlMapper = new XmlMapper();
|
||||
String userHome = System.getProperty("user.home");
|
||||
// TODO: XDG
|
||||
Path directoryPath = Paths.get(userHome, ".numbers-station");
|
||||
Path filePath = directoryPath.resolve("settings.xml");
|
||||
try {
|
||||
@ -203,4 +207,31 @@ public class MainController implements Initializable {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void updateStationSettings(StationSettings newStationSettings) {
|
||||
if (newStationSettings == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
selectedStation = newStationSettings;
|
||||
selectedStationName.set(newStationSettings.getName());
|
||||
settings.setSelectedStationName(selectedStationName.get());
|
||||
|
||||
settings.save();
|
||||
|
||||
// TODO: Load message from file
|
||||
// If the message we're overwriting is different from its file, then prompt to confirm
|
||||
|
||||
Random random = new Random();
|
||||
StringBuilder messageBuilder = new StringBuilder();
|
||||
|
||||
for (int i = 0; i < selectedStation.getMessageLength(); i++) {
|
||||
if (i > 0 && i % selectedStation.getDigitsPerGroup() == 0) {
|
||||
messageBuilder.append(" ");
|
||||
}
|
||||
messageBuilder.append(random.nextInt(10));
|
||||
}
|
||||
|
||||
messageTextArea.setText(messageBuilder.toString());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user