package ee.tkasekamp.vickywaranalyzer.controller.tab;
import ee.tkasekamp.vickywaranalyzer.controller.MainController;
import ee.tkasekamp.vickywaranalyzer.service.UtilService;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.stage.DirectoryChooser;
import javafx.stage.FileChooser;
import java.io.File;
public class SettingsController extends AbstractController {
@FXML
private TextField installTextField;
@FXML
private Button directoryIssue;
@FXML
private TextField saveGameTextField;
@FXML
private Button saveGameIssue;
@FXML
private Button startIssue;
@FXML
private Label errorLabel;
@FXML
private CheckBox localisationCheck;
private MainController main;
private UtilService utilServ;
public void init(MainController mainController, UtilService utilServ) {
main = mainController;
this.utilServ = utilServ;
populate();
}
public void setErrorText(String text) {
errorLabel.setText(text);
}
@FXML
void directoryIssueFired(ActionEvent event) {
DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("Victoria II directory");
/* Only if there is a path is it given to the chooser */
if (!utilServ.getInstallFolder().equals("")) {
chooser.setInitialDirectory(new File(utilServ.getInstallFolder()));
}
// Throws error when user cancels selection
try {
File file = chooser.showDialog(null);
installTextField.setText(file.getPath());
} catch (NullPointerException e) {
}
}
@FXML
void saveGameIssueFired(ActionEvent event) {
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Victoria II save game");
//Set extension filter
FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("Save game (*.v2)", "*.v2");
fileChooser.getExtensionFilters().add(extFilter);
/* Only if there is a path is it given to the filechooser */
if (!utilServ.getSaveGameFolder().equals("")) {
fileChooser.setInitialDirectory(new File(utilServ.getSaveGameFolder()));
}
// Throws error when user cancels selection
try {
File file = fileChooser.showOpenDialog(null);
saveGameTextField.setText(file.getPath());
} catch (NullPointerException e) {
}
}
@FXML
void startIssueFired(ActionEvent event) {
boolean useLocalisation = localisationCheck.isSelected();
main.readSaveGame(saveGameTextField.getText(), useLocalisation);
}
@Override
public void reset() {
errorLabel.setText("");
}
public void setFolderPaths() {
utilServ.setFolderPaths(saveGameTextField.getText(), installTextField.getText());
}
public void populate() {
installTextField.setText(utilServ.getInstallFolder());
saveGameTextField.setText(utilServ.getSaveGameFolder());
}
}